MuJoCoを使ってみる その2(Unitree MuJoCo)
はじめに
今回はUnitree MuJoCoのサンプルを試してみました。
最近Unitree関連のロボットを展示会等でもよく見かけます。実機を利用することは難しいですが、せめてシミュレータだけでも動かしたいなと思っています。
▼Unitree RoboticsのGitHubのリポジトリはこちら。今回のUnitree MuJoCo以外にもいろいろあります。
https://github.com/unitreerobotics
▼MuJoCoは以前の記事でも利用したことがありますが、改めて環境を構築しています。
▼以前の記事はこちら
環境を構築する
C++のシミュレータもあるようですが、今回はPythonで実行します。
▼READMEのページはこちら
Windowsでも環境を構築して試そうとしたのですが、環境変数周りでエラーが起きているようだったので、今回はWSL2のUbuntu 22.04環境で実行しています。
▼WSL2のUbuntu 22.04は以下の記事でインストール済みです。
基本的にはREADMEのコマンドに沿って実行していくのですが、最初にPythonの仮想環境を作成しておきます。
git clone https://github.com/unitreerobotics/unitree_mujoco.git
cd unitree_mujoco/
sudo apt install python3.10-venv
python3.10 -m venv pyenv
source pyenv/bin/activate▼condaの環境が混じっていますが、アクティベートされました。

▼Pythonの仮想環境については以下の記事をご覧ください。
必要なパッケージをインストールしていくのですが、エラーが起きていました。
cd ~
sudo apt install python3-pip
git clone https://github.com/unitreerobotics/unitree_sdk2_python.git
cd unitree_sdk2_python
pip3 install -e .▼CYCLENEDDS_HOME or CMAKE_PREFIX_PATHをセットしてくださいというエラーです。

cmakeはインストールされていないようだったのでインストールしました。
sudo apt install cmakeCyclone DDSもインストールしました。
cd ~
git clone https://github.com/eclipse-cyclonedds/cyclonedds -b releases/0.10.x
cd cyclonedds && mkdir build install && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=../install
cmake --build . --target install環境変数を設定して再度インストールするのですが、READMEでは"~/cyclonedds/install"と書かれていました。ただしこのままではCYCLONEDDS_HOMEが読み込まれていないようだったので、~の部分を絶対パスに直すと実行できました。
cd ~/unitree_sdk2_python
export CYCLONEDDS_HOME="/home/<ユーザー名>/cyclonedds/install"
pip3 install -e .Windowsで環境を構築していたときも環境変数で引っかかっていたのですが、同じように絶対パスだと通るかもしれません。
その他のパッケージもインストールしておきました。
pip3 install mujoco
pip3 install pygameサンプルを実行する
simulate_pythonのファイルを実行してみました。
cd ~
cd unitree_mujoco/
cd ./simulate_python
python3 ./unitree_mujoco.py▼Unitree GO2のモデルがMuJoCo上に表示されました。

▼正面に階段が用意されていました。

別のターミナルでtest_unitree_sdk2.pyを実行しました。
cd ~
cd unitree_mujoco/
cd ./simulate_python
python3 ./test/test_unitree_sdk2.py▼センサー値が連続で表示されていました。

simulate_pythonのconfig.pyの中身を編集すると、別のモデルを表示できました。
▼GO2ではなくG1にしてみました。

▼人型のロボットが表示されました。

▼歩行用のモデルが色々用意されています。

exampleにあったファイルを実行しました。
python3 ../example/python/stand_go2.py▼屈伸のような動きをしています。ファイルの中身を見ると、2つの状態のジョイントの角度に対して制御を行うようになっていました。
Xboxなどのコントローラで操作するコードは用意されているようでしたが、こちらはあまり操作できないようでした。
▼GitHubのissueにも報告があります。
https://github.com/unitreerobotics/unitree_mujoco/issues/57
https://github.com/unitreerobotics/unitree_mujoco/issues/70
他のissueを見ていても動かすところはあまりサポートされていないようで、あくまでもシミュレーション環境として他のツールと一緒に使うのが良さそうな感じです。
最後に
サンプルを参考にすれば、MuJoCo上のモデルを制御できそうです。Unitree Roboticsの他の学習関連のものも試してみようと思っています。
▼ロボット学会でTechShareさんのブースで実機を見せてもらったのですが、開発についても記事があったので参考になりそうです。

