MuJoCo – 高级物理仿真引擎

Hacker News Top 工具

摘要

Google DeepMind 维护的 MuJoCo 是一款高性能开源物理引擎,提供 C/Python API 与 Unity 插件,专为机器人与机器学习研究设计。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/04/22 09:29

google-deepmind/mujoco

源码:https://github.com/google-deepmind/mujoco

MuJoCoMulti-Joint dynamics with Contact 的缩写,是一款通用物理引擎,旨在为机器人学、生物力学、图形与动画、机器学习以及其他需要快速、精确模拟铰接结构与环境交互的领域提供研发便利。本仓库由 Google DeepMind(https://www.deepmind.com/)维护。MuJoCo 提供 C API,面向研究人员与开发者。其运行时仿真模块经高度优化,性能优先,直接操作由内置 XML 编译器预分配的低级数据结构。库内集成原生 GUI 的交互式可视化,基于 OpenGL 渲染。MuJoCo 还公开大量用于计算物理相关量的工具函数,同时提供 [Python 绑定] 及 [Unity] 游戏引擎插件。

文档

MuJoCo 文档见 [mujoco.readthedocs.io]。下一版本的新功能可在“latest”分支的 [changelog] 中查看。

快速开始

使用 MuJoCo 最轻松的两种方式:

  1. 在本机运行 simulate
    该视频(https://www.youtube.com/watch?v=P83tKA1iz2Y)演示了 simulate(MuJoCo 原生交互查看器)的录屏。按文档 [快速开始] 部分的步骤即可在本机启动 simulate

  2. 在线体验 IPython Notebook
    Python 用户可直接在 Google Colab 运行我们的教程 notebook:

安装

预编译二进制

GitHub [releases 页面] 提供已发布的预编译二进制,支持 Linux(x86-64 与 AArch64)、Windows(仅 x86-64)与 macOS(通用)。推荐普通用户采用此方式。

从源码构建

需自行编译的用户请参考文档的[从源码构建]部分。注意 main 分支的最新提交可能不稳定。

Python(≥3.10)

原生 Python 绑定已内置 MuJoCo,可直接通过 [PyPI] 安装:

pip install mujoco

Linux 预编译 wheel 目标为 manylinux2014,兼容发行版列表见此处(https://github.com/pypa/manylinux)。更多编译细节见文档的 [Python 绑定] 部分。

版本管理

我们力争每月第一周发布新版。自 3.5.0 起采用修改后的语义化版本规则,详见 versioning

贡献

我们欢迎社区参与:提问、求助、错误报告、功能需求。阅读 贡献者指南风格指南 了解如何提交错误、功能请求或更大规模的贡献。

提问

请在 GitHub “求助” 讨论区(https://github.com/google-deepmind/mujoco/discussions/categories/asking-for-help)提出具体问题或求助。

错误报告与功能请求

GitHub Issues(https://github.com/google-deepmind/mujoco/issues)专用于错误报告、功能请求及其他开发相关主题。

相关软件

MuJoCo 已被众多环境库采用。下面列出部分绑定与转换工具。

绑定

以下项目为不同语言提供 MuJoCo 接口:

官方绑定:

  • Python 绑定(https://mujoco.readthedocs.io/en/stable/python.html)
  • dm_control(https://github.com/google-deepmind/dm_control):Google DeepMind 的环境栈,含 PyMJCF(https://github.com/google-deepmind/dm_control/blob/main/dm_control/mjcf/README.md),可程序化操作 MuJoCo 模型。
  • JavaScript 绑定与 WebAssembly 支持(灵感来自社区项目 stillonearth(https://github.com/stillonearth)与 zalo(https://github.com/zalo);mjswan(https://github.com/ttktjmt/mjswan)在此基础上新增实时策略控制、交互式施力等功能)。
  • C# 绑定与 Unity 插件(https://mujoco.readthedocs.io/en/stable/unity.html)

第三方绑定:

  • MATLAB Simulink:Simulink Blockset for MuJoCo Simulator(https://github.com/mathworks-robotics/mujoco-simulink-blockset),作者 Manoj Velmurugan(https://github.com/vmanoj1996)。
  • Swift:swift-mujoco(https://github.com/liuliu/swift-mujoco)
  • Java:mujoco-java(https://github.com/CommonWealthRobotics/mujoco-java)
  • Julia:MuJoCo.jl(https://github.com/JamieMair/MuJoCo.jl)
  • Rust:MuJoCo-rs(https://github.com/davidhozic/mujoco-rs)

转换工具

  • OpenSim:MyoConverter(https://github.com/MyoHub/myoconverter)可将 OpenSim 模型转为 MJCF。
  • SDFormat:gz-mujoco(https://github.com/gazebosim/gz-mujoco/)实现 SDFormat ↔ MJCF 双向转换。
  • OBJ:obj2mjcf(https://github.com/kevinzakka/obj2mjcf)用于把复合 OBJ 文件转为可加载的 MJCF 模型。
  • Onshape:Onshape to Robot(https://github.com/rhoban/onshape-to-robot)将 onshape(https://www.onshape.com/en/)CAD 装配体转为 MJCF。

引用

若您在发表论文时使用 MuJoCo,请引用:

@inproceedings{todorov2012mujoco,
  title={MuJoCo: A physics engine for model-based control},
  author={Todorov, Emanuel and Erez, Tom and Tassa, Yuval},
  booktitle={2012 IEEE/RSJ International Conference on Intelligent Robots and Systems},
  pages={5026--5033},
  year={2012},
  organization={IEEE},
  doi={10.1109/IROS.2012.6386109}
}

许可证与免责声明

Copyright 2021 DeepMind Technologies Limited。
箱体碰撞代码(engine_collision_box.c(https://github.com/google-deepmind/mujoco/blob/main/src/engine/engine_collision_box.c))Copyright 2016 Svetoslav Kolev。
doc 目录下的 ReStructuredText 文档、图片与视频采用 Creative Commons Attribution 4.0 (CC BY 4.0) 许可,详见 https://creativecommons.org/licenses/by/4.0/legalcode。
源代码采用 Apache License, Version 2.0,详见 https://www.apache.org/licenses/LICENSE-2.0。
本产品并非 Google 官方支持产品。

相似文章

Python 中更快的物理模拟

OpenAI Blog

OpenAI 开源 mujoco-py,一个使用 MuJoCo 引擎的高性能 Python 机器人模拟库,具有无头 GPU 渲染和 VR 交互支持,性能提升约 40 倍。