SLAM:經典2D_SLAM演算法比較:Hector slam、gmapping、cartographer

SLAM:經典2D_SLAM演算法比較:Hector slam、gmapping、cartographer

Hector slam:

Hector slam利用高斯牛頓方法解決scan-matching問題,對感測器要求較高。

缺點:需要雷達(LRS)的更新頻率較高,測量噪聲小。所以在製圖過程中,需要robot速度控制在比較低的情況下,建圖效果才會比較理想,這也是它沒有迴環(loop close)的一個後遺症;且在里程計資料比較精確的時候,無法有效利用里程計資訊。

優點:不需要使用里程計,所以使得空中無人機及地面小車在不平坦區域建圖存在運用的可行性;利用已經獲得的地圖對鐳射束點陣進行優化, 估計鐳射點在地圖的表示,和佔據網格的概率;利用高斯牛頓方法解決scan-matching 問題,獲得鐳射點集對映到已有地圖的剛體變換(x,y,theta);為避免區域性最小而非全域性最優,使用多解析度地圖;導航中的狀態估計加入慣性測量系統(IMU),利用EKF濾波;

補充:11-11  hector_slam通過最小二乘法匹配掃描點,且依賴高精度的鐳射雷達資料,因此掃描角很小且噪聲較大的Kinect是不行的,匹配時會陷入區域性點,地圖比較混亂。(作者這裡試過Kinect,效果確實很差。如果有哪位朋友,利用Kinect能跑出來尚可的結果,請告知我學習一下,謝謝)

gmapping:

scanmatch方法:連結

gmapping是目前應用最廣的2D slam 方法,利用RBPF方法,故需要了解粒子濾波演算法。scan-match方法在於估計機器人位置(pose),利用梯度下降的方法,在當前構建的地圖,與當前的鐳射點,和機器人位置(pose)為初始估計值。

粒子濾波的方法一般需要大量的粒子來獲取好的結果,但這必會引入計算的複雜度;粒子是一個依據過程的觀測逐漸更新權重與收斂的過程,這種重取樣的過程必然會代入粒子耗散問題(depletion problem), 大權重粒子顯著,小權重粒子會消失(有可能正確的粒子模擬可能在中間的階段表現權重小而消失).自適應重取樣技術引入減少了粒子耗散問題 , 計算粒子分佈的時候不單單僅依靠機器人的運動(里程計),同時將當前觀測考慮進去, 減少了機器人位置在粒子濾波步驟中的不確定性. (FAST-SLAM 2.0 的思想,可以適當減少粒子數)

缺點:依賴里程計(odometry),無法適用無人機及地面小車不平坦區域;無迴環;

優點:在長廊及低特徵場景中建圖效果好;

補充:(11-11)據說gmapping可以用Kinect轉換出來的鐳射雷達資料建圖,但是苦於沒有里程計,所以沒有嘗試。(如果你有試過,請把結果告訴我,謝謝)

實驗表明:在大地圖,低特徵(distinctive landmarks)場景中,hector的建圖誤差高於gmapping。這是由於hector過分依賴scan-match。特別是在長廊問題中,誤差更加明顯。

cartographer:

cartographer是Google的實時室內建圖專案,感測器安裝在揹包上面,可以生成解析度為5cm的2D格網地圖。

獲得的每一幀laser scan資料,利用scan match在最佳估計位置處插入子圖(submap)中,且scan matching只跟當前submap有關。在生成一個submap後,會進行一次區域性的迴環(loop close),利用分支定位和預先計算的網格,所有submap完成後,會進行全域性的迴環。

local 2D slam

A.scans

submap的構造是一個重複迭代配準scan和submap的過程。利用配準估算出pose對scan進行剛體變換,插入到submap中。

B.submaps

連續的scan用來構造submap,這裡submap以概率格網的形式表現。每一個scan,在插入格網(submap)時,每一個grid有hits和miss兩種情況。離scan終點最近的grid為hits,在scan原點和終點之間相交的grid為miss。之前未觀察的grid分配一個概率,已觀察的grid進行概率更新。

C.Ceres scan matching

把求pose的問題轉換為一個求解非線性最小二乘問題,利用Ceres解決這個問題。

因為最小二乘問題是一個區域性最優問題,故一個好的初值(pose初值)對求解有很大影響。因此IMU能被用來提供pose初值的旋轉變數。在缺乏IMU的時候,可以用提高scan match頻率或匹配精度。

closing loops

利用SPA方法優化scan和submap的pose。儲存插入scan位置處對應的pose用來做迴環檢測。此外,當submap不在變化時,對應pose的scan和submap也被用來做迴環。scan match中找到的good match其對應的pose將被用來做優化問題。

A.Optimization problem

迴環優化問題構造成非線性最小二乘問題,來求解。

公式中分別為submap的pose,scan的pose,對應submap和scan的pose的相關性,及相關協方差矩陣。詳見原文。

B.Branch-and bround scan matching

======  沒有看懂  =======

缺點:

優點:不採用粒子濾波(PF),從而低廉裝置也能獲得較好的效能表現;