🐕

補足記事:Mini Pupperのシミュレータでの動かし方

2021/12/25に公開

話題のMini Pupperを(シミュレータで)動かしたい!

話題の小型四脚ロボットMini Pupper。絶賛クラウドファンディング中みたいですが、nisshanさんがシミュレータ(Gazebo)での動かし方を紹介されていました。

https://twitter.com/nisshan_/status/1474249778523697153

https://qiita.com/nisshan_/items/fa4a4ab807c5e4bb1ff4

これでシミュレーション上で自由にMini Pupperを動かせる!

のですが、基本LinuxにROSをインストールすることが前提となっているので。「ワークスペース??」みたいな人のために、とりあえずWindows/Macで比較的簡単に動かせる方法を紹介したいと思います。

Minu Pupperの動かし方

前提とする環境・知識

比較的ハイスペックのWindows(WSL2)かMac OS上でROS環境のDockerを使って動かします。私はWindows 11をインストールしたゲーミングPCのWSL2上で確認しました。MacやLinuxでも確認はできていませんが、Dockerが動けば同様の方法で動くと思います。

ただ、Apple Silicon Macは、色々頑張らないと駄目かもしれません。 Apple Silicon Macでも同じ操作で動かせました!

https://twitter.com/karaage0703/status/1479818644872130567

WindowsでWSL2やMacのターミナルで、ある程度Linuxのコマンドを使える程度の知識があることが前提となります。DockerやROSの知識は、動かすだけなら不要ですが、色々やろうとすると必要になるので、興味を持ったら色々調べてみると良いかもしれません。

ROS環境(Docker)セットアップ

Windows PCにWSL2の環境セットアップします(Mac/Linuxの場合はここは飛ばしてください)。以下記事参照ください。
https://zenn.dev/karaage0703/articles/211d89cc0a29a1

続いてDockerをセットアップして、Docker上にROS環境を構築します。以下記事参照ください。

https://qiita.com/karaage0703/items/957bdc7b4dabfc6639da

ここからは、ROS環境のターミナルでコマンドを実行していきますので、全OS共通の操作になります。

ここからは、冒頭で紹介したnisshanさんの以下記事を参考にしてもOKです。
https://qiita.com/nisshan_/items/fa4a4ab807c5e4bb1ff4

個人的好みで、セットアップ方法、少し変えている場所があるのでメモしていきます。

ROSワークスペースの構築

ワークスペースの構築をします。ROS知らない人はおまじないとおもってください。

個人的な好みでcatkin_makeでなくcatkin buildを使います

$ sudo apt update
$ sudo apt install -y python-catkin-tools
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws
$ catkin init
$ catkin build
$ sh -c "echo \"source ~/catkin_ws/devel/setup.bash\" >> ~/.bashrc"
$ source ~/.bashrc

champセットアップ

champという四脚ロボットをROSで動かすソフトをセットアップします。以下サイトのREADME通りです。

https://github.com/chvmp/champ

以下コマンドをひたすら実行していきましょう。

$ cd ~/catkin_ws/src
$ git clone --recursive https://github.com/chvmp/champ
$ git clone https://github.com/chvmp/champ_teleop
$ cd ..
$ rosdep install --from-paths src --ignore-src -r -y
$ cd ~/catkin_ws/src
$ git clone https://github.com/chvmp/robots
$ cd robots
$ ./install_descriptions
$ rm -r descriptions/unitree_ros/unitree_legged_real/
$ cd ../..
$ rosdep install --from-paths src --ignore-src -r -y
$ catkin build
$ source ~/.bashrc

Mini Pupperを動かす

動かし方は以下のREADMEに記載してあります。
https://github.com/chvmp/robots/tree/master/configs/mini_pupper_config

ここからは、nisshanさんの記事の通り試しました。

テレオペ(キーボードで動かす)

2つのウィンドウを開いて動かします。

$ roslaunch mini_pupper_config bringup.launch rviz:=true
$ roslaunch champ_teleop teleop.launch

動いた!かわいい!

注意点として、キーボードは長押ししないと動きません(暴走を防ぐための安全措置でしょう)。

最初動かず、ソースコードをみて気づきました。とりあえずiボタンを押し続ければ前にあるき出すはずです。

Gazeboの中でmapを作りながら歩く

$ roslaunch mini_pupper_config gazebo.launch
$ roslaunch mini_pupper_config slam.launch rviz:=true

かっこいい!

Gazeboの中でnavigationで歩く

$ roslaunch mini_pupper_config gazebo.launch
$ roslaunch mini_pupper_config navigate.launch rviz:=true

最高!

Dokcerイメージの保存

せっかく環境構築したので、保存しておきましょう。

docker psコマンドでコンテナ名を確認します。stoic_carverという名前みたいです。

$ docker ps
CONTAINER ID   IMAGE                            COMMAND         CREATED       STATUS                   PORTS                                   NAMES
0fe08550526e   tiryoh/ros-desktop-vnc:melodic   "/startup.sh"   8 hours ago   Up 8 hours (unhealthy)   0.0.0.0:6080->80/tcp, :::6080->80/tcp   stoic_carver

mini_pupperというイメージ名で保存しましょう。

$ docker commit stoic_carver mini_pupper

次からは、以下コマンドですぐmini_pupperに会えます。ワンワン!

$ docker run -p 6080:80 --shm-size=512m mini_pupper

まとめ

シミュレータの中でMini Pupperを動かせました!仮想環境(Docker)上で重いソフトを動かすので、ハイスペックのPCじゃないと厳しいかもしれませんが、実機なしでロボットを動かしたりソフト開発できるのは良いですね。

動き可愛くて、実機も欲しくなってしまいますが、積みロボットが増えてきているので、Mini Pupperは、当面は実機購入せずに、シミュレータ上で愛でようかなと思っています!

更新履歴

  • 2021/01/08 Apple Silicon Macに関して追記

Discussion