投影重力 — ロボットはどうやって転んだと知るか
最終更新
投影重力は、ロボット自身の座標系で表した重力ベクトルです。robotctl monitor の状態ストリームに乗る唯一の IMU 量でもあります。
- 直立時はおよそ
[0, 0, -1] - うつ伏せ、仰向け、横倒しでは方向がはっきり異なる
fallen の状態はここから判定されます。
ポリシーもこれに依存している
StandUp タスクはうつ伏せ・仰向け・座位から立ち上がる必要があり、それぞれまったく違う動作を要します。ポリシーは投影重力から自分がどの状態かを判断します。つまりこの量は診断と制御の両方に効いています。
エラーにならない故障
単独で覚えておく価値のある失敗モードがあります。
センサーフュージョンが停止しても、ボードはバスに応答し続けます。何もエラーにならず、重力ベクトルはもっともらしい姿勢のまま無期限に留まります。
数値は正常に見えます。転倒判定も正常に見えます。どちらももう現実を反映していません。
これを言ってくれる場所はただ一つ、robotctl monitor 下端の状態行です。
orientation frozen — 25 stale reads
古い読み値のカウンタと、それを比較すべき比率は robotctl health にあります。「ロボットの挙動がおかしいのに指標はすべて正常」のときに見る場所です。