1. 程式人生 > >自主移動機器人的定位與地圖建立(SLAM)關鍵性問題

自主移動機器人的定位與地圖建立(SLAM)關鍵性問題

1.引言:

機器人的研究越來越多的得到關注和投入,隨著計算機技術和人工智慧的發展,智慧自主移動機器人成為機器人領域的一個重要研究方向和研究熱點。移動機器人的定位和地圖建立是自主移動機器人領域的熱點研究問題。對於已知環境中的機器人自主定位和已知機器人位置的地圖建立已經有了一些實用的解決方法。然而在很多環境中機器人不能利用全域性定位系統進行定位,而且事先獲取機器人工作環境的地圖很困難,甚至是不可能的。這時機器人需要在自身位置不確定的條件下,在完全未知環境中建立地圖,同時利用地圖進行自主定位和導航。這就是移動機器人的同時定位與地圖建立(SLAM) 問題,最先是由SmithSelf 和Cheeseman在1988年提出來的,被認為是實現真正全自主移動機器人的關鍵。

SLAM問題可以描述為:機器人在未知環境中從一個未知位置開始移動,在移動過程中根據位置估計和感測器資料進行自身定位,同時建造增量式地圖。在SLAM中,機器人利用自身攜帶的感測器識別未知環境中的特徵標誌,然後根據機器人與特徵標誌之間的相對位置和里程計的讀數估計機器人和特徵標誌的全域性座標。這種線上的定位與地圖建立需要保持機器人與特徵標誌之間的詳細資訊。近幾年來,SLAM的研究取得了很大的進展,並已應用於各種不同的環境,如:室內環境、水下、室外環境。

自主移動機器人的定位與地圖建立(SLAM)關鍵性問題

2.SLAM的關鍵性問題
2.1地圖的表示方式

目前各國研究者已經提出了多種表示法,大致可分為三類:柵格表示、幾何資訊表示和拓撲圖表示,每種方法都有自己的優缺點。

柵格地圖表示法即將整個環境分為若干相同大小的柵格,對於每個柵格各指出其中是否存在障礙物。這種方法最早由Elfes和Moravec提出,而後Elfes進行了進一步的研究。它的優點在於建立和維護容易,儘量的保留了整個環境的各種資訊,同時藉助於該地圖,可以方便地進行自定位和路徑規劃。缺點在於:當柵格數量增大時(在大規模環境或對環境劃分比較詳細時),對地圖的維護行為將變得困難,同時定位過程中搜索空間很大,如果沒有較好的簡化演算法,實現實時應用比較困難。

幾何資訊地圖表示法是指機器人收集對環境的感知資訊,從中提取更為抽象的幾何特徵,例如線段或曲線,使用這些幾何資訊描述環境。該方法更為緊湊,且便於位置估計和目標識別。幾何方法利用卡爾曼濾波在區域性區域內可獲得較高精度,且計算量小,但在廣域環境中卻難以維持精確的座標資訊。但幾何資訊的提取需要對感知資訊作額外處理,且需要一定數量的感知資料才能得到結果。

拓撲地圖抽象度高,特別在環境大而簡單時。這種方法將環境表示為一張拓撲意義中的圖(graph),圖中的節點對應於環境中的一個特徵狀態、地點。如果節點間存在直接連線的路徑則相當於圖中連線節點的弧。其優點是:
(1)有利於進一步的路徑和任務規劃,
(2)儲存和搜尋空間都比較小,計算效率高,
(3)可以使用很多現有成熟、高效的搜尋和推理演算法。

缺點在於對拓撲圖的使用是建立在對拓撲節點的識別匹配基礎上的,如當環境中存在兩個很相似的地方時,拓撲圖方法將很難確定這是否為同一點。

2.2不確定資訊的描述

在完全未知環境中由機器人依靠其自身攜帶的感測器所提供的資訊建立環境模型是移動機器人進行自主定位和導航的前提之一。所謂完全未知環境是指機器人對環境一無所知不存在任何先驗資訊,如環境形狀、障礙物位置、人為設定的參照物等。在這種環境下,移動機器人必須依賴感測器所獲得的資訊,如里程計、聲納、鐳射測距儀、視覺等。由於感測器自身的限制,感知資訊存在不同程度的不確定性,例如鐳射測距儀的不確定性主要來自距離的測量誤差以及反光鏡旋轉和鐳射散射引起的測量角誤差。如圖1-1所示,感知資訊的不確定性必然導致所構建的環境模型也不可能是完全精確的,同樣,當依靠模型和感知進行決策時也帶有不確定性,即不確定性具有傳遞性。

移動機器人定位與地圖建立(SLAM)方法

 

對不確定性進行度量的方法主要有概率度量、信任度量、可能性度量、模糊度量和證據理論等。目前,在AMR地圖構建中使用較多的是概率度量和模糊度量。概率度量主要存在兩種形式:

(1)以均值、方差和協方差等概率特徵來描述不確定資訊。這種度量方法的優點是均值等概率特徵具有明確的幾何意義,缺點是概率特徵的離散計算公式還沒有確定的形式;

(2)以概率模型來描述不確定資訊,主要採用Bayes法則與Markov假設。這種度量方法的優點是以隨機概率模型描述機器人的位姿和環境資訊,魯棒性非常好,缺點是概率模型的計算量非常大而且必須事先知道模型的先驗概率,給實際應用造成了困難。

2.3定位與環境特徵提取

移動機器人自定位與環境建模問題是緊密相關的。環境模型的準確性依賴於定位精度,而定位的實現又離不開環境模型。在未知環境中,機器人沒有什麼參照物,只能依靠自己並不十分準確的感測器來獲取外界資訊,如同一個盲人在一個陌生環境中摸索的情況。這種情況下,定位是比較困難的。有地圖的定位和有定位的地圖建立都是容易解決的,但無地圖的定位和未解決定位的地圖建立如同"雞--蛋"問題,無從下手。已有的研究中對這類問題的解決方法可分為兩類:

1) 利用自身攜帶的多種內部感測器(包括里程儀、羅盤、加速度計等),通過多種感測資訊的融合減少定位的誤差,使用的融合演算法多為基於卡爾曼濾波的方法。這類方法由於沒有參考外部資訊,在長時間的漫遊後誤差的積累會比較大。

2) 在依靠內部感測器估計自身運動的同時,使用外部感測器(如鐳射測距儀、視覺等)感知環境,對獲得的資訊進行分析提取環境特徵並儲存,在下一步通過對環境特徵的比較對自身位置進行校正。但這種方法依賴於能夠取得環境特徵。環境特徵提取的方法有:

(1) Hough transform是一類基於灰度圖檢測直線和其他曲線的方法。該方法需要一簇能被搜尋的預先準備的特定曲線,並根據顯示的灰度圖中一簇曲線產生曲線引數。

(2) Clustering分析是一種資料探測工具,對於未分類樣例是有效的,同時,它的目標就是把所針對物件分組成自然類別或基於相似性或距離的簇類。在被提取物件類別未知的情況中,簇技術是一類比HoughTransform更有效的技術。簇類應是以“凝聚”為中心,而不是支離破碎的、不相交的。而環境特徵有時是很難提取出的,例如:環境特徵不夠明顯時或者感測器資訊比較少,難以從一次感知資訊中獲得環境特徵。

2.4資料關聯

資料關聯是對兩個特徵標誌進行匹配,確定它們是否對應環境中的同一物體。SLAM中的資料關聯主要需要完成三個任務:1)新特徵標誌的檢測2)特徵標誌的匹配3)地圖之間的匹配。雖然在目標跟蹤、感測融合等領域,資料關聯已經得到較好的解決,但是這些方法的計算量大,不能滿足SLAM的實時性要求。實現m個標誌與擁有n個標誌的地圖之間的資料關聯的複雜度與m之間呈指數關係,假設每個觀測到的標誌i有 個可能的匹配,那麼對於m個標誌需要在指數空間 = 中搜索正確的匹配。資料關聯的搜尋空間與環境的複雜程度以及機器人的定位誤差有關,環境的複雜程度的增加會使m增大,而誤差的增大會使Ni 增大。

2.5累積誤差

SLAM中的誤差主要來自三個方面:1)觀測誤差2)里程計的誤差3)錯誤的資料關聯帶來的誤差。當機器人在已知地圖的環境中進行定位時,機器人可以通過觀測位置已知的特徵標誌對里程計的誤差進行補償,每一次觀測使機器人的位置誤差趨向於觀測誤差與特徵標誌的位置誤差之和。然而在SLAM中,由於機器人的位置和環境中的特徵標誌的位置都是未知的,觀測資訊不能有效糾正里程計的誤差,機器人的位置誤差隨著機器人的運動距離而增大。而機器人的位置誤差的增大將導致錯誤的資料關聯,從而增大特徵標誌的位置誤差:反過來,特徵標誌的誤差又將增大機器人的位置誤差。因此,機器人的位置誤差與特徵標誌的位置誤差密切相關。它們之間的相互影響使機器人和特徵標誌的位置估計產生累計誤差,難以保證地圖的一致性。

3.SLAM的實現方法

目前SLAM方法大致可分為兩類:1)基於概率模型的方法:基於卡爾曼濾波的完全SLAM、壓縮濾波、FastSLAM等2)非概率模型方法:SM-SLAM、掃描匹配、資料融合(dataassociaTIon)、基於模糊邏輯等。

3.1基於卡爾曼濾波器的實現方法

從統計學的觀點看,SLAM是一個濾波問題,也就是根據系統的初始狀態和從0到t時刻的觀測資訊與控制資訊(里程計的讀數)估計系統的當前狀態。在SLAM中,系統的狀態 = ,由機器人的位姿r和地圖資訊m組成(包含各特徵標誌的位置資訊)。假設系統的運動模型和觀測模型是帶高斯噪聲的線性模型,系統的狀態 服從高斯分佈,那SLAM可以採用卡爾曼濾波器來實現。基於卡爾曼濾波器的SLAM 包括系統狀態預測和更新兩步,同時還需要進行地圖資訊的管理,如:新特徵標誌的加入與特徵標誌的刪除等。

卡爾曼濾波器假設系統是線性系統,但是實際中機器人的運動模型與觀測模型是非線性的。因此通常採用擴充套件卡爾曼濾波器(Extended Kalman Filter),擴充套件卡爾曼濾波器通過一階泰勒展開來近似表示非線性模型。另一種適用於非線性模型的卡爾曼濾波器是UKF(Unscented Kalman Filter),UKF採用條件高斯分佈來近似後驗概率分佈,與EKF相比,UKF的線性化精度更高,而且不需要計算雅可比矩陣。

卡爾曼濾波器已經成為實現SLAM的基本方法。其協方差矩陣包含了機器人的位置和地圖的不確定資訊。當機器人連續地觀測環境中的特徵標誌時,協方差矩陣的任何子矩陣的行列式呈單調遞減。從理論上講,當觀測次數趨向於無窮時,每個特徵標誌的協方差只與機器人起始位置的協方差有關。卡爾曼濾波器的時間複雜度是O( ),由於每一時刻機器人只能觀測到少數的幾個特徵標誌,基於卡爾曼濾波器的SLAM的時間複雜度可以優化為O( ),n表示地圖中的特徵標誌數。

3.2區域性子地圖法

區域性子地圖法從空間的角度將SLAM分解為一些較小的子問題。子地圖法中主要需要考慮以下幾個問題:1)如何劃分子地圖2)如何表示子地圖間的相互關係3)如何將子地圖的資訊傳遞給全域性地圖以及能否保證全域性地圖的一致性。

最簡單區域性子地圖方法是不考慮各子地圖之間的相互關係,將全域性地圖劃分為包括固定特徵標誌數的獨立子地圖,在各子地圖中分別實現SLAM,這種方法的時間複雜度為O(1)。但是,由於丟失了表示不同子地圖之間相關關係的有用資訊,這種方法不能保證地圖的全域性一致性。
對此,Leonard 等人提出了DSM(DecoupledStochasTIc Mapping)方法,DSM中各子地圖分別儲存自己的機器人位置估計,當機器人從一個子地圖A進入另一個子地圖B時,採用基於EKF的方法來將子地圖A中的資訊傳送給子地圖B;B.Williams等人提出了一種基於CLSF(ConstrainedLocal Submap Filter)的SLAM方法,CLSF在地圖中建立全域性座標已知的子地圖,機器人前進過程中只利用觀測資訊更新機器人和區域性子地圖中的特徵標誌的位置,並且按一定的時間間隔把區域性子地圖資訊傳送給全域性地圖。雖然實驗表明這兩種演算法具有很好的效能,但是沒有從理論上證明它們能夠保持地圖的一致性。J.Guivant等人提出了一種沒有任何資訊丟失的SLAM優化演算法CEKF(CompressedExtended Kalman Filter)。CEKF將已經觀測到的特徵標誌分為A與B部分,A表示與機器人當前位置相鄰的區域,被稱為活動子地圖。當機器人在活動子地圖A中運動時,利用觀測資訊實時更新機器人的位置與子地圖A,並採用遞迴的方法記錄觀測資訊對子地圖B的影響;當機器人離開活動子地圖A時,將觀測資訊無損失地傳送給子地圖B,一次性地實現子地圖B的更新,同時建立新的活動子地圖。該方法的計算時間由兩部分組成:活動子地圖中的SLAM,其時間複雜度為O( ), 是活動子地圖A中特徵標誌的數目;子地圖B的更新,其時間複雜度為O( ) , 是地圖B中特徵標誌的數目。當子地圖合併的時間間隔較大時,CEKF能有效減少SLAM的計算量。

3.3去相關法

降低SLAM複雜度的另一種方法是將表示相關關係的協方差矩陣中一些取值較小的元素忽略掉,使其變為一個稀疏矩陣。然而這也會因資訊的丟失而使地圖失去一致性。但是,如果能改變協方差矩陣的表示方式,使其中的很多的元素接近於零或等於零,那麼就可以將其安全地忽略了。基於擴充套件資訊濾波器EIF(ExtendedInformaTIon Filter)的SLAM就是出於這一思想。EIF EKF的基於資訊的表達形式,它們的區別在於表示資訊的形式不一樣。EIF採用協方差矩陣的逆矩陣來表徵SLAM中的不確定資訊,並稱之為資訊矩陣。兩個不相關的資訊矩陣的融合可以簡單地表示為兩個矩陣相加。資訊矩陣中每個非對角線上的元素表示機器人與特徵標誌之間或特徵標誌與特徵標誌之間的一種約束關係,這些約束關係可以通過系統狀態的信關係進行區域性更新。這種區域性更新使得資訊矩陣近似於稀疏矩陣,對其進行稀疏化產生的誤差很小。根據這一點,S.Thrun等人提出了一種基於稀疏資訊濾波器SEIF(Sparse Extended InformaTIonFilter)的SLAM方法,並證明利用稀疏的資訊矩陣實現SLAM的時間複雜度是O(1)。雖然EIF可以有效降低SLAM的時間複雜度,但是在地圖資訊的表示和管理方面還存在一些問題。首先,在常數時間內只能近似算得系統狀態的均值;其次,在基於EIF 的SLAM 方法中,特徵標誌的增刪不方便。

3.4分解法(FastSLAM)

M.Montemerlo 等人提出了一種基於粒子濾波器(ParticleFilter) FastSLAM 方法。FastSLAM 將SLAM分解為機器人定位和特徵標誌的位置估計兩個過程。 粒子濾波器中的每個粒子代表機器人的一條可能運動路徑,利用觀測資訊計算每個粒子的權重,以評價每條路徑的好壞。對於每個粒子來說,機器人的運動路徑是確定的,因此特徵標誌之間相互獨立,特徵標誌的觀測資訊只與機器人的位姿有關,每個粒子可以採用n個卡爾曼濾波器分別估計地圖中n個特徵的位置。假設需要k個粒子實現SLAM、FastSLAM,總共有kn個卡爾曼濾波器。FastSLAM的時間複雜度為O(kn),通過利用樹型的資料結構進行優化,其時間複雜度可以達到O(klog n)。Fast2SLAM方法的另一個主要優點是通過採用粒子濾波器估計機器人的位姿,可以很好地表示機器人的非線性、非高斯運動模型。

3.5基於多機器人協作的SLAM

一些研究者對基於多機器人協作的同時定位與地圖建立CSLAM(CooperativeSimultaneous Localizationand Mapping)進行了探討和研究。 與單機器人相比,通過機器人之間的相互協調與合作以及資訊共享,CSLAM可以提高地圖建立的效率和提高定位與地圖的精度。CSLAM按照地圖的儲存與處理方式的不同可以分為兩大型別:集中式CSLAM和分散式CSLAM。在集中式CSLAM中,存在一箇中央處理模組,每個機器人分別在自己所在的區域性地圖中進行定位與地圖建立,然後利用無線通訊裝置將在區域性地圖中獲得的資訊傳送給中央模組。這種方法通過子地圖的匹配,可以充分利用子地圖間的冗餘資訊提高定位與地圖建立的精度。但是,當機器人數量增加時中央模組的計算量會顯著增大,而且集中式的資訊傳遞需要很大的頻寬;系統的可靠性也比較低,一旦中央模組出現故障,整個系統都會陷入癱瘓狀態。在分散式CSLAM中,不存在中央模組,每個機器人都擁有自己的全域性地圖,在每一時刻機器人把來自其他相鄰機器人的資訊和自己的觀測資訊融合到自己的全域性地圖中,然後以點對點的方式將新的資訊傳送給其他機器人。每個機器人只能獲得與其相鄰的機器人的位置資訊,不知道整個系統的拓撲結構。這種方法與分散式的資訊融合十分相似,可以利用資訊濾波器來實現。由於兩個不相關資訊矩陣的資訊融合可以通過兩個矩陣的相加而實現,所以利用資訊濾波器實現分散式CSLAM可以避免複雜的計算。

4.研究方向與發展趨勢

綜上所述,近幾年來機器人領域的研究者對SLAM進行了大量的研究,特別是在降低計算複雜度、提高魯棒性等方面取得了很大的進展。隨著研究的深入,以下的幾方面成為了當前SLAM的研究熱點方向。

1. 擴充套件SLAM的應用環境:將目前侷限二維靜態環境中的研究與應用擴充套件到與現實中的環境切合的動態的三維環境;
2. 深入研究基於多機器人協作的SLAM,提高其應用水平;
3. 研究更有效的SLAM實現方法,將人工智慧、智慧控制等領域的方法引入到SLAM中,開發更有效的SLAM演算法.;
4. 研究更好的地圖表達方式,特別是複雜地形和大環境中的地圖表達方式;
5. 研究更好的將視覺處理與其他感測器結合,提高環境特徵提取的精度,減少誤差,提高定位和構圖的精確性。