本發(fā)明涉及無人機算法計算領(lǐng)域,尤其涉及一種基于子區(qū)域劃分的多無人機遍歷搜索算法。
背景技術(shù):
一、無人機航跡規(guī)劃
無人機具有體積小,價格低廉,靈活機動等特點,在現(xiàn)代軍事,環(huán)境監(jiān)測,災(zāi)害防治等方面發(fā)揮著越來越重要的作用。無人機航跡規(guī)劃對于提高無人機的生存能力和執(zhí)行任務(wù)能力具有重要的意義。目前現(xiàn)有的航跡規(guī)劃技術(shù)主要分為以下兩種:
1)“點對點”航跡規(guī)劃(’Point-to-Point’Path Planning)
“點對點”的航跡規(guī)劃是指在一定環(huán)境下,尋找無人機從起始點到目標(biāo)點,避開所有威脅源和障礙物的最優(yōu)飛行路線。針對“點對點”的航跡規(guī)劃問題的技術(shù)有:(1)針對復(fù)雜環(huán)境下的自適應(yīng)RRT航跡規(guī)劃將動態(tài)步長和自適應(yīng)權(quán)重相結(jié)合,較好地解決了規(guī)劃耗時和路徑質(zhì)量的均衡問題,但在不清楚任務(wù)區(qū)域中威脅源分布的情況下,會造成多次迭代從而降低效率;(2)基于多重啟發(fā)蟻群優(yōu)化算法的航跡規(guī)劃,該技術(shù)綜合考慮無人機當(dāng)前位置與待選位置之間的距離和威脅分布,以及待選位置與目標(biāo)位置之間的距離和威脅分布,將這些已知信息構(gòu)造為螞蟻狀態(tài)轉(zhuǎn)移的多重啟發(fā)信息,指導(dǎo)螞蟻的搜索行為。并針對航跡不可行和任務(wù)區(qū)域內(nèi)存在的突發(fā)威脅,分給出了航跡平滑方法和在線航跡再規(guī)劃方法。
2)覆蓋航跡規(guī)劃(Coverage Path Planning)
和“點對點”航跡規(guī)劃不同,覆蓋航跡規(guī)劃是指當(dāng)需要獲取某一區(qū)域的全面有用信息,或者需要早特定區(qū)域搜索目標(biāo)時,能夠規(guī)劃出一條能夠遍歷待覆蓋區(qū)域的最優(yōu)飛行路線。國內(nèi)外對于單無人機覆蓋搜索有較多研究,常見的有隨機搜索,平行搜索,網(wǎng)格搜索等。而多機協(xié)同的覆蓋航跡規(guī)劃則可通過相互協(xié)同,提高區(qū)域覆蓋效率,縮短任務(wù)完成時間,使得總體性能指標(biāo)達到最優(yōu)。并且在單架無人機出現(xiàn)故障時,剩余無人機仍能完成任務(wù),因此具有更好的任務(wù)執(zhí)行能力和容錯能力。
二、子區(qū)域劃分
多無人機覆蓋航跡規(guī)劃需要解決的一個核心問題是:區(qū)域形態(tài)的確定及劃分。一個最單的方法是將任意形狀的搜索區(qū)域用其外接矩形表示,但這種方式會造成搜索區(qū)域面積變大,導(dǎo)致搜索時間增加,降低搜索效率。而將搜索區(qū)域劃分為多個子區(qū)域,再在子區(qū)域上進行無人機航跡規(guī)劃不僅可以更高效地完成區(qū)域覆蓋任務(wù),還可以降低搜索資源的浪費。目前區(qū)域劃分的方法有:(1)Boustrophedon劃分算法是將搜索區(qū)域分解為梯形狀,在單個分塊中進行遍歷搜索。其目的是為了減少由于分塊較多而造成的重復(fù)遍歷。(2)基于Voronoi圖的區(qū)域劃分算法:利用Voronoi圖的特性,并結(jié)合實際的區(qū)域形狀將搜索區(qū)域進行劃分(3)基于子區(qū)域?qū)挾戎妥钚〉膮^(qū)域劃分算法即要求子區(qū)域的寬度最小,又要保證所有子區(qū)域?qū)挾戎妥钚?,故此算法實現(xiàn)起來比較復(fù)雜。
三、無人機航跡規(guī)劃面臨的問題
本專利主要研究的是無人機覆蓋航跡規(guī)劃,單無人機覆蓋航跡規(guī)劃任務(wù)時間長,效率低,同樣對無人機的性能要求也高;但多無人機協(xié)同編隊覆蓋航跡規(guī)劃實現(xiàn)起來問題較多。多機“Z”搜索因無人機(UAV)最小轉(zhuǎn)彎半徑的限制,為保證搜索區(qū)域的全覆蓋,需在區(qū)域外部進行轉(zhuǎn)彎,造成搜索資源嚴重浪費。內(nèi)螺旋的方式則需要較多轉(zhuǎn)彎,接近區(qū)域中心的更多,另外在多機并排搜索時,由于編隊內(nèi)外兩側(cè)無人機的飛行路徑長度相差較大,對無人機的速度要求較多,不利于工程實現(xiàn)。圖1給出一個兩架無人機協(xié)同搜索的示意圖。在圖中可以很明顯的看出UAV1的航程多于UAV2的,要實現(xiàn)無人機協(xié)同搜索,在第一個轉(zhuǎn)彎處UAV1的速度應(yīng)快于UAV2的,在第二個轉(zhuǎn)彎處則恰恰相反。
在綜合考慮單機與多機這兩種搜索方式后,本專利在規(guī)劃好整體的無人機航跡后,根據(jù)無人機的性能不同,給每架無人機分配任務(wù)區(qū)域,即提高了搜索性能,同時避免了多機編隊時對無人機速度的要求,大大降低了搜索難度,有利于工程實現(xiàn)。
四、現(xiàn)有子區(qū)域劃分算法的不足之處
現(xiàn)有的子區(qū)域劃分算法中,利用Voronoi圖對搜索區(qū)域進行分割的方法非常普遍,但這種分割非常復(fù)雜,并且?guī)в胁淮_定性,對無人機的自主性要求較高;而Boustrophedon區(qū)域劃分算法雖然復(fù)雜度不高,并且能夠同時應(yīng)用于單機和多機區(qū)域劃分,但對劃分的方向有要求,達不到全區(qū)域最優(yōu)。而基于子區(qū)域?qū)挾戎妥钚〉膭澐炙惴ㄍ瑯用媾R著算法復(fù)雜度較高的問題,另外利用此算法劃分的子區(qū)域面積不一,極易造成區(qū)域重復(fù)搜索,另外劃分后的子區(qū)域數(shù)目也比本專利劃分后的多,導(dǎo)致無人機子區(qū)域銜接時浪費的搜索資源較多,降低搜索效率。故此,本專利提出一種基于凹頂點可見的子區(qū)域劃分算法,在保證子區(qū)域面積均衡的情況下同時降低劃分后的區(qū)域數(shù)目,另外,算法實現(xiàn)起來復(fù)雜度低。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)中存在的缺陷或不足,本發(fā)明所要解決的技術(shù)問題是:提供一種基于子區(qū)域劃分的多無人機遍歷搜索算法,本算法為基于凹頂點可見的子區(qū)域劃分算法,在保證子區(qū)域面積均衡的情況下同時降低劃分后的區(qū)域數(shù)目,另外,算法實現(xiàn)起來復(fù)雜度低。
為了實現(xiàn)上述目的,本發(fā)明采取的技術(shù)方案為提供一種基于子區(qū)域劃分的多無人機遍歷搜索算法,包括以下步驟:
步驟A:利用基于凹頂點可見的子區(qū)域劃分算法將整個區(qū)域劃分為多個形態(tài)良好,差異不大的子區(qū)域;
步驟B:在每個子區(qū)域內(nèi)運用基于區(qū)域?qū)挾茸钚〉暮桔E規(guī)劃算法進行無人機航跡規(guī)劃;
步驟C:在計算出整個規(guī)劃好的航程后,根據(jù)每架無人機的性能分配相應(yīng)的任務(wù)區(qū)域,根據(jù)無人機遍歷搜索時間算法,確定無人機的整體搜索性能是否達到最優(yōu)。
作為本發(fā)明的進一步改進,所述步驟A包括進行凹邊形凸分解,所述凹邊形凸分解是將凹頂點與其可見凹點相連,將多邊形一分為二,如果可見凹點較多,則要選擇一個最優(yōu)的可見凹點來連接。
作為本發(fā)明的進一步改進,在將整個區(qū)域一分為二后,繼續(xù)在子區(qū)域中選擇合適的凹點進行劃分,直到將整個區(qū)域全部劃分為凸多邊形子區(qū)域,若凹頂點對應(yīng)可見區(qū)域中沒有凹點,則選擇其角平分線作為劃分線。
作為本發(fā)明的進一步改進,如果沒有最優(yōu)的可見凹點,則要選擇一個和凹點的連線與角平分線夾角最小的可見點進行連接,則夾角的計算公式為:
式中:∠α為可見點和凹點的連線與角平分線的夾角。
作為本發(fā)明的進一步改進,所述無人機的遍歷搜索時間算法如下,對于搜索時間可建模為:
T=tpath+n*tturn (2)
其中,tpath是單個無人機的航跡規(guī)劃用時,n是無人機轉(zhuǎn)彎次數(shù),tturn是無人機轉(zhuǎn)彎用時,假設(shè)現(xiàn)在有m架航速為v1、v2、v3、……、vm無人機,規(guī)劃后的總航程為L,則
而轉(zhuǎn)彎次數(shù)則由無人機的掃描寬度ws及子區(qū)域?qū)挾葁決定;
將式(3)和式(4)代入式(2)中,則總的搜索時間為:
本發(fā)明的有益效果是:本發(fā)明設(shè)計了一種基于子區(qū)域劃分的多無人機遍歷搜索算法,給出了具體的區(qū)域劃分方式及多機航跡規(guī)劃和任務(wù)分配方式,為無人機遍歷搜索提供了一種實際可行的方案。通過一個具體的算法生成實例,驗證了本專利提出的算法是有效的,且對搜索區(qū)域的形狀沒有特別的要求,適用于多種不規(guī)則區(qū)域,具有普適性。本專利的子區(qū)域劃分算法相比于其他劃分算法,不僅實現(xiàn)起來簡單,同時可以有效避免無人機的重復(fù)搜索,降低無人機在子區(qū)域連接時的耗時。所以,應(yīng)用本專利設(shè)計的多無人機遍歷搜索算法對區(qū)域進行搜索可以有效提高搜索效率,減少無人機不必要的耗時,在相同的無人機性能和數(shù)量的情況下搜索更大的區(qū)域。
附圖說明
圖1是一個兩架無人機協(xié)同搜索的示意圖;
圖2是本發(fā)明的多無人機搜索示意圖;
圖3是本發(fā)明的子區(qū)域劃分示意圖;
圖4是本發(fā)明的無人機搜索方向示意圖;
圖5是本發(fā)明的凸多邊形的寬度圖;
圖6是本發(fā)明的給定一個待覆蓋的多邊形區(qū)域示意圖;
圖7是本發(fā)明的對給定一個待覆蓋的多邊形區(qū)域進行子區(qū)域劃分示意圖;
圖8是本發(fā)明的對給定一個待覆蓋的多邊形區(qū)域進行航跡規(guī)劃及任務(wù)劃分示意圖;
圖9是本發(fā)明的劃分算法和其他算法的第一對比圖;
圖10是本發(fā)明的劃分算法和其他算法的第二對比圖;
圖11是本發(fā)明的劃分算法和其他算法的第三對比圖。
具體實施方式
下面結(jié)合附圖說明及具體實施方式對本發(fā)明進一步說明。
現(xiàn)有的Boustrophedon劃分算法、精確單元分解(Exact Cell Decomposition)和模板(Templates)匹配的區(qū)域劃分算法對多邊形的區(qū)域的形狀有一定的限制,并不是適合所有的情形;而基于子區(qū)域?qū)挾戎偷淖訁^(qū)域劃分算法劃分后的子區(qū)域形態(tài)差異較大,不利于無人機的航跡規(guī)劃,且算法復(fù)雜度較高。故針對上述算法的不足,本專利提出一種基于子區(qū)域劃分和航跡長度的多無人機搜索算法。當(dāng)搜索區(qū)域是一不規(guī)則多邊形時,以圖2所示的多無人機搜索示意圖為例,首先利用基于凹頂點可見的子區(qū)域劃分算法將整個區(qū)域劃分為多個形態(tài)良好,差異不大的子區(qū)域;再在每個子區(qū)域內(nèi)運用基于區(qū)域?qū)挾茸钚〉暮桔E規(guī)劃算法進行無人機航跡規(guī)劃,并在計算出整個規(guī)劃好的航程后,根據(jù)每架無人機的性能分配相應(yīng)的任務(wù)區(qū)域,使得無人機的整體搜索性能達到最優(yōu)。
子區(qū)域劃分算法
本專利中,無人機沿著與最小區(qū)域?qū)挾却怪钡姆较蝻w行,但只適用于凸多邊形區(qū)域,故此對凹多邊形區(qū)域進行凸分解就很有必要,為了更好的說明本部分的算法,以一個例子對凹頂點的可見性進行說明。如圖3所示,Region-2是凹點pi的可見區(qū)域,在區(qū)域2中的凹點v1,v2,v3則是pi的可見凹點。
進行凹多邊形凸分解,主要方法是將某一凹點與其可見凹點相連,將多邊形一分為二,達到消除凹點的作用。但很多情況下,這樣的可見點并不唯一,這是則要選擇一個最優(yōu)的可見凹點來連接。如圖2所示,若選擇∠APiB的角平分線作為劃分線,則得到的兩個子區(qū)域的形態(tài)是最好的,但很多情況下,不存在恰好位于角平分線上的可見凹點,這時則要選擇一個和凹點的連線與角平分線夾角(在圖2中,即為∠α、∠β、∠γ)最小的可見點進行連接。由于這幾個夾角均小于90°,所以其cos值越大,則夾角越小。以∠α為例,cosα為:
在將整個區(qū)域一分為二后,繼續(xù)在子區(qū)域中選擇合適的凹點進行劃分直到將整個區(qū)域全部劃分為凸多邊形子區(qū)域。特別的,若凹點pi對應(yīng)可見區(qū)域中沒有凹點,則選擇其角平分線作為劃分線。
1.2航跡規(guī)劃及任務(wù)分配算法
整個區(qū)域被劃分為多個凸多邊形子區(qū)域后,在子區(qū)域內(nèi)進行路徑規(guī)劃。與機器人覆蓋路徑規(guī)劃不同,無人機需要在待搜索區(qū)域外部進行轉(zhuǎn)彎飛行.這一段飛行相對搜索區(qū)域是沒用的,如能減少搜索轉(zhuǎn)彎次數(shù),就可減少飛行路程、搜索時間和油耗.如圖4所示,左圖的轉(zhuǎn)彎次數(shù)明顯多于右圖的,所以對某覆蓋搜索區(qū)域,要確定一個搜索方向,使得沿此方向搜索的轉(zhuǎn)彎次數(shù)盡量少.故本專利采用的基于最小子區(qū)域?qū)挾鹊暮桔E規(guī)劃算法使得無人機沿著與子區(qū)域最小寬度垂直的方向飛行,可使得轉(zhuǎn)彎次數(shù)最少。
對于一凸多邊形,其最小寬度的定義是:在平面上做兩條與凸多邊形相交的平行線,兩平行線之間的距離就定義為凸多邊形的寬度.所有跨度中的最小值稱為凸多邊形的最小寬度.如圖5所示,min(w)即為最小寬度。在對所有的子區(qū)域進行路徑規(guī)劃后計算出規(guī)劃好的無人機航程,在給定無人機架數(shù)和速度的情況下,給每架無人機分配對應(yīng)得任務(wù)區(qū)域。
一、遍歷搜索時間
無人機的遍歷搜索時間是衡量無人機性能的重要指標(biāo),對于搜索時間可建模為:
T=tpath+n*tturn (2)
其中,tpath是單個無人機的航跡規(guī)劃用時,n是無人機轉(zhuǎn)彎次數(shù),tturn是無人機轉(zhuǎn)彎用時。假設(shè)現(xiàn)在有m架航速為v1、v2、v3、……、vm無人機,規(guī)劃后的總航程為L,則
而轉(zhuǎn)彎次數(shù)則由無人機的掃描寬度ws及子區(qū)域?qū)挾葁決定。
將式(3)和式(4)代入式(2)中,則總的搜索時間為:
二、算法偽代碼
根據(jù)以上對區(qū)域劃算、航跡規(guī)劃及任務(wù)分配算法的分析,具體的算法偽代碼分別如表1和表2所示。
表1:子區(qū)域凸分解算法
表2:覆蓋航跡規(guī)劃及任務(wù)分配算法
三、性能分析
3.1、算法生成實例
給定4架飛行速度不同的無人機,對非規(guī)則區(qū)域進行遍歷搜索。4架無人機的性能參數(shù)如表3所示。
表3:覆蓋航跡規(guī)劃及任務(wù)分配算法
給定一個待覆蓋的多邊形區(qū)域A(見圖6),頂點為vi(i=10)。其中,A的頂點按逆時針方向的排列為
={(0,21.92);(6.88,13,14);(10.62,28.89);(14.54,7.87);(25.76,9.06);(25.76,15.31);(34.28,25);(19.32,26.56);(12.04,38.88)}km.按照算法一的思想,對非規(guī)則區(qū)域進行劃分,劃分結(jié)果如圖7所示。從圖中可以看出,待搜索的不規(guī)則區(qū)域被分解為四個形態(tài)良好的凸多邊形子區(qū)域,方便了在子區(qū)域上進行路徑規(guī)劃。同樣,在劃分好的區(qū)域A上進行航跡規(guī)劃及任務(wù)劃分,可得總的路徑長度為220.1773km,由式3可得tpath=786.4138s.(見圖8)
3.2性能比較
圖9、圖10、圖11是針對凹點不同的搜索區(qū)域的算法生成實例,對于不同形狀的不規(guī)則區(qū)域,本專利提出的算法同樣可以進行區(qū)域劃分及航跡規(guī)劃,表明了本專利提出的算法具有普適性;且實際的搜索區(qū)域大多是不規(guī)則的,這另外,圖9、圖10、圖11的左圖和右圖分別是本專利提出的劃分算法和其他算法的對比圖。由圖可知,利用本專利的劃分的子區(qū)域數(shù)目較少,且區(qū)域形態(tài)良好。在無人機搜索時,不僅可以有效地避免區(qū)域面積小而造成的重復(fù)搜索,而且還可以降低區(qū)域連接所造成的搜索時間的浪費。
以上內(nèi)容是結(jié)合具體的優(yōu)選實施方式對本發(fā)明所作的進一步詳細說明,不能認定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護范圍。