目次
- 導入
- move_base (ナビゲーション)
- ROSで遊んでみる ← いまココ
- ソフトウェア構成をみる
- amcl (自己位置推定)
- ROSで遊んでみる
- ソフトウェア構成をみる
- 原理をみる (準備編)
- 原理をみる (応用編)
- gmapping (地図生成)
- ROSで遊んでみる
- ソフトウェア構成をみる
- 原理をみる(応用編)
- 原理をみる(準備編 その1)
- 原理をみる(準備編 その2)
はじめに
本節ではNavigation Stack の親分的存在である,move_base について記述します.ソフトウェア構成内の位置づけとしては,下記の図に示すとおりです.
環境
- OS: Ubuntu 14.04
- ROS: Indigo
- モデル:Husky
- パッケージ:husky_navigation
- チュートリアル:Husky Move Base Demo
Husky Move Base Demo について
move_base を使ってナビゲーションを行います.ただし,自己位置推定は動作モデルによるオドメトリのみに頼るものです.したがって,このチュートリアルでは,外乱によってオドメトリに誤差がのってもそれをリカバーする手段はありません.とにかく,まずはナビゲーションとはどんなものかを体感するために必要な最低限の要素で構成されたチュートリアルとなっています.まずはここから,という感じですね.
ROSで遊んでみる
というわけで,とりあえず遊んでみましょう.
インストール
チュートリアルに従って淡々と.
$ sudo apt-get install ros-indigo-husky-navigation ros-indigo-husky-gazebo ros-indigo-husky-viz
各種launch ファイルの実行
i. Husky シミュレータの起動(gazebo)
$ roslaunch husky_gazebo husky_playpen.launch
ii. ビジュアライザの起動(rviz)
$ roslaunch husky_viz view_robot.launch
地図も無く,ロボットにとっての頼みの綱はオドメトリのみです.従って,ワールド座標系の原点は /odom フレームとしておきます.初期状態では,/odom フレームと /base_link フレームは一致しています.
iii. move_base の起動
$ roslaunch husky_navigation move_base_mapless_demo.launch
これで,ナビゲーションが可能な状態となります.
ナビゲーションを体感する
とりあえず目標位置を指定して,ロボットがその通りに動くか確認してみます.
- rviz 上部にある「2D Nav Goal」というボタンをクリックします.
- フィールド上の任意の位置でマウス左ボタンを押下すると目標位置が決まります.そのままドラッグして目標姿勢を定め,ボタンを上げます.
すると,ロボットが動き始め,指定した通りの位置・姿勢になるまで動き続ける様子を確認できます.
おわりに
これで遊んでいるだけで結構お腹いっぱい(?)かもしれませんが,次項でもう少し中を見てみようと思います.
Next: 2.2 move_base: ソフトウェア構成をみる
Prev: 1. 導入