09 MuJoCo シミュレーションとライブツイン
MuJoCo は本プロジェクトで 2 通りの方法で使われ、どちらも hardware/v1/robot_v1.xml (実機と同一ソースのモデル)を使用します:
- ローカルシミュレーション:ロボットを接続せず、コンピュータ上で 4 つの横倒し姿勢と その起き上がりをループ再生し、リファレンスシーケンスを検証して動きを観察します;
- ライブツイン:実機が WiFi 経由で姿勢をストリーミングし、MuJoCo ウィンドウが実際の 動きをリアルタイムにミラーリングします(デジタルツイン)。
ウィンドウの操作はどちらの場合も同じです。左ドラッグで視点を回転、右ドラッグでパン、 ホイールでズームします。初めて使用する前に、02 ページのとおり .venv を作成・有効化し、その中にツールの依存関係をインストールしてください (pip install -r tools/requirements.txt、02 ページ参照)。
9.1 ローカルシミュレーションウィンドウ
SR-Support フォルダで(.venv を有効化):
python tools/play_getup_executor.py --xml hardware/v1/robot_v1.xmlウィンドウのタイトルは MuJoCo : sr_support_v1 です(図 9-1)。ロボットは 4 つの横倒し 姿勢に順番に置かれ(roll_pos → roll_neg → pitch_pos → pitch_neg)、そのたびに 実行器がファームウェアとまったく同じパラメータでリファレンスシーケンスをロボットが 直立するまで実行し、その後次の姿勢が設定されます。ウィンドウを閉じるまでループが 繰り返されます。ターミナルには姿勢と結果が出力されます:
--- cycle 1 pose 1/4 requested=roll_pos actual=roll_pos up=(+0.00,+1.00,-0.00)
executor ok=True up=+1.00 servo=[0.0, -0.0] steps=113ok=True はその姿勢がシミュレーション上で起き上がったことを意味します。ok=False の 場合は、リファレンスシーケンスと変更したパラメータを 06 ページと照らし合わせて確認してください。

図 9-1:4 姿勢ループの 1 フレーム — 実行器が横倒し姿勢から起き上がっているところ。
既知のモデルの違い:1× 質量のモデルでは、シミュレーションで
roll_negがok=Falseと 表示されます(モデルのアーム質量/摩擦が実機と異なるため。11 ページ 11.4 参照)。これは実機ファームウェアには影響しません。
9.2 WiFi 経由のライブツイン
前提条件:ロボットが 08 ページのとおり家庭内ネットワークに接続済みで、 コンピュータも同じネットワーク上にあること。ステータスページにロボットのアドレスが Robot IP として表示されるので、それを次のコマンドにコピーします。
- ステータスページで
Twin ONを押します(シリアルのdと同じ)。 .venvを有効化したSR-Supportフォルダで、次を実行します(アドレスはステータス ページのRobot IPに置き換えます):
python tools/live_twin.py --tcp <Robot IP>:3333モデルは実際の姿勢をリアルタイムにミラーし(50 Hz のクォータニオンストリーム)、機体を 床面に保ちます。アームはストールしたサーボと同様に床面との接触角で保持されるため、床に めり込むことはありません。
- コンピュータをロボットのホットスポットに直接接続する場合:アドレスは常に
192.168.4.1、python tools/live_twin.py --tcp 192.168.4.1:3333。 - 有線の代替:
python tools/live_twin.py --port COM27(ツールが自動でdを送って ストリームを有効化します)。 - オフライン再生:
python tools/live_twin.py --replay logs/hw_fast_xxx.txt。 - ツインはストリームの切り替えを除いて読み取り専用です。制御コマンドを送信することは ありません。
9.3 テレメトリのログ
python tools/tcp_log.pyテレメトリストリームを logs/wifi_<time>.txt に保存し、オフライン再生(--replay)と 故障解析に使えます。ホットスポットでは既定で 192.168.4.1:3333 に接続します。家庭内 ネットワークにある場合は、ステータスページの Robot IP を渡してください:
python tools/tcp_log.py <Robot IP> 33339.4 シミュレーションと学習のリファレンス
training/b_line/ には、リプレイ・検証・パラメータ調整のために、ファームウェアと 値まで一致する実行器、リファレンスシーケンス、シミュレーション環境が同梱されています。 モデルファイルの説明は 11 ページ 11.1 にあります。

