hector_slamとmove_baseを用いた自律移動

目的

前回に続いて、Daiki Maekawsさんのサイトを参考にしながら、move_baseの動作を確認してみます。

Roombaがないため、自分で持って移動します。

準備

まずは下記のものを用意してください

    1. ROSがインストールされているマシン(前回作成したもの
    2. 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