■
hector_slamとmove_baseを用いた自律移動
準備
まずは下記のものを用意してください
- ROSがインストールされているマシン(前回作成したもの)
- HOKUYO URG-04LX-UG01
今回はレーザーレンジファインダとして北陽電機株式会社のレーザーレンジファインダ URG-04LX-UG01を使用します。 USBバスパワーで駆動するため簡単に使うことができますが、5m程度の距離しか得ることができません。
レーザーレンジファインダをパソコンに接続したら、一般ユーザーでもアクセスできるように、パーミッションを変更します。
$ sudo chmod 666 /dev/ttyACM0
デバイス名ttyACM0は適宜変更してください。
hokuyo-nodeもインストールしておきます。
$ sudo apt-get install ros-indigo-hokuyo-node # 現在はhokuyo-nodeよりurg-nodeの仕様が推奨されているようですが、今回はhokuyo-nodeを使用します。
ダウンロード
今回もDaiki Maekawaさんのnavigation2d_exampleを使わせていただきます。
githubからダウンロードしてきます。
$ cd ~/catkin_ws/src $ git clone https://github.com/DaikiMaekawa/ros-navigation2d-example
起動
move_baseをroslaunchで起動します。
$ cd ros-navigation2d-example/launch $ roslaunch move_base.launch
rviz上で2D Nav Goalボタンを押して、目的地をクリック&方向にドラッグでゴールを指定すると進路がrviz上に表示され、ロボットの動きが/cmd_velに配信されます。
cmd_velの確認
$ rostopic echo cmd_vel
ゴールを指定すると、動作目標が配信されるのを確認できます。
レーザーレンジファインダを持って指示通りに移動すると、ゴール付近で終了します。
おわりに
いかがでしたでしょうか。 わからないことなどがありましたら、ご質問だくさい。
2015/8/7