本發(fā)明涉及的是一種無人艇避碰方法。
背景技術(shù):
無人艇(unmannedsurfacevessel,簡稱usv),是一種無人操作的水面船只。主要用于執(zhí)行危險以及執(zhí)行不適于有人的船只執(zhí)行的任務(wù)。一般配備先進(jìn)的控制系統(tǒng)、傳感器系統(tǒng)和通信系統(tǒng)后,可以執(zhí)行多種任務(wù),比如搜救、導(dǎo)航和水文地理勘察等。而完成這些任務(wù)的重要前提之一便是無人艇能夠進(jìn)行避碰,無人艇的避碰技術(shù)不僅從一定程度上反應(yīng)了海事無人艇智能化水平的高低,也是無人艇關(guān)鍵技術(shù)領(lǐng)域的重要研究內(nèi)容之一。而國內(nèi)外文獻(xiàn)中未有用改進(jìn)蟻群算法對無人艇的安全航線進(jìn)行規(guī)劃的相關(guān)報道。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種能使無人艇在航行時可以避開原航線上的障礙物的基于改進(jìn)蟻群算法的無人艇避碰方法。
本發(fā)明的目的是這樣實現(xiàn)的:
步驟一:獲取障礙物的位置與無人艇的位置姿態(tài)信息,并進(jìn)行濾波及時空對準(zhǔn)得到無人艇的精確位置姿態(tài)與障礙物的精確位置;
步驟二:通過對無人艇航行過程中的航速、精確位置姿態(tài)及障礙物的精確位置評價,建立碰撞危險度模型,對預(yù)先所規(guī)劃的路徑進(jìn)行篩選;
步驟三:利用改進(jìn)蟻群算法進(jìn)行無人艇航跡規(guī)劃,具體包括:
(1)環(huán)境建模
假定無人艇的工作空間信息已知、無人艇工作在二維空間,把該二維空間分成大小相同的柵格,在這些柵格中如果沒有障礙物則為自由柵格、否則為障礙物柵格;
(2)節(jié)點(diǎn)選擇
假設(shè)共有m只螞蟻從起點(diǎn)s出發(fā)到達(dá)終點(diǎn)t,當(dāng)螞蟻k在t時刻從當(dāng)前節(jié)點(diǎn)i時,選擇下一個節(jié)點(diǎn)j轉(zhuǎn)移的概率pij為:
其中w表示所有可能選取的節(jié)點(diǎn)的可能值,τij表示t時刻的信息素濃度;ηij為后續(xù)節(jié)點(diǎn)的啟發(fā)值,啟發(fā)因子ηij=1/dij,其中dij表示節(jié)點(diǎn)i到j(luò)的距離;allowedk表示螞蟻k下一步允許選擇的節(jié)點(diǎn)。
(3)信息素更新
信息素更新分為實時信息素更新和路徑信息素更新,實時信息素更新是指每一只螞蟻在選擇某一節(jié)點(diǎn)后都必須對該節(jié)點(diǎn)的信息素進(jìn)行更新,即
τij=(1-ρ)τij+ρτ0
其中,τ0為信息素初始值,ρ為區(qū)間[0,1]的可調(diào)參數(shù);
路徑信息素更新為:當(dāng)所有螞蟻從初始節(jié)點(diǎn)走到終點(diǎn),完成依次迭代搜索時,選擇所有螞蟻經(jīng)過的路徑長度最短的一條路徑,更新該條路徑上每個節(jié)點(diǎn)的信息素,即
τij=(1-ρ)τij+ρδτij
其中,δτij=1/l*,l*為最短路徑的長度;
(4)自適應(yīng)蟻群算法
信息素?fù)]發(fā)系數(shù)
ρij是路徑節(jié)點(diǎn)i和路徑節(jié)點(diǎn)j之間的信息素?fù)]發(fā)系數(shù),taumin是最小的信息素值,tauij是路徑節(jié)點(diǎn)i和路徑節(jié)點(diǎn)j之間的信息素值,e-1是調(diào)節(jié)ρij大小的系數(shù);
自適應(yīng)蟻群算法在傳統(tǒng)蟻群算法的基礎(chǔ)上,重新設(shè)計步驟如下:
步驟1、構(gòu)造解空間;
步驟2、初始化參數(shù);
步驟3、每只螞蟻按照選擇概率,選擇下一個可行節(jié)點(diǎn);
步驟4、在一定迭代范圍內(nèi),最優(yōu)值是否改變,若沒有變化,則更新?lián)]發(fā)系數(shù)值;
步驟5、局部信息素和全局信息素更新;
步驟6、滿足迭代終止條件,輸出結(jié)果;
所得到從起點(diǎn)s出發(fā)到達(dá)終點(diǎn)t的最優(yōu)路徑即為無人艇在遇到障礙物時航行的航線。
基于改進(jìn)蟻群算法的無人艇避碰方法的目的是提供無人艇航行路徑,使無人艇在按照此航線航行時可以避開原航線上的障礙物。本發(fā)明的方法的主要特點(diǎn)在于:
1.障礙物位置的獲取與船舶位置姿態(tài)的獲取
由衛(wèi)星、張緊鎖、水聲、激光和雷達(dá)等位置參考系統(tǒng)測得無人艇與障礙物的位置信息,由電羅經(jīng)、運(yùn)動參考單元等測得無人艇的艏向等姿態(tài)信息。對獲取的姿態(tài)及位置信息進(jìn)行濾波及時空對準(zhǔn),得到無人艇的精確位置姿態(tài)與障礙物的位置。
2.建立無人艇的碰撞危險度模型
通過對無人艇航行過程中的航速、姿態(tài)及障礙物的位置評價,建立碰撞危險度模型,對所規(guī)劃的路徑進(jìn)行篩選。
3.基于改進(jìn)蟻群算法的無人艇航跡規(guī)劃
蟻群算法由于具有正反饋、并行性、魯棒性強(qiáng)、自學(xué)習(xí)和容易與其它算法相結(jié)合等優(yōu)點(diǎn),已經(jīng)廣泛應(yīng)用于路徑規(guī)劃、調(diào)度作業(yè)、圖像處理等諸多領(lǐng)域。但是,容易陷入局部最優(yōu)和收斂速度慢等問題一直制約著蟻群算法的發(fā)展。針對目前蟻群算法容易陷入局部最優(yōu)的缺點(diǎn),本發(fā)明提出通過改進(jìn)啟發(fā)函數(shù)和自適應(yīng)調(diào)整揮發(fā)系數(shù)對信息素進(jìn)行更新,不僅很好地發(fā)揮出了蟻群算法的優(yōu)勢,還克服了其易于陷于局部最優(yōu)解的缺點(diǎn),可以更好地規(guī)劃出無人艇的航行路線。
本發(fā)明包括以下有益效果:
1、本發(fā)明完成了無人艇從搜索附近航行環(huán)境,收集并分析障礙物信息,到制定避碰對策,完成對障礙物的躲避的一系列過程,有效提升了無人艇的智能化,減少了操控人員的工作量;
2、本發(fā)明使用改進(jìn)的蟻群算法對無人艇航行路徑進(jìn)行規(guī)劃,克服了傳統(tǒng)蟻群算法易于陷于局部最優(yōu)解的問題,使得規(guī)劃路徑的質(zhì)量有所提升。
3、本發(fā)明通過改進(jìn)蟻群算法對路徑進(jìn)行規(guī)劃,實現(xiàn)無人艇在執(zhí)行搜救、勘察等任務(wù)的時候能夠發(fā)現(xiàn)障礙物,根據(jù)障礙物的分布情況實施避碰策略,確保無人艇航行時的安全性。
附圖說明
圖1為無人艇進(jìn)行避碰過程示意圖;
圖2是無人艇避碰階段的劃分;
圖3是本發(fā)明的改進(jìn)蟻群算法流程圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明作進(jìn)一步的描述。
本發(fā)明的目的按以下步驟實現(xiàn):
1.障礙物位置的獲取與無人艇位置姿態(tài)的獲取
無人艇上的的測量系統(tǒng)主要由兩大部分組成:位置參考系統(tǒng)和傳感器參考系統(tǒng),分別測得航行中無人艇的位置及姿態(tài)與障礙物的位置。考慮到不同傳感器在時間及步調(diào)上的不一致,以及測量誤差和各種不確定因素等。將不同傳感器的數(shù)據(jù)進(jìn)行濾波、融合、時空對準(zhǔn)后得到更為精確的位置及姿態(tài)信息。
2.確定無人艇采取避碰措施的時機(jī)
依據(jù)《1972年國際海上避碰規(guī)則》并按照不同的距離,將避碰階段劃分為五個,由遠(yuǎn)及近的對其進(jìn)行劃分,如圖2所示,分別為:自由行動階段、碰撞危險階段、緊迫局面階段、緊迫危險階段與發(fā)生碰撞。對于不同的避碰階段,采取不同標(biāo)準(zhǔn)的避碰行動策略。在此基礎(chǔ)上建立碰撞危險度(collisionriskindex,簡稱cri)的評價模型,取cri的值為0~1,我們用無人艇上的傳感器所測量出來的數(shù)據(jù)來評價發(fā)生碰撞的概率大小,cri越大表示發(fā)生碰撞的可能性越大,對于處于航行狀態(tài)下的的無人艇應(yīng)按照cri的取值,實施不同的避碰措施。
首先將無人艇上傳感器所獲取的信息進(jìn)行處理,解算出無人艇與障礙物的航向:
無人艇航向
其中:
式中vox,voy分別為無人艇的航速在x,y軸上速度的大小。
根據(jù)無人艇與障礙物的地理坐標(biāo)解算出無人艇與障礙物相對距離為:
式中,xt,yt為障礙物的橫縱坐標(biāo);
xo,yo為無人艇的橫縱坐標(biāo)。
障礙物相對于無人艇的真方位為θt:
無人艇相對于障礙物的真方位為θ0:
其中,
障礙物的相位方位為αt:
障礙物相對于無人艇在x,y軸上的相對速度分量為:
障礙物相對于無人艇的相對航向
其中:
最近會遇距離:
最近會遇時間:
dcpa的隸屬函數(shù):
d2=d1·k,k表示為無人艇之間的狀態(tài)由于外界和內(nèi)部因素所造成的不穩(wěn)定和不協(xié)調(diào)。本文中將k值取定為恒定值2。
d1表示無人艇與障礙物之間安全駛過的最小的距離d1=sda·n,用n來反映無人艇航行時的海面能見度的情形,通常在試驗中默認(rèn)為1,表示周圍的能見度良好,航海條件優(yōu)秀,sda為保證無人艇與目標(biāo)物之間可以安全通過的最短的距離。
sda=d(bot)+k1+k2
d(bot)確定方式如下:
bot表示障礙物相對于無人艇的方位角,k1表示航行海域的可視狀況對sda的影響,在本文中假設(shè)的航海條件下,可視狀況良好,取k1=0。k2表示航海所在的海域?qū)da產(chǎn)生的影響,對于航行在大洋中的船舶,k2取值為0.2,對于航行在沿海區(qū)域的船舶,k2取值為0。
d的隸屬函數(shù)為:
式中,r1=dla,表明即使無人艇與障礙物處于緊迫局面的狀態(tài),兩船的距離為r1就有足夠的空間脫離緊迫局面。r2=arena,表明無人艇與障礙物處于緊迫局面的狀態(tài),之間的距離為r2沒有足夠的空間脫離緊迫局面。dla為最晚施舵點(diǎn),即為在此距離以內(nèi)進(jìn)行無人艇避碰操作已經(jīng)沒有足夠的空間進(jìn)行避碰,碰撞無法避免的會發(fā)生。arena為動界,計算方法如下:
其中t為無人艇艏向角改變90°時所需要的時間,單位:h。
碰撞危險度的值將直接影響改進(jìn)蟻群算法對路徑的評價,對于航線上碰撞危險度大于一定值的路徑將直接剔除。
3.基于改進(jìn)蟻群算法的無人艇航跡規(guī)劃
而蟻群算法控制器根據(jù)障礙物數(shù)據(jù)制定出避碰策略的過程如圖3所示:
(1)環(huán)境建模
假定無人艇的工作空間信息已知,即障礙物的位置、大小以及無人艇的起始位置、目標(biāo)位置等都是已知的;并且假設(shè)無人艇工作在二維空間,在運(yùn)動的過程中,一切環(huán)境信息不發(fā)生變化。柵格法就是指把無人艇的工作空間模擬為二維空間,并且把該二維空間分成大小相同的柵格,使為人聽在該空間中自由運(yùn)動。在這些柵格中如果沒有障礙物,則稱之為自由柵格;否則,稱之為障礙物柵格。只要在柵格中有障礙物的存在,就設(shè)置成障礙柵格,如果柵格中障礙物不滿一個柵格也按照一個柵格處理。
(2)節(jié)點(diǎn)選擇
假設(shè)共有m只螞蟻從起點(diǎn)s出發(fā)到達(dá)終點(diǎn)t,在移動的過程中,當(dāng)螞蟻在當(dāng)前節(jié)點(diǎn)時,選擇下一個節(jié)點(diǎn)j的方法為:
其中,i每個柵格單元和它周圍的8個柵格的所有節(jié)點(diǎn)的集合。τij為信息素,ηij為啟發(fā)值。j的計算方法為,首先依次計算當(dāng)前節(jié)點(diǎn)到下一個節(jié)點(diǎn)j的選擇概率pij,然后根據(jù)選擇概率采用輪盤賭算法找出下一個節(jié)點(diǎn)的j,pij的計算公式為:
(3)信息素更新
信息素更新可以分為實時信息素更新和路徑信息素更新,實時信息素更新是指每一只螞蟻在選擇某一節(jié)點(diǎn)后都必須對該節(jié)點(diǎn)的信息素進(jìn)行更新,即
τij=(1-ρ)τij+ρτ0
其中,τ0為信息素初始值,ρ為區(qū)間[0,1]的可調(diào)參數(shù)。
當(dāng)所有螞蟻從初始節(jié)點(diǎn)走到終點(diǎn),完成依次迭代搜索時,選擇所有螞蟻經(jīng)過的路徑長度最短的一條路徑,更新該條路徑上每個節(jié)點(diǎn)的信息素,即
τij=(1-ρ)τij+ρδτij
其中,δτij=1/l*,l*為最短路徑的長度,ρ為區(qū)間[0,1]的可調(diào)參數(shù)。
(4)自適應(yīng)蟻群算法
信息素?fù)]發(fā)系數(shù)
ρij是路徑節(jié)點(diǎn)i和路徑節(jié)點(diǎn)j之間的信息素?fù)]發(fā)系數(shù),taumin是最小的信息素值,tauij是路徑節(jié)點(diǎn)i和路徑節(jié)點(diǎn)j之間的信息素值,e-1是調(diào)節(jié)ρij大小的系數(shù)。
自適應(yīng)蟻群算法在傳統(tǒng)蟻群算法的基礎(chǔ)上,重新設(shè)計步驟如下:
步驟1、構(gòu)造解空間;
步驟2、初始化參數(shù);
步驟3、每只螞蟻按照選擇概率,選擇下一個可行節(jié)點(diǎn);
步驟4、在迭代次數(shù)完成3到5代時,最優(yōu)值是否改變,若沒有變化,則更新?lián)]發(fā)系數(shù)值;
步驟5、局部信息素和全局信息素更新;
步驟6、滿足迭代終止條件,輸出結(jié)果。
算法所得到從起點(diǎn)s出發(fā)到達(dá)終點(diǎn)t的最優(yōu)路徑即為無人艇在遇到障礙物時航行的航線。