本申請(qǐng)屬于路徑規(guī)劃,具體涉及一種基于改進(jìn)蟻群算法及航速保持的水面無(wú)人艇路徑規(guī)劃方法。
背景技術(shù):
1、在水面無(wú)人艇(usv)的自主導(dǎo)航中,路徑規(guī)劃是一項(xiàng)關(guān)鍵技術(shù),usv通常需要在復(fù)雜的海洋環(huán)境中自主導(dǎo)航,避開障礙物,同時(shí)以最短路徑或者根據(jù)具體任務(wù)要求的優(yōu)化路徑到達(dá)目標(biāo)區(qū)域。
2、針對(duì)水面無(wú)人艇的路徑規(guī)劃問題,目前主要的研究算法包括遺傳算法,蟻群算法和粒子群算法等,其中,粒子群算法是一種基于群體智能的優(yōu)化算法,該算法通過模擬鳥群、魚群等生物群體的覓食行為,利用群體中的個(gè)體之間的協(xié)作和信息共享機(jī)制來快速尋找最優(yōu)解,目前已廣泛應(yīng)用于水面無(wú)人艇的路徑規(guī)劃上。
3、然而,由于傳統(tǒng)蟻群算法本質(zhì)上為正反饋機(jī)制的算法,且蟻群算法一開始的搜索具有隨機(jī)性,如果一開始搜索到的解為局部最優(yōu)解而且相鄰的其他解明顯劣于該局部最優(yōu)解,蟻群算法很可能最終收斂于該局部最優(yōu)解,導(dǎo)致無(wú)法搜索得到全局最優(yōu)解;此外,傳統(tǒng)蟻群算法基于路徑最短目標(biāo)生成多段折線,當(dāng)兩段折線之間的夾角為銳角時(shí),無(wú)人艇(特別是高速無(wú)人艇)在經(jīng)過兩段折線交點(diǎn)時(shí),一般需要降速以高航速下急轉(zhuǎn)彎導(dǎo)致的傾覆風(fēng)險(xiǎn),頻繁降速-加速不僅增加了無(wú)人艇的能量消耗,也導(dǎo)致航行時(shí)間的延長(zhǎng),使得沿最短路徑航行并不能實(shí)現(xiàn)最少的航行時(shí)間,對(duì)于高速無(wú)人艇,上述問題更加明顯。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)的目的在于提供一種基于改進(jìn)蟻群算法及航速保持的水面無(wú)人艇路徑規(guī)劃方法,通過對(duì)傳統(tǒng)蟻群算法進(jìn)行優(yōu)化,搜索得到使無(wú)人艇保持高航速下的全局最優(yōu)路徑方案,該方法包括以下步驟:
2、s1,建立待規(guī)劃區(qū)域的環(huán)境地圖模型;
3、s2,在所述環(huán)境地圖模型上使用常規(guī)蟻群算法進(jìn)行全局路徑規(guī)劃,得到第一規(guī)劃路徑;
4、s3,基于改進(jìn)蟻群算法對(duì)所述第一規(guī)劃路徑進(jìn)行全局優(yōu)化,得到第二規(guī)劃路徑;
5、s4,對(duì)所述第二規(guī)劃路徑上的各個(gè)轉(zhuǎn)向點(diǎn)進(jìn)行基于航速保持的轉(zhuǎn)向優(yōu)化操作,得到待規(guī)劃區(qū)域的最優(yōu)規(guī)劃路徑。
6、優(yōu)選地,所述環(huán)境地圖模型為maklink圖,所述maklink圖中包括至少一個(gè)障礙物區(qū)域以及多個(gè)自由區(qū)域。
7、優(yōu)選地,所述第一規(guī)劃路徑由至少兩個(gè)直線的第一子路徑前后依次連接構(gòu)成,且所述第一規(guī)劃路徑的每個(gè)轉(zhuǎn)向點(diǎn)均為所述maklink圖中的一條鏈接線的中點(diǎn)。
8、所述第二規(guī)劃路徑由至少兩個(gè)直線的第二子路徑前后依次連接構(gòu)成,且所述第二規(guī)劃路徑的各個(gè)轉(zhuǎn)向點(diǎn)均一一對(duì)應(yīng)地位于所述第一規(guī)劃路徑中的各個(gè)轉(zhuǎn)向點(diǎn)所在的鏈接線上。
9、進(jìn)一步地,步驟s3包括以下步驟:
10、s31,基于下式對(duì)第一鏈接線進(jìn)行節(jié)點(diǎn)分割操作:
11、
12、其中,第一鏈接線為第一規(guī)劃路徑中各個(gè)轉(zhuǎn)向點(diǎn)所在的鏈接線,l為任意一個(gè)鏈接線,h為對(duì)l進(jìn)行等分的總數(shù),h為分割節(jié)點(diǎn)的序號(hào);
13、s32,進(jìn)行改進(jìn)蟻群算法的初始化操作,設(shè)置蟻群規(guī)模m、循環(huán)次數(shù)上限n以及啟發(fā)信息和信息素的初始值;
14、s33,循環(huán)地執(zhí)行步驟s331至步驟s336,直到達(dá)到循環(huán)次數(shù)上限n:
15、s331,選擇蟻群中的任意一只螞蟻;
16、s332,隨機(jī)設(shè)置該螞蟻在首個(gè)第一鏈接線上所處的分割節(jié)點(diǎn)序號(hào);
17、s333,生成一個(gè)[0,1]之間的隨機(jī)數(shù)q;
18、s334,遍歷各個(gè)第一鏈接線,基于以下方式確定該螞蟻?zhàn)援?dāng)前的第一鏈接線運(yùn)動(dòng)至下一個(gè)
19、第一鏈接線的路徑,并對(duì)該路徑進(jìn)行實(shí)時(shí)信息素更新:
20、
21、其中,i、j分別為該螞蟻在當(dāng)前及下一個(gè)第一鏈接線上所處的分割節(jié)點(diǎn)的序號(hào),τi,j、δi,j分別為點(diǎn)i至點(diǎn)j的路徑的信息素濃度和啟發(fā)值,α、β分別為信息素濃度和啟發(fā)值的控制系數(shù),phethres為選擇閾值,roulette?methoud為輪盤賭方法,所述輪盤賭方法的轉(zhuǎn)移概率pi,j如下式所示:
22、
23、其中,s為下一個(gè)第一鏈接線上的分割節(jié)點(diǎn)集合,τi,s、δi,s分別為點(diǎn)i至點(diǎn)s的路徑的信息素和啟發(fā)值;
24、s335,重新選擇一只螞蟻并返回執(zhí)行步驟s332,直到已選擇蟻群中的所有m只螞蟻;
25、s336,從所有m只螞蟻所經(jīng)過的路徑中選擇一個(gè)最短路徑作為第二規(guī)劃路徑,并對(duì)該第二規(guī)劃路徑上的信息素進(jìn)行全局更新。
26、進(jìn)一步地,步驟s4包括以下步驟:
27、s410,遍歷第二規(guī)劃路徑中的各個(gè)轉(zhuǎn)向點(diǎn),對(duì)每個(gè)轉(zhuǎn)向點(diǎn)執(zhí)行步驟s421至步驟s423:
28、s421,判斷該轉(zhuǎn)向點(diǎn)連接的兩個(gè)第二子路徑的長(zhǎng)度是否均大于length且兩者之間的夾角是否大于60度,如是,則執(zhí)行步驟s422,如否,則執(zhí)行步驟s423,其中,length的下限為
29、所述水面無(wú)人艇按照其預(yù)計(jì)航速經(jīng)過該轉(zhuǎn)向點(diǎn)時(shí)的轉(zhuǎn)彎半徑的兩倍;
30、s422,通過對(duì)該轉(zhuǎn)向點(diǎn)連接的兩個(gè)第二子路徑進(jìn)行剪切操作以對(duì)其進(jìn)行轉(zhuǎn)向優(yōu)化;
31、s423,通過對(duì)該轉(zhuǎn)向點(diǎn)連接的兩個(gè)第二子路徑進(jìn)行擴(kuò)張操作以對(duì)其進(jìn)行轉(zhuǎn)向優(yōu)化;
32、s430,按照所述水面無(wú)人艇的航行順序依次將經(jīng)過轉(zhuǎn)向優(yōu)化得到的各個(gè)子路徑首尾連接,得到所述最優(yōu)規(guī)劃路徑。
33、優(yōu)選地,步驟s422中所述的剪切操作具體為:以該轉(zhuǎn)向點(diǎn)為起點(diǎn),分別在其連接的兩個(gè)第二子路徑上截取一小于length的長(zhǎng)度以得到兩個(gè)剪切點(diǎn),刪除該轉(zhuǎn)向點(diǎn)并連接兩個(gè)剪切點(diǎn),從而得到經(jīng)過剪切操作的子路徑。
34、優(yōu)選地,步驟s423中所述的擴(kuò)張操作具體為:以該轉(zhuǎn)向點(diǎn)為起點(diǎn),持續(xù)地進(jìn)行延伸-旋轉(zhuǎn)操作以得到多個(gè)擴(kuò)張點(diǎn),然后通過依次連接各個(gè)擴(kuò)張點(diǎn)得到經(jīng)過擴(kuò)張操作的子路徑,其中,第一個(gè)擴(kuò)張點(diǎn)位于其中一個(gè)與該轉(zhuǎn)向點(diǎn)連接的第二子路徑的航向上,且每次延伸-旋轉(zhuǎn)操作中,延伸長(zhǎng)度不小于length。
35、優(yōu)選地,在步驟s1與s2之間還包括對(duì)所述障礙物區(qū)域進(jìn)行膨脹操作的步驟,其中膨脹距離為所述水面無(wú)人艇按照其預(yù)計(jì)航速進(jìn)行轉(zhuǎn)向時(shí)的轉(zhuǎn)彎半徑。
36、本申請(qǐng)的實(shí)施例提供的基于改進(jìn)蟻群算法及航速保持的水面無(wú)人艇路徑規(guī)劃方法,通過maklink圖論來建立海上環(huán)境地圖模型,提高了路徑規(guī)劃的環(huán)境適應(yīng)性和準(zhǔn)確性;通過改進(jìn)蟻群算法對(duì)傳統(tǒng)蟻群算法的搜索結(jié)果進(jìn)行全局優(yōu)化以解決局部極值問題;進(jìn)一步地,為了保證水面無(wú)人艇能夠在保持較高航速的基礎(chǔ)上完成航行,通過對(duì)全局優(yōu)化后的路徑中的各個(gè)銳角轉(zhuǎn)向航段組合進(jìn)行鈍角化處理,最終得到能夠在最短的航行時(shí)間內(nèi)完成航行的最優(yōu)規(guī)劃路徑。
1.一種基于改進(jìn)蟻群算法及航速保持的水面無(wú)人艇路徑規(guī)劃方法,用于對(duì)高速無(wú)人艇的路徑進(jìn)行規(guī)劃,其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的基于改進(jìn)蟻群算法及航速保持的水面無(wú)人艇路徑規(guī)劃方法,其特征在于,所述環(huán)境地圖模型為maklink圖,所述maklink圖中包括至少一個(gè)障礙物區(qū)域以及多個(gè)自由區(qū)域。
3.根據(jù)權(quán)利要求2所述的基于改進(jìn)蟻群算法及航速保持的水面無(wú)人艇路徑規(guī)劃方法,其特征在于,所述第一規(guī)劃路徑由至少兩個(gè)直線的第一子路徑前后依次連接構(gòu)成,且所述第一規(guī)劃路徑的每個(gè)轉(zhuǎn)向點(diǎn)均為所述maklink圖中的一條鏈接線的中點(diǎn)。
4.根據(jù)權(quán)利要求1所述的基于改進(jìn)蟻群算法及航速保持的水面無(wú)人艇路徑規(guī)劃方法,其特征在于,
5.根據(jù)權(quán)利要求4所述的基于改進(jìn)蟻群算法及航速保持的水面無(wú)人艇路徑規(guī)劃方法,其特征在于,步驟s3進(jìn)一步包括以下步驟:
6.根據(jù)權(quán)利要求1所述的基于改進(jìn)蟻群算法及航速保持的水面無(wú)人艇路徑規(guī)劃方法,其特征在于,步驟s4進(jìn)一步包括以下步驟:
7.根據(jù)權(quán)利要求6所述的基于改進(jìn)蟻群算法及航速保持的水面無(wú)人艇路徑規(guī)劃方法,其特征在于,
8.根據(jù)權(quán)利要求6所述的基于改進(jìn)蟻群算法及航速保持的水面無(wú)人艇路徑規(guī)劃方法,其特征在于,
9.根據(jù)權(quán)利要求2所述的基于改進(jìn)蟻群算法及航速保持的水面無(wú)人艇路徑規(guī)劃方法,其特征在于,在步驟s1與s2之間還包括對(duì)所述障礙物區(qū)域進(jìn)行膨脹操作的步驟,其中膨脹距離為所述水面無(wú)人艇按照其預(yù)計(jì)航速進(jìn)行轉(zhuǎn)向時(shí)的轉(zhuǎn)彎半徑。