段勝青,熊 智,2,趙 耀,崔雨晨,周帥琳
(1.南京航空航天大學(xué)自動(dòng)化學(xué)院,南京 211106;2.先進(jìn)飛行器導(dǎo)航、控制與健康管理工業(yè)和信息化部重點(diǎn)實(shí)驗(yàn)室,南京 211106)
多機(jī)器人系統(tǒng)相比于單個(gè)機(jī)器人系統(tǒng)在執(zhí)行任務(wù)時(shí)具備更高的效率和魯棒性,可應(yīng)用于森林/城市救火、自然災(zāi)害搜救、水下/空間探測(cè)和安全巡檢等任務(wù)[1]。多機(jī)器人同步定位與構(gòu)圖(Multi-Robot Simultaneous Localization and Mapping,MR SLAM)技術(shù)作為多機(jī)器人系統(tǒng)的重要組成部分,承擔(dān)著在全球定位系統(tǒng)(Global Positioning System,GPS)衛(wèi)星拒止環(huán)境下的定位和導(dǎo)航的關(guān)鍵作用。由于相機(jī)具有成本低、質(zhì)量小等特點(diǎn),以相機(jī)為核心的視覺(jué)SLAM技術(shù)近年來(lái)得到了廣泛的研究和應(yīng)用。目前,單個(gè)機(jī)器人SLAM技術(shù)已經(jīng)相對(duì)成熟,多機(jī)器人SLAM的主要瓶頸在于通信帶寬限制和計(jì)算負(fù)載,而多機(jī)器人SLAM的數(shù)據(jù)交換和計(jì)算主要集中在回環(huán)檢測(cè)和后端優(yōu)化階段。
回環(huán)檢測(cè)是多機(jī)器人SLAM的重要基礎(chǔ)。在SLAM研究的古典時(shí)期(classical age)[2],通常采用激光角點(diǎn)作為路標(biāo),并采用最大似然估計(jì)的方式對(duì)路標(biāo)進(jìn)行數(shù)據(jù)關(guān)聯(lián)[3-4],此類方法需要持續(xù)共享信息矩陣,傳輸數(shù)據(jù)量與狀態(tài)量個(gè)數(shù)呈平方增長(zhǎng),數(shù)據(jù)傳輸量大;此外,由于路標(biāo)特征簡(jiǎn)單,容易發(fā)生錯(cuò)誤關(guān)聯(lián),因此此類方法適用于人工環(huán)境,對(duì)于復(fù)雜的自然環(huán)境魯棒性較差。A.Howard[5]和L.Carlone[6]等采用機(jī)器人攜帶人工標(biāo)簽的方式實(shí)現(xiàn)多機(jī)器人的檢測(cè)識(shí)別和相對(duì)位置量測(cè),特殊的人工標(biāo)簽?zāi)苡行Ы鉀Q回環(huán)檢測(cè)中錯(cuò)誤關(guān)聯(lián)的問(wèn)題,且僅在檢測(cè)到回環(huán)時(shí)交換數(shù)據(jù),但要求機(jī)器人在執(zhí)行任務(wù)過(guò)程中必須相遇,具有較大使用限制。隨著圖像處理技術(shù)的進(jìn)步,基于特征點(diǎn)的回環(huán)檢測(cè)被應(yīng)用于單機(jī)器人SLAM和多機(jī)器人SLAM。P.M.Newman在2006年提出了一種基于尺度不變特征變換(Scale-Invariant Feature Transform,SIFT)特征點(diǎn)的回環(huán)檢測(cè)方法[7],通過(guò)聚類的方法,采用視覺(jué)單詞對(duì)場(chǎng)景進(jìn)行描述,從而實(shí)現(xiàn)實(shí)時(shí)地回環(huán)檢測(cè)。D.Gálvez-López提出了一種基于FAST(Features from Accelerated Segment Test)特征點(diǎn)和BRIEF(Binary Robust Independent Elementary Features)描述子的詞袋模型[8],實(shí)現(xiàn)了更高的實(shí)時(shí)性,被應(yīng)用于一些主流的SLAM系統(tǒng)[9-10]。基于詞袋模型的回環(huán)檢測(cè)雖然能夠減少數(shù)據(jù)的傳輸,但準(zhǔn)確率有待提高。近年來(lái),神經(jīng)網(wǎng)絡(luò)憑借其更好的準(zhǔn)確性和魯棒性開(kāi)始被應(yīng)用于SLAM回環(huán)檢測(cè)。S.Choudhary等通過(guò)YOLO(You Look Only Once)神經(jīng)網(wǎng)絡(luò)生成視覺(jué)單詞進(jìn)行回環(huán)檢測(cè)[11],但以YOLO為代表的用于分類識(shí)別的模型主要關(guān)注圖片的局部特征,信息利用率較低。此外,劉強(qiáng)等指出圖片中的環(huán)境建筑等背景對(duì)于現(xiàn)有網(wǎng)絡(luò)模型通常屬于非感興趣區(qū)域[12],不利于回環(huán)檢測(cè)。R.Arandjelovic等根據(jù)傳統(tǒng)方法中的局部聚合描述子向量(Vector of Local Aggregated Descriptors,VLAD)設(shè)計(jì)了一種 NetVLAD神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[13],并以GPS信息為標(biāo)簽進(jìn)行弱監(jiān)督訓(xùn)練,所生成的描述子包含了圖片的全局信息,相比于傳統(tǒng)方法能以較短的描述子實(shí)現(xiàn)更高的準(zhǔn)確率,可有效降低數(shù)據(jù)傳輸,比其他網(wǎng)絡(luò)更加適用于多機(jī)器人SLAM系統(tǒng)。因此,本文將NetVLAD應(yīng)用于多機(jī)器人回環(huán)檢測(cè),但NetVLAD對(duì)硬件計(jì)算能力有較高要求,難以適用于低成本圖形處理器(Graphics Processing Unit,GPU),硬件資源占用和實(shí)時(shí)性有待進(jìn)一步優(yōu)化。
多機(jī)器人SLAM按照后端優(yōu)化算法可分為基于濾波的多機(jī)器人SLAM和基于非線性優(yōu)化的多機(jī)器人SLAM?;跒V波的多機(jī)器人SLAM常用的濾波方法有卡爾曼濾波[4,14]、信息濾波[3]和粒子濾波[5-6],但對(duì)于以相機(jī)為主要傳感器的視覺(jué)SLAM系統(tǒng),大量量測(cè)數(shù)據(jù)造成協(xié)方差矩陣和粒子數(shù)目增大,數(shù)據(jù)傳輸增大,降低了算法的實(shí)時(shí)性。H.Strasdat等指出,在視覺(jué)SLAM領(lǐng)域非線性優(yōu)化方法相比于濾波方法具有更好的精度和實(shí)時(shí)性[15]。對(duì)于多機(jī)器人系統(tǒng),理論上可以使每個(gè)機(jī)器人收集其他所有機(jī)器人的量測(cè)信息,然后通過(guò)非線性優(yōu)化估計(jì)出所有狀態(tài)量,但實(shí)際應(yīng)用中通信帶寬和計(jì)算資源都是有限的,因此該方法并不實(shí)用。A.Cunningham等提出了一種具備分布式數(shù)據(jù)融合(Decentralized Data Fusion,DDF)功能的平滑與構(gòu)圖方法DDF-SAM[16],該方法通過(guò)高斯消元降低了通信和計(jì)算負(fù)載。T.Cieslewski等提出了一種基于Gauss-Seidel算法的分布式非線性優(yōu)化方法[17],以解決多機(jī)器人SLAM通信帶寬受限的情況。但以上兩種方法本質(zhì)上是對(duì)非線性優(yōu)化過(guò)程中求解正規(guī)方程的改進(jìn),而SLAM系統(tǒng)仍需要多次傳輸數(shù)據(jù)和迭代才能逼近最優(yōu)估計(jì)值,考慮到網(wǎng)絡(luò)傳輸?shù)难舆t,將會(huì)降低系統(tǒng)的實(shí)時(shí)性和魯棒性。目前,位姿圖優(yōu)化方法因其數(shù)據(jù)少和計(jì)算快的優(yōu)點(diǎn),在多機(jī)器人SLAM領(lǐng)域得到了較多的研究和應(yīng)用[7,18]。
綜上,在多機(jī)器人SLAM領(lǐng)域的回環(huán)檢測(cè)和后端優(yōu)化方面,盡管已有很多方法被提出,但無(wú)法完全滿足實(shí)際場(chǎng)景對(duì)系統(tǒng)實(shí)時(shí)性、魯棒性以及帶寬限制的要求。為此,本文將引入NetVLAD神經(jīng)網(wǎng)絡(luò)模型,在NetVLAD的基礎(chǔ)上提出了一種低數(shù)據(jù)傳輸?shù)膶?shí)時(shí)多機(jī)器人回環(huán)檢測(cè)方法,并根據(jù)現(xiàn)有的非線性優(yōu)化理論對(duì)多機(jī)器人后端位姿圖優(yōu)化方法進(jìn)行分析和改進(jìn),以減少通信和計(jì)算資源占用,并以O(shè)RB-SLAM2為前端實(shí)現(xiàn)了一個(gè)實(shí)時(shí)多機(jī)器人SLAM系統(tǒng)。
本文提出系統(tǒng)如圖1所示,分為前端、后端和NetVLAD三部分。前端部分機(jī)器人本地圖片采用ORB SLAM2[9]前端處理,對(duì)于外部圖片消息采用4.2節(jié)算法初始匹配后再采用ORB SLAM2前端處理。后端本地位姿圖優(yōu)化采用ORB SLAM2方法,多機(jī)器人位姿圖優(yōu)化和共享采用第5節(jié)所述方法。NetVLAD模塊用于計(jì)算關(guān)鍵幀的局部特征聚合描述符(Vector of Local Aggregated Descriptors,VLAD)向量,根據(jù)VLAD的相似度(4.1節(jié))進(jìn)行多機(jī)器人回環(huán)幀匹配。
圖1 本文系統(tǒng)流程框圖
通常SLAM問(wèn)題通過(guò)概率模型來(lái)求解。設(shè)狀態(tài)量X,量測(cè)量Z,則有
P(X|Z)=P(Z|X)P(X)/P(Z)
(1)
先驗(yàn)分布P(X)未知時(shí),可看作實(shí)數(shù)域上的均勻分布,故可忽略。X的最優(yōu)估計(jì)即為
(2)
為了方便描述和分析問(wèn)題,通常將式(1)和式(2)用因子圖的形式描述,節(jié)點(diǎn)(Vertex)表示待估計(jì)狀態(tài)量,邊(Edge)表示量測(cè)約束P(zij|xi,xj)。當(dāng)式(2)中的概率分布P(zij|xi,xj)服從正態(tài)分布時(shí),可通過(guò)非線性最小二乘方法進(jìn)行求解。SLAM系統(tǒng)中的BA優(yōu)化和位姿圖優(yōu)化均是基于上述原理。
記α、β、γ為機(jī)器人的序號(hào),并且α、β、γ可指代任意同一個(gè)機(jī)器人或不同機(jī)器人,狀態(tài)量xγ0αi定義為關(guān)鍵幀F(xiàn)αi在機(jī)器人γ初始關(guān)鍵幀F(xiàn)γ0對(duì)應(yīng)相機(jī)坐標(biāo)系下的位姿,記作
(3)
量測(cè)量zαiβj定義為當(dāng)前機(jī)器人β的關(guān)鍵幀F(xiàn)βj相對(duì)于機(jī)器人α歷史關(guān)鍵幀F(xiàn)αi的位姿,記作
(4)
當(dāng)α=β時(shí),zαiβj采用ORB SLAM2前端進(jìn)行求解;當(dāng)α≠β時(shí),求解方法見(jiàn)本文4.3節(jié)。
用ρ(·)表示李群到李代數(shù)的運(yùn)算,量測(cè)約束概率模型定義如下
(5)
其中,Σ表示量測(cè)模型的方差;eαiβj對(duì)應(yīng)因子圖中的一條邊。此時(shí)
(6)
NetVLAD是一種專用于位置識(shí)別的神經(jīng)網(wǎng)絡(luò)模型,相比其他神經(jīng)網(wǎng)絡(luò)模型具有更高的準(zhǔn)確率,但對(duì)GPU資源要求較高。為了減少該神經(jīng)網(wǎng)絡(luò)模型對(duì)GPU資源占用、提高回環(huán)檢測(cè)速度,本文直接對(duì)文獻(xiàn)[13]訓(xùn)練完成的NetVLAD模型做出參數(shù)調(diào)整而無(wú)需重新訓(xùn)練。
4.1.1 conv1_1卷積層合并
NetVLAD網(wǎng)絡(luò)conv1_1層卷積核的維度為3×3×3×64,conv1_1層輸出可表示如下
(7)
其中,Oi表示卷積層第i個(gè)輸出通道;Ic對(duì)應(yīng)輸入圖像的3個(gè)通道;ac∈R為預(yù)處理時(shí)減去的一個(gè)常數(shù);Kic為卷積核;bi為偏置項(xiàng);?表示卷積運(yùn)算。本文以灰度圖作為輸入,I1=I2=I3,因此
(8)
可以對(duì)conv1_1層進(jìn)行合并
(9)
最終conv1_1卷積核維度變?yōu)?×3×1×64。
4.1.2 WPCA層裁剪
NetVLAD模型將vgg16網(wǎng)絡(luò)的輸出經(jīng)過(guò)NetVLAD core處理后,通過(guò)加權(quán)主成分分析(Weighted Principal Component Analysis,WPCA)將輸出降維至4096維[13]??紤]到PCA矩陣中越靠后的列包含信息越少,本文將WPCA層32768×4096的矩陣裁剪為32768×128維,只保留矩陣的前128列,并將偏置項(xiàng)裁剪為128×1維,從而極大地減少參數(shù)數(shù)目,降低計(jì)算量。
4.1.3 相似度計(jì)算
圖片U和V根據(jù)上面所述改進(jìn)NetVLAD進(jìn)行計(jì)算,得到歸一化128維向量u和v,相似度定義如下
(10)
S(u,v)越大,圖片越可能構(gòu)成回環(huán)。
為減少數(shù)據(jù)傳輸,本文所述方法僅發(fā)送左目相機(jī)中圖片特征點(diǎn)像素坐標(biāo)和對(duì)應(yīng)單詞Id,以量測(cè)相對(duì)于其他機(jī)器人歷史關(guān)鍵幀的位姿。
機(jī)器人在接收到上述圖片信息后,由于缺失特征點(diǎn)的描述子信息,采用ORB SLAM2前端會(huì)產(chǎn)生大量誤匹配(見(jiàn)第6節(jié)圖4),導(dǎo)致相對(duì)位姿解算失敗。為此,本文提出了以下方法用于解決描述子缺失情況下的特征匹配。
設(shè)圖片i寬和高分別為W和H,詞袋為Bi,特征點(diǎn)集合為Pi,對(duì)于特征點(diǎn)p∈Pi,對(duì)應(yīng)單詞為wp,像素坐標(biāo)為cp=[xp,yp]T,記τd=(W2+H2)/4,匹配算法描述如下:
通過(guò)上述方法可以得到誤匹配較少的匹配結(jié)果,此后通過(guò)RANSAC PnP(Random Sample Consensus Perspective-n-Point)方法求解初始位姿,再由初始位姿通過(guò)反投影方式增加匹配點(diǎn)對(duì)。
為減少數(shù)據(jù)傳輸,回環(huán)檢測(cè)分為五步:
1)計(jì)算機(jī)器人α新增關(guān)鍵幀圖片U的NetVLAD特征向量u,并廣播給其他機(jī)器人;
2)任意其他機(jī)器人β收到u后,與本地NetVLAD特征庫(kù)進(jìn)行對(duì)比,如果存在特征向量為v的關(guān)鍵幀圖片V滿足S(u,v)>τmatch(τmatch為相似度閾值),則將圖片V的特征點(diǎn)信息(坐標(biāo)、單詞)發(fā)送給機(jī)器人α,否則結(jié)束回環(huán)檢測(cè);
3)采用算法1進(jìn)行特征點(diǎn)匹配;
4)機(jī)器人α用RANSAC PnP方法求解U與V的相對(duì)位姿zαUβV,如果求解成功,則認(rèn)為U和V對(duì)應(yīng)同一地點(diǎn),并廣播機(jī)器人α和β的關(guān)鍵幀匹配消息;
5)每個(gè)機(jī)器人通過(guò)接收關(guān)鍵幀匹配消息判斷自身是否與其他機(jī)器人軌跡構(gòu)成回環(huán)或間接回環(huán)(例如A?B?C?A)。
先驗(yàn)分布P(X)未知時(shí),因子圖只存在雙邊約束,可將因子圖按照下面的規(guī)則分割為多個(gè)子圖:
1)構(gòu)成一個(gè)環(huán)路的節(jié)點(diǎn)和邊屬于同一子圖;
2)有至少一條公共邊的2個(gè)子圖應(yīng)合并為一個(gè)子圖;
3)不經(jīng)過(guò)任何環(huán)路的邊和其連接2個(gè)節(jié)點(diǎn)構(gòu)成一個(gè)子圖。
約定依照上述規(guī)則所得的子圖稱為回環(huán)子圖。記完整因子圖為G,回環(huán)子圖Si∈G,經(jīng)過(guò)上述分割,子圖間無(wú)法再形成環(huán)路,本文參考iSAM2[19]用貝葉斯樹(shù)表示各個(gè)子圖的鄰接關(guān)系(如圖2所示)。相比于iSAM2的貝葉斯樹(shù),本文中樹(shù)的節(jié)點(diǎn)為非完全子圖,無(wú)需三角化,每次檢測(cè)到新的回環(huán)時(shí)只需通過(guò)并查集操作合并子圖,從而簡(jiǎn)化計(jì)算。
圖2 位姿圖(左)和貝葉斯樹(shù)(右)
觀察式(5)發(fā)現(xiàn)
=ρ(zβjαi·(Txγ0αi)-1·(Txγ0βj))
(11)
可知式(6)的最優(yōu)解位姿變換之后仍為它的一組最優(yōu)解。因此可通過(guò)3個(gè)步驟求解Xopt:
1)根據(jù)上述規(guī)則將因子圖劃分為回環(huán)子圖;
阿奇霉素與紅霉素有交叉耐藥性。對(duì)阿奇霉素耐藥最常見(jiàn)的機(jī)制是通過(guò)甲基化修飾23S rRNA靶點(diǎn)。核糖體修飾可能決定對(duì)其他大環(huán)內(nèi)酯類、林可酰胺類和鏈陽(yáng)菌素B(MLS B表型)的交叉耐藥性。
2)根據(jù)式(6)求解各個(gè)子圖的最優(yōu)估計(jì);
3)根據(jù)式(11)特性,按貝葉斯樹(shù)從根節(jié)點(diǎn)向下的順序依此將各個(gè)子圖的解做整體位姿變換,以確保相連子圖的共享變量數(shù)值一致性,即可求得整個(gè)因子圖G的最優(yōu)解。
以圖2為例,左圖為原始因子圖,右圖為所得貝葉斯樹(shù),右圖每個(gè)節(jié)點(diǎn)表示一個(gè)回環(huán)子圖,每條邊上的字母表示2個(gè)相鄰子圖的共有節(jié)點(diǎn)。分別求出子圖ab、bcdef、ci、fgh、ij的最優(yōu)解,再依次對(duì)bcdef、ci、ij、fgh進(jìn)行位姿變換,以保證狀態(tài)變量b、c、f、i的一致性,即可求得因子圖最優(yōu)解。
根據(jù)上述特性,在多機(jī)器人位姿圖優(yōu)化時(shí),只需要發(fā)送與其他機(jī)器人構(gòu)成回環(huán)子圖的部分邊和節(jié)點(diǎn)即可,從而實(shí)現(xiàn)了節(jié)省帶寬的目的。
多機(jī)器人后端優(yōu)化采用如下策略:
1)當(dāng)檢測(cè)到自身與其他機(jī)器人構(gòu)成回環(huán)時(shí),廣播位姿圖給其他機(jī)器人,且僅廣播與其他機(jī)器人構(gòu)成回環(huán)子圖的邊和節(jié)點(diǎn);
2)廣播時(shí),如果在上次廣播到本次廣播期間機(jī)器人沒(méi)有發(fā)生內(nèi)部閉環(huán)和BA優(yōu)化,僅廣播新增位姿圖節(jié)點(diǎn)和邊,已廣播的節(jié)點(diǎn)不需要再傳輸;
3)當(dāng)機(jī)器人發(fā)生內(nèi)部閉環(huán)和BA優(yōu)化時(shí),對(duì)內(nèi)部閉環(huán)優(yōu)化影響到回環(huán)子圖上的邊和節(jié)點(diǎn)進(jìn)行重新廣播;
本文系統(tǒng)前端和后端部分由C++編程開(kāi)發(fā),NetVLAD采用Python3和Tensorflow實(shí)現(xiàn),每個(gè)機(jī)器人都運(yùn)行有NetVLAD回環(huán)檢測(cè)和SLAM前后端2個(gè)進(jìn)程,進(jìn)程間通過(guò)機(jī)器人操作系統(tǒng)(Robot Operating System, ROS)收發(fā)消息,機(jī)器人間也通過(guò)ROS通信,并通過(guò)廣播的方式進(jìn)行信息發(fā)送,從而實(shí)現(xiàn)一對(duì)多信息傳遞。
采用混淆矩陣的方式檢驗(yàn)回環(huán)檢測(cè)效果,并將混淆矩陣用灰度圖的形式顯示,矩陣的行列對(duì)應(yīng)KITTI00數(shù)據(jù)集中圖片編號(hào)(0~4540),圖片相似度越高,對(duì)應(yīng)像素的顏色越黑。圖3(a)中矩陣計(jì)算規(guī)則如下
(12)
ti和tj表示圖片對(duì)應(yīng)的真實(shí)位置,即二者距離大于4m時(shí)aij為0(白色),否則為1(黑色)。圖3(b)表示原始NetVLAD網(wǎng)絡(luò)計(jì)算所得特征向量根據(jù)式(10)計(jì)算所得的混淆矩陣,圖3(c)表示根據(jù)第5節(jié)修改后NetVLAD網(wǎng)絡(luò)計(jì)算所得特征向量根據(jù)式(10)計(jì)算所得的混淆矩陣,圖3(d)為對(duì)圖3(c)的結(jié)果設(shè)置0.85閾值的二值化處理結(jié)果,此時(shí)圖3(d)的準(zhǔn)確率為99.44%,召回率為39.16%,準(zhǔn)確度能夠滿足SLAM需求,召回率雖然偏低,但SLAM系統(tǒng)在一段連續(xù)圖片序列中只需要找到一個(gè)回環(huán)幀即可,因此仍能滿足回環(huán)檢測(cè)的需求。
(a)
分別用不同顯卡設(shè)備搭載NetVLAD網(wǎng)絡(luò)處理KITTI00數(shù)據(jù)集(4541張圖片),對(duì)比結(jié)果如表1和表2所示。
表1 Nvidia GTX1650Ti 4G測(cè)試結(jié)果
表2 GTX965M 2G 測(cè)試結(jié)果
通過(guò)上述結(jié)果可知,改進(jìn)后的NetVLAD擁有更快的計(jì)算速度和更少的資源占用,可應(yīng)用于低成本GPU,同時(shí)能夠滿足回環(huán)檢測(cè)準(zhǔn)確率和實(shí)時(shí)性需求。
圖4和圖5所示分別為ORB SLAM2和本文算法1對(duì)KITTI00數(shù)據(jù)集圖片000391和002442的匹配結(jié)果,可知ORB SLAM2前端匹配算法在無(wú)描述子情況下,當(dāng)2幅待匹配圖片存在視角偏移時(shí)會(huì)產(chǎn)生較多誤匹配,影響機(jī)器人的定位結(jié)果(參見(jiàn)圖6),而算法1僅存在少量誤匹配,不影響系統(tǒng)后續(xù)運(yùn)行。
圖4 ORB SLAM2 特征匹配結(jié)果
圖5 本文方法特征匹配結(jié)果
將KITTI00數(shù)據(jù)集按照?qǐng)D片序號(hào)平均劃分為4段,分別配置在4臺(tái)i7-6700HQ/Nvidia GTX965M 2G筆記本電腦上,配置4個(gè)多機(jī)器人SLAM系統(tǒng)節(jié)點(diǎn),并且機(jī)器人初始位置未知,最終運(yùn)行結(jié)果如圖6、圖7和表3、表4所示。
圖6 匹配失敗情況下的MR SLAM軌跡
圖7 本文方案軌跡
表3 本文方案與ORB SLAM2精度對(duì)比
表4 本文方案與ORB SLAM2實(shí)時(shí)性對(duì)比
通過(guò)以上數(shù)據(jù)可以看出,本文提出的多機(jī)器人SLAM系統(tǒng)能夠?qū)崿F(xiàn)與ORB SLAM2系統(tǒng)同樣數(shù)量級(jí)的定位精度和實(shí)時(shí)性,多機(jī)器人SLAM的定位精度要略高于ORB SLAM2,其原因來(lái)自于多機(jī)器人SLAM僅進(jìn)行了位姿圖優(yōu)化,而未進(jìn)行BA優(yōu)化,由于ORB SLAM2前端特征點(diǎn)匹配存在誤差,BA優(yōu)化帶來(lái)了過(guò)擬合效應(yīng)。表4中圖片處理時(shí)間均值小于表2中的均值,原因是本文方案中NetVLAD僅對(duì)關(guān)鍵幀進(jìn)行處理。
圖8所示為部署的4個(gè)機(jī)器人節(jié)點(diǎn)在運(yùn)行期間的數(shù)據(jù)傳輸統(tǒng)計(jì)圖,可見(jiàn)在未檢測(cè)到回環(huán)幀時(shí),帶寬保持在10kb/s以下,在發(fā)現(xiàn)回環(huán)時(shí)發(fā)送圖片數(shù)據(jù)會(huì)占用25kb/s的帶寬,位姿圖占用帶寬與機(jī)器人所經(jīng)過(guò)路徑長(zhǎng)度有關(guān),145s時(shí)刻由于多個(gè)機(jī)器同時(shí)構(gòu)成回環(huán),造成了位姿圖流量高峰,但不超過(guò)40kb/s。整個(gè)過(guò)程傳輸數(shù)據(jù)總量為1.18MB,位姿圖消息105.16kB,圖片消息265.22kB(11張圖片),其他消息(主要為NetVLAD)814.13kB,證明了本文提出方法可有效降低帶寬負(fù)載。
圖8 運(yùn)動(dòng)過(guò)程中每秒數(shù)據(jù)傳輸量
本文提出了一種低帶寬占用的多機(jī)器人SLAM系統(tǒng)。試驗(yàn)結(jié)果表明:
1)本文對(duì)NetVLAD神經(jīng)網(wǎng)絡(luò)的改進(jìn)可有效提高NetVLAD計(jì)算速度和回環(huán)檢測(cè)實(shí)時(shí)性,并降低顯存占用和通信帶寬占用。
2)本文提出的圖片消息壓縮方法和對(duì)應(yīng)的特征點(diǎn)匹配算法能極大地減少數(shù)據(jù)發(fā)送,并保證匹配和量測(cè)的魯棒性。
3)本文提出的多機(jī)器人視覺(jué)SLAM系統(tǒng)能夠達(dá)到和單機(jī)器人ORB SLAM2同樣的精度和實(shí)時(shí)性,同時(shí)有效降低了機(jī)器人之間的數(shù)據(jù)傳輸。
4)本文的圖片消息采用發(fā)送所有特征點(diǎn)的方式,對(duì)于通信帶寬限制較大的場(chǎng)景,應(yīng)該對(duì)特征點(diǎn)進(jìn)行進(jìn)一步篩選。位姿圖共享也需要進(jìn)行合理規(guī)劃,分批發(fā)送,避免造成流量高峰時(shí)的擁堵情況。