Multi-Joint dynamics with Contact. A general purpose physics simulator.
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 天前 | ||
| 7 天前 | ||
| 10 天前 | ||
| 11 小时前 | ||
| 3 天前 | ||
| 1 天前 | ||
| 1 个月前 | ||
| 24 天前 | ||
| 9 小时前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 11 小时前 | ||
| 11 小时前 | ||
| 3 天前 | ||
| 2 天前 | ||
| 7 个月前 | ||
| 4 个月前 | ||
| 1 个月前 | ||
| 10 天前 | ||
| 2 年前 | ||
| 4 年前 | ||
| 2 个月前 | ||
| 4 年前 | ||
| 7 个月前 | ||
| 4 个月前 | ||
| 3 年前 |
MuJoCo 代表 Multi-Joint dynamics with Contact(多关节接触动力学)。它是一款通用物理引擎,旨在为机器人学、生物力学、图形与动画、机器学习等需要对与环境交互的多关节结构进行快速精确仿真的领域提供研究与开发支持。
本仓库由 Google DeepMind 维护。
MuJoCo 提供 C API,面向研究人员和开发人员。运行时仿真模块经过性能优化,可在由内置 XML 编译器预分配的底层数据结构上高效运行。该库包含基于 OpenGL 渲染的原生 GUI 交互式可视化功能。MuJoCo 还提供了大量用于计算物理相关量的实用函数。
我们还提供 [Python 绑定] 和适用于 Unity 游戏引擎的插件。
文档
MuJoCo 的文档可在 mujoco.readthedocs.io 查阅。下一版本即将推出的功能可在 "latest" 分支的 [更新日志] 中查看。
快速开始
有两种简单方式开始使用 MuJoCo:
-
在您的机器上运行
simulate。 此视频 展示了 MuJoCo 原生交互式查看器simulate的屏幕录制。请按照文档中 [快速开始] 部分的步骤,在您的机器上运行simulate。 -
探索我们的在线 IPython 笔记本。 如果您是 Python 用户,不妨从我们在 Google Colab 上运行的教程笔记本开始:
- 入门 教程教授 MuJoCo 基础知识:
- 模型编辑 教程展示如何通过程序创建和编辑模型:
- 轨迹推演 教程展示如何使用多线程
rollout模块: - LQR 教程设计了一个线性二次控制器,用于控制人形机器人单腿平衡:
- 最小二乘 教程介绍如何使用基于 Python 的非线性最小二乘求解器:
- MJX 教程提供了 MuJoCo XLA(一个基于 JAX 的 MuJoCo 分支)的使用示例:
- 可微物理 教程利用 MuJoCo 物理步骤自动推导的解析梯度来训练 locomotion 策略:
安装
预构建二进制文件
可从 GitHub [发布页面] 获取版本化发布的预编译二进制文件,支持 Linux(x86-64 和 AArch64)、Windows(仅 x86-64)以及 macOS(通用版)。这是使用该软件的推荐方式。
从源代码构建
希望从源代码构建 MuJoCo 的用户,请参考文档的 [从源代码构建] 部分。但请注意,main 分支最新的提交可能不稳定。
Python (>= 3.10)
原生 Python 绑定已预打包 MuJoCo 副本,可通过以下命令从 PyPI 安装:
pip install mujoco
请注意,预构建的 Linux wheel 以 manylinux2014 为目标平台,兼容的发行版可参见此处。有关从源代码构建绑定等更多信息,请参阅文档的 [Python 绑定] 部分。
版本控制
我们计划在每个月的第一周发布 MuJoCo。自 3.5.0 版本起,我们的版本控制标准已更改为修改后的语义化版本控制,详情请参见 versioning。
贡献
我们欢迎社区参与:提问、寻求帮助、错误报告和功能请求。要了解有关错误报告、功能请求以及更深入的贡献,请参阅我们的 贡献者指南 和 风格指南。
提问
欢迎通过 GitHub 的 "寻求帮助" 讨论区 提出问题和寻求帮助,问题应聚焦于特定的难题或疑问。
错误报告和功能请求
GitHub Issues 专门用于提交错误报告、功能请求以及其他与开发相关的事项。
相关软件
MuJoCo 是众多环境包的基础。下面我们列出了一些绑定和转换器。
绑定
这些包为不同语言的用户提供了访问 MuJoCo 功能的途径:
官方绑定:
- Python 绑定
- dm_control,Google DeepMind 的相关环境栈,包含 PyMJCF,一个用于 MuJoCo 模型程序化操作的模块。
- JavaScript 绑定和 WebAssembly 支持(受 stillonearth 和 zalo 的社区项目启发;mjswan 对其进行了扩展,增加了实时策略控制、交互式力施加等功能)。
- C# 绑定和 Unity 插件
第三方绑定:
- MATLAB Simulink:Simulink Blockset for MuJoCo Simulator,由 Manoj Velmurugan 开发。
- Swift:swift-mujoco
- Java:mujoco-java
- Julia:MuJoCo.jl
- Rust:MuJoCo-rs
转换器
- OpenSim:MyoConverter 可将 OpenSim 模型转换为 MJCF。
- SDFormat:gz-mujoco 是一个双向 SDFormat <-> MJCF 转换工具。
- OBJ:obj2mjcf 是一个用于将复合 OBJ 文件转换为可加载 MJCF 模型的脚本。
- onshape:Onshape to Robot 可将 onshape 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}
}
许可协议与免责声明
版权所有 2021 DeepMind Technologies Limited。
盒碰撞代码(engine_collision_box.c)的版权所有为 2016 Svetoslav Kolev。
doc 目录中的 ReStructuredText 文档、图像和视频均根据知识共享署名 4.0(CC BY 4.0)许可协议提供。您可以在 https://creativecommons.org/licenses/by/4.0/legalcode 获取该许可协议的副本。
源代码根据 Apache 许可协议 2.0 版授权。您可以在 https://www.apache.org/licenses/LICENSE-2.0 获取该许可协议的副本。
本产品并非 Google 的官方支持产品。
