何 松,孫 靜,郭樂江,陳 梁
(1.空軍預(yù)警學(xué)院,湖北 武漢 430019;2.空軍通信士官學(xué)校,遼寧 大連 116100;3.武漢大學(xué) 計(jì)算機(jī)學(xué)院,湖北 武漢 430072)
傳統(tǒng)的機(jī)器人SLAM(simultaneous localization and mapping)與導(dǎo)航避障算法,側(cè)重于標(biāo)識(shí)出障礙物并進(jìn)行規(guī)避,它并不知道障礙物是什么,只需要繞開障礙物到達(dá)目的地即可[1]。但在實(shí)際生活中,智能機(jī)器人所處的工作環(huán)境往往是動(dòng)態(tài)的、未知的,移動(dòng)機(jī)器人自主導(dǎo)航過程中,需要能夠?qū)崟r(shí)地對(duì)周圍目標(biāo)進(jìn)行識(shí)別并做出反應(yīng),以完成更復(fù)雜的特定任務(wù)。通過將識(shí)別的物體及位置信息,標(biāo)注在SLAM得到的地圖上,可以極好地提高地圖的可讀性和人機(jī)交互的便利性[2],同時(shí)也可應(yīng)用于環(huán)境數(shù)據(jù)采集和物品搜索等多個(gè)方面?;谡Z義信息的地圖構(gòu)建技術(shù)[3-4]逐漸成為移動(dòng)機(jī)器人自主導(dǎo)航研究的熱點(diǎn)問題之一。
語義地圖構(gòu)建技術(shù),也稱為語義SLAM,其關(guān)鍵在于對(duì)環(huán)境中目標(biāo)物體的語義識(shí)別和對(duì)其位置的精確標(biāo)注[5]。結(jié)合語義信息的SLAM算法不僅能提升應(yīng)用系統(tǒng)對(duì)環(huán)境的理解能力,還能提高SLAM算法定位與建圖的精度[6]。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,特別是基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的相關(guān)算法在目標(biāo)識(shí)別領(lǐng)域的應(yīng)用和識(shí)別效率的提升,結(jié)合視覺信息、雷達(dá)點(diǎn)云數(shù)據(jù)、超聲波數(shù)據(jù)等進(jìn)行目標(biāo)檢測(cè)和定位[7-8],都成為語義地圖研究的手段。近年來,國內(nèi)外學(xué)者已提出較多的融合SLAM和深度學(xué)習(xí)的地圖構(gòu)建技術(shù),如Tateno等人[9]提出CNN-SLAM算法,利用卷積神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的深度信息來取代SLAM算法本身對(duì)深度的假設(shè)和估計(jì),McCormac等人[10]提出利用CNN架構(gòu)結(jié)合ElasticFusion SLAM實(shí)現(xiàn)語義地圖,白云漢等人[11]提出基于視覺SLAM和深度神經(jīng)網(wǎng)絡(luò)構(gòu)建語義地圖,屈文彬等人[12]提出多特征融合的服務(wù)機(jī)器人語義地圖構(gòu)建技術(shù)。
以上方法多是首先基于視覺SLAM構(gòu)建環(huán)境地圖,然后結(jié)合視覺特征和深度學(xué)習(xí)方法獲取環(huán)境語義信息,進(jìn)而構(gòu)建語義地圖。在實(shí)際應(yīng)用中,機(jī)器人是融合多源傳感器獲取環(huán)境信息,常用的SLAM方法有激光SLAM和視覺SLAM,這兩種方法各有優(yōu)點(diǎn)和不足。其中激光SLAM技術(shù)起步較早,產(chǎn)品和理論成熟,運(yùn)用激光雷達(dá)發(fā)射激光束來探測(cè)目標(biāo)位置、速度等特征信息,并運(yùn)用粒子濾波算法結(jié)合慣性傳感單元(IMU)和機(jī)器人里程計(jì)數(shù)據(jù)來估計(jì)自身位置,具有測(cè)量精度高、方向準(zhǔn)、地圖數(shù)據(jù)量小,處理速度快等優(yōu)點(diǎn),但缺乏語義信息,基于激光點(diǎn)云特征進(jìn)行目標(biāo)匹配或深度學(xué)習(xí)的檢測(cè)算法發(fā)展也不夠成熟。而視覺SLAM可以獲取豐富的紋理信息,基于視覺信息的深度學(xué)習(xí)目標(biāo)檢測(cè)獲取語義信息技術(shù)發(fā)展已非常成熟。但視覺SLAM存在受光線影響較大,邊界不夠清晰,暗處紋理少,且運(yùn)算負(fù)荷大,地圖構(gòu)建存在累計(jì)誤差,難以直接應(yīng)用于路徑規(guī)劃和導(dǎo)航等缺點(diǎn)。因此,文中綜合激光雷達(dá)和視覺攝像頭兩類傳感器的優(yōu)點(diǎn),采用激光SLAM構(gòu)建環(huán)境地圖,采用視覺信息運(yùn)用深度神經(jīng)網(wǎng)絡(luò)檢測(cè)算法識(shí)別目標(biāo)語義,然后結(jié)合目標(biāo)深度信息進(jìn)行坐標(biāo)轉(zhuǎn)換,最終實(shí)現(xiàn)更精確迅速的實(shí)時(shí)地圖語義信息標(biāo)注,構(gòu)建語義地圖。
結(jié)合現(xiàn)有的基于ROS的移動(dòng)智能機(jī)器人,提出融合多源傳感器獲取語義地圖的系統(tǒng)框架,如圖1所示。
圖1 語義地圖系統(tǒng)框架
框架從上到下分為多源傳感器層、協(xié)同定位感知層、底層控制層。
多源傳感器層包括各類的傳感器模塊和地圖服務(wù)模塊,這一層主要依賴各類傳感器,對(duì)外界環(huán)境進(jìn)行獨(dú)立感知,傳感器主要包括激光雷達(dá)、深度攝像頭、RGB攝像頭等。從傳感器獲取激光點(diǎn)云、視覺RGB圖像和深度圖像等數(shù)據(jù),數(shù)據(jù)在各自的ROS模塊中進(jìn)行處理,并發(fā)布成ROS標(biāo)準(zhǔn)消息格式,以供下層協(xié)同處理計(jì)算。地圖服務(wù)利用傳感器數(shù)據(jù)增量式構(gòu)建地圖將并地圖數(shù)據(jù)交給下層。
協(xié)同定位感知層是機(jī)器人提高自我認(rèn)知水平的核心,面向激光點(diǎn)云的AMCL(自適應(yīng)蒙特卡羅)算法、里程計(jì)信息獲得機(jī)器人自身的定位結(jié)果,各定位結(jié)果在ROS系統(tǒng)中進(jìn)行坐標(biāo)轉(zhuǎn)換處理,實(shí)現(xiàn)機(jī)器人的協(xié)同定位,并將定位結(jié)果提供給自主規(guī)劃模塊和目標(biāo)語義識(shí)別模塊。目標(biāo)語義識(shí)別模塊將從上層獲取的RGB圖像信息帶入深度神經(jīng)網(wǎng)絡(luò)中,獲得圖像中目標(biāo)的語義信息及其在原始RGB圖像中的位置,由目標(biāo)在RGB圖像中的位置可以從深度攝像頭獲得相應(yīng)的物體深度圖像信息,由此計(jì)算物體相對(duì)機(jī)器人的位置,并通過機(jī)器人自身的協(xié)同定位結(jié)果確定物體位置,并完成地圖語義的添加。
底層控制層也稱基控制模塊,用于接收上層的運(yùn)動(dòng)控制信號(hào),讓機(jī)器人按照指令移動(dòng),并將機(jī)器人自身的狀態(tài)信息反饋,進(jìn)一步提高航跡推算與里程估計(jì)中的精度,它主要包含基控制器模塊,將運(yùn)動(dòng)控制信號(hào)轉(zhuǎn)化為電機(jī)運(yùn)動(dòng)的電信號(hào),并將電機(jī)編碼器、運(yùn)動(dòng)傳感器信息反饋給上層,結(jié)合局部規(guī)則和全局規(guī)劃算法,實(shí)現(xiàn)邊定位邊建圖和自主導(dǎo)航避障,并完成語義級(jí)任務(wù)。
SLAM即同步定位與地圖構(gòu)建,是機(jī)器人根據(jù)傳感器獲取外部環(huán)境信息,以此增量式地建立機(jī)器人所處環(huán)境的地圖,反過來又依靠建立的環(huán)境地圖確定自身的位姿的過程,即定位和構(gòu)圖兩個(gè)程序同步進(jìn)行。激光雷達(dá)定位與建圖的基本原理是根據(jù)雷達(dá)在高速旋轉(zhuǎn)過程中不斷發(fā)射激光束和獲取反射信息,以采集其四周工作范圍內(nèi)障礙物的距離信息,組合成空間點(diǎn)云信息,經(jīng)過濾波處理、地圖拼合、回環(huán)檢測(cè)從而得到空間地圖信息。
該系統(tǒng)采取Google開源的Catorgrapher SLAM算法,主要包含cartographer和cartographer_ros兩大部分。cartographer主要負(fù)責(zé)處理來自雷達(dá)、IMU和里程計(jì)的數(shù)據(jù)并基于這些數(shù)據(jù)進(jìn)行地圖的構(gòu)建,是cartographer理論的底層實(shí)現(xiàn)。cartographer_ros則基于ros的通信機(jī)制獲取傳感器的數(shù)據(jù)并將它們轉(zhuǎn)換成cartographer中定義的格式傳遞給cartographer處理,與此同時(shí)也將cartographer的處理結(jié)果發(fā)布用于顯示或保存,是基于cartographer的上層應(yīng)用。地圖以占據(jù)柵格地圖表示。用大小相同的柵格來表示當(dāng)前的環(huán)境,每個(gè)柵格至少存在三種狀態(tài):未知、可通過、有障礙物。它盡可能保留了整個(gè)環(huán)境的各種信息,易于創(chuàng)建和維護(hù)。但是在環(huán)境范圍較大時(shí)柵格地圖占用空間過大,不易維護(hù),此時(shí)的實(shí)時(shí)性也因?yàn)槎ㄎ凰惴ㄋ阉骺臻g太大而大打折扣。
而機(jī)器人同步定位應(yīng)用的是AMCL算法,根據(jù)激光掃描特征,使用粒子濾波獲取最佳定位點(diǎn),即作為機(jī)器人在地圖的位置點(diǎn)。其核心思想是用大量的粒子來描述機(jī)器人可能的位置,通過尋找一組在狀態(tài)空間傳播的隨機(jī)樣本對(duì)概率密度函數(shù)進(jìn)行近似,以樣本均值代替狀態(tài)方程,從而獲得狀態(tài)最小方差分布的過程。
2.1.4 微量元素缺乏 放牧過程中,由于當(dāng)?shù)赝寥纼?nèi)微量元素的含量各有差異,很容易造成羊只的鐵、硒、銅、鋅、鈷等微量元素的缺乏癥。所以在養(yǎng)殖時(shí)盡可能補(bǔ)飼。
為實(shí)現(xiàn)機(jī)器人“邊測(cè)繪,邊規(guī)劃”,系統(tǒng)采用一種基于D*動(dòng)態(tài)規(guī)劃算法的D*-SLAM算法,將D*動(dòng)態(tài)規(guī)劃和機(jī)器人SLAM構(gòu)圖整合,并設(shè)計(jì)其在ROS中的全局規(guī)劃和局部規(guī)劃實(shí)現(xiàn)過程。D*也稱之為動(dòng)態(tài)A*(D-Star,Dynamic A*),它是一種動(dòng)態(tài)的路徑規(guī)劃算法,可在規(guī)劃后對(duì)環(huán)境變化做出反應(yīng),動(dòng)態(tài)修改自己的規(guī)劃路徑。
通過以上三種算法的結(jié)合,即可實(shí)現(xiàn)機(jī)器人邊測(cè)繪邊建圖,實(shí)現(xiàn)自主路徑規(guī)劃和導(dǎo)航避障。但此處利用激光雷達(dá)所建環(huán)境地圖只有障礙物位置標(biāo)記,沒有障礙物語義信息。
目標(biāo)語義識(shí)別模塊是為了解決機(jī)器人對(duì)環(huán)境認(rèn)知不足的問題,通過將基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法移植到ROS中,結(jié)合機(jī)器人深度攝像頭測(cè)距與定位,實(shí)現(xiàn)機(jī)器人對(duì)目標(biāo)的識(shí)別和地圖語義的添加,包括目標(biāo)識(shí)別和目標(biāo)定位兩大部分。常用的基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法有Faster R-CNN[13]、YOLO(you only look once)[14]和SSD(single shot multibox detector)[15]等。相比較而言,F(xiàn)aster R-CNN擁有較高的準(zhǔn)確率,YOLO速度較快,而SSD算法綜合二者的優(yōu)點(diǎn),其在實(shí)時(shí)性和檢測(cè)精度方面都有較好的表現(xiàn)。文中選取SSD算法進(jìn)行目標(biāo)檢測(cè)和識(shí)別。
2.2.1 基于深度學(xué)習(xí)的目標(biāo)語義識(shí)別算法
SSD是一種基于深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)的物體檢測(cè)模型,通過它可以獲取到物體的語義信息和物體在圖像中的位置,具有良好的實(shí)時(shí)性和準(zhǔn)確率。它將整個(gè)物體識(shí)別過程整合成一個(gè)深度神經(jīng)網(wǎng)絡(luò),便于訓(xùn)練和優(yōu)化,從而提高檢測(cè)的速度。
SSD網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,它在網(wǎng)絡(luò)的前半部分使用了一個(gè)普通的卷積神經(jīng)網(wǎng)絡(luò),用于對(duì)圖像中的目標(biāo)進(jìn)行分類,每一個(gè)類別會(huì)對(duì)應(yīng)一個(gè)語義結(jié)果,如person、bottle、dog等,在網(wǎng)絡(luò)的后半部分實(shí)現(xiàn)目標(biāo)在圖像中的定位。SSD網(wǎng)絡(luò)使用了大量的小的卷積核(1*1,3*3),用于提取邊緣特征和邊界框的位置回歸,通過一組邊界框集合實(shí)現(xiàn)不同長寬比的目標(biāo)檢測(cè),在卷積生成的多個(gè)尺度的特征圖上,將特征圖劃分為8*8或者4*4的方格,每個(gè)小方格都有一組邊界框集合,如圖3所示,包含4個(gè):長的、寬的、小正方形、大正方形,用于匹配物體位置。網(wǎng)絡(luò)最終輸出的向量將會(huì)和前面各層邊界框與圖像對(duì)應(yīng)關(guān)系相連接,以此來進(jìn)行網(wǎng)絡(luò)的訓(xùn)練和圖像中物體位置的確定。
圖2 SSD網(wǎng)絡(luò)模型
圖3 SSD邊界框示意圖
SSD識(shí)別多尺度目標(biāo)是通過不同層的特征圖來實(shí)現(xiàn)的,低層的特征圖對(duì)圖像的細(xì)節(jié)表達(dá)出色從而可以提高語義分割質(zhì)量,高層的特征圖可以平滑分割結(jié)果。于是,將低層和高層的特征圖綜合起來進(jìn)行檢測(cè)。不同層的特征圖有不同的感受野尺寸,然而不需要給某一層特征圖構(gòu)建不同尺寸的框,而是某層的特征圖只學(xué)習(xí)檢測(cè)某個(gè)尺度的對(duì)象,所以某一層的特征圖只有一個(gè)尺度的框。從網(wǎng)絡(luò)的低層到高層,框的縮放比例均勻地分布在0.2至1之間。為了進(jìn)一步解決長寬比的問題,可設(shè)置不同長寬比的擴(kuò)展框。
不同形狀的框、不同的縮放比、不同的分辨率使得框的空間參數(shù)離散化,從而大幅提高了計(jì)算的效率。真值框的類別和位置在網(wǎng)絡(luò)的訓(xùn)練時(shí)都必須明確告知給網(wǎng)絡(luò),并和網(wǎng)絡(luò)輸出進(jìn)行比較,這樣才能讓損失函數(shù)的反向傳播是端對(duì)端的。在訓(xùn)練時(shí),需要將真值框和邊界框?qū)?yīng)起來,只要和真值框的覆蓋率大于0.5,就能和該真值框?qū)?yīng)上,每個(gè)真值框必須至少有一個(gè)邊界框與其對(duì)應(yīng)。對(duì)匹配的每個(gè)框計(jì)算和真值框的位移和分類概率,通過計(jì)算加權(quán)位置損失和分類置信度損失獲得模型整體損失,最終結(jié)果通過極大值抑制來獲得。
2.2.2 目標(biāo)語義識(shí)別硬件
Kinect for Xbox 360,也稱為Kinect,如圖4所示,是由微軟開發(fā),應(yīng)用于Xbox 360游戲主機(jī)的操控設(shè)備。它有深度攝像頭和多個(gè)麥克風(fēng),為用戶提供使用語音和肢體動(dòng)作來操控游戲的體驗(yàn)[16]。
圖4 Kinect攝像頭
Kinect從左到右依次為紅外發(fā)射鏡頭、RGB彩色攝像頭、紅外線CMOS攝像頭。3D圖像由紅外線CMOS攝像頭采集,它接收?qǐng)鼍爸械慕Y(jié)構(gòu)光,通過結(jié)構(gòu)光來對(duì)鏡頭前的物體進(jìn)行測(cè)距并形成深度的3D圖像。彩色攝像頭分辨率為1 280*960,紅外攝像頭分辨率為640*480。Kinect攝像頭同時(shí)具有RGB彩色攝像頭和紅外測(cè)距攝像頭,并且具有攝像頭標(biāo)定功能,可將各個(gè)攝像頭獲取的圖像信息標(biāo)定,形成同一幅圖的彩色圖像和深度圖像。彩色圖像可以用來做目標(biāo)語義識(shí)別,深度圖像可用于物體的測(cè)距和定位[17]。Kinect還具有追焦技術(shù),它的底座是可以移動(dòng)的,當(dāng)攝像頭對(duì)準(zhǔn)焦點(diǎn)后,底座會(huì)跟著焦點(diǎn)轉(zhuǎn)動(dòng),讓攝像頭隨著焦點(diǎn)移動(dòng)。Kinect微軟官方推薦的距離為1 220 mm~3 810 mm,經(jīng)過測(cè)試,精度在距離1 m時(shí)精度較高,誤差在3 mm內(nèi),距離越遠(yuǎn),精度越低,在距離3.6 m時(shí),誤差在3 cm內(nèi),采集頻率為30幀每秒。ROS集成了Kinect的驅(qū)動(dòng)包OpenNI,該驅(qū)動(dòng)包將Kinect攝像頭獲取的深度圖像信息、RGB圖像信息發(fā)布在ROS中的主題上。
2.2.3 ROS目標(biāo)語義識(shí)別模塊設(shè)計(jì)
SSD算法可以識(shí)別出物體的語義信息和它在圖像中的位置,根據(jù)從深度攝像頭獲取的圖像深度信息,可以通過深度信息知道物體相對(duì)于深度攝像頭的角度、位置,從而實(shí)現(xiàn)物體的識(shí)別和地圖標(biāo)注。
基于ROS的SSD目標(biāo)語義識(shí)別模塊結(jié)構(gòu)如圖5所示,它包含ObjectDection和UpdateMap兩個(gè)節(jié)點(diǎn),在ObjectDection節(jié)點(diǎn)中主要訂閱Kinect圖像信息,將原始RGB圖像輸入到SSD網(wǎng)絡(luò)中,得到物體的語義信息和物體在原始RGB圖像中的邊界框。
圖5 ROS目標(biāo)語義識(shí)別模塊結(jié)構(gòu)
邊界框是以原始圖像左下角為坐標(biāo)原點(diǎn)的四個(gè)坐標(biāo)構(gòu)成的方型框,框是算法識(shí)別出的物體范圍,目標(biāo)語義識(shí)別結(jié)果如圖6所示。圖6(a)表示它識(shí)別出了顯示器,白色方框?yàn)轱@示器的邊界框,算法認(rèn)為框內(nèi)物體為顯示器的概率為0.980;圖6(b)表示它識(shí)別出了椅子,并框出椅子位置,算法認(rèn)為框內(nèi)物體為椅子的概率是0.942。
圖6 目標(biāo)語義識(shí)別結(jié)果
在UpdateMap節(jié)點(diǎn)中將識(shí)別結(jié)果和深度圖信息整合得到物體相對(duì)于機(jī)器自身的相對(duì)位置也就是在baselink坐標(biāo)下的位置,將位置坐標(biāo)通過baselink->odom->map坐標(biāo)轉(zhuǎn)換后,得到物體在map坐標(biāo)系下的位置,將物體信息發(fā)布,由UpdateMap更新地圖,實(shí)現(xiàn)目標(biāo)語義信息在地圖上顯示。
目標(biāo)語義識(shí)別算法流程如圖7所示。首先通過Kinect攝像頭獲取標(biāo)定后的RGB圖和深度圖,將RGB圖帶入SSD算法中,得到物體的目標(biāo)語義信息和圖像中的邊界框,根據(jù)邊界框確定深度圖像中物體的范圍,對(duì)該圖像范圍內(nèi)的深度圖像進(jìn)行濾波,背景切割,只保留物體的深度圖像信息,由物體的深度圖像信息確定物體距離機(jī)器人的水平距離、角度,也就是物體在ROS的baselink坐標(biāo)系中的位置,將該位置通過ROS的坐標(biāo)框架進(jìn)行變換,得到物體在map地圖坐標(biāo)系下的位置,將語義信息添加到地圖該處的柵格中,從而實(shí)現(xiàn)目標(biāo)語義識(shí)別和地圖語義添加。
圖7 目標(biāo)語義識(shí)別算法流程
機(jī)器人的控制部分采用一種集成高精度導(dǎo)航定位與深度學(xué)習(xí)的機(jī)器人嵌入式計(jì)算終端,集成設(shè)置的核心處理單元包括Jetson芯片、FPGA芯片、嵌入式ARM模塊和多種傳感器,所述傳感器IMU慣性導(dǎo)航模塊、激光雷達(dá)和攝像頭,核心處理單元Jetson芯片連接攝像頭和激光雷達(dá),F(xiàn)PGA芯片分別連接GNSS衛(wèi)星導(dǎo)航模塊和IMU慣性導(dǎo)航模塊、嵌入式ARM模塊;嵌入式ARM模塊連接控制機(jī)器人的伺服電機(jī);搭載軟件棧,實(shí)現(xiàn)協(xié)同定位感知算法。運(yùn)動(dòng)部分采用turtlebot3機(jī)器人底盤,底盤有3個(gè)輪子,后兩輪為主動(dòng)輪差速輪,前輪為萬向輪。主要硬件設(shè)備及軟件配置參數(shù)如表1所示,外接傳感器部分采用Rplidar雷達(dá)和Kinect攝像頭。
表1 實(shí)驗(yàn)平臺(tái)配置
實(shí)現(xiàn)目標(biāo):在實(shí)驗(yàn)室室內(nèi)環(huán)境,分別檢驗(yàn)機(jī)器人在靜止和移動(dòng)情況下能否完成物體識(shí)別和地圖語義的添加。(1)靜止?fàn)顟B(tài)下:如人站在椅子旁邊,檢驗(yàn)機(jī)器人能否完成多目標(biāo)識(shí)別和多目標(biāo)地圖語義添加。(2)移動(dòng)過程中:規(guī)劃路線使機(jī)器人自主移動(dòng)并通過激光雷達(dá)傳感器掃描室內(nèi)環(huán)境,構(gòu)建室內(nèi)二維地圖,檢驗(yàn)構(gòu)建地圖過程中是否同步添加語義信息。
實(shí)驗(yàn)過程:在實(shí)驗(yàn)室空地開啟機(jī)器人和其上的Kinect攝像頭,運(yùn)行物體識(shí)別節(jié)點(diǎn),界面彈出窗口顯示Kinect攝像頭通過SSD深度神經(jīng)網(wǎng)絡(luò)對(duì)于物體的識(shí)別結(jié)果,可以看到程序在原始攝像頭圖像上疊加了物體的一些框,即物體的邊界,設(shè)置其語義信息標(biāo)注于位置框右上角,包話該物體類別以及程序推斷其屬于某一類別的概率。當(dāng)移動(dòng)機(jī)器人構(gòu)建室內(nèi)地圖時(shí),機(jī)器人能夠創(chuàng)建全局地圖,且地圖上也會(huì)顯示這些物體的標(biāo)注,即語義信息,將其放大置于右側(cè),即完成語義地圖構(gòu)建,如圖8所示。
圖8 語義地圖構(gòu)建實(shí)驗(yàn)
由實(shí)驗(yàn)結(jié)果可以看出,Kinect攝像頭成功識(shí)別出了椅子,并將椅子的地圖語義添加到地圖上,在地圖上可以看到地圖上椅子的位置顯示“chair:0.98”,表示該位置為一個(gè)椅子,機(jī)器識(shí)別其為椅子的概率為0.98。繼續(xù)移動(dòng)機(jī)器人,椅子前方有一盆栽植物,地圖上顯示該位置“pollet plant:0.92”。表明當(dāng)機(jī)器人在移動(dòng)過程中識(shí)別出各個(gè)目標(biāo)時(shí),均能較準(zhǔn)確地將語義和位置標(biāo)注在地圖上。
從實(shí)驗(yàn)結(jié)果可以看出,基于SSD深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)對(duì)于物體進(jìn)行識(shí)別,結(jié)合Kinect的深度圖像,可以將物體的語義信息添加到地圖中,加深機(jī)器人對(duì)于環(huán)境的理解。該方法具有較高的識(shí)別率、較好的準(zhǔn)確率,且在多目標(biāo)情況下表現(xiàn)出了很好的多目標(biāo)識(shí)別效果,地圖語義添加也比較準(zhǔn)確,驗(yàn)證了該方法的有效性、可行性。
該實(shí)驗(yàn)是機(jī)器人感知、規(guī)劃、控制的一部分,為提升機(jī)器人的認(rèn)知能力、規(guī)劃能力,基于ROS系統(tǒng),設(shè)計(jì)了機(jī)器人協(xié)同定位感知算法,對(duì)機(jī)器人的自主規(guī)劃模塊、協(xié)同定位模塊、目標(biāo)語義識(shí)別模塊進(jìn)行統(tǒng)一設(shè)計(jì)和實(shí)現(xiàn)。自主規(guī)劃模塊實(shí)現(xiàn)了一種D*-SLAM算法,使機(jī)器人由先認(rèn)知環(huán)境后規(guī)劃路徑的傳統(tǒng)方式轉(zhuǎn)變?yōu)檫呎J(rèn)知環(huán)境邊規(guī)劃路徑的新型規(guī)劃方式,增強(qiáng)其對(duì)陌生環(huán)境的適應(yīng)能力。定位模塊集成了現(xiàn)有的GNSS廣域高精度定位算法,使其能夠在ROS系統(tǒng)框架下持續(xù)、穩(wěn)定地提供高精度的定位數(shù)據(jù)、里程信息,并實(shí)現(xiàn)和ROS坐標(biāo)框架的整合,使它能與里程計(jì)和激光雷達(dá)AMCL組合進(jìn)行協(xié)同定位,增強(qiáng)機(jī)器人在復(fù)雜環(huán)境下的自主定位能力。語義識(shí)別模塊集成了現(xiàn)有深度學(xué)習(xí)識(shí)別方法,在ROS平臺(tái)上實(shí)現(xiàn)高效的物體識(shí)別,在識(shí)別結(jié)束后,通過圖像深度信息確定物體在地圖中的位置,實(shí)現(xiàn)目標(biāo)的地圖語義添加,提升機(jī)器人對(duì)局部環(huán)境的認(rèn)知能力,以更好地進(jìn)行路徑規(guī)劃和完成語義級(jí)任務(wù)。
語義識(shí)別模塊集成了現(xiàn)有深度學(xué)習(xí)目標(biāo)檢測(cè)方法,在ROS平臺(tái)上實(shí)現(xiàn)高效的物體識(shí)別,在識(shí)別結(jié)束后,通過圖像深度信息確定物體在地圖中的位置,實(shí)現(xiàn)目標(biāo)的地圖語義添加,其關(guān)鍵在于語義和位置的準(zhǔn)確性。因采用的傳感器是單線激光雷達(dá),目標(biāo)語義識(shí)別模塊對(duì)于物體的識(shí)別和地圖語義的添加目前只是在二維平面上,后期可以考慮在三維空間內(nèi)實(shí)現(xiàn)語義的添加,并且加強(qiáng)訓(xùn)練集,以豐富地圖語義的內(nèi)容,提升機(jī)器人對(duì)局部環(huán)境的認(rèn)知能力,為后期基于地圖語義的機(jī)器人應(yīng)用開發(fā)打下基礎(chǔ)。