奇异点检查(Singularity Checking)是在 IK 或实时伺服控制中检测机器人是否接近奇异位形,并据此降速、增加阻尼或停止运动的机制。
它关注的是机器人当前或下一步配置下,雅可比矩阵是否变得病态,导致某些末端方向难以控制或需要异常大的关节速度。
核心问题
奇异附近,末端命令可能看起来很小,但转换到关节空间后会被放大。对于遥操作和视觉伺服,这会表现为突然加速、抖动、腕部翻转或控制器饱和。奇异点检查的目标是在风险发生前降低命令强度或进入 halt。
核心机制
常见检测量包括:
- Jacobian 的最小奇异值。
- Jacobian 条件数。
- 当前运动方向是否朝奇异区域移动。
- 关节速度或关节增量是否被异常放大。
在 MoveIt Servo 中,接近奇异点时可以缩放速度,严重时触发停止类状态。自研 IK 链路里则常配合 DLS、速度限幅和高风险姿态样本集使用。
工程用途
- 遥操作中防止操作者小输入引发机器人大动作。
- 在闭环位姿跟踪中避免 target 更新把机器人推向病态区域。
- 给日志和状态上报提供“为什么降速/停机”的可解释原因。
- 用作回归测试中的高风险姿态检测指标。
边界与常见坑
- 检查到奇异风险不等于已经规划出绕行路径;它通常只是降速或停止。
- 阈值过保守会让机器人在可用区域也频繁变慢,过宽则无法提前保护。
- 只看当前姿态不够,还要看命令方向是否正朝奇异区域移动。
- DLS 能缓解数值爆炸,但不能替代外层奇异点状态和用户反馈。