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 磁盘空间。普通用户建议使用二进制安装。
这里提供一键编译脚本,方便有需要的同学:
- 源码编译 MoveIt2:点击下载
使用方法:
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 中进行以下操作:
- 拖拽末端执行器:点击机械臂末端的交互标记(橙色球和圆环),拖拽到目标位置
- 规划轨迹:点击 MotionPlanning 面板中的 "Plan" 按钮,MoveIt2 会计算到达目标的轨迹
- 执行运动:点击 "Execute" 按钮,机械臂会按规划轨迹运动
- Plan & Execute:一键规划并执行
后续章节我们会详细讲解 MoveIt2 的各项功能,包括 Python API 编程等。
