目次
- 導入
- move_base (ナビゲーション)
- ROSで遊んでみる
- ソフトウェア構成をみる
- amcl (自己位置推定)
- ROSで遊んでみる
- ソフトウェア構成をみる ← いまココ
- 原理をみる (準備編)
- 原理をみる (応用編)
- gmapping (地図生成)
- ROSで遊んでみる
- ソフトウェア構成をみる
- 原理をみる(応用編)
- 原理をみる(準備編 その1)
- 原理をみる(準備編 その2)
はじめに
[Navigation Stack を理解する - 3.1 amcl: ROSで遊んでみる]の続きです.amcl が加わって,どのように内部構成が変わったのかを見てみます.
環境
- OS: Ubuntu 14.04
- ROS: Indigo
- モデル:Husky
- パッケージ:husky_navigation
- チュートリアル:Husky AMCL Demo
rqt_graph をベースにソフトウェアの構成を見る
素のrqt_graph を見る
例によってrqt_graph を見てみましょう.
$ rqt_graph
2.1 move_base: ソフトウェア構成をみるとそんなに大差はなさそうですね.でもやっぱりごちゃついてるので,ここも例によってまとめたものを見てみます.
簡易版rqt_graph を見る
下記がamcl付きの図になります.
比較のため,2.1 move_base: ソフトウェア構成をみるの時の図を再掲します.
これらの図を元に,今回追加された要素の部分を強調するように描いたものが下図です.
ここまで来れば一目瞭然です.
誤差が乗ったオドメトリ結果を,LRFと地図の情報を元に補正するフローがポコっと追加されただけです.
経路計画は2.1 move_base: ソフトウェア構成をみると全く同様に行われます.ただし,精度の良い自己位置情報を使うという点が改善点されています.
おわりに
はい,以上です.外見的なソフトウェア構造については,以上が変更点です.
むしろ,頑張っているのはamcl の中身です.amclではパーティクルフィルタを活用した自己位置推定を行っているのですが,とても技巧的で興味深い特長を色々持っています.
次項でその原理を追っていきます.理論的な導出はS Thrun, et al., "Probabilistic Robotics", the MIT Press, 2005.でなされているので,ここではその結論だけを拝借し,イラストをたくさん用いた説明を行うことで,挙動を直感的に理解することを支援するような記述にしようと思います.
Next: 3.3 amcl: 原理をみる (準備編)
Prev: 3.1 amcl: ROSで遊んでみる