張國榮 王志亮 趙振棟 王明濤 張心印

摘要:移動機器人同時定位與地圖構建(Simuhaneous Localization and Mapping,SLAM)是近年研究熱點。介紹了常用的卡爾曼濾波SLAM、圖優化SLAM原理和基礎理論,闡述卡爾曼濾波SLAM、圖優化SLAM關鍵技術及研究進展,并對機器人SLAM未來研究進行了展望。
關鍵詞:SLAM;卡爾曼濾波;圖優化
DOI:10.11907/rjdk.191818開放科學(資源服務)標識碼(OSID):
中圖分類號:TP3-0文獻標識碼:A 文章編號:1672-7800(2019)010-0005-03
0引言
機器人領域一個重要問題是實現機器人在陌生環境中自主定位、導航和理解環境信息,進而實現機器人(機器人群)自主移動和信息交流。為實現機器人的自主定位和導航,目前大多數研究都是在機器人上安裝多種傳感器,如陀螺儀、GPS、激光測距和氣壓傳感器等進行機器人自身定位,安裝單目相機、雙目相機、深度相機、激光雷達和聲吶等實現機器人的環境感知、地圖構建與定位。SLAM技術不斷發展,其中以卡爾曼濾波SLAM和圖優化理論最為經典,早期都是采用卡爾曼濾波(Kalman filter,KF)為原理的機器人進行研究;2007年后提出圖優化理論,由于其能通過閉環檢測減小系統累計誤差,提高定位和建圖精度,目前成為研究主流。
1基于卡爾曼濾波的概率SLAn
卡爾曼濾波理論在機器人導航、傳感器數據融合、雷達目標跟蹤和控制等領域應用已有幾十年。卡爾曼濾波SLAM核心思想是遞推求解,分為觀測、預測和更新3個步驟。下面介紹卡爾曼濾波SLAM的濾波和定位導航過程。
如圖1所示,設機器人初始位置為B點,定位不確定區域概率為橢圓B;當機器人從B移動xi位置時,橢圓xi區域為定位不確定的概率區域。隨著機器人的移動,傳感器誤差累積造成的位置不確定區域增加,這時就需要另外的傳感器提供觀測zi以減小誤差,此時的概率為條件概率P(Zi|Xi),由此得到機器人預測概率P(Xi)和觀測概率P(Zi|Xi,B)。
通過全概率公式和貝葉斯公式得到式(1)。
(5)為濾波后的數據融合。
卡爾曼增益嚴格依賴于方差大小比較,方差越大信任概率越小,方差越小信任概率越大。許多學者對卡爾曼濾波進行改進,其中擴展卡爾曼濾波(Extended Kalman Filter,EKF)是將卡爾曼濾波放進非線性領域,通過泰勒級數展開式對非線性函數展開,濾除二階以上的高階項以達到線性化目的。粒子濾波是卡爾曼在機器人SLAM中的具體應用。由于粒子濾波的非線性和處理多峰分布的特點,決定它比擴展卡爾曼應用更廣,但粒子濾波需要足夠的粒子樣本才能更確切地近似后驗概率密度。每個粒子都會占用較大內存,因此會造成算法內存占用過大;粒子濾波的另一個問題是粒子耗散,即隨著重采樣增加,粒子多樣性會耗散掉。針對粒子濾波的粒子數量和粒子耗散問題,學者采用proposal分布保持粒子數量在一個較小的值,并選擇采樣Fast-SLAM。
基于濾波的概率SLAM中,傳感器非線性分布噪聲隨時間增加非線性誤差累計較大,對此學者提出一些改進方法,如羅元等提出改進的Rao-Blackwellized算法等,這些算法在一定程度上提高了機器人應用場景大小和算法速度,但是沒有從根本上解決大范圍場景定位精度問題,更重要的是基于卡爾曼濾波的概率SLAM無法進行全局優化,因此出現了基于圖優化理論的SLAM。
2圖優化SLAn
基于概率的SLAM都是局部遞推式優化,無法進行閉環回路檢測。回環檢測保證SLAM能夠有效抑制累計誤差,機器人通過回溯關鍵幀進行回環檢測以減小全局累計誤差。圖2是機器人移動中的建圖過程:機器人在移動中通過當前ti時刻的xi位置運動,預計機器人ti時刻的xj位置和相同特征點在x2位置時,以及當相機運動到tj時刻xj位置時,觀測到同一特征點位置與預測的差值應該為零。其中,Zij為xi與xj位置觀測到的同一特征點,Ω為觀測噪聲。
上述過程為圖優化SLAM原理。圖優化SLAM相繼發展出SLAM++和iSAME等。圖優化解決SLAM問題時需要對SLAM進行建模,常用的建模方法有動態貝葉斯網絡、因子圖、馬爾科夫等。不同的建模方法對后期矩陣的稀疏性和非線性優化產生不同影響。動態貝葉斯建模時變量較多,因子圖建模和馬爾科夫建模隱藏變量較多。
關鍵幀是通過計算機器人移動過程中拍攝照片之間的歐式空間距離決定生成數據庫,它包含了機器人的位姿和特征點。因為特征的存在,使機器人可以在移動過程中通過新、舊關鍵幀對比特征點進行回路檢測。若機器人檢測到之前到過該位置,則向約束中添加位姿約束。但這樣帶來的問題是隨著時間的推移,機器人建圖規模會越來越大,如城市運用的清潔機器人和大場景運用的服務機器人等,不僅需要比較的關鍵幀數量會呈線性無限增長,而且系統計算量會變得異常龐大。針對降低因子圖復雜性的優化主要有稀疏化方法和多機器人(或多處理器)并行計算。
稀疏化通過向因子圖中添加或減少節點解決問題。Johannsson通過在現有節點之間引入新約束避免向圖中添加新節點,使變量的數量僅隨探索空間大小增長,而不是隨著映射持續時間而增長;郭潤提出一種基于熵稀疏規則的改進SLAM算法,該算法利用熵性質、綜合當前以及下一觀測時刻選擇與位姿關聯性最弱的環境特征作為稀疏特征點;Mazuran分別介紹了通用線性約束(GLC)因子和非線性圖形稀疏化(NGS)方法;Tong將軌跡的參數化從基礎曲線改變為高斯過程,其中因子圖中的節點是實際的機器人姿勢,并可通過計算給定時間的后驗平均值來插值任何其它姿勢;Barfoot提出了一個具有精確稀疏逆核的高斯過程,大大減少了批處理解的計算時間。
多機器人或多處理器并行分配計算思想是:把因子圖劃分為不同的子圖,通過局部和全局優化整個過程。朱福利等嘗試使用并行計算處理大規模建圖時的計算問題;Strasdat采用兩階段方法,首先優化局部姿勢特征圖,然后優化姿勢圖;Williams等提出高頻濾波器中的分離因子圖優化和低頻平滑器。
3SLAn研究展望
(1)多機器人協同建圖。多機器人同時建圖,并保證尺度的一致性和地圖有效拼接,形成機器人群的定位建圖信息共享。
(2)地圖語義表達。人在導航時除預測與觀測外,還有對地圖的顯著特征(ID)表達,如人在去某地導航時,能很好地理解和表達地圖;機器人在運動過程中無法形成自己理解的語義地圖,并對語義進行表達。有學者提出Bag-words方法。Bag-words能很好地壓縮圖片信息,但是丟棄了特征的空間位置,因此如何更好地壓縮信息,形成更好的語義是研究熱點。
(3)大場景SLAM數據處理。當機器人面臨的不是狹小室內環境,而是一座城市或一個國家時,計算機要存儲的數據量是巨大的。怎么管理、壓縮和回溯數據是SLAM未來研究的關鍵問題之一。
(4)動態場景下的SLAM。當前SLAM研究是假設機器人處于靜態(準靜態)環境中,周圍的物體為剛體。這種假設只適合短期動態,不適合劇烈變化的環境。機器人在長時間運行過程中環境會發生變化,因此如何自我調節異常值,考慮特征退化避免系統故障,不同環境選擇不同的參數是研究的關鍵問題之一。
(5)深度學習與視覺SLAM。視覺SLAM系統可以很好地采集和儲存圖像,但缺乏對圖像的深度分析、識別和挖掘。有了深度學習,視覺SLAM系統就可以進行物體識別,使機器人更好地理解世界,進一步從路徑規劃拓展到更廣領域進行任務規劃,然后根據不同的任務選擇不同的傳感器和執行器去完成任務。但深度學習都是建立在高性能計算機和GPU上進行大數據和長時間的訓練,視覺SLAM應用深度學習理論面臨的首要問題是:如何在嵌入式系統中提供足夠的計算能力或小樣本推進深度學習算法的進步。計算能力問題只能依賴于計算機硬件的進步或更好的網絡提供高性能的分布式云計算來解決,但視覺SLAM算法如何把估計、感知和人工智能(控制、導航和深度學習)等有機結合,實現良好的任務規劃值得深入研究。
(6)機器人SLAM硬件可靠性。硬件可靠性主要體現在長時間運行過程中故障率和噪聲模型的變化,這些硬件故障和噪聲模型的變化在無人駕駛領域都可能是致命的。因此,機器人要能在運轉過中識別CPU、GPU、內存等硬件的消耗,調整自身資源消耗,并能識別傳感器老化和噪聲模型的變化,進行動態參數調整和預判故障,這是SLAM研究領域的一個關鍵性問題。