張 鵬,葛中盛, 徐效農, 趙奉奎
(1 南京林業大學 汽車與交通工程學院, 南京 210037; 2 上海汽車集團股份有限公司技術中心, 上海 201804)
近年來,隨著智能交通以及人工智能技術的興起,越來越多的企業與科研機構積極推動無人駕駛領域的發展,避障路徑規劃算法是自動駕駛汽車的重要組成部分[1]。自動駕駛汽車的路徑規劃是指在一個有障礙物的環境中,為汽車尋找一條從起始位置到終點位置的最優或次優的運動路徑,使汽車在運動過程中能夠安全、沒有碰撞地避開所有障礙物[2]。學者們對其開展研究,取得了一些研究成果。江明等提出了基于改進蟻群算法的路徑規劃[3];于海璁等提出一種基于遺傳算法的多模式路徑規劃算法[4],此類智能路徑規劃算法,能夠在復雜環境中較好的路徑規劃。趙曉等提出了改進A*算法,是一種常用于靜態路網中求解最短路徑的啟發式搜索方法,對環境信息反應速度快,魯棒性好[5];修彩靖等提出人工勢場法,其規劃的運動軌跡平滑,易于底層控制、計算量小[6]。雖然上述幾類算法在機器人路徑規劃中被廣泛應用,但難以同時滿足自動駕駛汽車時效性以及車輛行駛的約束條件。
本文提出一種基于模擬退火法的人工勢場法,改進吸引立場函數,有效解決傳統人工勢場法容易導致目標不可及,陷入局部最小值的問題,能夠安全高效避障。
人工勢場法是由Khatib提出的一種虛擬力法。人工勢場法的基本原理是將汽車放在一個勢力場中,由汽車行駛目標的終點產生的吸引力場,和行駛環境中各種車輛,行人,紅燈,隔離帶或實線等組成的障礙物產生斥力場,形成一個勢力場,在目標點產生的引力中汽車向目標點移動,途中遇到障礙物,由障礙物產生的斥力而遠離障礙物[7-8]。人工勢場法的自動駕駛汽車避障主要的特點是可以實時避障,運動軌跡平滑,對未知環境的適應性較強,計算速度快,結構簡單,易于學習。將人工勢場法用于自動駕駛汽車避障路徑規劃,避障軌跡平滑,便于改進和優化。人工勢場法也有缺點:出現目標不可達,局部極小值等問題。因此,如何設計“引力場”就成為該方法的關鍵。
本文將吸引力場加以改進,并引入模擬退火法,能夠有效解決目標不可及,陷入局部最小值的問題,實現高效路徑規劃。
人工勢場法中自動駕駛汽車所在環境中所受的力,由目標點發出的引力場和道路上的障礙物,或行駛緩慢的車輛對自動駕駛汽車的斥力場組成。引力場由運動終點發射出,斥力場由障礙物,如其他汽車,行人,隔離帶等,產生的斥力場組成[9]。因此,人工勢場法的勢場函數定義為引力場與斥力場的和,汽車的移動方向為勢場函數下降的方向。這樣汽車就可以找到一條無碰撞的路徑。勢場函數如式(1)表示:
U(q)=Uatt(q)+Urep(q),
(1)
其中,q是自動駕駛汽車的坐標點;Uatt(q)是引力場;Urep(q)是斥力場;U(q)是勢場和。勢場函數的負梯度定義為人工力,人工力由引力和斥力組成。引力為引力場的負梯度,斥力為斥力場的負梯度。因此,汽車在勢場中所受力可用公式(2)表示:
F(q)=-F(q)=-Uatt(q)-Urep(q)=Fatt(q)+Frep(q).
(2)
斥力場的計算公式(3):
(3)

Frep=-
(4)
Frep斥力方向由障礙物點指向自動駕駛汽車,Frep合力可以分解為坐標軸X方向和Y方向的力,如式(5),式(6)所示:
(5)
(6)
以上的斥力計算是針對單個障礙物而言。但是環境中往往有多個障礙物,所以斥力場與斥力應該是多個障礙物對汽車的斥力場和與斥力和,則如式(7),式(8)所示:
(7)
(8)
其中,n為障礙物個數,F為汽車所受合力。自動駕駛汽車受力情況如圖1所示。

圖1 自動駕駛汽車受力情況
引力場的計算公式(9):
(9)
其中,Katt為引力增益函數,qg為目標點的位置。根據式(9)可以計算引力大小,式(10):
Fatt=-Uatt(q)=-Katt(q-qg).
(10)
Fatt的方向指向目標點,Fatt可以分解為X軸方向的力與Y軸方向的力,式(11)和式(12):
Fattx=-katt(x-xg),
(11)
Fatty=-katt(y-yg).
(12)
基于人工勢場法的路徑規劃用于自動駕駛汽車還存在一些問題。當引力與斥力大小相等方向相反時,導致汽車缺少引力,從而導致目標不可及;當自動駕駛汽車陷入多個障礙物之間時,中間會形成極小的勢力場,陷入局部最小值,無法穿過障礙群。
傳統人工勢場法引力部分與汽車和目標點位置距離隨距離越大而增大,當汽車距離目標點較遠時,引力部分過大,可能導致汽車與障礙物相撞。針對這一問題,對引力場公式進行改進。
引力場的大小由汽車與目標點的距離決定,當距離非常大時,引力將會變得非常大,斥力相對于引力而言就會變得非常小,從而導致汽車與障礙物相撞。因此,對引力場加以改進,公式(13)如下:
(13)
(14)
其中,d為影響距離極限值,當汽車與目標點距離≤d時,引力與距離成平滑直線;當汽車與目標點距離>d時,將引力視為常數。


圖2 模擬退火法算法流程圖
由于實車實驗控制復雜,本文采用軟件仿真的方法對所設計的路徑規劃算法進行驗證,采用MATLAB軟件進行仿真分析。為了對所提算法進行充分的測試,本文建立了超車和左轉兩種工況進行模擬。超車工況如圖3所示,圖中黑色矩形代表預設的行駛車輛,虛線代表車道線,共有六輛大小不等的車輛分布在四條車道上,仿真車輛起點和終點坐標分別為(50,50)和(700,350)。引力增益系數Katt=5,斥力增益系數Krep=15,障礙影響距離設為2,步長設為0.1,循環迭代次數設為1000,由圖3規劃路徑可知,自動駕駛汽車能夠識別周圍障礙,選擇無障礙物車道行駛。左轉工況如圖4所示,建立雙車道十字路口模型,其中分布著5個矩形障礙代表其他行駛車輛,仿真車輛起點和終點坐標分別(201,250)和(302,539)。由圖4規劃路徑可知,自動駕駛汽車能夠識別十字路口,避開障礙物實現左轉彎。

圖3 超車情形

圖4 十字路口左拐情形
本文使用模擬退火法與改進引力場函數解決人工勢場法在自動駕駛汽車避障路徑規劃中的兩個問題:自動駕駛汽車無法抵達終點,汽車會陷入局部最小值。通過仿真證明,運用模擬退火算法和改進引力場函數方法對自動駕駛汽車避障路徑規劃有著極好的的避障效果。本文中雖然對用改進的人工勢場法在局部路徑下進行路徑規劃取得了一定的效果,但是該算法在全局路徑規劃上存在不足,可以考慮把人工勢場法與全局路徑規劃方法結合起來使用。