OGIMOノート

6歳の娘と、4歳の息子(脳性麻痺)を持った父親エンジニアの備忘録。自作の電子工作おもちゃ/リハビリ器具の製作記録、勉強記録を残していきます

【ROS】 Turtlebot3 のシミュレーション環境を構築してみた

はじめに

自宅で自作ロボットのNavigation環境を構築しようとしているが、モータ周りの動作が安定せず苦戦中。
市販で購入してきたギア内蔵モータのギア比が低めなのか、ちょっと動かすだけで半周したりとなかなかのじゃじゃ馬っぷり。

このままハードウェアの調整だけで時間を使っていくのが勿体ないので、気分転換に市販ロボットで勉強してみようと思う。

とはいえ、Turtlebot3 を購入するのはボーナス前のこの時期にはきついので、とりあえずシミューレション環境でお勉強。ちょうど手元のノートPCを一新して、Windows10とUbuntu16.04をDual Bootできる様にしたので、この環境に構築してみたいと思う。

手順

こちらのサイトを参考に、立ち上げてみる。
demura.net
emanual.robotis.com

$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_gazebo_plugin git

で一通りのTurtlebot3環境をclone。 .bashrcに以下の環境変数を追加。

export TURTLEBOT3_MODEL=burger

そして、catkin_makeをかけてGazebo起動!

$ roslaunch turtlebot3_gazebo  turtlebot3_world.launch 

んっ!? なんかエラーが出て起動しない。。。

process[rosout-1]: started with pid [4186]
started core service [/rosout]
process[gazebo-2]: started with pid [4194]
process[gazebo_gui-3]: started with pid [4211]
process[spawn_urdf-4]: started with pid [4220]
[ INFO] [1528459620.691972547]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1528459620.692481908]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
Error [parser.cc:581] Unable to find uri[model://sun]
Error [parser.cc:581] Unable to find uri[model://ground_plane]
[ INFO] [1528459622.261795752, 0.022000000]: waitForService: Service [/gazebo/set_physics_properties] is now available.

どうやらmodelファイルが足りないらしい。いろいろと調べたら下記サイトに対策を発見。

How do you completely uninstall old versions of gazebo? - Gazebo: Q&A Forum

サイト通りに従って、
https://bitbucket.org/osrf/gazebo_modelsからosrf-gazebo_models.zipをダウンロード
②解凍ファイルを~/.gazebo/models に移動 (フォルダがなければ新規作成)
③ .bashrcに以下の記述を追加

export GAZEBO_PLUGIN_PATH=~/catkin_ws/src/turtlebot3_gazebo_plugin/build:${GAZEBO_PLUGIN_PATH}
export GAZEBO_MODEL_PATH=~/catkin_ws/src/turtlebot3_gazebo_plugin/models:~/catkin_ws/.gazebo/models:${GAZEBO_MODEL_PATH}

これで再度launchファイルを動かすと、、、起動した!!

ふぅ、焦った。。。 (環境開発はこれだから大変だ。苦行にならずにすみそう)

$  roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

で無事にGazebo上の Turtlebot3 を動かせた!

f:id:motokiinfinity8:20180608214931p:plain

この環境で Rvizが動くかも確認してみた。別ターミナルで以下のコマンドでRviz起動

roslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch

f:id:motokiinfinity8:20180608215904p:plain

よし、Rvizでしっかりと LaserScan値も読めています。良い感じ!
シミュレータがあるって、よいねぇ〜



とりあえず、実機の調整に飽きたら、こちらのSimulation環境でNavigationを動かしていこう。

情報量は少なめですが、備忘録がわりとして今日はここまで