1. 程式人生 > >SLAM演算法-----幾種2D-slam演算法比較

SLAM演算法-----幾種2D-slam演算法比較

 本文簡單比較了這幾種2D-Slam演算法HectorSLAMGmapping, KartoSLAMCoreSLAM, LagoSLAM

詳細參見論文:   An evaluation of 2D SLAM techniques available in robot operating system

1. 演算法介紹

A . HectorSLAM

    scan-matching(Gaussian-Newton equation)  感測器的要求高

  要求: 高更新頻率小測量噪聲的鐳射掃描器.  不需要里程計,使空中無人機與地面小車在不平坦區域執行存在運用的可能性.

        利用已經獲得的地圖對鐳射束點陣進行優化, 估計鐳射點在地圖的表示,和佔據網格的概率.

        其中掃描匹配利用的是高斯牛頓的方法進行求解. 找到鐳射點集對映到已有地圖的剛體轉換(x,y,theta).

        (接觸的匹配的方法還有最近鄰匹配的方法(ICP) ,gmapping程式碼中的scanmatcher部分有兩種方法選擇.)

        為避免區域性最小而非全域性最優的(類似於多峰值模型的,區域性梯度最小了,但非全域性最優)出現,地圖採用多解析度的形式.

      導航中的狀態估計可以加入慣性測量,進行EKF濾波.

B.   Gmapping: 

    proposed by Grisetti et al. and is a Rao-Blackwellized PF SLAM approach.
    adaptive resampling technique

  目前鐳射2Dslam用得最廣的方法,gmapping採用的是RBPF的方法. 必須得了解粒子濾波(利用統計特性描述物理表示式下的結果)的方法.

   粒子濾波的方法一般需要大量的粒子來獲取好的結果,但這必會引入計算的複雜度;粒子是一個依據過程的觀測逐漸更新權重與收斂的過程,這種重取樣的過程必然會代入粒子耗散問題(depletion problem), 大權重粒子顯著,小權重粒子會消失(有可能正確的粒子模擬可能在中間的階段表現權重小而消失). 

     自適應重取樣技術引入減少了粒子耗散問題 , 計算粒子分佈的時候不單單僅依靠機器人的運動(里程計),同時將當前觀測考慮進去, 減少了機器人位置在粒子濾波步驟中的不確定性. (FAST-SLAM 2.0 的思想,可以適當減少粒子數)

c. KartoSLAM

    graph-based SLAM approach developed  bySRI International’s Karto Robotics
    highly-optimized and non iterative Cholesky matrix decomposition for sparse linear systems as its solver
    the Sparse Pose Adjustment (SPA) is responsible for both scan matching and loop-closure procedures

        圖優化的核心思想我認為主要就是 矩陣的稀疏化與最小二乘..參見

  KartoSLAM是基於圖優化的方法,用高度優化和非迭代 cholesky矩陣進行稀疏系統解耦作為解. 圖優化方法利用圖的均值表示地圖,每個節點表示機器人軌跡的一個位置點和感測器測量資料集,箭頭的指向的連線表示連續機器人位置點的運動,每個新節點加入,地圖就會依據空間中的節點箭頭的約束進行計算更新.

  KartoSLAMROS版本,其中採用的稀疏點調整(the Spare Pose Adjustment(SPA))與掃描匹配和閉環檢測相關.landmark越多,記憶體需求越大,然而圖優化方式相比其他方法在大環境下製圖優勢更大.在某些情況下KartoSLAM更有效,因為他僅包含點的圖(robot pose),求得位置後再求map.

D. CoreSLAM

     tinySLAM algorithm: two different steps(distance calculation and update of the map
     simple and easy

     為了簡單和容易理解最小化效能損失的一種slam演算法.將演算法簡化為距離計算與地圖更新的兩個過程,  第一步,每次掃描輸入,基於簡單的粒子濾波演算法計算距離,粒子濾波的匹配器用於鐳射與地圖的匹配,每個濾波器粒子代表機器人可能的位置和相應的概率權重,這些都依賴於之前的迭代計算. 選擇好最好的假設分佈,即低權重粒子消失,新粒子生成..在更新步驟,掃描得到的線加入地圖中,當障礙出現時,圍繞障礙點繪製調整點集,而非僅一個孤立點.

E. LagoSLAM

      Linear Approximation for Graph Optimization
      the optimization process requires no initial guess

         基本的圖優化slam的方法就是利用最小化非線性非凸代價函式.每次迭代, 解決區域性凸近似的初始問題來更新圖配置,過程迭代一定次數直到區域性最小代價函式達到. (假設起始點經過多次迭代使得區域性代價函式最小).  LagoSLAM 是線性近似圖優化,不需要初始假設.  優化器的方法可以有三種選擇 Tree-based netORK Optimizer(TORO), g2o,LAGO

2. 實驗結果比較

分別從大小模擬環境和實際環境以及cpu消耗的情況下對演算法進行了比較. CartoSLAM 與gampping佔很大優勢


說明:能力有限,講得有問題歡迎指正,暫且粗解到這,後面再具體看看對應演算法的詳細論文介紹,有問題再改...

slam演算法的論文幾篇

下載:http://download.csdn.net/detail/zyh821351004/8986339

注意:原文連結http://blog.csdn.net/zyh821351004/article/details/47381135#comments