dm_control
: 物理ベースのシミュレーションのための Google DeepMind インフラストラクチャ。MuJoCo 物理学を使用した、物理ベースのシミュレーションおよび強化学習環境用の Google DeepMind のソフトウェア スタック。
このパッケージの入門チュートリアルは、Colaboratory ノートブックとして利用できます。
このパッケージは、次の「コア」コンポーネントで構成されています。
dm_control.mujoco
: MuJoCo 物理エンジンに Python バインディングを提供するライブラリ。
dm_control.suite
: MuJoCo 物理エンジンを利用した Python 強化学習環境のセット。
dm_control.viewer
: インタラクティブな環境ビューア。
さらに、より複雑な制御タスクの作成には、次のコンポーネントを使用できます。
dm_control.mjcf
: Python で MuJoCo MJCF モデルを構成および変更するためのライブラリ。
dm_control.composer
: 再利用可能な自己完結型コンポーネントから豊富な RL 環境を定義するためのライブラリ。
dm_control.locomotion
: カスタム タスク用の追加ライブラリ。
dm_control.locomotion.soccer
: マルチエージェントのサッカー タスク。
このパッケージを使用する場合は、付属の出版物を引用してください。
@article{tunyasuvunakool2020,
title = {dm_control: Software and tasks for continuous control},
journal = {Software Impacts},
volume = {6},
pages = {100022},
year = {2020},
issn = {2665-9638},
doi = {https://doi.org/10.1016/j.simpa.2020.100022},
url = {https://www.sciencedirect.com/science/article/pii/S2665963820300099},
author = {Saran Tunyasuvunakool and Alistair Muldal and Yotam Doron and
Siqi Liu and Steven Bohez and Josh Merel and Tom Erez and
Timothy Lillicrap and Nicolas Heess and Yuval Tassa},
}
次のコマンドを実行して、PyPI からdm_control
インストールします。
pip install dm_control
注: dm_control は「編集可能」モード (つまり
pip install -e
)dm_control
インストールできません。
dm_control
mujoco
パッケージ経由で提供される pybind11 ベースのバインディングを使用するように大幅に更新されましたが、現時点では、編集可能モードと互換性のない方法で MuJoCo ヘッダー ファイルから自動的に生成されるいくつかのレガシー コンポーネントにまだ依存しています。dm_control
編集可能モードでインストールしようとすると、次のようなインポート エラーが発生します。ImportError: cannot import name 'constants' from partially initialized module 'dm_control.mujoco.wrapper.mjbindings' ...
解決策は、
pip uninstall dm_control
、-e
フラグを付けずに再インストールすることです。
バージョン 1.0.0 からは、セマンティック バージョニングを採用します。
バージョン 1.0.0 より前は、 dm_control
Python パッケージのバージョンは0.0.N
でした。ここで、 N
、Git コミットごとに任意の量ずつ増加する内部リビジョン番号です。
dm_control
の未リリース バージョンをリポジトリから直接インストールしたい場合は、 pip install git+https://github.com/google-deepmind/dm_control.git
実行してインストールできます。
MuJoCo Python バインディングは、EGL (ヘッドレス、ハードウェア アクセラレーション)、GLFW (ウィンドウ、ハードウェア アクセラレーション)、および OSMesa (純粋なソフトウェア ベース) の 3 つの異なる OpenGL レンダリング バックエンドをサポートします。 dm_control
を通じてレンダリングするには、これら 3 つのバックエンドのうち少なくとも 1 つが使用可能である必要があります。
ウィンドウ システムを使用したハードウェア レンダリングは、GLFW および GLEW を介してサポートされています。 Linux では、ディストリビューションのパッケージ マネージャーを使用してこれらをインストールできます。たとえば、Debian および Ubuntu では、これを実行するには、 sudo apt-get install libglfw3 libglew2.0
実行します。以下の点に注意してください。
dm_control.viewer
GLFW でのみ使用できます。 「ヘッドレス」ハードウェア レンダリング (つまり、X11 などのウィンドウ システムを使用しない) では、EGL ドライバーでの EXT_platform_device サポートが必要です。最近の Nvidia ドライバーはこれをサポートしています。 GLEWも必要になります。 Debian および Ubuntu では、これはsudo apt-get install libglew2.0
を介してインストールできます。
ソフトウェア レンダリングには GLX と OSMesa が必要です。 Debian および Ubuntu では、これらはsudo apt-get install libgl1-mesa-glx libosmesa6
を使用してインストールできます。
デフォルトでは、 dm_control
最初に GLFW、次に EGL、次に OSMesa の使用を試みます。 MUJOCO_GL=
環境変数をそれぞれ"glfw"
、 "egl"
、または"osmesa"
に設定することで、使用する特定のバックエンドを指定することもできます。 EGL を使用してレンダリングする場合、環境変数MUJOCO_EGL_DEVICE_ID=
ターゲット GPU ID に設定することで、レンダリングに使用する GPU を指定することもできます。
pip
を使用した上記の手順は、(システムのデフォルトのものではなく) Homebrew によってインストールされた Python インタープリターを使用する場合に機能します。
実行する前に、 DYLD_LIBRARY_PATH
環境変数を GLFW ライブラリへのパスで更新する必要があります。これはexport DYLD_LIBRARY_PATH=$(brew --prefix)/lib:$DYLD_LIBRARY_PATH
実行することで実行できます。