🎯 MoveIt 教程¶
MoveIt 运动规划教程,包含仿真、真机、重力补偿以及 MIT/CSP 控制模式切换。
📋 前提条件¶
| 项目 | 要求 |
|---|---|
| 🔧 ROS2 | Humble 已安装 |
| 📁 工作空间 | openarmx_ws 已编译 |
| 🤖 硬件 | 可选(仿真模式不需要) |
首次使用或更新源码后,建议确保相关包均已编译:
cd ~/openarmx_ws
colcon build --packages-select openarmx_gravity_comp openarmx_bringup openarmx_bimanual_moveit_config
source install/setup.bash
仿真模式¶
仿真模式无需连接真实硬件,适合用于学习、调试和算法验证。
启动仿真¶
cd ~/openarmx_ws
source install/setup.bash
ros2 launch openarmx_bimanual_moveit_config demo_sim.launch.py
⏱️ 等待 3-5 秒,RViz 窗口自动打开。
启动成功界面:
仿真操作示例¶
Hands_up: 在 Planning_Group 中选择 left_arm,然后在 Goal State 中选择 hands_up,点击 Execute。
Open_gripper: 在 Planning_Group 中选择 left_gripper,然后在 Goal State 中选择 open,点击 Execute。关闭 gripper 可在 Goal State 中选择 closed,再点击 Execute。
Home: 在 Planning_Group 中选择 left_arm,然后在 Goal State 中选择 home,点击 Execute。
真机模式¶
🚨 运动前确认:
- 急停按钮就位,随时可按下
- 工作区域无人员和障碍物
- 已完成电机测试
启动真机¶
真机 MoveIt 默认推荐 MIT + 重力补偿。重力补偿节点根据实时关节姿态计算前馈力矩,并通过 effort controller 注入 MIT 控制回路,可显著减小静态下垂误差。
cd ~/openarmx_ws
source install/setup.bash
ros2 launch openarmx_bimanual_moveit_config demo.launch.py \
control_mode:=mit \
enable_forward_effort:=true
启动前请确认 can0(右臂)和 can1(左臂)已配置为 1 Mbps、机器人已上电且各关节接近零位(偏差不超过 30°)。
MIT / CSP 模式切换¶
两种模式都由 control_mode 启动参数选择;切换模式前应停止当前 launch,再重新启动,不能在运行中直接切换。
| 模式 | 控制方式 | 优点 | 局限与适用建议 |
|---|---|---|---|
mit(推荐) |
发送位置、速度、KP、KD 和前馈力矩的运动控制帧 | 支持力矩前馈和重力补偿;柔顺性好,适合 MoveIt、力控、遥操作和示教 | 需要合理设置 KP/KD;未启用补偿时会有约 6° 的重力稳态误差,参数不匹配时可能出现抖动 |
csp |
CiA402 周期同步位置模式,发送目标位置 | 位置刚性和定位精度较高,接口简单 | 负载能力很低,不建议在末端增加负载;负载或堵转时容易导致电机过流、过热甚至烧毁。CSP 路径不使用 effort/τ_ff,因此不提供本节的重力补偿效果 |
切换到 CSP(仅建议空载、低速、短时测试):
ros2 launch openarmx_bimanual_moveit_config demo.launch.py \
control_mode:=csp
不要在 CSP 模式下依赖 enable_forward_effort:=true;重力补偿面向 MIT 控制链路,CSP 下 effort 指令不会转换为电机前馈力矩。若需要重力补偿,请使用 MIT:
ros2 launch openarmx_bimanual_moveit_config demo.launch.py \
control_mode:=mit enable_forward_effort:=true
⏱️ 等待 3-5 秒,RViz 窗口自动打开。
启动成功界面:
第一次运动¶
步骤 1:选择控制对象
在左侧 Planning 面板的 Planning Group 下拉菜单中选择 right_arm 或 left_arm。
步骤 2:设置目标位置
- 💡 推荐新手:点击 "Select Random Valid Goal" 按钮
- 🎨 进阶用户:拖动 3D 视图中的彩色交互标记
步骤 3:规划并执行
- 点击 "Plan" 按钮(等待规划完成)
- 检查橙色轨迹是否合理
- 点击 "Execute" 按钮开始运动
真机操作视频¶
常用操作¶
| 操作 | 步骤 |
|---|---|
| 调整速度 | Planning 面板 → Velocity Scaling Factor(建议 0.1-0.3) |
| 回零位 | Goal State → home → Update → Plan & Execute |
| 手动控制 | 拖动 3D 视图中的彩色交互标记 |
重力补偿检查¶
确认补偿控制器已启动:
ros2 control list_controllers | grep effort
ros2 topic echo /left_forward_effort_controller/commands
ros2 topic echo /right_forward_effort_controller/commands
正常情况下应能看到 effort controller 处于 active,并持续输出随姿态变化的前馈力矩。g_scale 默认值为 1.05,可运行时调整:
ros2 param set /gravity_comp_node g_scale 1.05






