教程三 RoArm-M1 VirtualBox ROS2入门教程

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

RoArm-M1 教程目录

RoArm-M1 VirtualBox ROS2入门视频教程

RoArm-M1 VirtualBox ROS2入门教程

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

ROS2简介

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

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

安装Oracle VM VirtualBox虚拟机

下载并安装Oracle VM VirtualBox,这是一款免费的虚拟机软件,可以让你在自己的电脑上运行虚拟操作系统,我们在Windows系统电脑上运行虚拟机来安装ubuntu操作系统,接着在ubuntu操作系统上安装配置ROS2来控制机械臂。
需要注意的是,虽然ROS2有Windows的版本,但是Windows版本的ROS2相关资料并不多,所以我们默认提供虚拟机的方案来运行ROS2。
点击Oracle VM VirtualBox官方下载链接,安装过程很简单,一直点击下一步即可。如果已安装,则跳过这步。

安装ROS2的方法一

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

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

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

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

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

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

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

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

  7. 选择注册,将前面解压的Ubuntu 64 RoArmVM.vmdk虚拟硬盘添加进去后确认保存,双击左边的你刚刚创建的虚拟电脑就可以运行了。
    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

编译ROS2 RoArm-M1包

安装colcon编译工具

sudo apt-get install python3-colcon-ros

进入roarm_ws文件夹进行colcon build编译

cd roarm_ws
colcon build

编译roarm1.png

安装ROS2的方法二

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

安装 Ubuntu 镜像

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

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

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

  4. 选择“现在创建虚拟硬盘”,磁盘空间大小可以自己设置,我这里也是默认,点击“下一步”会显示新虚拟电脑的配置,点击“完成”表示虚拟电脑创建成功。
    Ubuntu镜像安装2-水印.png

  5. 双击左边栏中刚刚创建的虚拟电脑启动,启动后会提示“未能启动虚拟电脑,需要加载虚拟光盘安装系统”,在“光驱”位置添加你下载好的ubuntu22.04镜像,点击“挂载并尝试启动”。
    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. 您需要在每次打开新的终端时运行以下命令,以便可以访问ROS 2命令:
    source /opt/ros/humble/setup.bash

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

  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虚拟机了

下载ROS2 RoArm-M1包(下列命令中RoArm-M1要区分大小写)

sudo git clone https://github.com/waveshareteam/RoArm-M1.git

编译ROS2 RoArm-M1包(下列命令中RoArm-M1要区分大小写)

安装colcon编译工具

sudo apt-get install python3-colcon-ros
cd RoArm-M1
colcon build

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

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

打开一个新的终端

cd RoArm-M1
source install/setup.bash

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