錢(qián) 平,齊賽賽,李思奇,孫 遜
(蘇州市職業(yè)大學(xué),江蘇 蘇州 215204)
隨著人工智能、大數(shù)據(jù)等計(jì)算機(jī)技術(shù)的不斷發(fā)展和進(jìn)步,而海洋資源的開(kāi)發(fā)也進(jìn)入常態(tài)化,并且隨著國(guó)家海洋戰(zhàn)略的發(fā)展,水下無(wú)人潛航器發(fā)展尤為重要。常見(jiàn)的水下潛航器分為遙控?zé)o人潛航器(Remote Operated Vehicle,ROV)和自主式水下潛航器(Autonomous Underwater Vehicle,AUV)。其中,AUV憑借著體積小、機(jī)動(dòng)性強(qiáng)、結(jié)構(gòu)簡(jiǎn)單在水底工程作業(yè)、環(huán)境勘探等領(lǐng)域得到廣泛應(yīng)用。隨著科學(xué)技術(shù)的不斷發(fā)展,離不開(kāi)水下潛航器的智能化水平,并且作業(yè)中經(jīng)常涉及能否順利到達(dá)目的地的問(wèn)題,所以AUV的路徑規(guī)劃便成為該領(lǐng)域的重點(diǎn)研究方向之一,也是判定智能化水平高低的技術(shù)之一。路徑規(guī)劃是指根據(jù)一定的優(yōu)化準(zhǔn)則為最短路徑尋找一條從起點(diǎn)到終點(diǎn)的最優(yōu)路徑。通常情況下,AUV的路徑規(guī)劃可分為全局路徑規(guī)劃和局部路徑規(guī)劃[1]。本文主要研究的是局部路徑規(guī)劃算法,也就是潛航器對(duì)所處部分未知的信息環(huán)境,利用自身搭載的傳感器進(jìn)行信息搜索并對(duì)信息進(jìn)行分析處理規(guī)劃出局部的路徑。隨著算法的不斷升級(jí),局部路徑規(guī)劃完成避障方法主要有遺傳算法、模糊邏輯算法和人工勢(shì)場(chǎng)法等。遺傳算法和模糊邏輯算法存在著計(jì)算量大、計(jì)算時(shí)間長(zhǎng)等問(wèn)題,不易實(shí)現(xiàn)水下AUV的精確避障。而人工勢(shì)場(chǎng)法算法是以建立目的地的引力勢(shì)場(chǎng)、障礙物的斥力勢(shì)場(chǎng)而定義的虛擬勢(shì)場(chǎng),使得AUV處于虛擬的外部受力環(huán)境,在此環(huán)境中搜索相應(yīng)的安全路徑。該方法以簡(jiǎn)單明了、反應(yīng)速度快等優(yōu)勢(shì)在AUV的局部路徑規(guī)劃中應(yīng)用較為廣泛[2]。人工勢(shì)場(chǎng)法也存在陷入局部極小值問(wèn)題和目標(biāo)不可達(dá)的問(wèn)題。針對(duì)這兩個(gè)問(wèn)題,本文采用先通過(guò)判斷局部極小值條件后設(shè)置虛擬目標(biāo)點(diǎn)來(lái)解決局部最小值問(wèn)題,通過(guò)改變斥力勢(shì)場(chǎng)來(lái)解決目標(biāo)不可達(dá)問(wèn)題。
傳統(tǒng)的人工勢(shì)場(chǎng)法受到物理學(xué)中自然勢(shì)場(chǎng)如重力勢(shì)場(chǎng)、電勢(shì)場(chǎng)等勢(shì)場(chǎng)的啟發(fā)而產(chǎn)生的一種虛擬的人工建立的勢(shì)場(chǎng)[3],其根本原理是將AUV在水中運(yùn)行環(huán)境中的運(yùn)動(dòng)轉(zhuǎn)化為AUV在設(shè)定的抽象勢(shì)場(chǎng)中的運(yùn)動(dòng)。在整個(gè)環(huán)境中的虛擬勢(shì)場(chǎng)主要抽象成引力勢(shì)場(chǎng)和斥力勢(shì)場(chǎng),然后合稱為整個(gè)虛擬的環(huán)境勢(shì)場(chǎng),AUV在整個(gè)勢(shì)場(chǎng)中運(yùn)行,與自然勢(shì)場(chǎng)一樣運(yùn)動(dòng)方向?yàn)閯?shì)能下降方向。
引力勢(shì)場(chǎng)Uatt(q)的數(shù)學(xué)函數(shù)可表示為:
(1)
圖1 虛擬目標(biāo)點(diǎn)設(shè)置示意
式中,katt為引力勢(shì)場(chǎng)增益系數(shù),為非負(fù)數(shù),實(shí)驗(yàn)時(shí)根據(jù)具體情況可以調(diào)節(jié)大小,ρ(q,qgoal)為AUV潛航器的當(dāng)前位置與目標(biāo)點(diǎn)位置的歐氏距離|q-qgoal|。那么引力及為對(duì)引力勢(shì)場(chǎng)函數(shù)求導(dǎo)后的負(fù)值,表示引力方向指向目標(biāo)點(diǎn)的位置,具體引力函數(shù)可表示為:
(2)
引力勢(shì)場(chǎng)主要是目標(biāo)點(diǎn)對(duì)AUV產(chǎn)生吸引力,由公式(2)可以看出力的大小主要由AUV和目標(biāo)點(diǎn)的歐拉距離決定的。當(dāng)距離越近時(shí),產(chǎn)生的引力越小,反之則產(chǎn)生引力越大。力的方向?yàn)锳UV指向目標(biāo)點(diǎn)的方向。
斥力勢(shì)場(chǎng)的數(shù)學(xué)函數(shù)可表示為:
Urep(q)=
(3)
式中,krep為斥力勢(shì)場(chǎng)增益系數(shù),為非負(fù)數(shù),實(shí)驗(yàn)時(shí)根據(jù)具體情況可以調(diào)節(jié)大小,ρ(q,q0)為AUV潛航器的當(dāng)前位置與障礙物位置的歐拉距離|q-q0|,ρ0為一恒定值,表示障礙物對(duì)AUV潛航器的影響距離范圍,實(shí)驗(yàn)時(shí)也可根據(jù)具體情況調(diào)節(jié)大小,那么斥力及為對(duì)斥力勢(shì)場(chǎng)函數(shù)求導(dǎo)后的負(fù)值,表示斥力方向?yàn)檎系K物指向AUV的方向,具體斥力函數(shù)可表示為:
(4)
斥力勢(shì)場(chǎng)主要是障礙物對(duì)AUV的排斥力,由公式(4)可以看出力的大小主要由AUV和障礙物的歐拉距離決定的,當(dāng)距離越近時(shí),產(chǎn)生的斥力越大,反之則產(chǎn)生的斥力越小,并且當(dāng)超出設(shè)定的距離時(shí)就不在斥力勢(shì)場(chǎng)的影響范圍,此時(shí)斥力為0。力的方向和斥力方向?yàn)檎系K物指向AUV的方向。
運(yùn)行環(huán)境中有多個(gè)障礙物時(shí),受到引力勢(shì)場(chǎng)和多個(gè)斥力勢(shì)場(chǎng)的作用,所受的合力即為引力和多個(gè)斥力的矢量和,可表示為:
(5)
與智能車(chē)?yán)萌斯?shì)能法路徑規(guī)劃相同,潛航器路徑規(guī)劃也會(huì)出現(xiàn)局部最小值問(wèn)題。也就是在AUV運(yùn)行的過(guò)程中,潛航器、障礙物、目標(biāo)點(diǎn)在一條直線上,這種情況會(huì)導(dǎo)致引力和斥力大小相等、方向相反的可能,還有一種情況是所有斥力的矢量和與引力的大小相等方向相反,這都會(huì)使?jié)摵狡魇芰?,無(wú)法繼續(xù)前行,會(huì)誤認(rèn)為當(dāng)前位置為目標(biāo)點(diǎn),陷入了局部最小值,導(dǎo)致局部路徑規(guī)劃的失敗[4]。當(dāng)判定出處于局部最小值問(wèn)題時(shí),本文采用了設(shè)置虛擬目標(biāo)點(diǎn)的方式來(lái)進(jìn)行避障,虛擬目標(biāo)點(diǎn)的位置如圖1所示。
采用潛航器右轉(zhuǎn)避讓法,右轉(zhuǎn)π/3作為偏轉(zhuǎn)角度,同時(shí),采用步長(zhǎng)ρ0作為偏轉(zhuǎn)距離,那么就可以確定虛擬目標(biāo)點(diǎn)的坐標(biāo)位置如式(6)所示:
(6)
式中,x0,y0為潛航器當(dāng)前的坐標(biāo)位置,αg等于αatt+π/3,而αatt為當(dāng)前引力角。以此種方法逃離局部最優(yōu),到達(dá)虛擬目標(biāo)點(diǎn)后,再向原目標(biāo)點(diǎn)切換路線,解決局部最小值問(wèn)題。
當(dāng)潛航器接近目標(biāo)點(diǎn)附近時(shí),正好也有障礙物在附近或者斥力勢(shì)場(chǎng)的合場(chǎng)形成的合力正好處于特殊情況時(shí),也就是說(shuō)潛航器在接近目標(biāo)點(diǎn)時(shí),引力作用越來(lái)越小,而斥力越來(lái)越大。當(dāng)斥力大于引力時(shí),力變成運(yùn)動(dòng)的反方向,在潛航器速度減為0時(shí)會(huì)往回走一段,之后,引力又會(huì)大于斥力,繼續(xù)往前走。如此反復(fù),潛航器就在目標(biāo)點(diǎn)附近不斷振蕩,不能到達(dá)目的地即出現(xiàn)目標(biāo)不可達(dá)的問(wèn)題[5]。為此,將潛航器與目標(biāo)點(diǎn)位置的相對(duì)距離引入斥力勢(shì)場(chǎng)函數(shù)中去,減小在目標(biāo)點(diǎn)附近障礙物對(duì)潛航器的斥力作用。其斥力勢(shì)場(chǎng)數(shù)學(xué)函數(shù)表示為:
Urep(q)=
(7)
式中,ρ(q,qgoal)為AUV潛航器的當(dāng)前位置與目標(biāo)點(diǎn)位置的歐拉距離|q-qgoal|。那么,由斥力勢(shì)場(chǎng)求偏導(dǎo)函數(shù)可得斥力為2個(gè)分量可表示為公式(8)、(9):
(8)
(9)
其中,第一個(gè)分力對(duì)潛航器產(chǎn)生的是斥力,第二個(gè)分力對(duì)潛航器產(chǎn)生的是引力作用。由改進(jìn)的斥力勢(shì)場(chǎng)和原來(lái)的引力勢(shì)場(chǎng)可以看出潛航器達(dá)到目標(biāo)點(diǎn)時(shí)引力為0,同時(shí)靠近目標(biāo)的時(shí)候斥力勢(shì)場(chǎng)也為0,解決了在目標(biāo)點(diǎn)振蕩或者說(shuō)是不能到達(dá)目標(biāo)點(diǎn)的問(wèn)題。
為驗(yàn)證本文提出的人工勢(shì)能改進(jìn)方法對(duì)潛航器的局部路徑規(guī)劃的有效性,使用MATLABR2016a軟件仿真,針對(duì)出現(xiàn)的不同問(wèn)題和如何改進(jìn)都做出相應(yīng)的仿真。仿真的參數(shù)設(shè)定如下引力增益系數(shù)katt為60,斥力增益系數(shù)katt為10,障礙物個(gè)數(shù)為9個(gè),影響范圍為1,步長(zhǎng)設(shè)置為0.1,起點(diǎn)位置為(0,0),目標(biāo)點(diǎn)位置為(10,10)。首先遇到的問(wèn)題是當(dāng)最后一個(gè)障礙物坐標(biāo)為(8.7,9.5)時(shí),潛航器障礙物受各勢(shì)力場(chǎng)的影響出現(xiàn)了局部最小值的問(wèn)題而停止不前,以為是找到最佳值了,仿真圖如圖2所示。通過(guò)采用虛擬目標(biāo)點(diǎn)法可以解決局部最優(yōu)問(wèn)題,仿真圖如圖3所示。
圖3 引入虛擬目標(biāo)點(diǎn)改進(jìn)勢(shì)場(chǎng)法仿真
當(dāng)最后一個(gè)障礙物坐標(biāo)為(8.8,9.3)時(shí),潛航器障礙物受各勢(shì)力場(chǎng)的影響出現(xiàn)了在目標(biāo)點(diǎn)不斷來(lái)回抖動(dòng),造成目標(biāo)不可達(dá)的問(wèn)題,仿真圖如圖4所示。通過(guò)改進(jìn)斥力勢(shì)力場(chǎng)的函數(shù)方式解決了目標(biāo)不可達(dá)的問(wèn)題,仿真圖如圖5所示。
圖4 傳統(tǒng)人工勢(shì)場(chǎng)法產(chǎn)生目標(biāo)不可達(dá)情況仿真
圖5 改進(jìn)勢(shì)場(chǎng)法路徑規(guī)劃仿真
針對(duì)傳統(tǒng)的人工勢(shì)場(chǎng)法在潛航器局部路徑規(guī)劃中存在著局部最優(yōu)問(wèn)題和目標(biāo)不可達(dá)的問(wèn)題,本文利用添加虛擬目標(biāo)點(diǎn)和改進(jìn)斥力勢(shì)場(chǎng)函數(shù)解決相應(yīng)的問(wèn)題。仿真結(jié)果顯示,改進(jìn)的人工勢(shì)場(chǎng)法在較為理想條件下有著良好的局部路徑規(guī)劃效果。本文只做了相應(yīng)算法的仿真,且是在二維空間的條件下,并沒(méi)有考慮水流等復(fù)雜環(huán)境因素以及多約束條件下的局部路徑規(guī)劃,這些難題也是亟待解決的關(guān)鍵技術(shù),后續(xù)還需在這些方面不斷攻克。