1. 程式人生 > >地圖構建中不得不面對的問題—大場景下的地圖構建與閉環

地圖構建中不得不面對的問題—大場景下的地圖構建與閉環

  開篇前試想這樣兩個場景:

  在一個相對較小的地方(如房間),讓你快速找某個東西,是不是很容易,很清楚自己在哪裡,要怎麼拿到他。

  然後,把你放到一個大場景(如商場),在不熟悉的情況下,是不是有點慌?

  這兩個場景的典型區別就在於場景的大小不同,需要人處理的資訊量不同。同理,機器人在初次面對的時候也會有點慌。但其實,只要清楚他的“地圖構造”,再大的場景也不是問題。

  目前,雖然即時地圖構建和導航技術已經日益成熟,但是大規模場景下較大的環境面積及複雜的場景結構給地圖構建帶來了較大挑戰。甚至在有些人眼裡看來,這是工作量巨大的,繁瑣的、構建不準確的……但其實,我們可以輕鬆完成10w+㎡場景下的地圖構建,邊走邊建圖,無需預先探明地圖。

  比如,這樣的:

 

  這樣的:

  

  以及這樣的:

  

  一個典型的商用場景特徵如下:

  

  針對大場景的地圖構建,如果使用鐳射雷達配合SLAM演算法進行建圖的話,首先需要使用較遠測距半徑的鐳射雷達感測器。目前為了適應上述的商用場景,行業內會使用測距半徑在16米以上的鐳射雷達產品,而比較理想的測量半徑是25米,從而保證能夠應對各類極端條件。

  除了保障感測器的測距半徑符合環境需求外,SLAM演算法還需要具備閉環檢測能力。比如有些場景,長走廊和環路較多,相似的場景也很多,在SLAM過程中難以形成有效的全域性匹配參考,從而很容易導致區域性區域累計誤差無法及時清除,進而導致迴環閉合問題。如下圖:

  

  | 由於環境場景大且多為長直走廊,導致SLAM建圖中容易出現環路閉合失敗的情況

  為了解決上述問題,行業內的普遍做法有兩種:

  採用粒子濾波的SLAM方法

  使用多張平行存在的候選地圖(粒子)同時進行地圖構建,並且時刻挑選出其中概率上更加符合真實情況的地圖作為當前結果。由於不同的粒子之間建立的地圖存在區別,因此從概率上看,當機器人在環境中行走完一個環路後,眾多粒子中存在閉環地圖的可能性相比傳統單一建圖的模式要高很多。因此這種方法可以一定程度的解決閉環問題。

  

  | 採用rbpf(Rao-Blackwellized particle filters)的SLAM演算法

 

  採用粒子濾波的SLAM演算法因其可以非常有效的規避因為區域性噪聲導致的建圖失效問題,曾一度成為行業內鐳射SLAM方式的主流方案。然而,這種方式的SLAM演算法,由於系統引數和感測器觀測等存在不確定性,先天存在資源消耗大的缺點。

  以rbpf-slam為例,實際應用中為了保證較好的魯棒性,需要維持幾十個粒子資料,每個粒子中都包含了一張當前正在構建的環境地圖資訊。這樣無疑增加了SLAM演算法的記憶體消耗。同時,每當新的感測器資料進入,要對地圖進行更新迭代時,演算法需要對每個粒子資料都進行相同的匹配計算和資料更新,這也加重了運算負擔。進一步的,粒子濾波的SLAM方式雖然可以大幅度改善迴環閉合問題,但從原理上看它並不能真正意義上解決閉環問題。對於特殊的環境下,使用粒子濾波SLAM可能會將粒子收斂到錯誤的方向,導致建圖失敗。

  

  | 正確的地圖構建(左)和當粒子濾波收斂失敗得到的錯誤地圖(右)

  

基於圖優化的SLAM方式

  基於圖優化的SLAM((Graph-SLAM))方法,由於採用了全域性優化處理方法,能夠有效的解決建圖閉環,獲得更好的建圖效果,獲得行業廣泛關注。

  

  | 基於圖優化的SLAM框架

  

相比於rbpf-slam每次直接將感測器資料更新進入柵格地圖進行構建的做法,Graph-SLAM儲存的是地圖構建過程中機器人位姿變化的拓撲地圖資訊,以及諸如臨近資料和閉環點等資料。

  

  | Graph-SLAM編碼了機器人在SLAM過程中的位姿變化拓撲地圖,相關的拓撲資訊,如:閉環、重合資料也得到了編碼

  

而當機器人在建圖中出現了新的迴環後,Graph-SLAM可依賴內部的拓撲圖進行主動式的閉環檢測,當發現了新的閉環資訊後,Graph-SLAM使用Bundle Adjuestment(BA)等演算法對原先的位姿拓撲地圖進行修正(即進行圖優化),從而能有效的進行閉環後地圖的修正。因此相比與粒子濾波SLAM方式,Graph-SLAM可以實現更加可靠的環境建圖。

  

  | Graph-SLAM在檢測到原先地圖(左)存在可能得閉合路徑後,對拓撲圖進行修正從而得到正確的環境建圖(右)

  

目前,SLAMWARE已經採用了最新的圖優化方式,配合鐳射雷達逐漸在商用複雜環境中開始使用。未來,面對機器人應用場景的不斷拓展,建圖技術必然還會遇到更多的問題,而這些,是未來企業和行業一起,共同攻克的問題。