標籤:
最近找到一篇論文比較了一下 目前ros下2D雷射slam的開原始碼效果比較:
詳細參見論文: 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 by SRI 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
Karto Open Libraries 2.0 SDK(Karto Open Libraries 2.0 is available under the LGPL open source license. You can try the full Karto SDK 2.1 for 30 days.) 後面在詳細研究下(比較下MRPT庫)
圖最佳化的核心思想我認為主要就是 矩陣的稀疏花與最小二乘..參見graph slam學習:g2o
KartoSLAM是基於圖最佳化的方法,用高度最佳化和非迭代 cholesky矩陣進行稀疏系統解耦作為解. 圖最佳化方法利用圖的均值表示地圖,每個節點表示機器人軌跡的一個位置點和感應器測量資料集,箭頭的指向的串連表示連續機器人位置點的運動,每個新節點加入,地圖就會依據空間中的節點箭頭的約束進行計算更新.
KartoSLAM的ROS版本,其中採用的稀疏點調整(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占很大優勢
說明:能力有限,講得有問題歡迎指正,暫且粗解到這,後面再具體看看對應演算法的詳細論文介紹,有問題再改...
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
2D-slam 雷射slam: 開原始碼的比較HectorSLAM Gmapping KartoSLAM CoreSLAM LagoSLAM