实时伺服控制Realtime Servo Control)是在固定或近似固定的高频周期内,根据连续变化的输入实时更新机器人运动命令的控制方式。

它和离线轨迹规划不同:规划器通常先生成一段完整轨迹再执行,而实时 servo 每个周期都可能根据操作者、视觉反馈或外部闭环误差调整下一步命令。

核心问题

实时 servo 要处理的是流式控制问题:

  • 输入可能是关节速度、末端 Twist 或目标 Pose。
  • 当前机器人状态、目标误差和环境状态持续变化。
  • 命令需要足够平滑、及时,并在风险区域自动降速或停止。

因此实时 servo 不只是 IK;它还包括输入新鲜度、速度缩放、限幅、状态反馈和安全策略。

核心机制

一个简化实时 servo 周期通常包括:

  1. 读取最新输入和当前 robot state。
  2. 把输入转换为关节侧命令,例如通过雅可比矩阵IK 或 plugin。
  3. 检查奇异位形碰撞检查关节限位
  4. 对命令做速度缩放或运动平滑
  5. 发布执行命令并上报状态。

MoveIt Servo 就是 MoveIt 生态中面向这类需求的上层 servo 框架。

工程用途

  • 机器人遥操作:手柄、VR、UMI 或示教器持续驱动机器人。
  • 视觉伺服:根据图像中的目标偏差实时修正末端。
  • 闭环位姿控制:外部系统持续给目标位姿或误差。
  • 调试和数据采集:让机器人在人类或外部感知系统指导下连续运动。

边界与常见坑

  • 实时不等于安全;必须明确限位、碰撞、奇异和断联策略。
  • 平滑会改善手感,但会增加延迟;过度平滑可能让操作者感觉“粘滞”。
  • 局部 servo 不能替代全局路径规划;遇到复杂障碍物或长距离移动时可能陷入局部不可行。
  • 输入时间戳、坐标系和速度单位不一致会导致突跳或方向错误。

相关术语