楊 勇, 丁 勇, 黃鑫城
(南京航空航天大學(xué)自動(dòng)化學(xué)院,南京 211106)
多無(wú)人機(jī)協(xié)同目標(biāo)追蹤與避障是指多架無(wú)人機(jī)協(xié)同合作對(duì)目標(biāo)進(jìn)行追蹤并在追蹤過(guò)程中規(guī)避障礙物,是無(wú)人機(jī)協(xié)同合作領(lǐng)域的研究熱點(diǎn)之一,在軍用和民用領(lǐng)域均具有重要的應(yīng)用價(jià)值[1]。針對(duì)多無(wú)人機(jī)目標(biāo)追蹤與防碰撞問(wèn)題,國(guó)內(nèi)外學(xué)者做了大量的研究。文獻(xiàn)[2]將支持向量機(jī)與人工勢(shì)場(chǎng)法結(jié)合,采用球面對(duì)稱函數(shù)構(gòu)建無(wú)人機(jī)導(dǎo)航模型,使得多架無(wú)人機(jī)無(wú)碰撞飛行;文獻(xiàn)[3]基于認(rèn)知博弈制導(dǎo)算法,建立無(wú)人機(jī)與入侵機(jī)的運(yùn)動(dòng)學(xué)模型,將無(wú)人機(jī)機(jī)間防碰問(wèn)題轉(zhuǎn)化為雙方博弈問(wèn)題,實(shí)現(xiàn)多無(wú)人機(jī)自主防碰撞。卡爾曼濾波預(yù)測(cè)算法也是解決多無(wú)人機(jī)防碰撞問(wèn)題的一種有效方法。文獻(xiàn)[4]基于流體擾動(dòng)計(jì)算與交互多模型相結(jié)合,完成多無(wú)人機(jī)三維環(huán)境下的無(wú)碰撞航路規(guī)劃;文獻(xiàn)[5]采用自適應(yīng)卡爾曼算法預(yù)測(cè)僚機(jī)的狀態(tài)進(jìn)而控制僚機(jī)機(jī)動(dòng),當(dāng)無(wú)人機(jī)編隊(duì)過(guò)程中機(jī)間距離過(guò)近時(shí),僚機(jī)便迅速做出規(guī)避動(dòng)作,實(shí)現(xiàn)無(wú)人機(jī)編隊(duì)互不碰撞。人工勢(shì)場(chǎng)法是一種虛擬力法,由于算法簡(jiǎn)單,運(yùn)算速度快,能夠保證路徑安全等特點(diǎn),在路徑規(guī)劃中得到應(yīng)用,但該算法也存在規(guī)劃路徑振蕩等問(wèn)題[6]。針對(duì)這些問(wèn)題不少學(xué)者進(jìn)行了研究,文獻(xiàn)[7]模擬橡皮條的拉緊法去除機(jī)器人行駛路徑的冗余節(jié)點(diǎn),并用對(duì)稱多項(xiàng)式處理得到平滑路徑;文獻(xiàn)[8]在圓錐曲線引力場(chǎng)函數(shù)的基礎(chǔ)上增加一個(gè)指數(shù)項(xiàng)到引力場(chǎng)函數(shù)中,消除了奇異值點(diǎn),避免了抖動(dòng)現(xiàn)象。
總的來(lái)看,無(wú)人機(jī)碰撞規(guī)避問(wèn)題大多研究多無(wú)人機(jī)在追蹤目標(biāo)過(guò)程中對(duì)環(huán)境障礙物的規(guī)避,從而實(shí)現(xiàn)無(wú)人機(jī)的目標(biāo)追蹤路徑規(guī)劃,而對(duì)于多無(wú)人機(jī)之間的機(jī)間防碰,大多單純采用組網(wǎng)通信方式,很少采用路徑規(guī)劃算法達(dá)到多無(wú)人機(jī)之間的防碰目的;此外,基于人工勢(shì)場(chǎng)法航路規(guī)劃中的路徑振蕩問(wèn)題多針對(duì)地面機(jī)器人展開(kāi),但由于地面機(jī)器人與無(wú)人機(jī)的運(yùn)動(dòng)特性有很大不同,如何避免無(wú)人機(jī)航路規(guī)劃過(guò)程中的航路振蕩是迫切需要解決的問(wèn)題。
針對(duì)上述問(wèn)題的不足,本文提出一種改進(jìn)APF與Bezier相結(jié)合的多無(wú)人機(jī)協(xié)同避碰航路規(guī)劃方法。該方法通過(guò)在人工勢(shì)場(chǎng)法中增加無(wú)人機(jī)自身斥力場(chǎng)進(jìn)行多無(wú)人機(jī)協(xié)同目標(biāo)追蹤航路規(guī)劃,并結(jié)合分段Bezier曲線進(jìn)行在線航路平滑優(yōu)化,為解決多無(wú)人機(jī)機(jī)間防碰,消除航路規(guī)劃過(guò)程中易出現(xiàn)的路徑振蕩現(xiàn)象,提供了一個(gè)有效的解決途徑。
人工勢(shì)場(chǎng)法是由KHATIB于1986年提出的一種虛擬力法,其基本思想是:通過(guò)構(gòu)造一種抽象的勢(shì)力場(chǎng),無(wú)人機(jī)在追蹤目標(biāo)過(guò)程中受到該勢(shì)力場(chǎng)的影響,目標(biāo)對(duì)無(wú)人機(jī)產(chǎn)生“引力”,障礙物對(duì)無(wú)人機(jī)產(chǎn)生“斥力”,引力與斥力疊加求出合力控制無(wú)人機(jī)的運(yùn)動(dòng)[9]。圖1為無(wú)人機(jī)的引力與斥力受力示意圖。
圖1 引力與斥力示意圖Fig.1 Diagram of attraction and repulsion force
設(shè)q為無(wú)人機(jī)處于二維環(huán)境空間中的一點(diǎn),則該無(wú)人機(jī)在該點(diǎn)的引力勢(shì)函數(shù)和斥力勢(shì)函數(shù)分別定義為
(1)
(2)
式中:k和m分別為引力增益和斥力增益;ρa(bǔ)(q)和ρr(q)分別為q點(diǎn)到目標(biāo)a和障礙物r的距離;ρ0是障礙物的最大影響半徑。
無(wú)人機(jī)處在引力勢(shì)場(chǎng)和斥力勢(shì)場(chǎng)內(nèi),所受的合力F表示為
F=Fatt+Frep
(3)
式中:Fatt為目標(biāo)對(duì)無(wú)人機(jī)的引力;Frep為障礙物對(duì)無(wú)人機(jī)的斥力。F決定了無(wú)人機(jī)的運(yùn)動(dòng)方向。
定義障礙物對(duì)無(wú)人機(jī)的斥力和目標(biāo)點(diǎn)對(duì)無(wú)人機(jī)的引力分別為對(duì)應(yīng)斥力場(chǎng)和引力場(chǎng)的負(fù)梯度[10],則q點(diǎn)受到目標(biāo)點(diǎn)的引力Fatt(q)和障礙物的斥力Frep(q)分別為該點(diǎn)引力勢(shì)函數(shù)和斥力勢(shì)函數(shù)的負(fù)梯度,即
Fatt(q)=-grad(Uatt(q))=-kρa(bǔ)(q)
(4)
>。
(5)
多個(gè)障礙物共同影響無(wú)人機(jī)運(yùn)動(dòng)時(shí),根據(jù)力的疊加性理論可得出無(wú)人機(jī)所受合力F為
(6)
式中:N為障礙物的個(gè)數(shù);Frep i為第i個(gè)障礙物對(duì)無(wú)人機(jī)的斥力。
本文提出一種改進(jìn)APF方法解決多無(wú)人機(jī)協(xié)同目標(biāo)追蹤過(guò)程中機(jī)間防碰撞問(wèn)題。首先通過(guò)建立無(wú)人機(jī)的引力與斥力受力模型,保證每架無(wú)人機(jī)在追蹤目標(biāo)的過(guò)程中均可有效規(guī)避障礙物,在此基礎(chǔ)上,將每架無(wú)人機(jī)視為移動(dòng)障礙物,自身產(chǎn)生斥力勢(shì)場(chǎng)來(lái)避免與其他無(wú)人機(jī)之間的相互碰撞。
對(duì)于多無(wú)人機(jī)協(xié)同目標(biāo)追蹤問(wèn)題,實(shí)際情況下需要考慮的因素過(guò)多將不宜于理論分析,為了重點(diǎn)分析問(wèn)題,本文做出了一些合理的假設(shè):
1) 忽略無(wú)人機(jī)的種類、機(jī)型、性能等因素,將無(wú)人機(jī)視為質(zhì)點(diǎn);
2) 本文所指的障礙物分為靜止障礙物和移動(dòng)障礙物,其中靜止障礙物一般有敵方雷達(dá)探測(cè)區(qū)域、火炮打擊區(qū)域、建筑物或山脈,但其形狀都視為一定大小的圓,且這些障礙物的位置認(rèn)為是已知的;
3) 移動(dòng)障礙物可以由無(wú)人機(jī)機(jī)載的視覺(jué)傳感器和避障傳感器快速精確地感知;
4) 無(wú)人機(jī)機(jī)載的是高性能飛行控制器和視覺(jué)處理器,具備快速計(jì)算能力,可進(jìn)行較復(fù)雜計(jì)算。
在多無(wú)人機(jī)協(xié)同目標(biāo)追蹤與避障過(guò)程中,每架無(wú)人機(jī)都會(huì)受到目標(biāo)對(duì)它的引力作用和障礙物對(duì)它的斥力作用。
定義1設(shè)q點(diǎn)為第j架無(wú)人機(jī)在空間中的一點(diǎn),則對(duì)于第j架無(wú)人機(jī)而言,目標(biāo)a對(duì)它的引力和障礙物r對(duì)它的斥力分別為
(7)
(8)
在多無(wú)人機(jī)協(xié)同目標(biāo)追蹤中,通常存在多個(gè)障礙物,因此無(wú)人機(jī)受到的斥力是多個(gè)障礙物對(duì)它產(chǎn)生的斥力的疊加。第j架無(wú)人機(jī)所受到的合力Fj為
(9)
圖2是無(wú)人機(jī)自身斥力場(chǎng)示意圖。
圖2 無(wú)人機(jī)自身斥力場(chǎng)示意圖Fig.2 UAV’s own repulsive field
在多無(wú)人機(jī)協(xié)同目標(biāo)追蹤的過(guò)程中,為了防止多無(wú)人機(jī)機(jī)間碰撞,造成機(jī)體毀壞導(dǎo)致任務(wù)失敗,本文將無(wú)人機(jī)視為移動(dòng)障礙,對(duì)其建立一個(gè)斥力勢(shì)場(chǎng),使得每架無(wú)人機(jī)對(duì)其他無(wú)人機(jī)產(chǎn)生一定的斥力作用,這樣無(wú)人機(jī)之間就能時(shí)刻保持在安全距離范圍之外,避免相互碰撞。
定義2設(shè)q為空間中的一點(diǎn),則第j架無(wú)人機(jī)產(chǎn)生的斥力勢(shì)場(chǎng)函數(shù)為
(10)
相應(yīng)的,在q點(diǎn)的無(wú)人機(jī)受到第j架無(wú)人機(jī)的斥力是式(10)斥力勢(shì)函數(shù)的負(fù)梯度,即
(11)
在無(wú)人機(jī)利用人工勢(shì)場(chǎng)法對(duì)目標(biāo)進(jìn)行追蹤過(guò)程中,當(dāng)無(wú)人機(jī)尚未到達(dá)目標(biāo),而此時(shí)其所受目標(biāo)引力和障礙物斥力的總合力為零時(shí),無(wú)人機(jī)陷入局部最優(yōu)狀態(tài),本文提出如下逃離局部最優(yōu)的方法。
當(dāng)無(wú)人機(jī)所受引力和斥力的合力為零,但引力不為零時(shí),引力和合斥力大小相等、方向相反,可以在無(wú)人機(jī)和目標(biāo)之間假想存在一個(gè)虛擬障礙物,其對(duì)無(wú)人機(jī)產(chǎn)生的斥力就是此時(shí)所有實(shí)際障礙物對(duì)該無(wú)人機(jī)的合斥力,如圖3所示。虛擬障礙物的具體位置由式(5)反推出ρr(q)來(lái)確定,該虛擬障礙物斥力范圍仍是以ρ0為半徑的圓,此時(shí)無(wú)人機(jī)逃離局部最優(yōu)的飛行方向就是沿著圓的切線方向,左右切線均可,逃離局部最優(yōu)后再按照原來(lái)的算法飛向目標(biāo)。
圖3 無(wú)人機(jī)逃離局部最優(yōu)的方向示意圖Fig.3 The direction of UAV escaping the local optimal
用改進(jìn)人工勢(shì)場(chǎng)法進(jìn)行的無(wú)人機(jī)航路規(guī)劃存在航路折線多、轉(zhuǎn)折角度大等問(wèn)題,尤其是無(wú)人機(jī)在障礙物的周圍容易出現(xiàn)路徑振蕩,會(huì)造成無(wú)人機(jī)大角度機(jī)動(dòng)動(dòng)作頻繁,使無(wú)人機(jī)執(zhí)行任務(wù)效率低,追蹤目標(biāo)風(fēng)險(xiǎn)大。本文提出分段Bezier曲線對(duì)改進(jìn)人工勢(shì)場(chǎng)法規(guī)劃出的航路進(jìn)行平滑優(yōu)化,有效地解決了人工勢(shì)場(chǎng)法路徑規(guī)劃中的路徑振蕩問(wèn)題,使得平滑后的航路適合無(wú)人機(jī)的飛行。
Bezier曲線是一種參數(shù)多項(xiàng)式曲線,n階Bezier曲線定義為[11]
(12)
式中:Pi(0≤i≤n)為曲線的第i個(gè)控制點(diǎn),順次連接從P0到Pn的折線被稱為Bezier曲線的控制多邊形;Bi,n(u)為n次Bernstein多項(xiàng)式,它的表達(dá)式為
(13)
由于控制點(diǎn)數(shù)的增加會(huì)引起B(yǎng)ezier曲線次數(shù)的提高,而高次多項(xiàng)式又會(huì)帶來(lái)計(jì)算上的困難和算法的魯棒性差[12],所以本文采用分段Bezier曲線進(jìn)行航路規(guī)劃平滑優(yōu)化,然后將各段路徑相連接,并在接合處保持一定的連續(xù)和光滑性。
假設(shè)兩條Bezier曲線P(t)和Q(t)的控制點(diǎn)分別為Pi(i=0,1,…,n)和Qj(j=0,1,…,m),如圖4所示,若把兩條曲線連接起來(lái),則該曲線在連接處應(yīng)具備以下特點(diǎn)[13]:
1) 連續(xù)的充要條件是Pn=Q0;
2) 平滑的充要條件是Pn-1,Pn(Q0),Q1三點(diǎn)共線。
圖4 兩段Bezier曲線連接圖Fig.4 Connection of two fragments of Bezier curve
采用上述改進(jìn)人工勢(shì)場(chǎng)法對(duì)無(wú)人機(jī)進(jìn)行航路動(dòng)態(tài)規(guī)劃會(huì)出現(xiàn)路徑振蕩的現(xiàn)象,這里提出分段Bezier曲線的方法來(lái)解決。具體思路是:假設(shè)在t0,t1,t2,t3時(shí)刻利用人工勢(shì)場(chǎng)法計(jì)算出的飛行航點(diǎn)分別是P0,P1,P2,P3;V1,V2,V3分別是線段P0P1,P1P2,P2P3的中點(diǎn),則由控制點(diǎn)V1,P1,V2和V2,P2,V3生成的Bezier曲線在連接點(diǎn)V2處滿足連續(xù)和平滑性條件。若當(dāng)前時(shí)刻是t2,此時(shí)無(wú)人機(jī)已按Bezier曲線由V1飛到V2,利用人工勢(shì)場(chǎng)法計(jì)算出經(jīng)過(guò)t3-t2后的航點(diǎn)P3,沿著V2,P2,V3生成的Bezier曲線飛行即為下一個(gè)時(shí)間段的航行路線。這樣使得原本振蕩的路徑得到平滑,解決了當(dāng)無(wú)人機(jī)靠近障礙物飛行時(shí)出現(xiàn)的路徑振蕩問(wèn)題。示意圖如圖5所示。
圖5 分段Bezier曲線的航路規(guī)劃Fig.5 The route planning of a sectional Bezier curve
本章對(duì)所提算法進(jìn)行仿真驗(yàn)證與分析,主要分為兩個(gè)步驟:
1) 采用本文改進(jìn)的人工勢(shì)場(chǎng)法進(jìn)行多無(wú)人機(jī)協(xié)同目標(biāo)追蹤的航路規(guī)劃,并與未增加無(wú)人機(jī)斥力場(chǎng)進(jìn)行的人工勢(shì)場(chǎng)法航路規(guī)劃進(jìn)行對(duì)比;
2) 采用分段Bezier曲線對(duì)改進(jìn)勢(shì)場(chǎng)法動(dòng)態(tài)規(guī)劃的航路進(jìn)行在線平滑優(yōu)化。
仿真實(shí)驗(yàn)在Windows10操作系統(tǒng)中Matlab2012軟件下進(jìn)行,微機(jī)的處理器是Intel Core i5-3210M,主頻2.5 GHz,內(nèi)存為4 GiB。
在仿真中有3架無(wú)人機(jī)UAV1,UAV2,UAV3,起始位置分別為 (50 km,0 km),(8 km,0 km)和(10 km,20 km),目標(biāo)按一定軌跡運(yùn)動(dòng)。共有15個(gè)障礙物按編號(hào)1~15分布在120 km×120 km的目標(biāo)追蹤區(qū)域內(nèi),其中,編號(hào)12為突發(fā)的移動(dòng)障礙物。具體仿真參數(shù)如表1所示。
表1 仿真參數(shù)設(shè)置
無(wú)人機(jī)在tk時(shí)刻機(jī)載傳感器感知周圍環(huán)境,獲取障礙物、目標(biāo)和其他無(wú)人機(jī)的位置,然后規(guī)劃出無(wú)人機(jī)下一個(gè)航點(diǎn),飛行一段時(shí)間Δt,在tk+1=tk+Δt時(shí)刻到達(dá)下一個(gè)航點(diǎn)。仿真最終目的是使從不同起點(diǎn)出發(fā)的3架無(wú)人機(jī)能避開(kāi)所有障礙物且機(jī)間互不碰撞并最終全部到達(dá)目標(biāo)位置,即追蹤到目標(biāo)。
圖6為仿真框圖。
圖6 仿真框圖Fig.6 Block diagram of simulation
仿真圖分為3個(gè)部分,首先構(gòu)建每架無(wú)人機(jī)的受力模型,對(duì)3架無(wú)人機(jī)使用未增加無(wú)人機(jī)斥力場(chǎng)的人工勢(shì)場(chǎng)法,進(jìn)行多無(wú)人機(jī)目標(biāo)追蹤的航路動(dòng)態(tài)規(guī)劃,各無(wú)人機(jī)單獨(dú)規(guī)劃互不干擾;其次,在增加無(wú)人機(jī)斥力場(chǎng)后對(duì)3架無(wú)人機(jī)進(jìn)行協(xié)同目標(biāo)追蹤的航路動(dòng)態(tài)規(guī)劃,無(wú)人機(jī)之間因斥力存在互不碰撞;最后,在相同環(huán)境下,使用分段Bezier曲線在改進(jìn)人工勢(shì)場(chǎng)法動(dòng)態(tài)規(guī)劃過(guò)程中進(jìn)行在線航路平滑優(yōu)化。圖7為改進(jìn)人工勢(shì)場(chǎng)法與分段Bezier曲線結(jié)合進(jìn)行多無(wú)人機(jī)協(xié)同目標(biāo)追蹤航路規(guī)劃的仿真流程圖。
圖7 仿真流程圖Fig.7 Flow chart of simulation
4.3.1 改進(jìn)人工勢(shì)場(chǎng)法目標(biāo)追蹤航路規(guī)劃
未增加無(wú)人機(jī)斥力場(chǎng)的目標(biāo)追蹤航路規(guī)劃仿真結(jié)果如圖8所示,15個(gè)障礙物按照1~15進(jìn)行編號(hào),障礙物的內(nèi)圓表示障礙物的大小,無(wú)人機(jī)絕對(duì)不能與它碰撞。障礙物的外圓表示障礙物斥力場(chǎng)的影響范圍,此范圍是半徑為10 km的圓。三角形代表無(wú)人機(jī)的起始位置。從3架無(wú)人機(jī)目標(biāo)追蹤的航線中可以看出,所有無(wú)人機(jī)均避開(kāi)障礙物,最終追蹤到目標(biāo)。但是,無(wú)人機(jī)UAV1和UAV2的航線在障礙物5和障礙物6之間產(chǎn)生了重疊,仿真參數(shù)中設(shè)置UAV1,UAV2的規(guī)劃步長(zhǎng)分別為1 km和1.3 km,這2架無(wú)人機(jī)將同時(shí)到達(dá)航路重疊區(qū),在此區(qū)域發(fā)生碰撞,致使多無(wú)人機(jī)協(xié)同目標(biāo)追蹤任務(wù)失敗。
圖8 未增加無(wú)人機(jī)斥力場(chǎng)的航路規(guī)劃Fig.8 The route planning without UAV’s repulsive field
為了解決這個(gè)問(wèn)題,采用所提出的改進(jìn)人工勢(shì)場(chǎng)法,增加無(wú)人機(jī)自身斥力場(chǎng),使得每架無(wú)人機(jī)對(duì)其余無(wú)人機(jī)均產(chǎn)生斥力作用,即無(wú)人機(jī)之間互斥,互斥的影響范圍為半徑5 km的圓,仿真結(jié)果見(jiàn)圖9所示。
圖9 改進(jìn)人工勢(shì)場(chǎng)法的航路規(guī)劃Fig.9 The route planning with UAV’s repulsive field
從圖9中可明顯看出,UAV1和UAV2的航線在障礙物5和障礙物6之間產(chǎn)生了航路分離,并未出現(xiàn)圖8中的航線重疊現(xiàn)象,這是無(wú)人機(jī)之間相互排斥的作用導(dǎo)致的,解決了多無(wú)人機(jī)協(xié)同目標(biāo)追蹤過(guò)程中的機(jī)間防碰問(wèn)題。但可以明顯看出,當(dāng)無(wú)人機(jī)在障礙物附近時(shí),航路出現(xiàn)了嚴(yán)重的振蕩現(xiàn)象,這在實(shí)際情況中無(wú)論從飛機(jī)的機(jī)動(dòng)性能、能源消耗還是從實(shí)時(shí)追蹤方面考慮,都是絕對(duì)不允許出現(xiàn)的。
4.3.2 路徑振蕩平滑優(yōu)化
采用改進(jìn)人工勢(shì)場(chǎng)法結(jié)合分段Bezier曲線進(jìn)行航路在線平滑優(yōu)化,仿真結(jié)果如圖10所示,可以看出平滑優(yōu)化的效果顯著,消除了路徑振蕩現(xiàn)象。
圖10 結(jié)合分段Bezier曲線的航路平滑優(yōu)化Fig.10 Path smoothing combining the sectional Bezier curve
本文提出了一種改進(jìn)人工勢(shì)場(chǎng)法的多無(wú)人機(jī)協(xié)同避碰航路規(guī)劃方法,根據(jù)無(wú)人機(jī)協(xié)同目標(biāo)追蹤的飛行特點(diǎn),給出了無(wú)人機(jī)自身斥力場(chǎng)和斥力的合理定義,使多無(wú)人機(jī)在協(xié)同目標(biāo)追蹤過(guò)程中互不碰撞。當(dāng)人工勢(shì)場(chǎng)法陷入局部極小時(shí),通過(guò)構(gòu)造虛擬障礙物的方法,使得無(wú)人機(jī)逃離局部最優(yōu);提出分段Bezier曲線對(duì)規(guī)劃路徑進(jìn)行在線實(shí)時(shí)平滑優(yōu)化,在兩個(gè)分段Bezier曲線連接處保證了曲線的平滑性,防止了無(wú)人機(jī)飛行做大角度轉(zhuǎn)彎,平滑后的航路不僅不再出現(xiàn)航路振蕩現(xiàn)象,而且整條航線變得更加平滑順暢。