运动平滑(Motion Smoothing)是对机器人命令或轨迹进行滤波、插值、限加速度或限 jerk 处理,以减少突跳、抖动和机械冲击的过程。
在遥操作和实时 servo 中,平滑通常直接影响“跟手但不抖”的体验:不平滑会让动作生硬,过度平滑又会引入明显延迟。
核心问题
上层命令可能来自人手、视觉检测或数值 IK,它们会受到噪声、延迟、离散采样和解跳变影响。运动平滑要解决的是:
- 相邻周期命令差异太大。
- 速度、加速度或 jerk 超出执行器舒适范围。
- IK 解支切换导致关节目标突变。
- 输入噪声被控制器放大成末端抖动。
核心机制
常见方式包括:
- 低通滤波或移动平均,降低高频噪声。
- 对关节速度、加速度、jerk 做限幅。
- 在相邻命令之间插值,保证连续性。
- 使用专门的 smoothing plugin 或 trajectory post-processing。
在 MoveIt Servo 中,平滑是可选策略之一,通常和关节限位、奇异点检查、碰撞检查一起构成实时命令保护链。
工程用途
- 遥操作中降低手部输入噪声和网络抖动的影响。
- 视觉伺服中避免检测框抖动直接变成机器人抖动。
- IK 更新中限制单步关节跳变。
- 保护机械结构和执行器,减少冲击和急停。
边界与常见坑
- 平滑不能修复错误的坐标系、URDF 或 IK 目标;它只能缓和命令变化。
- 平滑越强,响应越慢;实时交互需要在稳定性和延迟之间折中。
- 只平滑末端 Pose 不一定能限制关节空间突跳,尤其是 IK 多解切换时。
- 平滑后的命令仍需经过关节限位和碰撞检查。