Skip to content

机械臂操作概览

机械臂操作(Manipulation)是指机器人使用机械臂(manipulator)与环境进行物理交互的能力,包括抓取(grasping)、放置(placing)、搬运(carrying)和装配(assembling)等任务。这是工业机器人和服务机器人最核心的能力之一。

在 ROS 2 生态中,MoveIt 2 是标准的运动规划与操作框架,为机械臂提供了从逆运动学到碰撞检测再到抓取规划的完整工具链。

机械臂操作的基础是对机器人本身的精确建模。ROS 2 使用 URDF(Unified Robot Description Format)来描述机器人的运动学结构、动力学参数和可视化模型:

  • 运动学(Kinematics):定义关节之间的连接关系(link 和 joint),描述机械臂各部分的空间关系。
  • 动力学(Dynamics):定义质量、惯性、摩擦等物理参数,用于动力学仿真和控制。
  • 碰撞模型:定义用于碰撞检测的简化几何体。

有关 URDF 的详细介绍,请参见 机器人模型。

运动规划(Motion Planning)是指在机械臂的关节空间或笛卡尔空间中,计算一条从起始位姿到目标位姿的无碰撞轨迹。这是机械臂操作的核心能力。详见 运动规划概览。

抓取与放置(Pick and Place)是最常见的机械臂操作任务:

  • 抓取规划(Grasp Planning):根据目标物体的形状、位姿和物理属性,规划夹爪或机械手的抓取位姿和力控策略。
  • 放置规划(Place Planning):计算目标物体的安全放置位置和位姿。

MoveIt 2 提供了 pick 和 place 接口,集成抓取生成器(如 Grasp Synthesis)来产生候选抓取位姿。

机械臂操作通常需要视觉感知来获取环境中物体的位姿信息:

  • 物体检测与位姿估计:使用 3D 视觉(如 RGB-D 相机)检测物体并估计其 6 自由度位姿。
  • 点云处理:使用 PCL(Point Cloud Library)进行点云滤波、分割和表面拟合。

精密操作任务(如装配、擦拭)需要力控能力:

  • 力/力矩传感:通过腕部力传感器感知接触力。
  • 阻抗/导纳控制:使机械臂表现出类似弹簧-阻尼系统的行为,适应位置不确定性。

MoveIt 2 是 ROS 2 中用于机械臂运动规划和操作的核心框架:

组件功能
Move Group高层接口,提供规划、执行和场景查询的统一 API
Planning Scene维护环境的碰撞模型(物体、机器人状态、允许碰撞矩阵)
Motion Planner运动规划器插件接口(OMPL、Pilz、STOMP、CHOMP 等)
Trajectory Processing轨迹平滑、时间参数化和速度/加速度限制
Collision Checking基于 FCL 的碰撞检测
Inverse Kinematics逆运动学求解器插件(KDL、TRAC-IK、IKFast 等)
MoveIt Task Constructor多阶段复杂任务的规划框架

MoveIt 2 通过动作(Action)和服务(Service)接口与外部交互。move_group 节点提供了 MoveGroup 动作接口用于执行运动规划,还提供了场景更新、状态查询等服务。