1. 程式人生 > >[SLAM](4):建圖、度量地圖、拓撲地圖

[SLAM](4):建圖、度量地圖、拓撲地圖

SLAM講解,結合 高翔老師的著作《視覺SLAM十四講》內容,加上小白的工程實踐經驗共同完成。建議與 書籍 搭配使用。

 本文以問答及提綱的形式講解。

1.建圖

   地圖是對環境的描述,但這個描述並不是固定的,需要視SLAM的應用而定。地圖大體上可以分為:2D柵格地圖、拓撲地圖、3D點雲地圖和網格地圖。對於家用的掃地機器人,這種主要在低矮平面裡運動的機器人,只需要一個二維的地圖,標記哪裡能通過,哪裡存在障礙物,就夠它在一定範圍內導航了。而對於一個相機,它有六自由度的運動,我們至少需要一個三維的地圖。建圖並沒有一個固定的形式和演算法。大體上講,他們可以分為 度量地圖 和 拓撲地圖 兩種。

2.度量地圖(Metric Map)

   度量地圖強調精確地表示地圖中物體的位置關係,通常我們用 稀疏(Sparse) 和 稠密(Dense) 對它們進行分類。

  • 稀疏地圖:進行了一定程度的抽象,並不需要表達所有的物體。
  • 稠密地圖:通常按照某種解析度,由許多小塊組成。二維度量地圖是許多小格子(Grid),三維這是許多小方塊(Voxel)。一般地含有佔據、空閒、未知三種狀態,以表達該格內是否有物體。

    缺點:這種地圖需要儲存每一個小格子的狀態,耗費大量的儲存空間,而且多數情況下地圖的許多細節部分是無用的。另一方面,大規模度量地圖有時會出現一致性問題。很小的一點轉向誤差,可能會導致兩間屋子的牆出現重疊,使得地圖失效。

3.拓撲地圖(Topological Map)

    拓撲地圖則更強調地圖元素之間的關係。拓撲地圖是一個圖(Graph),由節點和邊組成,只考慮節點間的連通性。它放鬆了地圖對精確位置的需要,去掉地圖的細節問題,是一種更為緊湊的表達方式。

    缺點:拓撲地圖不擅長表達具有複雜結構的地圖。如何對地圖進行分割形成結點和邊,又如何使用拓撲地圖進行導航與路徑規劃。