dm_control 連続制御のためのソフトウェアとタスク
'dm_control ソフトウェアとタスクは連続制御のために使用されます'
概要
dm_controlソフトウェアのチュートリアルを含むパブリックなColabノートブックはこちらで利用可能です。
インフラストラクチャ
- 自動生成されたMuJoCo Pythonラッパーは、基礎となるエンジンへの完全なアクセスを提供します。
- PyMJCFは、Pythonエンティティオブジェクトの階層がMuJoCoモデルの要素に対応するドキュメントオブジェクトモデルです。
- Composerは、エンティティをシーンに組み合わせ、観測、報酬、終了条件、一般的なゲームロジックを定義するための高レベルの「ゲームエンジン」です。
- Locomotionフレームワークは、アリーナやウォーカーなどの抽象的なComposerエンティティを導入し、ロコモーションに似たタスクを容易にします。
環境
- Control Suiteには、新しい四足歩行ロボットや犬の環境が含まれています。
- サッカーを含むいくつかのロコモーションタスク。
- スナップトゥギャザーのブロックを使用した単腕ロボットの操作タスク。
ハイライト
名前付きインデックス
MuJoCoのすべてのモデル要素に対する名前のサポートを利用することで、文字列を使用して配列にインデックスやスライスすることができます。例えば、次のように書く代わりに:
“fingertip_height = physics.data.geom_xpos[7, 2]”
…わかりにくくて壊れやすい数値のインデックスを使用せずに、次のように書くことができます:
“fingertip_height = physics.named.data.geom_xpos[‘fingertip’, ‘z’]”
これにより、より堅牢で読みやすいコードベースが実現されます。
PyMJCF
PyMJCFライブラリは、MuJoCoモデルに1対1の対応関係を持つPythonオブジェクトの階層を作成します。これにより、モデル同士を接続するattach()メソッドが導入されます。例えば、チュートリアルでは、足をボディに接続し、クリーチャーをシーンに組み合わせて手続き的に多足クリーチャーを作成します。
Composer
Composerは「ゲームエンジン」フレームワークであり、ランタイム関数呼び出しの特定の順序を定義し、報酬、終了条件、観測の機能を抽象化します。これらの抽象化により、有用なサブモジュールを作成することができます:
composer.Observable: 任意のセンサにノイズ、遅延、バッファリング、フィルタリングを追加できる抽象的な観測ラッパー。
composer.Variation: シミュレーション量をランダム化するためのツールセットであり、エージェントの強化とモデルのバリエーションによるシム・トゥ・リアルが可能です。
ロコモーション
ロコモーションフレームワークでは、以下の抽象化が導入されました:
Walker: エゴ中心フレームへのベクトルの射影など、共通のロコモーション関連メソッドを持つ制御可能なエンティティ。
Arena: ウォーカーを配置し、実行するタスクが与えられる自己スケーリングのランダムなシーン。
例えば、たった4つの関数呼び出しで、ヒューマノイドウォーカー、WallsCorridorアリーナをインスタンス化し、RunThroughCorridorタスクを組み合わせることができます。
新しいControl Suiteドメイン
四足歩行
- 安定したボディを持つ汎用の四足歩行ドメイン。
- いくつかの純粋なロコモーションタスク(例:歩行、走行)。
- 粗い地形のナビゲーションを必要とするエスケープタスク。
- ボールドリブリングを必要とするフェッチタスク。
犬
- leo3Dmodelsから依頼されたスケルトンを基にした緻密なモデル。
- 口での精密な掴みを必要とする難しいボールフェッチタスク。
ショーケース
DeepMindのdm_controlを使用したタスクの高速なモンタージュ。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles