LoginSignup
8
7

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-07-24

目次

  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 を理解する - 4.1 gmapping: ROSで遊んでみるの続きです.amcl の自己位置推定問題から,SLAM問題になって,どのように内部構成が変わったのかを見てみます.構成上は,ほんの少しの違いです.

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

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

環境

位置づけ

実は,ここで紹介する"ros-perception/slam_gmapping", github.のエンジン部分では,"gmapping", OpenSLAMを使っているのです.OpenSLAM はSLAMに関する開発成果を共有する場となっており,そのうち実績のあるものを活用しているのです.

gmapping で採用されているSLAMは,格子ベースのFastSLAM 2.0です."gmapping", OpenSLAMによると,下記論文を基に実装されているとのことです.

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

素のrqt_graph を見る

まずは例によってrqt_graph を見てみます.

$ rqt_graph

11_rqt_graph.png

比較のため,amcl 側のrqt_graphも見てみます.
24.png

もうほとんど同じですね.主には,mapトピックからのびる矢印の方向が違う程度です.まとめる必要性も無さそうなほどですが,体裁を整えるという意味でも,簡易版に進んでみます.

簡易版rqt_graph を見る

下図がgmapping付きのものです.

12_簡易rqt_graph.png

ソフトウェア構成的には,は3.2 amcl: ソフトウェア構成をみると比べると,mapトピックの矢印の向きが変わっただけです.

挙動の観点から言うと,move_base はこの作成途中の地図を使ってナビゲーションをしており,slam_gmapping は自分で作成途中の地図を使って自己位置推定もしています.(mapトピックからの矢印がslam_gmappingに伸びてはいませんが,内部的にはその情報を持っているから当然可能です.)

おわりに

え,こんなもん?ええ,こんなもんです.これまで扱ってきたmove_baseamclの構成が分かっていることが前提ですが,たったこれだけの要素であの複雑そうなSLAMを使えるようにしてくれるフレームワーク(ROS)とエンジン(OpenSLAM gmapping)が偉いんです.

次項でその原理を追っていきます.amcl の時と同様に,理論的な導出については文献でなされているものとして,結論を拝借してリバースエンジニアリングをして挙動を理解してくことを試みます.

それでは.

Next: 4.3 gmapping: 原理をみる(応用編)
Prev: 4.1 gmapping: ROSで遊んでみる

参考文献

  1. ROS Wiki.
  2. "husky_navigation", github.
  3. "ros-perception/slam_gmapping", github.
  4. "gmapping", OpenSLAM
8
7
0

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
8
7