やること
物理エンジンのMuJoCoを試します。
自分のようにエンジニアリングの常識や前提がいろいろわかっていないけど、MuJoCoを試してみたいという人向けのまとめになります。
環境
- Mac M1
MuJoCoとは何か
MuJoCoはMulti - Jo int dynamics with Co ntact の略だそうです。
ロボット工学やアニメーション、機械学習などのための汎用物理エンジンです。
Roboti LLC によって開発された後にGoogle DeepMindのものとなり、2022年5月にオープンソース化したそうです。
MuJoCo MPC (MJPC) は、Google DeepMind が開発した、 MuJoCoを使用したリアルタイム予測制御のためのインタラクティブなアプリケーションおよびソフトウェア フレームワークです。
MJPC GUI は、MuJoCoに含まれるsimulateビューアーを拡張機能したもの。ボタンや設定がいろいろ表示されているリッチな画面のMuJoCoはこちらです。
計算エンジンとして目には見えない部分がMuJoCo本体、グラフィカルな表示部分も含んだ環境がMuJoCo MPCやMJPC GUIと思えばよいのかもしれません(よくわからない)。
なにも考えず立ち上げてみる
デスクトップアプリをDLできますが、だからといってそのままダブルクリックで開いてもデモやサンプルが動くわけでもなく、ただただ手詰まりになります。
この画面で表示されちているのはたぶん「MuJoCo MJPC GUI」というものです。
MuJoCo のネイティブsimulateビューアーの拡張機能で、ショートカットなどもsimulateビューアーと共通のようです。
モデルを画面にドロップすることで動くようですが、モデルがないと何もできません
まずは公式通りに mujoco_mpc
公式のmujoco_mpcの説明通りにインストールとビルドを行ってみます。
$ brew install ninja zlib (←以前入れたような気がするので今回はスキップ)
$ cd [任意のディレクトリパス]
$ git clone https://github.com/google-deepmind/mujoco_mpc
$ cd mujoco_mpc
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_BUILD_TYPE:STRING=Release -G Ninja -DMJPC_BUILD_GRPC_SERVICE:BOOL=ON
$ cd bin
$ ./mjpc (←実行)
すると、以下のような画面になります。
左側のナビゲーションから「Plan」を押すことで、四脚ロボが立って動き始めます。
動いている最中に、「ctrl + 右クリック」でロボットの胴体を持ち上げて振り回したりすることもできます。
緑の丸を動かすと四脚ロボが追いかけるようですが、自分のトラックパッドの環境では緑丸の動かし方がわかりませんでした(謎)
mujoco_mpcの使い方
初回起動以降は、
$ cd [mujoco_mpcのあるディレクトリ] (←移動)
$ ./mujoco_mpc/build/bin/mjpc (←実行)
などで起動できます。
mujoco_mpcと操作が同じである"MuJoCo simulate"のボタンや操作についての動画チュートリアルがあります。
MuJoCo simulateはモデルを画面にドロップすることで実行が可能なようですが、mujoco_mpcでも同じ操作ができるかどうかはよくわかりませんでした(ドロップするファイルがどれかよくわからない)。
他のモデルを試す
画面左の「Task」メニューの「Model」を選択することで、他のサンプルを試すことができます。
ためしにTask→Model→Quadrotorを選んでAgent→Planを押すと、ドローンがループ潜りをはじめます。
次回
個人ロボット開発にこれをどう使えるのか、まだよくわかりません。
次はPython APIを試していこうと思います。
参考
サンプルモデルの見どころなど、とても参考になります。
ハンドロボットが握ったキューブの向きをお手本の向きに回転させるサンプルとか、すごいです。
次回記事