Mini Pupperの動かし方(Gazebo)
ROS Advent Calendar 2021 19日目の記事です。こんにちは、にっしゃんです。
Mini Pupperとは
「Mini Pupperは、学校、ホームスクール家庭、愛好家、そしてそれ以外の人々にも、ロボット工学をより身近なものにしてくれることでしょう」 by MangDang
Mini Pupperの経緯について、以下のように理解しています。
- Nathan KauさんがStanford Pupperを公開した。
- Nathan KauさんとAfreez GanさんがMini Pupperを公開した。
- MangDang(代表Afreez Ganさん)がKickstarterでプロジェクトをスタートし、ファンディングゴールを達成した。
なお、pupperは子犬という意味なので、miniが付いてるのでさらに小さいという意味ですね。
champとは
champはシンガポールのJuan Miguel Jimeno氏が作った、四脚ロボットをROSで動かすプロジェクトです。こちらはROS World 2020でJuan氏によるプレゼンです。
ROS World 2020 Technical Session: CHAMP Quadruped Control
特徴:
- 色んな販売されている4脚ロボットをROSで制御するためのパッケージ群
- 4脚で歩くための歩容も含まれている。
- Lidarを搭載すればnavigationも可能。
- ハードのインタフェースを用意すれば実機も動かせる。
- 実機がなくてもGazebo内で動かせる。
- ROSのバージョンはROS1。kinitic, melodic, noeticで動作する。
というもの。なのでPCがあれば、色んな4脚ロボットをPCの中で歩かせることができるわけです。ぜひ遊んでみましょう。
なんで紹介記事書いてんねん
すいません、私のプルリクがchampに採用されました。
4脚ロボットのリポジトリchvmpにmini pupperを追加しました。
— nisshan_ にっしゃん (@nisshan_) December 16, 2021
Added mini pupper to the repository chvmp for quadruped robots.https://t.co/a2Yq394nLQ#ros #chvmp #champ #minipupper
New PR from @nisshan_ allows you to spawn @LeggedRobot Mini Pupper in @GazeboSim. https://t.co/m80lWD9U1V pic.twitter.com/7smpV9GO4l
— Juan Miguel Jimeno (@joemeno) December 16, 2021
きっかけは、Juanから「Mini Pupper、プレッジしたんでしょ? じゃChampに追加よろ」とメッセが来たことですw champを良く知りたかったので良いタイミングでした。
Mini Pupperを動かす準備
2021/12/16現在の動かし方です。
champの準備
クローン
sudo apt install -y python-rosdep
cd <your_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
--recursive のオプションを忘れるとビルドが通らないので、気をつけましょう。
robotsの準備
こちらにmini pupperのデータが入っています。
クローン
cd <your_ws>/src
git clone https://github.com/chvmp/robots
cd robots
./install_descriptions
取ってくるデータが多いので、そこそこ時間がかかります。
ビルド
unitreeの実機用コードが上手く動かないので消してからビルドします。
rm -r descriptions/unitree_ros/unitree_legged_real/
cd ../..
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source <your_ws>/devel/setup.bash
Mini Pupperの動かし方(Gazebo)
動かすためのコマンドはこちらに記載していますが、さらっと紹介します。
rvizのなかでリモコン操作で歩く
Terminal #1 roslaunch mini_pupper_config bringup.launch rviz:=true
Terminal #2 roslaunch champ_teleop teleop.launch
キーボード操作で歩き出します。操作方法はターミナルの中を参照ください。キーを長押しします。例えばiキーを押し続けると前進します。
なお、パソコンにROS対応のJoystickが無線か有線でつながっていれば、ジョイスティックでも操縦できます。PS3やPS4のコントローラが有名ですね。ジョイスティックだと体の高さ、傾きを変えることができます。ジョイスティックを使う場合は、ターミナル2のコマンドは以下のように変わります。
Terminal #2 roslaunch champ_teleop teleop.launch joy:=true
載せてるステレオカメラが大きすぎて塊魂感が出てる。 pic.twitter.com/sWcgvLkGig
— nisshan_ にっしゃん (@nisshan_) December 13, 2021
Gazeboの中でmapを作りながら歩く
Terminal #1 roslaunch mini_pupper_config gazebo.launch
Terminal #2 roslaunch mini_pupper_config slam.launch rviz:=true
もし仮想環境を使っているなどGazeboの表示の更新が遅い場合は、GazeboのWorld→scene→shadowのTrueをFalseに変更すると多少改善します。
このMini Pupperモデルはステレオデプスカメラと2D Lidarを搭載しているので、周囲の環境をスキャンできます。navigationは、
- 地図を作る
- その地図を使って移動する
と2段階に手順が分かれますが、これは1.です。Rviz上の2D Nav Goalを押して、好きな場所まで歩かせましょう。そして、空間を網羅できたら、次の手順でmapを保存します。
roscd mini_pupper_config/maps
rosrun map_server map_saver
ただ、このリポジトリにはあらかじめmapが入ってるので、次のステップに進めます。
Gazeboの中で動くmini pupper pic.twitter.com/RRPTCc9xeO
— nisshan_ にっしゃん (@nisshan_) December 16, 2021
Gazeboの中でnavigationで歩く
Terminal #1 roslaunch mini_pupper_config gazebo.launch
Terminal #2 roslaunch mini_pupper_config navigate.launch rviz:=true
さっそくMangDang公式でも動かしてくれました。
Lidar SLAM Simulation based on the champ. pic.twitter.com/a3q93LGvuz
— MangDang (@LeggedRobot) December 16, 2021
今後
- はやく実機が届かないかな…
- 歩くときに胴体が揺れすぎてるので、パラメータ調整したい。
- ステレオデプスカメラと2D Lidarのモデルが大きいので、小さい機種に変えたい。
- 顔を付けたい (Gazeboで不具合が出たので一旦消した)
さいごに
さいとてつやさん、本記事を事前レビューいただきありがとうございました。
にっしゃんさんの記事を参考にWindows 11のWSL2(WSLg,Ubuntu-18.04)でMini Pupperを動かせました。まぁ,遅いですけど…… #minipupper #ミニぷぱ https://t.co/KOzTMFpIQg pic.twitter.com/m8OgkUTz4B
— さいとてつや (@saitotetsuya) December 19, 2021
Author And Source
この問題について(Mini Pupperの動かし方(Gazebo)), 我々は、より多くの情報をここで見つけました https://qiita.com/nisshan_/items/fa4a4ab807c5e4bb1ff4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .