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