最近找到一篇論文比較了一下 目前ros下2D激光slam的開源代碼效果比較: 詳細參見論文: An evaluation of 2D SLAM techniques available in robot operating system 1. 算法介紹
A . HectorSLAMscan-matching(Gaussian-Newton equation) + 傳感器的要求高
要求: 高更新頻率小測量噪聲的激光掃描儀. 不需要里程計,使空中無人機與地面小車在不平坦區(qū)域運行存在運用的可能性. 利用已經(jīng)獲得的地圖對激光束點陣進行優(yōu)化, 估計激光點在地圖的表示,和占據(jù)網(wǎng)格的概率. 其中掃描匹配利用的是高斯牛頓的方法進行求解. 找到激光點集映射到已有地圖的剛體轉(zhuǎn)換(x,y,theta). ( 接觸的匹配的方法還有最近鄰匹配的方法(ICP) ,gmapping代碼中的scanmatcher部分有兩種方法選擇. ) 為避免局部最小而非全局最優(yōu)的(類似于多峰值模型的,局部梯度最小了,但非全局最優(yōu))出現(xiàn),地圖采用多分辨率的形式.
B. Gmapping: tutorial proposed by Grisetti et al. and is a Rao-Blackwellized PF SLAM approach.
adaptive resampling technique
目前激光2Dslam用得最廣的方法,gmapping采用的是RBPF的方法. 必須得了解粒子濾波(利用統(tǒng)計特性描述物理表達式下的結(jié)果)的方法. 粒子濾波的方法一般需要大量的粒子來獲取好的結(jié)果,但這必會引入計算的復(fù)雜度;粒子是一個依據(jù)過程的觀測逐漸更新權(quán)重與收斂的過程,這種重采樣的過程必然會代入粒子耗散問題(depletion problem), 大權(quán)重粒子顯著,小權(quán)重粒子會消失(有可能正確的粒子模擬可能在中間的階段表現(xiàn)權(quán)重小而消失). 自適應(yīng)重采樣技術(shù)引入減少了粒子耗散問題 , 計算粒子分布的時候不單單僅依靠機器人的運動(里程計),同時將當(dāng)前觀測考慮進去, 減少了機器人位置在粒子濾波步驟中的不確定性. (FAST-SLAM 2.0 的思想,可以適當(dāng)減少粒子數(shù))
C. KartoSLAMgraph-based SLAM approach developed bySRI International’s Karto Roboticshighly-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 )
圖優(yōu)化的核心思想我認為主要就是 矩陣的稀疏化與最小二乘..參見graphslam學(xué)習(xí) KartoSLAM是基于圖優(yōu)化的方法,用高度優(yōu)化和非迭代 cholesky矩陣進行稀疏系統(tǒng)解耦作為解. 圖優(yōu)化方法利用圖的均值表示地圖,每個節(jié)點表示機器人軌跡的一個位置點和傳感器測量數(shù)據(jù)集,箭頭的指向的連接表示連續(xù)機器人位置點的運動,每個新節(jié)點加入,地圖就會依據(jù)空間中的節(jié)點箭頭的約束進行計算更新. KartoSLAM的ROS版本,其中采用的稀疏點調(diào)整(the Spare Pose Adjustment(SPA))與掃描匹配和閉環(huán)檢測相關(guān).landmark越多,內(nèi)存需求越大,然而圖優(yōu)化方式相比其他方法在大環(huán)境下制圖優(yōu)勢更大.在某些情況下KartoSLAM更有效,因為他僅包含點的圖(robot pose),求得位置后再求map.
D. CoreSLAMtinySLAM algorithm: two different steps(distance calculation and update of the mapsimple and easy
為了簡單和容易理解最小化性能損失的一種slam算法.將算法簡化為距離計算與地圖更新的兩個過程, 第一步,每次掃描輸入,基于簡單的粒子濾波算法計算距離,粒子濾波的匹配器用于激光與地圖的匹配,每個濾波器粒子代表機器人可能的位置和相應(yīng)的概率權(quán)重,這些都依賴于之前的迭代計算. 選擇好最好的假設(shè)分布,即低權(quán)重粒子消失,新粒子生成..在更新步驟,掃描得到的線加入地圖中,當(dāng)障礙出現(xiàn)時,圍繞障礙點繪制調(diào)整點集,而非僅一個孤立點.
E. LagoSLAMLinear Approximation for Graph Optimizationthe optimization process requires no initial guess
基本的圖優(yōu)化slam的方法就是利用最小化非線性非凸代價函數(shù).每次迭代, 解決局部凸近似的初始問題來更新圖配置,過程迭代一定次數(shù)直到局部最小代價函數(shù)達到. (假設(shè)起始點經(jīng)過多次迭代使得局部代價函數(shù)最小). LagoSLAM 是線性近似圖優(yōu)化,不需要初始假設(shè). 優(yōu)化器的方法可以有三種選擇 Tree-based netORK Optimizer(TORO), g2o,LAGO
2. 實驗結(jié)果比較分別從大小仿真環(huán)境和實際環(huán)境以及cpu消耗的情況下對算法進行了比較. CartoSLAM 與gampping占很大優(yōu)勢
說明:能力有限,講得有問題歡迎指正,暫且粗解到這,后面再具體看看對應(yīng)算法的詳細論文介紹,有問題再改...
slam算法的論文幾篇下載:http://download.csdn.net/detail/zyh821351004/8986339
-------------------------------------------------------------------- 補:源碼工程整理: https://github.com/kintzhao/laser_slam_openSources
-------------------------------------------------------------------- |
|
來自: 謝興l4nztpvbdk > 《VR類》