# M5 Version: ## Install different versions of ubuntu system in Linux ### 1 Virtual machine installation Go to [Official website](https://www.virtualbox.org/wiki/Downloads) to download the virtual machine Virtual Box or go to [Official website](https://www.vmware.com/cn/products/workstation-pro.html) to download the virtual machine VMware. **Of course, if you already have your virtual machine, you may skip this step.** We chose to download the Virtual box because it is free. ### 2 Creating a virtual machine #### 2.1 Creating a virtual machine **Select Create in control** - Input the name of the virtual machine and the location where it is stored, select the type of virtual machine as Linux, select the ubuntu64-bit version, and go to the next step. - Configure a memory size according to your own needs, and then go to the next step. - Choose **Create a virtual hard disk now** to create it. - Select the virtual hard disk type as **VDI** type, and go to the next step. - Allocate the size of the virtual hard disk. Since an ubuntu system needs to be installed, and the operation will be performed in the system, it is recommended that the size should not be less than 20G. ### 3 Importing the ubuntu system #### 3.1 Downloading the ubuntu system Select the ubuntu version according to your own needs and install it: **Note:** **ROS2** needs to download **version 20.04**. + [Version 16.04](https://releases.ubuntu.com/16.04.7/) + [Version 18.04](https://releases.ubuntu.com/18.04.6/) + [Version 20.04](https://releases.ubuntu.com/20.04.3/) **The installation method and process of the three versions are the same. Here, we take the version 18.04 version for an example.** After the downloading is complete, there will be a file shown in the figure: #### 3.2 Importing ubuntu into a visual machine Find the previously installed virtual machine in the Virtual box, enter **Setup**, and assign a CD to the controller in **Storage**: Then open the virtual machine for ubuntu installation, and click start. #### 3.3 Installing ubuntu - Wait for the system to start, enter a **welcome** interface, select "Chinese (Simplified)", and click the "Install Ubuntu" button; - Click “Continue” button; - Select the "Clear entire disk and install Ubuntu" option, and click the "Install Now" button; - Click the "Continue" button in the pop-up dialog box; - Set a geographic position and click the “Continue” button; - Set a user name and password, and click the “Continue” button; - Enter the system installation interface, and wait patiently; - After installation is complete, click the "Restart now" button in the pop-up dialog box to complete the installation. ## 1 ROS Environment building ### 1.1 Installing ROS Building a basic development environment requires the installation of the robot operating system (short for ROS), MoveIt and a git version manager. The installation methods and procedures are described respectively below. For **myCobot 280-M5** and **myCobot 320-M5 devices**, refer to the installation methods and procedures described below. For **myCobot 280-PI** and **myCobot 320-PI** devices, you only need to install the mycobot_ros installation package. #### 1.1.1 Selecting a version There is a one-to-one relationship between ROS and ubuntu. Different versions of ubuntu correspond to different versions of ROS. The reference website is as follows: [http://wiki.ros.org/Distributions](http://wiki.ros.org/Distributions) + Here are the ROS versions supported by Ubuntu: + Ubuntu 16.04 / ROS Kinetic + Ubuntu 18.04 / ROS Melodic + Ubuntu 20.04 / ROS Noetic **Install the ROS version corresponding to the Ubuntu version you have installed.** If the versions are different, the downloading will fail. The system we choose here is Ubuntu 18.04, so the corresponding ROS version is ROS Melodic. >NOTE: At present, we do not provide any reference for installing ROS in windows. If necessary, refer to [https://www.ros.org/install/](https://www.ros.org/install/) #### 1.1.2 Installing ROS ##### 1 Adding a software source There is no ROS software source in the software source list of Ubuntu itself, so you need to Configure the ROS software source into the software list repository first, and then download ROS. Open a console terminal (shortcut key: Ctrl+Alt+T) and input the following command: - official source: ```bash sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' ``` - If the download speed is slow, it is recommended to select a nearby mirror source to replace the above command. For example, Tsinghua University is: ```bash sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list' ``` Here you will be asked to input a user password. Just input the user password set when Ubuntu is installed. ##### 2 Setting a key **Configuring a public key.** This step is to let the system confirm that our path is safe, so that there is no problem in downloading the file. Otherwise it will be deleted immediately after downloading: ```bash sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 ``` The execution result is displayed as follows: ##### 3 Installation After adding a new software source, you need to update the software source list. Open a console terminal (shortcut key: Ctrl+Alt+T) and input the following command: ```bash sudo apt-get update ``` Execute **Installing ROS**. Open a console terminal (shortcut key: Ctrl+Alt+T) and input the following command according to your Ubuntu version: ```bash # Ubuntu 16.04 sudo apt install ros-kinetic-desktop-full ``` ```bash # Ubuntu 18.04 sudo apt install ros-melodic-desktop-full ``` ```bash # Ubuntu 20.04 sudo apt install ros-noetic-desktop-full ``` It is recommended to install the complete ROS here to prevent the lack of libraries and dependencies. **The installation process takes a long time, so please wait with patience.** - If the following error message appears on the console terminal during the installation process, you need to replace the software source list in /etc/apt/sources.list. - Open a console terminal (shortcut key:Ctrl+Alt+T),enter the following command: ```bash sudo gedit /etc/apt/sources.list ``` - 将sources.list中的官方软件源全部替换成下面的阿里云软件源: **Ubuntu 16.04 version:** ```bash deb http://mirrors.aliyun.com/ubuntu/ xenial main deb-src http://mirrors.aliyun.com/ubuntu/ xenial main deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main deb http://mirrors.aliyun.com/ubuntu/ xenial universe deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe deb http://mirrors.aliyun.com/ubuntu/ xenial-security main deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe ``` **Ubuntu 18.04 version:** ```bash deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse ``` **Ubuntu 20.04 version:** ```bash deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse ``` -After the configuration is complete, the contents of the sources.list file are as follows, click Save and Exit. - To update the list of software sources, enter in the console terminal: ```bash sudo apt-get update ``` - Enter the instructions to install ROS in the console terminal: ```bash # Ubuntu 16.04 sudo apt install ros-kinetic-desktop-full ``` ```bash # Ubuntu 18.04 sudo apt install ros-melodic-desktop-full ``` ```bash # Ubuntu 20.04 sudo apt install ros-noetic-desktop-full ``` **The installation process takes a long time, so please wait with patience.** ##### 4 Configuring the ROS environment to the system rosdep allows you to easily install the source codes you want to compile, or the system dependencies required by some ROS core components. Execute the following commands in sequence in the terminal, and open a console terminal (shortcut key: Ctrl+Alt+T). If your system does not have rosdep installed, use the command `sudo apt install python-rosdep` to install it. If the system of the Ubuntu installed by you is version 20.04, use the command `sudo apt install python3-rosdep` to it install. After completion, execute the rosdep initialization command. **initialize rosdep:** ```bash sudo rosdep init ``` If the following error message appears: **Solution:** Modify the hosts file and enter the following command in the console terminal: ```bash sudo gedit /etc/hosts ``` At the end of the file content, add the IP addresses of the following two URLs to access: ```bash 199.232.28.133 raw.githubusercontent.com 151.101.228.133 raw.github.com ``` After the modification is complete, execute in the console terminal: ```bash sudo rosdep init ``` ```bash rosdep update ``` After the initialization is completed, in order to avoid re-validating the ROS function path every time the terminal window is closed, we can **set the path to an environment variable**, so that each time you open a new terminal, the ROS function path will automatically take effect. Execute the following commands in sequence in the terminal, and open a console terminal (shortcut key: Ctrl+Alt+T): ##### 5 Set up the ros environment ###### Bash Execute the following commands: ```bash # Ubuntu 16.04 echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc ``` ```bash # Ubuntu 18.04 echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc ``` ```bash # Ubuntu 20.04 echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc ``` ```bash source ~/.bashrc ``` ###### Zsh If you replace bash with zsh, then: ```bash # Ubuntu16.04 echo "source /opt/ros/kinetic/setup.bash" >> ~/.zshrc ``` ```bash # Ubuntu18.04 echo "source /opt/ros/melodic/setup.bash" >> ~/.zshrc ``` ```bash # Ubuntu20.04 echo "source /opt/ros/noetic/setup.bash" >> ~/.zshrc ``` ```bash source ~/.zshrc ``` ##### 6 Installing a ROS extra dependency Input the following command in the terminal to install a ROS extra dependency, and open a console terminal (shortcut key: Ctrl+Alt+T): ```bash sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential ``` If your Unbutu system is version 20.04, please execute the following command to install: ```bash sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential ``` ```bash # Ubuntu 16.04 sudo apt install ros-kinetic-joint-state-publisher-gui ``` ```bash # Ubuntu 18.04 sudo apt install ros-melodic-joint-state-publisher-gui ``` ```bash # Ubuntu 20.04 sudo apt install ros-noetic-joint-state-publisher-gui ``` #### 1.1.3 Verifying ROS The startup of the ROS system requires a ROS Master, that is, a node manager. We can input the roscore command in the terminal to start the ROS Master. To verify whether ROS has been installed successfully, open a console terminal (shortcut key: Ctrl+Alt+T) and execute the following command in the terminal: ```bash roscore ``` When the following interface is displayed, it means that ROS has been installed successfully. The roscore command starts a node manager, which is used for node management. In a ros system, there is and only one node manager, which is the prerequisite for the operation of the ros node, so before executing the start of the ros node, roscore needs to be executed in the first step. _For more detailed installation instructions, you can refer to the official installation instructions by visiting the website:_: [http://wiki.ros.org/ROS/Installation](http://wiki.ros.org/ROS/Installation) ## 1.2 MoveIt Installation MoveIt is the composition of a series of function packages for movement operations in ros, mainly including motion planning, collision detection, kinematics, 3D perception, operation control and other functions. ### 1.2.1 Updating the software source list Open a console terminal (shortcut key: Ctrl+Alt+T) and input the following command on the terminal window to **update the software source list**: ```bash sudo apt-get update ``` ### 1.2.2 Installing MoveIt Open a console terminal (shortcut key: Ctrl+Alt+T) and input the following command on the terminal window to execute the **installation of MoveIt**: ```bash # Ubuntu16.04 sudo apt-get install ros-kinetic-moveit ``` ```bash # Ubuntu 18.04 sudo apt-get install ros-melodic-moveit ``` ```bash # Ubuntu20.04 sudo apt-get install ros-noetic-moveit ``` ## 1.3 git Installation ### 1.3.1 Adding a software source Add the software source for installing git to the software source list of ubuntu, open a console terminal (shortcut key: Ctrl+Alt+T) and input the following command on the terminal window: ```bash sudo add-apt-repository ppa:git-core/ppa ``` ### 1.3.2 Updating the software source list Open a console terminal (shortcut key: Ctrl+Alt+T) and input the following command on the terminal window to **update the software source list**: ```bash sudo apt-get update ``` ### 1.3.3 Installing git Open a console terminal (shortcut key: Ctrl+Alt+T) and input the following command on the terminal window to **execute the installation of git**: ```bash sudo apt-get install git ``` ### 1.3.4 Verifying git **Read the git version**, open a console terminal (shortcut key: Ctrl+Alt+T) and input the following command on the terminal window: ```bash git --version ``` The git version number can be displayed in the terminal as follows, that is, the installation is successful. ### 1.3.5 Use During the subsequent downloading of the ros package, you need to use git. For the use of git, refer to the following link: - [https://git-scm.com/book/zh/v2](https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E8%8E%B7%E5%8F%96-Git-%E4%BB%93%E5%BA%93) - [https://www.runoob.com/git/git-tutorial.html](https://www.runoob.com/git/git-tutorial.html) ## 2 mycobot_ros Installation `mycobot_ros` is a ROS package launched by Elephant Robotics and applicable to its mycobot series of desktop six-axis robot arms. Project address: [http://github.com/elephantrobotics/mycobot_ros](http://github.com/elephantrobotics/mycobot_ros) ### 2.1 Precondition Before installing the package, make sure you have a ros workspace. Here is an **example command for creating a workspace**. Open a console terminal (shortcut key: Ctrl+Alt+T) and input the following command in the command line: ```bash mkdir -p ~/catkin_ws/src # Create a folder cd ~/catkin_ws/src # Enter the folder catkin_init_workspace # Initialize the current directory into a ROS workspace cd .. # Return to the parent directory catkin_make # Build the code in the workspace ``` **Add workspace environment** ##### Bash The official default ROS1 workspace is `catkin_ws`. ```bash # Ubuntu 16.04 echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc ``` ```bash # Ubuntu 18.04 echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc ``` ```bash # Ubuntu 20.04 echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc ``` ```bash source ~/.bashrc ``` ### 2.2 Installing the package **NOTE:** - This package depends on ROS and MoveIT. Before using it, make sure that you have installed ROS and MoveIT successfully. - The interaction of this package with a real robot arm depends on PythonApi - `pymycobot`. - The Api project location is: [https://github.com/elephantrobotics/pymycobot](https://github.com/elephantrobotics/pymycobot) - Quick installation: `pip install pymycobot --upgrade` When executing the pip install pymycobot --upgrade command, if the following error message appears: Enter the following command to install pip at the prompt ```bash sudo apt install python-pip ``` - If your Ubuntu system is version 20.04, please execute the command `sudo apt install python3-pip` to install pip After the pip installation is complete, the terminal executes again ```bash pip install pymycobot --upgrade ``` - The installation method depends on Git, so make sure that Git have been installed in your computer. The official default ROS1 workspace is `catkin_ws`. ```bash cd ~/catkin_ws/src # Enter the src folder of the workspace # Clone the code on github git clone https://github.com/elephantrobotics/mycobot_ros.git cd .. # return to the workspace catkin_make # Build the code in the workspace source devel/setup.bash # add environment variables ``` # PI Version: The Raspberry Pi version comes with an Ubuntu (V-20.04) system and a built-in development environment, so you don’t need to build and manage it, Just update the mycobot_ros package. `mycobot_ros` is a ROS1 package launched by Elephant Robotics and applicable to its mycobot series of desktop six-axis robot arms. ROS1 Project address: [http://github.com/elephantrobotics/mycobot_ros](http://github.com/elephantrobotics/mycobot_ros) Robotic arm API driver library address: [https://github.com/elephantrobotics/pymycobot](https://github.com/elephantrobotics/pymycobot) ## 1 Update the mycobot_ros package In order to ensure that users can use the latest official package in time (new users do not need to update), they can go to the `/home/er/catkin_ws/src` folder through the file manager and open the console terminal (shortcut Ctrl+Alt+T ) , enter the following command to update: ```bash # Clone the code on github cd ~/catkin_ws/src git clone https://github.com/elephantrobotics/mycobot_ros.git # Please check the attention section below before deciding whether to execute this command cd .. # Back to work area catkin_make # Build the code in the workspace source devel/setup.bash # add environment variable ``` **Note:** If the `mycobot_ros` folder already exists in the `/home/er/catkin_ws/src (equivalent to ~/catkin_ws/src)` directory, you need to delete the original `mycobot_ros` before executing the above command. Among them, ubuntu in the directory path is the user name of the virtual machine. If it is inconsistent, please modify it. So far, the ROS1 environment construction has been completed.Please refer to [13.1.3 Rviz Introduction and Use](12.1.4-rivz介绍及使用/README.md) for the use of ROS1.