龔波濤,汪孔屏,張雷
(國(guó)網(wǎng)上海市電力公司工程建設(shè)咨詢分公司,上海 200120)
隨著信息社會(huì)的不斷發(fā)展和人民生活水平的日益提高,人們對(duì)于智能化服務(wù)設(shè)備的要求也越來(lái)越高[1]。目前,智能機(jī)器人已逐漸成為日常生活中較為常見的智能化設(shè)備,無(wú)論是在公共服務(wù)、醫(yī)療保健、居家保潔等領(lǐng)域均有廣泛的應(yīng)用[2-3],但對(duì)于環(huán)境具有感知、決策和適應(yīng)能力的自主式智能機(jī)器人是當(dāng)前研究的難點(diǎn)。
自主式智能機(jī)器人的自主跟隨算法,是保證其完成指定任務(wù)的關(guān)鍵所在。現(xiàn)有的自主跟隨算法大多只能按既定路徑跟蹤和執(zhí)行任務(wù),對(duì)于程序未涉及或突發(fā)的情境無(wú)法進(jìn)行處理。此外,也存在部分算法具備一定的自主學(xué)習(xí)能力,但跟蹤精度與效率難以滿足現(xiàn)代生活對(duì)于機(jī)器人智能化的要求[4-5]。
針對(duì)上述問(wèn)題,該文提出了一種基于深度學(xué)習(xí)的智能機(jī)器人自主跟隨算法。利用搭建的智能機(jī)器人平臺(tái)獲取目標(biāo)信息,并采用深度學(xué)習(xí)算法分析目標(biāo)位置信息。從而能夠主動(dòng)識(shí)別并學(xué)習(xí)外界環(huán)境的變化,高精度、高效率地完成多場(chǎng)景的自主跟隨任務(wù)處理。
自主跟隨機(jī)器人需要跟隨目標(biāo)進(jìn)行移動(dòng),目前機(jī)器人的移動(dòng)方式主要分為履帶式、步行足式、輪式[6]。其中輪式移動(dòng)機(jī)器人具有較好的運(yùn)動(dòng)能力,簡(jiǎn)單的筒式機(jī)械結(jié)構(gòu)使其適用性更為廣泛。因此,該文研究的智能機(jī)器人采用輪式結(jié)構(gòu)[7]。
輪式智能機(jī)器人按車輪數(shù)目可以劃分成單輪、雙輪、H 輪、四輪,其中H 輪和四輪的穩(wěn)定性較為理想[8]。自主跟隨智能機(jī)器人的功能目標(biāo)在于跟隨與載物,因此采用四輪結(jié)構(gòu)。其包括了兩個(gè)支撐輪和兩個(gè)獨(dú)立驅(qū)動(dòng)輪,通過(guò)差速驅(qū)動(dòng)的方式,實(shí)現(xiàn)機(jī)器人的轉(zhuǎn)向。
機(jī)器人的底盤盒設(shè)為圓形,以便更優(yōu)地完成轉(zhuǎn)彎等運(yùn)動(dòng)。并在底盤盒中放置電池、電機(jī)驅(qū)動(dòng)器安裝跟隨控制系統(tǒng),這些配置具有一定的重量,在一定程度上保證了運(yùn)動(dòng)的平穩(wěn)性。同時(shí)在底盤盒上通過(guò)支撐桿銜接一個(gè)托盤,可用于放置物品。支撐桿的長(zhǎng)度是0.8 m,便于搭載目標(biāo)識(shí)別器件,如云臺(tái)和攝像機(jī)。驅(qū)動(dòng)輪軸上安裝有減速器與編碼器,可通過(guò)平鍵連接。
為了便于描述機(jī)器人的運(yùn)動(dòng),對(duì)其進(jìn)行幾何建模,機(jī)器人的瞬時(shí)旋轉(zhuǎn)中心和回轉(zhuǎn)半徑定義為G和R。機(jī)器人的方向由垂直于前輪軸的主軸給出,且之間的角度φ為方向角。機(jī)器人的二維平面模型,如圖1 所示。
圖1 機(jī)器人二維平面模型
假設(shè)機(jī)器人的運(yùn)動(dòng)是純平移與純勻速旋轉(zhuǎn),則智能機(jī)器人有兩種類型的運(yùn)動(dòng):笛卡爾坐標(biāo)系直線運(yùn)動(dòng)和圓形運(yùn)動(dòng)。數(shù)學(xué)模型公式,如下所示。
直線運(yùn)動(dòng)方程:
圓周運(yùn)動(dòng)方程:
式(1)、(2)中,φ為機(jī)器人軸的方向角,rw為車輪半徑,N為運(yùn)動(dòng)周期,ωg為回轉(zhuǎn)角速度,ωr為車輪的角速度,s為采樣期間的旋轉(zhuǎn)步長(zhǎng)。
從而可以推導(dǎo)出機(jī)器人的運(yùn)動(dòng)狀態(tài)與車輪速度的關(guān)系為:
式(3)中,2L為兩輪軸之間的長(zhǎng)度,v1、v2分別是兩輪的速度。
智能機(jī)器人基于攝像頭獲取目標(biāo)的信息,并利用深度學(xué)習(xí)分析目標(biāo)位置信息,從而完成目標(biāo)自主跟隨。
深度學(xué)習(xí)(Deep Learning,DL)的核心在于通過(guò)增加抽象級(jí)別學(xué)習(xí)數(shù)據(jù)的表示,而在更高層次上的抽象表示均通過(guò)在較低層次上的不抽象表示來(lái)完成定義[9-10]。這種分層學(xué)習(xí)過(guò)程較為強(qiáng)大,因?yàn)镈L允許系統(tǒng)直接從原始數(shù)據(jù)中理解和學(xué)習(xí)復(fù)雜的表示,使其在眾多學(xué)科中廣泛應(yīng)用[11]。目前,已有的DL結(jié)構(gòu)包括深度神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)、深度自編碼器、深度玻爾茲曼機(jī)、深度信念網(wǎng)絡(luò)、深度殘差網(wǎng)絡(luò)等[12-13]。
深度自編碼(Deep Autoencoder,DA)是通過(guò)堆疊多個(gè)自動(dòng)編碼器而獲得的,這些自動(dòng)編碼器是數(shù)據(jù)驅(qū)動(dòng)的無(wú)監(jiān)督模型。并將輸入量自動(dòng)投影到較輸入量更小的維空間以降低數(shù)據(jù)維度,其結(jié)構(gòu)如圖2 所示。在自動(dòng)編碼器中,輸入/輸出層使用等量的單位,而隱藏層使用較少的單位。非線性/線性變換體現(xiàn)在隱藏層單元中,并將給定輸入編碼轉(zhuǎn)為更小的維度[14]。雖然DA 需要一個(gè)預(yù)訓(xùn)練階段,且存在部分消失錯(cuò)誤,但因其數(shù)據(jù)壓縮能力較強(qiáng),并擁有多種變形結(jié)構(gòu),例如去噪自動(dòng)編碼器、稀疏自動(dòng)編碼器、變分自動(dòng)編碼器等,目前已獲得了廣泛應(yīng)用[15]。
圖2 DA的結(jié)構(gòu)
當(dāng)用于多模式學(xué)習(xí)時(shí),完全連接的自編碼器和DA的一個(gè)局限性均忽略了多維圖像結(jié)構(gòu)[16]。這樣,輸出不僅與普通大小的輸入有關(guān),且還引入了部分參數(shù),這些參數(shù)使得每個(gè)特征均跨越了整個(gè)視界。為此,該文通過(guò)引入卷積自編碼(Convolution Autoencoder,CA)實(shí)現(xiàn)了權(quán)重在輸入中的實(shí)時(shí)共享,從而保留空間局部性。
設(shè)輸入數(shù)據(jù)是Z={z1,z2,…,zn},濾波器映射定義成H={h1,h2,…,hm},數(shù)據(jù)深度是D,濾波器的尺寸是( 2k+1,2k+1,n)。通過(guò)卷積運(yùn)算獲得m個(gè)數(shù)據(jù)深度是D的激活映射,其數(shù)學(xué)表達(dá)式為:
式中,α是非線性的,濾波器映射所對(duì)應(yīng)的數(shù)據(jù)為p∈{1,…,m}。
上述激活映射即為數(shù)據(jù)Z的低維度編碼描述。采用Max-pooling 處理方式完成輸入數(shù)據(jù)大小的下采樣,且經(jīng)過(guò)兩層隱含層傳輸這一激活特征映射,并將其投影至d維的公共子空間。
此外,在解碼環(huán)節(jié)中采用反卷積,以將數(shù)據(jù)重新投影至原始空間。其與常規(guī)卷積一致,只是加大了輸入數(shù)據(jù)的維數(shù)。最終,CA 中輸入數(shù)據(jù)的重建由輸入數(shù)據(jù)最小化與重構(gòu)數(shù)據(jù)間的損失共同實(shí)現(xiàn)。即數(shù)學(xué)描述式為:
基于CA 學(xué)習(xí)模型提出了機(jī)器人自主跟隨算法,其流程如圖3 所示。
圖3 基于CA的自主跟隨算法流程
智能機(jī)器人首先接收目標(biāo)坐標(biāo),已知其(O,X,Y)坐標(biāo)系中的實(shí)際位置。然后基于攝像頭數(shù)據(jù)掌握環(huán)境和周圍障礙物情況,估計(jì)下一步要執(zhí)行的動(dòng)作。機(jī)器人通過(guò)該文算法獲取最優(yōu)化的跟隨位置,并參照已有參數(shù)計(jì)算出距離信息,設(shè)定參考跟隨距離。在此基礎(chǔ)上,對(duì)比經(jīng)過(guò)深度學(xué)習(xí)算法得到的實(shí)際距離值與設(shè)定閾值之間的大小關(guān)系。若實(shí)際距離值超過(guò)設(shè)定閾值,則機(jī)器人加快跟進(jìn);若實(shí)際距離值低于設(shè)定閾值,則機(jī)器人減慢跟隨速度。
實(shí)驗(yàn)在Google Colab 上進(jìn)行,內(nèi)存為12 GB,CPU為Intel(R)Xeon(R)2.30 GHz。在CA 網(wǎng)絡(luò)中,批大小設(shè)置為256,epoch 數(shù)設(shè)為25,并使用Adam 優(yōu)化算法進(jìn)行參數(shù)訓(xùn)練。實(shí)驗(yàn)中智能機(jī)器人云臺(tái)上搭載的攝像頭分辨率為2 048×2 048,各像素點(diǎn)轉(zhuǎn)換成距離后約為6 mm。
在目標(biāo)與智能機(jī)器人上分別人為設(shè)置一個(gè)記號(hào),通過(guò)Motive 光學(xué)捕獲軟件實(shí)現(xiàn)記號(hào)的不間斷跟蹤,則攝像機(jī)獲得的每一幀記號(hào)即是目標(biāo)與智能機(jī)器人的運(yùn)行軌跡點(diǎn)。利用Matlab 處理這些軌跡點(diǎn),從而獲得目標(biāo)與跟隨機(jī)器人的軌跡曲線,如圖4 所示。其采用中心位置平均誤差(Center Location Average Error,CLAE)作為評(píng)價(jià)指標(biāo),從而表示跟隨目標(biāo)的中心位置與手工標(biāo)定的準(zhǔn)確位置之間的平均誤差。
圖4 智能機(jī)器人的自主跟隨軌跡
由圖中可以看出,圖像軌跡與物體運(yùn)動(dòng)圖像仍存在偏差。此外,從CLAE 曲線可以看出完成直線運(yùn)動(dòng)時(shí),智能機(jī)器人與跟隨目標(biāo)的軌跡幾乎重疊,像素差值的最大值為5.2,轉(zhuǎn)換為等效距離約為5.2 cm。同樣,當(dāng)智能機(jī)器人跟著目標(biāo)人物完成曲線運(yùn)動(dòng)時(shí),兩者軌跡的重疊程度不如直線運(yùn)動(dòng),但像素差值的最大值為22,轉(zhuǎn)換為等效距離約23 cm。綜合來(lái)看,機(jī)器人能夠在復(fù)雜的環(huán)境下實(shí)現(xiàn)穩(wěn)定的自主跟隨。
為了論證所提出算法的跟隨性能,將與文獻(xiàn)[5]、文獻(xiàn)[8]、文獻(xiàn)[10]進(jìn)行對(duì)比分析,跟隨結(jié)果的準(zhǔn)確率,如表1 所示。其中,考慮了有目標(biāo)遮擋與無(wú)目標(biāo)遮擋兩種情況。
表1 跟隨準(zhǔn)確性對(duì)比分析
從表1 中可以看出,無(wú)論是有目標(biāo)遮擋還是無(wú)目標(biāo)遮擋,智能機(jī)器人采用CA 深度學(xué)習(xí)的自主跟隨算法的準(zhǔn)確率均保持在85%以上。由于無(wú)遮擋,目標(biāo)清晰且分析過(guò)程簡(jiǎn)單,因此跟隨準(zhǔn)確率高達(dá)91.36%。文獻(xiàn)[5]融合多傳感器信息,實(shí)現(xiàn)了機(jī)器人的自主跟隨定位以及躲避障礙,但缺乏高效的處理算法,因此跟隨準(zhǔn)確率不佳。尤其是在有目標(biāo)遮擋的情況下,準(zhǔn)確率僅為78.14%。文獻(xiàn)[8]利用A*算法和人工勢(shì)場(chǎng)法進(jìn)行機(jī)器人的路徑規(guī)劃,但未考慮遮擋等復(fù)雜情況。同樣,文獻(xiàn)[10]基于蟻群算法增強(qiáng)智能感知,雖然能夠快速尋得目標(biāo),但在復(fù)雜環(huán)境中容易出現(xiàn)目標(biāo)丟失,因此跟隨準(zhǔn)確率為84.12%,仍有待提升。
跟隨機(jī)器人具有廣闊的應(yīng)用場(chǎng)景,但目前能夠完成高精度自主跟隨的機(jī)器人技術(shù)尚未成熟。為此,提出了一種基于深度學(xué)習(xí)的智能機(jī)器人自主跟隨算法,并設(shè)計(jì)了自主跟隨智能機(jī)器人的機(jī)械結(jié)構(gòu)。利用CA 算法處理云臺(tái)獲取的目標(biāo)位置信息,并結(jié)合機(jī)器人運(yùn)動(dòng)模型完成準(zhǔn)確的目標(biāo)跟隨。此外,基于搭建的智能機(jī)器人平臺(tái)進(jìn)行實(shí)驗(yàn)結(jié)果表明,所提出的算法能夠?qū)崿F(xiàn)直線與曲線運(yùn)動(dòng)的高精度跟隨。并在無(wú)目標(biāo)遮擋場(chǎng)景中的跟隨準(zhǔn)確率最高達(dá)91.36%,達(dá)到了預(yù)期目標(biāo)。
文中所提出的算法僅實(shí)現(xiàn)了智能機(jī)器人的自主跟隨,對(duì)于遇到障礙物情況下的路徑規(guī)劃未展開研究。因此接下來(lái)的工作中,將重點(diǎn)探究避障及路徑規(guī)劃算法。