OpenAI開源機器人模擬Python庫的新功能及性能
在過去一年的研究中,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各種數據結構的訪問時間縮短。
可以以這個案例了解MjSimPool:github.com/openai/mujoco-py/blob/master/examples/simpool.py
高性能紋理隨機化
在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, 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結構體和內部函數。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%