はじめに
自宅で自作ロボットの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 を動かせた!
この環境で Rvizが動くかも確認してみた。別ターミナルで以下のコマンドでRviz起動
roslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch
よし、Rvizでしっかりと LaserScan値も読めています。良い感じ!
シミュレータがあるって、よいねぇ〜
とりあえず、実機の調整に飽きたら、こちらのSimulation環境でNavigationを動かしていこう。
情報量は少なめですが、備忘録がわりとして今日はここまで