羅汝斌,顏 鵬
(1.北京宇航系統(tǒng)工程研究所,北京 100076;2.哈爾濱工業(yè)大學(xué),哈爾濱 150001)
隨著科技的進(jìn)步,人類(lèi)對(duì)未知空間的探索逐步增加,目前已經(jīng)發(fā)射了大量的星際探測(cè)器,對(duì)太陽(yáng)系內(nèi)的行星進(jìn)行了探索。行星車(chē)通過(guò)對(duì)地外天體的直接探測(cè),探索氣候及地質(zhì)特征,搜索生命信號(hào),對(duì)人類(lèi)研究行星生命演化、開(kāi)發(fā)和利用空間資源具有重要的科學(xué)意義[1]。在探測(cè)復(fù)雜未知的行星環(huán)境過(guò)程中,行星車(chē)需要具備自主感知行星環(huán)境、規(guī)劃路徑的能力,以保障成功執(zhí)行任務(wù)。作為行星車(chē)自 主能力中的一項(xiàng)關(guān)鍵技術(shù),行星車(chē)自主導(dǎo)航方法已有廣泛的研究[2-3]。在大量的研究基礎(chǔ)上,單個(gè)行星車(chē)已經(jīng)可以執(zhí)行一些簡(jiǎn)單的任務(wù),但由于行星環(huán)境的復(fù)雜性,單個(gè)行星車(chē)所能執(zhí)行的任務(wù)有限,在極端情況下很有可能由于意外故障而導(dǎo)致任務(wù)執(zhí)行失敗。多行星車(chē)協(xié)同工作可以共享探測(cè)信息,迅速提升對(duì)未知非結(jié)構(gòu)化行星表面環(huán)境的認(rèn)知,擴(kuò)大行星車(chē)的探測(cè)范圍、探測(cè)速度以及探測(cè)能力,提高執(zhí)行任務(wù)的成功率?,F(xiàn)有的多車(chē)協(xié)同方法,如Leader-Follower[4]、虛擬結(jié)構(gòu)體法[5]、基于行為的方法[6]等不具備自學(xué)習(xí)能力,不能在未知環(huán)境中動(dòng)態(tài)調(diào)整自身的策略,從而不適用于行星 探測(cè)這種不確定性極高的任務(wù)。本文提出基于深度強(qiáng)化學(xué)習(xí)方法[7]的行星車(chē)協(xié)同探測(cè)方法,使行星車(chē)具備自學(xué)習(xí)的能力,可以根據(jù)不同的環(huán)境調(diào)整自身的策略;同時(shí),通過(guò)行星車(chē)之間的信息共享,加速學(xué)習(xí)過(guò)程。
本文研究?jī)蓚€(gè)行星車(chē)協(xié)同探測(cè)未知環(huán)境的問(wèn)題。給定一片未知區(qū)域E,兩個(gè)行星車(chē)ci(i=1,2),要求在最短的時(shí)間t內(nèi)探測(cè)完未知區(qū)域E。行星車(chē)配備激光雷達(dá)和視覺(jué)相機(jī)兩種探測(cè)傳感器,對(duì)行星環(huán)境進(jìn)行探測(cè)。環(huán)境中具有不確定的障礙Oi(i=1,2,...n),行星車(chē)通過(guò)激光雷達(dá)感知障礙,避免與障礙物相碰,通過(guò)視覺(jué)相機(jī)拍攝照片進(jìn)行探測(cè)。同時(shí),兩個(gè)行星車(chē)之間為了保持通信,其間距d必須在一定通信范圍dmax內(nèi)。小車(chē)的探測(cè)范圍可簡(jiǎn)化為一個(gè)扇形區(qū)域,由探測(cè)半徑rdet和角度θdet表示。該問(wèn)題可由下式表示:
兩個(gè)行星車(chē)協(xié)同探測(cè)未知環(huán)境的問(wèn)題如圖1所示:
圖1 兩個(gè)行星車(chē)探測(cè)未知環(huán)境Fig.1 Two planetary vehicles detect unknown environment
其中,藍(lán)色區(qū)域?yàn)榇綔y(cè)區(qū)域,紅色區(qū)域?yàn)殡S機(jī)分布的障礙,綠色扇形區(qū)域?yàn)樾≤?chē)的探測(cè)能力范圍。
本文使用Deep Q-network (DQN)[8]使兩個(gè)行星車(chē)具備協(xié)同探測(cè)未知環(huán)境的能力。DQN結(jié)合強(qiáng)化學(xué)習(xí)方法的自學(xué)習(xí)能力和深度神經(jīng)網(wǎng)絡(luò)的特征提取能力,在很多任務(wù)上具有和人類(lèi)相當(dāng)?shù)哪芰?,相比于其他深度?qiáng)化學(xué)習(xí)算法,DQN可以在線(xiàn)學(xué) 習(xí),根據(jù)環(huán)境實(shí)時(shí)調(diào)整自身策略,適用于行星車(chē)探測(cè)未知環(huán)境的任務(wù)。
我們將行星車(chē)探測(cè)的區(qū)域進(jìn)行柵格化處理,如圖2所示:
圖2 探測(cè)區(qū)域表示Fig.2 Detection area representation
其中,每個(gè)柵格具有三種信息,分別為:柵格i距行星車(chē)的距離di,柵格i與行星車(chē)中心的連線(xiàn)與行星車(chē)前向的夾角θi,以及柵格i是否被探索的標(biāo)志位flagi。若flagi=1,則表示柵格i已被探索,若flagi=0,則表示柵格i沒(méi)有被探索。假設(shè)探測(cè)區(qū)域被柵格化為K個(gè) 柵格,則探測(cè)覆蓋率η可表示為:
在強(qiáng)化學(xué)習(xí)任務(wù)中,智能體通過(guò)與環(huán)境的交互進(jìn)行學(xué)習(xí)。智能體觀(guān)察環(huán)境狀態(tài)St,采取動(dòng)作At,環(huán)境狀態(tài)隨之改變?yōu)镾t+1,同時(shí)智能體獲得獎(jiǎng)勵(lì)回報(bào)Rt+1,如圖3所示。
圖3 強(qiáng)化學(xué)習(xí)架構(gòu)Fig.3 Reinforcement learning architecture
智能體的學(xué)習(xí)目標(biāo)為選擇合適的動(dòng)作以最大化未來(lái)累計(jì)的獎(jiǎng)勵(lì)。在深度強(qiáng)化學(xué)習(xí)方法中,本文使用深度神經(jīng)網(wǎng)絡(luò)來(lái)近似最優(yōu)動(dòng)作-值函數(shù):
其中,π=P(a|s)是行為策略,γ為獎(jiǎng)勵(lì)折扣因子。
在兩個(gè)行星車(chē)探索環(huán)境的過(guò)程中,通過(guò)通信將經(jīng)驗(yàn)信息et=(st,at,rt,st+1)存放在同一個(gè)經(jīng)驗(yàn)數(shù)據(jù)集Dt={e1,…,et}中。在學(xué)習(xí)過(guò)程中,使用Q-learning的方法進(jìn)行網(wǎng)絡(luò)參數(shù)更新,隨機(jī)地在經(jīng)驗(yàn)數(shù)據(jù)集中選取訓(xùn)練樣本(s,a,r,s′)~U(D)。網(wǎng)絡(luò)損失函數(shù)如下式所示:
其中,θi是在第i次更新時(shí)Q值網(wǎng)絡(luò)的參數(shù),是在第i次更新時(shí)計(jì)算目標(biāo)函數(shù)的網(wǎng)絡(luò)參數(shù)。
行星車(chē)的指令動(dòng)作由角速度指令與線(xiàn)速度指令組成,其中角速度指令離散化處理為:(-1.0, -0.5, 0, 0.5, 1.0)rad/s,線(xiàn)速度指令離散化處理為:(0, 0.5, 1.0)m/s。行星車(chē)的指令動(dòng)作空間由離散后的角速度指令與線(xiàn)速度指令組合而成,共有15種指令動(dòng)作。圖4所示為行星車(chē)的線(xiàn)速度指令vc、角速度指令ωc。
圖4 行星車(chē)速度指令示意圖Fig.4 Planetary vehicle speed command diagram
圖5 網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 Network structure
在使用DQN進(jìn)行學(xué)習(xí)時(shí),深度神經(jīng)網(wǎng)絡(luò)需要處理激光雷達(dá)的數(shù)據(jù)、探測(cè)區(qū)域的信息以及行星車(chē)的運(yùn)動(dòng)信息。激光雷達(dá)的信息包括連續(xù)3次的掃描數(shù)據(jù),每一次包含180個(gè)數(shù)據(jù),掃描角度范圍為-90°~90°,掃描距離范圍為0.1~10.0m。探測(cè)區(qū)域的信息包含3個(gè)10×10的矩陣,分別表示每個(gè)柵格到行星車(chē)的距離、角度以及柵格是否已經(jīng)被探測(cè)的標(biāo)志位。將當(dāng)前行星車(chē)用下標(biāo)1表示,另外一輛行星車(chē)用下標(biāo)2表示。以行星車(chē)1為例,行星車(chē)運(yùn)動(dòng)信息包括:行星車(chē)1的線(xiàn)速度v1、角速度ω1,行星車(chē)2的線(xiàn)速度v2、角速度ω2,以及行星車(chē)2在行星車(chē)1體系下的位置,用極坐標(biāo)表示為距離和角度使用卷積神經(jīng)網(wǎng)絡(luò)[9]分別處理激光雷達(dá)數(shù)據(jù)以及探測(cè)區(qū)域信息,網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5中使用3個(gè)隱藏層處理激光雷達(dá)數(shù)據(jù),第一個(gè)隱藏層為一維卷積層,具有32個(gè)濾波器,卷積窗口的長(zhǎng)度為5,步長(zhǎng)為2;第二個(gè)隱藏層同樣是一維卷積層,具有32個(gè)濾波器,卷積窗口的長(zhǎng)度為3,步長(zhǎng)為2; 第三個(gè)隱藏層是具有32個(gè)非線(xiàn)性激活函數(shù)的全連接層。探測(cè)地圖信息的處理采用二維卷積層,同樣使用3個(gè)隱藏層進(jìn)行數(shù)據(jù)處理,第一個(gè)隱藏層具有32個(gè)濾波器,卷積窗口大小為(4,4),步長(zhǎng)為1,第二個(gè)隱藏層與第一個(gè)隱藏層參數(shù)一致,第三個(gè)隱藏層是具有32個(gè)非線(xiàn)性激活函數(shù)的全連接層。激光雷達(dá)與探測(cè)地圖信息經(jīng)過(guò)上述處理后,與行星車(chē)運(yùn)動(dòng)信息進(jìn)行融合,先通過(guò)一個(gè)具有128個(gè)非線(xiàn)性激活函數(shù)的全連接層,后通過(guò)一個(gè)具有15個(gè)線(xiàn)性激活函數(shù)的全連接層得到每個(gè)動(dòng)作的Q值。上述網(wǎng)絡(luò)所使用的非線(xiàn)性激活函數(shù)均為ReLU[10]。
本文的研究目標(biāo)是使兩個(gè)行星車(chē)以最快的速度探測(cè)完給定的區(qū)域,在探測(cè)過(guò)程中避免與探測(cè)區(qū)域內(nèi)的障礙相碰,同時(shí)兩個(gè)行星車(chē)需要保持在一定的距離范圍內(nèi),使行星車(chē)之間不能相碰且能保持正常通信?;谝陨峡紤],獎(jiǎng)勵(lì)函數(shù)設(shè)計(jì)為:
行星車(chē)i在t時(shí)刻收到的獎(jiǎng)勵(lì)由區(qū)域探測(cè)獎(jiǎng)勵(lì)rg、避碰獎(jiǎng)勵(lì)rc以及通信保持獎(jiǎng)勵(lì)rd組成。
式(6)表示當(dāng)區(qū)域覆蓋率增大時(shí),行星車(chē)將會(huì)收到一個(gè)正的獎(jiǎng)勵(lì),當(dāng)覆蓋率不變時(shí),將得到一個(gè)負(fù)的獎(jiǎng)勵(lì)。
避碰獎(jiǎng)勵(lì)rc如式(7)所示:
式(7)表示當(dāng)行星車(chē)之間的距離小于安全距離dmin或行星車(chē)與障礙物的距離小于安全距離dmin時(shí),行星車(chē)將會(huì)收到一個(gè)負(fù)的獎(jiǎng)勵(lì)。
通信保持獎(jiǎng)勵(lì)如式(8)所示:
式(8)表示當(dāng)行星車(chē)之間的間距超過(guò)通信最大距離時(shí),行星車(chē)將會(huì)收到一個(gè)負(fù)的獎(jiǎng)勵(lì)。
本文在仿真訓(xùn)練中將各參數(shù)假設(shè)為κg=10.0,rcollisiion=0.5,rcom=0.1。
在Gazebo軟件中搭建了行星車(chē)的仿真環(huán)境,進(jìn)行網(wǎng)絡(luò)的訓(xùn)練與算法的測(cè)試,如圖6所示。行星車(chē)需要探測(cè)的區(qū)域?yàn)橐粋€(gè)10m×10m的矩形區(qū)域,其中隨機(jī)分布著障礙物。行星車(chē)通過(guò)激光雷達(dá)感知障礙物,使用視覺(jué)相機(jī)獲取環(huán)境信息,完成探測(cè)任務(wù)。
圖6 仿真環(huán)境Fig.6 Simulation environment
在上述仿真環(huán)境中對(duì)行星車(chē)所使用的深度神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。在訓(xùn)練過(guò)程中,相關(guān)參數(shù)取值見(jiàn)表1。
訓(xùn)練過(guò)程進(jìn)行了5000個(gè)訓(xùn)練周期,每一個(gè)訓(xùn)練周期開(kāi)始之前將障礙物和兩個(gè)行星車(chē)的位置隨機(jī)重置,一個(gè)周期最大的訓(xùn)練步數(shù)為500步。一個(gè)訓(xùn)練周期的停止條件為達(dá)到最大訓(xùn)練步數(shù)或探測(cè)覆蓋率超過(guò)0.85。圖7為訓(xùn)練過(guò)程中的獎(jiǎng)勵(lì)函數(shù) 變化情況,其中顯示曲線(xiàn)是每50個(gè)相鄰訓(xùn)練周期獎(jiǎng)勵(lì)值的平均值與方差。由獎(jiǎng)勵(lì)變化曲線(xiàn)可以看出,在訓(xùn)練1000次之后,獎(jiǎng)勵(lì)值基本穩(wěn)定,表明網(wǎng)絡(luò)已經(jīng)收斂。
對(duì)4.2節(jié)中訓(xùn)練好的深度神經(jīng)網(wǎng)絡(luò)進(jìn)行10次隨機(jī)測(cè)試,結(jié)果如表2所示。
圖7 訓(xùn)練過(guò)程獎(jiǎng)勵(lì)變化曲線(xiàn)Fig.7 Training process reward curve
表2 仿真結(jié)果Table 2 Simulation results
由表2可知,在10次隨機(jī)測(cè)試中,行星車(chē)都可以完成探測(cè)任務(wù),因行星車(chē)的初始位置和障礙物的位置都是隨機(jī)設(shè)置,所以探測(cè)時(shí)間隨環(huán)境而異。仿真實(shí)驗(yàn)測(cè)試設(shè)定探測(cè)率超過(guò)0.85就算完成探測(cè)任務(wù),因此10次隨機(jī)測(cè)試中的探測(cè)率都在0.85以上。同樣可得,探測(cè)時(shí)間越長(zhǎng),獎(jiǎng)勵(lì)值越小,這與設(shè)定的獎(jiǎng)勵(lì)函數(shù)一致。10次測(cè)試中的某次探測(cè)過(guò) 程如圖8所示。
圖8為行星車(chē)?yán)糜?xùn)練好的深度神經(jīng)網(wǎng)絡(luò)進(jìn)行一次區(qū)域探測(cè)的結(jié)果,綠色為已探測(cè)區(qū)域,紅色區(qū)域?yàn)檎系K物,藍(lán)色和黑色實(shí)線(xiàn)為行星車(chē)軌跡。由圖8可知,兩個(gè)行星車(chē)在探測(cè)過(guò)程中,各自所探測(cè)的區(qū)域交集不大,大部分區(qū)域都是各自獨(dú)立探測(cè)的,這體現(xiàn)了行星車(chē)探測(cè)過(guò)程的協(xié)同行為,這種協(xié)同行為可以增加區(qū)域探測(cè)的效率。
圖8 區(qū)域覆蓋結(jié)果Fig.8 Regional coverage result
本文針對(duì)行星車(chē)探測(cè)未知區(qū)域問(wèn)題,提出了一種基于深度強(qiáng)化學(xué)習(xí)方法的自適應(yīng)協(xié)同探測(cè)方法。其中,行星車(chē)搭載激光雷達(dá)與視覺(jué)相機(jī)對(duì)未知區(qū)域進(jìn)行探測(cè),激光雷達(dá)傳感器感知環(huán)境中的障礙物,實(shí)現(xiàn)自主避障;視覺(jué)傳感器進(jìn)行圖片采集,實(shí)現(xiàn)區(qū)域探測(cè)。在協(xié)同探測(cè)過(guò)程中,將探測(cè)區(qū)域進(jìn)行柵格化處理,方便探測(cè)區(qū)域的表示以及探測(cè)覆蓋率的計(jì)算。為了提取環(huán)境特征,采用卷積神經(jīng)網(wǎng)絡(luò)處理激光雷達(dá)數(shù)據(jù)與探測(cè)區(qū)域地圖信息。為了保持行星車(chē)之間的有效協(xié)同以及信息共享,行星車(chē)之間的距離被限制在一定的范圍內(nèi)。在Gazebo軟件中搭建了仿真環(huán)境,進(jìn)行了深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練與測(cè)試,由仿真結(jié)果表明,該算法可使行星車(chē)快速的探測(cè)完給定的區(qū)域并避開(kāi)環(huán)境中的障礙物。