Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

目次

  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
MoriKen
ロボット研究者を目指す社会人博士です。ぶっちゃけ、へっぽこソフトしか書けませんが頑張ります。
http://lab.cntl.kyutech.ac.jp/~nishida/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした