用語集 · 物理シミュレーション
MuJoCo
別名:Multi-Joint dynamics with Contact、ムジョコ、物理エンジン
関節と接触を持つ体をシミュレーションするための、速くて正確な物理エンジンです。ロボティクスと強化学習の研究で広く使われています。
MuJoCo は Multi-Joint dynamics with Contact(接触を伴う多関節の動力学)の略です。Emanuel Todorov、Tom Erez、Yuval Tassa がロボティクスと運動制御の研究のために作りました(Todorov et al. 2012)。DeepMind が2021年に買収し、2022年に無料のオープンソースにしました。
まさにこのプロジェクトのような問題のために設計されています。多関節の体(関節でつながった剛体部品の連鎖)が接触を通じて世界に触れ、それを何百万ステップもの強化学習に使えるほど速くシミュレーションする、という問題です。
強化学習に向いている理由
- 速さ。 一般化座標(拘束でつなぎ止めた自由な剛体ではなく、関節角度)を使うので、ヒューマノイドを安くシミュレーションできます。
- 安定した接触。 接触は凸最適化で解くソフトな拘束で、多くのエンジンより大きなタイムステップでも安定しています(ソフトコンタクトを参照)。
- すべてが組み込み。 アクチュエータ、センサー、腱、筋肉がモデル形式の一部になっています。
モデルファイル
体は MJCF という XML 形式で記述します。剛体、可動範囲付きの関節、材質付きの形状(衝突形状を参照)、そしてアクチュエータです。シミュレーターはこれを読み込んでモデルにし、変化する状態は別のデータ構造が保持します。
このプロジェクトでは
すべての実験で MuJoCo 3.16 を使っています。筋肉の体もシンプルな体も、人体計測データ(人体計測を参照)から Python スクリプトで生成した MJCF ファイルです。物理は 2 ms のタイムステップで動きます。1ステップにかかる CPU 時間は、シンプルな体で 161 µs、筋肉の体で 423 µs です。