# M5版本:
## 在Linux中安装不同版本的ubuntu系统
### 1 虚拟机安装
前往[官方网站](https://www.virtualbox.org/wiki/Downloads)下载虚拟机Virtual Box
或者前往[官方网站](https://www.vmware.com/cn/products/workstation-pro.html)下载虚拟机 VM ware
VirtualBox 安装包:[Windows hosts](https://download.virtualbox.org/virtualbox/7.0.10/VirtualBox-7.0.10-158379-Win.exe)
VirtualBox 拓展包:[VirtualBox 7.0.10 Oracle VM VirtualBox Extension Pack](https://download.virtualbox.org/virtualbox/7.0.10/Oracle_VM_VirtualBox_Extension_Pack-7.0.10.vbox-extpack)
**当然,如果您已经拥有您的虚拟机,您可以跳过该步骤。**
我们选择下载Virtual box,因为它是免费的。
### 2 新建虚拟机
#### 2.1 创建虚拟机
**在控制中选择新建**
输入虚拟机名称和虚拟机存放的位置,选择虚拟机类型为**Linux**,选择ubuntu64位版本,进行下一步。
按照自己的需求配置内存大小,进行下一步。
选择**现在创建虚拟硬盘**,进行创建。
虚拟硬盘类型选择**VDI**类型,进行下一步。
分配虚拟硬盘大小,由于需要安装ubuntu系统,而且还会在该系统中进行操作,建议大小不要低于20G。
#### 2.2 导入ubuntu系统
##### 2.2.1 下载ubuntu系统。
请根据自己的需要选择ubuntu版本进行安装
**注意:** **ROS2**需要下载**20.04版本**。
+ [16.04版本](https://releases.ubuntu.com/16.04.7/)
+ [18.04版本](https://releases.ubuntu.com/18.04.6/)
+ [20.04版本](https://releases.ubuntu.com/20.04.3/)
**三种版本的安装方法和过程都是相同的,这里以18.04版本作为例子进行安装**
下载完成后有如图文件:
##### 2.2.2 导入ubuntu到虚拟机中
在Virtual box中找到之前安装的虚拟机,进入**设置**,并在**存储**中给控制器分配光盘:
然后打开虚拟机进行ubuntu安装,并点击启动。
##### 2.2.3 ubuntu安装
等待系统启动,进入**欢迎**界面,选中“中文(简体)”,并点击“安装 Ubuntu”按钮;
点击“继续”按钮;
选中“清除整个磁盘并安装 Ubuntu”选项,点击“现在安装”按钮;
在弹出的对话框中点击“继续”按钮;
设置地理位置,点击“继续”按钮;
设置用户名和密码,点击“继续”按钮;
进入系统安装界面,请耐心等待;
待安装完成,在弹出的对话框中,点击“现在重启”按钮,完成安装。
## 1 ROS 环境搭建
### 1.1 ROS 安装
基本的开发环境搭建需要安装机器人操作系统 ROS、MoveIt 以及 git 版本管理器,以下分别介绍其安装方法及流程。
**myCobot 280-M5** 和 **myCobot 320-M5** 的设备可参考以下介绍的安装方式及流程。**myCobot 280-PI** 和 **myCobot 320-PI** 的设备仅仅需要执行 **mycobot_ros** 安装包的安装。
#### 1.1.1 版本选择
ROS 跟 ubuntu 有一一对应的关系,不同版本的 ubuntu 对应不同版本的 ROS,参考网站见下:[http://wiki.ros.org/Distributions](http://wiki.ros.org/Distributions)
+ 这里给出对应Ubuntu支持的 ROS 版本:
+ Ubuntu 16.04 / ROS Kinetic
+ Ubuntu 18.04 / ROS Melodic
+ Ubuntu 20.04 / ROS Noetic
**请根据自己安装的Ubuntu版本进行对应ROS版本的安装**
如果版本不同,下载将会失败.在这里我们选择的系统为 Ubuntu 18.04, 对应 ROS 版本为 ROS Melodic
>NOTE: 目前我们不提供 windows 安装 ROS 的任何参考, 若有需要请参考 [https://www.ros.org/install/](https://www.ros.org/install/)
#### 1.1.2 开始安装
##### 1 添加源
Ubuntu 本身的软件源列表中没有 ROS 的软件源,所以需要先**将 ROS 软件源配置到软件列表仓库中**,才能下载 ROS 。打开一个控制台终端(快捷键Ctrl+Alt+T),输入如下指令:
- 官方源:
```bash
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
```
- 若下载速度缓慢,推荐就近选择一个镜像源替换上面的命令。例如,Tsinghua University为:
```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'
```
这里会要求输入用户密码,输入安装 Ubuntu 时设置的用户密码即可。
##### 2 设置秘钥
**配置公网秘钥**,这一步是为了让系统确认我们的路径是安全的的,这样下载文件才没有问题,不然下载后会被立刻删掉:
```bash
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
```
执行结果显示如下:
##### 3 安装
在加入了新的软件源后,需要**更新软件源列表**,打开一个控制台终端(快捷键Ctrl+Alt+T),输入如下指令:
```bash
sudo apt-get update
```
执行**安装 ROS**,打开一个控制台终端(快捷键Ctrl+Alt+T),请按照自己的Ubuntu版本选择输入以下指令:
```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
```
这里推荐安装完整的 ROS,防止库和依赖的缺失。
**安装过程耗时比较长,需要耐心等待**
- 若安装过程中,控制台终端出现如下错误信息,则需要更换/etc/apt/sources.list中的软件源列表。
- 打开一个控制台终端(快捷键Ctrl+Alt+T),输入如下指令:
```bash
sudo gedit /etc/apt/sources.list
```
- 将sources.list中的官方软件源全部替换成下面的阿里云软件源:
**Ubuntu 16.04版本:**
```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版本:**
```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版本:**
```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
```
- 配置完成后,sources.list文件内容如下所示,点击保存并退出。
- 更新软件源列表,在控制台终端输入:
```bash
sudo apt-get update
```
- 在控制台终端输入安装ROS的指令:
```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
```
**安装过程耗时比较长,需要耐心等待**
##### 4 配置 ROS 环境到系统
rosdep 让你能够轻松地安装被想要编译的源代码,或被某些 ROS 核心组件需要的系统依赖,在终端依次执行以下命令,打开一个控制台终端(快捷键Ctrl+Alt+T)。
如果您的系统没有安装rosdep,请使用命令`sudo apt install python-rosdep`进行安装。
如果您的安装的Ubuntu系统是20.04版本,请使用命令`sudo apt install python3-rosdep`进行安装,完成后执行rosdep初始化命令。
**初始化 rosdep**:
```bash
sudo rosdep init
```
若出现如下图所示的错误提示:
**解决方法:** 修改hosts文件,控制台终端输入下面的指令:
```bash
sudo gedit /etc/hosts
```
在文件内容末端,加入以下两个网址的IP地址实现访问:
```bash
199.232.28.133 raw.githubusercontent.com
151.101.228.133 raw.github.com
```
修改完成后,在控制台终端执行:
```bash
sudo rosdep init
```
```bash
rosdep update
```
初始化完成后,为了避免每次关掉终端窗口后都需要重新生效 ROS 功能路径,我们可以**把路径配置到环境变量中**,这样在每次打开新的终端时便可自动生效 ROS 功能路径
在终端依次执行以下命令,打开一个控制台终端(快捷键Ctrl+Alt+T):
#### 1.1.3 设置ros环境
##### Bash
执行以下命令:
```bash
# Ubuntu 16.04
# 将 ros 环境加入到当前控制台的环境变量
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
```
##### 安装 ROS 额外依赖项
在终端输入以下命令**安装ROS额外依赖项**,打开一个控制台终端(快捷键Ctrl+Alt+T):
```bash
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
```
如果你的Unbutu系统是20.04版本,请执行以下命令安装:
```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.4 验证安装
ROS 系统的启动需要一个 ROS Master,即节点管理器,我们可以在终端输入 roscore 指令来启动 ROS Master。
为了验证 ROS 是否安装成功,打开一个控制台终端(快捷键Ctrl+Alt+T),在终端执行以下命令:
```bash
roscore
```
当显示如下界面,则表示 ROS 安装成功
roscore命令启动了一个节点管理器,其作用就是用于节点管理,在一个ros系统中,有且只有一个,它是ros节点运行的前提,所以在执行启动ros节点前,第一步都需要执行roscore。
_更多更详细的安装指导,可以参考官方的安装指导,网址_: [http://wiki.ros.org/ROS/Installation](http://wiki.ros.org/ROS/Installation)
## 2 MoveIt 安装
MoveIt 是 ros 中一系列移动操作的功能包的组成,主要包含运动规划,碰撞检测,运动学,3D 感知,操作控制等功能。
### 2.1 更新软件源列表
打开一个控制台终端(快捷键Ctrl+Alt+T),在终端窗口输入以下命令,以**更新软件源列表**:
```bash
sudo apt-get update
```
### 2.2 安装 MoveIt
打开一个控制台终端(快捷键Ctrl+Alt+T),在终端窗口输入以下命令,执行 **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
```
## 3 git 安装
### 3.1 添加软件源
**将 git 安装的软件源添加到 ubuntu 的软件源列表中**,打开一个控制台终端(快捷键Ctrl+Alt+T),在终端窗口输入以下命令:
```bash
sudo add-apt-repository ppa:git-core/ppa
```
### 3.2 更新软件源列表
打开一个控制台终端(快捷键Ctrl+Alt+T),在终端窗口输入以下命令,以**更新软件源列表**:
```bash
sudo apt-get update
```
### 3.3 安装 git
打开一个控制台终端(快捷键Ctrl+Alt+T),在终端窗口输入以下命令,**执行 git 的安装**:
```bash
sudo apt-get install git
```
### 3.4 验证安装
**读取 git 版本**,打开一个控制台终端(快捷键Ctrl+Alt+T),在终端窗口输入以下命令:
```bash
git --version
```
在终端中可以显示 git 版本号,如下,即为安装成功
### 3.5 使用
在后续下载 ros 包需要用到git,git 的使用可以参考下面链接:
- [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)
## 4 mycobot_ros 安装
`mycobot_ros` 是 ElephantRobotics 推出的,适配旗下桌面型六轴机械臂 mycobot系列 的ROS 包。
项目地址:[http://github.com/elephantrobotics/mycobot_ros](http://github.com/elephantrobotics/mycobot_ros)
### 4.1 前提
在安装包之前,请保证拥有 ros 工作空间。
这里我们给出**创建工作空间的样例命令**,默认为`catkin_ws`, 打开一个控制台终端(快捷键Ctrl+Alt+T),在命令行输入以下命令:
```bash
mkdir -p ~/catkin_ws/src # 创建文件夹
cd ~/catkin_ws/src # 进入文件夹
catkin_init_workspace # 把当前目录初始化为一个ROS工作空间
cd .. # 返回上级目录
catkin_make # 构建工作区中的代码。
```
**添加工作空间的环境**
##### Bash
官方默认的 ROS1 工作区是 `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
```
### 4.2 安装
**NOTE:**
- 本包依赖于ROS和MoveIT,使用前确保以成功安装ROS和MoveIT。
- 本包与真实机械臂的交互依赖于PythonApi - `pymycobot`
- Api项目地为:[https://github.com/elephantrobotics/pymycobot](https://github.com/elephantrobotics/pymycobot)
- 快速安装:`pip install pymycobot --upgrade`
执行pip install pymycobot --upgrade命令时,若出现如下图错误提示:
根据提示输入以下命令安装pip
```bash
sudo apt install python-pip
```
- 如果你的Ubuntu系统是20.04版本,请执行命令`sudo apt install python3-pip`安装pip
pip安装完成后,终端再次执行
```bash
pip install pymycobot --upgrade
```
- 安装方式依赖于Git,请确保电脑中已安装Git。
官方默认的 ROS1 工作区是 `catkin_ws`。
```bash
cd ~/catkin_ws/src # 进入工作区的src文件夹中
# 克隆github上的代码
git clone https://github.com/elephantrobotics/mycobot_ros.git
cd .. # 返回工作区
catkin_make # 构建工作区中的代码
cd ..
source devel/setup.bash # 添加环境变量
```
# M5版本导入系统镜像:
>> **注意:** 为了降低环境搭建难度,我们将给出 Linux系统镜像(Ubuntu 20.04)、Virtual Box安装包以及其扩展包。 接下来将教导大家如安装Virtual Box以及导入Linux系统镜像(默认密码为123)。
>> **已内置环境:** ROS1 + Moveit + Git + pymycobot + mycobot_ros
## 1 安装虚拟机
前往[官方网站](https://www.virtualbox.org/wiki/Downloads)下载虚拟机Virtual Box
或者前往[官方网站](https://www.vmware.com/cn/products/workstation-pro.html)下载虚拟机 VM ware
VirtualBox 安装包:[Windows hosts](https://download.virtualbox.org/virtualbox/7.0.10/VirtualBox-7.0.10-158379-Win.exe)
VirtualBox 拓展包:[VirtualBox 7.0.10 Oracle VM VirtualBox Extension Pack](https://download.virtualbox.org/virtualbox/7.0.10/Oracle_VM_VirtualBox_Extension_Pack-7.0.10.vbox-extpack)
**当然,如果您已经拥有您的虚拟机,您可以跳过该步骤。**
我们选择下载Virtual box,因为它是免费的。
## 2 下载Linux系统镜像
点击下载:[Linux ubuntu20.04](http://download-elephantrobotics.oss-cn-shenzhen.aliyuncs.com/system_images/ubuntu20.04_ROS1_V20230731.ova.zip)
## 3 导入Linux系统镜像
在Virtual Box界面中点击 管理 -> 导入虚拟电脑 -> 选择虚拟镜像 -> 选择安装路径并进行导入,如下安装即可。
等待镜像导入即可,如下图即为安装成功。
然后启动系统即可,默认密码为 **123**
# 树莓派版本:
树莓派版本自带Ubuntu(V-20.04)系统,内置开发环境,无需搭建和管理,更新`mycobot_ros`包即可。
`mycobot_ros`是大象机器人推出的适用于其mycobot系列桌面六轴机械臂的ROS1包。
ROS1项目地址: [http://github.com/elephantrobotics/mycobot_ros](http://github.com/elephantrobotics/mycobot_ros)
机械臂API驱动库地址: [https://github.com/elephantrobotics/pymycobot](https://github.com/elephantrobotics/pymycobot)
## 1 更新 mycobot_ros 包
为了保证用户能及时使用最新的官方包,可以通过文件管理器进入`/home/er/catkin_ws/src`文件夹,打开控制台终端( 快捷键 Ctrl+Alt+T ) ,输入以下命令进行更新:
```bash
# 克隆github上的代码
cd ~/catkin_ws/src
git clone https://github.com/elephantrobotics/mycobot_ros.git # 在决定是否执行此命令之前,请查看下面的注意部分
cd .. # 回到工作区
catkin_make # 在工作区中构建代码
source devel/setup.bash # 添加环境变量
```
**注意:** 如果在`/home/er/catkin_ws/src(相当于~/catkin_ws/src)`目录下已经存在`mycobot_ros`文件夹,则需要先删除原来的`mycobot_ros`,然后再执行上述命令。 其中,目录路径中的`er`为系统的用户名。 如有不一致,请修改。
至此ROS1环境搭建完成,ROS1的使用请参考[13.1.3 Rviz介绍及使用](12.1.4-rivz介绍及使用/README.md)。