
MuJoCo入門|物理シミュレーションの最初の一歩を10分で【Python】
2026-07-22 ・ 実践
フィジカルAIの練習場、物理シミュレータ。その定番が Google DeepMind がオープンソースで公開している MuJoCo です。この記事では、インストールから「画面の中で物理が動く」感動まで10分で行きます。
pip install
1分
モデルを書く
XMLで数行
動かす
物理が動く!
まずは触ってみよう(インストール不要)
「物理シミュレーション」と言われてもピンとこないですよね。まずはこの場で遊んでみてください。
🕹️ さわれる物理シミュレータ
箱やボールをドラッグして投げてみてください。重力も変えられます
重力をマイナスにすると…?🌙 いろいろ試してみましょう
いま体験したこと — 「重力・摩擦・衝突のルールがある仮想世界で、モノが本物っぽく動く」 — これが物理シミュレーションのすべてです。ロボット開発では、この仮想世界の中でロボットに何百万回も練習させます。
これは2Dの簡易版です
上のデモはブラウザ用の2D物理エンジンで作ったミニ版。本物のMuJoCoは3Dで、摩擦や接触をはるかに正確に計算します。ここから先は、その本物を自分のPCで動かす手順です。
MuJoCoってなに?
接触や摩擦の計算が得意な物理エンジンです。ロボットの強化学習研究で長年の定番で、以前は有料でしたが、DeepMindが買収して無料・オープンソースになりました。
インストール(1分)
Python 3.9以降があれば1行です。
pip install mujoco
最小のシミュレーション: 振り子を落とす
MuJoCoでは、世界をMJCFというXML形式で記述します。まずは「箱が落ちるだけの世界」から。
import mujoco
xml = """
<mujoco>
<worldbody>
<light pos="0 0 3"/>
<geom type="plane" size="2 2 0.1" rgba="0.9 0.9 0.95 1"/>
<body pos="0 0 1">
<freejoint/>
<geom type="box" size="0.1 0.1 0.1" rgba="1 0.56 0.69 1"/>
</body>
</worldbody>
</mujoco>
"""
model = mujoco.MjModel.from_xml_string(xml)
data = mujoco.MjData(model)
for _ in range(1000):
mujoco.mj_step(model, data)
print("箱の最終位置:", data.qpos[:3])
実行すると、1000ステップ後の箱の位置が表示されます。Z座標(3つめ)が約0.1 = 床の上に着地しているのがわかるはず。物理、動いてます🎉
画面で見る(ビューア)
数字だけでは寂しいので、可視化しましょう。
pip install mujoco # ビューアは同梱です
python -m mujoco.viewer
ウィンドウが開いたら、さっきのXMLを pendulum.xml として保存してドラッグ&ドロップするだけ。マウスで視点をぐりぐり動かせます。
Pythonから直接開くことも:
import mujoco.viewer
mujoco.viewer.launch(model, data)
ちょっと発展: 振り子を揺らす
関節(joint)を使うと「物理で揺れる振り子」が作れます。
xml = """
<mujoco>
<worldbody>
<light pos="0 0 3"/>
<body pos="0 0 1.5">
<joint type="hinge" axis="0 1 0"/>
<geom type="capsule" fromto="0 0 0 0 0 -0.5" size="0.03" rgba="0.54 0.93 0.82 1"/>
</body>
</worldbody>
</mujoco>
"""
これをビューアで開いて振り子をマウスでつまんで放すと、ちゃんと物理法則で揺れます。この「世界のルールを書く→動く」の体験がシミュレーションの本質です。
つまずいたら
エラーの多くはXMLの書き間違いです。エラーメッセージに行番号が出るので、まずそこを確認。公式ドキュメント(mujoco.readthedocs.io)のXMLリファレンスが頼りになります。
まとめ
- MuJoCoは
pip install mujocoだけで始められる無料の物理シミュレータ - 世界はXML(MJCF)で記述、
mj_step()で時間を進める - ビューアで可視化すると一気に楽しくなる
次の一歩 🌸
次は「シミュレーションの中でAIに動きを学ばせる」段階へ。LeRobot入門で模倣学習を体験するか、学習ロードマップで全体像を確認しましょう。
ゆるふわフィジカルAI