本發(fā)明涉及無(wú)人機(jī)在低空環(huán)境中的路徑規(guī)劃和自主避障領(lǐng)域,具體為基于深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)的自主避障無(wú)人機(jī)。
背景技術(shù):
1、當(dāng)今,無(wú)人機(jī)技術(shù)的迅速發(fā)展與廣泛應(yīng)用,為許多領(lǐng)域帶來(lái)了前所未有的機(jī)會(huì)和挑戰(zhàn)。然而,在無(wú)人機(jī)的自主避障和路徑規(guī)劃方面,面對(duì)低空中復(fù)雜多變的環(huán)境,自主避障能力是無(wú)人機(jī)最關(guān)鍵的技術(shù)要點(diǎn),傳統(tǒng)的算法難以滿足實(shí)際需求。因此,如何開(kāi)發(fā)出一種既能夠適應(yīng)復(fù)雜環(huán)境又能夠保證高效、準(zhǔn)確的無(wú)人機(jī)低空自主避障和路徑規(guī)劃算法,一直是該領(lǐng)域研究人員的重點(diǎn)關(guān)注點(diǎn)。
2、無(wú)人機(jī)自主避障和路徑規(guī)劃領(lǐng)域廣泛應(yīng)用三種算法:傳統(tǒng)算法、基于智能仿生學(xué)算法和基于深度強(qiáng)化學(xué)習(xí)算法。傳統(tǒng)算法中例如a*算法、dijkstra算法等在面對(duì)復(fù)雜環(huán)境和動(dòng)態(tài)障礙物時(shí),其性能和魯棒性不足,而iifds算法雖然具有更高的效率和精確性,但處理復(fù)雜場(chǎng)景能力有限,無(wú)法應(yīng)對(duì)超大規(guī)模的搜索空間。此外,基于智能仿生學(xué)算法更具有生物學(xué)啟發(fā)性,如基于蟻群優(yōu)化、遺傳算法和粒子群優(yōu)化等,能提高無(wú)人機(jī)的避障性能,但訓(xùn)練時(shí)間長(zhǎng)、計(jì)算復(fù)雜度高,難以處理動(dòng)態(tài)環(huán)境中的避障問(wèn)題,限制了其實(shí)際應(yīng)用的效果和適用性。
3、目前sac算法在復(fù)雜動(dòng)態(tài)環(huán)境中存在著一些問(wèn)題:一是遇到復(fù)雜動(dòng)態(tài)障礙物時(shí),sac算法存在著算法收斂速度慢、容易陷入局部最優(yōu)等問(wèn)題,從而影響了無(wú)人機(jī)的避障性能和穩(wěn)定性。這些問(wèn)題主要源于sac算法采用的強(qiáng)化學(xué)習(xí)框架,無(wú)法快速適應(yīng)環(huán)境變化并找到最優(yōu)解。且對(duì)于動(dòng)態(tài)環(huán)境中的障礙物運(yùn)動(dòng)方向的感知不夠準(zhǔn)確,導(dǎo)致無(wú)人機(jī)避障時(shí)存在著不必要的誤判。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于提供基于深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)的自主避障無(wú)人機(jī),以解決上述背景技術(shù)中提出的問(wèn)題。
2、為了解決上述技術(shù)問(wèn)題,本發(fā)明提供如下技術(shù)方案:
3、基于深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)的自主避障無(wú)人機(jī),所述路徑規(guī)劃及避障方法包括以下步驟:
4、s1、構(gòu)建無(wú)人機(jī)的飛行控制模型,并初始化環(huán)境模型及神經(jīng)網(wǎng)絡(luò)參數(shù);
5、s2、設(shè)定經(jīng)驗(yàn)回放池,并對(duì)sac算法的獎(jiǎng)勵(lì)機(jī)制進(jìn)行設(shè)定;
6、s3、構(gòu)建深度強(qiáng)化學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,使用lstm網(wǎng)絡(luò)對(duì)無(wú)人機(jī)當(dāng)前的狀態(tài)空間進(jìn)行特征提取,并使用vae對(duì)提取的特征進(jìn)行優(yōu)化;
7、s4、判斷當(dāng)無(wú)人機(jī)距離最近障礙物的距離大于最大預(yù)警距離時(shí),將優(yōu)化后的狀態(tài)特征輸入sac網(wǎng)絡(luò)中,決策下一步動(dòng)作,并更新目標(biāo)參數(shù);
8、當(dāng)無(wú)人機(jī)距離最近障礙物的距離小于最大預(yù)警距離時(shí),計(jì)算新的目標(biāo)點(diǎn),并采用改進(jìn)的iifds算法與sac算法進(jìn)行智能決策;
9、s5、增加時(shí)間步數(shù),進(jìn)行下一輪訓(xùn)練直至結(jié)束,得出訓(xùn)練好的模型。
10、根據(jù)上述技術(shù)方案,在步驟s1中,構(gòu)建飛行控制模型,初始化環(huán)境模型及神經(jīng)網(wǎng)絡(luò)參數(shù)的步驟如下:
11、s2-1、設(shè)置無(wú)人機(jī)傳感器的探測(cè)范圍為d,無(wú)人機(jī)的最大警戒碰撞距離為dmin,無(wú)人機(jī)的偏航角速度和爬升角速度的最大值分別為vp和vs,其中限制無(wú)人機(jī)的偏航角速度和爬升角速度的最大值分別為vp和vs,是為了確保無(wú)人機(jī)的穩(wěn)定性和安全性,為了進(jìn)一步限制無(wú)人機(jī)的飛行姿態(tài),還需要設(shè)置最大爬升角為θmax,最大俯沖角為-θmax;
12、這些限制將有助于構(gòu)建無(wú)人機(jī)飛行控制模型,從而實(shí)現(xiàn)更加精準(zhǔn)的路徑規(guī)劃和避障。
13、s2-2、構(gòu)建三維地圖與起點(diǎn)終點(diǎn),并設(shè)置環(huán)境的時(shí)間步數(shù)和無(wú)人機(jī)初始狀態(tài)空間,初始化靜態(tài)障礙物和通過(guò)時(shí)間步長(zhǎng)δt來(lái)改變狀態(tài)的動(dòng)態(tài)障礙物,并分別加入到靜態(tài)障礙物列表staticb和動(dòng)態(tài)障礙物列表dynamicb中;
14、s2-3、對(duì)lstm網(wǎng)絡(luò)、vae編碼器網(wǎng)絡(luò)、解碼器網(wǎng)絡(luò)的參數(shù)分別進(jìn)行初始化,用隨機(jī)的網(wǎng)絡(luò)參數(shù)ω1、ω2和θ分別初始化sac算法的critic網(wǎng)絡(luò)qω1(s,a)、qω2(s,a)和actor網(wǎng)絡(luò)πθ(s)。
15、根據(jù)上述技術(shù)方案,在步驟s2中,設(shè)定獎(jiǎng)勵(lì)機(jī)制的步驟如下:
16、s3-1、設(shè)定經(jīng)驗(yàn)回放池r,對(duì)sac算法的獎(jiǎng)勵(lì)機(jī)制進(jìn)行設(shè)定:
17、rt=r1+r2+r3+r4+r5
18、其中r1表示為正常距離獎(jiǎng)勵(lì),r2表示碰撞獎(jiǎng)勵(lì),r3表示自由空間獎(jiǎng)勵(lì),r4表示步數(shù)獎(jiǎng)勵(lì),r5表示預(yù)警距離獎(jiǎng)勵(lì),rt表示在該時(shí)間步數(shù)下無(wú)人機(jī)在環(huán)境內(nèi)獲得的總獎(jiǎng)勵(lì)值。
19、根據(jù)上述技術(shù)方案,在步驟s3中,提取和優(yōu)化特征的步驟如下:
20、s4-1、對(duì)無(wú)人機(jī)的狀態(tài)空間的特征進(jìn)行提??;
21、s4-2、將提取到的特征輸入到vae網(wǎng)絡(luò)中,得到潛在變量集z,作為優(yōu)化后的特征表示;
22、s4-3、計(jì)算重構(gòu)損失lrec和kl散度,得出vae的總損失ltotal;
23、s4-4、使用梯度下降法最小化總損失;
24、根據(jù)上述技術(shù)方案,在步驟s4-1和s4-2中,所述得到優(yōu)化特征表示的步驟如下:
25、s5-1、將當(dāng)前時(shí)間步數(shù)下的無(wú)人機(jī)狀態(tài)空間特征輸入到lstm網(wǎng)絡(luò)中,利用當(dāng)前時(shí)刻的輸入和上一個(gè)時(shí)刻的中間狀態(tài)值來(lái)生成當(dāng)前時(shí)刻的狀態(tài)值;
26、s5-2、將當(dāng)前時(shí)刻的狀態(tài)值與當(dāng)前時(shí)刻的輸入值合并,并將合并后的值輸入到多層感知機(jī)中,多層感知機(jī)利用非線性函數(shù)對(duì)特征進(jìn)行提取,將多層感知機(jī)的輸出結(jié)果輸入到vae中;
27、s5-3、采用編碼器將特征信息x的分布經(jīng)過(guò)卷積層、激活層和全連接層轉(zhuǎn)碼成類(lèi)高斯分布di,編碼器輸出類(lèi)高斯分布的均值μ和標(biāo)準(zhǔn)差σ,基礎(chǔ)構(gòu)建完美的高斯分布d,利用完美高斯分布d的均值μ和標(biāo)準(zhǔn)差σ來(lái)得到潛在變量集z,作為優(yōu)化后的特征表示:
28、z=μ+σ⊙∈
29、其中∈表示一個(gè)服從高斯分布的噪聲向量。
30、根據(jù)上述技術(shù)方案,在步驟s4-3和s4-4中,計(jì)算總損失ltotal和最小化總損失的步驟如下:
31、s6-1、從潛在變量集z中隨機(jī)抽取一個(gè)潛在變量zi,用f∈(x)來(lái)表示編碼器工作過(guò)程,根據(jù)不同維度的均值μ和標(biāo)準(zhǔn)差σ計(jì)算出kl散度dkl,公式如下:
32、
33、式中i與zi中i的表示意義一樣,都代表潛變量集z的維度;
34、其中,kl散度是一個(gè)重要的指標(biāo),用于衡量潛在空間的分布與標(biāo)準(zhǔn)正態(tài)分布之間的差異;
35、s6-2、解碼器生成一個(gè)與zi相關(guān)的樣本xi.用p(xi|zi)來(lái)表示解碼器輸入潛在變量zi后生成樣本xi的過(guò)程,同時(shí)將優(yōu)化后的特征表示z輸入到sac網(wǎng)絡(luò)中;
36、其中,解碼器的目標(biāo)是將zi轉(zhuǎn)化為與訓(xùn)練數(shù)據(jù)相似的樣本,解碼器是一個(gè)結(jié)構(gòu)與編碼器相同的神經(jīng)網(wǎng)絡(luò),但是輸入是zi,輸出是特征向量xi;
37、在變分自編碼器中,使用梯度下降法來(lái)最小化總損失,優(yōu)化模型參數(shù),計(jì)算vae中的重構(gòu)損失lrec:
38、lrec=ex~d[|x-p∈(xi|f∈(x))|]2
39、其中,|·|表示向量的二范數(shù),d表示該過(guò)程運(yùn)算后的數(shù)據(jù)集,lrec表示這個(gè)生成樣本與原始輸入樣本之間的平方誤差的期望;
40、具體來(lái)說(shuō),對(duì)于將特征向量x作為輸入樣本,首先通過(guò)編碼器f∈(x)將其映射為一個(gè)潛在向量zi,然后再通過(guò)解碼器p(xi|z|i)將其還原為一個(gè)生成樣本xi;
41、解碼器重構(gòu)輸入特征樣本能力的高低體現(xiàn)在重構(gòu)損失的大小上,重構(gòu)損失越小,代表解碼器網(wǎng)絡(luò)優(yōu)化輸入特征樣本的能力越強(qiáng),所以最小化重構(gòu)損失可以提高解碼器優(yōu)化輸入特征樣本能力;
42、s6-3、使用最小化重構(gòu)損失和kl散度的加權(quán)和作為vae的總損失ltotal,公式如下:
43、ltotal=lrec+βdkl
44、其中,β是一個(gè)權(quán)重參數(shù),用于平衡重構(gòu)損失和kl散度之間的重要程度;
45、s6-4、計(jì)算總損失函數(shù)關(guān)于模型參數(shù)的梯度即通過(guò)計(jì)算損失函數(shù)關(guān)于vae網(wǎng)絡(luò)模型參數(shù)θ的梯度,確定了當(dāng)前參數(shù)的下降方向,接下來(lái)使用梯度下降算法按照下降方向更新模型參數(shù)最終達(dá)到最小化損失的目的;
46、其中,θ為參數(shù),α為學(xué)習(xí)率;
47、調(diào)節(jié)每次參數(shù)更新的步長(zhǎng)大小,通過(guò)迭代更新參數(shù),總損失逐漸減小,直到達(dá)到最大迭代次數(shù)或總損失的變化量小于設(shè)置的閾值。
48、根據(jù)上述技術(shù)方案,在步驟s4中,使用sac算法和iifds算法進(jìn)行綜合決策的步驟如下:
49、s7-1、在當(dāng)前時(shí)間步數(shù)下,根據(jù)當(dāng)前策略將優(yōu)化后的特征表示作為st輸入到sac算法的actor網(wǎng)絡(luò)的全連接層中,其中st為輸入狀態(tài)向量,將st進(jìn)行線性變換,得到一個(gè)隱藏層的輸出;
50、s7-2、通過(guò)relu激活函數(shù)進(jìn)行非線性變換,并將非線性變換后的輸出經(jīng)過(guò)一個(gè)激活函數(shù)tanh得到最終動(dòng)作at:
51、ht=relu(w1st+b1)
52、at=tanh(w2ht+b2)
53、其中,w1,w2,b1,b2分別表示actor網(wǎng)絡(luò)中的權(quán)重和偏置參數(shù),ht表示隱藏層的輸出,at表示最終的動(dòng)作,θ為其網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù);
54、s7-3、執(zhí)行動(dòng)作at判斷是否到達(dá)終點(diǎn),終止則設(shè)定e為1,否則為0,其中,e為是否終止訓(xùn)練的標(biāo)志。
55、在訓(xùn)練中,通常會(huì)設(shè)定最大步數(shù),也就是最大時(shí)間步數(shù),具體根據(jù)環(huán)境場(chǎng)景大小而定,同時(shí)也會(huì)設(shè)置一個(gè)距離閾值,在實(shí)驗(yàn)中可設(shè)置為0.2,在每個(gè)時(shí)間步計(jì)算無(wú)人機(jī)當(dāng)前位置與終點(diǎn)位置之間的距離,如果距離小于閾值,就認(rèn)為無(wú)人機(jī)已經(jīng)接近終點(diǎn),即e為1,終止這次訓(xùn)練,否則為0,如果在時(shí)間步數(shù)超過(guò)最大時(shí)間步數(shù)時(shí)無(wú)人機(jī)當(dāng)前位置與終點(diǎn)位置之間的距離并沒(méi)有小于0.2,依然終止這次訓(xùn)練,e設(shè)為1,否則為0。
56、根據(jù)上述技術(shù)方案,在步驟s4中,所述更新目標(biāo)參數(shù)的步驟如下:
57、s8-1、根據(jù)獎(jiǎng)勵(lì)公式得到rt,將(st,at,rt,st+1,e)存入回放池r和lstm的數(shù)據(jù)集中,其中,st+1表示執(zhí)行at后得到的下一步環(huán)境狀態(tài)向量;
58、在訓(xùn)練輪數(shù)k截止之前,從r中采樣n個(gè)元組對(duì)每個(gè)元組用目標(biāo)網(wǎng)絡(luò)計(jì)算td目標(biāo)yt:
59、
60、其中,為目標(biāo)q值函數(shù),πθ為策略函數(shù),at+1是根據(jù)actor網(wǎng)絡(luò)輸入st+1后得到的下一步動(dòng)作,但是本身不執(zhí)行動(dòng)作at+1,at+1僅用來(lái)計(jì)算td目標(biāo),得到最小化損失函數(shù),來(lái)更新sac算法的critic網(wǎng)絡(luò),γ代表折扣因子,αt是當(dāng)前時(shí)刻的溫度系數(shù);
61、s8-2、對(duì)sac算法的兩個(gè)critic網(wǎng)絡(luò)進(jìn)行損失函數(shù)l的最小化,更新對(duì)應(yīng)的神經(jīng)網(wǎng)絡(luò)的參數(shù);
62、
63、其中,j=1或2;q.,f,a0和q.,(gs,a)代表sac算法的兩個(gè)critic網(wǎng)絡(luò)在狀態(tài)sts8-3、用重參數(shù)化技巧采樣動(dòng)作來(lái)更新當(dāng)前actor網(wǎng)絡(luò),得到其代價(jià)函數(shù)lπ(θ),
64、
65、其中,α表示熵正則項(xiàng)的系數(shù),表示sac算法的actor網(wǎng)絡(luò)函數(shù),表示兩個(gè)critic網(wǎng)絡(luò)在狀態(tài)st下執(zhí)行動(dòng)作的狀態(tài)-價(jià)值的最小值;
66、s8-4、更新熵正則項(xiàng)的系數(shù)α后,更新其目標(biāo)網(wǎng)絡(luò)參數(shù)和7,直到e為1后終止訓(xùn)練。
67、根據(jù)上述技術(shù)方案,在步驟s4中,所述采用改進(jìn)的iifds算法與sac算法進(jìn)行智能決策的步驟如下:
68、s9-1、計(jì)算避障方向向量davoid:
69、
70、其中,p表示預(yù)警范圍內(nèi)障礙物的三維坐標(biāo),n表示預(yù)警范圍內(nèi)障礙物的個(gè)數(shù),pdrone表示無(wú)人機(jī)在空間中的三維坐標(biāo);
71、s9-2、計(jì)算新的速度向量vnew:
72、vnew=vdrone+αdavoid
73、其中,α是調(diào)整避障權(quán)重的系數(shù),vdrone代表無(wú)人機(jī)當(dāng)前速度向量;
74、這個(gè)公式表示,將避障方向向量乘以一個(gè)權(quán)重系數(shù),然后加到無(wú)人機(jī)的速度向量上,得到新的速度向量vnew;
75、s9-3、計(jì)算新的目標(biāo)點(diǎn)pgoal:
76、pgoal=pdrone+vnewδt;
77、這個(gè)公式表示,將新的速度向量乘以時(shí)間間隔后,加到當(dāng)前的無(wú)人機(jī)位置上,得到新的目標(biāo)點(diǎn)pgoal;
78、s9-4、根據(jù)原點(diǎn)與目標(biāo)點(diǎn)位置得到方向,根據(jù)sac算法的actor網(wǎng)絡(luò)和改進(jìn)的iifds算法所得到的方向和速度進(jìn)行綜合決策,并根據(jù)dmin進(jìn)行權(quán)重調(diào)整,以獲得下一步動(dòng)作:
79、ofinal=(1-w)·onew+w·o’new
80、vfinal=(1-w)·vnew+w·v’new
81、其中,onew和νnew分別代表iifds算法所得到的方向和速度,o’new和v’new分別代表sac算法所得到的方向和速度,ofinal為最終的運(yùn)動(dòng)方向,vfinal為最終的運(yùn)動(dòng)速度,w是一個(gè)在[0,1]區(qū)間的權(quán)重系數(shù),表示sac算法和iifds算法對(duì)綜合決策的重要程度;
82、s9-5、根據(jù)距離最近障礙物的dmin進(jìn)行動(dòng)態(tài)調(diào)節(jié)w,w的計(jì)算方法為:
83、
84、其中,k和b是人為設(shè)置的超參數(shù),這個(gè)函數(shù)可以使得當(dāng)dmin越大時(shí),w越接近于1,sac算法對(duì)綜合決策的重要程度越高;當(dāng)dmin越小時(shí),w越接近于0,iifds算法對(duì)綜合決策的重要程度越高;最終得到的ofinal和vfinal能夠作為無(wú)人機(jī)下一步的飛行方向和速度。
85、根據(jù)上述技術(shù)方案,在步驟s5中,所述得出訓(xùn)練好的模型步驟如下:
86、s10-1、增加時(shí)間步數(shù),無(wú)人機(jī)進(jìn)入新的狀態(tài)空間,重新使用lstm網(wǎng)絡(luò)對(duì)無(wú)人機(jī)的狀態(tài)空間進(jìn)行特征提取,并通過(guò)vae對(duì)lstm網(wǎng)絡(luò)輸出進(jìn)行優(yōu)化,最終將優(yōu)化結(jié)果作為特征直接輸入到sac網(wǎng)絡(luò)中重新決策下一步動(dòng)作;
87、s10-2、若判斷距離最近障礙物小于dmin,則綜合sac算法與iifds算法進(jìn)行決策,直至達(dá)到預(yù)設(shè)的最大訓(xùn)練輪數(shù)或者達(dá)到預(yù)設(shè)的最大步數(shù);
88、s10-3、若在達(dá)到預(yù)設(shè)的最大訓(xùn)練輪數(shù)或者最大步數(shù)之前到達(dá)終點(diǎn),將認(rèn)為該輪訓(xùn)練成功,保存相應(yīng)的模型參數(shù),并結(jié)束整個(gè)訓(xùn)練過(guò)程;
89、若到達(dá)最大訓(xùn)練輪數(shù)或最大步數(shù)但仍未到達(dá)終點(diǎn),則認(rèn)為該輪訓(xùn)練失敗,保存最后一次訓(xùn)練的模型參數(shù),并結(jié)束整個(gè)訓(xùn)練過(guò)程;
90、s10-4、當(dāng)達(dá)到結(jié)束指標(biāo)時(shí),最后的結(jié)果為一個(gè)訓(xùn)練好的模型,能夠直接用于實(shí)際場(chǎng)景中的無(wú)人機(jī)自主避障和路徑規(guī)劃任務(wù)。
91、與現(xiàn)有技術(shù)相比,本發(fā)明所達(dá)到的有益效果是:本發(fā)明能夠使無(wú)人機(jī)在低空復(fù)雜動(dòng)態(tài)環(huán)境下進(jìn)行高效路徑規(guī)劃且能夠及時(shí)躲避靜態(tài)或動(dòng)態(tài)障礙物,大大增強(qiáng)了無(wú)人機(jī)的即時(shí)避障功能,幫助無(wú)人機(jī)預(yù)測(cè)未來(lái)的運(yùn)動(dòng)軌跡和可能的障礙物位置和飛行路徑,實(shí)現(xiàn)更加精確和穩(wěn)定的飛行控制。在預(yù)警范圍內(nèi)綜合sac算法和iifds算法進(jìn)行決策,能夠?qū)崿F(xiàn)快速、高效的避障,有助于避免無(wú)人機(jī)因控制失誤而導(dǎo)致的事故。