LoginSignup
10
9

More than 3 years have passed since last update.

Navigation Stack を理解する - 3.2 amcl: ソフトウェア構成をみる

Last updated at Posted at 2016-04-12

目次

  1. 導入
  2. move_base (ナビゲーション)
    1. ROSで遊んでみる
    2. ソフトウェア構成をみる
  3. amcl (自己位置推定)
    1. ROSで遊んでみる
    2. ソフトウェア構成をみる ← いまココ
    3. 原理をみる (準備編)
    4. 原理をみる (応用編)
  4. gmapping (地図生成)
    1. ROSで遊んでみる
    2. ソフトウェア構成をみる
    3. 原理をみる(応用編)
    4. 原理をみる(準備編 その1)
    5. 原理をみる(準備編 その2)

はじめに

[Navigation Stack を理解する - 3.1 amcl: ROSで遊んでみる]の続きです.amcl が加わって,どのように内部構成が変わったのかを見てみます.

  • ROS Wiki の図中
    01_位置づけ1.png

  • 導入部で示したパッケージの図中
    02_位置づけ2.png

環境

rqt_graph をベースにソフトウェアの構成を見る

素のrqt_graph を見る

例によってrqt_graph を見てみましょう.

$ rqt_graph

24.png

2.1 move_base: ソフトウェア構成をみるとそんなに大差はなさそうですね.でもやっぱりごちゃついてるので,ここも例によってまとめたものを見てみます.

簡易版rqt_graph を見る

下記がamcl付きの図になります.

11_簡易rqt_graph.png

比較のため,2.1 move_base: ソフトウェア構成をみるの時の図を再掲します.
09_rqt_graph風.png

これらの図を元に,今回追加された要素の部分を強調するように描いたものが下図です.
12_簡易rqt_graph_new.png

ここまで来れば一目瞭然です.
誤差が乗ったオドメトリ結果を,LRFと地図の情報を元に補正するフローがポコっと追加されただけです.

経路計画は2.1 move_base: ソフトウェア構成をみると全く同様に行われます.ただし,精度の良い自己位置情報を使うという点が改善点されています.

13_odom補正イメージ.png

14_odom補正イメージ_rviz.png

おわりに

はい,以上です.外見的なソフトウェア構造については,以上が変更点です.
むしろ,頑張っているのはamcl の中身です.amclではパーティクルフィルタを活用した自己位置推定を行っているのですが,とても技巧的で興味深い特長を色々持っています.

次項でその原理を追っていきます.理論的な導出はS Thrun, et al., "Probabilistic Robotics", the MIT Press, 2005.でなされているので,ここではその結論だけを拝借し,イラストをたくさん用いた説明を行うことで,挙動を直感的に理解することを支援するような記述にしようと思います.

Next: 3.3 amcl: 原理をみる (準備編)
Prev: 3.1 amcl: ROSで遊んでみる

参考文献

  1. ROS Wiki.
  2. "husky_navigation", github.
10
9
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9