補足記事:Mini Pupperのシミュレータでの動かし方
話題のMini Pupperを(シミュレータで)動かしたい!
話題の小型四脚ロボットMini Pupper。絶賛クラウドファンディング中みたいですが、nisshanさんがシミュレータ(Gazebo)での動かし方を紹介されていました。
これでシミュレーション上で自由に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でも同じ操作で動かせました!
WindowsでWSL2やMacのターミナルで、ある程度Linuxのコマンドを使える程度の知識があることが前提となります。DockerやROSの知識は、動かすだけなら不要ですが、色々やろうとすると必要になるので、興味を持ったら色々調べてみると良いかもしれません。
ROS環境(Docker)セットアップ
Windows PCにWSL2の環境セットアップします(Mac/Linuxの場合はここは飛ばしてください)。以下記事参照ください。
続いてDockerをセットアップして、Docker上にROS環境を構築します。以下記事参照ください。
ここからは、ROS環境のターミナルでコマンドを実行していきますので、全OS共通の操作になります。
ここからは、冒頭で紹介したnisshanさんの以下記事を参考にしてもOKです。
個人的好みで、セットアップ方法、少し変えている場所があるのでメモしていきます。
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通りです。
以下コマンドをひたすら実行していきましょう。
$ 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に記載してあります。
ここからは、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