分享好友 厨具导购网站首页 频道列表
openai 开源机器人模拟 python 库,并行模拟处理速度提升400%
2024-06-16 15:43    2573    中华厨具网

在过去一年的研究中,openai团队开源一个使用 mujocoengine开发的用于机器人模拟的高性能python库。该python库是openai团队深入学习机器人研究的核心工具之一,现在该团队发布的是作为mujoco的主要版本的mujoco-py(python 3 的 mujoco 绑定)。 mujoco-py 1.50.1.0带来了许多新的功能和显着的性能提升。雷锋网获悉,新功能包括以下几点:

高效处理并行模拟

gpu 加速的自动 3d 渲染

直接访问 mujoco 函数和数据结构

支持所有的 mujoco 1.50 功能,比如改进的接触求解器批量模拟

轨迹(trajectory)优化和强化学习中的许多方法(如lqr,pi2和trpo)可以从并行运行多个模拟中受益。 mujoco-py通过openmp使用数据并行,并通过cython和numpy直接访问内存管理,从而使批量模拟更有效率。

新版本的mjsimpool接口的初步使用显示,速度超过旧版本的 400%,并且在一个已优化和受限的使用模式中(通过 python 的多处理工具包获取相同水平的并行计算)仍然大约为旧版本的180%。提速的大部分原因在于mujoco各种数据结构的访问时间缩短。

高性能纹理随机化

在openai的许多项目中都使用域随机化技术。 最新版本的mujoco-py支持支持自动的(headless)gpu 渲染,与基于cpu的渲染相比,它的速度有40倍的提升,可以每秒产生数百帧的合成图像数据。 在上述(减速)动画中,openai使用理随机化技术来改变一个机器人的纹理,帮助这个机器人辨识其身体(在将其从模拟器转移至现实时)。 请查看examples / disco_fetch.py以获取随机纹理生成的示例。

采用mujoco-py实现vr

由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, mjsimmodel = 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 结构体和内部函数。

转载:中国机器人网(原始来源:评论:0)

以上是网络信息转载,信息真实性自行斟酌。

版权/免责声明:
一、本文图片及内容来自网络,不代表本站的观点和立场,如涉及各类版权问题请联系及时删除。
二、凡注明稿件来源的内容均为转载稿或由企业用户注册发布,本网转载出于传递更多信息的目的;如转载稿涉及版权问题,请作者联系我们,同时对于用户评论等信息,本网并不意味着赞同其观点或证实其内容的真实性。
三、转载本站原创文章请注明来源:中华厨具网