1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MuJoCo入門 1 : MuJoCo MPCの起動

Last updated at Posted at 2024-12-15

SS 192.png MuJoCoがぜんぜんわからないわかりたい

やること

物理エンジンの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できますが、だからといってそのままダブルクリックで開いてもデモやサンプルが動くわけでもなく、ただただ手詰まりになります。

SS 2917.png

この画面で表示されちているのはたぶん「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 + 右クリック」でロボットの胴体を持ち上げて振り回したりすることもできます。

緑の丸を動かすと四脚ロボが追いかけるようですが、自分のトラックパッドの環境では緑丸の動かし方がわかりませんでした(謎)

SS 2924.png

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を押すと、ドローンがループ潜りをはじめます。

SS 2927.png

次回

個人ロボット開発にこれをどう使えるのか、まだよくわかりません。
次はPython APIを試していこうと思います。

参考

サンプルモデルの見どころなど、とても参考になります。
ハンドロボットが握ったキューブの向きをお手本の向きに回転させるサンプルとか、すごいです。

次回記事

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?