RoArm-M2-S ROS2 入门教程

来自Waveshare Wiki
跳转至: 导航搜索

本教程适用于在 Windows 系统电脑使用虚拟机来运行 ROS2,并参考后续的教程来运行,镜像中的系统默认密码为 roarm。

ROS2 简介

ROS2 的前身是 ROS,ROS 即机器人操作系统(Robot Operating System)。但是 ROS 本身并不是一个操作系统,而是一个软件库和工具集。ROS 的出现解决了机器人各个组件的通信问题,后来越来越多的机器人算法也集成到了 ROS 中,ROS2 继承了 ROS,相比 ROS 更强大更优秀。

主要特征:

  • 多机器人系统:未来机器人一定不会是独立的个体,机器人和机器人之间也需要通信和协作,ROS2 为多机器人系统的应用提供了标准方法和通信机制;
  • 跨平台:机器人应用场景不同,使用的控制平台也会有很大差异,为了让所有机器人都可以运行 ROS2,ROS2 可以跨平台运行于 Linux、Windows、MacOS、RTOS;
  • 实时性:机器人运动控制和很多行为策略要求机器人具备实时性,比如机器人要可靠地在 100 ms 内发现前方的行人,或者稳定地在 1 ms 周期内完成运动学、动力学的解算,ROS2 为类似这样的实时性需求提供了基本保障;
  • 产品化:ROS2 不仅可以用于机器人研发阶段,还可以直接搭载在产品中,走向消费市场,这对 ROS2 的稳定性、强壮性也提出了巨大挑战。


安装 Oracle VM VirtualBox 虚拟机

下载并安装 Oracle VM VirtualBox,这是一款免费的虚拟机软件,可以让你在自己的电脑上运行虚拟操作系统,我们在 Windows 系统电脑上运行虚拟机来安装 Ubuntu 操作系统,接着在 Ubuntu 操作系统上安装配置 ROS2 来控制机械臂。

需要注意的是,虽然 ROS2 有 Windows 的版本,但是 Windows 版本的 ROS2 相关资料并不多,所以我们默认提供虚拟机的方案来运行 ROS2。

点击 Oracle VM VirtualBox 官方下载链接,安装过程很简单,一直点击下一步即可。如果已安装,则跳过这步。


安装 ROS2 的方法一

方法一:下载我们已经配置好 ROS2 环境的 Ubuntu 镜像,链接在 RoArm-M2-S WIKI 主页的资料下载里。链接里所有的压缩包都是镜像文件,有一些虚拟机的磁盘文件系统不支持 4G 以上的单独文件,因此将配置好的 Ubuntu 镜像分解成了多个文件。直接将所有的压缩包下载下来并解压到同一个文件夹里。


将配置好的虚拟机镜像导入到 Oracle VirtualBox 中

  1. 在左边工具栏处,点击“新建”。
  2. Ros镜像安装-水印.png

  3. 设置名称,类型设置为“Linux”,版本设置为“Ubuntu(64-bit)”,点击“下一步”。
  4. Ros镜像安装2-水印.png

  5. 内存大小和处理器数量可以自己设置,我这里为默认设置,接着点击“下一步”。
  6. Ros镜像安装3-水印.png

  7. 选择“不添加虚拟硬盘”,点击“下一步”会显示新虚拟电脑的配置,点击“完成”后弹出警告,点击“继续”。
  8. Ros镜像安装4-水印.pngRos镜像安装5-水印.png

  9. 选中刚刚创建的虚拟机,选择“设置”。
  10. Ros镜像安装6-水印.png

  11. 选择“存储”,点击控制器最右边的 +号添加虚拟硬盘。
  12. Ros镜像安装7-水印.png

  13. 选择注册,将前面解压的 Ubuntu 64 RoArmVM.vmdk 虚拟硬盘添加进去后确认保存,双击左边的你刚刚创建的虚拟电脑就可以运行了。
  14. Ros镜像安装8-水印.png


Ubuntu 换源

针对国内用户,为了避免 DNS 污染,在 Ubuntu 中打开终端输入:

sudo nano /etc/hosts

添加以下内容后按 Ctrl+X 进行保存:

185.199.111.133 raw.githubusercontent.com
185.199.110.133 raw.githubusercontent.com
185.199.109.133 raw.githubusercontent.com
185.199.108.133 raw.githubusercontent.com
199.232.28.133 raw.githubusercontent.com
20.205.243.166 github.com

加载镜像文件-水印.png

接着将 Ubuntu 官方的软件源换成国内的镜像源,输入:

sudo nano /etc/apt/sources.list

将文件中的所有 http://cn.archive.ubuntu.com 替换为 http://mirrors.aliyun.com/ubuntu/加载镜像文件2-水印.png


下载 RoArm-M2-S ROS2 包

首先,需要下载 RoArm-M2-S ROS2 包,机械臂分成“夹爪”和“手腕”两种形态,因此这里也分成两种形态的 ROS2 包。

“夹爪”形态 ROS2 包下载:

wget https://www.waveshare.net/w/upload/e/e9/Roarm_ws_em0.zip

“手腕”形态 ROS2 包下载:

wget https://www.waveshare.net/w/upload/2/25/Roarm_ws_em1.zip

下载后进行解压,输入:

unzip Roarm_ws_em0.zip

unzip Roarm_ws_em1.zip


编译 RoArm-M2-S ROS2 包

安装 colcon 编译工具:

sudo apt-get install python3-colcon-ros

进入 roarm_ws_em0 工作空间进行 colcon build 编译:

cd roarm_ws_em0
colcon build

M2ROS2编译1.png

安装 ROS2 的方法二

方法二: 不同版本的 Ubuntu 对应不同版本的 ROS2,我们这里安装的 ROS2 是 Humble 版本的,所以 Ubuntu 镜像下载 22.04 版本的。点击 Ubuntu22.04 镜像下载并在 Oracle 上安装,本教程接下来的内容操作都是在 Ubuntu 上的终端里完成的。
如果在国内使用此方法来安装 ROS2,国内的网络环境可能会有些不太支持,导致下载过程非常缓慢,因此我们还是推荐使用方法一,直接下载已经配置好 ROS2 环境的 Ubuntu 镜像即可。不过我们这里还是会介绍 ROS2 标准的安装流程。


安装 Ubuntu 镜像

  1. 在左边工具栏处,点击“新建”。
  2. Ros镜像安装-水印.png

  3. 设置名称,类型设置为“Linux”,版本设置为“Ubuntu(64-bit)”,点击“下一步”。
  4. Ubuntu镜像安装-水印.png

  5. 内存大小和处理器数量可以自己设置,我这里为默认设置,接着点击“下一步”。
  6. Ros镜像安装3-水印.png

  7. 选择“现在创建虚拟硬盘”,磁盘空间大小可以自己设置,我这里也是默认,点击“下一步”会显示新虚拟电脑的配置,点击“完成”表示虚拟电脑创建成功。
  8. Ubuntu镜像安装2-水印.png
  9. 双击左边栏中刚刚创建的虚拟电脑启动,启动后会提示“未能启动虚拟电脑,需要加载虚拟光盘安装系统”,在“光驱”位置添加你下载好的 ubuntu22.04 镜像,点击“挂载并尝试启动”。
  10. Ubuntu镜像安装3-水印.png


Ubuntu 换源

针对国内用户,为了避免 DNS 污染,在 ubuntu 中打开终端输入:

sudu nano /etc/hosts

添加以下内容后按 Ctrl+X 进行保存:

185.199.111.133 raw.githubusercontent.com
185.199.110.133 raw.githubusercontent.com
185.199.109.133 raw.githubusercontent.com
185.199.108.133 raw.githubusercontent.com
199.232.28.133 raw.githubusercontent.com
20.205.243.166 github.com

接着输入:

sudo nano /etc/apt/sources.list

将文件中的所有 http://cn.archive.ubuntu.com 替换为 http://mirrors.aliyun.com/ubuntu/

添加 ROS2 软件源

sudo apt update && sudo apt install curl gnupg2 lsb-release
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo sh -c ‘echo “deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main” > /etc/apt/sources.list.d/ros2-latest.list’

如果执行第二句时报错:gpg:no valid OpenPGP data found
解决办法:上述命令中有管道符号,curl 是个类似下载的命令,因此尝试将上述命令分成两步来执行。

curl -s https://raw.githubuserconten.com/ros/rosdistro/master/ros.asc
sudo apt-key add -


安装 ROS2 Humble

先更新系统软件:

sudo apt-get update
sudo apt install libgbm1(此处是数字1)

安装 Ros2,版本是 humble 桌面版:

sudo apt install ros-humble-desktop

此时需要注意,它会提示少一些依赖,根据提示,少什么装什么即可。


环境变量设置

  1. 配置源命令
  2. 您需要在每次打开新的终端时运行以下命令,以便可以访问 ROS2:
    source /opt/ros/humble/setup.bash

    注意:确切的命令取决于您安装 ROS2 的位置。如果遇到问题,请确保文件路径指向您的安装路径。

  3. 将源命令添加到您的终端启动脚本中
  4. 如果您不想每次打开新的终端时都手动配置源命令(跳过任务1),您可以将该命令添加到您的终端启动脚本中:
    echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

    需要注意,这一句并不会将在当前的终端窗口将 ROS2 添加到 source,你需要打开新的终端窗口才可以应用这个变化。


针对 GUI 丢失的问题

当虚拟机关机后再开机,有概率会出现图形界面无法加载的问题,只有终端页面,你可以通过以下方法来解决:
在终端中一次输入以下命令,来重新安装图形界面需要的依赖库。

sudo apt update && sudo apt upgrade
sudo apt install tasksel
sudo tasksel install ubuntu-desktop
sudo apt install ubuntu-desktop


Ubuntu 开启 SSH 服务

sudo apt install openssh-server
sudo systemctl status ssh
sudo ufw allow ssh

之后你就可以使用其它设备来访问这个ubuntu虚拟机了


下载 RoArm-M2-S ROS2 包

首先,需要下载 RoArm-M2-S ROS2 包,机械臂分成“夹爪”和“手腕”两种形态,因此这里也分成两种形态的 ROS2 包。

“夹爪”形态 ROS2 包下载:

wget https://www.waveshare.net/w/upload/e/e9/Roarm_ws_em0.zip

“手腕”形态 ROS2 包下载:

wget https://www.waveshare.net/w/upload/2/25/Roarm_ws_em1.zip

下载后进行解压,输入:

unzip Roarm_ws_em0.zip

unzip Roarm_ws_em1.zip

编译 RoArm-M2-S ROS2 包

安装 colcon 编译工具:

sudo apt-get install python3-colcon-ros

进入 roarm_ws_em0 工作空间进行 colcon build 编译:

cd roarm_ws_em0
colcon build

M2ROS2编译1.png

如果此时编译报错,则进入 root 权限下进行编译:

sudo passwd 设置一个新的密码
su root 进入root权限
source /opt/ros/humble/setup.bash
cd roarm_ws_em0
colcon build

打开一个新的终端

cd roarm_ws_em0
source install/setup.bash

接着根据后续教程的内容进一步学习。


RoArm-M2-S 教程目录

RoArm-M2-S 使用教程

RoArm-M2-S ROS2基础教程