Pre-requisite Software ====================== The ROS driver for the robots is initially supported for the ``ROS Noetic``. All of ROS related software should be installed either on remote PC/Rasberry Pi/Nvidia board on robot. The steps for shown below are for remote PC both boards usually come with pre-installed ROS distribution. .. note:: All the ROS related software should be installed/run on remote PC/Rasberry Pi/Nvidia board, nothing needed to be installed on robots control board. [Ubuntu 20.04 - ROS NOETIC] --------------------------- .. _ROS Noetic: http://wiki.ros.org/noetic/Installation .. _Ubuntu 20.04: https://releases.ubuntu.com/20.04/ .. _Ubuntu 20.04 Installation: https://ubuntu.com/server/docs/installation .. image:: media/common/ros_noetic.png :width: 100% :align: center The ROS driver for the robots is initially supported for the ``ROS Noetic``. All of ROS related software should be installed in a **Remote-PC**. The steps for shown below are for **Remote-PC** or **bz1-PC**. .. warning:: Care should be taken when installing ROS so that it matches with your CPU's architecture (i.e. armhf, amd64, arm6, etc.) PC Setup -------- `ROS Noetic`_ installation requires Ubutnu 20.04. 1. Download `Ubuntu 20.04`_ 2. Follow the `Ubuntu 20.04 Installation`_ guide ROS-noetic Installation ~~~~~~~~~~~~~~~~~~~~~~~~ The ros driver provided can be run either on a remote PC or on board robot computer. Usually, the on-board computer already has pre-installed ROS distribution, so the instructions below will be applicable to a remote computer. You may run the following commands to install ROS noetic or you can simply follow the `instructions `_ from the roswiki. 1. Enter the Ubuntu terminal and typie in the following command: .. code:: bash cd 2. The next step is setting up the source list: .. code:: bash sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 3. After which you will set up the keys: .. code:: bash sudo apt install curl curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - 4. Then, you will install ROS-noetic: .. code:: bash sudo apt update sudo apt install ros-noetic-desktop-full 5. Finally, you will add ROS environment to your bash file, what this means is that each time you load up your terminal, it will automatically find the built-in ROS packages. .. code:: bash echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc 6. Install python dependencies and initialize repo: .. code:: bash sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential sudo rosdep init rosdep update Once the ROS packages are set-up the next step would be to set up a workspace in which you can add pre-built packages to control your robot. Catkin Workspace ~~~~~~~~~~~~~~~~ 1. The first step is to ensure that you have correctly setup you ROS noetic. It can be checked by: .. code:: bash cd .. source /opt/ros/noetic/setup.bash 2. Next, install catkin_tools: .. code:: bash sudo apt install python3-catkin-tools 3. The next step is to create, your workspace. This is typically created in the home directory following the standard ROS convention, once built, you should see a ``build`` and ``devel`` folder next to your ``src`` folder: .. code:: bash mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin build 4. To enable the workspace, you must type in: .. code:: bash source devel/setup.bash 5. To avoid typing this everytime you start a terminal, you’ll add this into the ``last line`` of the bashrc file: .. code:: bash gedit ~/.bashrc - Add the following line at the end of the bashrc file: .. code:: bash source /home//catkin_ws/devel/setup.bash - Everytime you do a ``catkin build``, it is necessary to either restart all your terminals, or source them. - To verify that everything is working correctly, type the following into the terminal: .. code:: bash echo $ROS_PACKAGE_PATH BZ1 Installation ================ .. important:: To acquire BZ1 package with installation script please email `support+bz1@mybotshop.de` with your subject as ``BZ1 GitHub Access``, your ``GitHub ID`` and your ``Invoice Name/ID``. **Requirements** Please follow the pre-requisite software section. - :doc:`Pre-requisite Software ` This driver requires a system setup with ROS. It is recommended to use Ubuntu 20.04 with ROS Noetic. To make sure that robot control isn't affected by system latencies, it is highly recommended to connect the robot via `LAN` of via 5G connection. **Building** A script can be found below for automatic installation of all the required dependencies mentioned above and the provided software installation. After downloading and changing directory to the downloaded folder, installation script can be run by the following command: You first have to give the script root permission via: .. code:: bash sudo chmod +x install.bash .. code:: bash ./install.bash .. _Z1 Disabled: Z1 Remote Enable/Disable ------------------------ A final step that is required for control of Z1 via ROS moveit is to disable its startup job from the B1. This can be done by sshing into the B1 and following the provided commands: .. code:: bash ssh unitree@192.168.123.220 cd Unitree/autostart ls -la cat .startlist.sh nano .startlist.sh # Comment or uncomment z1 in case you want to control it remotely or not