投影重力:机器人怎么知道自己倒了
最后更新
投影重力(projected gravity)是重力向量在机器人自身坐标系里的表示。它是 robotctl monitor 数据流上唯一的 IMU 量。
- 站立时约为
[0, 0, -1] - 面朝下、面朝上、侧躺时,向量方向截然不同
fallen 这个状态就是由它判定的。
为什么策略也依赖它
StandUp 任务要从面朝下、面朝上、坐姿三种状态站起,而这三种需要完全不同的动作序列。策略靠投影重力判断自己现在是哪一种——这个量同时服务于诊断和控制。
一个不会报错的故障
这里有一个值得单独记住的失效模式:
传感器融合停止之后,板子仍然在总线上应答。所以什么都不会报错,而重力向量会无限期停在一个看似合理的姿态上。
也就是说:数值看起来正常,跌倒判定看起来正常,但它们已经不再反映现实。
这种情况只有一个地方会说出来——robotctl monitor 底部的状态行:
orientation frozen — 25 stale reads
过期读数的计数器和它们对应的比例在 robotctl health 里。这是「机器人行为诡异但一切指标正常」时该查的地方。