mujoco-py 1.50.1.0 リリースノート / 新機能
OpenAIは、MuJoCoエンジンを使用したロボットシミュレーション向けの高性能なPython 3ライブラリであるmujoco-py 1.50.1.0をリリースしました。このリリースは、ディープラーニングとロボット研究をサポートするために設計された、大きな性能向上と新しい機能を提供します。
バッチシミュレーションと性能向上
mujoco-py 1.50.1.0は、効率的な並列シミュレーションを可能にするMjSimPoolインターフェースを導入しました。これは、TRPO、PI2、LQRなどの軌道最適化および強化学習手法にとって重要です。ライブラリは、データ並列ismのためにOpenMPを使用し、CythonとNumPyを使用して直接アクセスメモリ管理を行うことでこれらの向上を達成します。
OpenAIによると、MjSimPoolインターフェースの naïve な使用は、以前のバージョンのライブラリに比べて400%の速度向上をもたらし、Pythonのmultiprocessingパッケージを使用した最適化された使用パターンと比較しても約180%高速です。これらの性能向上は、MuJoCoデータ構造へのアクセス時間が短縮されたことによるものです。
GPUアクセラレーテッドレンダリングとドメインランダム化
mujoco-pyの最新バージョンは、ヘッドレスGPUレンダリングをサポートしており、CPUベースのレンダリングと比較して約40倍の速度向上を提供します。この機能により、研究者は毎秒何百フレームもの合成画像データを生成できます。
この加速は、シミュレーションにおけるロボットのテクスチャを変えるためにOpenAIで使用されるドメインランダム化という技術に特化して活用されます。このプロセスにより、シミュレートされた環境から物理世界へ学習された行動を移行する際、ロボットは自身の身体をよりよく識別できるようになります。
バーチャルリアリティ統合
mujoco-pyは現在、追加のC++コードを必要とせずにバーチャルリアリティ(VR)インタラクションを可能にする十分なAPIを提供しています。OpenAIはMuJoCoのC++ VR例をPythonに移植し、HTC Vive VRセットアップのサポートを有効にしました。このサポートは現在実験的と見なされていますが、OpenAI内部で使用されています。
コア機能とAPI使用法
mujoco-py 1.50.1.0は、MuJoCoの関数とデータ構造への直接アクセスを提供し、改善されたコンタクトソルバーを含むMuJoCo 1.50のすべての機能をサポートします。
標準的な使用ケースでは、MjSimクラスはシミュレーションモデルとデータのラッパーとして機能し、ユーザーがシミュレーションをステップ実行し、カメラセンサーから画像をレンダリングできるようにします。上級ユーザー向けには、ライブラリはMuJoCoのC構造体と関数に直接アクセスするための低レベルインターフェースを提供します。
Sources
- OriginalFaster physics in Python