Topological Map
- 別名: topological graph, topometric map, place graph
- カテゴリ: State estimation & navigation › Navigation
- タグ: navigation, mapping, graph-search, visual-navigation, mobile-robots
環境を、正確な幾何形状ではなく、通行可能なリンクで結ばれた区別できる場所のグラフとして表す地図。ロボットは場所の間の経路を計画できる。
定義
トポロジカルマップ(Topological maps)は、環境をグラフとして表す。ノードは、部屋、出入口、交差点、記憶した視点など、区別できる場所を表し、エッジはロボットが 2 つの場所の間を直接移動できることを記録する。占有格子のようなメトリックマップとは異なり、トポロジカルマップは大域的に一貫した座標を必要としない。場所が正確にどこにあるかではなく、場所どうしがどうつながっているかをとらえる。
これは、人がよく道順を説明するやり方に似ている。廊下を進み、キッチンで曲がり、研究室は 2 つ目のドアだ、というように。Benjamin Kuipers の空間意味階層(Spatial Semantic Hierarchy)は、この考え方に沿って制御、因果、トポロジー、計量の知識を階層化したよく知られた枠組みである。実用的なシステムの多くはトポメトリック(ハイブリッド)マップを使い、長距離の計画にはグラフを、各ノード内での精密な移動には局所的なメトリックマップを保持する。
トポロジカルマップを使ったナビゲーションには 2 つの階層がある。Dijkstra 法や A* などのグラフ探索が、現在の場所からゴールまでのノードの列を見つける。次に局所的な制御器が、多くの場合センサデータから目標の場所を認識しながら、ロボットをノードから次のノードへ移動させる。学習ベースの視覚ナビゲーションでは、ノードにカメラ画像を保存することが多く、学習済みのポリシーが次のノードの画像に向かって走行する。
トポロジカルマップは大規模な空間にもよくスケールし、オドメトリのドリフトにも強い。誤差が大域座標系全体にわたって蓄積しないからである。弱点は、異なる 2 つの場所が似て見える知覚エイリアシングと、通行可能なつながりが一度も観測されなかったために生じるエッジの欠落である。ロボットが既知の場所に戻ってきたことを認識するループクロージャが、グラフの一貫性を保つ。
重要な理由
トポロジカルマップにより、ロボットはコンパクトなメモリで、完璧な大域的自己位置推定なしに、大規模な環境をナビゲーションできる。ロボットが場所を座標系のどこにあるかではなく見た目で覚える学習ベースの視覚ナビゲーションと、自然に相性がよい。
主な用途
- 画像に基づく場所の記憶を使った屋内外の長距離ナビゲーション
- 大きな建物やキャンパス全体での経路計画
- 新たに見つけた場所をノードとして追加していく探索
- グラフ上の経路と局所的なメトリック制御を組み合わせた階層的計画
実際の使われ方
視覚ナビゲーションロボットを導入するチームは、まず建物の中をロボットで走らせながら一定間隔でカメラ画像をグラフのノードとして保存し、連続する画像をつなぎ、さらに学習済みモデルが 2 枚の画像の間を互いに到達可能と予測したところに追加のエッジを張ることがある。実行時には、ロボットは最も近いノードに対して自己位置を推定し、ゴール画像までの経路をグラフ上で探索し、学習済みのポリシーで後続のノード画像へ順に向かいながら、進むにつれて自己位置を推定し直す。
よくある誤解
- トポロジカルマップは幾何情報をまったく含まない — 多くはノードに相対姿勢や局所的なメトリックマップを保存しており、捨てているのは単一の大域座標系である
- トポロジカルマップとメトリックマップは両立しない — トポメトリックのハイブリッドマップは実際によく使われている
- トポロジカルマップは単なるウェイポイントのリストである — グラフなので、別経路をとることも、エッジがふさがれたときに再計画することもできる
知っておくべき人
- 移動ロボットのナビゲーションエンジニア
- 学習ベースの視覚ナビゲーションに取り組む研究者
- SLAM と地図作成のエンジニア
関連技術
- SLAM
- 占有格子(Occupancy Grid)
- グラフ探索(Graph Search、A*、Dijkstra)
- 視覚的場所認識(Visual Place Recognition)
- ループクロージャ(Loop Closure)
関連用語
関連プロジェクト
- LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
- Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
- OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
- Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
- DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
- RTAB-Map: Versatile graph-based SLAM supporting RGB-D, stereo, and LiDAR with real-time operation