LoginSignup
14
8

More than 1 year has passed since last update.

Mini Pupperの動かし方(Gazebo)

Last updated at Posted at 2021-12-18

ROS Advent Calendar 2021 19日目の記事です。こんにちは、にっしゃんです。

Mini Pupperとは

「Mini Pupperは、学校、ホームスクール家庭、愛好家、そしてそれ以外の人々にも、ロボット工学をより身近なものにしてくれることでしょう」 by MangDang

Mini Pupperの経緯について、以下のように理解しています。

  1. Nathan KauさんがStanford Pupperを公開した。
  2. Nathan KauさんとAfreez GanさんがMini Pupperを公開した。
  3. MangDang(代表Afreez Ganさん)がKickstarterでプロジェクトをスタートし、ファンディングゴールを達成した。

MangDang_MiniPupper.png

なお、pupperは子犬という意味なので、miniが付いてるのでさらに小さいという意味ですね。

champとは

champはシンガポールのJuan Miguel Jimeno氏が作った、四脚ロボットをROSで動かすプロジェクトです。こちらはROS World 2020でJuan氏によるプレゼンです。

Juan_presentation.png

ROS World 2020 Technical Session: CHAMP Quadruped Control

特徴:

  • 色んな販売されている4脚ロボットをROSで制御するためのパッケージ群
  • 4脚で歩くための歩容も含まれている。
  • Lidarを搭載すればnavigationも可能。
  • ハードのインタフェースを用意すれば実機も動かせる。
  • 実機がなくてもGazebo内で動かせる。
  • ROSのバージョンはROS1。kinitic, melodic, noeticで動作する。

というもの。なのでPCがあれば、色んな4脚ロボットをPCの中で歩かせることができるわけです。ぜひ遊んでみましょう。

なんで紹介記事書いてんねん

すいません、私のプルリクがchampに採用されました。

きっかけは、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

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は、

  1. 地図を作る
  2. その地図を使って移動する

と2段階に手順が分かれますが、これは1.です。Rviz上の2D Nav Goalを押して、好きな場所まで歩かせましょう。そして、空間を網羅できたら、次の手順でmapを保存します。

roscd mini_pupper_config/maps
rosrun map_server map_saver

ただ、このリポジトリにはあらかじめmapが入ってるので、次のステップに進めます。

Gazeboの中でnavigationで歩く

Terminal #1 roslaunch mini_pupper_config gazebo.launch

Terminal #2 roslaunch mini_pupper_config navigate.launch rviz:=true

さっそくMangDang公式でも動かしてくれました。

今後

  • はやく実機が届かないかな…
  • 歩くときに胴体が揺れすぎてるので、パラメータ調整したい。
  • ステレオデプスカメラと2D Lidarのモデルが大きいので、小さい機種に変えたい。
  • 顔を付けたい (Gazeboで不具合が出たので一旦消した)

さいごに

さいとてつやさん、本記事を事前レビューいただきありがとうございました。

14
8
1

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
14
8