gggggraziegrazie

graizegrazieさんのやったこと、学んだことを記録する雑記帳です

Submap:部分地図(= local map:局所地図)

ここで取り上げるsubmapとは、ある一定の条件下で作成される、グローバル地図(全体地図)を構成する構成要素(部品)を指します。Submapの活用方法は、自己位置推定やloop closingです。今回はこのsubmapがどの様に構成されるのか、先行文献を調査した結果を記載します。文献のタイトル名を論文へのリンクにしていますので、ご興味あれば原著を読んでみてください。また参考になる文献を見つければ、適宜調査方法を変えてここに列挙したいと思います。

調査方法

  • 2017年以降のICRA/IROSを対象
  • 論文自体にsubmap又はlocal mapの構築方法の記述がある論文を対象としており、参考文献に構成方法を丸投げしているものは対象としない

An Online Multi-Robot SLAM System for 3D LiDARs

"The submap size is controlled by {m}, the number of previous scans and {d_{min}}, the minimum travelled distance between consecutive scans."とあるので、

  • 最低scanデータ数(submapを構成するセンサデータの数)をクリアしていること
  • 1つのsubmapを構成する上で必要な走行距離をクリアしていること(ただし始点と終点の距離が一定以上という意味であり、submap中でくるくる円を描いたとしても、円のサイズによっては目標クリアには届かないことを意味していると思います)

の2つが条件となります。これは一定の密度や大きさのsubmapを得られることを期待した処置と考えられます。

Visual Occupancy Grid Map for Submap-based Pose Graph SLAM and Planning in 3D Environments

  • {\Delta t}の間のscanデータを使って構築する
  • ただしsubmapの共分散が最大値を超えないように気を付ける
    • つまり、最大値を超えた場合は{\Delta t}を待たずして構築を止めると考えられる。

上記条件を定めた理由として考えられるのは、一定のデータ量を持った地図を作成したい、ただし自信のない地図はpose graphの最適化時に以降の座標推定を邪魔するため避けたい、ということだと思います。また本論文はnavigationを目的としているため、submapの共分散が上限を超えた場合はシステムをリスタートする等し、ロボットがおかしな方向に進まないようにするといった意図もあるかもしれません。

ProSLAM: Graph SLAM from a Programmer’s Perspective

  • 一定の距離毎に生成する