mujoco-py 1.50.1.0 发行说明 / 新功能

OpenAI 已发布 mujoco-py 1.50.1.0,这是一个基于 MuJoCo 引擎的高性能 Python 3 库,用于机器人仿真。此版本提供了显著的性能提升和新功能,旨在支持深度学习和机器人研究。

批量模拟和性能提升

mujoco-py 1.50.1.0 引入了 MjSimPool 接口以实现高效的并行仿真,这对于轨迹优化和诸如 TRPO、PI2 和 LQR 等强化学习方法至关重要。该库通过使用 OpenMP 进行数据并行以及 Cython 和 NumPy 进行直接内存访问管理来实现这些性能提升。

根据 OpenAI 的说法,MjSimPool 接口的未经优化的使用相比之前的库版本可实现 400% 的加速,并且相比使用 Python 的 multiprocessing 包的优化使用模式仍然快约 180%。这些性能提升主要归因于 MuJoCo 数据结构访问时间的减少。

GPU 加速渲染和域随机化

mujoco-py 的最新版本支持无头 GPU 渲染,相比基于 CPU 的渲染可提供约 40 倍的加速。此功能使研究人员能够每秒生成数百帧的合成图像数据。

这种加速专门用于域随机化——这是 OpenAI 用于在仿真中改变机器人纹理的一种技术。此过程有助于机器人在将从仿真环境中学习到的行为迁移到物理世界时更好地识别自身身体。

虚拟现实集成

mujoco-py 现在提供了一个足够的 API,以启用虚拟现实(VR)交互而无需额外的 C++ 代码。OpenAI 将 MuJoCo 的 C++ VR 示例移植到 Python,以支持 HTC Vive VR 设置。虽然此支持目前被视为实验性的,但它已在 OpenAI 内部使用。

核心功能和 API 使用

mujoco-py 1.50.1.0 提供对 MuJoCo 函数和数据结构的直接访问,并支持 MuJoCo 1.50 的所有功能,包括其改进的接触求解器。

对于标准用例,MjSim 类充当仿真模型和数据的包装器,使用户能够逐步推进仿真并从相机传感器渲染图像。对于高级用户,该库提供较低级别的接口以直接访问 MuJoCo C 结构体和函数。

Sources