07 自己起立の使用方法とモニタリング
完成品は出荷前に 4 方向すべてでテストされています。初回使用時も、輸送後に個体が正常であることを 確認するため、7.2 の手順で各方向を 1 回ずつ検証してください。
7.1 手順
- ロボットを直立させた状態で電源を入れ、
autorun on: get-up waits for a fallを待ちます。 - 任意の方向にロボットを倒し、手を離して約 0.5 秒間静止させます。
getup start pose=<pose>が表示されたら、実行器が自動的に開始します。- 成功するとファームウェアは
standing -> executor doneを表示し、待機状態に戻ります。 - 実行が 14 秒を超えるとファームウェアは
executor timeoutを表示します。1.5 秒のクールダウン後、 フォールゲートが再トリガーされ、リトライします。
7.2 方向ごとの期待動作
| 姿勢 | 機構 | 実機での時間 |
|---|---|---|
pitch_neg(上端 → −X) | 肘を接地し、肩のストロークで機体をてこのように持ち上げる | 約 3 秒 |
pitch_pos(上端 → +X) | 同じ持ち上げ。収納中に倒れた場合は、姿勢の再計画で pitch_pos を再度実行 | 約 5〜6 秒 |
roll_pos(上端 → −Y) | 長い可動範囲側を使った直接の肩てこ | 約 3 秒 |
roll_neg(上端 → +Y) | フルストロークの直接押し → 肘ウェッジポンプ ×2 → 必要ならホイップスラムでリトライ;転がりなし | 約 2〜6 秒 |
以前のファームウェアは
roll_negを頂部越しに転がしてピッチ持ち上げに再計画していました(5〜14 秒)。 現在のビルドは +Y 押しの鏡像を使うため、4 方向すべてが対称で速度も同程度です。ときどき表示されるexecutor re-plan roll_neg -> ...は、その押しが失敗してフォールバックのリトライが働いたことを 意味するだけで、正常なセーフティネットです。
7.3 実行器のロジック(ファームウェア内部)
- リファレンスのウェイポイントごとに 20 tick(0.4 秒)、線形補間。出力スルーレート制限 0.08 rad/tick。
- ウェイポイント完了後、0.033 rad/tick でアームを中立へ収納。
up_z > 0.95かつ目標がゼロの状態が 50 tick 続いたら完了。- 機体が別の横倒し軸に落ち着いた場合(
up_z<0.6、|ω|<0.8が 15 tick)、中立へ収納して新しい姿勢の リファレンスに切り替え(切り替えは最大 5 回)。 roll_negのリファレンスは段階ごとの適応ホールドを使用:押し/ポンプの段階はup_z<0.92の間、 段階ごとの tick 上限(押し 40 / ポンプ 30 / ポンプ 30 / ホイップ 40 / 最終 90)までホールドします。 シーケンスの途中で機体が直立した場合、実行器は即座に収納へ移るため、後続の段階が立ち上がった ロボットを倒すことはありません。
7.4 モニタリングとログ
bash
python tools/hw_monitor.py COM27(SR-Support フォルダで .venv を有効化して実行します。02 ページ。 先にシリアルアシスタント/モニタを閉じてください。シリアルツール / Windows 用 UartAssist の ダウンロードは 03 ページ 3.3 節。)
- イベントと 5 秒ごとのテレメトリサマリを
logs/hw_monitor.logに追記します。 getup start、executor re-plan、standing、executor timeout、IMU lostなどを記録します。- サーボエンベロープ(肩
[-1.85,+1.82]、肘±1.55)をチェックし、違反時は!! VIOLATIONを 書き込みます。 - 実行器の動作中は 0.2 秒ごとにトレースを出力します:
text
executor pose=roll_neg ph=3 tick=9 tgt=(2.00,-0.80) up=(0.58,-0.24,-0.77) q=(2.00,-0.80) sw=0| フィールド | 意味 |
|---|---|
pose | 現在のリファレンス姿勢 |
ph / tick | ウェイポイントのフェーズ / フェーズ内の tick |
tgt | 目標関節角度 |
up | 現在の up ベクトル |
q | 現在の関節指令 |
sw | これまでの姿勢切り替え回数 |
モニタを開くと ESP32 がリセットされます。書き込み前に閉じてください。
7.5 記録の保持
各テストについて、姿勢、done で終了したか、所要時間、切り替え回数、違反の有無を記録してください。logs/hw_monitor.log が正式な記録です。

