robotctl monitor
最終更新
robotctl monitor
robotctl monitor --json --hz 50 > run.jsonl
一式の中で最も情報量の多いツールです。クライアントが要求したものと実際に適用されたものを並べ、食い違う場合はその理由を示します。
理由こそが要点
安全機構は絶えず指令をクランプします。「スティックを前に倒しているのにロボットが動かない」は理由なしには読み解けません——パッドを疑うべきか、ポリシーか、モーターかが分からないからです。そこで明示されます。
deadman — no intent arrived recently, velocity zeroed
制限は名前を付けられるだけでなく、説明されます。
画面にあるもの
- 各関節の測定値と指令値の対比
- IMU の投影重力と、そこから導かれる転倒判定(直立時はおよそ
[0, 0, -1]) - 達成された制御周波数をトレースとして表示——既に回復したつまずきも見える
- 下端の枠: 現在読み込まれているポリシー
最後の項目は見た目以上に重要です。walk は歩容がまったく異なる 2 つのリリースが同じように名乗るモード名だからです。
ロボットビュー
画面右側に、そのとき立っている姿勢のロボットが描かれます。測定した関節角と IMU の重力ベクトルで姿勢を作り、ポリシーの学習に使ったのと同じ視覚モデルを用います。
脚が逆に折れている、頭が床に突っ込んでいる、横倒しになっている——関節の数値表ではどれも単なる数字ですが、ここでは一目で分かります。端末幅がおよそ 110 桁以上で自動的に現れます。
ToF がフレームを出していれば、その点群も同じシーンに描かれ、ロボット自身の身体と深度テストされます。「手を見ているのか、自分を見ているのか」に答えられるのはこのためです。
キー操作
| キー | 動作 |
|---|---|
q |
終了 |
↑ ↓ |
関節リストのスクロール |
u |
度とラジアンの切替 |
t |
ToF 行列 |
d |
ロボットビューの表示切替 |
[ ] |
視点を回す |
p |
パッドの生入力ストリーム |
p は無線が停止したことが見える唯一の場所です。リンクは繋がったままロボットが古い指令で歩き続ける故障は、ここでしか分かりません。
リダイレクト時は挙動が変わる
パイプやリダイレクトでは 1 tick ごとに 1 行を出力するので、> run.log や | grep FALLEN が機能します。その数値は画面設定に関係なく常にラジアンです。