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