跳到主要内容

ROS2 教程

WSL2 与 ROS2 环境安装配置

WSL2 是 Windows 上运行 Linux 发行版的环境。本教程使用 WSL2 Ubuntu 22.04 + ROS2 Humble 连接实体 RoArm-M3。

本教程不是仿真教程。后续 roarm_driver、RViz2、MoveIt2、键盘控制、指令控制和 MTC 演示都会连接实体 RoArm-M3,执行控制命令会让机械臂真实运动。

安装前确认

右键点击 Windows 开始菜单,选择 Windows PowerShell(管理员)。

Powershell 打开

先执行:

wsl --list --online

如果输出中出现 Wsl/WSL_E_WSL_OPTIONAL_COMPONENT_REQUIRED,表示 WSL 相关 Windows 可选组件尚未启用。

wsl2 报错

在管理员 PowerShell 中启用“适用于 Linux 的 Windows 子系统”:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

启用“虚拟机平台”:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Windows 功能设置 2

执行完成后,重启 Windows。

也可以通过 Windows 图形界面启用功能:打开“控制面板” > “程序” > “启用或关闭 Windows 功能”,勾选“适用于 Linux 的 Windows 子系统”和“虚拟机平台”,确认后重启 Windows。PowerShell 命令和图形界面二选一即可。

Windows 功能设置

安装 WSL2 Ubuntu 22.04

重启后,再次以管理员身份打开 Windows PowerShell。可先尝试更新 WSL:

wsl --update

如果出现 Wsl/UpdatePackage/0x80190193 等更新错误,改用在线源下载更新包:

wsl --update --web-download
提示

wsl --update 用于更新 WSL 程序包。若普通更新失败,优先使用 wsl --update --web-download。如果两条命令都失败,先继续执行后续 wsl --statuswsl --list --online 检查;若仍无法列出发行版,再检查网络、代理、防火墙或 Windows 更新策略。

查看 WSL 状态:

wsl --status

如果输出中包含:

Default Version: 2

表示默认版本已是 WSL2。

查看可安装发行版:

wsl --list --online

安装 Ubuntu 22.04:

wsl --install -d Ubuntu-22.04

如果下载异常,使用在线源安装:

wsl --install --web-download -d Ubuntu-22.04

在线源安装成功后,会自动启动 Ubuntu 22.04,并进入初始化界面。根据提示创建默认 Linux 账户,并输入两次密码。密码输入时终端不会显示字符。

示例输出:

Provisioning the new WSL instance Ubuntu-22.04
This might take a while...
Create a default Unix user account: ag
New password:
Retype new password:
passwd: password updated successfully
ag@DESKTOP-911KDB6:/mnt/c/Windows/system32$

上方 ag 只是账户名示例,根据实际需要设置。

看到 ag@DESKTOP-911KDB6:/mnt/c/Windows/system32$ 这类提示符,表示已经进入 Ubuntu 22.04 终端。后续 wsl 检查命令需要回到 Windows PowerShell 执行,先输入:

exit

返回 Windows PowerShell 后,若当前窗口不是管理员 PowerShell,重新以管理员身份打开 Windows PowerShell。将默认 WSL 版本设置为 WSL2:

wsl --set-default-version 2

在管理员 PowerShell 中查看已安装发行版,并确认目标发行版的 VERSION 为 2

wsl --list --verbose

如果目标发行版的 VERSION 不是 2,在管理员 PowerShell 中执行:

wsl --set-version Ubuntu-22.04 2

进入 Ubuntu 22.04:

wsl -d Ubuntu-22.04

也可以通过 WSL2 图形化终端进入 Ubuntu 22.04:打开 Windows 开始菜单,搜索 Ubuntu 22.04,点击进入。

Ubuntu 22.04 终端入口

提示

在WSL2的图形化终端中,在光标处点击鼠标右键,可以实现粘贴Windows中复制的代码。

ROS2 镜像下载

下载 RoArm-M3 ROS2 Humble WSL2 镜像文件:

下载完成后,记录镜像文件所在路径。下文使用 E:\WSL_Export\RoArm_M3_Final_WSL2_ROS2_Humble.tar 作为示例路径,按实际保存位置替换。

导入 ROS2 镜像

以管理员身份打开 Windows PowerShell,创建 WSL 镜像存放目录:

mkdir D:\WSL\RoArm_M3

在管理员 PowerShell 中导入下载的 ROS2 镜像:

wsl --import RoArm_M3 D:\WSL\RoArm_M3 E:\WSL_Export\RoArm_M3_Final_WSL2_ROS2_Humble.tar

导入完成后,Windows 开始菜单中会出现 RoArm_M3 终端入口。点击该入口进入镜像终端。

RoArm_M3 终端入口

注意

RoArm_M3D:\WSL\RoArm_M3E:\WSL_Export\RoArm_M3_Final_WSL2_ROS2_Humble.tar 均为示例值,按实际发行版名称、安装目录和镜像文件路径替换。

导入后,在管理员 PowerShell 中确认发行版 VERSION 为 2

wsl --list --verbose

如果 RoArm_M3 的 VERSION 不是 2,执行:

wsl --set-version RoArm_M3 2

检查 ROS2 与工作区

打开 RoArm_M3 终端,检查 ROS2 Humble 环境:

source /opt/ros/humble/setup.bash
ros2 --help

如果终端输出中包含以下内容,说明 ROS2 命令行工具可正常调用:

ros2 is an extensible command-line tool for ROS 2.

继续检查输出中的 Commands 列表。能看到 launchnodepkgrunservicetopic 等命令,即可继续后续步骤。

ROS2 Humble 环境检查

备注

ROS2 Humble 的 ros2 命令不支持 ros2 --version。如果执行后出现 ros2: error: unrecognized arguments: --version,表示 ros2 命令已被识别,但该参数不适用。环境检查以 ros2 --helpros2 pkg list 为准。

继续执行:

ros2 pkg list

如果命令能输出功能包名称列表,说明 ROS2 环境已加载。

环境检查

若提示 ros2: command not found,重新执行:

source /opt/ros/humble/setup.bash

检查工作区路径:

cd ~/roarm_ws/roarm_ws-ros2-humble
ls

检查目录

如果工作区中已有 install/ 目录,直接加载工作区环境:

source install/setup.bash

如果缺少 install/ 目录,在工作区内执行构建:

colcon build
source install/setup.bash

终端约定

后续每个新的 RoArm_M3 终端都先执行以下统一初始化命令:

cd ~/roarm_ws/roarm_ws-ros2-humble

source /opt/ros/humble/setup.bash
source install/setup.bash
export ROARM_MODEL=roarm_m3
注意

同一个 RoArm_M3 终端执行一次统一初始化命令即可。若该终端没有关闭,并且已经执行过上述命令,可直接继续运行后续 ROS2 命令。新打开的 RoArm_M3 终端必须重新执行一次。

后续终端分工如下:

  • Windows PowerShell:在 Windows 中执行,用于查看 RoArm_M3 发行版和挂载 USB 设备。
  • RoArm_M3 终端 1:运行 roarm_driver,作为机械臂驱动节点终端。
  • RoArm_M3 终端 2:运行 RViz2、MoveIt2、Servo、MTC 等控制例程。
  • RoArm_M3 终端 3:运行键盘控制程序、服务调用命令或 MTC 子演示。
注意

后续步骤均在 WSL2 Ubuntu 22.04 发行版中执行,并直接加载 ROS2 Humble 和 RoArm-M3 工作区环境。一次只运行一个控制例程,避免多个节点同时控制实体机械臂。

连接 WSL2 与机械臂 USB 串口

安装 usbipd-win

前往 usbipd-win 项目发布页,下载最新版 .msi 安装包。下载完成后,双击 .msi 文件,按安装向导完成安装。

usbipd

安装完成后,以管理员身份打开 Windows PowerShell。执行以下命令:

usbipd --version

如有版本号返回,则确认 usbipd-win 已安装

注意

usbipd-win 安装在 Windows 侧。后续 usbipd listusbipd bindusbipd attach 均在 Windows PowerShell 中执行,不在 RoArm_M3 终端中执行。

使用 usbipd-win 挂载 USB 设备

先给机械臂接通电源,打开机械臂驱动板电源开关,再用 USB 线连接机械臂驱动板中间的 Type-C 接口。边缘 Type-C 接口用于雷达通信,不用于 ESP32 通信。

接口位置

危险

机械臂启动时会回到初始化状态,注意保持周边环境空旷。

先打开 RoArm_M3 发行版,并保持该窗口处于打开状态。可打开 Windows 开始菜单,搜索 RoArm_M3,点击进入 WSL2 图形化终端。也可以在 Windows PowerShell 中执行:

wsl -d RoArm_M3

另开管理员 PowerShell,查看 Windows 识别到的 USB 设备:

usbipd list

在输出中找到机械臂串口设备。实测中设备显示为 Silicon Labs CP210x USB to UART Bridge (COM10),对应 BUSID 为 4-1

串口设备

在管理员 PowerShell 中绑定机械臂 USB 设备:

usbipd bind --busid 4-1

如果输出 Device with busid '4-1' was already shared,表示该 USB 设备已经共享过,可继续执行挂载步骤。

在管理员 PowerShell 中挂载到 RoArm_M3 发行版。usbipd-win 5.x 可使用 --wsl RoArm_M3 指定发行版:

usbipd attach --wsl RoArm_M3 --busid 4-1

如果输出中出现以下信息,表示挂载成功:

usbipd: info: Using WSL distribution 'RoArm_M3' to attach; the device will be available in all WSL 2 distributions.
usbipd: info: Detected networking mode 'nat'.
usbipd: info: Using IP address ... to reach the host.
注意
  • 4-1 只是 BUSID 示例,以 usbipd list 输出为准。
  • 重新插拔 USB、重启电脑或执行 wsl --shutdown 后,通常需要重新执行 attach
提示
  • 若执行 usbipd attach --wsl --busid 4-1 后提示 There is no WSL 2 distribution running,先打开 RoArm_M3 终端,再执行 usbipd attach --wsl RoArm_M3 --busid 4-1
  • 若提示 A specific distribution is no longer required,可继续按输出信息判断是否挂载成功。

在 RoArm_M3 终端中确认串口

在 RoArm_M3 终端中执行:

lsusb
ls /dev/ttyUSB* 2>/dev/null
ls /dev/ttyACM* 2>/dev/null

串口确认

如果输出中出现 /dev/ttyUSB0,后续命令按 /dev/ttyUSB0 执行。roarm_driver 默认串口也是 /dev/ttyUSB0。若实际设备为 /dev/ttyACM0 或其它 tty 设备,后续权限命令和驱动启动命令都要改为检测到的设备名。若没有输出任何 tty 设备,说明机械臂 USB 串口尚未出现在 RoArm_M3 终端中,返回上一节重新执行 usbipd listusbipd bindusbipd attach

给串口设备读写权限:

sudo chmod 666 /dev/ttyUSB0

如果实际设备为 /dev/ttyACM0

sudo chmod 666 /dev/ttyACM0

密码为之前设置好的 Linux 账户密码,输入时不会显示明文。

注意

如果权限命令报错,重新确认 usbipd-win 是否已 attach 到 RoArm_M3 发行版,并确认 RoArm_M3 终端中实际出现的 tty 设备名。

驱动节点控制现实中的机械臂

roarm_driver 是实体机械臂驱动节点。后续 display、MoveIt2、键盘控制、指令控制和 MTC 测试都依赖该节点。运行成功后,该终端可能没有明显输出,这是正常现象。

启动 roarm_driver 驱动节点

危险

执行后会连接实体机械臂。清空机械臂周围易碎品,远离儿童,确认供电稳定,避免机械臂撞到障碍物或触碰人体。

如果是顺着上一节完成串口确认,当前打开的 RoArm_M3 终端可直接作为 RoArm_M3 终端 1。若该终端尚未执行过统一初始化命令,先执行:

cd ~/roarm_ws/roarm_ws-ros2-humble

source /opt/ros/humble/setup.bash
source install/setup.bash
export ROARM_MODEL=roarm_m3

启动 roarm_driver 驱动节点:

ros2 run roarm_driver roarm_driver

如果实际串口不是 /dev/ttyUSB0,启动时通过 serial_port 参数指定。例如实际设备为 /dev/ttyACM0 时执行:

ros2 run roarm_driver roarm_driver --ros-args -p serial_port:=/dev/ttyACM0

若启动时报错 could not open port /dev/ttyUSB0No such file or directory: '/dev/ttyUSB0',表示 roarm_driver 没有找到默认串口。先回到在 RoArm_M3 终端中确认串口,确认 /dev/ttyUSB0 已出现并完成权限设置,再重新执行本节命令。

若出现 ROARM_MODEL 相关报错,重新执行统一初始化命令,并确认其中包含:

export ROARM_MODEL=roarm_m3
提示

RoArm_M3 终端 1 是驱动节点终端。后续测试都要保持该终端运行,不要关闭。若不小心关闭了 RoArm_M3 终端 1,重新打开 RoArm_M3 终端 1,并按本节上方命令重新运行。

ROS2 RViz2 显示并控制实体机械臂

启动 RViz2 模型关节界面

危险

执行 display.launch.py 后,实体机械臂会真实运动。清空机械臂周围易碎品,远离儿童,确认供电稳定,避免机械臂撞到障碍物或触碰人体。

保持 RoArm_M3 终端 1 的 roarm_driver 运行。若 RoArm_M3 终端 1 已关闭或 roarm_driver 已结束,先按启动 roarm_driver 驱动节点重新启动,再继续本节。打开 RoArm_M3 终端 2,执行统一初始化命令:

cd ~/roarm_ws/roarm_ws-ros2-humble

source /opt/ros/humble/setup.bash
source install/setup.bash
export ROARM_MODEL=roarm_m3

启动 RViz2 模型关节界面:

ros2 launch roarm_description display.launch.py

display.launch.py 启动后,RViz2 会打开模型显示界面和 Joint State Publisher 关节控制窗口。

RViz2 模型与关节控制窗口

界面主要看三处:

  • 左侧 Displays:Global Status: OkFixed Frame: OKRobotModel Status: Ok 表示模型加载正常。
  • 中间 3D 视图区:显示 RoArm-M3 模型,模型姿态会跟随关节滑块变化。
  • Joint State Publisher 窗口:拖动 base_link_to_link1link1_to_link2link2_to_link3link3_to_link4link4_to_link5link5_to_gripper_link 等滑块控制对应关节。
  • 视角操作:在 3D 视图区中,左键拖动旋转视角,右键拖动平移视角,滚轮缩放视图,中键拖动垂直平移。

关节滑块对应关系:

滑块名称对应部位
base_link_to_link1底座旋转
link1_to_link2肩部关节
link2_to_link3肘部关节
link3_to_link4腕部俯仰
link4_to_link5腕部旋转
link5_to_gripper_link夹爪关节

拖动滑块或点击 Randomize 后,Joint State Publisher 会发布 /joint_statesroarm_driver 订阅关节状态后,再把关节角转换为 JSON 控制指令发送给实体机械臂。因此,实体机械臂会跟随 RViz2 模型同步运动。

危险

Randomize 会让实体机械臂随机运动到一个位置,有碰撞桌面或周围物体的风险,建议断开实体机械臂连接再测试。

MoveIt2 拖拽交互

启动 MoveIt2 启动文件

启动 MoveIt2 前,先在 RoArm_M3 终端 2 按 Ctrl+C 结束 display.launch.py。保持 RoArm_M3 终端 1 的 roarm_driver 运行。若 RoArm_M3 终端 1 已关闭或 roarm_driver 已结束,先按启动 roarm_driver 驱动节点重新启动,再继续本节。

危险

执行 MoveIt2 启动命令后,实体机械臂会运动到 MoveIt2 初始姿态。清空机械臂周围易碎品,远离儿童,确认供电稳定,避免机械臂撞到障碍物或触碰人体。

如果 RoArm_M3 终端 2 未关闭,并且刚才只是按 Ctrl+C 结束了 display.launch.py,ROS2 环境仍然有效,可直接执行下一条 MoveIt2 启动命令。若 RoArm_M3 终端 2 是新打开的,或不确定当前环境是否已加载,先执行统一初始化命令:

cd ~/roarm_ws/roarm_ws-ros2-humble

source /opt/ros/humble/setup.bash
source install/setup.bash
export ROARM_MODEL=roarm_m3

启动 MoveIt2 启动文件:

ros2 launch roarm_moveit roarm_moveit.launch.py

MoveIt2 启动后,RViz2 会显示 MotionPlanning 面板和机械臂模型。

MoveIt2 界面

界面主要看三处:

  • 左侧 Displays:Fixed Framebase_linkGlobal Status: Ok 表示显示状态正常。
  • 左下 MotionPlanning 面板:Planning Group 选择规划组,Plan 只规划轨迹,Plan & Execute 会规划并执行轨迹。hand 用于机械臂末端位姿规划,gripper 用于夹爪 open / close
  • 中间 3D 视图区:橙色模型为当前机械臂状态,末端彩色控制球用于拖拽目标位姿。

基本操作:

  1. 在 MotionPlanning 面板中将 Planning Group 设为 hand
  2. 在 3D 视图区拖动末端彩色控制球,改变目标位置或姿态。
  3. 点击 Plan 查看规划轨迹。
  4. 确认轨迹安全后,点击 Plan & Execute 执行。
  5. 需要复位时,将 Goal State 设为 home,再点击 Plan & Execute
危险

点击 Plan & Execute 会让实体机械臂执行规划轨迹。确认机械臂运动范围内没有障碍物或人体。

夹爪测试时,将 Planning Group 改为 gripper,在 Goal State 中选择 openclose,再点击 Plan & Execute。执行前确认夹爪附近没有手指、线材或易碎品。

键盘控制机械臂

键盘控制前,先结束上一项 MoveIt2 拖拽交互例程。保持 RoArm_M3 终端 1 的 roarm_driver 运行。若 RoArm_M3 终端 1 已关闭或 roarm_driver 已结束,先按启动 roarm_driver 驱动节点重新启动,再继续本节。

启动 MoveIt2 Servo 启动文件

危险

启动 MoveIt2 Servo 启动文件后,实体机械臂可能进入控制初始状态。清空机械臂周围易碎品,远离儿童,确认供电稳定,避免机械臂撞到障碍物或触碰人体。

在 RoArm_M3 终端 2 执行统一初始化命令:

cd ~/roarm_ws/roarm_ws-ros2-humble

source /opt/ros/humble/setup.bash
source install/setup.bash
export ROARM_MODEL=roarm_m3

启动 MoveIt2 Servo 启动文件:

ros2 launch roarm_moveit_servo servo_control.launch.py

servo控制界面

启动键盘控制程序

危险

按键会直接控制实体机械臂运动。确认机械臂运动范围内没有障碍物、儿童或人体。

打开 RoArm_M3 终端 3,执行统一初始化命令:

cd ~/roarm_ws/roarm_ws-ros2-humble

source /opt/ros/humble/setup.bash
source install/setup.bash
export ROARM_MODEL=roarm_m3

启动键盘控制程序:

ros2 run roarm_moveit_servo keyboardcontrol

启动成功后,RoArm_M3 终端 3 会显示键盘控制说明。RoArm_M3 终端 2 中的 MoveIt2 Servo 启动文件需要保持运行,RoArm_M3 终端 3 中的键盘控制程序负责接收按键输入。

键盘控制程序

键盘控制程序分为关节点动和笛卡尔点动两类。先确认 RoArm_M3 终端 3 为当前输入焦点,再按键控制。不同版本的终端提示可能略有差异,实际操作以启动后终端打印的按键说明为准。

通用按键:

按键动作
J选择关节点动模式
T选择笛卡尔点动模式
R反转点动方向
W / E在规划坐标系和末端执行器坐标系之间切换
Q退出键盘控制

关节控制按键:

按键动作
1底座旋转关节点动
2肩部关节点动
3肘部关节点动
4腕部俯仰关节点动
5腕部旋转关节点动
G控制夹爪

笛卡尔控制按键:

按键动作
/ 笛卡尔方向点动
/ 笛卡尔方向点动
, / .笛卡尔方向点动
提示

保持 RoArm_M3 终端 3 为当前输入焦点,按键才会被键盘控制程序接收。

指令控制机械臂

指令控制前,先结束上一项控制例程。保持 RoArm_M3 终端 1 的 roarm_driver 运行。若 RoArm_M3 终端 1 已关闭或 roarm_driver 已结束,先按启动 roarm_driver 驱动节点重新启动,再继续本节。

启动指令控制启动文件

危险

启动指令控制启动文件和执行后续服务调用会控制实体机械臂运动。清空机械臂周围易碎品,远离儿童,确认供电稳定,避免机械臂撞到障碍物或触碰人体。

在 RoArm_M3 终端 2 执行统一初始化命令:

cd ~/roarm_ws/roarm_ws-ros2-humble

source /opt/ros/humble/setup.bash
source install/setup.bash
export ROARM_MODEL=roarm_m3

启动指令控制启动文件:

ros2 launch roarm_moveit_cmd command_control.launch.py

打开 RoArm_M3 终端 3,执行统一初始化命令:

cd ~/roarm_ws/roarm_ws-ros2-humble

source /opt/ros/humble/setup.bash
source install/setup.bash
export ROARM_MODEL=roarm_m3

执行服务调用前,可先查看接口字段。后续示例以接口输出字段为准:

ros2 interface show roarm_msgs/srv/GetPoseCmd
ros2 interface show roarm_msgs/srv/MoveJointCmd
ros2 interface show roarm_msgs/srv/MoveLineCmd
ros2 interface show roarm_msgs/srv/MoveCircleCmd

获取当前位置

该命令只读取当前位姿:

ros2 service call /get_pose_cmd roarm_msgs/srv/GetPoseCmd

控制机械臂末端运动到指定位置

危险

执行 /move_joint_cmd 会让实体机械臂运动。确认机械臂运动路径内没有障碍物或人体。

ros2 service call /move_joint_cmd roarm_msgs/srv/MoveJointCmd "{x: 0.3, y: 0, z: 0.1, roll: 0.2, pitch: 0.2, yaw: 0}"

xyz 为目标位置坐标,单位为 m。rollpitchyaw 为末端执行器旋转角度,单位为 rad。

控制机械臂末端沿直线运动

危险

执行 /move_line_cmd 会让实体机械臂沿直线轨迹运动。确认机械臂运动路径内没有障碍物或人体。

ros2 service call /move_line_cmd roarm_msgs/srv/MoveLineCmd "{x: 0.2, y: 0.2, z: 0.1}"

xyz 为目标位置坐标,单位为 m。

控制夹爪到指定弧度位置

危险

执行 /gripper_cmd 会让实体夹爪运动。确认夹爪附近没有手指、线材或易碎品。

ros2 topic pub /gripper_cmd std_msgs/msg/Float32 "{data: 0.5}" -1

data 为夹爪目标弧度,单位为 rad,范围按原例程为 0.0~1.5

控制 LED

该命令用于控制夹爪上的 LED,data 为亮度数值,范围为 0~255

ros2 topic pub /led_ctrl std_msgs/msg/Float32 "{data: 0}" -1

在固定高度上画圆

如需在 RViz2 中查看末端轨迹,可在 RViz2 中点击 Add,添加 RobotModel。

添加 RobotModel

在 RobotModel 选项卡内,将 Description Topic 设为 /robot_description

选择 Description Topic

在 Links 选项中找到 hand_tcp,展开后勾选 Show Trail,用于查看末端关节运动轨迹。

选择 Show Trail

危险

执行 /move_circle_cmd 会让实体机械臂沿圆弧轨迹运动。确认机械臂运动路径内没有障碍物或人体。

ros2 service call /move_circle_cmd roarm_msgs/srv/MoveCircleCmd "{x0: 0.2, y0: 0.1, z0: 0.2, x1: 0.2, y1: 0.2, z1: 0.2}"

x0y0z0 为中心点坐标,x1y1z1 为目标点坐标,单位为 m。

MoveIt MTC 规划轨迹

MTC 演示前,先结束上一项控制例程。保持 RoArm_M3 终端 1 的 roarm_driver 运行。若 RoArm_M3 终端 1 已关闭或 roarm_driver 已结束,先按启动 roarm_driver 驱动节点重新启动,再继续本节。MTC 同样会驱动实体机械臂,一次只运行一个 run.launch.py

启动 MTC 演示界面

危险

启动 MTC 演示界面后,实体机械臂可能进入演示初始状态。清空机械臂周围易碎品,远离儿童,确认供电稳定,避免机械臂撞到障碍物或触碰人体。

在 RoArm_M3 终端 2 执行统一初始化命令:

cd ~/roarm_ws/roarm_ws-ros2-humble

source /opt/ros/humble/setup.bash
source install/setup.bash
export ROARM_MODEL=roarm_m3

启动 MTC 演示界面:

ros2 launch roarm_moveit_mtc_demo demo.launch.py

打开 RoArm_M3 终端 3,执行统一初始化命令:

cd ~/roarm_ws/roarm_ws-ros2-humble

source /opt/ros/humble/setup.bash
source install/setup.bash
export ROARM_MODEL=roarm_m3

笛卡尔演示

危险

执行 cartesian 演示会让实体机械臂运动。确认机械臂运动路径内没有障碍物或人体。

ros2 launch roarm_moveit_mtc_demo run.launch.py exe:=cartesian

在界面中选择对应的完整路径后,点击 Exec 执行 Demo。

笛卡尔演示

笛卡尔模块演示

切换演示前,在 RoArm_M3 终端 3 按 Ctrl+C 结束上一个 run.launch.py

危险

执行 cartesian_modular 演示会让实体机械臂运动。确认机械臂运动路径内没有障碍物或人体。

ros2 launch roarm_moveit_mtc_demo run.launch.py exe:=cartesian_modular

在界面中选择对应的完整路径后,点击 Exec 执行 Demo。

笛卡尔模块演示

Pick Place 演示

切换演示前,在 RoArm_M3 终端 3 按 Ctrl+C 结束上一个 run.launch.py

危险

执行 pick_place 演示会让实体机械臂运动。确认机械臂运动路径内没有障碍物或人体。

ros2 launch roarm_moveit_mtc_demo run.launch.py exe:=pick_place

在界面中选择对应的完整路径后,点击 Exec 执行 Demo。

Pick Place 演示