Moveit2 快速入门

规划Kinova机械臂

bash 复制代码
ros2 launch moveit2_tutorials demo.launch.py

启动后会打开:

  • RViz 可视化界面
  • MoveGroup 规划节点
  • PlanningScene 场景
  • 虚拟控制器

1. MoveIt 的规划本质

MoveIt 的核心任务:

text 复制代码
给定:

起始状态
↓
目标状态

求解:

一条无碰撞运动轨迹

MoveIt 内部主要流程:

text 复制代码
当前关节状态
↓
目标状态 / 目标位姿
↓
逆运动学 IK
↓
碰撞检测
↓
OMPL 路径搜索
↓
轨迹时间参数化
↓
发送控制器执行

2. 规划夹爪

  1. 选择Planning Group为 gripper,Planning Group 决定哪些关节参与规划
  2. 选择Start State为Colse或者current为规划起点,Goal State为Open,Open、Close、Home等状态来源于SRDF predefined pose
  3. 点击Plan规划查看轨迹
  4. 点击Execute执行

3. 规划机械臂

  1. 选择Planning Group为 manipulator,Planning Group 决定哪些关节参与规划
  2. 选择Start State为current为规划起点,Goal State通过拖动交互 Marker(Rviz小球)设置末端目标位姿
  3. 点击Plan规划查看轨迹
  4. 点击Execute执行

点击 Plan 后MoveIt 会:

  1. 获取当前状态
  2. 求解目标 IK
  3. 检查碰撞
  4. 使用 OMPL 搜索路径
  5. 生成轨迹
  6. 在 RViz 显示轨迹

点击Execute 后会: 将轨迹发送给 ros2_control 控制器,demo使用 fake controller

  • 不会驱动真实机器人
  • 只是更新 RViz 中的机器人状态

4. MoveIt 的规划对象

名词 本质
Joint State 关节角
Pose 末端位姿
Planning Group 可运动关节集合
Planning Scene 世界状态
Collision Object 碰撞物体
Trajectory 时间轨迹

5. 关节空间 vs 笛卡尔空间

Joint Space Planning:规划关节角变化

  • 稳定
  • 默认模式

Cartesian Planning:末端走直线

  • 适合抓取
  • 更容易失败
  • 计算更复杂

6. 规划失败原因

原因 说明
IK 无解 目标不可达
自碰撞 手臂撞自己
环境碰撞 撞桌子
时间不足 Planning Time 太短
Goal 与 Start 相同 无需规划

7. Commands 命令区

按钮 作用 典型使用场景
Plan 仅执行运动规划,不控制机器人运动 调试轨迹是否可达
Execute 执行最近一次成功规划的轨迹 已完成规划后执行
Plan & Execute 自动完成规划并立即执行 最常用
Stop 停止当前轨迹执行 紧急停止
Clear Octomap 清除三维占据栅格地图中的障碍物数据 深度相机误检测后恢复规划

初次启动时,由于尚未生成轨迹,ExecuteStop 按钮通常为灰色。

8. Query 查询区

  • Planning Group: gripper
    • 选择规划组,当前选中的是 gripper(夹爪)
    • 规划组是在 SRDF 里定义的关节集合,比如 manipulatorgripper
    • 这里选择 gripper,意味着规划器只会为夹爪的关节生成轨迹
  • Start State: current
    • 规划的起点状态,current 表示使用机器人当前的实际关节位置作为起点
    • 也可以下拉选择保存的姿态(比如 openclose
  • Goal State: current
    • 在 RViz 中拖动末端交互 Marker 后,MoveIt 会自动更新目标状态
    • Goal State 下拉框主要用于选择预定义命名姿态(Named State)

9. Options 选项区

基础规划参数

参数 作用
Planning Time (s): 5.0 规划器最多用 5 秒找路径,超时就返回失败
Planning Attempts: 10 规划器独立运行的次数,MoveIt 会从多个候选轨迹中选择结果
Velocity Scaling: 0.10 轨迹速度缩放比例,不改变路径形状,仅影响执行速度
Accel. Scaling: 0.10 轨迹加速度缩放比例,使运动更平滑

高级选项(复选框)

选项 作用
Use Cartesian Path 使用笛卡尔插值生成末端直线轨迹,适用于抓取、插入、放置等任务
Collision-aware IK IK 求解时同时检查碰撞,避免生成自碰撞或环境碰撞姿态
Approx IK Solutions 允许使用近似逆运动学解,提高求解成功率,但末端位姿可能存在误差
External Comm. 外部通信,用于连接外部规划器或控制器,将PlanExecuteselect_planning_group等等接口以topic的形式提供
Replanning 轨迹执行过程中重新规划(比如动态避障),会增加计算量
Sensor Positioning 可以通过接入 3D 的 LiDAR 或者深度相为机械臂构建基于"Octomap"的周围环境

10. 可视化内容

可视化内容 显示形式 控制选项 默认状态
场景机器人本体 正常机器人模型 Scene Robot → Show Robot Visual ✅ 显示
规划轨迹 轨迹动画 / 多帧机器人模型 Planned Path → Show Robot Visual ✅ 显示
起点状态 半透明机器人模型 Planning Request → Query Start State ❌ 隐藏
目标状态 半透明目标机器人模型 Planning Request → Query Goal State ✅ 显示

MoveIt RViz 插件会同时显示当前机器人状态、目标状态以及规划生成的轨迹,便于观察运动过程与碰撞情况。

相关推荐
DogDaoDao1 分钟前
深度学习增强的视频压缩框架:Neutron Star 如何超越 VVC
人工智能·深度学习·音视频·视频编解码·h266·vvc·视频压缩
nuo5342025 分钟前
2026-07-31 AI 新闻汇总
人工智能
AI创界者10 分钟前
【8G显存福音】最新LTX-2.3-22B-DISTILLED-1.1-VBVR 整合包文生视频、图生视频,支持首尾帧/单图无限时长,50系显卡全适配!
人工智能·音视频
科技新芯11 分钟前
ChinaJoy 首日直击!Bidnex 两大 AI 新品正式亮相
人工智能
limingade13 分钟前
如何在手机本地不依靠网络-实现真正的端到端语音交互的智能AI应答
人工智能·智能手机·ai机器人·ai外呼·手机本地ai大模型·离线ai机器人·离线ai
m0_敲代码的彭于晏16813 分钟前
如何查看自己的电脑是 x64 还是 ARM64 ?
人工智能·电脑
南方程序猴14 分钟前
2026年7月最新国内 Codex 安装教程和使用教程:GPT-5.6 完整指南
人工智能·gpt·ai·ai编程
iiiiii1117 分钟前
【论文阅读笔记】Reparameterization Proximal Policy Optimization (RPO):将PPO的稳定性引入可微分强化学习
论文阅读·人工智能·笔记·深度学习·机器学习·机器人·具身智能
GitCode官方27 分钟前
openPangu-2.0-Pro 模型及技术报告正式开源上线 AtomGit AI
人工智能·华为·开源·harmonyos·atomgit
少年最是30 分钟前
体协作系统,用于分析聊天记录中特定人物的荣格八维人格类型。 本文使用 CC-BY-NC-SA . 协议。转载或者 AI 模型/智能体 ...
人工智能