实时伺服控制(Realtime Servo Control)是在固定或近似固定的高频周期内,根据连续变化的输入实时更新机器人运动命令的控制方式。
它和离线轨迹规划不同:规划器通常先生成一段完整轨迹再执行,而实时 servo 每个周期都可能根据操作者、视觉反馈或外部闭环误差调整下一步命令。
核心问题
实时 servo 要处理的是流式控制问题:
- 输入可能是关节速度、末端 Twist 或目标 Pose。
- 当前机器人状态、目标误差和环境状态持续变化。
- 命令需要足够平滑、及时,并在风险区域自动降速或停止。
因此实时 servo 不只是 IK;它还包括输入新鲜度、速度缩放、限幅、状态反馈和安全策略。
核心机制
一个简化实时 servo 周期通常包括:
- 读取最新输入和当前 robot state。
- 把输入转换为关节侧命令,例如通过雅可比矩阵、IK 或 plugin。
- 检查奇异位形、碰撞检查和关节限位。
- 对命令做速度缩放或运动平滑。
- 发布执行命令并上报状态。
MoveIt Servo 就是 MoveIt 生态中面向这类需求的上层 servo 框架。
工程用途
- 机器人遥操作:手柄、VR、UMI 或示教器持续驱动机器人。
- 视觉伺服:根据图像中的目标偏差实时修正末端。
- 闭环位姿控制:外部系统持续给目标位姿或误差。
- 调试和数据采集:让机器人在人类或外部感知系统指导下连续运动。
边界与常见坑
- 实时不等于安全;必须明确限位、碰撞、奇异和断联策略。
- 平滑会改善手感,但会增加延迟;过度平滑可能让操作者感觉“粘滞”。
- 局部 servo 不能替代全局路径规划;遇到复杂障碍物或长距离移动时可能陷入局部不可行。
- 输入时间戳、坐标系和速度单位不一致会导致突跳或方向错误。