標籤:不能 strong 迭代 需要 結果 安裝 close graph ppi
在此因為要總結寫一個文檔,所以查閱資料,將總結的內容記錄下來,歡迎大家指正!
文章將介紹使用的基於機器人作業系統(ROS)架構工作的SLAM演算法。 在ROS中提供的五種基於2D雷射的SLAM演算法分別是:HectorSLAM,Gmapping,KartoSLAM,CoreSLAM和LagoSLAM。當然最後還有比較經典的google開源的cartographer,雖然不是基於ROS的但是大牛們已經將它修改為基於ROS的版本的cartographer_ros,
ROS(Robot Operating System)是一個基於Linux的開源作業系統,目的在於構建一個能夠整合不同研究成果,實現演算法,代碼重用的機器人軟體平台。ROS是當前比較流行的機器人控制架構,它讓我們節省時間構建機器人的系統架構,更專註演算法層面的研究。極大的提高了開發效率。提供了包括硬體抽象描述、底層裝置控制、常用功能的實現,程式間資訊的傳遞、程式包管理以及一些可視化資料程式和軟體庫,並在此平台的基礎上開源了很多諸如定位構圖,運動與規劃,感知與決策等應用軟體包。
機器人爆炸式增長的一個主要問題是不能在不同的機器人平台上重複使用代碼。然而,ROS中的硬體抽象層及其Message Service允許建立可用於許多不同機器人平台的新代碼。而且,ROS提供了一套穩定的機器人軟體包,公認的SLAM評估方法都依賴於機器人社區可用的標準資料集。 本文中研究了基於雷射的主要二維SLAM演算法,所有SLAM的結果都使用佔用網格作為最終輸出,使用地圖相似性的效能指標進行分析。 重點是放在地圖品質,而不是姿態估計誤差,因為映射輸出受到本地化問題的高度影響。 主要目標是提供ROS中所有五種演算法的優缺點概述,提供簡單而準確的定量比較,從而為ROS開發人員定義一個通用的指導方針,以選擇最符合他們需求的演算法。
(1)HectorSLAM
HectorSLAM是一種結合了魯棒性較好的掃描匹方法2D SLAM方法和使用慣性感測系統的導航技術。感應器的要求:高更新頻率小測量雜訊的雷射掃描器.不需要裡程計,使空中無人機與地面小車在不平坦地區運行存在運用的可能性.作者利用現代雷射雷達的高更新率和低距離測量雜訊,通過掃描匹配即時地對機器人運動進行估計。所以當只有低更新率的雷射感應器時,即便測距估計很精確,對該系統都會出現一定的問題,如是該系統產生的二維地圖。
http://kaspar.informatik.uni-freiburg.de/~slamEvaluation/datasets.php
http://www.ros.org/wiki/hector_slam
利用已經獲得的地圖對雷射束點陣進行最佳化, 估計雷射點在地圖的表示,和佔據網格的機率.,其中掃描匹配利用的是高斯牛頓的方法進行求解. 找到雷射點集映射到已有地圖的剛體轉換(x,y,theta).具體的公式如下:
二維地圖是hectorSLAM 多解析度地圖的表示。 網格儲存格長度(從左至右):20厘米,10厘米和5厘米 ,使用多解析度地圖表示,以避免陷入局部最小化。 這個解決方案背後的想法是在記憶體中有不同的地圖,同時使用之前估計的姿勢來更新它們。 計算成本 仍然很低,所以地圖總是一致的
最後,3D空間導航狀態估計是基於EKF濾波器。 但是,這種情況是僅在IMU存在時才需要,例如在空中機器人的情況下。 因此,這裡我們只討論二維的SLAM
它會將不再這項工作中使用。如顯示了HectorSLAM方法的概述。
(2)Gmapping
Gmapping是一種基於雷射的SLAM演算法,它已經整合在ROS中,是移動機器人中使用最多的SLAM演算法。這個演算法已經由Grisetti等人提出是一種基於 Rao-Blackwellized的粒子濾波的 SLAM方法。基於粒子濾波的演算法用許多加權粒子表示路徑的後驗機率,每個粒子都給出一個重要性因子。但是,它們通常需要大量的粒子才能獲得比較好的的結果,從而增加該演算法的的計算複雜性。此外,與PF重採樣過程相關的粒子退化耗盡問題也降低了演算法的準確性。粒子退化問題包括在重採樣階段從樣本集粒子中消除大量的粒子。發生這種情況是因為它們的重要性權重可能變得微不足道。因此,這意味著有一定的小機率時間會消除正確的假設的粒子。為了避免粒子的退化問題,已經開發了自適應重採樣技術。
作者還提出了一種計算精確分布的方法,不僅考慮機器人平台的運動,還考慮最近的觀察。提出了在使用測距運動模型時結合觀測值提出建議分布。然而,當一個移動機器人裝備一個非常精確的感應器LRF時,可以使用該感應器的模型,因為它可以實現了極高的似然函數。 基於此,作者整合了最近的感應器觀測zt,並且他們計算高斯分布近似有效地獲得下一代粒子分布。
這種自適應重採樣降低了PF預測步驟中機器人姿態的不確定性。 結果,由於掃描匹配過程,所需的粒子數量減少,因為不確定性較低。 實驗中,Gmapping使用的粒子數量是30,與普通PF方法相比,這是非常低的。
(3)LagoSLAM
LagoSLAM 是線性近似圖最佳化,不需要初始假設。基本的圖最佳化slam的方法就是利用最小化非線性非凸代價函數.每次迭代, 解決局部凸近似的初始問題來更新圖配置,過程迭代一定次數直到局部最小代價函數達到. (假設起始點經過多次迭代使得局部代價函數最小). 。假設圖中每個節點的相對位置和方向都是獨立的,作者求解了一個等價於非凸代價函數的方程組。為此,提出了一套基於圖論的程式,通過線性定位和線性位置估計,得到非線性系統的一階近似。
(4)KartoSLAM
KartoSLAM是基於圖最佳化的方法,用高度最佳化和非迭代 cholesky矩陣進行稀疏系統解耦作為解.圖最佳化方法利用圖的均值表示地圖,每個節點表示機器人軌跡的一個位置點和感應器測量資料集,箭頭的指向的串連表示連續機器人位置點的運動,每個新節點加入,地圖就會依據空間中的節點箭頭的約束進行計算更新.
KartoSLAM的ROS版本,其中採用的稀疏點調整(the Spare Pose Adjustment(SPA))與掃描匹配和閉環檢測相關.landmark越多,記憶體需求越大,然而圖最佳化方式相比其他方法在大環境下製圖優勢更大.在某些情況下KartoSLAM更有效,因為他僅包含點的圖(robot pose),求得位置後再求map.
(5)CoreSLAM
COreSLAM最小化效能損失的一種slam演算法.將演算法簡化為距離計算與地圖更新的兩個過程, 第一步,每次掃描輸入,基於簡單的粒子濾波演算法計算距離,粒子濾波的匹配器用於雷射與地圖的匹配,每個濾波器粒子代表機器人可能的位置和相應的機率權重,這些都依賴於之前的迭代計算. 選擇好最好的假設分布,即低權重粒子消失,新粒子產生..在更新步驟,掃描得到的線加入地圖中,當障礙出現時,圍繞障礙點繪製調整點集,而非僅一個孤立點。
以上各種雷射測距儀的SLAM的演算法的對比:
(6)cartographer
cartographer是Google的即時室內建圖項目,感應器安裝在背包上面,可以產生解析度為5cm的2D格網地圖。獲得的每一幀laser scan資料,利用scan match在最佳估計位置處插入子圖(submap)中,且scan matching只跟當前submap有關。在產生一個submap後,會進行一次局部的迴環(loop close),利用分支定位和預先計算的網格,所有submap完成後,會進行全域的迴環。
申明以上部分內容是參考了別人的部落格,如有侵權,請告知,我將刪除!
關於該文檔的下載http://download.csdn.net/download/u013019296/10191358
有興趣可以關注公眾號
對比幾種在ROS中常用的幾種SLAM演算法