プラットフォームハブ

MuJoCoとGoogle DeepMindのロボティクス

ロボット学習論文の多くが使うApache-2.0の物理エンジン、そのGPUバックエンド(MJXとMuJoCo Warp)、モデルライブラリのMenagerie、Google DeepMindのGemini Roboticsモデルを紹介します。

組織Google DeepMind(Google傘下。MuJoCoはもともとRoboti LLCが開発)
ウェブサイトmujoco.org/
ライセンスMuJoCo、MuJoCo Warp、MuJoCo PlaygroundはApache-2.0。Menagerieのモデルはそれぞれ個別のライセンス(Apache-2.0、BSD、MIT)。Gemini RoboticsモデルはGoogleの規約に従う
価格MuJoCoと関連ライブラリは無料。Gemini Robotics ER 2はGoogle AI Studioでプレビューとして提供されている。その他のGemini Roboticsモデルの価格は、本稿執筆時点でGoogleは公表していない
更新2026年11月14日

製品と提供内容 #

名称種類位置づけ
MuJoCo
4.0.1を2026年11月11日にリリース
シミュレータ接触・腱・アクチュエータを扱う剛体動力学のCライブラリとPythonバインディング
MJX and MuJoCo Warpシミュレータバッチ処理に対応したGPUバックエンド。それぞれJAXとNVIDIA Warp上に構築
MuJoCo Menagerieライブラリ市販ロボットと研究用ロボットの厳選MJCFモデル集。ライセンスはモデルごと
MuJoCo PlaygroundフレームワークMuJoCoとMuJoCo Warp上のPyTorchによるロボット環境、強化学習タスク、実機ワークフロー。従来のMJX環境はrss2025フォルダに保持
Gemini Robotics
本稿執筆時点でGemini Robotics 2.5、Gemini Robotics ER 2、Gemini Robotics On-Device 2を掲載
サービスGoogle DeepMindのVision-Language-Actionモデルと身体性推論モデル

どんな組織か

このハブは、接触の多いロボットをシミュレーションするすべての人に向けたものです。対象は脚式移動、把持、多指ハンドなどです。MuJoCoは最初にRoboti LLCが開発しました。MuJoCoの概要によれば、Google DeepMindが2021年10月にこれを買収して無料化し、2022年5月にソースコードを公開しました。以来、ロボット学習の文献の多くで標準的なシミュレータとなっています。レッスン9で使うエンジンでもあります。

Google DeepMindは、Gemini Roboticsの名でロボット基盤モデルも開発しています。Gemini Roboticsのページには、Gemini Robotics 2.5(Vision-Language-Actionモデル、VLA)、Gemini Robotics ER 2(身体性推論。Google AI Studioでプレビューとして提供)、Gemini Robotics On-Device 2(ロボット上で動作する小型モデル)が掲載されています。ページにリリース日の記載はありません。同ページによれば、Googleは100を超える信頼できるテスターと協力しており、早期アクセスの順番待ちリストを設けています。

ツールとAPI

pip install mujocoでエンジンとPythonバインディングが入ります。バージョン4.0.0は2026年11月6日、4.0.1は2026年11月11日にリリースされました。変更履歴によれば、バージョン4.0ではPython 3.10のサポートが終了し、互換性のない変更が含まれます。composite要素とケーブルプラグインは廃止されてflexcompに置き換えられ、腱のsidesiteの意味も変わりました。エンジンはC APIを持つCライブラリで、PythonバインディングとWebAssemblyビルドもあります。Linux、macOS、Windows向けのリリースアーカイブがあり、CPU版エンジンはノートPCでも十分に動きます。

多数の環境を並列に動かす場合は、2つのGPUバックエンドがあります。MJXはJAX上で動作します。MuJoCo WarpはApache-2.0で、自身の説明によればNVIDIAのハードウェア向けに設計されています。同じMuJoCo WarpのソルバはNVIDIAのNewtonバックエンドの中でも使われており、これがこのハブとNVIDIA Isaacのハブをつないでいます。READMEによれば、MuJoCo PlaygroundはMuJoCo Warp上のPyTorchでロボット環境と強化学習(RL)タスクをパッケージ化しており、従来のJAX/MJX環境はrss2025フォルダに残しています。

MuJoCo Menagerieにはロボットモデルが収められています。本稿執筆時点で、UR5e(6 自由度(DoF))、Franka Research 3(7 自由度)、Unitree Go2(12 自由度)、Boston DynamicsのSpot(19 自由度)が含まれ、それぞれに個別のライセンスファイルが付いています。

ROS 2のサポートはコミュニティによるものです。ros-controls組織のmujoco_ros2_controlパッケージ(Apache-2.0)は、MuJoCoモデルをros2_controlのハードウェアインタフェースとして公開します。Google DeepMindはROSドライバを提供していません。

難点:MJCFは強力ですが、記述が冗長です。また、接触のチューニング(solref、solimp、摩擦、タイムステップ)次第で把持が保たれるかどうかが決まります。MJXはCPU版のすべての機能をサポートしているわけではなく、モデルが未対応の機能を使うと例外を送出します。移植の前に、機能の対応状況に関する注記を確認してください。

移行メモ

MuJoCoには、ROSやURDFから移ってきた人がつまずきやすい慣例が3つあります。

  • MJCFの角度の既定値は度。 関節の可動範囲とeuler属性は、モデルで<compiler angle="radian"/>を指定しない限り度として読み込まれます。内部では、mjModelとmjDataはラジアンで値を保持します。
  • 四元数の順序は(w, x, y, z)。 ROSのメッセージ、SciPy、Isaac Lab 3.0は(x, y, z, w)を使います。
  • 単位は固定されていない。 MuJoCoは単位を前提としません。ただし既定値(重力9.81、密度1000)はSI単位系でのみ意味を持つため、メートル、キログラム、秒を使ってください。

このブロックでは最初の2つを示します。同じモデルをcompilerフラグありとなしで読み込み、保存されている可動範囲とボディの四元数を表示します(MuJoCo 3.16で動作確認)。

import mujoco
import numpy as np

# A hinge joint with range and a body rotated with euler="0 0 90".
# MJCF reads both in degrees unless <compiler angle="radian"/> is set.
xml_template = """
<mujoco>
  {compiler}
  <worldbody>
    <body name="link" euler="0 0 90">
      <joint name="hinge" type="hinge" axis="0 0 1" range="-90 90"/>
      <geom type="capsule" fromto="0 0 0 0.3 0 0" size="0.02"/>
    </body>
  </worldbody>
</mujoco>
"""

for compiler in ("", '<compiler angle="radian"/>'):
    model = mujoco.MjModel.from_xml_string(xml_template.format(compiler=compiler))
    label = compiler or "default (degrees)"
    print(f"{label}: joint range = {np.round(model.jnt_range[0], 4)} rad")
    # body_quat is stored (w, x, y, z)
    print(f"  body quaternion (w, x, y, z) = {np.round(model.body_quat[1], 4)}")

期待される出力:既定のままでは、可動範囲は±1.5708 rad、四元数は(0.7071, 0, 0, 0.7071)となり、z軸まわりの90度回転を表します。angle="radian"を指定すると、同じ数値が±90 radと90 radとして読み込まれます。compiler行を入れずに手作業で変換したURDFは、このように気づかないうちに誤った値になります。

URDFからの移行:MuJoCoはURDFファイルを直接読み込めます。ただしURDFにはアクチュエータ、腱、接触パラメータがないため、読み込んだ後にMJCFで追加します。要素の対応はURDFとMJCFのチートシートにまとめています。Isaac Simへの移行:Isaac SimのMJCFインポータはUSDに変換します。変換結果には、ほかの変換済みモデルと同じ確認が必要です。

注意点

  • Menagerieのライセンスはモデルごとに異なる。 このコレクションにはApache-2.0、BSD-2-Clause、BSD-3-Clause、BSD-3-Clause-Clear、MITが混在しています。再配布する前に、各モデルのフォルダにあるライセンスを読んでください。
  • メジャーバージョンでの互換性の破壊。 バージョン4.0では要素が削除され、腱の巻き付けの扱いが変わりました。requirementsでmujocoのバージョンを固定し、アップグレードの前に変更履歴を読んでください。
  • シミュレーションは実機ではない。 Menagerieのモデルは厳選された近似です。sim-to-realの結果を信頼する前に、質量、摩擦、アクチュエータの制限をメーカーのデータシートと照合してください。
  • モデルの利用条件。 Gemini Roboticsのモデルはオープンライセンスではなく、Googleの規約とアクセスプログラムに従います。これを基に開発する前に、何を展開してよいかを確認してください。

訂正

  • 2026年11月14日:MuJoCo PlaygroundはMJXとMuJoCo Warp上に構築されていると記載していました。そのREADMEでは、MuJoCoとMuJoCo Warp上のPyTorch環境と説明されており、従来のMJX環境はrss2025フォルダに保持されています。