deadman — 停止ボタンが無い理由
最終更新
deadman はタイムアウト機構です。一定時間、新しい意図指令が届かなければ robotd が速度をゼロにします。
これが停止ボタンの代わり
Microduck のパッドには停止ボタンがありません。これは意図的です。
- スティックを放す → 指令が速度ゼロになる → ロボットは立ち止まる
paddが落ちる → 何も届かない → deadman が作動 → 止まる- パッドの電池切れ・通信圏外 → 同じ
専用の停止ボタンは後ろ 2 つのケースで役に立ちません。プロセスが落ちていれば、そのボタン操作もまた届かないからです。
どこで目にするか
robotctl monitor で、要求値と適用値が食い違ったとき:
deadman — no intent arrived recently, velocity zeroed
「スティックを前に倒しているのにロボットが動かない」の最も一般的な説明です。これが出ていれば、問題は指令の到達経路(パッド、padd、無線)にあり、ポリシーやモーターではありません。
deadman に見えない故障
deadman が捉えられないケースが一つあります。リンクは繋がったまま、届いている指令が古い場合です。すべて正常に見え、ロボットは古い命令で歩き続けます。
これはパッドの生入力ストリームでしか分かりません。robotctl monitor で p を押し、入力レポートの間隔を読みます。ゲームパッドのペアリングを参照してください。