资源 | OpenAI开源机器人模拟Python库mujoco-py:可高效处理并行模拟

选自OpenAI

机器之心编译

参与:黄小天

OpenAI 宣布开源一个高性能的 Python 库,它可用于使用 MuJoCo 引擎(在上年的机器人研究中开发出来)的机器人模拟。

  • 代码:https://github.com/openai/mujoco-py
  • 文档:https://openai.github.io/mujoco-py/build/html/index.html

该库是 OpenAI 用于深度学习机器人研究的核心工具之一,现在将其作为 mujoco-py(Python 3 的 MuJoCo 绑定)的主要版本发布。mujoco-py 1.50.1.0 有着大量的新能力,性能也获得显著提升。新功能有:

  • 高效处理并行模拟
  • GPU 加速的自动 3D 渲染
  • 直接获取 MuJoCo 函数和数据结构
  • 支持所有的 MuJoCo 1.50 功能,比如改进的 contact solver

批量模拟

轨迹(trajectory)优化和强化学习中的很多方法得益于能够并行运行多个模拟。mujoco-py 通过 OpenMP 使用数据并行,以及通过 Cython 和 NumPy 使用直接访问的内存管理,从而使批量模拟更有效。

新版本 MjSimPool 接口的单纯使用相比于旧版本有一个 400% 的提速,并且在一个已优化和受限的使用模式中(通过 Python 的多处理工具包获取相同水平的并行)仍然大约为 180%。提速主要来自于访问不同 MuJoCo 数据结构的时间的减少。查看示例/simpool.py 以了解 MjSimPool。

高性能纹理随机化

OpenAI 在很多项目上使用了域随机化技术。mujoco-py 的最新版本支持自动的(headless)GPU 渲染。相较于 CPU 渲染,这有了一个 40 倍的提速,每秒可产生数百帧的合成图像数据。上述动画中 OpenAI 使用纹理随机化技术改变了其众多机器人中的一个的纹理,帮助这个机器人辨识其身体(在将其从模拟器转移至现实时)。查看示例/disco_fetch.py 以了解随机化纹理生成。

通过 mujoco-py 实现虚拟现实

mujoco-py 公开的 API 足以实现虚拟现实交互而无需额外的 C++ 代码。OpenAI 使用 mujoco-py 将 MuJoCo 的 C++ VR 示例移植到 Python。如果你有一个 HTC Vive VR 设置,可以尝试使用这一示例(这一支持被认为是实验性的,但是 OpenAI 已在内部使用它了一段时间)。

API 和用法

开始 mujoco-py 的最简单方法是使用 MjSim class。它是围绕模拟模型和数据的包装(wrapper),可以使你轻易地进行模拟并从摄像头传感器中渲染图像,下面是一个简单示例:

from mujoco_py import load_model_from_path, MjSim

model = load_model_from_path("xmls/tosser.xml")  

sim = MjSim(model)  
sim.step()  
print(sim.data.qpos)  
# => [ -1.074e-05   1.043e-04  -3.923e-05   0.000e+00   0.000e+00]

对于高阶用户,OpenAI 提供了大量的低水平接口以直接访问 MuJoCo C 结构体和内部函数。

原文链接:https://blog.openai.com/faster-robot-simulation-in-python/

本文由机器之心编译,转载请联系原文作者获得授权。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2017-06-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏牛客网

蚂蚁金服一面面经

本来以为自己的简历不可能跳过笔试,所以最近在刷笔试题,没有怎么复习安卓,在加之有些紧张,凉凉,呜呜呜~~~~~~~ 阿里不给通知,毫无预兆的打过来电话面试,面试...

4936
来自专栏机器之心

教程 | 如何使用谷歌Mobile Vision API 开发手机应用

机器之心原创 参与:QW、李亚洲 一年一度的谷歌开发者大会 Google I/O 昨日在山景城开幕,在首日的 Keynote 中,谷歌宣布了一系列新的硬件、应用...

4275
来自专栏大数据挖掘DT机器学习

在业务分析中实现商业洞察 – Excel商业智能分析报表的玩法

一套完整的BI报表应该至少具备以下四个条件: 条件一:能够批量处理有一定规模的数据; 条件二:能够保证数据的时效性及准确性; 条件三:能够将实际业务中所涉及的所...

4038
来自专栏CDA数据分析师

如何在业务分析中实现商业洞察?-基于Excel BI

作者 CDA 数据分析师 一套完整的 BI 报表应该至少具备以下四个条件: 条件一:能够批量处理有一定规模的数据; 条件二:能够保证数据的时效性及准确性; 条...

2379
来自专栏人工智能

DeepMind推出控制套件:为强化学习智能体提供性能基准

原文来源:arxiv 作者:Yuval Tassa, Yotam Doron, Alistair Muldal, Tom Erez,Yazhe Li, Dieg...

2117
来自专栏IT技术精选文摘

浅析eBay联盟营销的上下文广告机制

1833
来自专栏互联网杂技

2018年3月份GitHub上最热门的Python项目:深度学习占半壁江山

https://github.com/NVIDIA/FastPhotoStyle Star 5978

1122
来自专栏灯塔大数据

技术 | 人生苦短,请用Python——10大Python库汇总

前言 对于码农来说,主要关注2017年新推出了哪些开源库,还有就是新近有什么流行的既能解决问题又好用的利器。下面就来为2017年做个总结。 1、Pipenv 第...

4479
来自专栏BestSDK

OpenAI 开源机器人模拟 Python 库:优化API接口提升400%处理速度

在OpenAI的许多项目中都使用域随机化技术。 最新版本的mujoco-py支持支持自动的(headless)GPU 渲染,与基于CPU的渲染相比,它的速度有4...

41011
来自专栏AI2ML人工智能to机器学习

当arXiv遇到Twitter

arXiv是一个开放的存放预备版(preprint)文章的地方。 这个Cornell University在1991开启的项目, 因为Grigori Perel...

913

扫码关注云+社区

领取腾讯云代金券