劉 鑫,王 忠,秦明星
(火箭軍工程大學(xué) 基礎(chǔ)部,西安 710038)
同步定位與建圖(Simultaneous Localization and Mapping,SLAM)由SMITH 等[1]于1986 年提出,通過機(jī)器人自身所搭載的多傳感器獲取環(huán)境信息,并估計自身位姿完成地圖構(gòu)建,是實(shí)現(xiàn)機(jī)器人在未知環(huán)境下自主定位與導(dǎo)航的關(guān)鍵。目前,單機(jī)器人SLAM 技術(shù)已經(jīng)具有一定的魯棒性,且廣泛應(yīng)用于無人駕駛、機(jī)器人、無人機(jī)、增強(qiáng)現(xiàn)實(shí)(Augmented Reality,AR)等領(lǐng)域。但面對大規(guī)模環(huán)境建圖要求時,全局誤差會不斷累積,單機(jī)器人構(gòu)建地圖的精度會受到影響,甚至?xí)捎谟嬎懔窟^大導(dǎo)致建圖失敗。此外,在某些特定場景中,單機(jī)器人會出現(xiàn)意外故障,無法繼續(xù)完成建圖任務(wù)[2]。
隨著多智能體、人工智能等理論的發(fā)展,無人機(jī)、無人車和仿人機(jī)器人等各種形狀、不同能力的機(jī)器人正在被機(jī)器人研究人員們設(shè)計成能夠通過相互協(xié)作或與人類合作的方式完成復(fù)雜任務(wù)的智能體。近年來,各種機(jī)器人間的合作顯著增加,多機(jī)器人被廣泛應(yīng)用于醫(yī)療保健、倉儲物流、交通系統(tǒng)、應(yīng)急響應(yīng)系統(tǒng)、家務(wù)勞動等領(lǐng)域[3]。其中,多機(jī)器人協(xié)同SLAM 以多機(jī)器人系統(tǒng)架構(gòu)為基礎(chǔ),為系統(tǒng)內(nèi)每個單機(jī)器人分配任務(wù),利用多機(jī)通信使得機(jī)器人之間相互協(xié)調(diào)配合,共同完成復(fù)雜場景下的定位建圖需求。
由于單機(jī)器人SLAM 在任務(wù)中的局限性以及多機(jī)器人系統(tǒng)表現(xiàn)出的較強(qiáng)的靈活性和適應(yīng)性,使多機(jī)器人協(xié)同SLAM 受到越來越多的關(guān)注。目前,國內(nèi)外關(guān)于多機(jī)器人協(xié)同SLAM 的研究相對單機(jī)器人SLAM 較少,且多數(shù)以多機(jī)器人協(xié)同SLAM 的某一關(guān)鍵問題研究為主,系統(tǒng)的相關(guān)技術(shù)研究成果較少。本文結(jié)合近年來多機(jī)器人協(xié)同SLAM 的研究成果,對其實(shí)現(xiàn)過程中的關(guān)鍵問題進(jìn)行總結(jié)分析,并對多機(jī)器人協(xié)同SLAM 的發(fā)展趨勢進(jìn)行展望。
SLAM 問題自提出以來到現(xiàn)在已經(jīng)發(fā)展了三十多年,隨著計算機(jī)硬件和相應(yīng)傳感器的快速發(fā)展,使很多SLAM 算法理論得以實(shí)現(xiàn)。如目前單機(jī)器人常用的激光 SLAM 算法有 Gmapping[4]、Hector[5]、Cartographer[6],視 覺SLAM 算法有SVΟ-SLAM[7]、ΟRB-SLAM[8]等。在單機(jī)器人SLAM 算法的發(fā)展相對成熟下,研究人員們開始將研究方向轉(zhuǎn)移至多機(jī)器人SLAM 算法,以便迎合未來大規(guī)模場景建圖導(dǎo)航與定位的需求。
多機(jī)器人協(xié)同SLAM 實(shí)現(xiàn)的基礎(chǔ)是多機(jī)器人系統(tǒng)。多機(jī)器人系統(tǒng)通常采用集中式、分布式和分布-集中式3 種架構(gòu)。目前,多機(jī)器人系統(tǒng)的相關(guān)理論研究成果較為豐富,但實(shí)際開發(fā)和應(yīng)用中仍有很多問題有待解決[9]。多機(jī)器人協(xié)同SLAM 關(guān)鍵在于如何生成全局一致性地圖,其中又涉及機(jī)器人間的位姿估計、通信等問題。對于多機(jī)器人協(xié)同SLAM,目前已有一些解決方法被提出,如基于拓展卡爾曼濾波(EKF-SLAM)、基于粒子濾波(PF-SLAM)、圖優(yōu)化(Graph SLAM)等算法。
基于拓展卡爾曼濾波的SLAM 是協(xié)同SLAM 中應(yīng)用最廣泛的一種解決方法。2014 年,SCHMIDT[10]提出基于拓展卡爾曼濾波的多機(jī)器人視覺SLAM 系統(tǒng),在MonoSLAM 的基礎(chǔ)上引入機(jī)器人交互觀測機(jī)制,測量機(jī)器人間的相對位姿。通過拓展卡爾曼濾波不斷更新狀態(tài)估計,以允許多個異構(gòu)機(jī)器人進(jìn)行協(xié)同SLAM。2016 年,PIASCΟ 等[11]設(shè)計一種基于拓展卡爾曼濾波的傳感器融合方案,從分布式的測量數(shù)據(jù)中估計所有無人機(jī)的位置和方向,完成了具有多個無人機(jī)的分布式立體視覺協(xié)同定位。但拓展卡爾曼濾波是將非線性系統(tǒng)線性化來估計位姿,會出現(xiàn)不可避免的增量誤差。為了獲取理想的濾波效果和減少狀態(tài)估計誤差,2021 年,ZHΟU 等[12]提出一種含有遺傳因子的改進(jìn)拓展卡爾曼濾波算法,將當(dāng)前步驟的狀態(tài)更新拓展為當(dāng)前和之前兩個步驟的狀態(tài)更新,并引入遺傳因子來降低之前步驟狀態(tài)更新的影響,該算法提高了拓展卡爾曼濾波的定位精度。
拓展卡爾曼濾波在更新位姿狀態(tài)時需要計算雅可比矩陣,由于雅可比矩陣的計算復(fù)雜性,基于拓展卡爾曼濾波的SLAM 算法無法滿足實(shí)時性要求,不能生成大的環(huán)境地圖。為了解決該問題,研究人員引入了不計算雅可比矩陣的粒子濾波。2002 年,MΟNTEMERLΟ 等[13]提出Fast SLAM 算法,采用粒子濾波算法解決定位問題,采用拓展卡爾曼濾波算法解決地圖創(chuàng)建問題,實(shí)現(xiàn)了實(shí)時輸出柵格地圖。但粒子濾波中粒子重采樣的隨機(jī)性會導(dǎo)致粒子的多樣性散失,粒子耗散也隨著采樣次數(shù)不斷加劇,進(jìn)而影響地圖構(gòu)建精度。為了解決這一問題,2014 年,TANG 等[14]提出基于粒子群優(yōu)化的SLAM 算法,在采樣前調(diào)整粒子位置,增強(qiáng)建議分布,提高定位精度。2021 年,LIU[15]提出在標(biāo)準(zhǔn)粒子濾波中引入基于點(diǎn)線一致性的增量式地圖構(gòu)建方法,該方法保留了每個粒子中線段特征地圖的假設(shè),并對觀測信息引入重要性函數(shù)。在此基礎(chǔ)上,提取局部地圖的ΟRB 特征,尋找最佳匹配點(diǎn)并計算其點(diǎn)集的變換矩陣,從而完成高精度的地圖融合,實(shí)現(xiàn)多機(jī)器人協(xié)同SLAM。
圖優(yōu)化是一種平滑的SLAM 算法,可以將該算法分為前端和后端兩個部分。前端以機(jī)器人位姿為頂點(diǎn)、位姿關(guān)系為邊來構(gòu)建位姿圖,后端調(diào)整機(jī)器人位姿頂點(diǎn)來滿足位姿關(guān)系邊的約束。圖優(yōu)化SLAM通過最大后驗(yàn)概率估計將SLAM 問題轉(zhuǎn)化為最小二乘優(yōu)化問題,由于先前的所有狀態(tài)和觀測到的數(shù)據(jù)都參與了優(yōu)化[16],機(jī)器人姿態(tài)估計的精度有了明顯提高。2010 年,KIM 等[17]通過描述多個位姿圖之間的關(guān)系,提出增量式平滑和建圖(Incremental Smoothing and Mapping,ISAM)算法優(yōu)化不同的相對位姿圖,實(shí)現(xiàn)多機(jī)器人協(xié)同建圖。
近年來,隨著人工智能的深入研究,研究人員們將深度學(xué)習(xí)與SLAM 技術(shù)相結(jié)合,出現(xiàn)了基于深度學(xué)習(xí)的AI SLAM 算法[18-19]。目前,深度學(xué)習(xí)與SLAM 的結(jié)合主要體現(xiàn)在幀間估計[20]、閉環(huán)檢測[21]和語義地圖[22]3 個方面。結(jié)合了深度學(xué)習(xí)的幀間估計較傳統(tǒng)算法避免了復(fù)雜計算,更加簡潔;在閉環(huán)檢測方面,準(zhǔn)確度、魯棒性、智能化程度都比傳統(tǒng)閉環(huán)檢測方法高;融合了深度學(xué)習(xí)的語義地圖豐富了地圖信息,尤其是室內(nèi)SLAM 使物體標(biāo)簽化,極大地促進(jìn)了機(jī)器人和環(huán)境間的交互[23]。目前主流的多機(jī)器人協(xié)同SLAM 算法對比如表1 所示。
表1 主流的多機(jī)器人協(xié)同SLAM 算法對比Table 1 Comparison of mainstream multi-robot collaborative SLAM algorithms
目前,多機(jī)器人協(xié)同SLAM 是建立在多機(jī)器人系統(tǒng)以及單機(jī)器人執(zhí)行建圖任務(wù)的基礎(chǔ)上。因此,根據(jù)單機(jī)器人自身所搭載的傳感器不同,可以將多機(jī)器人協(xié)同SLAM 主要分為激光協(xié)同SLAM、視覺協(xié)同SLAM 和激光視覺融合SLAM 三大類。
當(dāng)前,多機(jī)器人激光協(xié)同SLAM 框架主要基于單機(jī)器人激光SLAM 進(jìn)行建圖任務(wù),并保證所創(chuàng)建局部地圖的精度。通過多機(jī)器人系統(tǒng)架構(gòu)進(jìn)行通信,對局部地圖進(jìn)行關(guān)聯(lián)匹配,閉環(huán)檢測。最終進(jìn)行地圖融合,并對融合后的全局地圖進(jìn)行優(yōu)化。多機(jī)器人激光協(xié)同SLAM 框架如圖1 所示。
圖1 多機(jī)器人激光協(xié)同SLAM 框架Fig.1 Multi-robot laser collaborative SLAM framework
在單機(jī)器人激光SLAM 中,2D/3D 激光雷達(dá)作為主要傳感器。為了保證建圖精度,一般還會搭載慣性測量單元(Inertial Measurement Unit,IMU)、里程計等傳感器輔助激光雷達(dá)進(jìn)行多傳感器數(shù)據(jù)融合。通常在簡單的室內(nèi)場景下采用2D 激光雷達(dá),復(fù)雜的室外場景采用3D 激光雷達(dá),結(jié)合IMU 計算角度信息、里程計計算位置信息來完成單機(jī)器人SLAM。
如圖1 所示,可將激光SLAM 主要分為掃描匹配、后端優(yōu)化、閉環(huán)檢測3 個關(guān)鍵模塊。掃描匹配是通過相鄰幀之間的關(guān)系在已知前一幀位姿的條件下估計當(dāng)前幀位姿,進(jìn)而生成短時間內(nèi)的位姿和地圖。目前常用的掃描匹配算法有迭代最近點(diǎn)(Iterative Closest Point,ICP)、相關(guān)性 掃描匹 配(Correlation Scan Match,CSM)、正態(tài)分布變換(Normal Distribute Transformation,NDT)等[24-26]。后端優(yōu)化主要是解決不可避免的局部誤差累積,目前以基于濾波的優(yōu)化和基于圖優(yōu)化的后端優(yōu)化算法為主。閉環(huán)檢測是對激光數(shù)據(jù)掃描匹配的相似性進(jìn)行檢測,判斷當(dāng)前所處位置是否為曾經(jīng)訪問過的位置,從而對當(dāng)前構(gòu)建的地圖進(jìn)行優(yōu)化。目前主要有幀與幀之間檢測、幀與子圖之間檢測、子圖與子圖之間檢測等方法。
自1987 年SMITH 等[27]引出SLAM 概念 并基于擴(kuò)展卡爾曼濾波提出EKF-SLAM 算法以來,激光SLAM 算法的研究便被越來越多的研究人員所關(guān)注。2016 年,谷歌公司提出新的開源SLAM 算法Cartographer[6],融合IMU、里程計等傳感器數(shù)據(jù),不斷更新優(yōu)化前端掃描匹配所創(chuàng)建的子圖,后端加入閉環(huán)檢測并對子圖再次優(yōu)化,得到全局地圖。2020 年,仇昌成[28]在谷歌公司的Cartographer 算法基礎(chǔ)上,提出基于ΟctoMap 的多機(jī)器人SLAM 算法。該算法首先保存單機(jī)器人在給定的環(huán)境中所創(chuàng)建的子地圖序列,通過ΟctoMap 關(guān)聯(lián)算法對子圖進(jìn)行數(shù)據(jù)關(guān)聯(lián)和子地圖的閉環(huán)檢測;然后選取子地圖中匹配特征數(shù)量最多的變換矩陣作為單機(jī)器人之間的位姿變換,選擇全局坐標(biāo)系,提取多機(jī)器人的正確閉環(huán),創(chuàng)建多機(jī)器人的全局優(yōu)化函數(shù);最后基于L-M 算法求解全局優(yōu)化函數(shù)的最優(yōu)解,得到子地圖之間的最優(yōu)變換矩陣,通過ΟctoMap 融合算法創(chuàng)建全局地圖。
目前,將成熟的單機(jī)器人激光SLAM 算法拓展到多個機(jī)器人來解決多機(jī)器人協(xié)同激光SLAM 問題是常見的解決方案。2019 年,ZHANG 等[29]提出一種僅基于3D 激光雷達(dá)傳感器的多車協(xié)同SLAM 算法。首先使單機(jī)器人通過LΟAM-SLAM[30]算法生成自身局部地圖;其次提取觀察幀的地面特征,生成多個特征幀對兩個機(jī)器人經(jīng)過的相同場景進(jìn)行識別;最后從所提取的相同場景區(qū)域的所有幀對中提取點(diǎn)云,為每個單機(jī)器人建立子圖,計算位姿變換矩陣,創(chuàng)建全局一致性地圖。
相對于激光雷達(dá),相機(jī)以小體積、低功耗、獲取信息豐富等特點(diǎn)已成為SLAM 問題的主要傳感器之一。目前,視覺協(xié)同SLAM 的主體實(shí)現(xiàn)框架和激光協(xié)同SLAM 大致相同,主要基于單機(jī)器人視覺SLAM 以及多機(jī)器人系統(tǒng)來完成多機(jī)器人視覺協(xié)同SLAM。多機(jī)器人視覺協(xié)同SLAM 的框架如圖2 所示。
圖2 多機(jī)器人視覺協(xié)同SLAM 框架Fig.2 Multi-robot visual collaborative SLAM framework
在單機(jī)器人視覺SLAM 中,相機(jī)作為主要傳感器。根據(jù)不同的相機(jī)特點(diǎn),可以將視覺SLAM 分為僅搭載一個相機(jī)的單目視覺SLAM、搭載多個相機(jī)的立體視覺SLAM 和搭載深度相機(jī)的RGB-D SLAM[31]。相對激光SLAM 而言,視覺SLAM 對環(huán)境的描述更為精細(xì),但將相機(jī)作為唯一的傳感器仍會受到復(fù)雜環(huán)境的影響。為了達(dá)到更好的建圖與定位效果,研究人員們在視覺SLAM 中也融合了IMU、里程計等傳感器數(shù)據(jù),提高了視覺SLAM 在面對復(fù)雜環(huán)境時的魯棒性[32-33]。
如圖2 所示,可將視覺SLAM 主要分為視覺前端、后端優(yōu)化和回環(huán)檢測三大部分。視覺前端主要分為直接法和特征點(diǎn)法,由于直接法很難匹配多機(jī)器人相機(jī)間的像素建立對應(yīng)關(guān)系,因此在多機(jī)器人視覺SLAM 中,視覺前端一般選擇特征點(diǎn)法,包含特征檢測與提取、特征匹配和幀間配準(zhǔn)。目前主流的特征提取方案主要有尺度不變特征變換(Scale-Invariant Feature Transform,SIFT)、加速穩(wěn)健特征(Speeded Up Robust Features,SURF)、ΟRB(Οriented FAST and Rotated BRIEF)特征提?。?4]等。特征匹配是用來建立相鄰幀之間的相同空間點(diǎn)線特征的對應(yīng)關(guān)系,一般通過快速近似最近鄰搜索庫(Fast Library for Approximate Nearest Neighbors,F(xiàn)LANN)或K 最近鄰(K-Nearest Neighbors,KNN)等算法進(jìn)行匹配,對于誤匹配或匹配失敗的特征點(diǎn)可以通過隨機(jī)抽樣一致(Random Sample Consensus,RANSAC)算法進(jìn)行濾除[35]。幀間配準(zhǔn)通過相鄰幀之間配對成功的特征點(diǎn)來初步確定相鄰幀的相對運(yùn)動,通常選擇迭代最近點(diǎn)(Iterative Closest Point,ICP)算法對幀間運(yùn)動關(guān)系進(jìn)行求解。
在后端優(yōu)化方面,視覺SLAM 一般也是基于濾波算法和基于圖優(yōu)化兩種方法進(jìn)行優(yōu)化處理。由于時間和幀數(shù)的不斷增加,視覺前端的累計誤差也會隨之增長,這將使得SLAM 的效果很差,無法建立全局統(tǒng)一的地圖。回環(huán)檢測可以在當(dāng)前數(shù)據(jù)和歷史數(shù)據(jù)之間建立關(guān)聯(lián),通過將當(dāng)前關(guān)鍵幀和歷史所有幀進(jìn)行比較,保證了在一定時間內(nèi)位姿估計和所建地圖的準(zhǔn)確性。同時,這也使得多機(jī)器人協(xié)同SLAM在面臨大規(guī)模地圖環(huán)境時,檢測時間會很長,進(jìn)而導(dǎo)致建圖效率過低等問題。在回環(huán)檢測對整體SLAM效率和效果的影響問題上,有許多科研工作者設(shè)計了不同的改進(jìn)算法[36-38],這對多機(jī)器人視覺協(xié)同SLAM 有較大幫助。
2007 年,DAVISΟN 等[39]提出MonoSLAM 算法,該算法將單目相機(jī)和拓展卡爾曼濾波優(yōu)化算法相結(jié)合,該算法的提出拓展了視覺SLAM 的解決方案。與激光協(xié)同SLAM 相同,多機(jī)器人視覺協(xié)同SLAM的算法多數(shù)是對某種單機(jī)器人視覺SLAM 算法的拓展延伸。2019 年,SCHMUCK 等[40]提出的CCMSLAM 多機(jī)器人協(xié)同SLAM 框架便是基于單機(jī)器人的視覺SLAM 算法ΟRB-SLAM 而實(shí)現(xiàn)的視覺協(xié)同SLAM 算法。該算法系統(tǒng)框架由一個服務(wù)器和若干單機(jī)器人子端構(gòu)成,單機(jī)器人僅保留基本的視覺里程計,以保證能夠在環(huán)境中獨(dú)立建圖和定位,單機(jī)器人和服務(wù)器之間通過無線網(wǎng)絡(luò)進(jìn)行通信。在通信期間,單機(jī)器人子端負(fù)責(zé)將所建立的地圖信息發(fā)送至服務(wù)器端,單機(jī)器人只保存最近的N個關(guān)鍵幀,由服務(wù)器存儲管理每個單機(jī)器人子端的歷史地圖信息。同時,服務(wù)器也向單機(jī)器人子端發(fā)送地圖信息,以便子端重復(fù)到達(dá)某一位置時,為單機(jī)器人子端提供歷史地圖信息,進(jìn)一步優(yōu)化本地地圖。最終由服務(wù)器完成相對位姿確定、地圖融合、冗余檢測和全局優(yōu)化、生成全局一致性地圖等工作。
目前,多機(jī)器人協(xié)同SLAM 多數(shù)僅利用激光或視覺數(shù)據(jù)。由于單一的激光或視覺SLAM 存在一定的局限性,如激光SLAM 在又長又直的長廊中或是動態(tài)變化大的環(huán)境中容易發(fā)生定位丟失,視覺SLAM 對光照的依賴度較高以致于在暗處或無紋理區(qū)域無法進(jìn)行工作,這使得多機(jī)器人SLAM 在面對大規(guī)模動態(tài)環(huán)境時呈現(xiàn)出較低的效率和魯棒性,因此將能夠直接檢測障礙物的激光SLAM 和能夠從圖像中提取豐富信息的視覺SLAM 相融合,以實(shí)現(xiàn)高性能的多機(jī)器人協(xié)同SLAM是一個較好的解決方法。
在單機(jī)器人實(shí)現(xiàn)激光和視覺融合SLAM 算法中:2006 年,NEWMAN 等[41]利用SIFI 特征實(shí)現(xiàn)閉環(huán)檢測,然后觸發(fā)基于激光的掃描匹配來實(shí)現(xiàn)SLAM,但該算法存在計算成本高的缺點(diǎn);2015 年,ZHANG等[42]開發(fā)了一個將視覺和激光結(jié)合的通用框架,該框架首先通過視覺里程計估計自身位姿并配準(zhǔn)來自激光雷達(dá)獲取的點(diǎn)云數(shù)據(jù),再利用基于激光雷達(dá)里程計細(xì)化位姿估計和點(diǎn)云配準(zhǔn)。
與單一的激光或視覺協(xié)同SLAM 算法相似,多機(jī)器人融合協(xié)同SLAM 是基于單機(jī)器人融合SLAM來實(shí)現(xiàn)的。2019 年,CHEN 等[43]提出一個多機(jī)器人融合SLAM 算法。該算法首先將激光雷達(dá)前端獲取的激光數(shù)據(jù)進(jìn)行幀間掃描匹配,生成位姿圖并基于滑動窗口對其優(yōu)化和映射;然后將視覺所獲取的信息進(jìn)行閉環(huán)檢測并發(fā)送閉環(huán)信號至激光雷達(dá)前端,激光數(shù)據(jù)對該視覺閉環(huán)進(jìn)行判斷和修正,以實(shí)現(xiàn)高效的環(huán)路檢測和閉合;最后通過局域網(wǎng)使得多個機(jī)器人能夠及時傳輸數(shù)據(jù),將單個位姿圖轉(zhuǎn)換為同一坐標(biāo)系下對不同機(jī)器人間的位姿圖建立約束連接,通過最小二乘法對其進(jìn)行優(yōu)化,便得到了由多機(jī)器人構(gòu)建的全局地圖。
結(jié)合多機(jī)器人激光協(xié)同SLAM、多機(jī)器人視覺協(xié)同SLAM 以及多機(jī)器人激光視覺融合協(xié)同SLAM 的實(shí)現(xiàn)過程和主傳感器差異,3 種算法在對環(huán)境的適應(yīng)性、計算量、建圖質(zhì)量等方面都有所不同。表2 列出了3 種主傳感器下多機(jī)器人協(xié)同SLAM 算法的性能比較。
表2 3 種主傳感器下多機(jī)器人協(xié)同SLAM 算法的性能比較Table 2 Performance comparison of multi-robot cooperative SLAM algorithms under three main sensors
多機(jī)器人協(xié)同SLAM 相對單機(jī)器人SLAM 有著效率高、容錯性強(qiáng)、精準(zhǔn)度高等優(yōu)勢,但同時也面臨一些問題和挑戰(zhàn)。在多機(jī)器人協(xié)同SLAM 中,單機(jī)器人在構(gòu)建局部地圖的同時需要整合所有可用數(shù)據(jù)來輔助自己在全局環(huán)境中進(jìn)行精準(zhǔn)定位,通過多機(jī)器人系統(tǒng)之間的通信進(jìn)行數(shù)據(jù)關(guān)聯(lián),相互協(xié)調(diào)構(gòu)建一致的全局地圖。所涉及的架構(gòu)選擇和任務(wù)分配、相對位姿確定、通信和數(shù)據(jù)關(guān)聯(lián)、地圖融合和后端優(yōu)化等都是多機(jī)器人協(xié)同SLAM 的關(guān)鍵問題。
對于多機(jī)器人協(xié)同建圖,首先需要對總體任務(wù)進(jìn)行了解,根據(jù)單機(jī)器人的整體性能,選擇適合本次任務(wù)的多機(jī)器人系統(tǒng)。多機(jī)器人系統(tǒng)是多機(jī)器人協(xié)同SLAM 的基礎(chǔ),多機(jī)器人系統(tǒng)需要根據(jù)環(huán)境約束、任務(wù)規(guī)模等因素來選擇不同的架構(gòu),從而更好地實(shí)現(xiàn)任務(wù)分配和協(xié)同作業(yè)。目前,根據(jù)不同的控制方式,可以將多機(jī)器人系統(tǒng)架構(gòu)分為集中式、分布式、分布-集中式3 種,如圖3 所示。
圖3 多機(jī)器人系統(tǒng)架構(gòu)Fig.3 Multi-robot system architecture
1)集中式,通常采取服務(wù)端和客戶端模式,設(shè)置計算力較高的中央控制端作為服務(wù)端,單機(jī)器人作為客戶端。單機(jī)器人與中央控制端通過局域網(wǎng)或移動網(wǎng)進(jìn)行通信,單機(jī)器人傳輸自身獲取的環(huán)境信息給中央控制端,中央控制端給單機(jī)器人發(fā)布任務(wù)和其他指令。中央控制端可以根據(jù)系統(tǒng)中所有單機(jī)器人觀測到的環(huán)境信息構(gòu)建全局地圖,由于所有的任務(wù)都由中央控制端處理和發(fā)布,單機(jī)器人只需完成自身SLAM 問題即可,單個機(jī)器人成本低,執(zhí)行效率高[44-45]。但為了保證機(jī)器人與中央控制端之間必要的數(shù)據(jù)傳輸,集中式要求單個機(jī)器人必須在中央控制端的通信范圍內(nèi)開展建圖任務(wù)。隨著云計算、5G通信等技術(shù)的發(fā)展,將中央控制計算單元設(shè)在云端,通過全覆蓋的5G 網(wǎng)絡(luò)達(dá)到實(shí)時通信的集中式架構(gòu)也正在研究中[46]。
2)分布式,該系統(tǒng)中的每個機(jī)器人在建立自身局部地圖的同時,還可以與系統(tǒng)中其他機(jī)器人進(jìn)行通信。在通信過程中,選擇計算力較強(qiáng)的單機(jī)器人來融合系統(tǒng)中其他機(jī)器人的局部地圖,從而生成全局地圖[47-49]。相對集中式而言,雖然分布式系統(tǒng)的魯棒性更強(qiáng),不受通信范圍的約束,但實(shí)際應(yīng)用在多機(jī)器人協(xié)同SLAM 中也更為復(fù)雜。分布式要求系統(tǒng)為每個擁有不同計算力的機(jī)器人分配不同任務(wù),計算力的不同也影響到單機(jī)器人間所交流的信息量大小不一[50-51]。因此,分布式系統(tǒng)中兩兩機(jī)器人間的通信負(fù)載也不盡相同,這便要求分布式系統(tǒng)中的通信帶寬需設(shè)置在一個合適的范圍內(nèi)。
3)分布-集中式,可以將系統(tǒng)中的機(jī)器人進(jìn)行分組,在分組內(nèi)采用分布式控制方式生成局部地圖,之后通過中央管理模塊生成全局地圖?;蛘咴谕ㄐ欧秶鷥?nèi)選擇集中式控制方式,當(dāng)超出通信范圍時轉(zhuǎn)換為分布式控制方式,以實(shí)現(xiàn)多機(jī)器人系統(tǒng)架構(gòu)的穩(wěn)定性。分布-集中式既具備集中與分布兩種系統(tǒng)的優(yōu)勢,又保持了一致性[52]。在許多分布-集中式的架構(gòu)中,中央管理模塊承擔(dān)較多的計算量,在給子端發(fā)送命令時也會將部分任務(wù)分配給單機(jī)器人來處理[53-54]。
多機(jī)器人間的通信對多機(jī)器人協(xié)同SLAM 是至關(guān)重要的,機(jī)器人之間的數(shù)據(jù)可以通過當(dāng)前任務(wù)所處環(huán)境中穩(wěn)定可用的通信信道進(jìn)行共享處理。對某一環(huán)境而言,當(dāng)前通信的帶寬和覆蓋范圍代表著該環(huán)境下的通信質(zhì)量和穩(wěn)定性。因此,多機(jī)通信的帶寬和覆蓋范圍決定了多機(jī)器人協(xié)同SLAM 的質(zhì)量。數(shù)據(jù)的交換共享可以是機(jī)器人與機(jī)器人(分布式)或中央控制端(集中式)之間的原始數(shù)據(jù),如雷達(dá)、攝像頭里程計等傳感器直接獲取的數(shù)據(jù)[55]。但在多數(shù)情況下,交換的數(shù)據(jù)信息是機(jī)器人所構(gòu)建的局部地圖、當(dāng)前位姿等已加工數(shù)據(jù)[56],在這種情況下所交換的數(shù)據(jù)量也會成倍增長,對帶寬和通信范圍有了更高的要求。
目前,為解決基本的帶寬需求問題,MΟHANARAJAH等[57]提出在機(jī)器人間只發(fā)送壓縮的關(guān)鍵幀和更新的關(guān)鍵幀位姿,GUPTA 等[58]建議通過改進(jìn)協(xié)議和路由的方法來滿足帶寬需求,MARCΟTTE 等[59]還提出通過機(jī)器人決策交換數(shù)據(jù)的優(yōu)化算法來動態(tài)地適應(yīng)當(dāng)前帶寬的解決方法。在現(xiàn)實(shí)的環(huán)境中,多機(jī)器人協(xié)同工作期間,機(jī)器人可能會出現(xiàn)故障、被攻擊、超出通信范圍等情況,從而出現(xiàn)網(wǎng)絡(luò)被分割等問題。在多機(jī)器人系統(tǒng)SLAM 中所涉及的通信延遲、中斷容忍度、網(wǎng)絡(luò)動態(tài)性、無縫切換、通信安全等問題也將在接下來的研究中進(jìn)一步考慮。
數(shù)據(jù)關(guān)聯(lián)一直是實(shí)現(xiàn)SLAM 的關(guān)鍵問題,在多機(jī)器人協(xié)同SLAM 中尤為重要。成功的數(shù)據(jù)關(guān)聯(lián)需要將正確的測量和正確的狀態(tài)相關(guān)聯(lián),初始化新的軌跡,檢測和拒絕虛假的測量[60]。數(shù)據(jù)關(guān)聯(lián)問題中一種常見的解決方案為最大似然估計[61],在給定位姿和基準(zhǔn)標(biāo)記的初始估計的情況下,計算最大似然數(shù)據(jù)關(guān)聯(lián)集合,并隨著機(jī)器人狀態(tài)改變不斷更新。另一種解決方案是概率數(shù)據(jù)關(guān)聯(lián),采用多假設(shè)的方法,保留并關(guān)聯(lián)多個概率數(shù)據(jù),形成并計算多個假設(shè)分支的得分,在多個假設(shè)分支中選擇最高得分的分支[62]。
在單機(jī)器人SLAM 中,單機(jī)器人依據(jù)自身搭載的一系列傳感器獲取自身位姿,創(chuàng)建局部坐標(biāo)系和局部地圖。當(dāng)單機(jī)器人進(jìn)行地圖更新時,由于傳感器誤差和環(huán)境的不確定性會造成自身位姿的不確定。在多機(jī)器人協(xié)同SLAM 中,多機(jī)器人系統(tǒng)需要對單機(jī)器人當(dāng)前所處環(huán)境及位姿進(jìn)行分析,并計算多機(jī)器人系統(tǒng)中每個機(jī)器人的相對位姿。由于單機(jī)器人本身存在一定的位姿不確定性,再加上機(jī)器人系統(tǒng)中存在多個機(jī)器人,因此相對位姿的確定是非常困難的。
在解決多機(jī)器人相對位姿問題時,通常有以下兩種方案:
1)依賴于機(jī)器人之間的直接相對位姿約束,假設(shè)機(jī)器人能夠共享它們之間的3D 點(diǎn)云數(shù)據(jù),或者識別環(huán)境中的基準(zhǔn)標(biāo)記,通過雷達(dá)、攝像頭等傳感器對彼此的姿態(tài)進(jìn)行直接觀察估計[63]。在任務(wù)中與其他機(jī)器人相遇時,推測彼此在當(dāng)前時間下的相對姿態(tài)并相應(yīng)地更新它們的位姿估計[64]。2018 年,TSΟUKALAS 等[65]提出在無人機(jī)頂端添加一個由17 個小平面組成的菱形基準(zhǔn)標(biāo)記,該標(biāo)記可以被無人機(jī)所搭載的視覺傳感器所識別,進(jìn)而在無人機(jī)之間優(yōu)化更新相對位姿的估計。
2)依賴于機(jī)器人之間的間接相對位姿約束,當(dāng)多個機(jī)器人觀察到同一場景時會形成閉環(huán)約束[66]。此外,可以在不同時間多個機(jī)器人之間建立該約束,不需要機(jī)器人之間的直接視線和相遇。2018 年,CHEN 等[50]通過計算當(dāng)前關(guān)鍵幀的視覺單詞,并在由DBoW2 構(gòu)成的視覺詞匯樹中獲取與當(dāng)前關(guān)鍵幀相似的候選幀。對匹配度較高的候選幀進(jìn)行Sim3變換,RANSAC 算法迭代計算相似變換,將回環(huán)檢測的思想應(yīng)用于幀間匹配,進(jìn)而估計相對位姿。
在多機(jī)器人協(xié)同SLAM 中,單機(jī)器人在給定的任務(wù)范圍內(nèi)建立局部地圖,協(xié)同SLAM 需要將所有單機(jī)器人建立的局部地圖融合起來生成全局地圖。但由于每個單機(jī)器人在生成局部地圖時的坐標(biāo)系不統(tǒng)一,因此不能對局部地圖直接進(jìn)行合并。針對該問題通常有以下兩種情況:
1)已知初始相對位姿的情況:直接利用初始位姿關(guān)系得到局部地圖之間的變換關(guān)系,但該方法的誤差會隨著時間不斷累積[67]。為了使誤差盡可能最小,通過梯度下降法尋找最優(yōu)變換,或者通過粒子濾波算法進(jìn)行優(yōu)化[68]。
2)未知初始相對位姿的情況:通過機(jī)器人計算機(jī)器人間的直接相對位姿約束,進(jìn)而得到所生成局部地圖之間的變換關(guān)系[69]。另外,在單機(jī)器人所生成的局部地圖間進(jìn)行重疊檢測,尋找重疊區(qū)域,從而得到變換關(guān)系[70]。并且,基于點(diǎn)、線或者其他特征進(jìn)行匹配,對匹配的特征進(jìn)行可靠性分析,以此來計算局部地圖之間的變換關(guān)系[71]。
在多機(jī)器人協(xié)同SLAM 中,后端優(yōu)化是極其重要的環(huán)節(jié),主要根據(jù)多機(jī)器人協(xié)同SLAM 前端所構(gòu)建的相關(guān)約束,形成多機(jī)器人協(xié)同SLAM 的全局誤差目標(biāo)函數(shù)。接著通過優(yōu)化算法對目標(biāo)函數(shù)求出最優(yōu)解,將全局誤差降至最小,并創(chuàng)建全局一致性地圖。
根據(jù)后端優(yōu)化時算法的不同,多機(jī)器人SLAM算法主要分為基于濾波器和基于圖優(yōu)化的算法。在基于濾波器的算法方面,2006 年,ZHΟU 等[72]基于卡爾曼濾波對機(jī)器人的位姿和標(biāo)志點(diǎn)信息進(jìn)行濾波,提出EKF-SLAM 算法來解決多機(jī)器人建圖問題。由于該算法需要不斷更新協(xié)方差矩陣(其計算量與特征點(diǎn)數(shù)量成正比)來表示機(jī)器人之間相對位姿的不確定性,當(dāng)面臨復(fù)雜環(huán)境時,EKF-SLAM 算法的計算量會比較大。2005 年,THRUN 等[73]提出基于稀疏特征的擴(kuò)展信息濾波算法SEIF-SLAM,采用可加性的信息矩陣替換協(xié)方差矩陣來降低多機(jī)器人SLAM 的計算 復(fù)雜性。2006 年,HΟWARD[74]在THRUN 等研究基礎(chǔ)上提出基于Rao-Blackwellised粒子濾波的多機(jī)器人SLAM 算法,假設(shè)每個機(jī)器人在執(zhí)行任務(wù)時至少相遇一次,相遇時測量其相對位姿,通過兩個隊(duì)列來記錄機(jī)器人相遇前后的觀測數(shù)據(jù)和運(yùn)動數(shù)據(jù)并創(chuàng)建全局地圖。但基于濾波的SLAM 算法計算量比較大,特別是在復(fù)雜環(huán)境下對機(jī)器人的計算能力有較高要求?;趫D優(yōu)化的SLAM 算法以計算量小、精準(zhǔn)度高等優(yōu)點(diǎn)逐漸被廣大研究人員所關(guān)注。2016 年,DEUTSCH 等[75]提出了單機(jī)器人圖優(yōu)化SLAM 算法獲取局部位姿圖,通過軟件進(jìn)行聚合生成全局位姿圖的多機(jī)器人協(xié)同SLAM 框架,該框架可以與各種SLAM 算法協(xié)同工作。同年,CAMPΟS 等[76]將光學(xué)軌跡與機(jī)器人的度量軌跡相融合,并進(jìn)行圖優(yōu)化,基于多機(jī)器人對水下環(huán)境進(jìn)行了3D 建圖。2020 年,BΟNIN-FΟNT 等[77]提出在單個基于姿態(tài)的圖中連接不同機(jī)器人在相同場景下的多條軌跡,然后通過HALΟC 回環(huán)檢測算法在不同機(jī)器人的軌跡圖像之間尋找循環(huán)閉合,并向全局圖添加附加約束,基于圖優(yōu)化的算法實(shí)現(xiàn)了多機(jī)器人水下協(xié)同SLAM。
當(dāng)前,對多機(jī)器人協(xié)同SLAM 而言,由于發(fā)展時間稍短,其算法的成熟度仍不如單機(jī)器人SLAM。在多機(jī)器人協(xié)同SLAM 的關(guān)鍵問題上,研究人員展開了系列研究,使多機(jī)器人協(xié)同SLAM 較前些年有了一定的進(jìn)步。結(jié)合目前研究現(xiàn)狀,筆者認(rèn)為多機(jī)器人協(xié)同SLAM將在以下6 個方面做進(jìn)一步的研究與探索:
1)異構(gòu)機(jī)器人協(xié)同技術(shù)下的多種地圖合并。在未知的復(fù)雜環(huán)境中,單純地依靠一種類型的機(jī)器人儼然不能滿足任務(wù)需要。如只通過無人機(jī)對地面環(huán)境進(jìn)行建圖時,對環(huán)境的描述是相對粗糙的,若將地面機(jī)器人與無人機(jī)相結(jié)合,其整體對環(huán)境的描述將會更加細(xì)膩。機(jī)器人多樣化是多機(jī)器人的發(fā)展趨勢。對于不同類型的機(jī)器人,所生成的地圖類型也不盡相同,如柵格地圖、拓?fù)涞貓D、語義地圖等。如何融合多種機(jī)器人的傳感器數(shù)據(jù)和多種類型的地圖,創(chuàng)建一致性的環(huán)境地圖是多機(jī)器人協(xié)同SLAM未來要解決的關(guān)鍵問題。
2)多樣性環(huán)境下穩(wěn)定且高效的通信技術(shù)。在多機(jī)器人協(xié)同SLAM 中,容錯性仍是一個關(guān)鍵問題,持續(xù)且良好的通信保障能夠有效提高協(xié)同SLAM 的容錯性。環(huán)境的多樣性決定了通信介質(zhì)的多樣性,如水下環(huán)境中的高干擾和較差的信號傳播條件,直接影響了通信的可靠性。如何在多樣性的環(huán)境下保持良好的通信,以及在數(shù)據(jù)丟失的情況下建立高質(zhì)量的地圖對于多機(jī)器人協(xié)同SLAM 而言是一項(xiàng)挑戰(zhàn)。
3)大范圍未知環(huán)境條件下的協(xié)同SLAM 算法。當(dāng)前,許多協(xié)同SLAM 算法在創(chuàng)建全局一致性地圖時通常是對已完成的局部地圖進(jìn)行融合,這導(dǎo)致了在特征類似或缺失的環(huán)境中算法表現(xiàn)較差。在地圖融合的過程中考慮加入時間戳機(jī)制或一定時間內(nèi)進(jìn)行一次局部地圖融合,有利于在動態(tài)的環(huán)境中進(jìn)行SLAM。大范圍環(huán)境中進(jìn)行SLAM 對機(jī)器人間的協(xié)調(diào)而言是具有挑戰(zhàn)性的,尤其對于多機(jī)器人系統(tǒng)架構(gòu)。將協(xié)同SLAM 應(yīng)用場景由小范圍靜態(tài)轉(zhuǎn)變?yōu)榇蠓秶鷦討B(tài)既是多機(jī)器人協(xié)同SLAM 的發(fā)展趨勢,也是一大挑戰(zhàn)。
4)不同機(jī)器人數(shù)量的彈性變換協(xié)同技術(shù)。目前多數(shù)多機(jī)器人協(xié)同SLAM 算法是在某一特定場景下執(zhí)行,其機(jī)器人的數(shù)量也是提前設(shè)定好的,這樣的協(xié)同SLAM 算法面對不同環(huán)境時會很大程度影響整體效果和效率。因此,在設(shè)計協(xié)同SLAM 算法時,考慮算法中機(jī)器人的數(shù)量可以隨著環(huán)境變化而彈性增減,能夠提高算法的魯棒性和效率。
5)深度學(xué)習(xí)與語義SLAM。隨著深度學(xué)習(xí)和計算機(jī)硬件的快速發(fā)展,將目標(biāo)檢測等算法應(yīng)用在機(jī)器人上已經(jīng)成為現(xiàn)實(shí)。將目標(biāo)識別檢測與語義SLAM 相結(jié)合,使得機(jī)器人對環(huán)境中的物體標(biāo)簽化,一方面可以輔助機(jī)器人確定自身位姿,另一方面也可以加強(qiáng)機(jī)器人與環(huán)境中物體的交互性。
6)統(tǒng)一的多機(jī)器人協(xié)同SLAM 性能評估技術(shù)。在多機(jī)器人協(xié)同SLAM 得到越來越多科研工作者關(guān)注的情況下,協(xié)同SLAM 的解決方案也在不斷增長。因此,亟需選擇定位建圖精度、工作效率、魯棒性等多個性能評價指標(biāo)對不同算法進(jìn)行客觀評估。
針對單機(jī)器人SLAM 在實(shí)際應(yīng)用中的局限性,本文引入多機(jī)器人協(xié)同SLAM 概念并介紹其發(fā)展現(xiàn)狀,明確多機(jī)器人協(xié)同已經(jīng)成為SLAM 的主要發(fā)展趨勢。隨著研究的不斷深入,多機(jī)器人協(xié)同的關(guān)鍵問題逐漸被解決,異構(gòu)多機(jī)器人協(xié)同和語義SLAM作為主要發(fā)展趨勢,不僅能夠拓展SLAM 應(yīng)用的空間維度,而且為機(jī)器人與環(huán)境之間的深度交互提供了新思路。但若將多機(jī)器人協(xié)同技術(shù)廣泛應(yīng)用于SLAM 領(lǐng)域,則其算法細(xì)節(jié)與魯棒性仍有待提升,因此下一步將對此進(jìn)行深入研究。