張 豐,廖衛(wèi)強,2,喬中飛,李光澤
(1.集美大學(xué)輪機工程學(xué)院,福建 廈門 361021;2.福建省船舶與海洋工程重點實驗室,福建 廈門 361021)
無人船集船舶設(shè)計、人工智能、信息處理和運動控制等專業(yè)技術(shù)于一體,能夠在海洋環(huán)境中自主航行并完成各種任務(wù)[1]。其中路徑規(guī)劃是無人船技術(shù)的重要組成部分,合理的路徑規(guī)劃不僅能使無人船安全避開海上障礙物,還能使其節(jié)省時間及能耗。因此,路徑規(guī)劃對于無人船來說有著重要的意義。
目前針對無人船路徑規(guī)劃的算法主要有:粒子群算法、人工勢場法、遺傳算法、禁忌搜索算法等。其中,人工勢場法(artificial potential field,APF)算法具有計算量小、原理簡單和生成路徑平滑等優(yōu)點,因此,被廣泛應(yīng)用于無人船的路徑規(guī)劃[2-4]。但經(jīng)典人工勢場法尚存在一些不足[5-8],如:目標(biāo)點不可達(dá)、局部極小值、路徑振蕩及冗余等。因此需要對該方法進(jìn)行改進(jìn)。
對于傳統(tǒng)人工勢場法存在的問題,目前已有多種改進(jìn)方法。劉翰培等[9]在危險區(qū)域融合模糊控制算法,克服了傳統(tǒng)人工勢場法的局部極小值問題;Zhou等[10]將人工勢場法結(jié)合粒子群算法優(yōu)化切向向量,改善了目標(biāo)點不可達(dá)問題;林潔等[11]通過引用模擬退火算法,改進(jìn)傳統(tǒng)人工勢場函數(shù),提出“沿邊走”的策略,有效解決了容易陷入局部極小值問題;任工昌等[12]在傳統(tǒng)勢力場基礎(chǔ)上引入障礙物速度斥力場函數(shù),實現(xiàn)機器人的動態(tài)路徑規(guī)劃;胡杰等[13]提出一種用偏轉(zhuǎn)角度來構(gòu)建附加牽引力的方法,以解決局部極小值問題;Guang等[14]提出利用分段混合算法改進(jìn)勢場函數(shù),解決目標(biāo)點不可達(dá)及局部極小值問題。
本文針對無人船人工勢場法路徑規(guī)劃中的問題,對斥力函數(shù)進(jìn)行改進(jìn),以解決目標(biāo)不可達(dá)問題。通過艏向角限制,使船舶無法進(jìn)行大角度折返運動,限制船舶下一點位移,使其離開單一障礙物引起的局部極小值問題;通過增加隨機擾動量,從而使引力出現(xiàn)誤差,解決多個障礙物造成的局部極小值問題;通過路徑優(yōu)化,減小路徑振蕩,實現(xiàn)路徑的平滑性。
人工勢場法由引力勢場和斥力勢場組成[15]。目標(biāo)點對機器人產(chǎn)生引力作用,障礙物對無人船產(chǎn)生斥力作用,在引力與斥力合力作用下無人船向目標(biāo)點移動。
傳統(tǒng)的斥力勢場函數(shù)為:
(1)
(2)
式中:Fr為障礙物對無人船的斥力。
結(jié)合式(1)和式(2)可以發(fā)現(xiàn),當(dāng)dji≤d0時,隨著無人船和障礙物之間的距離dji的減小,斥力勢能Er和斥力Fr都會上升;當(dāng)dji趨近于0時,斥力Fr會接近無窮大。
從式(1)可以知,當(dāng)目標(biāo)點和障礙物之間的距離很近時,障礙物斥力會大于目標(biāo)點引力,導(dǎo)致無人船無法到達(dá)目標(biāo)點。在傳統(tǒng)的斥力勢場函數(shù)上,添加無人船與目標(biāo)之間的距離,修改斥力函數(shù),從而解決目標(biāo)點不可達(dá)問題。改進(jìn)斥力勢場函數(shù)為:
(3)
局部極小值問題是指船舶在移動過程中的某個時刻,在當(dāng)前位置下目標(biāo)船舶受到的引力與斥力大小相等,方向相反,導(dǎo)致當(dāng)前位置點船舶合力為0,船舶不再移動或者在小范圍內(nèi)往復(fù)抖動的現(xiàn)象。典型的局部極小值問題可以細(xì)分為兩種情況。1)在船舶與目標(biāo)點之間存在單一障礙物,且船舶、障礙物和目標(biāo)點處于同一直線。此時,隨著船舶逐步向目標(biāo)點運動,斥力逐漸增大,引力逐漸減小,當(dāng)運動到某個斥力與引力大小相近的位置,船舶在該處停止或者在該點處往復(fù)抖動,導(dǎo)致船舶無法到達(dá)目標(biāo)點,如圖1a所示)。2)在復(fù)雜障礙物情況下,多個障礙物組成的復(fù)雜障礙物環(huán)境所產(chǎn)生的總斥力與目標(biāo)點產(chǎn)生的引力合力為0,導(dǎo)致船舶無法到達(dá)目標(biāo)點,如圖1b)所示。
對情況1與情況2分別進(jìn)行處理。 局部極小值狀態(tài)判別為ρ(Xj,Xj-b) 針對情況1),通過加入艏向角限制,使船舶無法進(jìn)行大角度折返運動,其最大艏向角為60°。該限制能夠?qū)Υ霸诤罄m(xù)位置的位移施加控制,使其離開局部受力平衡狀態(tài)。 針對情況2),施加隨機擾動。當(dāng)出現(xiàn)多個障礙物的局部極小值時,無人船下一步計算出的引力隨機地出現(xiàn)誤差,引力偏離正常值,使無人船跳出局部極小值。若仍陷于局部極小值,則繼續(xù)產(chǎn)生新的隨機誤差,直至無人船走出局部極小值。Fa=dEa/drj=karj·kb。式中:kb為隨機擾動量,取值50%~200%。為了避免在隨機擾動之下船舶會撞上障礙物,擾動量的大小必須適當(dāng),太大船舶可能撞上障礙物,太小可能不足以跳出局部極小值。此外,施加隨機擾動后,雖然無人船會跳出局部極小值,但是由于隨機性,無人船很有可能會在原地來回走動多次才會成功跳出,在這個過程中,會產(chǎn)生冗余的路徑。 按照斥力修改方案,修改傳統(tǒng)人工勢場法的斥力函數(shù),然后進(jìn)行仿真模擬。引力系數(shù)ka=15;斥力系數(shù)kr=5;障礙物的斥力影響距離d0=2.5;rj的指數(shù)a取值為2。 運行修改斥力函數(shù)后的人工勢場法,結(jié)果如圖3所示。圖3a)顯示傳統(tǒng)人工勢場法無法到達(dá)目標(biāo)點;圖3b)為修改斥力函數(shù)后人工勢場法的仿真結(jié)果,成功抵達(dá)目標(biāo)點。證明修改斥力函數(shù)之后,解決了無法到達(dá)目標(biāo)點的問題。 在修改斥力函數(shù)的基礎(chǔ)上,施加隨機擾動,使無人船具有跳出局部極小值的能力,隨機擾動設(shè)置為使引力在正常值的50%~200%之間變化。 創(chuàng)造含有以下兩種的局部極小值環(huán)境。 1)在沒有施加艏向角限制的情況下進(jìn)行仿真,運行結(jié)果如圖4a)所示,無人船在坐標(biāo)點(4,5)周圍陷入局部極小值。隨后在施加艏向角限制的情況下進(jìn)行仿真,運行結(jié)果如圖4b)所示,已經(jīng)具備了解決局部極小值的的能力。 2)在沒有施加隨機擾動的情況下進(jìn)行仿真,運行結(jié)果如圖5 a)所示,無人船在坐標(biāo)點(5,6)周圍陷入局部極小值。隨后在施加隨機擾動的情況下進(jìn)行仿真,運行結(jié)果如圖5 b)所示,已經(jīng)具備了解決局部極小值的能力,但是會形成冗余及部分振蕩路徑。 針對無人船在海面上因為增加隨機擾動而產(chǎn)生路徑振蕩的問題,進(jìn)行減小路徑振蕩的仿真,著重選擇出現(xiàn)路徑振蕩的環(huán)境進(jìn)行仿真。仿真結(jié)果如圖6所示,比較圖6a)、圖6b)可以看出,減小路徑振蕩之后,路徑的平滑性提高了。 本文在傳統(tǒng)的人工勢場法基礎(chǔ)之上,通過修改斥力函數(shù),加入了無人船和目標(biāo)之間的距離這個因素,克服了船舶無法到達(dá)目標(biāo)點的問題,提高了人工勢場法的可行性,但需要注意目標(biāo)點上存在障礙物的情況。采用施加船向角和增加隨機擾動的方法來應(yīng)對局部極小值問題,仿真結(jié)果顯示,路徑在陷入局部極小值之后,會經(jīng)過一段路程后跳出,但是由于其隨機性,在路徑跳出局部極小值的過程中會留下一段無效的路徑。為了改善路徑振蕩和施加隨機擾動時產(chǎn)生的無效路徑,提出一種路徑簡化的措施,通過去除一些振蕩的路徑點,讓路徑變得平滑。 改進(jìn)后的人工勢場法具有靜態(tài)和動態(tài)障礙物的仿真環(huán)境中進(jìn)行路徑規(guī)劃,探索將人工勢場法應(yīng)用在無人船路徑規(guī)劃的可行性,為無人船技術(shù)的研究提供了更多的思路。2.3 路徑簡化
3 仿真結(jié)果與分析
3.1 目標(biāo)不可達(dá)現(xiàn)象仿真分析
3.2 局部極小值現(xiàn)象仿真分析
3.3 路徑振蕩現(xiàn)象仿真分析
4 結(jié)語