李 東,洪 濤,張波濤
(杭州電子科技大學(xué)自動化學(xué)院,浙江 杭州 310018)
地圖是機器人工作空間中障礙物、目標(biāo)等關(guān)鍵信息的載體,也是機器人規(guī)劃、導(dǎo)航、自定位的基礎(chǔ)[1]。常見的柵格地圖[2]、拓撲地圖[3]可以描述環(huán)境中存在的障礙物及其環(huán)境結(jié)構(gòu)信息,但沒有對環(huán)境中實例物體的類別、功能以及位置等信息進行描述[4]。移動機器人在目標(biāo)搜索任務(wù)中,不僅需要獲取目標(biāo)的位置信息,而且需要獲取目標(biāo)的語義信息,因此,地圖不僅要包含環(huán)境結(jié)構(gòu)信息,而且要包含環(huán)境中實例物體的語義信息[5]。語義地圖不僅包含結(jié)構(gòu)信息而且具有更高層次的語義信息,如:物體類別、功能屬性等信息[6]。
近年來,國內(nèi)外研究者提出了多種不同的語義地圖構(gòu)建方法,包括基于柵格地圖的2D語義地圖構(gòu)建、基于點云的3D語義地圖構(gòu)建等。李秀智等[1]在二維柵格地圖中,使用卷積神經(jīng)網(wǎng)絡(luò)對生活場景出現(xiàn)的沙發(fā)、桌子等物體進行語義識別及標(biāo)記,構(gòu)建了較為初始的2D語義地圖。Tateno等[7]將所識別物體的點云信息與目標(biāo)點云先驗庫進行匹配,將匹配成功的目標(biāo)點云插入到三維地圖的對應(yīng)位置,完成三維點云語義地圖的構(gòu)建。Salas-Moreno等[8]通過卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)預(yù)測物體類別,并運用Elastic Fusion[9]提取環(huán)境的結(jié)構(gòu)信息,將所提取的環(huán)境結(jié)構(gòu)信息與語義分割信息融合起來,構(gòu)建了稠密3D語義地圖。Kunze等[10]在目標(biāo)物體與所處場所之間建立聯(lián)系,利用語義信息縮小了目標(biāo)搜索空間,使得機器人在大規(guī)模環(huán)境下進行高效目標(biāo)搜索,但該方法沒有對區(qū)域進行自動劃分。對于非結(jié)構(gòu)化或者半結(jié)構(gòu)化的動態(tài)室內(nèi)環(huán)境,隨著時間的推移,語義信息與實際環(huán)境的偏差會越來越大,最終可能導(dǎo)致較高的任務(wù)執(zhí)行成本,甚至任務(wù)執(zhí)行失敗。同時,直接修改或存儲點云具有較高的時間復(fù)雜度和空間復(fù)雜度,增大3D語義地圖的維護和更新難度。此外,在室內(nèi)動態(tài)環(huán)境中,目標(biāo)物體容易受到遮擋以及位置移動等影響,可能無法檢測到該物體,致使建立的語義地圖不完善。針對以上問題,本文提出一種環(huán)境模型分層構(gòu)建方法。將易于維護的二維柵格地圖作為底層架構(gòu),在此基礎(chǔ)上,對環(huán)境語義信息進行自主提取,完成語義信息與柵格地圖之間的映射,建立上層語義地圖。本文方法采用分層結(jié)構(gòu)對環(huán)境結(jié)構(gòu)信息和語義信息進行描述,對語義信息進行動態(tài)更新的同時避免產(chǎn)生過大的計算量和空間復(fù)雜度,提高了目標(biāo)搜索任務(wù)的執(zhí)行效率。
本文針對非結(jié)構(gòu)化或半結(jié)構(gòu)化的機器人工作環(huán)境,提出無監(jiān)督區(qū)域劃分方法,使用無監(jiān)督聚類對機器人可行工作區(qū)域進行劃分,并在目標(biāo)物體與劃分區(qū)域之間建立歸屬關(guān)系。首先,對非結(jié)構(gòu)化的室內(nèi)環(huán)境進行隨機采樣,使用K-means聚類算法[11]對隨機采樣點進行歐式聚類;然后,以聚類中心作為區(qū)域中心,完成對非結(jié)構(gòu)化空間區(qū)域的劃分;最后,建立物體位置信息與所劃分區(qū)域的映射關(guān)系,完成物體與空間區(qū)域歸屬關(guān)系的建立。
對于采樣點{x1,…,xN},根據(jù)距離將其劃分為K類。通過不斷迭代,求解合適的聚類中心,使得損失函數(shù)J最小。損失函數(shù)計算如下:
(1)
式中,μk為第k類的聚類中心,rnk表示第n個采樣點是否屬于第k類,k=1,2,…,K,取值為:
(2)
第n個采樣點屬于距離最近的聚類中心μk為:
(3)
所得聚類中心μk為劃分后各個子區(qū)域的中心。利用自適應(yīng)閾值建立目標(biāo)物體與所在子區(qū)域的映射,基于該映射關(guān)系執(zhí)行目標(biāo)搜索時,機器人可在目標(biāo)對應(yīng)的映射區(qū)域中進行詳細搜索。
使用深度學(xué)習(xí)方法對目標(biāo)進行語義檢測時,移動平臺上有限的計算資源無法保證算法實時性的要求。為此,本文采用輕量化的目標(biāo)檢測網(wǎng)絡(luò)YOLO-v3-tiny[12]對目標(biāo)進行檢測,獲取該物體在柵格地圖坐標(biāo)系下的統(tǒng)一表示。但是,將真實環(huán)境中的物體映射到像素坐標(biāo)系的過程中,丟失了物體的深度信息Zc,所以本文采用飛行時間測距原理的深度相機來補充物體深度信息,完成目標(biāo)三維位姿的獲取。
實時獲取物體語義信息的流程如圖1所示。首先,使用深度相機分別獲取當(dāng)前環(huán)境的色彩信息(Red, Green, Blue, RGB)與深度信息Depth,并將RGB坐標(biāo)平面的像素映射到Depth像素平面內(nèi);然后,使用YOLO-v3-tiny算法檢測RGB圖像中的語義信息,并獲取其對應(yīng)的像素坐標(biāo);接著,獲取所識別語義目標(biāo)的三維坐標(biāo),經(jīng)過坐標(biāo)變換得到物體相對于機器人參考系的位置表示;最后,采用自適應(yīng)蒙特卡洛算法對機器人進行定位,獲取機器人在柵格坐標(biāo)系下的位置變換關(guān)系,得到目標(biāo)物體在全局柵格地圖坐標(biāo)系下的位置表示。
將像素平面坐標(biāo)映射至成像平面,經(jīng)過坐標(biāo)變換得到:
(4)
(5)
式中,旋轉(zhuǎn)矩陣R和平移矩陣T表示相機坐標(biāo)系相對于機器人坐標(biāo)系的旋轉(zhuǎn)及平移變換關(guān)系。
圖1 目標(biāo)語義信息及三維位姿獲取
機器人在移動過程中,外界環(huán)境因素或機器人運動速度過快,導(dǎo)致相機誤識別或重復(fù)識別的現(xiàn)象不可避免[14]。對語義信息進行標(biāo)記過程中,若不區(qū)分有效標(biāo)記點和無效標(biāo)記點,大量無效標(biāo)記點將被保留,影響融合地圖的構(gòu)建。本文采用雙重閾值法分別對標(biāo)記點進行時間和空間的篩選,刪除無效標(biāo)記點,并實現(xiàn)語義信息的增量式更新。假設(shè)輸入物體類別class,空間閾值r,柵格地圖坐標(biāo)系下的物體坐標(biāo)(xm,ym),時間戳t,篩選無效標(biāo)記點主要過程如下:
(1)初次識別到某類物體時,以該物體位置(xm,ym)作為空間閾值的中心Cf。
(2)對后續(xù)待標(biāo)記點求解其坐標(biāo)位置與Cf的歐式距離。若該標(biāo)記點在以Cf為中心,以空間閾值r為半徑的鄰域內(nèi),則將該標(biāo)記點刪除;若該標(biāo)記點在鄰域外,則將該點設(shè)為初始標(biāo)記點并將其坐標(biāo)(x′m,y′m)作為空間閾值的中心C′f,然后對其鄰域內(nèi)標(biāo)記點進行過濾。
(3)設(shè)置時間閾值Ti。
(4)當(dāng)相鄰的同類物體待標(biāo)記點時間間隔|ti-ti-1|小于Ti時,刪除時間戳較近的待標(biāo)記點;當(dāng)相鄰的同類物體待標(biāo)記點時間間隔大于Ti時,添加新標(biāo)記點。
實驗配置為Ubuntu16.04,ROS Kinetic,機器人工作場景為室內(nèi)環(huán)境。目標(biāo)檢測網(wǎng)絡(luò)采用COCO數(shù)據(jù)集[15]的訓(xùn)練權(quán)重,采用深度相機完成目標(biāo)三維位姿的獲取。實驗前對相機內(nèi)參進行標(biāo)定,標(biāo)定結(jié)果如表1所示。
表1 深度相機內(nèi)參標(biāo)定結(jié)果 單位:Pixel
由于Depth相機與RGB相機之間存在一定的平移和旋轉(zhuǎn),需要將Depth成像平面像素對齊到RGB成像平面對應(yīng)像素。Depth相機與RGB相機旋轉(zhuǎn)矩陣RD表示為:
(6)
Depth平面與RGB平面平移矩陣TD表示為:
(7)
實驗采用P3-DX移動機器人,甲板上搭載TX20激光雷達,實驗場景如圖2(a)所示。首先,利用激光雷達構(gòu)建環(huán)境的柵格地圖,在柵格地圖上進行隨機采樣,采樣結(jié)果如圖2(b)所示;然后,對隨機采樣點進行無監(jiān)督聚類,生成的聚類中心分布與聚類類別k有關(guān),k分別取10,15,20時,區(qū)域中心點分布情況分別如圖2(c)—圖2(e)所示。
圖2 實驗場景與區(qū)域劃分結(jié)果
移動機器人搭載深度相機在柵格地圖上進行環(huán)境語義信息的獲取和融合地圖的構(gòu)建。首先,獲取機器人在柵格地圖中的坐標(biāo)信息;然后,對物體進行檢測并求取物體在柵格地圖上的三維坐標(biāo);最后,對各個物體的語義信息進行標(biāo)記,構(gòu)建融合柵格-語義地圖。本文構(gòu)建融合柵格-語義地圖如圖3所示。在對語義信息標(biāo)記過程中,各個語義標(biāo)記節(jié)點會獲取距離此標(biāo)記點最近的區(qū)域中心點,以便引導(dǎo)機器人在執(zhí)行目標(biāo)搜索等任務(wù)時,對相應(yīng)區(qū)域進行搜索。
語義標(biāo)記點的顏色代表物體種類,圖3中,標(biāo)記點①代表顯示器在柵格地圖中的映射,標(biāo)記點②代表椅子在柵格地圖中的映射。在進行語義標(biāo)記時能夠?qū)討B(tài)物體進行無效標(biāo)記點篩選,避免產(chǎn)生冗余語義信息。同時,對語義信息和環(huán)境信息進行獨立維護,方便對目標(biāo)語義信息進行動態(tài)更新。
圖3 融合柵格-拓撲地圖示意圖
在2.2節(jié)所構(gòu)建的地圖中,分別采用窮舉式目標(biāo)搜索和具有融合地圖語義信息引導(dǎo)的目標(biāo)搜索方法進行目標(biāo)搜索和規(guī)劃測試,比較2種算法搜索成功所花費的平均時間代價,結(jié)果如表2所示。
表2 不同目標(biāo)搜索算法的時間代價對比 單位:s
從表2可以看出,相較于窮舉式目標(biāo)搜索算法,在融合地圖語義信息的引導(dǎo)下,移動機器人采用本文方法進行目標(biāo)搜索時,時間代價減少了74.8%。機器人執(zhí)行目標(biāo)搜索任務(wù)時,首先,根據(jù)目標(biāo)物體的種類來搜索對應(yīng)的空間區(qū)域中心點,根據(jù)各區(qū)域中心點與機器人當(dāng)前位置的實際距離進行目標(biāo)點優(yōu)先級排序,并加入優(yōu)先搜索隊列;然后,依次按照搜索隊列將對應(yīng)空間區(qū)域中心點設(shè)為機器人導(dǎo)航目標(biāo)點,引導(dǎo)機器人導(dǎo)航至各目標(biāo)點附近,進行目標(biāo)搜索。該方法可提高機器人對于動態(tài)環(huán)境的適應(yīng)能力,同時,在目標(biāo)搜索過程中,機器人能夠進行局部路徑規(guī)劃,對動態(tài)物體進行規(guī)避。相比窮舉式目標(biāo)搜索算法,在本文構(gòu)建的融合柵格-語義地圖中進行目標(biāo)搜索時,語義信息的引導(dǎo)及目標(biāo)與各個劃分區(qū)域的映射,極大縮小了移動機器人的搜索范圍,提高了機器人的搜索效率。
本文提出一種室內(nèi)未知環(huán)境下分層語義地圖的構(gòu)建方法,將環(huán)境中的語義信息與結(jié)構(gòu)信息進行融合,解決了傳統(tǒng)語義地圖算力消耗大、空間復(fù)雜度高的問題,具有良好的實時性,可為室內(nèi)機器人的決策提供環(huán)境及目標(biāo)信息。執(zhí)行目標(biāo)搜索任務(wù)時,相比窮舉遍歷搜索算法,在語義信息引導(dǎo)下進行的搜索具有更高的搜索效率。但是,目標(biāo)受遮擋情況下,本文構(gòu)建的融合語義地圖存在語義信息不完善情況,后期將設(shè)計魯棒性更強的柵格-語義融合方法,提高融合地圖的信息完整性及目標(biāo)搜索任務(wù)成功率。