コンテンツにスキップ

地図作成(SLAM)の説明と各種パッケージ入れ替え


1. SLAMとは

SLAMはSimultaneous Localization And Mappingの略で、自己位置推定と地図作成を同時に実行することです。

しかし実際には下記のような鶏が先か卵が先か問題がありました。

  • 自己位置推定するには地図が必要
  • 地図作成するには自己位置が必要

下記のように同時にやることで解決しました。

  • (作成中の)地図から自己位置を推定する
  • 推定した自己位置から地図生成を行う


2. SLAMの種類について

近年は地図の大規模化に伴い、Graph-Based SLAM系が主流です。
ROS2のnavigation2標準のslam_toolboxはGraph-Based SLAM系です。


3. 2D-SLAMのパッケージ紹介

ROS2で使用できる2D-SLAMパッケージはまだ多くはありません。

パッケージ名 手法 Loop検出 オドメトリ 補足
Gmapping Rao-Blackwellized ParticleFilterによるGrid-BasedSLAM 必須 ROS1標準
Cartographer Graph-based SLAM+オンライン化 どちらでも 強力なLoop検出
slam_toolbox cartographerの改良版。localSLAM(スキャンマッチング)をslam_kartoに変更 どちらでも ROS2標準