魏 瑤,劉小毛,張 晗,席永輝,曹 爽,李思佳
(1. 西北工業(yè)大學(xué) 航天學(xué)院·西安·710000;2. 上海航天控制技術(shù)研究所·上?!?01109;3. 中國航天科技集團(tuán)有限公司紅外探測技術(shù)研發(fā)中心·上?!?01109;4. 西北工業(yè)大學(xué) 無人系統(tǒng)技術(shù)研究院·西安·710000)
人工智能的高速發(fā)展給無人機(jī)產(chǎn)業(yè)注入了蓬勃的生命力,無人機(jī)在各行各業(yè)中承擔(dān)著越來越重要的角色,尤其是在復(fù)雜的室內(nèi)環(huán)境中進(jìn)行避障規(guī)劃。由于小型無人機(jī)體積小、敏捷度高使得其能成功完成各種任務(wù),例如搜索、救援環(huán)境測繪和未知區(qū)域探索等,因此一套行之有效的避障算法保證無人機(jī)能夠安全執(zhí)行各種任務(wù)顯得尤為重要[1]。然而,避障算法的開發(fā)也面臨著各種各樣的挑戰(zhàn),其中之一便是小型無人機(jī)由于體積小、電池電量低而無法裝載沉重的傳感器,因此會(huì)降低避障算法的性能。
避障任務(wù)中常用的傳感器有超聲波傳感器、雷達(dá)傳感器、深度相機(jī)和單目相機(jī)。這些傳感器各有優(yōu)缺點(diǎn),超聲波傳感器在測量近距離障礙物時(shí)性能相對(duì)較好,但其性能會(huì)隨著與障礙物的增加而降低。雷達(dá)傳感器測量精度高、具有寬廣的探測范圍與探測視野,能夠提供來自周圍環(huán)境的豐富信息,但其與其他傳感器相比較,成本較高。此外,激光雷達(dá)傳感器的質(zhì)量使其很難在小型無人機(jī)上配備使用。深度相機(jī)可以提供無人機(jī)所處環(huán)境障礙物的幾何以及距離信息,但其自身質(zhì)量以及功耗可能會(huì)對(duì)無人機(jī)避障性能提出挑戰(zhàn)。與激光雷達(dá)和深度相機(jī)相比較,單目相機(jī)所能提供的信息較少,但其具有體積小、質(zhì)量小、能耗低、視野寬等優(yōu)點(diǎn),因此,在各種傳感器中單目相機(jī)更適合于小型無人機(jī)的避障感知。
為了充分利用上述單目相機(jī)的優(yōu)點(diǎn),研究人員開發(fā)了各種避障算法,但直接使用來自單目相機(jī)的RGB信息仍舊具有挑戰(zhàn)性。由于單目相機(jī)將來自環(huán)境的3D真實(shí)數(shù)據(jù)減少為2D圖像像素,很難從圖像中獲得準(zhǔn)確的距離信息。Alvarez H[2]等人使用RGB圖像構(gòu)建深度圖像,并基于該深度圖像生成無障礙路徑,從而成功地實(shí)現(xiàn)了無人機(jī)的避障功能,但是這種方法至少需要1s的時(shí)間來計(jì)算航路點(diǎn),這可能會(huì)導(dǎo)致無人機(jī)在躲避動(dòng)態(tài)障礙物時(shí)失敗。Cho S[3]等人利用光流來進(jìn)行避障?;诠饬鞯姆椒ú⒉恍枰叩挠?jì)算負(fù)載,因此非常適合在不配備高性能計(jì)算板的小型無人機(jī)身上使用,然而當(dāng)無人機(jī)處于無紋理或者障礙物巨大的環(huán)境中時(shí),基于光流的方法很難在這種環(huán)境下提取特征[4]。另一種基于視覺的避障方法為同步定位與地圖構(gòu)建(Simultaneous Localization and Mapping,SLAM)方法。視覺SLAM使用3D地圖信息估計(jì)無人機(jī)當(dāng)前的位置和方向,Mur-Artal R[5]等人使用SLAM方法來計(jì)算航路點(diǎn),從而在有障礙物的環(huán)境中對(duì)無人機(jī)進(jìn)行導(dǎo)航。然而,視覺SLAM方法要重新構(gòu)建無人機(jī)環(huán)境的地圖信息,并配合路徑規(guī)劃算法計(jì)算出無人機(jī)的避障路徑,因此對(duì)計(jì)算負(fù)載和內(nèi)存的要求高[6]。此外,光流法和視覺SLAM方法都需要適當(dāng)?shù)膮?shù)設(shè)置才能在避障環(huán)境中發(fā)揮出好的性能,當(dāng)避障環(huán)境出現(xiàn)變化時(shí)這些算法可能會(huì)失效。
作為機(jī)器學(xué)習(xí)的另一大分支,強(qiáng)化學(xué)習(xí)為無人機(jī)的自主避障提供了一種新的方法。強(qiáng)化學(xué)習(xí)根據(jù)智能體所處的環(huán)境狀態(tài)產(chǎn)生動(dòng)作以最大化獎(jiǎng)勵(lì)。在強(qiáng)化學(xué)習(xí)中,智能體通過反復(fù)試錯(cuò)從而學(xué)習(xí)得到特定的動(dòng)作策略(例如:跟蹤目標(biāo)、抓住物體或避開障礙物),同時(shí)自動(dòng)收集訓(xùn)練數(shù)據(jù)使得智能體最終可以在各種狀態(tài)下選擇最佳動(dòng)作。Singla A[7]等人使用生成對(duì)抗網(wǎng)絡(luò) (Generative Adversarial Network,GAN)進(jìn)行深度估計(jì)。在避障決策方面,它采用深度遞歸神經(jīng)網(wǎng)絡(luò) (Deep Recurrent Q-networks,DRQNs),將順序時(shí)間序列數(shù)據(jù)作為網(wǎng)絡(luò)輸入來解決深度 Q 網(wǎng)絡(luò) (DQN)中的部分可觀測性問題。Xie L[8]等采用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)來估計(jì)深度圖像,然后使用決斗雙深度 Q 網(wǎng)絡(luò)(Dueling Double Deep Q Network ,D3QN)通過估計(jì)得到的深度圖像來選擇最佳決策動(dòng)作。以上兩種方法通常表現(xiàn)出良好的性能,但由于它們的獎(jiǎng)勵(lì)功能,容易產(chǎn)生鋸齒形運(yùn)動(dòng)或旋轉(zhuǎn)運(yùn)動(dòng)。這些動(dòng)作可能需要過多的控制努力,這會(huì)導(dǎo)致任務(wù)失敗,尤其是對(duì)于電池容量較小的小型無人機(jī)而言。因此,需要設(shè)計(jì)一種新的獎(jiǎng)勵(lì)函數(shù),以適應(yīng)復(fù)雜環(huán)境,最大限度地減少電池?fù)p耗。目前,強(qiáng)化學(xué)習(xí)方法采用離散動(dòng)作輸出算法的研究居多,跳躍式的動(dòng)作取值方法對(duì)無人機(jī)的避障效果會(huì)帶來較大影響。
綜上所述,文中需要考慮到該避障算法應(yīng)基于單目相機(jī)并能應(yīng)用于負(fù)載較小的小型無人機(jī)避障之中,且由于小型無人機(jī)的低電池容量,該算法應(yīng)盡量減少不必要的運(yùn)動(dòng)?;谶@些條件,本文提出一種深度強(qiáng)化學(xué)習(xí)算法,該算法僅通過單目相機(jī)為無人機(jī)在室內(nèi)進(jìn)行避障任務(wù)時(shí)給出決策信息。本文的主要貢獻(xiàn)如下:
1)以無人機(jī)在復(fù)雜室內(nèi)環(huán)境中避障為背景,結(jié)合CGAN網(wǎng)絡(luò)實(shí)現(xiàn)了一種基于單目相機(jī)的無人機(jī)端到端避障算法;
2)針對(duì)傳統(tǒng)強(qiáng)化學(xué)習(xí)給出離散動(dòng)作空間決策信息,導(dǎo)致無人機(jī)避障效果差問題,提出一種基于深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)的強(qiáng)化學(xué)習(xí)方法,使無人機(jī)能夠進(jìn)行連續(xù)避障動(dòng)作控制,從而優(yōu)化避障軌跡;
3)分別在3D仿真環(huán)境和真實(shí)環(huán)境中進(jìn)行測試驗(yàn)證。
文中使用條件生成對(duì)抗網(wǎng)絡(luò)CGAN(Conditional GAN)來進(jìn)行從RGB圖像到深度圖像轉(zhuǎn)換。原始的GAN在生成圖像時(shí),不需要假設(shè)的數(shù)據(jù)分布,這種方法過于簡單,會(huì)導(dǎo)致生成過程不可控。與此同時(shí),CGAN是將無監(jiān)督轉(zhuǎn)換為有監(jiān)督模型的改進(jìn)網(wǎng)絡(luò),其在圖像生成過程中加入了有標(biāo)簽信息,從而增加了生成過程中的約束性和針對(duì)性。文中使用的CGAN方法擁有兩個(gè)獨(dú)立的卷積網(wǎng)絡(luò),分別為生成器和判別器。生成器學(xué)習(xí)為訓(xùn)練數(shù)據(jù)集中的每個(gè)標(biāo)簽生成逼真的樣本,而鑒別器則學(xué)習(xí)區(qū)分真的樣本-標(biāo)簽對(duì)與假的樣本-標(biāo)簽對(duì)。從某種意義來說生成器和鑒別器兩個(gè)網(wǎng)絡(luò)的目標(biāo)是相互對(duì)立的。其損失函數(shù)反映了該目標(biāo)。
LCGAN(θD,θG)=Ex,y~Pdata[logD(x,y)]+
Ex~pdata(x),z~pz(z)[log(1-
D(x,G(x,z)))]
(1)
其中,θD為判別器神經(jīng)網(wǎng)絡(luò)參數(shù),θG為生成器神經(jīng)網(wǎng)絡(luò)參數(shù),變量x為RGB圖片;z為噪聲圖像;變量y為其所對(duì)應(yīng)的真實(shí)深度圖片;G(x,z)為生成器所生成的深度圖片;D(x,y)為生成器所生成深度圖片被判別為真實(shí)的概率。在本文中使用U-net為CGAN為模型生成器,U-net可以看做是一種編碼-解碼器模型,它在編碼器和解碼器之間將不同層的相應(yīng)特征圖連接在一起。鑒別器由編碼器構(gòu)成,通過訓(xùn)練鑒別器從而區(qū)分真假圖片。其中CGAN的網(wǎng)絡(luò)架構(gòu)如圖1所示,生成器以隨機(jī)噪聲圖像z以及RGB圖像為輸入,生成服從實(shí)際圖像數(shù)據(jù)分布的“假”深度圖片G(z,y)。判別器的輸入為x,y以及G(z,y),其輸出為對(duì)生成器生成圖片G(z,y)的真假判別標(biāo)簽。文中CGAN 網(wǎng)絡(luò)生成器、判別器的具體網(wǎng)絡(luò)架構(gòu)與該網(wǎng)絡(luò)結(jié)構(gòu)[9]設(shè)計(jì)一致。
深度學(xué)習(xí)側(cè)重于“感知”,強(qiáng)化學(xué)習(xí)則與深度學(xué)習(xí)[10]不同,其側(cè)重于“表達(dá)”。深度強(qiáng)化學(xué)習(xí)[11]將深度學(xué)習(xí)“感知”能力與強(qiáng)化學(xué)習(xí)的序列決策能力相結(jié)合,使得智能體在復(fù)雜狀態(tài)空間下的決策問題得以解決。越來越多的研究人員已經(jīng)將深度強(qiáng)化學(xué)習(xí)應(yīng)用于無人機(jī)避障決策之中。深度強(qiáng)化學(xué)習(xí)一般由以下幾部分構(gòu)成:1)智能體Agent;2)交互環(huán)境E;3)狀態(tài)轉(zhuǎn)移方程P(表示智能體從一個(gè)狀態(tài)轉(zhuǎn)移到下一個(gè)狀態(tài)的概率);4)獎(jiǎng)勵(lì)函數(shù)R,其具體結(jié)構(gòu)如圖2 所示,智能體感知所在環(huán)境狀態(tài),將狀態(tài)信息作為深度神經(jīng)網(wǎng)絡(luò)輸入,神經(jīng)網(wǎng)絡(luò)根據(jù)狀態(tài)信息給出動(dòng)作策略,智能體執(zhí)行相應(yīng)動(dòng)作與環(huán)境發(fā)生交互,交互環(huán)境根據(jù)獎(jiǎng)勵(lì)函數(shù)以及狀態(tài)轉(zhuǎn)移規(guī)則給出智能體獎(jiǎng)勵(lì)r以及下一狀態(tài)s′。
深度強(qiáng)化學(xué)習(xí),將問題定義為一個(gè)馬爾科夫決策過程(Markov Decision Process,MDP)。無人機(jī)在避障過程中,下一時(shí)刻無人機(jī)所處的狀態(tài)僅僅依賴于當(dāng)前場景以及其采用動(dòng)作后的狀態(tài)轉(zhuǎn)移方程,而與之前所處的一系列歷史狀態(tài)無關(guān)。因此,可以將無人機(jī)的避障問題看做是一個(gè)馬爾可夫決策過程,從而納入到強(qiáng)化學(xué)習(xí)框架中進(jìn)行求解。通常情況下,將當(dāng)前狀態(tài)st、當(dāng)前動(dòng)作at、獎(jiǎng)勵(lì)值r以及下一狀態(tài)st+1作為一個(gè)元組(st,at,r,st+1)進(jìn)行收集并構(gòu)成集合(S,A,R,S′)。強(qiáng)化學(xué)習(xí)算法通過優(yōu)化目標(biāo)策略π:s→a,使得在st時(shí)刻累積獲得獎(jiǎng)勵(lì)R最大,則R的表達(dá)式為
(2)
其中,γ∈(0,1)為衰減因子,表示當(dāng)前時(shí)刻獎(jiǎng)勵(lì)對(duì)未來時(shí)刻的影響,t為當(dāng)前時(shí)刻,T為整個(gè)馬爾科夫決策過程。Q價(jià)值函數(shù)被定義為Qπ=E[Rt|st,at],其中,Rt為當(dāng)前時(shí)刻獎(jiǎng)勵(lì)值。強(qiáng)化學(xué)習(xí)的訓(xùn)練目標(biāo)為通過求得最優(yōu)策略π*,從而使公式(2)中R的期望最大,即尋找出最優(yōu)策略π*使得公式(3)成立。其中,s和a分別是此時(shí)智能體的狀態(tài)和動(dòng)作。
Qπ*(s,a)≥Qπ(s,a) ?s,a∈S,A
(3)
DDPG 算法[12]作為一種無模型的深度強(qiáng)化學(xué)習(xí)方法,無需對(duì)環(huán)境進(jìn)行精確建模便可以實(shí)現(xiàn)連續(xù)動(dòng)作策略輸出。該算法采用行動(dòng)者-評(píng)論家(Actor-Critic)的網(wǎng)絡(luò)結(jié)構(gòu),Actor網(wǎng)絡(luò)(記作μ(s|θμ))確定性地將狀態(tài)st映射到動(dòng)作,即基于當(dāng)前環(huán)境狀態(tài)給出無人機(jī)確定性動(dòng)作,Critic網(wǎng)絡(luò)(記作Q(s,a|θQ))根據(jù)當(dāng)前狀態(tài)動(dòng)作逼近計(jì)算動(dòng)作極值函數(shù),其中θμ和θQ分別為網(wǎng)絡(luò)參數(shù)。此外,為了減小對(duì)價(jià)值函數(shù)的過高估計(jì)對(duì)應(yīng)設(shè)計(jì)了行動(dòng)者目標(biāo)網(wǎng)絡(luò)μ(s|θμ′)和評(píng)論家目標(biāo)網(wǎng)絡(luò)Q(s|θQ′)。
1.3.1 Actor網(wǎng)絡(luò)
Actor網(wǎng)絡(luò)通過輸入當(dāng)前狀態(tài)信息給出基于當(dāng)前狀態(tài)信息的確定動(dòng)作策略,其中累積獎(jiǎng)勵(lì)與動(dòng)作有關(guān),因此可以通過梯度上升對(duì)Actor網(wǎng)絡(luò)參數(shù)θμ進(jìn)行更新,則Actor網(wǎng)絡(luò)的更新方式如公式(4)所示
(4)
1.3.2 Critic網(wǎng)絡(luò)
Critic網(wǎng)絡(luò)通過其神經(jīng)網(wǎng)絡(luò)參數(shù)θQ,對(duì)基于當(dāng)前狀態(tài)的動(dòng)作以Q值的形式給出評(píng)價(jià),該Q值以鏈?zhǔn)椒▌t的形式對(duì)公式(4)產(chǎn)生影響,因此準(zhǔn)確的Q值對(duì)Actor網(wǎng)絡(luò)的更新收斂有著至關(guān)重要的作用。Critic網(wǎng)絡(luò)通過最小化損失函數(shù)來進(jìn)行更新,并使得其評(píng)價(jià)值更加準(zhǔn)確。Critic網(wǎng)絡(luò)損失函數(shù)的計(jì)算方法如下所示
L(θQ)=Est~pβ,at~β,rt~E[(Q(st,at|θQ)-Q^)2]
Q^=rt+γQ′(st+1,μ′(st+1|θμ′)|θQ′)
(5)
1.3.3 目標(biāo)網(wǎng)絡(luò)
為避免自舉算法過高估計(jì)價(jià)值函數(shù),DDPG算法采用軟目標(biāo)更新策略,利用Actor目標(biāo)網(wǎng)絡(luò) 和Critic目標(biāo)網(wǎng)絡(luò)來計(jì)算目標(biāo)價(jià)值。其中,Critic 目標(biāo)網(wǎng)絡(luò)通過網(wǎng)絡(luò)參數(shù)θQ′來估計(jì)目標(biāo)Q值,Actor目標(biāo)網(wǎng)絡(luò)使用網(wǎng)絡(luò)參數(shù)θμ′來計(jì)算目標(biāo)動(dòng)作。其網(wǎng)絡(luò)更新方式如公式(6)所示。其中,τ為滑動(dòng)平均系數(shù),其取值通常小于1。
θQ′←τθQ+(1-τ)θQ′
θμ′←τθμ+(1-τ)θμ′
(6)
1.3.4 隨機(jī)噪聲
DDPG中的智能體動(dòng)作來源于Actor網(wǎng)絡(luò)μ(s|θμ)根據(jù)目前智能體所處的狀態(tài)信息而給出的確定性動(dòng)作,當(dāng)狀態(tài)信息相同時(shí),Actor網(wǎng)絡(luò)只會(huì)輸出相同的動(dòng)作結(jié)果使得探索的樣本減少。為使Actor網(wǎng)絡(luò)進(jìn)行更好的探索,將對(duì)策略μ添加隨機(jī)噪聲N,即μ′(st)=μ(st|θμ)+N使其輸出的動(dòng)作策略具有隨機(jī)性,可以進(jìn)行更多的探索。在實(shí)際訓(xùn)練中噪聲N隨訓(xùn)練迭代次數(shù)進(jìn)行線性衰減至0,不再對(duì)Actor網(wǎng)絡(luò)輸出產(chǎn)生影響。
本文的目標(biāo)是在室內(nèi)三維環(huán)境下,利用單目相機(jī)以及環(huán)境信息(無人機(jī)速度)進(jìn)行連續(xù)控制決策使得無人機(jī)能夠避開障礙物并達(dá)到目標(biāo)位置。系統(tǒng)的總體結(jié)構(gòu)如圖3所示,Actor網(wǎng)絡(luò)與Target-Actor網(wǎng)絡(luò)負(fù)責(zé)給出智能體動(dòng)作決策;Critic網(wǎng)絡(luò)與Target-Critic負(fù)責(zé)評(píng)估基于該狀態(tài)動(dòng)作的價(jià)值函數(shù);經(jīng)驗(yàn)回放池Memory負(fù)責(zé)存儲(chǔ)探索數(shù)據(jù);Airsim為無人機(jī)所交互運(yùn)行的仿真環(huán)境,獎(jiǎng)勵(lì)函數(shù)為人為設(shè)計(jì)的函數(shù),用來輸出動(dòng)作獎(jiǎng)勵(lì)值,鼓勵(lì)網(wǎng)絡(luò)朝著期望的方向訓(xùn)練。
圖3 系統(tǒng)模型Fig.3 System model
整個(gè)系統(tǒng)主要分為深度圖片估計(jì)、環(huán)境探索以及網(wǎng)絡(luò)訓(xùn)練兩個(gè)部分,如圖3所示,t時(shí)刻時(shí),獲得無人機(jī)所處環(huán)境狀態(tài)的RBG圖片,將RBG圖片輸入至已經(jīng)訓(xùn)練好的CGAN網(wǎng)絡(luò)之中生成深度圖片并輸出,通過將生成的圖片進(jìn)行處理得到此時(shí)的狀態(tài)信息st。Actor網(wǎng)絡(luò)根據(jù)此時(shí)的輸出狀態(tài)st給出無人機(jī)的動(dòng)作策略at=μ(st|θμ),并對(duì)該動(dòng)作添加噪聲后得到at=μ(st|θμ)+N,將此時(shí)的動(dòng)作at通過數(shù)據(jù)通信的形式發(fā)送至Airsim中的無人機(jī)上,無人機(jī)得到動(dòng)作信息與環(huán)境產(chǎn)生交互,產(chǎn)生下一個(gè)狀態(tài)值st+1以及動(dòng)作獎(jiǎng)勵(lì)值rt=R(st+1)。此時(shí),無人機(jī)完成環(huán)境探索將收集得到的數(shù)據(jù)(st,at,rt,st+1)存入經(jīng)驗(yàn)回放池中以供后續(xù)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。DDPG網(wǎng)絡(luò)訓(xùn)練采用離線訓(xùn)練方法,首先在經(jīng)驗(yàn)池中進(jìn)行采樣得到數(shù)據(jù)(st,at,rt,st+1),然后根據(jù)公式(4)更新Actor網(wǎng)絡(luò)使其朝著使Q值上升的方向訓(xùn)練。Target-Actor網(wǎng)絡(luò)根據(jù)采樣數(shù)據(jù)st+1計(jì)算動(dòng)作值at+1,將st+1,at+1傳遞給Target-Critic計(jì)算下一狀態(tài)的Q值Q^=Q(st+1,at+1|θQ′),同時(shí)Critic網(wǎng)絡(luò)計(jì)算當(dāng)前狀態(tài)Q值Q=Q(st,at|θQ)。通過最小化損失函數(shù)(式(5))更新Critic網(wǎng)絡(luò),并根據(jù)公式(6)更新目標(biāo)網(wǎng)絡(luò)。該結(jié)構(gòu)能夠在單步更新參數(shù)的同時(shí)控制連續(xù)變量,并借鑒了DQN算法的經(jīng)驗(yàn)回放(Experience replay)機(jī)制,從經(jīng)驗(yàn)回放池中隨機(jī)采樣,打亂狀態(tài)之間的相關(guān)性,加快收斂速度,提高數(shù)據(jù)利用率。
狀態(tài)空間:本文在仿真環(huán)境中進(jìn)行訓(xùn)練,利用單目攝像機(jī)作為感知器得到640×480的RGB圖像,該圖像通過深度估計(jì)網(wǎng)絡(luò)得到84×84的深度圖像。在得到深度圖片之后一般需要對(duì)圖像進(jìn)行預(yù)處理,從復(fù)雜信息中提取有效信息,以降低復(fù)雜度,提高算法效率。如圖4所示,本文將此時(shí)84×84的深度圖片轉(zhuǎn)換成84×84的灰度圖像dt,并疊加此時(shí)無人機(jī)的速度信息vt(該速度信息包括無人機(jī)x,y,z三個(gè)方向上的速度信息vx,vy,vz)作為此時(shí)的狀態(tài)信息st如公式(7)所示。在本實(shí)驗(yàn)中,使用灰度圖像不會(huì)影響學(xué)習(xí)性能,并且由于僅使用深度圖片進(jìn)行訓(xùn)練可以減少RGB圖片中紋理色彩對(duì)訓(xùn)練結(jié)果的影響,增強(qiáng)算法的泛化能力并有效提高計(jì)算速度。
圖4 狀態(tài)信息預(yù)處理Fig.4 Preprocessing of state information
st=[dt,vt]vt=[vx,vy,vz]
(7)
動(dòng)作空間:DDPG算法可以處理動(dòng)作連續(xù)情況下的決策問題,此處選擇無人機(jī)的狀態(tài):速度v(m/s)為主要?jiǎng)幼?,以避免利用位置信息需要全局定位的問題。在此基礎(chǔ)上,為了減少神經(jīng)網(wǎng)絡(luò)計(jì)算量,降低網(wǎng)絡(luò)訓(xùn)練難度,去除無人機(jī)偏航通道控制,將無人機(jī)看作為三自由度的質(zhì)點(diǎn)運(yùn)動(dòng),神經(jīng)網(wǎng)絡(luò)給出的動(dòng)作策略為三個(gè)不同方向的速度大小。此時(shí)無人機(jī)的動(dòng)作空間見表 1 。
表1 動(dòng)作空間表Tab.1 Action space table
獎(jiǎng)勵(lì)函數(shù)的設(shè)計(jì)與訓(xùn)練目的有關(guān),本文研究的目的是確保無人機(jī)能夠在充滿障礙物的室內(nèi)環(huán)境中,躲避障礙物并到達(dá)目標(biāo)位置。因此,獎(jiǎng)勵(lì)函數(shù)的設(shè)計(jì)既要保證無人機(jī)躲避開障礙物又要激勵(lì)無人機(jī)朝著指定位置飛行而不能原地不動(dòng)。在本文仿真中獎(jiǎng)勵(lì)函數(shù)的輸入設(shè)為{p,speed,collision},其中p為位置信息,用來計(jì)算無人機(jī)此時(shí)與目標(biāo)點(diǎn)之間的直線距離dist,speed為無人機(jī)當(dāng)前三個(gè)方向上的速度范數(shù),collision為碰撞標(biāo)志位,是由仿真環(huán)境所給出的無人機(jī)碰撞信息。當(dāng)collision為1時(shí)表示當(dāng)前無人機(jī)產(chǎn)生碰撞,為0時(shí)表示無人機(jī)處于安全飛行狀態(tài)。其算法交互過程如表 2 所示,當(dāng)無人機(jī)碰撞標(biāo)志位為1時(shí)說明無人機(jī)產(chǎn)生碰撞,則給予-20的懲罰并且結(jié)束該回合訓(xùn)練;當(dāng)無人機(jī)并未產(chǎn)生碰撞時(shí),檢測速度大小是否小于speed_limit,在本文中speed_limit設(shè)置為0.1是為了防止神經(jīng)網(wǎng)絡(luò)為了避免碰撞懲罰而原地不動(dòng);當(dāng)dist<0.3時(shí)說明無人機(jī)已經(jīng)到達(dá)目標(biāo)點(diǎn)附近則給予50獎(jiǎng)勵(lì),否則獎(jiǎng)勵(lì)值為本次無人機(jī)與目標(biāo)點(diǎn)之間距離與上一時(shí)刻距離之差,從而鼓勵(lì)無人機(jī)在避免產(chǎn)生碰撞的同時(shí)到達(dá)指定目標(biāo)位置。
表2 獎(jiǎng)勵(lì)函數(shù)計(jì)算過程Tab.2 Reward function calculation process
文中DDPG算法采用Actor-Critic結(jié)構(gòu),Actor和Critic的具體結(jié)構(gòu)如圖5、圖6所示,其具體參數(shù)設(shè)置如表4所示。Actor網(wǎng)絡(luò)通過輸入此時(shí)無人機(jī)的狀態(tài)信息,從而給出無人機(jī)基于該狀態(tài)的動(dòng)作。與傳統(tǒng)Actor網(wǎng)絡(luò)僅輸入深度信息進(jìn)行決策相比,本文采用多模態(tài)網(wǎng)絡(luò)來進(jìn)行決策信息處理,從而提高網(wǎng)絡(luò)對(duì)無人機(jī)的控制能力。根據(jù)協(xié)同表示方法,通過將速度信息與84×84的圖像信息映射到不同的特征子空間進(jìn)行處理。其中,使用9個(gè)卷積層來提取圖像特征信息,使用全連接層來處理速度信息。經(jīng)過卷積層后與同時(shí)經(jīng)過全連接處理的動(dòng)作信息進(jìn)行合并,并通過三個(gè)全連接層輸出動(dòng)作信息。
圖5 Actor網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 Actor network structure
圖6 Critic網(wǎng)絡(luò)結(jié)構(gòu)Fig.6 Critic network structure
表4 參數(shù)配置表Tab.4 Parameter configuration table
其次,在Critic網(wǎng)絡(luò)中,狀態(tài)信息的處理過程與Actor網(wǎng)絡(luò)的一致,其相應(yīng)的網(wǎng)絡(luò)結(jié)構(gòu)也相同,該過程被稱為“觀察預(yù)處理”。由于該動(dòng)作輸入為一維數(shù)據(jù),因此將其輸入一個(gè)具有128個(gè)單元的全連接層中進(jìn)行處理,使得動(dòng)作與處理后的狀態(tài)信息擁有相同形狀,該過程被稱為“動(dòng)作預(yù)處理”。接著將“觀察預(yù)處理結(jié)果”與“動(dòng)作預(yù)處理”結(jié)果,采用合并層結(jié)合在一起通過3個(gè)全連接層輸出基于該狀態(tài)的動(dòng)作評(píng)估值。
本文實(shí)驗(yàn)平臺(tái)為Window 10 操作系統(tǒng),CUDA 10.0,Tensorflow2.3.0,Python3.7,模擬環(huán)境為Airsim[13]。AirSim支持多種傳感器的仿真與自定義,包括攝像機(jī)、氣壓計(jì)、慣性測量單元、GPS、磁力計(jì)、深度攝像機(jī)、激光雷達(dá)等。它提供基于C++和Python的多種API,例如飛控接口、通信接口、圖像接口等,拓展性較高,便于進(jìn)行半實(shí)物仿真。因此,本文選擇其作為仿真系統(tǒng)的基礎(chǔ),開展無人機(jī)避障算法的研究。
在仿真實(shí)驗(yàn)中,無人機(jī)采用單目攝像機(jī)在其前向120°范圍內(nèi)采集來自環(huán)境的RGB圖片,以及利用IMU測量自身線速度作為狀態(tài)觀測值。在進(jìn)行算法訓(xùn)練測試過程中,為了能夠快速評(píng)估算法的有效性以及各種性能,本文選用在如圖7所示的無渲染的簡單仿真環(huán)境中進(jìn)行仿真。圖8為無人機(jī)避障訓(xùn)練過程,無人機(jī)開始訓(xùn)練時(shí)初始獎(jiǎng)勵(lì)值為0,當(dāng)無人機(jī)發(fā)生碰撞后會(huì)得到-20的懲罰,當(dāng)無人機(jī)沿著正確的路線飛行靠近目標(biāo)位置時(shí)會(huì)得到獎(jiǎng)勵(lì),最終當(dāng)無人機(jī)安全到達(dá)目標(biāo)點(diǎn)時(shí)會(huì)得到+50的獎(jiǎng)勵(lì)。無人機(jī)訓(xùn)練的總分值為訓(xùn)練時(shí)每一步獎(jiǎng)勵(lì)之和,因此訓(xùn)練結(jié)束后,當(dāng)總分值大于50時(shí)表明在當(dāng)前訓(xùn)練回合中,無人機(jī)能夠成功躲避所有障礙物并到達(dá)指定目標(biāo)點(diǎn),并且平均獎(jiǎng)勵(lì)值越高,表明無人機(jī)所選擇的避障路線更好。為了驗(yàn)證本文所提出算法的有效性,本文分別將DQN、DDPG、優(yōu)先經(jīng)驗(yàn)回放DDPG[14-15](DDPG Prioritized Experience Replay,DDPG-PER)等算法在該仿真環(huán)境中進(jìn)行訓(xùn)練測試。DDPG-PER為引入優(yōu)先經(jīng)驗(yàn)回放機(jī)制的算法,其目的在于提高數(shù)據(jù)利用率,加快訓(xùn)練速度。通過對(duì)比算法,可以驗(yàn)證所提出的新算法的有效性。
圖7 仿真環(huán)境示意圖Fig.7 Schematic diagram of the simulation environment
圖8 無人機(jī)避障訓(xùn)練過程Fig.8 UAV obstacle avoidance training process
如圖9~圖14分別給出了無人機(jī)訓(xùn)練過程中的總得分、平均獎(jiǎng)勵(lì)、網(wǎng)絡(luò)估計(jì)Q值、Actor 網(wǎng)絡(luò)損失值(Actor Loss)、Critic網(wǎng)絡(luò)損失值(Critic Loss)以及平均速度隨訓(xùn)練時(shí)間的變化情況。本次訓(xùn)練共6000個(gè)回合,從圖9中可以看出,本文所提出的DDPG算法在訓(xùn)練至500次時(shí)其累積得分便大于0,說明此時(shí)無人機(jī)已經(jīng)擁有躲避障礙物的能力,當(dāng)訓(xùn)練至1000次時(shí)期累積得分大于50,表明此時(shí)無人機(jī)已經(jīng)能夠成功躲避障礙物并到達(dá)指定目標(biāo)位置附近。與DDPG相比較,DQN算法在整個(gè)訓(xùn)練過程中整體總得分一直在0左右徘徊,說明無人機(jī)只學(xué)習(xí)得到了簡單的避障功能,但其可能只是在原地徘徊,或者在仿真環(huán)境 “漫游”而不能到達(dá)指定位置。圖10為平均獎(jiǎng)勵(lì)變化曲線,平均獎(jiǎng)勵(lì)計(jì)算方式為總得分除以無人機(jī)在該回合中的步數(shù),獎(jiǎng)勵(lì)值用來衡量在該訓(xùn)練中算法所給出每一步的動(dòng)作決策是否有用。通過對(duì)比可以看出,DDPG算法的平均獎(jiǎng)勵(lì)值明顯大于DQN算法的平均獎(jiǎng)勵(lì)值,在引入優(yōu)先經(jīng)驗(yàn)回放機(jī)制后,其算法的收斂性和穩(wěn)定性也得到了提升。DQN算法由于反復(fù)取用最大值理論會(huì)導(dǎo)致Q值過高估計(jì),從而影響正確決策動(dòng)作的給出。DDPG算法由于解耦了動(dòng)作決策和價(jià)值估計(jì)這兩個(gè)網(wǎng)絡(luò),可以明顯降低價(jià)值函數(shù)的過高估計(jì)。由于DQN算法網(wǎng)絡(luò)結(jié)構(gòu)與DDPG算法結(jié)構(gòu)不相同,因此其損失值沒有可比性,在此不予比較。圖14為無人機(jī)速度變化曲線,該速度為無人機(jī)在x、y、z三個(gè)方向上的速度范數(shù),從圖中可以看出最終無人機(jī)的速度會(huì)收斂至2.75m/s附近。
圖9 總得分變化曲線Fig.9 Total score change curve
圖10 平均獎(jiǎng)勵(lì)變化曲線Fig.10 Average reward curve
圖11 Q值變化曲線Fig.11 Q value change curve
圖12 Actor loss變化曲線Fig.12 Actor loss curve
圖13 Critic loss變化曲線Fig.13 Critic loss curve
圖14 速度變化曲線Fig.14 Speed curve
表 4所示為DQN和本文所提出DDPG算法模型所訓(xùn)練模型在測試環(huán)境中進(jìn)行100次測試后結(jié)果。DQN算法由于只能進(jìn)行離散動(dòng)作控制,因此設(shè)定其動(dòng)作空間分別為無人機(jī)在x,y,z三個(gè)方向上以2m/s的速度運(yùn)動(dòng)1s。其中DQN的平均累積得分和平均獎(jiǎng)勵(lì)值均遠(yuǎn)低于本文所提出模型。其累積得分小于0分說明,雖然在訓(xùn)練時(shí)DQN算法表現(xiàn)可以躲避障礙物,但測試時(shí)由于算法魯棒性不強(qiáng),很有可能因?yàn)橐粋€(gè)小的擾動(dòng)而導(dǎo)致無人機(jī)避障失敗。DDPG算法模型在100次測試中的平均累積得分大于50說明,在測試過程中幾乎每次測試,無人機(jī)都可以躲避障礙物并到達(dá)目標(biāo)位置。圖15為俯視下無人機(jī)避障路線對(duì)比圖,由于DDPG算法采用連續(xù)速度控制,所以其避障軌跡相對(duì)于其他算法而言更加光滑,避障效果更好。
表4 對(duì)比試驗(yàn)結(jié)果Tab.4 Comparative test results
該測試環(huán)境分別在原有場景的基礎(chǔ)上改變障礙物數(shù)量、顏色、大小以及分布情況,從而測試無人機(jī)是否真正學(xué)習(xí)到了躲避障礙物的能力。從圖15中可以看出,在改變障礙物大小以及分布時(shí)候,無人機(jī)仍具有躲避障礙物的能力。當(dāng)測試環(huán)境無人機(jī)起始位置、目標(biāo)位置與之前訓(xùn)練環(huán)境中一致時(shí),由于障礙物分布不同,無人機(jī)可能需更多的步數(shù)才能到達(dá)目標(biāo)位置,但仍舊可以成功躲避障礙并到達(dá)指定位置點(diǎn)。這表明使用算法所訓(xùn)練得到模型在未知環(huán)境中仍舊具有避障能力。
圖15 無人機(jī)避障路線俯視圖Fig.15 Overhead view of UAV obstacle avoidance route
本文將之前在訓(xùn)練場景中得到的DDPG模型應(yīng)用于真實(shí)環(huán)境下進(jìn)行測試,決策系統(tǒng)框架如圖16所示。本文所使用無人機(jī)為大疆Tello,該無人機(jī)配備有前置RGB攝像機(jī)以及IMU等可以讀取自身速度信息以及高度信息。由于Tello 無人機(jī)可以直接通過無線Wi-Fi信號(hào)對(duì)x,y,z軸上的速度信息進(jìn)行控制,因此本實(shí)驗(yàn)將深度信息估計(jì)模型與決策模型布置于本地計(jì)算機(jī)上,通過Wi-Fi通信讀取無人機(jī)自身的傳感數(shù)據(jù),在本地計(jì)算機(jī)上進(jìn)行計(jì)算,得到無人機(jī)相應(yīng)的決策動(dòng)作,再發(fā)送給無人機(jī)執(zhí)行動(dòng)作。
圖16 真實(shí)場景下的單目無人機(jī)避障決策框架Fig.16 Obstacle avoidance decision framework for monocular UAV in real scenes
經(jīng)過一系列實(shí)驗(yàn),對(duì)本文所訓(xùn)練的避障決策模型在兩個(gè)場景中進(jìn)行了性能測試,圖17所示為不同真實(shí)場景中決策模型所輸出的無人機(jī)各個(gè)方向上的避障動(dòng)作。其中,x方向?yàn)闊o人機(jī)左右方向,y為無人機(jī)前后方向,z為無人機(jī)上下方向。避障算法模型通過接收得到當(dāng)前環(huán)境狀態(tài)信息進(jìn)行計(jì)算決策,給出無人機(jī)當(dāng)前三個(gè)方向的速度大小,無人機(jī)飛控系統(tǒng)得到?jīng)Q策信息進(jìn)行解算,并通過俯仰、滾動(dòng)通道做出避障動(dòng)作完成避障。圖18所示為無人機(jī)在場景一和場景二中的避障路線。由此可以看出,在真實(shí)環(huán)境中,當(dāng)無人機(jī)遇到障礙物時(shí),也會(huì)做出相應(yīng)的避障動(dòng)作躲避障礙物,可見本文提出的避障算法在真實(shí)環(huán)境中仍舊有較好的避障能力。
(a)真實(shí)場景一
(b)真實(shí)場景二圖17 無人機(jī)避障算法輸出結(jié)果Fig.17 The output result of UAV obstacle avoidance algorithm
(a)真實(shí)場景一
(b)真實(shí)場景二圖18 真實(shí)場景下無人機(jī)避障路線示意圖Fig.18 Schematic diagram of UAV obstacle avoidance route in real scene
本文以無人機(jī)在未知三維室內(nèi)環(huán)境中僅使用單目相機(jī)進(jìn)行避障為研究背景,針對(duì)普通RGB圖片無法提取深度信息進(jìn)行避障以及無人機(jī)避障速度不連續(xù)問題展開研究。首先利用CGAN網(wǎng)絡(luò)從單目RGB圖像中預(yù)測深度圖片,接著采用DDPG算法進(jìn)行動(dòng)作決策,以有效解決連續(xù)動(dòng)作控制問題。在此基礎(chǔ)上,對(duì)DDPG算法中的Actor和Critic網(wǎng)絡(luò)進(jìn)行改進(jìn),通過引入多模態(tài)網(wǎng)絡(luò)將無人機(jī)當(dāng)前速度信息與深度圖片作為狀態(tài)信息共同在網(wǎng)絡(luò)中處理,從而提高算法控制的穩(wěn)定性與有效性。通過在仿真環(huán)境中進(jìn)行訓(xùn)練測試,表明本文所提出的算法模型能夠較好處理單目避障問題,與DQN算法相比較,無人機(jī)避障軌跡也更連續(xù),避障效果更好。最終,在實(shí)物上進(jìn)行驗(yàn)證,證明了本文所提出的避障算法的實(shí)際有效性。