YouDuck.ai

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 が機能します。その数値は画面設定に関係なく常にラジアンです。

関連