作者:薛光輝、李瑞雪、張鉦昊、劉睿
來源:信息與控制
00 摘要
SLAM算法是移動機器人實現自主移動的關鍵環節。激光雷達(LiDAR)具有測距精度高、不易受外部干擾和地圖構建直觀方便等優點,廣泛應用于大型復雜室內外場景地圖的構建。隨著3D激光器的應用與普及,國內外學者圍繞基于3D激光雷達的SLAM算法的研究已取得豐碩的成果。
本文梳理了3D激光SLAM算法在前端數據關聯、后端優化等環節的國內外研究現狀,分析總結了目前各種3D激光SLAM算法以及改進方案的原理和優缺點,闡述了深度學習和多傳感器融合理論與技術在3D激光SLAM算法中的應用情況,指出多源信息融合、與深度學習結合、應用場景的魯棒性、SLAM算法通用框架及移動傳感器和無線信號體制的技術滲透是3D激光SLAM算法的研究熱點和發展趨勢。
研究成果對3D激光SLAM算法和未知環境中移動機器人即時定位和地圖構建的研究具有重要的參考價值和指導意義。
01 引言
SLAM算法的經典框架包括前端數據關聯和后端優化兩部分,如圖1所示。前端依據激光雷達測得的點云數據,通過掃描匹配進行幀間配準,閉環檢測以獲得不同幀間點云數據的關系,不斷更新位置估計,并存儲相應的地圖信息;后端通過維護和優化前端得到的機器人位姿和觀測約束,得到所構建地圖的最大似然估計與機器人當前位姿。
圖1 激光SLAM算法框架
根據所用傳感器,SLAM算法大致分為基于視覺傳感器的視覺SLAM算法和基于激光雷達的激光SLAM算法兩種。與視覺傳感器相比,激光雷達具有測距精度高、不易受光照與視角變化等外部干擾和地圖構建直觀方便等優點,廣泛應用于大型復雜室內外場景地圖的構建。
激光雷達按照激光線數不同分為2D激光雷達和3D激光雷達。目前2D激光SLAM技術發展較為成熟,已在服務機器人和工業現場得到了應用。
2D激光雷達同時發射和接受單線的激光,其結構簡單、掃描速度高、角度分辨率高,功耗低且精度可達厘米級,但受限于平面環境而無法適用于全地形環境,在有起伏或者存在坡道等場景就不能實現定位和地圖構建。
3D激光雷達通過發射多束激光測量其與未知環境中物體的幾何信息,獲取包含精準的距離和角度信息的點云數據,體現3維空間結構信息,而且線數越多獲得的激光點個數越多,對環境結構的描述也更清晰。
隨著多線激光雷達的量產和普及,以及嵌入式處理器功耗降低和算力增強,3D激光雷達開始走向低成本、低功耗和高可靠性的應用,基于3D激光雷達的SLAM算法得到了迅猛的發展。
ZHANG等于2014年提出的LOAM(LiDAR odometry and mapping)算法是目前最具代表性的3D激光SLAM算法。其原理是將激光SLAM分成里程計算法和地圖構建算法,具有速度快、精度高、魯棒性好以及計算消耗小等優點;缺點是沒有閉環檢測,大規模測試中會出現漂移,在空曠環境下會因特征缺少而出現退化問題。SHAN等優化了LOAM的特征匹配,增加了閉環檢測,提出了LeGO-LOAM,運行時間比LOAM算法減少了一個數量級,在占用計算資源減少的情況下實現了相似甚至更好的精度,但有時會出現錯誤或識別遺漏。有學者使用Eigen線性迭代和Ceres Solver非線性優化簡化了代碼結構,減少了復雜的數學推導和冗余操作,提出了LOAM的高級實現A-LOAM。
此外,DESCHAND等提出了一個幀到模型的匹配框架IMLS-SLAM,引入隱式移動最小二乘(IMLS)表面公式,采用最小化點到隱式表面距離的方法表示局域激光雷達的掃描點,從而提供了準確的姿態估計,但不能實時實現。作為一種典型的密集方法,BEHLEY等提出了基于面元的地圖進行配準和閉環檢測的SuMa(surfel-based mapping)算法,對于缺失特征或缺失數據更具魯棒性,僅基于激光點云數據就可以建立大規模環境下的全局一致性地圖。
現有的3D激光雷達SLAM算法研究在公開數據集測試中表現出了良好的性能,平移或旋轉的漂移較低,圖像質量和軌跡的精度較高,但在實際應用中仍存在較多局限性:包括對環境的魯棒性,例如從室內到室外或者從靜態環境到動態環境;對實時性的要求,例如在一些無人地面車輛(UGV)等機器人平臺上,計算資源有限,而計算單元需要同時進行定位和路徑規劃,計算成本較高等。
已有學者總結了SLAM的相關工作,描述了SLAM的一般問題、模型及框架、難點和主要方法,回顧了相關工作進展,并且討論了SLAM的發展趨勢,其中關于算法的進展多介紹視覺SLAM算法或SLAM算法的特定方面或其子領域,涉及3D激光雷達SLAM算法綜述研究較少。周治國等概述了3D激光雷達SLAM算法框架和關鍵模塊,但是對于算法方案的介紹只選取了6種開源算法進行測試對比,并未詳細展開。XU等介紹了基于3D激光雷達的多傳感器融合SLAM的發展過程和最新的研究工作。
本文從3D激光SLAM算法的前端、后端,深度學習和多傳感器融合在3D激光SLAM中的應用等方面,系統闡述現在主流的3D激光SLAM算法方案,探討目前主流3D激光SLAM算法存在的問題和不足,總結其研究熱點和發展趨勢,以期為其后續研究提供借鑒和指導。
02 SLAM前端
3D激光SLAM算法的前端主要解決數據關聯的問題,掃描匹配考慮局部數據關系,而閉環檢測則處理全局數據關系;掃描匹配與閉環檢測都是根據激光幀數據建立節點間的約束。
2.1 掃描匹配算法
掃描匹配算法的精度和計算效率直接影響著SLAM算法軌跡估計和地圖構建的準確性,為后端優化提供機器人狀態的初始值與約束關系,大致分為基于迭代最近點(ICP)的、基于幾何特征的及基于數學特征的匹配算法。
1) 基于ICP的匹配算法
經典ICP算法是1992年BESL等和CHEN等提出的。其原理為以距離誤差最小為目標函數,通過迭代的方式尋找相鄰掃描幀兩掃描點間的最佳變換關系。該算法易陷入局部最優,且當掃描點數增多時,計算成本過高。
為了解決經典ICP算法易陷入局部最優的問題,提高效率和準確性,許多學者研究了基于ICP的改進算法,優化了ICP算法的步驟,包括點的選擇、匹配、加權和剔除錯誤關聯,或者最小化成本函數的選擇。其中適合3D激光雷達SLAM的算法有PP-ICP(point-to-plane ICP)、PL-ICP(point-to-line ICP)、GICP(generalized ICP)、NICP(normal ICP)等。PP-ICP算法的誤差代價為點對面的距離;而PL-ICP算法利用點到線的距離作為誤差代價,更符合實際情況;GICP將ICP算法和PL-ICP算法相結合,在概率框架下進行點云配準,提高了適用性和精確度;為提高精度,NICP則考慮了環境曲面的法向量和曲率。
IMLS-ICP為每個點分配一個權重值,選擇具有代表性的點匹配;利用基于目標點的局部曲面法線,采用IMLS法重建曲面。BLAM通過GICP算法初步計算兩幀點云數據的位姿變換,獲取當前幀對應的最近點,并再次利用GICP算法得到精確的位姿數據,執行閉環檢測得到地圖,提高了建圖精度。LiTAMIN算法將對稱的K-L(Kullback-Leibler)散度引入到反映兩個概率分布之間差異的ICP代價函數中,減少了點云配準的點數,提高了處理速度;使用K-D tree(K-dimension tree)的觀點構建體素網格地圖,保持配準精度的同時,提高了算法的準確性、魯棒性。然而實現收斂所需的大量迭代、對良好初始化的要求以及對噪聲的敏感性仍限制了ICP及其變體算法;而且應用原始點云匹配的計算成本通常很高。
2) 基于幾何特征的匹配算法
基于幾何特征的掃描算法主要利用邊緣和平面特征,并保持邊緣和平面的匹配,如圖2所示。LOAM基于局部平滑度提取當前幀和匹配幀的邊緣和平面特征,并將當前點云中的點與地圖中的邊緣和平面進行匹配。還有許多研究擴展了基于幾何特征的匹配算法以實現更好的性能,例如LeGO-LOAM在特征提取之前利用分離地面優化,算法軟件系統框圖如圖3所示。R-LOAM(reference LOAM)結合參考對象提取的網格特征,有效減少了長期漂移,但對3維網格和參考對象定位精度有較高要求。由于不需要點云轉換關系的先驗信息,利用了特定形狀的幾何特征迭代求解,基于幾何特征的匹配算法計算量大大減少,實時性較好,匹配精度高,被廣泛應用;缺點是當環境中的幾何特征不明顯時,結果可能會不準確、不穩定。
圖2 特征掃描匹配
圖3 LeGO-LOAM算法系統框圖
面元(Surfel)是一種基于點的渲染方法,用點云而非多邊形網格來渲染3維形狀,但是需要GPU處理。DROESCHEL等利用面元特征,將連續的3D激光掃描與增量構建的多分辨率柵格地圖配準;為實現測量稀疏和網格離散化情況下的準確性,在高斯混合模型中以概率方式分配面元,提高算法的準確性和效率。參照視覺SLAM中Elastic-Fusion的處理方式,包括SuMa,Elastic-LiDAR Fusion將激光雷達點云數據的形狀近似為面元,利用面元特征實現激光里程計。SuMa算法的軟件系統框圖如圖4所示。
圖4 SuMa算法系統框圖
3) 基于數學特征的匹配算法 基于數學特征的匹配算法是使用各種數學性質來表征掃描數據和數據幀姿態變化的掃描匹配方法,具有代表性的有基于正態分布變換(NDT)的匹配算法,NDT算法是一種快速空間建模技術,用以建立精簡的目標3維點云模型。
2003年,BIBER等提出了基于正態分布變換函數的點云配準2D-NDT(2-dimension NDT)算法并成功應用于SLAM中。其在配準的過程中利用正態分布表示關鍵幀,得到全局姿態的集合。對于大量的點云數據,NDT算法比ICP算法配準速度快,但配準精度不如ICP算法高。2006年,MAGNUSSON等提出了3D-NDT(3-dimension NDT)算法,并不斷加以改進,使之更適用于激光雷達點云數據的配準。ONDT(occupancy NDT)算法研究了多維正態分布變換的地圖表示,相較于OctoMap和NDT-OM(normal distributions transform occupancy mapping)等3D地圖表示,在內存消耗較低情況下,準確性較高且運行速度快。RGC-NDT(regional growth clustering normal distribution transformation)算法使用聚類算法捕獲細節自然特征,相比傳統NDT算法,匹配準確度提高1.18倍,且匹配耗時僅為其1/3。2021年,KOIDE等結合NDT和類ICP算法的優勢提出了VGICP(voxelized GICP)算法,通過體素化的方法擴展GICP算法,避免了高代價的最近鄰搜索,能夠快速準確地實現3維激光點云配準。
2.2 閉環檢測
SLAM前端的近似計算和后端的漸近建圖都會因傳感器的信息偏差而產生計算誤差,并且會不斷累積。閉環檢測則是避免誤差過多累積的關鍵模塊,如實際閉環被正確檢出,則可大大減少相應兩個時刻位姿等信息的估計誤差,進而校正全局相關時刻位姿和地圖信息的誤差;如誤判實際相距較遠位置所得的兩組點云為閉環,則可能導致全局位姿和地圖信息的近似計算出現較大偏差,甚至導致約束信息不一致而不可解。更加緊湊、準確的閉環約束最終可以形成拓撲一致的軌跡地圖,其準確性和效率對SLAM均很關鍵,過程如圖5所示。由于3D激光點云數據信息單一、無序且較稀疏,隨著點云匹配的時間增長,SLAM往往會出現軌跡不準確、構建地圖重疊等問題。但是目前,閉環檢測仍然沒有廣泛認可的最佳解決方案。
圖5 閉環檢測(綠色為當前幀點云,紅色為歷史回環幀點云)
OLSON通過旋轉和平移判斷兩幀激光數據的相似性,采用相關性掃描匹配的方法達到閉環檢測的效果。LeGO-LOAM則利用ICP算法結合歐氏距離進行閉環檢測。然而,這類簡單的利用幾何估計的策略由于前端里程計的累積漂移誤差較大,可能導致在大規模環境中無法有效地進行閉環檢測。
除兩組點云點對點的直接匹配,另一種方法是用幾何信息、強度信息或者其他來構造描述符,再通過比較描述符衡量相似度,有基于手工設計和基于深度學習兩種方法。前者可以直接處理3維點云,包括基于局部的描述符、基于全局的描述符和基于混合的描述符;后者需要將3維點云表示成深度學習可處理的格式,如預處理為結構化的、固定大小的表示形式。有效提取具有鑒別能力和魯棒性的特征描述符也是學者關注和研究的問題之一。
局部描述符是從每個關鍵點位置提取,并基于詞袋模型進行場景匹配,提高了匹配能力和魯棒性。許多關鍵點檢測的方法被提出,如3DSift(3-dimensional sift)、3DHarris(3-dimensional Harris)、3D-SURF、 ISSs(intrinsic shape signatures)及局部描述符如SHOT(signature of histogram of orientation)、B-SHOT (binary signature of histogram of orientation)、ISHOT(intensity signature of histogram of orientation)和FPFH(fast point feature histogram)。
局部描述符對激光點云的稀疏和不連續特征魯棒性不足,忽略了局部特征之間的關系;通常需要大量的局部幾何計算,而全局描述符更擅長檢測具有高重復性的關鍵點,在全局點云中進行匹配。M2DP(multiview 2D projection)將點云投影到多個2維平面中,并為每個平面的點生成一個密度簽名,這些簽名的左右奇異向量被用作全局描述符?;趲缀侮P系的平移和旋轉不變的3D描述符,GLAROT-3D(geometric landmark relations rotation-invariant 3D)將關鍵點對的相對幾何位置編碼成直方圖。Scan Context方法則利用存儲高度值的2維矩陣格式的數據作為描述符;還提出了融合相似度評分和最近鄰搜索以實現快速的搜索以及采用兩階搜索算法檢測回環。
通過集成幾何和強度特征,WANG等提出了一種兩階段的分層位置重識別策略ISC(intensity scan context)以提高效率,包括基于二元運算的快速幾何檢索和強度結構匹配。受啟發于人類虹膜,LiDAR Iris將環境的高度信息編碼為像素強度并提取一個用以判別的二值特征圖像,使用對應圖像的漢明距離計算相似度。將點云分割成不同的對象,Seed將分割對象的拓撲信息編碼到全局描述符中。這些方法將幾何結構編碼為描述符并取得了良好的效果,但是目前激光的全局或者局部描述子的描述能力和旋轉不變性能仍然有所欠缺,集成更高級的特征可以進一步增強描述符的鑒別能力。
基于混合的描述符如SegMatch(segment matc-hing)和SegMap(segment mapping)將一個點云聚為多個段,并提取片段特征,使用KNN(K-nearest neighbour)算法來識別對應物,結合局部描述和全局描述的優勢解決了點云數據稀疏、形式單一的問題。SegMap描述符解決了實時單一和多機器人系統的數據壓縮要求,也可以用于密集環境的三維地圖重建和語義信息提取,用于導航任務和面向機器人操作員等最終用戶的視覺反饋。SegGraph (segment graphing)在分割點云后以邊匹配為主要依據,基于K-公共子圖判定方法實現閉環檢測。
03 SLAM后端
3D激光SLAM算法中,后端優化的目的是將各幀雷達的位姿和幀間運動約束綜合起來達到整體優化,以消除局部累計誤差,并根據前端提供的數據生成環境地圖估計,主要有濾波和非線性優化兩種思路:濾波主要采用擴展卡爾曼濾波獲得最優估計,存在適應性差、缺少回環檢測、更新效率慢等問題,難以在回環多、距離長的大規模環境中應用;非線性優化方案以圖優化為代表,進行全局優化,把所有數據都考慮進來,雖然會增大計算量,但融合精度較高。后端優化前后對比如圖6所示,如何高效地通過后端優化來修正運動位姿和提高地圖精度是SLAM算法的研究熱點。
圖6 后端優化前后對比
3.1 基于濾波估計的SLAM算法
基于濾波理論的SLAM算法主要是利用了貝葉斯估計的原理,具體可分為基于卡爾曼濾波的SLAM算法和基于粒子濾波的SLAM算法。 基于擴展卡爾曼濾波的SLAM算法通過將非線性的運動模型和觀測模型線性化處理進而實現SLAM,此過程會引入線性化誤差,魯棒性較差且計算效率低。JULIER等研究了無跡卡爾曼濾波方法,對非線性系統進行無跡變換,其精度比擴展卡爾曼濾波方法高。
粒子濾波方法使用一定數量的、帶有權重的粒子來代表狀態的后驗概率分布,可用于非線性非高斯的系統。MURPHY等提出了RBPF(Rao-Blackwellized particle filter)算法,分別使用擴展卡爾曼濾波算法和粒子濾波算法來解決機器人位置校正和位置估計問題,極大地降低了算法的計算復雜度。Fast-SLAM就是基于RBPF的SLAM算法,它提高了地圖精度。GRISETTI等考慮了傳感器信息模型并且采用自適應重采樣技術來保持合理的粒子種類,并提出了gmapping來改善粒子退化問題,其使用了較以前方法低一個數量級的粒子數量就生成了高精度地圖,是激光SLAM的一個里程碑。
3.2 基于非線性優化的SLAM算法
圖優化算法框架由LU等提出,是目前應用最為廣泛的SLAM框架之一。圖優化算法框架通過維護關鍵節點以達到優化的目的,在保證精度的同時大大降低了計算量,如圖7所示?;趫D優化的算法可以分為基于最小二乘法的優化、基于松馳技術的優化、基于隨機梯度下降法的優化和流形優化四種。KONOLIGE等提出了用于2維姿態圖的Karto SLAM開源方案,一定程度上取代了基于濾波理論的SLAM方案,但實時性較差。Cartographer融合多傳感器數據創建局部子圖,采用子地圖匹配算法進行全局優化,能夠構建2維和3維點云地圖,效率高,魯棒性好,缺點是計算資源消耗大,在環境較大、計算資源不足時可能出現無法正?;丨h的現象。
圖7 圖優化算法框架
針對非線性優化問題已經存在成熟C++開源庫,如:Goole開源庫Ceres Solver,基于圖優化的開源優化庫有iSAM(incremental smoothing and mapping)、GTSAM(Georgia tech smoothing and mapping)、G20(general graph optimization)、BA(bundle adjustment)等,借助這些優化庫可節省后端迭代求解優化值的時間。
04 基于深度學習的3D激光SLAM算法
基于深度學習的方法通過數據驅動的方式學習,能夠得到比手工設計更加精確的模型。SLAM與深度學習的結合主要是將深度學習應用到傳統SLAM框架的一個或幾個環節,如幀間估計、閉環檢測等,以提高SLAM算法的效率、精度和魯棒性,表1列出了一些實現幀間估計、閉環檢測的特征學習算法;或是語義SLAM中利用深度學習提取語義信息、構建語義地圖,以提高機器人的自主理解能力。
后端算法從線性濾波逐步向非線性優化發展,其中因子圖優化與滑動窗口結合的方法以其良好的實時性和魯棒性,被廣泛應用在各類融合定位和建圖系統中。
表1 實現幀間估計、閉環檢測的特征學習算法
4.1 幀間估計
與前文中基于幾何信息接近策略的掃描匹配算法相比,基于深度學習的幀間估計方法性能卓越。但是由于數據稀疏性和計算成本高,傳統的卷積模型無法直接應用到點云中??偟膩碚f,利用深度學習實現幀間估計的方式有兩種:
1) 基于特征學習的點云配準方法
如GMM(Gaussian mixed model)、3DFeat-Net、FCGF(fully convolutional geometric features)、Siamese-PointNet(Siamese point network)、UGMMReg(unified Gaussian mixture model registration);
2) 基于端到端的深度網絡模型的點云配準方法
如DeepGMR(Deep Gaussian mixture registration)、3DRegNet(3D registration network)、MLP_GCN(multilayer perceptron-graph convolutional networks)、IPCR(iterative point cloud registration)。
現有的許多實驗表明,直接應用配準的數學理論會花費巨大的計算時間,而直接應用深度學習無法保證準確性。直接結合深度學習和ICP仍然需要很高的計算時間。將傳統的數學理論和深度神經網絡融合到端到端的框架中,以獲得高精度和高效率,是未來的研究方向。
4.2 閉環檢測
傳統的閉環檢測大多使用人工選取特征,精確度低、計算量大。相比于傳統人工設計的特征,深度學習可以通過大量的學習訓練以及合理的網絡構建,高效提取對分類無關因素不敏感且區分度高的特征。
近年來,基于深度學習的閉環檢測算法逐漸發展。PointNetVLAD(PointNet and NetVLAD)利用PointNet提取局部特征,并利用NetVLAD聚合全局特征,從3維點云端到端提取全局描述符。DH3D(deep hierarchical 3D)從原始的3維點云中學習局部特征,然后使用注意力機制將這些特征聚合為全局特征描述符。KOMOROWSKI提出了一種基于替代點云表示和網絡架構的全局點云描述符提取方法—MinkLoc3D。HUI等提出了一種金字塔點云變換器網絡PPT-Net(pyramid point cloud transformer network),利用金字塔點Transformer模塊來增強對局部特征的區分并生成全局描述符。FastLCD(fast and compact loop closure detection method)直接從原始點云掃描提取多模態特征,編碼成全局綜合描述符,具有旋轉不變性。NDT-Transformer針對大規模點云,通過學習輕量級處理后的NDT單元的全局描述符進行閉環檢測。ZHOU等提出了一種基于局部3D深度描述符的閉環檢測方法,通過一種新穎的重疊度計算方法檢測閉環,實現了更好的精度。Overlap-Transformer是一個輕量級的Transformer神經網絡,基于深度圖像構造全局描述符進行閉環檢測。
由于圖像特征描述符(如SIFT(scale invariant feature transform))的驚人性能和高成熟度,基于圖像的閉環檢測發展迅速,然而對于3維點云數據并沒有相同成熟的類似方法提出,難以從點云中提取局部特征描述符,然后將其編碼為檢索任務的全局描述符。盡管基于深度學習的描述符也有突破結果,但是其嚴重局限性是需要大量的訓練數據,當訓練和應用于不同地形或在不同條件下獲得的數據時,這些方法并不適用;而且它們通常需要GPU,在保持精度的同時,對輕量級網絡結構的探索以及對實時性能的追求是當下的研究熱點。
幾何特征在惡劣環境下難以保證準確的閉環檢測,而語義信息不易受環境因素的影響,是一種長期穩定的特征?;谡Z義信息的方法能夠構建長期穩定的定位系統,實現閉環檢測。GOSMatch(graph-of-semantics matching)利用場景中的語義對象來檢測閉環,通過編碼語義對象之間的空間關系構建全局和局部描述符,進行閉環檢測。LI等提出了一種基于3D激光數據的合并語義信息和Scan Context的全局描述符SSC(semantic scan context),并利用3階段檢索方法實現閉環檢測。張劍華等提出一種基于點云片段匹配約束的方法提升回環檢測的效率。RINet(rotation invariant neural network)設計了結合語義和幾何特征的旋轉等變全局描述符,提高了描述能力,并且通過一個旋轉不變的孿生神經網絡來預測描述符對的相似性。
4.3 語義分割及語義地圖
不同于傳統SLAM方法以靜態環境假設為前提,語義SLAM可以預知物體的可移動屬性;共享相似物體表示,通過維護共享知識庫提高了SLAM系統的可擴展性和存儲效率;可以應對復雜場景,實現智能路徑規劃。語義SLAM的關鍵在于對目標物體的精準識別,而深度學習技術恰好是當前最具潛力和優勢的物體識別方法,因此深度學習和語義SLAM的結合受到廣泛關注。語義SLAM研究主要是利用語義信息輔助定位及構建語義地圖,通過語義特征提取、動態物體剔除以提高SLAM算法的魯棒性和定位精度;通過高級語義信息為機器人的人機交互提供高層次的語義地圖,提高機器人的自主理解能力。
3維點云的語義場景理解在機器人和無人駕駛領域中有著廣泛的應用需求,也是目前亟待解決的問題,許多基于3維點云的目標檢測和語義分割方法被提出。對于3維點云的幾何分類、目標檢測和跟蹤以及點云分割包括語義分割、實例分割等,GUO等作了較為全面的綜述。
由于3維點云的無序性、稀疏性和非結構化特點,為了處理此類非結構化數據,通常將點云轉換為3D體素網格或2D投影的結構化形式,或者直接作用于輸入點云定義一種新操作。開創性工作PointNet利用尺度變換統一3維點云輸入,再通過Max Pooling操作解決點云無序性問題,可直接利用3維卷積神經網絡對3維點云進行特征提取和語義分割?;诖?,PointNet++和PointCNN被提出以分層學習深度特征,增強局部模型結構的能力。WANG等提出的圖注意力卷積網絡GACNet (graph attention convolution network),能夠在點云端到端進行結構化特征學習。針對大規模三維點云,HU等提出了高效且輕量級的神經網絡架構RandLA-Net(random sampling local feature aggregation network);FAN等提出空間上下文特征學習模塊以實現點云語義分割網絡架構SCF-Net(spatial contextual feature network)。LAF-Net(local attention fusion network)則是能夠自適應融合低維特征和高維語義信息的局部注意力融合模型。在PointNet++基礎上,DSPNet++(deep scale purifier network++)是基于自注意力機制的特征提取模塊,直接處理原始點云進行端到端的點云分割。
盡管這些基于點的方法直接應用于原始點云,不會丟失任何信息,然而大多數方法需要采用鄰近搜索機制,固有地限制了這些方法的效率,且計算量大,無法部署在資源受限的設備上。
基于距離圖像,RangeNet++通過卷積神經網絡(convolutional neural network,CNN)實現了語義分割;RangeSeg(range-aware real time segmentation)獲得了準確的實例級分割結果。為了更好地處理3維點云并克服點密度不均勻和體素化步驟中信息丟失等限制,(AF)2-S3Net設計了一個端到端的編碼器-解碼器3D稀疏CNN。FIDNet(fully interpolation decoding network)設計了一種新的基于投影的激光雷達點云語義分割的神經網絡。為了利用不同視圖的優勢,基于多視圖融合方法,RPVNet(range-point-voxel fusion network)設計了一種新穎的距離-點-體素融合網絡;Hybrid CNN-LSTM(hybrid convolutional neural network and long short-term memory)結合了空間上下文和時間序列信息解決CNN網絡池化層丟失細節的缺點,由高效的點云特征處理方法和新穎的神經網絡結構組成。LIU等提出了解決弱監督多任務3D點云理解的統一框架WeakLabel3D-Net;基于點云局部幾何特征無監督生成聚類,且提出了一種基于學習的聚類級相似性預測網絡。
盡管這些方法實現了先進的性能,然而由于將點云轉換為結構化形式的量化存在不可避免的幾何信息丟失,且處理大規模點云時將導致消耗大量資源。如何設計一個模型能夠可靠、快速地實現激光雷達點云的語義分割仍然是一個有待解決的問題。
在構建語義地圖方面,Recurrent-OctoMap算法是融合語義特征的語義映射方法,使用循環神經網絡及單幀語義檢測,可以靈活地維護長期的語義地圖。SuMa++是SuMa算法的擴展方法,利用全卷積神經網絡有效提取語義信息,并將語義信息集成到基于面元的地圖表示上。SA-LOAM(semantic-aided LOAM)是基于LOAM的語義輔助激光SLAM算法,利用里程計和回環檢測中的語義信息,提高了定位精度,能有效地進行閉環檢測,在大規模場景中可構造全局一致語義地圖,其在KITTI序列13的語義分割結果如圖8所示。目前完備的語義輔助激光SLAM系統值得進一步的探索和嘗試。
圖8 SA-LOAM在KITTI序列13的語義分割結果,每種顏色代表不同的語義類別
05 基于多傳感器融合的3D激光SLAM算法
不同傳感器獲取環境觀測信息的處理方式不同,單一傳感器都存在著局限性問題,表2對比了單一傳感器優缺點。
單一傳感器都無法獨立完成所有場景下的全局地圖構建,而多傳感器的融合能夠解決單一傳感器的局限性,獲得更精確、高效、適應性強的SLAM效果。由于不同模態傳感器獲取到的數據,格式不同。多模態數據的處理和增強依然是當前基于多傳感器融合的3D激光任務的關鍵。
表2 單一傳感器優缺點對比
5.1 激光雷達與慣性測量單元融合
激光雷達和慣性測量單元(inertial measurement unit,IMU)的融合可以克服激光SLAM過程中激光雷達垂直分辨率低、更新速率低以及由運動引起的失真等問題。激光雷達與IMU的融合有緊耦合和松耦合兩種方式。緊耦合是通過聯合優化所有測量數據以在復雜變化的環境中獲得準確的位姿估計,但存在計算量大、實時性差等問題。松耦合是分別處理每個傳感器的測量數據,再進行融合的方式,計算量小、易于實現,但在定位精度上存在局限性。
HDL-Graph-SLAM算法融合了多種輸入,包括IMU、LiDAR傳感器以及GPS(global positioning system)信息,資源消耗小且精度較高。李帥鑫等提出一種LiDAR/IMU緊耦合的實時定位方法Inertial-LOAM,顯著降低連續配準誤差造成的誤差累計,提升了定位精度和實時性。YE等研究了LiDAR-IMU緊耦合的LIO-mapping算法,建圖精度提高了,但是緊耦合算法復雜度較高,后期融合其他傳感器較困難。ZHAO等研究了緊耦合激光慣性的LIOM (laser-inertial odometry and mapping)算法,實現了低漂移、強魯棒性的位姿估計。在LeGO-LOAM的基礎上,LIO-SAM(LiDAR inertial odometry via smoothing and mapping)應用因子圖框架融合了IMU預積分因子、激光里程計因子、GPS因子、閉環檢測因子,可以得到更好的精度和實時性、低漂移。LI等則研究了固態激光雷達與IMU的耦合方案,提出了用于實時激光慣性里程計和映射的新型傳感器融合方法LiLi-OM(livox LiDAR odometry and mapping)。
FAST-LIO(fast LiDAR-inertial odometry)緊耦合激光雷達和IMU測量,利用快速卡爾曼增益公式將計算復雜度從測量維度降低到狀態維度,計算效率顯著提高,但是系統只能在小型環境中工作。FAST-LIO2繼承了FAST-LIO緊耦合的融合框架,通過開發的ikd-tree(incremental k-d tree)數據結構,計算量顯著減少,提高了里程計和地圖繪制的準確性和魯棒性,算法框圖如圖9所示。在FAST-LIO2的基礎上,Faster-LIO使用增量體素作為點云空間數據結構,實現了輕量級緊耦合激光雷達慣性里程計,可用于固態激光雷達。LINS(LiDAR-inertial-SLAM)算法不同于采用以世界為中心的固定全局幀的狀態估計量的緊耦合方法,而使用機器人中心公式表示移動局部幀的狀態估計量,設計了迭代誤差狀態卡爾曼濾波器實現激光雷達和IMU的緊耦合。該方法在各種具有挑戰性的場景中,如無特征場景,也能夠實現魯棒和高效的算法性能,算法框圖如圖10所示。圖11為激光慣性耦合SLAM代表性結果。
綜上可知,激光慣性緊耦合研究主要通過激光雷達和IMU的緊耦合來提高建圖的精度、效率和魯棒性。但目前針對激光雷達與IMU的聯合標定方法還不成熟。
圖9 FAST-LIO2算法系統框圖
圖10 LINS算法系統框圖
圖11 激光慣性耦合SLAM代表性結果
5.2 激光雷達和視覺融合
激光SLAM局部定位精度高但全局定位能力差且對環境特征不敏感,而視覺SLAM全局定位能力好但局部定位相對激光雷達較差,兩者融合可以提高SLAM系統的精度和魯棒性。
ZHANG等研究了視覺和激光雷達里程計結合的通用框架V-LOAM(visual LOAM),如圖12所示,利用視覺里程計處理快速運動,而激光雷達里程計保證在不良照明條件下的低漂移和穩健性,算法結果低漂移、魯棒、快速,長期在KITTI數據集的平均平移和旋轉誤差基準測試上占據榜首,但沒有考慮閉環檢測和室外長距離環境中位姿軌跡與建圖的整體一致性。LVI-SAM(LiDAR-visual-inertialodometry via smoothing and mapping)是緊耦合激光雷達-視覺-慣性里程計的SLAM框架,由視覺慣性系統和激光雷達慣性系統組成,能夠構建完整且精度高的地圖,實時性和精度高,魯棒性強。SuperOdometry是高精度多模態傳感器融合框架,采用以IMU為中心的數據處理管道,結合了松耦合和緊耦合方法的優點,在感知退化的環境中也能實現穩健的狀態估計。R2 LIVE(robust,real-Time,LiDAR-inertial-visual tightly-coupled state estimator and mapping)、R3 LIVE(robust,real-time,RGB-colored,LiDAR-inertial-visual tightly-coupled state estimation and mapping)融合激光雷達、IMU和視覺傳感器的測量來實現穩健和準確的狀態估計,在各種具有挑戰性的情況下,甚至在具有大量運動物體和小激光雷達視場的狹窄隧道狀環境中,該方法也具有足夠的魯棒性。表3列出了激光雷達與慣性測量單元、視覺傳感器融合的一些算法。
圖12 V-LOAM算法系統框圖
表3 多傳感器緊耦合的一些算法
5.3 激光雷達和其他雷達融合
FRITSCHE等將毫米波雷達與激光雷達相結合以應對煙霧、霧或灰塵導致的低能見度惡劣環境,研究了毫米波雷達與激光雷達數據二值決策融合方法和加權融合方法,還探索了兩者掃描級和地圖級數據融合的可行性。CHAVEZ-GARCIA等研究了基于相機、毫米波雷達和激光雷達的多傳感器融合方案,首先利用激光雷達和相機圖像信息檢測人和車輛,再融合雷達檢測信息區分靜止目標和移動目標,實現目標的檢測與跟蹤,減小了誤檢概率。KIM等提出了一種基于相機、毫米波雷達、激光雷達和GPS的融合方案,首先利用相機和激光雷達構建地圖,然后利用GPS確定車輛位置,同時利用雷達檢測的目標運動數據更新地圖中的環境信息。崔巍杰選取了Google的Cartographer算法框架作為算法的主要框架,綜合考慮毫米波雷達與激光雷達的數據優缺點,融合二者的數據實現了環境適應性更高的SLAM算法。
06 3D激光SLAM算法的發展趨勢
6.1 多源信息融合
前已述及,單一傳感器均存在著一定局限性,無法滿足全場景下的SLAM算法。國內外學者為彌補單一傳感器缺陷,研究了多種多傳感器融合方案獲取高精度和高魯棒性的地圖,有與IMU融合的,有與視覺融合的,也有與其他類型如毫米波雷達融合的;還有多個激光雷達的融合,如M-LOAM(multi-LiDAR LOAM),許多基于各種融合方案的SLAM算法被提出,成果頗多。但相關研究仍是3D激光SLAM算法的研究熱點和發展趨勢之一,包括對融合層次的探索,魯棒適應性強且實時在線的多傳感器綜合校準、時間同步方法的開發,以及通用魯棒的幾何特征提取、數據關聯、耦合方法等。同時,基于點云的深度學習方法和基于非線性聯合優化的算法將加速多源信息融合技術的發展。
6.2 與深度學習的結合
3D激光SLAM算法與深度學習的結合能夠提高運行效率和魯棒性,其研究方向包括特征提取與匹配、語義SLAM、深度估計以及重定位等等仍是研究熱點。雖然越來越多的深度學習技術與成果應用于SLAM領域,已經有了許多相關研究工作,但現階段基于深度學習的SLAM有著明顯的局限性,通過深度學習構建的模型缺少直觀的物理意義;其次,深度學習技術往往需要大量的訓練數據,前期訓練周期長;結合深度學習的SLAM通常需要GPU,在計算資源有限的條件下無法應用。
6.3 應用場景的魯棒性
隨著機器人技術的迅速發展和應用領域的不斷深化,相應的應用場景亦不斷豐富和拓展,如空曠、復雜多變的或者動態的場景,也包括地面/空中機器人、汽車/AGV自動駕駛等領域,故越來越多的應用環境細分也有待挖掘。不同應用場景SLAM算法表現不近相同,如針對室內環境,LOAM算法缺乏聯合優化,實時姿態估計誤差大,π-LSAM(LiDAR smoothing and mapping with planes)改進了LOAM,在后端引入聯合優化并顯著降低優化算法計算復雜度。 面對一些具有挑戰性的復雜多變的應用場景,如變化的光照、劇烈運動、開闊場地或缺乏紋理的場景等,需要開發長期穩健安全的算法,提高算法魯棒性,許多方面如多機器人系統中全局定位與目標檢測、優化軌跡并創建全局一致性地圖的方法及動態場景或大場景的環境地圖構建方法都需要完善。同時立體匹配、3維場景重建、虛擬現實等計算機前沿應用中,3D激光SLAM算法也可起到關鍵作用。
6.4 探索通用框架和地圖表現形式
探索3D激光SLAM框架的通用性也是研究熱點,現有3D激光SLAM算法很多沿用了LOAM的框架;IMLS-SLAM算法描述了幀到模型的匹配框架;F-LOAM(fast LiDAR odometry and mapping)提出了一種結合特征提取、失真補償、姿態優化和映射的通用框架。更好的地圖表現形式如語義地圖,可以大幅提高機器人的自主理解力,亦可提高3D激光SLAM算法的魯棒性和精度。
6.5 傳感器和無線信號體制技術的影響
固態激光雷達性能高且成本極低,具有促進或徹底改變機器人行業的潛力,越來越受到關注。如LIN和ZHANG研究了適用于小視場和不規則采樣的固態激光雷達的SLAM算法框架Loam Livox,魯棒性強且實時運行。隨著硬件性能和通信功能不斷提高,SLAM技術嵌入式實現、移動設備傳感器和無線信號體制技術的參與必然也會影響3D激光SLAM算法的發展。如專用處理器(如HoloLens HPU)和一體化功能模組(如Tango模組)等將會大大降低現有硬件平臺的計算能力瓶頸和算法調試門檻。
07 結論
SLAM算法是移動機器人構建未知環境地圖并獲取其位姿信息進而實現自主移動的有效手段,可以輔助機器人執行路徑規劃、自主探索、導航等任務。隨著3D激光雷達向低成本、低功耗和高可靠性的應用的發展,3D激光雷達SLAM算法研究取得了豐富的成果和應用案例。本文從SLAM算法經典框架出發,總結分析了其前端、后端以及深度學習與多傳感器融合在激光SLAM中的研究現狀,系統闡述現在主流的3D激光SLAM算法原理及其存在的問題和不足,探討了3D激光SLAM算法的研究熱點和發展趨勢。
SLAM是多學科組合的算法和系統工程,包括硬件模型構建到系統集成,以及各個環節的多線程執行中的資源分配、數據優化以及建圖和定位的準確性都需要平衡和整合;關鍵模塊和硬件匹配的升級、場景或應用的豐富和拓展都會影響3D激光SLAM算法的發展。研究多源信息融合、與深度學習結合、動態以及其他場景的應用與拓展、SLAM算法通用框架、以及SLAM算法的嵌入式實現、移動傳感器和無線信號體制的技術參與是3D激光雷達SLAM算法的研究熱點和發展趨勢。
編輯:黃飛
評論
查看更多