MuJoCo要开源! DeepMind收购物理引擎MuJoCo,将推动全球机器人研发
昨天,DeepMind发帖,称已经收购了用于机器人研发的MuJoCo物理引擎,目前正致力于开源MuJoCo,并打算在2022年对所有人免费开放!
此次希望通过收购MuJoCo,推动全球各地的机器人研究工作。
当开源系统完成后,MuJoco将搬到开源社区GitHub。拥有MuJoCo付费许可证的客户可以使用roboti。
开源地址:https://github.com/deepmind/mujoco
1
DeepMind在MuJoCo身上看到了什么?
当你走路时,你的脚与地面接触。
当你写字时,你的手指和笔接触。
身体接触使与世界的互动成为可能。
然而,对于这种常见的现象,却有一系列的复杂的模拟接触的难题。在微观尺度上,发生在两物体的界面上,接触可以是软的或硬的,有弹性的或海绵性的,滑的或粘的。这种微妙的复杂性使得模拟身体接触成为一项棘手的任务。对机器人研究来说,这却是一项绕不开的研究课题。
这时,MuJoCo上场。MuJoCo是“多关节接触动力学”的英语首字母简写(Multi Joint Dynamics withContact)。最初它被用于华盛顿大学运动控制实验室,现在已被广泛的研究人员和开发人员所采用。MuJoCo 是一个旨在促进机器人,生物力学,图形和动画等领域的研究和开发的物理引擎。它是第一个专为模型优化而设计的模拟器,并且它专门针对物体之间的接触进行了优化。
作为一个通用的模拟器,MuJoCo最初开发始于 2009年。因当时 华盛顿大学运动控制实验室发现现有的工具在最优控制,状态估计和系统识别等研究领域的不足而诞生。后来 MuJoCo很快成为模拟环境和真实环境构建智能控制器的基础工具,被很多用户社区所采用。这些项目一般在其数值优化的内层循环中调用了模拟器,而这对仿真环境的精确性和稳定性提出了很高的要求,因为这些项目在数值优化的过程中会自动的寻找模拟器的漏洞。同时这些项目可能要求对动力模型进行求导或者采样,这也相应的要 求模拟器的模拟速度要比真实世界快一些。这些要求都超出了现有模拟器的能力,相应地促进了 MuJoCo逐步开发出了新的算法或者微调现有的实现方法。
OpenAI曾开发了一种模型,希望能够通过MuJoCo模拟单手解决魔方,但后来不了了之。歪打正着,却使MuJoCo被广泛关注。现在,它不仅拥有丰富的接触模型、强大的场景描述语言和设计良好的API,还可以被DeepMind继续改进,作为一个免费的预编译库。
DeepMind就此次收购发表了一篇博客,称MuJoCo一直是其机器人团队的“首选物理模拟器”。 据DeepMind称,机器人工程师使用的许多模拟器最初是为游戏和电影等目的设计的。所以他们有时会走捷径,把稳定性放在准确性之上。DeepMind表示,MuJoCo并非如此。
“MuJoCo是一个二阶连续时间模拟器,实现了完整的运动方程,”对于熟悉但不平凡的物理现象,如牛顿摆(Newton’s Cradle )、以及像网球拍效应(Dzhanibekov effect)这样不直观的物理现象,MuJoCo都能准确模拟。
MuJoCo的接触模型击中了一个最佳点,它准确而有效地捕捉了接触对象的显著特征。”像其他刚体模拟器一样,它避免了接触点变形的细节,通常运行速度比实时快得多。与其他模拟器不同,MuJoCo使用凸高斯原理(convex Gauss Principle)来解决接触力。凸性保证了唯一解和定义良好的逆动力学。另外,该模型相当灵活,可以提供多个参数,用来调整以近似广泛的接触现象。
DeepMind表示,他们一直在使用MuJoCo作为各种项目的模拟平台,主要是通过其dm_control Python堆栈。
2
MuJoCo特性
现在MuJoCo在多接触面环境下在仿真速度和准确性方面的表现都要由于其他仿真环境。具体来说,MuJoCo具有如下特性:
(1)逆动力学即使存在接触也能被很好地定义;
(2)通过凸优化统一连续时间制约约束;
(3)约束包括软接触,限制,干摩擦,平等约束;
(4)可以模拟粒子系统,布料,绳索和软物体;
(5)执行器包括马达,气缸,肌肉,肌腱,滑块,曲柄;
(6)直观的XML模型格式(称为 MJCF)和内置模型编译器;
(7)跨平台GUI,在OpenGL中实现交互式3D可视化;
(8)使用ANSI C编写的运行时模块,并针对性能进行手动调整。
在这里我们概述了最著名的几个:
可移植代码
MuJoCo的核心引擎是用纯C语言编写,方便移植到各种架构中。MuJoCo库产生确定性结果、场景描述和仿真状态完全封装在两个数据结构中,构成了重建模拟所需的所有信息。该库还提供了快速和方便的常用量的计算,如运动雅可比矩阵和惯性矩阵(kinematic Jacobians and inertia matrices.)。
强大的场景描述
MJCF场景描述格式使用级联默认值(避免多个重复值)并包含真实机器人组件的元素,如等式约束、动作捕捉标记、肌腱、执行器和传感器。长期路线图包括将MJCF作为一种开放格式进行标准化,将其实用性扩展到MuJoCo生态系统之外。
下面是几个用MuJoCo模拟物理运动与实物图的对比:
3
结语:起风之举
参考资料
雷锋网 (公众号:雷锋网)
雷锋网版权文章,未经授权禁止转载。详情见。