箱庭ドローンシミュレータ v3.7.0 をリリースしました。
今回の目玉は、WSL2/Docker環境だけで完結するMuJoCo連携です。
PS4/PS5コントローラによるゲームパッド入力から、WSL2上の実行環境、DockerのMuJoCoシミュレータまでを、箱庭Launcherベースで一体運用できるようになりました。
Unityなどの商用ライセンスは不要。MuJoCoで自分の機体モデルを作ったら、そのままコントローラで飛ばせます。
デモ:
v3.7.0 の統合構成
v3.7.0では、以下の構成を一体として扱えるようになりました。
- Windows上のゲームパッド入力(PS4 / PS5)
- WSL2 / Ubuntu 上の実行環境
- Docker上のMuJoCoシミュレータ
- WebSocket bridge
- Hakoniwa PDU endpoint
これまで個別に繋ぎ込みが必要だったこれらの要素を、箱庭Launcherがまとめて面倒を見ます。
アーキテクチャ
Windows → WSL2 → Docker の3層構造になっています。

図はWindows → WSL2 → Dockerの3層構造で、v3.7.0の統合アーキテクチャを示しています。
左側(Windows層):PS4コントローラをUSBで接続し、pygameベースのPythonアプリ(rc-endpoint.py)がゲームパッド入力を受け取ります。コントローラ入力をあえてWindows側で処理しているのは、pygame + PS4/PS5の組み合わせがLinux側より安定して動作するためです。入力データは箱庭PDU EndpointからWebSocket経由でWSL2側へ送出されます。
中央(WSL2 / Docker層):箱庭Launcherが Windows側の rc-endpoint.py およびDockerコンテナの起動・停止を含む全体を統括します。コンテナ内では、WebSocketで受け取ったデータが箱庭PDU Endpoint →箱庭PDUブリッジ → MuJoCo版箱庭ドローンへと流れ、処理されます。
右側(MuJoCo Viewer):箱庭MuJoCoViewerがシミュレーション結果をリアルタイム描画します。UnityなどのライセンスなしでWSL2上で軽量に動作します。
このアーキテクチャのポイント:PDU Endpointが左右両側に存在しているのは、OS境界をまたいだデータ受け渡しを抽象化しているためです。従来はゲームパッドをWSL2側へ渡すためにusbipd-winの設定が必要でしたが、v3.7.0ではこの構成により、その手順が不要になっています。
アップデート詳細:
https://github.com/toppers/hakoniwa-drone-core/blob/main/docs/upgrade_v3.7.0.md
合同会社 箱庭ラボ
担当:森崇

コメントを残す