雷鵬飛,魏賢智,張啟瑞,齊 鐸,張志浩
(1.空軍工程大學(xué) 空管領(lǐng)航學(xué)院,西安 710051;2.空軍工程大學(xué) 航空工程學(xué)院,西安 710051;3.中國(guó)人民解放軍 93525部隊(duì),西藏 日喀則 857060)
隨著國(guó)家低空開(kāi)放政策的實(shí)施以及無(wú)人機(jī)技術(shù)的飛速發(fā)展[1],越來(lái)越多的中小型無(wú)人機(jī)將會(huì)穿梭在城市上空,進(jìn)行搜索救援、航空拍攝、氣象觀測(cè)以及貨物運(yùn)送等活動(dòng)。為了保證飛行安全,各國(guó)將無(wú)人機(jī)限制在特定空域內(nèi)進(jìn)行飛行,使無(wú)人機(jī)與有人機(jī)進(jìn)行隔離飛行。但隨著航空技術(shù)與航空事業(yè)的發(fā)展,在有限的空域資源內(nèi)往往存在有人機(jī)、無(wú)人機(jī)以及靜態(tài)障礙共存的混合空域。在混合空域中,一方面,需要無(wú)人機(jī)能在城市密集障礙環(huán)境中對(duì)靜態(tài)的樓宇障礙進(jìn)行有效地自主防碰撞,保證其飛行安全;另一方面,在混合空域中由于動(dòng)態(tài)障礙密集的加大,需要無(wú)人機(jī)能夠?qū)?dòng)態(tài)障礙進(jìn)行快速反應(yīng),具備在密集動(dòng)態(tài)障礙中快速防碰撞的能力[2]。
目前針對(duì)無(wú)人機(jī)自主防碰撞已經(jīng)有了許多研究。傳統(tǒng)的無(wú)人機(jī)自主防碰撞路徑規(guī)劃算法主要包括:可視圖法、Dijkstra算法、A*算法、RRT算法等??梢晥D法由Lozano-Perez和Wesley于1979年提出[3],其將障礙物視為多邊形,機(jī)器人視為一個(gè)點(diǎn),將起點(diǎn)、障礙物各頂點(diǎn)、終點(diǎn)的所有連線進(jìn)行組合連接,構(gòu)建可視圖的關(guān)鍵在于障礙物各頂點(diǎn)之間可見(jiàn)性的判斷,要求所連接線段不能穿過(guò)多邊形內(nèi)部,而后通過(guò)線段所賦權(quán)值的大小選取最優(yōu)路徑。Dijkstra算法[4]是一種經(jīng)典的廣度優(yōu)先的狀態(tài)空間搜索算法,其通過(guò)計(jì)算起點(diǎn)到環(huán)境模型中任意一點(diǎn)的最短距離從而得到全局最優(yōu)路徑。A*算法在廣度優(yōu)先的基礎(chǔ)上增加了一個(gè)代價(jià)函數(shù) ,既考慮了當(dāng)前節(jié)點(diǎn)與起點(diǎn)的距離代價(jià),同時(shí)也考慮了當(dāng)前節(jié)點(diǎn)與終點(diǎn)的距離代價(jià),通過(guò)調(diào)節(jié)的大小來(lái)調(diào)整算法的精度與速度。RRT算法[4]是一種簡(jiǎn)單有效的隨機(jī)算法,通過(guò)從根節(jié)點(diǎn)隨機(jī)向外擴(kuò)散,生成隨機(jī)擴(kuò)展樹(shù),當(dāng)葉子節(jié)點(diǎn)包含目標(biāo)點(diǎn)時(shí),即可獲得一條路徑。RRT算法雖然具有搜索效率快,能夠用于高維空間的優(yōu)點(diǎn),但是其隨機(jī)擴(kuò)展的方式,使得結(jié)果可能并不是最優(yōu)的,并且RRT算法并不適用于狹長(zhǎng)的搜索環(huán)境。
由于約束條件的增加以及環(huán)境模型復(fù)雜度的上升,傳統(tǒng)的路徑規(guī)劃算法在進(jìn)行路徑規(guī)劃時(shí),存在適應(yīng)性差、難以求解的問(wèn)題。為更好地解決路徑規(guī)劃問(wèn)題,智能優(yōu)化算法應(yīng)運(yùn)而生[5]。
智能優(yōu)化算法主要包括遺傳算法、蟻群算法、粒子群算法以及飛蛾撲火算法等。遺傳算法(GA)是借鑒達(dá)爾文進(jìn)化論、孟德?tīng)栠z傳機(jī)制提出的一種啟發(fā)式搜索算法。其本質(zhì)上是一種并行、全局搜索算法。文獻(xiàn)[6]提出了一種雙循環(huán)遺傳算法(DCGA,double-cycling genetic algorithm),在實(shí)驗(yàn)考慮環(huán)境模型及運(yùn)動(dòng)約束的情況下,提出了新穎的綜合適應(yīng)度函數(shù),利用兩次遺傳算法尋找最優(yōu)路徑,在第一次規(guī)劃中使用部分適應(yīng)度函數(shù),第二次規(guī)劃中使用整體適應(yīng)度函數(shù);通過(guò)雙循環(huán)機(jī)制,實(shí)現(xiàn)了靜態(tài)規(guī)劃和動(dòng)態(tài)避障相結(jié)合。與傳統(tǒng)遺傳算法相比,DCGA算法路徑規(guī)劃的結(jié)果更加符合實(shí)際。
文獻(xiàn)[7]提出了一種改進(jìn)的自適應(yīng)蟻群算法(IAACO),通過(guò)引入角度引導(dǎo)因子和障礙物排除因子,對(duì)ACO算法的實(shí)時(shí)性和安全性進(jìn)行改進(jìn),同時(shí)改進(jìn)了蟻群算法的信息素更新規(guī)則,并將路徑規(guī)劃問(wèn)題轉(zhuǎn)化為多目標(biāo)規(guī)劃問(wèn)題,最后在二維柵格環(huán)境當(dāng)中進(jìn)行仿真實(shí)驗(yàn),通過(guò)與ACO算法和IACO算法的對(duì)比分析,驗(yàn)證了IAACO算法在保證解的質(zhì)量的同時(shí),具有更快的收斂速度和更強(qiáng)的全局尋優(yōu)能力。
文獻(xiàn)[8]運(yùn)用BSO算法,其通過(guò)將粒子群算法(PSO)與天牛須算法(BAS)相結(jié)合,運(yùn)用天牛覓食的方式代替粒子尋優(yōu)過(guò)程,并運(yùn)用到三維路徑規(guī)劃當(dāng)中,通過(guò)實(shí)驗(yàn)證明BSO算法加快了迭代收斂速度,降低了算法陷入局部最優(yōu)解的概率。
文獻(xiàn)[9]提出用Lévy飛行軌跡改進(jìn)的飛蛾撲火優(yōu)化算法,提高了路徑規(guī)劃的收斂速度和尋優(yōu)精度;文獻(xiàn)[10]通過(guò)引入自適應(yīng)慣性權(quán)重對(duì)火焰更新機(jī)制進(jìn)行改進(jìn),通過(guò)對(duì)步長(zhǎng)進(jìn)行自適應(yīng)調(diào)整,對(duì)火焰位置產(chǎn)生擾動(dòng),充分利用了最優(yōu)火焰的位置,同時(shí)自適應(yīng)的方式很好地平衡了算法的全局搜索能力和局部搜索能力;其次引入遺傳算法交叉算子和高斯變異算子,將每次迭代產(chǎn)生的最優(yōu)火焰與其余火焰進(jìn)行交叉重組,使得算法在前期搜索過(guò)程中能夠跳出局部最優(yōu),加快算法的搜索效率。
文獻(xiàn)[11]通過(guò)Tent混沌映射對(duì)飛蛾種群的初始化過(guò)程進(jìn)行優(yōu)化,增加了解的均勻性和多樣性,增強(qiáng)了算法的全局搜索能力;而后借鑒模擬退火算法中的Metropolis準(zhǔn)則和遺傳算法的算術(shù)雜交操作,使得算法既能夠以一定概率接受當(dāng)前的劣解,同時(shí)也能夠以一定概率產(chǎn)生擾動(dòng),起到了既能夠產(chǎn)生擾動(dòng),同時(shí)又能控制擾動(dòng)誤差的作用。
本文通過(guò)分析人在密集障礙環(huán)境中的思想活動(dòng),參照人的發(fā)育式學(xué)習(xí)防碰撞機(jī)理,通過(guò)仿人的思維機(jī)制建立了面向混合空域中密集障礙的無(wú)人機(jī)實(shí)體模型和發(fā)育模型,最終構(gòu)建了基于仿人發(fā)育的無(wú)人機(jī)防碰撞方法。能夠有效解決無(wú)人機(jī)在進(jìn)入混合空域時(shí)自主防碰撞飛行,以及幫助無(wú)人機(jī)自主逃脫規(guī)劃路徑中的“死區(qū)”,最終到達(dá)安全區(qū)域。并能在密集障礙環(huán)境中,隨著環(huán)境熟悉度的提升而不斷發(fā)育自身防碰撞行為,減少路徑規(guī)劃所需時(shí)間[12-13]。
當(dāng)人在陷入密集障礙中時(shí),面對(duì)眾多的障礙,其會(huì)在密集障礙中進(jìn)行思考,從而選擇最安全的路徑進(jìn)行防碰撞。并在隨著對(duì)這種碰撞環(huán)境的熟悉程度提升,人會(huì)自身發(fā)育,從而“不假思索”地對(duì)環(huán)境產(chǎn)生反應(yīng),思考出安全路徑的時(shí)間越來(lái)越短。圖1為人在密集障礙中進(jìn)行發(fā)育式學(xué)習(xí)防碰撞的示意圖,黑色為障礙物,白色為身處障礙環(huán)境中的人,黑色曲線為人通過(guò)思考,對(duì)障礙環(huán)境所規(guī)劃的安全路徑。
圖1 人的發(fā)育式學(xué)習(xí)防碰撞示意圖
在初始遇見(jiàn)這種環(huán)境時(shí),人往往需要大量的時(shí)間對(duì)障礙進(jìn)行感知、預(yù)判,并通過(guò)大腦計(jì)算規(guī)劃出安全的路徑,但在密集動(dòng)態(tài)障礙環(huán)境中,動(dòng)態(tài)障礙在思考的時(shí)間內(nèi)會(huì)產(chǎn)生位移,影響人的安全,因此需要一種針對(duì)密集動(dòng)態(tài)障礙的快速防碰撞方法。人在密集障礙環(huán)境中會(huì)有一種條件反射式的防碰撞行為,這是因?yàn)殡S著人的成長(zhǎng),經(jīng)歷過(guò)許多的密集障礙環(huán)境,導(dǎo)致自身會(huì)對(duì)熟悉的環(huán)境進(jìn)行反應(yīng),并且隨著環(huán)境熟悉度的提升,對(duì)越熟悉的環(huán)境,往往需要思考的時(shí)間更為短暫[14-16]。
在混合空域中由于靜態(tài)建筑與建筑之間的空隙通常比較狹窄,并且動(dòng)態(tài)障礙密集難以預(yù)測(cè),這就為無(wú)人機(jī)的防碰撞帶來(lái)極大困難。如圖2所示,本文構(gòu)建了一個(gè)典型的混合空域環(huán)境模型示意圖,無(wú)人機(jī)的探測(cè)范圍如圖中黑色圓形所示,圖中陰影部分為混合空域中動(dòng)態(tài)障礙密集區(qū),灰色為靜態(tài)建筑障礙,黑色為動(dòng)態(tài)障礙。無(wú)人機(jī)需要根據(jù)自身攜帶的傳感器在混合空域中保證自身安全并能到達(dá)規(guī)定的目標(biāo)點(diǎn)[17-18]。
圖2 混合空域環(huán)境模型
在無(wú)人機(jī)路徑規(guī)劃的過(guò)程中,無(wú)人機(jī)的飛行軌跡不僅受到環(huán)境因素的影響,同時(shí)也受到因其設(shè)計(jì)、制造過(guò)程中已經(jīng)決定的自身性能的限制。本文針對(duì)的是在城市中使用的中小型旋翼無(wú)人機(jī),其具有靈活的機(jī)動(dòng)性,可以在飛行時(shí)忽略最小轉(zhuǎn)彎半徑與過(guò)載等因素,因此,我們可以把無(wú)人機(jī)作為一個(gè)可操縱的質(zhì)點(diǎn)[9],建立旋翼無(wú)人機(jī)的質(zhì)點(diǎn)運(yùn)動(dòng)方程:
圖3 無(wú)人機(jī)柵格化模型
針對(duì)傳統(tǒng)算法難以滿(mǎn)足混合空域密集障礙這種特殊環(huán)境的防碰撞要求,本文綜合運(yùn)用快速隨機(jī)生成樹(shù)模型以及廣度優(yōu)先搜索,在避障過(guò)程中仿照人的思想活動(dòng)構(gòu)造出適用于無(wú)人機(jī)自主防碰撞的發(fā)育準(zhǔn)則模型[19-20]。
快速隨機(jī)生成樹(shù)即快速遍歷隨機(jī)樹(shù)(RRT,rapidly-exploring random tree),是一種在已知環(huán)境中通過(guò)采樣擴(kuò)展的方式進(jìn)行搜索的算法。就其名稱(chēng)來(lái)看,Rapid-exploration指的是算法的效果,即實(shí)現(xiàn)快速的搜索;Random指的是搜索的方式,通過(guò)在環(huán)境中隨機(jī)采樣的方式探索整個(gè)環(huán)境;Tree指的是已搜索的位置通過(guò)樹(shù)狀結(jié)構(gòu)來(lái)存儲(chǔ),每個(gè)位置都有自己的父節(jié)點(diǎn)和子節(jié)點(diǎn),搜索完成的路徑通常是從樹(shù)的根節(jié)點(diǎn)到一個(gè)葉節(jié)點(diǎn)的路徑。該算法主要特點(diǎn):一是搜索速度快,二是該算法是概率完備的,即如果規(guī)劃時(shí)間足夠長(zhǎng),且確實(shí)存在一條可行路徑,RRT總是可以找出這條路徑的?;谝陨蟽牲c(diǎn),該方法經(jīng)常被應(yīng)用于無(wú)人機(jī)的路徑規(guī)劃問(wèn)題。但同時(shí)該算法也有比較明顯的缺點(diǎn),比如通常不最優(yōu)、規(guī)劃的路徑不平滑等。
廣度優(yōu)先搜索(BFS,breadth first search,寬度優(yōu)先搜索),是最簡(jiǎn)便的圖的搜索算法之一。BFS算法的核心思路就是:從某個(gè)點(diǎn)一直把其鄰接點(diǎn)走完,然后任選一個(gè)鄰接點(diǎn)把與之鄰接的未被遍歷的點(diǎn)走完,如此反復(fù)走完所有結(jié)點(diǎn)。類(lèi)似于樹(shù)的層序遍歷。廣度優(yōu)先搜索算法關(guān)注的重點(diǎn)在于對(duì)每一層結(jié)點(diǎn)進(jìn)行下一層的訪問(wèn)。
本文將通過(guò)綜合以上兩種算法模擬人的思想活動(dòng)及發(fā)育特性來(lái)實(shí)現(xiàn)無(wú)人機(jī)防碰撞路徑規(guī)劃。
假設(shè)無(wú)人機(jī)機(jī)載傳感器能夠感知周?chē)系K信息的距離為Rsensor,按照無(wú)人機(jī)的飛行區(qū)間將感知范圍進(jìn)行數(shù)字柵格化,對(duì)可飛域定義為0,障礙區(qū)域定義為1,如圖4所示。
圖4 無(wú)人機(jī)感知范圍柵格化標(biāo)注
利用廣度優(yōu)先算法,尋找一個(gè)飛行步長(zhǎng)內(nèi)所到達(dá)位置并進(jìn)行記錄,再?gòu)倪@些位置開(kāi)始,尋找下一個(gè)飛行步長(zhǎng)所能到達(dá)的所有位置(即兩個(gè)飛行步長(zhǎng)的所有位置),以此類(lèi)推直到記錄完感知范圍內(nèi)所有飛行區(qū)間,如圖5所示。
圖5 廣度優(yōu)先算法感知障礙示意圖
對(duì)于無(wú)人機(jī)來(lái)說(shuō),這種廣度優(yōu)先的思想雖然可以遍歷感知范圍,但數(shù)據(jù)量也會(huì)呈指數(shù)型增長(zhǎng)規(guī)劃時(shí)間也會(huì)不斷加大,影響算法的有效性。因此我們引入隨機(jī)生成樹(shù)模型[13]簡(jiǎn)化探索過(guò)程,可以極大減少探索時(shí)間。利用隨機(jī)生成樹(shù)模型進(jìn)行障礙感知的原理如圖6所示,對(duì)于可飛域算法將多個(gè)柵格合并進(jìn)行劃分,而對(duì)障礙區(qū)域則不斷進(jìn)行四等分,并進(jìn)行數(shù)據(jù)記錄。由于隨機(jī)生成樹(shù)具有分層數(shù)據(jù)結(jié)構(gòu)的特點(diǎn),而我們只需對(duì)障礙區(qū)域進(jìn)行探索,提高了搜索效率[21-22]。
圖6 隨機(jī)生成樹(shù)簡(jiǎn)化障礙搜索模型示意圖
根據(jù)向廣性準(zhǔn)則選取到飛行節(jié)點(diǎn)后,無(wú)人機(jī)有多條路徑進(jìn)行飛行到達(dá)所選取的航點(diǎn),設(shè)每條路徑的代價(jià)函數(shù)為路徑所遍歷的柵格數(shù),柵格數(shù)越多代表路徑越長(zhǎng),長(zhǎng)的飛行路徑不符合無(wú)人機(jī)飛行經(jīng)濟(jì)性要求。可計(jì)算每條路徑的飛行代價(jià)函數(shù)并取得最優(yōu)飛行路徑即代價(jià)函數(shù)最小、經(jīng)歷的柵格數(shù)最小的規(guī)劃路徑:
gpath=min(g1,g2,…,gn)
(2)
由于無(wú)人機(jī)不能獲取全局障礙信息而只能根據(jù)自身機(jī)載傳感器感知外界信息,因此在陷入某些死區(qū)時(shí)很難找到出路。而人在陷入死胡同時(shí),會(huì)進(jìn)行路徑的“試錯(cuò)”,即隨機(jī)挑選一條路徑行走并進(jìn)行記錄,當(dāng)此路不通,則返回路口繼續(xù)尋找另外路徑直到找到正確的出口為止。本文仿照這種思想進(jìn)行編程,在無(wú)人機(jī)發(fā)現(xiàn)進(jìn)入死區(qū)后,則返回上一飛行航路點(diǎn),并選擇其它點(diǎn)作為下一飛行節(jié)點(diǎn),如下所示:
算法: 死區(qū)脫逃準(zhǔn)則
重復(fù)
If 進(jìn)入死區(qū)
Then 回到上一節(jié)點(diǎn)opt(dot)
重新挑選路徑節(jié)點(diǎn)
直到 逃離死區(qū)
在無(wú)人機(jī)從死區(qū)逃出,并選擇另外通路,此時(shí)雖然不會(huì)選擇上一航路點(diǎn)進(jìn)行飛行,但選擇與上一航路點(diǎn)非常接近的航路點(diǎn)有時(shí)也可能會(huì)進(jìn)入同一死區(qū)。如圖7所示,無(wú)人機(jī)在通過(guò)航點(diǎn)1進(jìn)入死區(qū)并逃出后,此時(shí)還有航點(diǎn)2,3進(jìn)行飛行,但選擇航點(diǎn)2則會(huì)進(jìn)入同一死區(qū),造成重復(fù)探索甚至威脅無(wú)人機(jī)安全。
圖7 不同航點(diǎn)進(jìn)入相同死區(qū)示意圖
為了避免這種重復(fù)性的探索,我們定義鄰居集的概念,在無(wú)人機(jī)進(jìn)入死區(qū)需要重新尋找路徑點(diǎn)時(shí),避開(kāi)當(dāng)前位置點(diǎn)周?chē)欢ǚ秶狞c(diǎn),這一定的范圍即我們定義的鄰居集,從而可以使無(wú)人機(jī)在同一死區(qū)僅探索一次,提高搜索效率。假設(shè)在t時(shí)刻,無(wú)人機(jī)從死區(qū)逃脫并已知其最后從死區(qū)脫逃點(diǎn) ,則可定義與毗鄰點(diǎn)為其鄰居集,如式(3)所示:
(3)
尋找與D毗鄰點(diǎn)的鄰居,可找出下一次需要避免進(jìn)入同一死區(qū)的所有鄰居集,則在進(jìn)行航路點(diǎn)選取時(shí),只需避免這些死區(qū)鄰居集D(X,Y) ,即可避免進(jìn)入同一死區(qū)。如圖7中黑色點(diǎn)集,航路點(diǎn)1,2屬于同一鄰居集,而航路點(diǎn)3屬于另外鄰居集。
無(wú)人機(jī)所感知到的所有信息被傳送到大腦思考模塊,進(jìn)行經(jīng)驗(yàn)知識(shí)和當(dāng)前環(huán)境的對(duì)比判斷,將獲取到的知識(shí)在當(dāng)前環(huán)境下,根據(jù)感知到的經(jīng)驗(yàn)知識(shí),進(jìn)行推演、判斷,從而完成自身的發(fā)育行為。假設(shè)無(wú)人機(jī)的大腦為B(t),則B(t)的時(shí)變狀態(tài)更新函數(shù)ft與以下參數(shù)有關(guān):感知信號(hào)集合S(t)、動(dòng)作控制集合C(t)、無(wú)人機(jī)自身參數(shù)E以及當(dāng)前時(shí)刻的“大腦”B(t),則可構(gòu)建無(wú)人機(jī)的發(fā)育準(zhǔn)則為在當(dāng)前變量基礎(chǔ)上的不斷更新記憶的過(guò)程:
B(t+1)=ft(S(t),C(t),E,B(t))
(4)
通過(guò)本文對(duì)比人的發(fā)育式學(xué)習(xí)防碰撞思想,結(jié)合廣度優(yōu)先算法與快速生成隨機(jī)樹(shù)算法構(gòu)建出相應(yīng)的算法準(zhǔn)則并考慮鄰居集概念以及死區(qū)脫離機(jī)制,繼而設(shè)計(jì)混合空域中無(wú)人機(jī)發(fā)育防碰撞算法體系如圖8所示。
圖8 混合空域中無(wú)人機(jī)發(fā)育防碰撞算法體系圖
如圖8所示,在進(jìn)行無(wú)人機(jī)避撞航路規(guī)劃時(shí),首先按照廣度優(yōu)先與隨機(jī)生成樹(shù)相結(jié)合的方式對(duì)柵格化的地圖進(jìn)行搜索尋找代價(jià)函數(shù)最低的規(guī)劃路徑,并判斷當(dāng)前是否進(jìn)入死區(qū),如果進(jìn)入死區(qū)則返回上一個(gè)路徑點(diǎn)并在下一步的搜索中避免選擇進(jìn)入同一死區(qū)的所有鄰居集路徑點(diǎn),如果沒(méi)有進(jìn)入死區(qū)則繼續(xù)進(jìn)行路徑的規(guī)劃直到到達(dá)目標(biāo)點(diǎn)。
為了驗(yàn)證本文所提出的面向混合空域的無(wú)人機(jī)發(fā)育防碰撞算法在復(fù)雜環(huán)境中的有效性,本節(jié)從兩個(gè)方面對(duì)算法性能進(jìn)行仿真和分析:一是與傳統(tǒng)的A-Star算法進(jìn)行避障比較以及與基于圖論思想的Voronoi算法進(jìn)行對(duì)比分析,二是通過(guò)算法在同一環(huán)境中的不斷重復(fù)并記錄算法規(guī)劃航路的時(shí)間變化,測(cè)試其發(fā)育防碰撞性能。
假設(shè)無(wú)人機(jī)飛行速度2 m/s,初始位置在混合空域中。圖9是傳統(tǒng)A-Star算法與本文發(fā)育算法仿真結(jié)果對(duì)比圖。由圖中可以看出,傳統(tǒng)A-Star算法在陷入死區(qū)時(shí)并不能自主改出,無(wú)法為無(wú)人機(jī)提供安全的防碰撞航路。而本文所的發(fā)育算法能在進(jìn)入死區(qū)后根據(jù)所構(gòu)建的規(guī)則合理地規(guī)避障礙,并逃離死區(qū)。
圖9 A-Star算法與發(fā)育算法自主防碰撞對(duì)比示意圖
圖10是基于Voronoi算法與本文發(fā)育算法的防碰撞效果仿真對(duì)比圖。從圖中可以看出,基于Voronoi算法很容易從障礙中穿行而過(guò),而這種航線會(huì)嚴(yán)重威脅到無(wú)人機(jī)的安全。而在本文所構(gòu)建的發(fā)育防碰撞思想,可以避開(kāi)密集障礙,且在有限的可飛域中選擇安全的航路。
通過(guò)與A-Star算法和基于圖論思想的Voronoi算法進(jìn)行比較我們發(fā)現(xiàn),本文提出的發(fā)育算法在進(jìn)行無(wú)人機(jī)避障路徑規(guī)劃中可以給出合理的避障路徑并且避免了無(wú)人機(jī)為了避障而陷入“死胡同”無(wú)法到達(dá)目標(biāo)點(diǎn)的情況。相比于兩種傳統(tǒng)方法而言,具有明顯優(yōu)勢(shì)。
設(shè)定無(wú)人機(jī)的仿真環(huán)境為統(tǒng)一仿真環(huán)境,為保證發(fā)育防碰撞算法測(cè)試的有效性,預(yù)先規(guī)劃好動(dòng)態(tài)障礙的行進(jìn)路線。在同一環(huán)境中對(duì)算法不斷進(jìn)行測(cè)試,可以得到在環(huán)境中無(wú)人機(jī)防碰撞并且脫離混合空域的時(shí)間如圖11所示??梢钥闯觯S著環(huán)境熟悉度的提升,無(wú)人機(jī)脫離混合空域密集障礙的時(shí)間越來(lái)越短,如同人一樣在對(duì)環(huán)境進(jìn)行記憶不斷提高熟悉程度,達(dá)到發(fā)育的目的。當(dāng)發(fā)育到一定程度,無(wú)人機(jī)無(wú)法再進(jìn)行時(shí)間上的提升,這是由于已經(jīng)到達(dá)了最優(yōu)化,因此在自身性能之內(nèi),對(duì)環(huán)境已經(jīng)十分熟悉,發(fā)育完全,不能再進(jìn)行時(shí)間上的縮短。
圖11 發(fā)育防碰撞算法測(cè)試圖
綜合上述仿真結(jié)果可知,根據(jù)仿人發(fā)育防碰撞思想構(gòu)建無(wú)人機(jī)飛行準(zhǔn)則進(jìn)行發(fā)育防碰撞路徑規(guī)劃的方法,使得無(wú)人機(jī)可以在混合空域密集障礙中進(jìn)行高效合理的安全飛行,并且在進(jìn)入死區(qū)后能夠自主尋找逃出死區(qū)的合理航路。并且隨著環(huán)境熟悉度的提升,無(wú)人機(jī)自主規(guī)劃脫離混合空域密集障礙的時(shí)間越來(lái)越短,如同人一樣在對(duì)環(huán)境進(jìn)行記憶,不斷提高熟悉程度,達(dá)到發(fā)育的目的一樣。與其他算法相比,本文算法由于具有發(fā)育的特性,因此有更好的防碰撞性能,更加適合于混合空域密集障礙環(huán)境中無(wú)人機(jī)的安全飛行。
隨著航空技術(shù)與航空事業(yè)的不斷繁榮,尤其是無(wú)人機(jī)領(lǐng)域的蓬勃發(fā)展,在有限的空域資源內(nèi)有人機(jī)、無(wú)人機(jī)以及靜態(tài)障礙共存的混合空域已成必然趨勢(shì),而對(duì)于混合空域密集障礙中無(wú)人機(jī)的安全飛行是非常重要的問(wèn)題,現(xiàn)有的無(wú)人機(jī)避障路徑規(guī)劃方法普遍還有一定的局限性。本文通過(guò)考慮人的發(fā)育式學(xué)習(xí)防碰撞機(jī)理,基于仿人的思維機(jī)制建立相關(guān)的要素模型以及算法準(zhǔn)則,結(jié)合廣度有限、快速生成隨機(jī)樹(shù)等經(jīng)典算法以及死區(qū)逃脫、鄰居集等概念,給出了混合空域密集障礙中的無(wú)人機(jī)仿人發(fā)育自主防碰撞算法。仿真實(shí)驗(yàn)和分析證明,本文方法對(duì)于密集的靜態(tài)、動(dòng)態(tài)障礙的防碰撞是有效的,同時(shí)和傳統(tǒng)的路徑規(guī)劃算法相比更加安全可靠。并且隨著對(duì)環(huán)境的熟悉,無(wú)人機(jī)通過(guò)自身發(fā)育,需要進(jìn)行防碰撞算法計(jì)算的時(shí)間越來(lái)越短,如同人對(duì)陌生環(huán)境逐漸熟悉之后,路越走越通。后續(xù)對(duì)于如何將算法應(yīng)用于實(shí)踐,并且將算法拓展為三維防碰撞,是我們今后需要深入研究的方向。