Soma Zero Tutorials
🔍 搜索功能尚未开启,敬请期待。

3.10 安装 MoveIt2 以及初体验

一、MoveIt2 简介

1.1 什么是 MoveIt2

MoveIt2 是 ROS2 生态中最强大的运动规划框架,为机械臂提供:

  • 运动规划:自动生成从起点到终点的无碰撞轨迹
  • 运动学求解:正/逆运动学计算
  • 碰撞检测:实时检测机械臂与环境的碰撞
  • 轨迹执行:控制机械臂按规划轨迹运动
  • 3D 感知集成:结合深度相机进行避障规划

简单来说,MoveIt2 让你可以告诉机械臂"移动到这个位置",它会自动计算如何安全地到达目标。

MoveIt vs MoveIt2:MoveIt 是 ROS1 版本,MoveIt2 是为 ROS2 重写的版本。本课程使用 MoveIt2。

1.2 为什么需要 MoveIt2

没有 MoveIt2 有 MoveIt2
手动计算每个关节角度 只需指定末端目标位姿
自己实现逆运动学算法 内置多种 IK 求解器
手动检测碰撞 自动碰撞检测与避障
轨迹插值需要自己写 自动生成平滑轨迹

对于机械臂视觉应用,MoveIt2 让你专注于"要做什么",而不是"怎么控制关节"。

二、安装 MoveIt2

2.1 安装方式选择

MoveIt2 提供两种安装方式:

方式 适用场景 优点 缺点
二进制安装(推荐) 快速体验、正常使用 一条命令完成,稳定可靠 无法修改源码
源码编译 需要修改 MoveIt 源码、使用最新开发版 可定制、可贡献代码 编译耗时长(30 分钟 +)

本课程推荐二进制安装,除非你有特殊需求。

2.2 二进制安装(推荐)

确保已安装 ROS2 Jazzy 并配置好环境后,执行:

sudo apt update sudo apt install ros-jazzy-moveit

安装完成后验证:

ros2 pkg list | grep moveit

应该能看到一系列 moveit_* 包:

moveit_common moveit_configs_utils moveit_core moveit_kinematics moveit_msgs moveit_planners moveit_planners_ompl moveit_plugins moveit_py moveit_ros moveit_ros_benchmarks moveit_ros_move_group moveit_ros_occupancy_map_monitor moveit_ros_perception moveit_ros_planning moveit_ros_planning_interface moveit_ros_robot_interaction moveit_ros_visualization moveit_ros_warehouse moveit_runtime moveit_setup_framework moveit_simple_controller_manager ...

提示:二进制安装的 MoveIt2 已经过充分测试,适合大多数用户使用。

2.3 源码编译安装(可选)

如果你需要修改 MoveIt2 源码或使用最新开发版本,可以从源码编译安装。

注意:源码编译需要较长时间(30 分钟以上,取决于电脑性能),且占用约 5GB 磁盘空间。普通用户建议使用二进制安装。

这里提供一键编译脚本,方便有需要的同学:

使用方法:

chmod +x install_moveit2_jazzy.sh && ./install_moveit2_jazzy.sh

二进制与源码编译的冲突:ROS2 中,二进制包和源码编译的包会冲突。如果你已经用二进制安装了 MoveIt2,想切换到源码编译版本,脚本会自动帮你卸载二进制包。反之亦然。

三、MoveIt2 初体验

3.1 下载测试包

下载 Episode1 机械臂的 MoveIt2 配置包:

下载后解压到之前下载 Episode1 ROS2 包同级目录,注意不是我们从头创建的课程文件夹 ~/ros2_ws

3.2 编译与运行

# 进入工作空间目录 cd ~/your_workspace # 编译 colcon build # 设置环境 source install/setup.bash

启动 Episode1 机械臂:

ros2 run episode_controller interface --ros-args -p init_mode:=1 -p usb_index:=1

启动 MoveIt2 Demo:

ros2 launch episode1_urdf_1113_moveit demo.launch.py

一切正常的话,你会看到 RViz 界面启动,显示机械臂模型:

3.3 在 RViz 中操作机械臂

启动后,你可以在 RViz 中进行以下操作:

  1. 拖拽末端执行器:点击机械臂末端的交互标记(橙色球和圆环),拖拽到目标位置
  2. 规划轨迹:点击 MotionPlanning 面板中的 "Plan" 按钮,MoveIt2 会计算到达目标的轨迹
  3. 执行运动:点击 "Execute" 按钮,机械臂会按规划轨迹运动
  4. Plan & Execute:一键规划并执行

后续章节我们会详细讲解 MoveIt2 的各项功能,包括 Python API 编程等。