張 軍 許靖宜 于士坤
(1.安徽理工大學人工智能學院;2.安徽理工大學機械工程學院 安徽淮南 232001)
路徑規劃技術是機器人移動機器人領域的關鍵技術之一,其含義為在包含障礙物的二維或三維環境中,按照一定規則和標準,規劃出一條從起始點到目標點的滿足機器人自身約束要求的無碰撞路徑[1]。如圖1 所示,為移動機器人在未知環境下完成路徑規劃,到達預設地點的示意圖,其中曲線為移動機器人運動路徑。路徑規劃技術廣泛應用于多種領域,如移動機器人的自主避障行動,巡航導彈在避開雷達搜索情況下的最優飛行路線,工廠車間中物流機器人的自主行動等[2]。在移動機器人路徑規劃技術中,除了確保機器人能夠抵達目標點外,還應考慮兩個目標:一是要令所規劃出的路徑長度短,轉折點少,以減少成本開銷,提高工作效率;二 是要充分考慮機器人移動路線與障礙物的相對位置關系以及路徑所經區域的障礙物分布情況,規避行駛風險,確保安全性[3]。

圖1 移動機器人路徑規劃示意圖
在移動機器人進行路徑規劃時,將機器人在地圖環境中的運動抽象成一種人造引力場中的運動,構建人工勢場模型[4]。勢場包含兩個部分,一部分是由目標點產生的引力場,一部分是由障礙物產生的斥力場,其中,引力場發揮全局作用,機器人在引力的作用下進行趨向目標點的運動,引力的大小與機器人和目標點之間的距離成正比;斥力場在一定范圍內發揮作用,在障礙物的影響范圍內,機器人在斥力作用下進行遠離障礙物的運動,斥力與機器人和障礙物之間的距離成正比,所受斥力為多個障礙物斥力的矢量疊加。機器人在地圖環境中所受的合力即為引力和所有斥力的矢量和,始終保持在合力的方向上進行移動,直至合力為零或抵達目標點[5,6]。
本次研究通過對當前技術手段所存在的傳統人工勢場法路徑規劃存在的問題進行分析,針對性地提出對傳統人工勢場法的改進方法,并用MATLAB 進行仿真實驗,通過實驗驗證改進后算法的可行性與準確性。
人工勢場法是通過利用地圖環境信息建立勢場模型,在機器人路徑規劃中具有比較成熟的應用并取得了理想的效果。易先軍[7]等人提出了一種模糊改進人工勢場法,針對人工勢場法存在的目標不可達等問題,建立斥力勢場梯度等級解決目標不可達問題,同時引入基于模糊算法推算的逃逸力,避免局部最優;為克服局部極小值問題,Hongqiang Sang[8]等人提出了一種多目標人工勢場算法,將地圖環境劃分為多個子目標勢場分段實現路徑規劃,該算法在不同環境中均能有效發揮作用;Ulises Orozco-Rosas[9]等人提出了一種膜進化人工勢場法,將膜計算與遺傳算法和人工勢場法結合,優化參數生成安全可行的路徑。但由于勢場函數定義方式的局限性,使得算法會在某些場景下因為機器人、目標點和障礙物之間的相對位置不同而存在目標不可達、局部極小值、U型障礙物導致的局部死區等問題[10],導致機器人無法到達目標點,下面就具體問題進行說明。
(一)障礙物影響范圍內的目標不可達問題。當目標點的周圍存在一個及以上障礙物且目標點在障礙物的輻射范圍內時,當機器人向目標點和障礙物所在區域移動時,機器人所受引力逐漸減小而斥力逐漸加大,從而可能會出現斥力大于引力的情況,導致機器人無法到達目標點。如圖1所示,其中Fatt為目標點產生的引力,Freq為障礙物產生的斥力,Fres為二者合力。

圖2 障礙物影響范圍內的目標不可達問題
(二)局部極小值問題。局部極小值問題[11]是傳統人工勢場法中導致路徑規劃失敗的主要問題。在人工勢場法中,當引力和斥力位于同一直線上,且絕對值相同、方向相反時機器人所受合力為零,但此時機器人所處位置并非全局勢場最低點[12],從而導致局部極小值問題。
如圖3所示,障礙物的數量為兩個及以上,機器人、目標點及障礙物不在同一直線上,障礙物產生的斥力的合力與目標點產生的引力大小相同、方向相反。

圖3 局部極小值問題
(三)U型障礙物導致的局部死區問題。如圖4所示,當移動機機器人的運動方向上存在U型障礙物時,隨著機器人與障礙物距離的逐步減小,由障礙物所產生的斥力會越來越大,當機器人進入U型區域內時,來自各個方向上的斥力的合力逐漸抵消目標點的引力作用,當斥力的合力與引力值大小相等時,機器人運動在末端震蕩后陷入停滯,即陷入U型死區[13]。

圖4 移動機器人進入U型死區導致路徑規劃失敗
針對障礙物影響范圍內的目標不可達問題,提出通過考慮目標點因素改進斥力函數的改進方法;針對局部極小值問題,提出引入粒子群算法優化勢場參數克服局部最優的改進方法;針對U型障礙物導致的局部死區問題,提出引入切向力改進力的組成結構的改進方法。
(一)通過考慮目標點因素改進斥力函數。針對障礙物影響范圍內的目標不可達問題,提出通過考慮目標點因素改進斥力函數的改進方法。機器人所受斥力是關于機器人與障礙物之間距離倒數的二次函數,當機器人進入障礙物影響范圍時,隨著機器人逐漸接近障礙物其斥力會迅速變大。機器人所受引力是關于機器人與目標點之間距離的二次函數,隨著機器人逐漸接近目標點其引力會迅速減小。因此當目標點位于障礙物影響范圍內時,在機器人逐漸接近目標點的過程中,會發生引力急劇減小而斥力急劇變大的情況,從而導致機器人無法到達目標點。為解決上述問題,提出改進的斥力函數,即在斥力函數中加入目標點因素,如式(1)所示:
Urep(q)表示斥力勢能函數,ρo代表每個障礙物的影響半徑;
ρ(q,qgoal)表示機器人和目標點之間的距離;n為斥力調節因子,其取值為正實數。
斥力Frep(q)為斥力場的負梯度,則
Fr1和Fr2為改進后斥力的兩個分量,Fr1方向為從障礙物點指向機器人所在位置,Fr2方向為從機器人所在位置指向目標點。改進前斥力的斥力變化只與機器人和障礙物之間的距離有關,而改進之后的斥力還受機器人和目標點之間的距離影響。Fr1的作用為使機器人遠離障礙物,Fr2的作用為使機器人向目標點移動。
根據斥力調節因子n的取值不同,改進斥力也會表現出不同的特性,下面分情況展開討論:
(1)n= 0,Fr2= 0,此時
(2)0 <n<1,改進后的斥力勢場函數為非連續函數,在目標點位置處不可微,當機器人與障礙物之間的距離條件滿足ρ(q,qobs)<ρo且ρ(q,qobs)≠0時,改進后斥力的兩個分量為:
(3)n= 1,當機器人與障礙物之間的距離條件滿足ρ(q,qobs)<ρo且ρ(q,qobs)≠0時,改進后斥力的兩個分量為:
(4)n>1,斥力勢場函數處處可微。
改進后的斥力函數的優勢在于額外提供一個從機器人指向目標點的力,使機器人能夠克服障礙物的驅離作用,從而到達目標點。
(二)引入粒子群算法優化勢場參數克服局部最優。針對局部極小值問題,提出引入粒子群算法優化勢場參數克服局部最優的改進方法。人當機器人遇到合力為零的局部極小值問題時,可以通過調整參數,使合力始終大于零,從而確保機器人總是朝指向目標點位置的方向運動[14]。在改進斥力函數后,機器人所受合力為:
考慮力的方向,使機器人所受合力大于零,有
其中,ρrg=ρ(q,qgoal),表示機器人和目標點之間的距離;ρro=ρ(q,qobs),表示機器人和障礙物之間的距離。
考慮引力增益系數ξ和斥力增益系數η為正實數,式(10)可以改寫為:
其中m=ρro-ρrg。當機器人、障礙物和目標點在同一直線上且目標點位于機器人和障礙物之間時,m表示障礙物和目標點之間的距離,且滿足。
令
根據前文所述,得
其中,
則式(2-11)可以改寫為
設式(16)右側的上界為
(1)n<2,此時
(2)n= 2,此時
(3)n>2,此時
通過引入粒子群算法對相關參數進行優化,使算法在動態調整參數的過程中逐漸改變力的結構,從而擺脫局部困局。在人工勢場法運行過程中,將參數ξ和η實時反饋給粒子群算法,粒子群算法基于式(18)、(19)、(20)的約束條件對這兩個參數進行優化,直至合力不為零,即擺脫局部極小值。
(三)引入切向力。針對U型障礙物導致的局部死區問題,提出引入切向力的改進方法。針對人工勢場法在局部受困從而導致路徑規劃失敗的問題,許多研究者通過添加輔助力的方式進行解決[15]。通過引入逃逸力打破局部力的平衡,使機器人逃離受困點。本文提出引入切向力輔助機器人避開障礙的策略。
1.導航線的基本定義。如圖5,定義線段Lot為起始點Po到目標點Pt的連接線,命名為導航線;定義Dp為機器人與障礙物切點Pp到導航線Lot的距離:
其中,Sotp表示由起始點Po、目標點Pt和障礙物切點Pp組成的三角形。
定義σ為路徑效率因子:
2.判斷當前障礙物的影響。提出一種新的障礙物規避策略,該策略主要依賴當前位置到障礙物的切點實現。借助切點的避障策略的基本原理為首先畫出導航線Lot如果Lot沒有與障礙物相交,那么Lot就是目標路徑,否則,找到當前位置到當前障礙物的切點(將障礙物擬化為圓形),將切點設置為當前目標,并進行后續運算。
3.借助地圖信息反饋選擇切點。因為點到圓的切點有兩個,所以要進行切點選擇。提出利用地圖反饋信息來選擇切點的方法,定義T為比較因子來輔助選擇切點:
其中,Ep為路徑效率系數,σp為路徑效率因子(與p在同一側的分支點到當前位置的路徑規劃效率),w1和w2分別為Dp和Ep的權重。分別計算導航線兩側的平均效率,效率越低表示相關區域中的障礙物越多,找到更優路徑的可能性越低。
4.在人工虛擬力場中引入切向力。為擺脫局部極小點,在傳統勢場的基礎上加入切向力。在確定切點后,從當前點到切點的方向即為切向力的方向,此時合力為:
圖6和圖7分別表示切向力的作用位置和包含切向力的合力結構。其中,FA和Ftan分別表示傳統勢場合力和障礙物產生的切向力,wA和wT分別表示FA和Ftan所占的比重。當機器人位于障礙物作用范圍之外時,只有切向力發揮作用,此時機器人只在切向力驅動下運動;當機器人進入障礙物的作用范圍內時,機器人在障礙物所產生的斥力和切向力以及目標點產生的引力的共同作用下運動,直至離開障礙物作用范圍。針對U型障礙物問題,可以將其視作圓形障礙物,通過結合切向力的作用避障。

圖6 U型障礙物切向力的作用位置

圖7 包含切向力的合力結構圖
為驗證改進后算法的有效性,使用MATLAB軟件并編寫相關程序進行仿真驗證。針對障礙物影響范圍內的目標不可達問題、局部極小值問題以及U 型障礙物問題進行仿真,相關參數設置為斥力增益系數η=5,引力增益系數ξ=2,障礙物影響半徑為ρo=2,步長為stepSize=0.1,斥力調節因子n=2,切向力相關參數w1=0.6,w2=0.4,wA=0.5,wB=0.5,迭代次數為Itemax=200。
在圖8中,障礙物位于接近目標點的位置,目標點位于障礙物的影響范圍內。當機器人在到達目標點和障礙物附近的范圍時,由于障礙物斥力的干擾作用,機器人將在合力為零點處停止運動。使用改進后人工勢場法時,由于在斥力公式中加入了目標點因素,使得機器人在干擾區域(即障礙物作用范圍)內合力始終不為零且指向目標點,最終機器人成功到達目標點位置,結果如圖9所示

圖8 傳統人工勢場法路徑規劃失敗

圖9 引入斥力參數后路徑規劃成功
在圖10中,目標點位于兩個障礙物連線的垂線上,當機器人沿該垂線向目標點行進時,如圖-所示,會在障礙物斥力的合力與目標點引力數值相等點處陷入局部極小值停止運動。使用改進后人工勢場法,通過優化參數使機器人所受合力不為零且方向指向目標點,成功擺脫局部極小值點,抵達目標點,結果如圖11所示。

圖11 引入粒子群算法后路徑規劃成功
在圖4中,地圖環境中的障礙物為U形障礙物,機器人的前進方向存在U 型障礙物,當使用傳統人工勢場法時,機器人將進入位于障礙物內部的死區范圍,導致局部震蕩或運動終止。改進后通過使用引入切向力的方法,機器人在包含切向力的合力作用向下脫離局部極小值,成功抵達目標點,結果如圖12所示。

圖12 引入切向力后路徑規劃成功
通過實驗仿真結果分析可知:傳統人工勢場法在目標不可達、局部極小值和U 型死區的情況下,移動機器人路徑規劃失敗;而在對傳統人工勢場法使用了引入斥力參數、引入粒子群算法和引入切向力的算法改進,移動機器人則能夠成功完成局部路徑規劃。
通過分析傳統人工勢場法及其存在的問題,針對具體情況提出了相應的改進方法,并用MATLAB 軟件進行仿真驗證,仿真結果表明:改進后的算法能更好地實現局部路徑規劃。針對目標不可達情況,提出在斥力計算公式中引入斥力參數的改進方法;針對局部極小值問題,提出對相關參數進行優化并進行相應合力計算的改進方法;針對U型障礙物導致機器人陷入局部死區的情況,提出引入切向力的改進方法。通過MATLAB軟件進行了仿真實驗,所提出的方法均能夠有效解決相應的路徑規劃問題,表明改進后的算法能夠有效完成局部路徑規劃。
所提的改進人工勢場法算法總體上能夠在二維環境中實現預期目標,但仍存在一定局限性,后續應從以下兩個方面繼續開展研究工作:
(一)算法只在考慮二維環境因素,對環境信息的考慮比較單一,后續應綜合考慮立體環境信息進行三維建圖,在三維環境下測試算法的性能并進一步改進,增強算法對環境的適應性。
(二)算法只考慮了單目標的情況,在多目標條件下的規劃效果有待檢驗,后續應考慮基于多目標情況進行試驗和改進。