Tools
MuJoCo を WSL2 で使う
物理計算は問題なし、viewer は WSLg 前提、オフスクリーン描画は EGL が失敗したら osmesa、ゲームパッドはカーネルに joystick ドライバが無い
要点
物理は動く。表示は WSLg が必要。ゲームパッドは標準カーネルでは使えない。
数字 / コマンド
| 項目 | WSL2 での状態 |
|---|---|
| MuJoCo 本体 (C, python wheel) | そのまま動く。CPU 性能はネイティブとほぼ同じ |
| GLFW viewer | WSLg (Windows 11) で表示される。GPU は Mesa d3d12 経由 |
| オフスクリーン描画 | MUJOCO_GL=egl が失敗することがある → MUJOCO_GL=osmesa (ソフトウェア) か画面ありで MUJOCO_GL=glfw |
/dev/input/js0 | 標準カーネルに joystick ドライバが無く出ない。usbipd-win + 自前カーネルが必要 |
| ワークスペース置き場 | Linux 側 (ext4)。/mnt/c だとビルドと mesh 読み込みが数倍遅い |
| CAN など実機 I/O | 不可 |
# 描画 backend の切替
MUJOCO_GL=osmesa python3 render.py # ソフトウェア描画
MUJOCO_GL=glfw python3 render.py # WSLg の画面を使う詳細
- MuJoCo の描画は OpenGL 固定機能中心で要求が低く、Mesa d3d12 で足りる。性能はネイティブより落ちる
- ROS 2 (DDS) は WSL2 内で完結する分には設定不要。Windows 側や別 PC と通信するときはミラーモードかポート転送
- ゲームパッドの回避策: ブラウザ (Foxglove) の仮想ジョイスティックで
/joyを出す、または Windows 側で joy を読んで ROS に流す
関連
最終更新: