MoveIt2 是什么:概念与核心术语
一、MoveIt2 是什么:概念与核心术语
MoveIt 2 是 ROS2 上的机械臂运动规划框架。它做四件事:读取机器人的运动学模型、维护一个包含障碍物的规划场景、调用规划算法算出一条无碰撞轨迹、把轨迹交给控制器去执行。中间的逆运动学求解、碰撞检测、轨迹时间参数化,它都封装好了。
它解决的问题是「机械臂要动到某个位姿,怎么走」。手写逆解只能处理结构简单、没有障碍的情况;一旦有工作台、料框、相机支架这些障碍,还要考虑关节限位、奇异点、速度与加速度约束,就必须有一个完整的规划栈。MoveIt 2 的价值在于把这些问题变成配置项而不是代码。
与相邻方案的比较
| 方案 | 能力 | 适用 |
|---|---|---|
| MoveIt 2 | 完整规划栈:场景、逆解、规划、执行 | 固定基座机械臂的抓取、上下料、喷涂、检测 |
| ROS1 MoveIt | 同样完整,但基于 ROS1 通信 | 历史项目 |
| 自研逆解加插补 | 只解决运动学,不解决避障与规划 | 结构固定、无障碍、动作序列不变的专机 |
| 厂商示教器方案 | 开箱即用,封闭 | 大批量标准产线,不需要外部感知输入 |
核心术语表
| 术语 | 含义 | 说明 |
|---|---|---|
| URDF | 机器人运动学与几何描述 | 定义连杆、关节、限位、碰撞体 |
| SRDF | MoveIt 专用的语义描述 | 定义规划组、预设位姿、允许碰撞的连杆对 |
| 规划组 Planning Group | 一组可以一起规划的关节 | 机械臂与夹爪通常分成两个组 |
| 规划场景 Planning Scene | 机器人当前状态加环境障碍 | 障碍可以为静态或动态添加 |
| 允许碰撞矩阵 ACM | 声明哪些连杆对之间的碰撞可以忽略 | 相邻连杆本来就会接触,不声明会一直报碰撞 |
| 逆运动学插件 IK Plugin | 由目标位姿求关节角 | KDL 是默认,TRAC-IK 一类在复杂场景下成功率更高 |
| 规划器 Planner | 在关节空间或笛卡尔空间找路径 | OMPL 系列、Pilz 工业规划器等 |
| 轨迹时间参数化 | 给几何路径加上时间与速度约束 | 决定执行时是否平滑、是否超限 |
| 控制器 | 接收轨迹并驱动关节 | 通常由 ros2_control 的关节轨迹控制器承担 |

