巫 茜,曾 青,羅金彪,鄺 茜,黃 浩
(重慶理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 重慶 400054)
隨著控制論、材料學(xué)、計(jì)算機(jī)與通信等相關(guān)學(xué)科技術(shù)的不斷進(jìn)步,無(wú)人機(jī)的性能得以大幅提升,出現(xiàn)了大量形態(tài)各異但制造成本不斷降低的無(wú)人機(jī),這使得無(wú)人機(jī)開(kāi)始大規(guī)模普及,在軍事和民用領(lǐng)域發(fā)揮了巨大作用[1-3]。自主與智能控制是無(wú)人機(jī)未來(lái)的發(fā)展趨勢(shì)[4-5],其中路徑規(guī)劃是提高無(wú)人機(jī)自主飛行水平和保障飛行安全的一項(xiàng)重要技術(shù),已經(jīng)成為了無(wú)人機(jī)領(lǐng)域的研究熱點(diǎn)。
路徑規(guī)劃指的是在一定約束條件下,為無(wú)人機(jī)規(guī)劃從起點(diǎn)到目標(biāo)點(diǎn)的最優(yōu)或可行航跡[6]。針對(duì)路徑規(guī)劃問(wèn)題,國(guó)內(nèi)外學(xué)者開(kāi)展了許多工作,提出了快速擴(kuò)展隨機(jī)樹(shù)法、人工勢(shì)場(chǎng)法、A*算法、蟻群算法、粒子群算法、遺傳算法等眾多方法[7-8]。在現(xiàn)有方法中,人工勢(shì)場(chǎng)法具有實(shí)現(xiàn)簡(jiǎn)單、實(shí)時(shí)性高、生成的路徑安全平滑等優(yōu)點(diǎn),因此在實(shí)時(shí)在線路徑規(guī)劃問(wèn)題上得到了廣泛應(yīng)用。但該方法也存在目標(biāo)不可達(dá)、易陷入局部極小值、局部震蕩等不足[9]。面對(duì)上述不足,學(xué)者們進(jìn)行了深入研究,并提出了眾多改進(jìn)方法。Sun等[10]通過(guò)改進(jìn)斥力勢(shì)場(chǎng)函數(shù)和動(dòng)態(tài)步長(zhǎng)調(diào)節(jié)策略來(lái)解決目標(biāo)不可達(dá)和局部震蕩問(wèn)題,但僅在二維環(huán)境下進(jìn)行簡(jiǎn)單仿真,且沒(méi)有考慮局部極小值問(wèn)題,不能滿足無(wú)人機(jī)在復(fù)雜三維環(huán)境下的飛行要求。馬婭婕等[11]將三維空間拆分為XOY和XOZ2個(gè)平面,對(duì)斥力勢(shì)場(chǎng)和引力勢(shì)場(chǎng)都進(jìn)行了改進(jìn),以規(guī)避位于預(yù)設(shè)航跡上的障礙物并消除局部極小值帶來(lái)的影響,但計(jì)算量較大,實(shí)時(shí)性較低。付澤民等[12]和梁獻(xiàn)霞等[13]通過(guò)引入虛擬障礙物,解決了局部極小值問(wèn)題,但文獻(xiàn)[12]中需要根據(jù)局部極小值附近的障礙物位置信息計(jì)算出虛擬障礙物的位置,存在一定局限性,且作者沒(méi)有給出選取障礙物的范圍以及計(jì)算方法,文獻(xiàn)[13]在局部極小值點(diǎn)處需要依次掃描60個(gè)扇區(qū),當(dāng)環(huán)境存在多個(gè)局部極小值且總是在排序靠后的扇形中找到虛擬障礙物時(shí),該方法會(huì)帶來(lái)計(jì)算量過(guò)大的問(wèn)題。唐嘉寧等[14]借鑒電勢(shì)場(chǎng)提出了模擬等勢(shì)線的概念,專(zhuān)門(mén)用于解決連續(xù)型障礙物帶來(lái)的易陷入局部極小值問(wèn)題,但存在轉(zhuǎn)向角過(guò)大、路徑長(zhǎng)度過(guò)長(zhǎng)等問(wèn)題。諶海云等[15]采用“沿目標(biāo)方向90°移動(dòng)”策略以跳出局部極小值,與文獻(xiàn)[14]類(lèi)似,也會(huì)造成路徑中存在大角度轉(zhuǎn)向的問(wèn)題,需要進(jìn)一步平滑路徑后才能供無(wú)人機(jī)使用。
針對(duì)上述算法的缺點(diǎn),本文在充分利用三維空間的基礎(chǔ)上,提出了一種改進(jìn)人工勢(shì)場(chǎng)法,該算法主要用于規(guī)劃旋翼無(wú)人機(jī)和微小型固定翼無(wú)人機(jī)在低空復(fù)雜三維環(huán)境下的路徑。改進(jìn)方法是:① 通過(guò)在斥力勢(shì)場(chǎng)函數(shù)中引入無(wú)人機(jī)與目標(biāo)點(diǎn)的相對(duì)距離來(lái)解決目標(biāo)不可達(dá)問(wèn)題;② 提出三維目標(biāo)分段法解決局部極小值和局部震蕩問(wèn)題。在Matlab仿真軟件中進(jìn)行了仿真實(shí)驗(yàn),仿真結(jié)果表明,提出的改進(jìn)方法計(jì)算量小,能使無(wú)人機(jī)快速且連續(xù)擺脫多個(gè)局部極小值,在三維復(fù)雜環(huán)境下順利到達(dá)目標(biāo)點(diǎn)。
人工勢(shì)場(chǎng)法的基本原理是構(gòu)建一個(gè)虛擬勢(shì)場(chǎng),由目標(biāo)點(diǎn)對(duì)無(wú)人機(jī)持續(xù)產(chǎn)生引力作用,障礙物在一定范圍內(nèi)對(duì)無(wú)人機(jī)產(chǎn)生斥力作用,根據(jù)平行四邊形法則產(chǎn)生二者的合力,無(wú)人機(jī)最終將在合力作用下到達(dá)目標(biāo)點(diǎn)。
人工勢(shì)場(chǎng)的構(gòu)建依賴(lài)引力勢(shì)場(chǎng)函數(shù)和斥力勢(shì)場(chǎng)函數(shù),分別如式(1)和式(2)所示。
(1)
(2)
式中:X、Xg、Xo分別代表無(wú)人機(jī)、目標(biāo)點(diǎn)和障礙物所在位置,α為引力增益系數(shù),β為斥力增益系數(shù),ρ(X,Xg)為無(wú)人機(jī)與目標(biāo)點(diǎn)之間的歐氏距離,ρ(X,Xo)為無(wú)人機(jī)與障礙物之間的歐氏距離,ρo為障礙物對(duì)無(wú)人機(jī)產(chǎn)生斥力作用的最遠(yuǎn)距離。
對(duì)式(1)和式(2)求負(fù)梯度,可以得到相應(yīng)的引力函數(shù)和斥力函數(shù),分別如式(3)和式(4)所示。
Fatt(X)=-▽Uatt(X)=αρ(X,Xg)
(3)
(4)
最終求得的合力如式(5)所示。
Ftotal(X)=Fatt(X)+Frep(X)
(5)
圖1直觀地展示了無(wú)人機(jī)在人工勢(shì)場(chǎng)法中的受力情況。障礙物1和障礙物2分別產(chǎn)生斥力Frep1和Frep2,障礙物對(duì)無(wú)人機(jī)的總斥力為Frep,而目標(biāo)點(diǎn)對(duì)無(wú)人機(jī)的引力為Fatt,最終的合力為Ftotal。
圖1 人工勢(shì)場(chǎng)法中無(wú)人機(jī)受力分析示意圖
物體在目標(biāo)點(diǎn)附近因斥力大于引力,無(wú)法到達(dá)目標(biāo)點(diǎn)的情況被稱(chēng)為目標(biāo)不可達(dá)問(wèn)題[16]。如圖2所示,當(dāng)目標(biāo)點(diǎn)與障礙物比較接近時(shí),隨著無(wú)人機(jī)越來(lái)越靠近目標(biāo)點(diǎn),也越來(lái)越靠近障礙物,因此ρ(X,Xo)和ρ(X,Xg)遞減。由式(3)和式(4)可知,斥力Frep逐漸增大,而引力Fatt卻逐漸減??;越靠近目標(biāo)點(diǎn),斥力越大,以至于斥力大于引力,導(dǎo)致無(wú)人機(jī)無(wú)法到達(dá)目標(biāo)點(diǎn)。
圖2 目標(biāo)不可達(dá)問(wèn)題示意圖
傳統(tǒng)人工勢(shì)場(chǎng)法的另一個(gè)主要缺陷是存在局部極小值和局部震蕩問(wèn)題[17-18]。原因在于人工勢(shì)場(chǎng)法中可能存在局部極小值點(diǎn),當(dāng)規(guī)劃過(guò)程中遇到這樣的點(diǎn)時(shí),無(wú)人機(jī)受到的合力接近或等于零,造成規(guī)劃終止;而在遇到以U型障礙為代表的非凸障礙物時(shí),斥力作用時(shí)而大于引力作用,時(shí)而小于引力作用,或者斥力作用一直占主要地位,但其方向頻繁大幅改變,從而導(dǎo)致規(guī)劃的路徑上產(chǎn)生局部震蕩現(xiàn)象。
典型的局部極小值問(wèn)題如圖3所示。在圖3中,無(wú)人機(jī)、目標(biāo)點(diǎn)以及障礙物在同一直線上,該直線上必有一處引力和斥力大小相等而方向相反的點(diǎn),此時(shí)合力為零,形成局部極小值點(diǎn),無(wú)人機(jī)在該點(diǎn)處將停滯不前。
圖3 典型局部極小值問(wèn)題示意圖
圖4為典型的局部震蕩現(xiàn)象示意圖,兩障礙物組成狹窄通道,導(dǎo)致無(wú)人機(jī)在通過(guò)該通道時(shí)的前進(jìn)方向頻繁大幅改變,因機(jī)動(dòng)性能有限,無(wú)人機(jī)很有可能無(wú)法按該路徑飛行。
圖4 典型局部震蕩現(xiàn)象示意圖
為解決目標(biāo)不可達(dá)問(wèn)題,可將無(wú)人機(jī)與目標(biāo)點(diǎn)之間的相對(duì)距離引入斥力勢(shì)場(chǎng)函數(shù)[13,15]。改進(jìn)后的斥力勢(shì)場(chǎng)函數(shù)如式(6)所示,式中n可取任意大于零的常數(shù)。
(6)
對(duì)式(6)所示的斥力勢(shì)場(chǎng)函數(shù)使用復(fù)合函數(shù)鏈?zhǔn)角髮?dǎo)法則,可得斥力函數(shù),如式(7)—(9)所示。
(7)
(8)
(9)
式(7)中的F1和F2分別如式(8)和式(9)所示,F(xiàn)1和F2中的偏微分都是單位向量,均指向無(wú)人機(jī)。
改進(jìn)后的斥力將受無(wú)人機(jī)與目標(biāo)點(diǎn)之間距離的影響,確保無(wú)人機(jī)在接近目標(biāo)點(diǎn)時(shí)的斥力作用小于引力作用,使無(wú)人機(jī)能夠到達(dá)目標(biāo)點(diǎn)。
考慮到無(wú)人機(jī)在復(fù)雜環(huán)境下可能遇到多個(gè)局部極小值點(diǎn)或局部震蕩問(wèn)題,無(wú)法直接到達(dá)目標(biāo)點(diǎn),提出一種將路徑分段的方法,通過(guò)在合適的位置設(shè)定子目標(biāo)點(diǎn),以暫時(shí)取代目標(biāo)點(diǎn)對(duì)無(wú)人機(jī)產(chǎn)生引力作用,保證無(wú)人機(jī)能到達(dá)子目標(biāo)點(diǎn),進(jìn)而到達(dá)最終的目標(biāo)點(diǎn)。
首先需要檢測(cè)無(wú)人機(jī)是否陷入局部極小值點(diǎn)或產(chǎn)生了局部震蕩現(xiàn)象。由于人工勢(shì)場(chǎng)法在每一輪迭代后,按照固定步長(zhǎng),在合力指向的方向下得到下一個(gè)路徑點(diǎn),因此可以通過(guò)判斷第i(i≥ 2)次迭代時(shí)的位置和第i+1次迭代時(shí)的位置距離是否為零,第i-1次和第i+1次迭代時(shí)的位置距離是否小于移動(dòng)步長(zhǎng)來(lái)檢查無(wú)人機(jī)是否陷入局部極值或震蕩。當(dāng)條件符合時(shí),采用三維目標(biāo)分段法。
借鑒二維平面下通過(guò)圓來(lái)尋找虛擬目標(biāo)點(diǎn)的過(guò)程[19-20],三維目標(biāo)分段法中,需要先通過(guò)向量運(yùn)算求出一個(gè)圓,然后取圓上一點(diǎn)作為子目標(biāo)點(diǎn)。設(shè)空間中的局部極小值點(diǎn)或開(kāi)始震蕩的點(diǎn)為(x1,y1,z1),目標(biāo)點(diǎn)為(x2,y2,z2),連接上述兩點(diǎn),可以得到一條線段,將其命名為L(zhǎng),設(shè)線段L上與局部極小值點(diǎn)一端接近的三等分點(diǎn)為(x3,y3,z3),可以由式(10)求得該三等分點(diǎn)的位置。
(10)
以三等分點(diǎn)(x3,y3,z3)為圓心,k倍步長(zhǎng)為半徑r,在空間中可得無(wú)數(shù)個(gè)圓。選擇與線段L垂直的圓作為產(chǎn)生子目標(biāo)點(diǎn)的圓,這樣做可以確定唯一一個(gè)圓,大大減少了搜索空間,而且能確保產(chǎn)生的子目標(biāo)點(diǎn)位于局部極小值點(diǎn)和目標(biāo)點(diǎn)之間,符合航跡長(zhǎng)度盡量短的原則。將與線段L垂直的圓所在的平面命名為A,將平面A的法向量命名為n,n可由目標(biāo)點(diǎn)和式(10)所求得的三等分點(diǎn)得到,設(shè)n=(n1,n2,n3);取平面A中的任意向量,將其命名為m,設(shè)m=(m1,m2,m3),由于n是法向量,因此m與n正交。根據(jù)向量正交相乘結(jié)果為零的原則,可以由n求得m,設(shè)n的一個(gè)坐標(biāo)點(diǎn)為零,其余2個(gè)坐標(biāo)點(diǎn)互換位置,符號(hào)相反即可,例如m=(-n2,n1,0),但n12與n22之和不能為零,否則由于z坐標(biāo)為零,m將是一個(gè)零向量。
(11)
在式(11)中輸入一個(gè)角度值θ,可以求得圓上一點(diǎn),擬將該點(diǎn)作為子目標(biāo)點(diǎn),但還需要判斷該點(diǎn)與障礙物之間的關(guān)系。求該點(diǎn)與障礙物之間的距離d,若該距離大于障礙物碰撞半徑,則該點(diǎn)成為子目標(biāo)點(diǎn),否則增大圓的半徑,另求一個(gè)點(diǎn)作為備選的子目標(biāo)點(diǎn),直到找到符合條件的子目標(biāo)點(diǎn)。圖5展示了三維目標(biāo)分段法中的子目標(biāo)點(diǎn)與其他物體的位置關(guān)系。
圖5 三維目標(biāo)分段法中的子目標(biāo)點(diǎn)示意圖
為了驗(yàn)證改進(jìn)斥力勢(shì)場(chǎng)函數(shù)的有效性,使用Matlab仿真軟件進(jìn)行仿真。設(shè)定2組仿真實(shí)驗(yàn),其中無(wú)人機(jī)的起點(diǎn)均為(0,0,0),目標(biāo)點(diǎn)分別為(2,2,2.5)、(2.8,2.8,2.6),靠近目標(biāo)點(diǎn)的障礙物分別在(2,2,2)和(3,3,3)處,另設(shè)一個(gè)障礙物分別在(1.5,1.2,2.7)和(1.5,1.2,1.7)處,由此構(gòu)成目標(biāo)點(diǎn)與障礙物距離較近的實(shí)驗(yàn)條件。借鑒文獻(xiàn)[16]的規(guī)劃任務(wù)參數(shù),本文的參數(shù)設(shè)置如表1所示。
表1 人工勢(shì)場(chǎng)法參數(shù)表
仿真結(jié)果如圖6所示,紅色路徑表示傳統(tǒng)人工勢(shì)場(chǎng)法的規(guī)劃結(jié)果,藍(lán)色路徑表示改進(jìn)斥力勢(shì)場(chǎng)函數(shù)后的規(guī)劃結(jié)果??梢钥闯?,傳統(tǒng)人工勢(shì)場(chǎng)法的路徑在目標(biāo)點(diǎn)附近反復(fù)徘徊,無(wú)法到達(dá);而改進(jìn)人工勢(shì)場(chǎng)中,當(dāng)無(wú)人機(jī)靠近目標(biāo)點(diǎn)時(shí),目標(biāo)點(diǎn)附近的障礙物對(duì)無(wú)人機(jī)的斥力減小,引力可以一直大于斥力,最終使無(wú)人機(jī)順利到達(dá)目標(biāo)點(diǎn)。
圖6 斥力勢(shì)場(chǎng)改進(jìn)前后的仿真結(jié)果示意圖
為驗(yàn)證三維目標(biāo)分段法的有效性,使用Matlab進(jìn)行2項(xiàng)仿真實(shí)驗(yàn),每項(xiàng)實(shí)驗(yàn)均設(shè)2組。
首先驗(yàn)證對(duì)于典型局部極小值問(wèn)題的改進(jìn)效果。第1組實(shí)驗(yàn)將無(wú)人機(jī)的起點(diǎn)設(shè)置為(0,0,0),目標(biāo)點(diǎn)設(shè)置為(6,6,7),障礙物1個(gè),其位置為 (6,6,4);第2組實(shí)驗(yàn)將無(wú)人機(jī)的起點(diǎn)設(shè)置為(6,0,3),目標(biāo)點(diǎn)設(shè)置為(6,6,3),障礙物1個(gè),其位置為(6,4.5,3)。算法的通用參數(shù)如表1所示,三維目標(biāo)分段法參數(shù)k初始值為2,θ取0~360之間的任意實(shí)數(shù)。第1組實(shí)驗(yàn)的仿真結(jié)果如圖7和圖8所示;第2組實(shí)驗(yàn)的仿真結(jié)果如圖9和圖10所示。圖7和圖9中,由于起點(diǎn)、障礙物、目標(biāo)點(diǎn)3點(diǎn)共線,導(dǎo)致傳統(tǒng)人工勢(shì)場(chǎng)法陷入局部極值,并在該極值點(diǎn)處達(dá)到受力平衡,使規(guī)劃提前結(jié)束。而在使用三維目標(biāo)分段法后的結(jié)果如圖8和圖10所示,產(chǎn)生子目標(biāo)點(diǎn)使受力平衡被打破,令無(wú)人機(jī)能夠擺脫局部極小值點(diǎn)的束縛,在到達(dá)子目標(biāo)后,接著到達(dá)目標(biāo)點(diǎn)。由此可知,三維目標(biāo)分段法可以有效解決三維空間中的局部極小值問(wèn)題。
圖7 傳統(tǒng)人工勢(shì)場(chǎng)法規(guī)劃結(jié)果Ⅰ
圖8 三維目標(biāo)分段法規(guī)劃結(jié)果Ⅰ
圖9 傳統(tǒng)人工勢(shì)場(chǎng)法規(guī)劃結(jié)果Ⅱ
圖10 三維目標(biāo)分段法規(guī)劃結(jié)果Ⅱ
第2項(xiàng)仿真實(shí)驗(yàn)用于驗(yàn)證三維目標(biāo)分段法對(duì)典型路徑震蕩問(wèn)題的改進(jìn)效果。第1組仿真實(shí)驗(yàn)中,將無(wú)人機(jī)的起點(diǎn)設(shè)置為(1,3.5,-0.2),目標(biāo)點(diǎn)設(shè)置為(5,3.8,0.2),2個(gè)障礙物的位置分別為(3,3,0)和(3,4.2,0);第2組仿真實(shí)驗(yàn)中,將無(wú)人機(jī)的起點(diǎn)設(shè)置為(2,3.5,0),目標(biāo)點(diǎn)設(shè)置為(5,3.5,0),6個(gè)障礙物的位置分別為(3,3,0),(3.8,2.7,0),(4.6,3.2,0),(3.8,4.1,0),(4.6,4.5,0),(3,4.2,0)。算法的參數(shù)和第1項(xiàng)仿真實(shí)驗(yàn)一致。
仿真結(jié)果如圖11—14所示。圖11中的路徑在方框處產(chǎn)生了劇烈震蕩,因此該路徑對(duì)無(wú)人機(jī)而言不可用,而圖13中傳統(tǒng)人工勢(shì)場(chǎng)法無(wú)法規(guī)劃出完整路徑。圖12和圖14中,改進(jìn)后的算法在判定產(chǎn)生局部震蕩后,使用三維目標(biāo)分段法產(chǎn)生子目標(biāo)點(diǎn),在子目標(biāo)點(diǎn)的引導(dǎo)下,局部震蕩現(xiàn)象消失,規(guī)劃出的路徑安全且平滑,可供無(wú)人機(jī)使用。因此,三維目標(biāo)分段法可以有效解決三維空間中的局部震蕩問(wèn)題。
圖11 傳統(tǒng)人工勢(shì)場(chǎng)法路徑局部震蕩Ⅰ
圖12 三維目標(biāo)分段法解決局部震蕩問(wèn)題Ⅰ
4.1節(jié)和4.2節(jié)的仿真實(shí)驗(yàn)分別驗(yàn)證了在斥力勢(shì)場(chǎng)函數(shù)中引入相對(duì)距離因子和三維目標(biāo)分段法用于改進(jìn)傳統(tǒng)人工勢(shì)場(chǎng)法的有效性,但實(shí)驗(yàn)環(huán)境相對(duì)比較簡(jiǎn)單,為了進(jìn)一步驗(yàn)證本文提出改進(jìn)方法的可行性,在Matlab仿真軟件中進(jìn)行復(fù)雜三維環(huán)境下的路徑規(guī)劃仿真。
圖13 傳統(tǒng)人工勢(shì)場(chǎng)法路徑局部震蕩Ⅱ
圖14 三維目標(biāo)分段法解決局部震蕩問(wèn)題Ⅱ
本節(jié)同樣設(shè)2組仿真實(shí)驗(yàn),第1組實(shí)驗(yàn)中,無(wú)人機(jī)起點(diǎn)坐標(biāo)設(shè)為(5,5,2),目標(biāo)點(diǎn)坐標(biāo)設(shè)為(5,5,12),障礙物共設(shè)6個(gè),其坐標(biāo)分別設(shè)為(5,5,3.5),(5,5,11.5),(5.7,4.5,6.3),(5.7,5.4,6.3),(4.5,5,9),(5.8,5.8,5)。第2組實(shí)驗(yàn)中,無(wú)人機(jī)起點(diǎn)坐標(biāo)設(shè)為(0,0,0),目標(biāo)點(diǎn)坐標(biāo)設(shè)為(9,9,9),障礙物共設(shè)12個(gè),從而組成含有多個(gè)局部極小值點(diǎn)、路徑震蕩以及目標(biāo)不可達(dá)問(wèn)題的三維空間,其坐標(biāo)分別設(shè)為(1,1,1),(1.2,1.8,2),(1.8,1,2),(2.7,3.6,3.2),(3.3,4,3.7),(4,4,4),(4.3,3.2,3.6),(5,5,4),(7,7,5),(7,7,7),(9,9,9.5),(9,9,8)。算法使用的參數(shù)和4.2節(jié)一致。
實(shí)驗(yàn)結(jié)果如圖15—17所示,圖15由(a)和(b)2個(gè)部分組成,皆為復(fù)雜環(huán)境Ⅰ中三維視角下的路徑規(guī)劃結(jié)果;而圖16和圖17分別為復(fù)雜環(huán)境Ⅱ中XOZ平面和YOZ平面下的規(guī)劃結(jié)果,為了便于描述,將目標(biāo)點(diǎn)記為Goal,按子目標(biāo)點(diǎn)出現(xiàn)的先后順序,分別記為SubG1、SubG2、SubG3。從起點(diǎn)出發(fā)前往Goal的過(guò)程中,無(wú)人機(jī)陷入局部極小值點(diǎn)或局部震蕩,此時(shí)三維目標(biāo)分段法生成子目標(biāo)點(diǎn)SubG1; 在前往SubG1的途中,無(wú)人機(jī)再次被困,此時(shí)以SubG1作為目標(biāo)點(diǎn)生成子目標(biāo)點(diǎn)SubG2;當(dāng)無(wú)人機(jī)到達(dá)SubG2之后,將 Goal恢復(fù)為目標(biāo)點(diǎn),因此無(wú)人機(jī)沒(méi)有必要再前往SubG1;再次前往Goal的途中,無(wú)人機(jī)又一次陷入局部極小值點(diǎn)或局部震蕩,此時(shí)生成子目標(biāo)點(diǎn)SubG3,在無(wú)人機(jī)到達(dá)SubG3之后,恢復(fù)Goal作為目標(biāo)點(diǎn)的地位;隨后,無(wú)人機(jī)最終到達(dá)離障礙物距離很近的Goal,規(guī)劃結(jié)束。
圖15 復(fù)雜環(huán)境Ⅰ下三維目標(biāo)分段法規(guī)劃結(jié)果
通過(guò)上述實(shí)驗(yàn)可以看出,本文提出的改進(jìn)方法,尤其是三維目標(biāo)分段法,簡(jiǎn)潔易行,通過(guò)向量運(yùn)算可以快速找到子目標(biāo)點(diǎn),具備在復(fù)雜環(huán)境中為無(wú)人機(jī)尋找可行路徑的能力。
分析了傳統(tǒng)人工勢(shì)場(chǎng)法的原理及其存在的主要缺陷,提出了解決方案。通過(guò)引入無(wú)人機(jī)與目標(biāo)點(diǎn)之間的相對(duì)距離因子改造斥力勢(shì)場(chǎng)函數(shù),解決目標(biāo)不可達(dá)問(wèn)題;將虛擬目標(biāo)點(diǎn)法拓展至三維空間,提出了三維目標(biāo)分段法,解決了傳統(tǒng)人工勢(shì)場(chǎng)法的局部極小值和局部震蕩問(wèn)題。在Matlab仿真平臺(tái)上開(kāi)展了一系列仿真實(shí)驗(yàn),證實(shí)了該方法的可行性和有效性,表明本文提出的改進(jìn)方法可以適用于復(fù)雜三維環(huán)境下的無(wú)人機(jī)路徑規(guī)劃。