孫伶玉,付主木,b,陶發展,b,司鵬舉,b,宋書中,b
(河南科技大學 a.信息工程學院;b.河南省機器人與智能系統重點實驗室,河南 洛陽 471023)
由于汽車普及率的提高和復雜的交通參與者構成,車輛安全行駛變得愈加困難[1-2],故智能車的研究受到人們的廣泛關注。通過研究路徑規劃算法,為智能車輛提供安全、可靠和平穩的避障路徑,實現車輛在不同環境下的精準避障[3-4],已成為當下研究的重點問題。
現有的路徑規劃算法主要分為全局路徑規劃算法和局部路徑規劃算法。全局路徑規劃算法主要包括A*算法[5]、D*算法[6]、蟻群算法[7]和遺傳算法[8];局部路徑規劃算法主要包括人工勢場(artifical potential field,APF)算法[9-11]、Bug算法[12-13]和快速搜索隨機樹算法[14-15]。在實際應用中,通常將幾種規劃算法結合起來,以達到所需效果。
針對復雜交通場景下智能車輛的路徑規劃問題,文獻[16]提出了人工勢場算法,其結構簡單、數學描述方便、計算量小,可實現實時路徑規劃。然而,該算法本質上仍屬于局部路徑規劃算法,導致其存在目標不可達和易陷入局部極值等固有問題[17]。
目前,部分學者針對人工勢場存在的缺陷進行了一系列的研究。文獻[18]提出了基于改進勢場函數的扇區劃分方法,在局部極值點附近增加虛擬障礙物,通過調整斥力場分布,使車輛可以駛出局部極值。文獻[19]提出一種基于人工勢場的回歸搜索方法,利用虛擬局部引力和斥力,消除傳統人工勢場算法存在的局部極小值問題,獲得最優路徑。文獻[20]提出一種勢場填充策略,使用電位填充方法,在目標不可達與局部極小值的位置設置一個額外的電位場,將機器人拉離局部極小值以解決人工勢場存在的缺陷。在上述研究中,車輛始終被視為沒有質量的粒子,同時未考慮車輛運動學參數對路徑規劃效果的影響,因此在更為復雜的實際行駛環境中無法保證車輛安全行駛至目標位置。
因此,本文將車輛運動學參數和質量因素引入人工勢場算法,設計自適應斥力函數,并結合Bug算法,設計了一種新的智能車輛避障路徑混合規劃方法。為驗證算法的有效性,在MATLAB軟件環境下對本文所提算法進行計算機仿真研究,并通過搭建智能車試驗平臺驗證算法的實際避障效果。

(a) 障礙物的斥力 (b)目標點的引力
人工勢場算法是現今廣泛應用的一種路徑規劃算法,其基本思想是將車輛的運動映射到人為設定的抽象勢場中,把實際環境具體化成人造勢場。人工勢場算法規劃的路徑平滑、執行效率高、計算量小,但是存在目標不可達和局部極值等缺點[21],故本文采用APF框架改進人工勢場算法,以規劃合理有效的行駛路徑。其中,車輛在抽象勢場中的受力情況如圖1所示(箭頭方向即受力方向)。
引力勢場由目標位置產生,引導車輛向目標位置移動產生,其勢場函數為:
(1)
車輛在引力勢場中受到的吸引力Fatt可以表示為:
Fatt(q)=-Uatt=ζρ(q,qgoal),
(2)
其中:ζ為引力勢場增益因子;ρ(q,qgoal)為當前點q與目標點qgoal之間的歐氏距離。引力的方向是從車輛的當前位置指向目標位置。
斥力勢場是由障礙物產生的。當車輛靠近障礙物時,會受到排斥力的影響,隨著車輛與障礙物之間的距離變短,排斥力會增加。斥力勢場函數如下:
(3)
車輛受到的斥力為Frep,其表達式為:
(4)
其中:ρ(q,qobs)為q點與其最近障礙物的距離;η為斥力增益常量;ρ0為障礙物的作用閾值范圍。
在以往的人工勢場算法研究中,通常將車輛固定為粒子,忽略車輛自身的質量和速度。而在實際應用中,不能忽視車輛的質量和速度對勢場產生的影響。因此,通過改進人工勢場的斥力函數,在原有函數的基礎上考慮車輛運動學參數,使改進的算法更適合實際環境。
考慮到規劃路徑的安全性、穩定性和路徑長度,可以通過在人工勢場的斥力場函數中加入調節項kmmvτ改進斥力場函數,其中,km為調節系數,kg-1;τ為調節參數。經仿真試驗可得,當τ為2時,仿真效果最佳;m和v分別為車輛的質量和速度。通過一系列仿真試驗,得到km的合適變化范圍。改進后的斥力勢場如下[11]:
(5)
其對應的斥力為:
(6)
隨著車輛向目標點移動,車輛將受到吸引力勢場和斥力勢場的共同影響[11]。
車輛的合力勢場函數為:
U(q)=Uatt(q)+Urep′(q)。
(7)
因此,合力F可以表示為:
F(q)=-U(q)=Fatt(q)+Frep′(q)。
(8)
本文利用MATLAB軟件對改進的規劃路徑算法進行仿真驗證。對比分析傳統的人工勢場算法與改進的人工勢場算法的區別,驗證改進后的人工勢場算法對所規劃行駛路徑的安全性的影響。其中,相同質量、不同車速條件下的仿真結果如圖2a所示,相同車速不同質量條件下的仿真結果如圖2b所示。

(a) 質量相同車速不同的仿真結果 (b) 車速相同質量不同的仿真結果
圖2a和圖2b中藍色軌跡是傳統的人工勢場算法所規劃的行駛軌跡,車輛質量m為10 kg,車輛速度v為100 cm/s,發現傳統人工勢場算法所規劃的行駛路徑靈敏度較弱,距離障礙物較近,安全性沒有保障。圖2a中紅色軌跡與綠色軌跡為改進的人工勢場算法在車輛質量相同、車速不同情況下的仿真結果,紅色軌跡的車輛質量m為10 kg,車輛速度v為300 cm/s,綠色軌跡的車輛質量m為10 kg,車輛速度v為500 cm/s。對比圖2a的仿真結果可以發現:當車輛質量不變時,車速越大,車輛受到障礙物的斥力越大,車輛對斥力勢場的敏感度越高,所規劃的行駛軌跡更加安全可靠。圖2b中紅色軌跡與綠色軌跡為改進的人工勢場算法在車速相同、車輛質量不同情況下的仿真結果,其中,綠色軌跡的車輛質量m為100 kg,車輛速度v為100 cm/s,紅色軌跡的車輛質量m為500 kg,車輛速度v為100 cm/s。對比圖2b的仿真結果可以發現:隨著車輛質量的增加,車輛受到障礙物的斥力會增大,同時車輛的慣性也會增強,故為了提高車輛行駛過程中的安全性,應該選擇合適的車輛質量。根據圖2仿真結果對比發現:當車輛靠近障礙時,改進的人工勢場算法可以快速感知障礙物的位置,安全避開障礙物。改進后的算法所規劃的行駛路徑更加平滑、安全、魯棒性更強。
車輛在虛擬勢場中受到多個障礙物的斥力共同作用,一般情況下,車輛可以避開障礙物抵達目標位置,但是當地形復雜、障礙物較多時,車輛極有可能在某一位置陷入局部極值,無法繼續前行。針對該類復雜場景,本文采用算法混合的方式,引入Bug算法以彌補APF算法的缺陷。因為Bug算法是一種局部優化算法,傳感器只需要獲取周圍環境的局部信息,其在線成本低,速度快且效果顯著。故提出APF-Bug混合算法,以解決復雜靜態環境與動態環境下車輛的實時路徑規劃問題。本文使用復雜的障礙物輪廓地圖與動態超車地圖,驗證所提算法的適應性和有效性。
兩種算法相結合的關鍵位置是APF算法中合力為零的點。當車輛到達該點時,APF算法將切換為

圖3 APF-Bug混合算法流程圖
Bug算法,旨在將車輛的位置調整到Bug算法的主線上。車輛移動到主線上之后便沿著主線移動,當遇到障礙物時,車輛便沿著障礙物的邊界移動直到車輛再次觸及主線。此后,車輛便可以逃出局部極值點,Bug算法將切換回人工勢場算法,使車輛快速高效地移動到目標位置。判斷車輛是否陷入局部極值,采用以下條件:
(9)
當滿足上述條件時,車輛被判斷為遇到局部極值點[10]。其中,ε是一個很小的正數,代表著車輛的合力接近于0。對復雜障礙物環境下的地圖進行可視化,驗證APF-Bug混合算法的有效性。整個算法流程如圖3所示。
利用MATLAB軟件對混合后的算法進行仿真驗證,將障礙物環境在模擬地圖中可視化。模擬地圖的分辨率為500 dpi×500 dpi,地圖包含一個起始位置x(50,50)、一個目標位置x(450,450)和多個靜態障礙物。為了突出混合算法的優越性,將APF算法、Bug算法和APF-Bug混合算法所規劃的行駛路徑分別在復雜的地圖環境中仿真運行,其仿真效果如圖4所示。不同算法的仿真結果如表1所示。

(a) APF算法(b) Bug算法 (c) APF-Bug混合算法
圖4中,黑色填充區域表示障礙物。圖4a為APF算法所規劃的車輛行駛路徑,可以發現APF算法所規劃的行駛路徑難以逃脫局部極值,并且車輛易與障礙物相撞,避障失敗。圖4b為Bug算法的避障路徑圖,仿真路徑可以發現車輛順利抵達目標位置,但從表1的仿真結果可知,車輛從起點到目標點的迭代步數較多,用時較長,導致規劃過程中的成本相對較高,使得該算法難以適用于實際應用中。圖4c為APF-Bug混合算法所規劃的車輛路徑圖,從仿真路徑和表1的仿真結果可以看出:車輛可以安全快速地抵達目標位置,并且相對于Bug算法,APF-Bug混合算法的迭代步數與時間明顯降低,故改進算法的效果相對于兩個單獨的算法有明顯提升。

表1 不同算法的仿真結果
結合超車這一動態場景驗證所提算法的有效性和可行性。APF算法的動態避障過程如圖5所示。圖5中,黑色填充區域是以恒定速度行駛的障礙物車輛,藍色曲線代表智能車輛所規劃的行駛路徑。將傳統APF算法與APF-Bug混合算法分別在該動態超車場景下進行驗證。

(a) 換道過程 (b) 超車過程 (c) 并道過程 (d) 完整超車路徑
圖6為APF-Bug混合算法的動態避障過程,表2為傳統APF算法與APF-Bug混合算法下的車輛位置信息。圖5a和圖6a為車輛行駛過程中的換道過程,對比發現,APF-Bug混合算法對障礙物的反應力更強,安全性能有明顯提升。圖5b和圖6b為車輛超車過程,經過對比可以發現,APF-Bug混合算法相較于傳統APF算法規劃路徑更加光滑,魯棒性更強。圖5c和圖6c為車輛行駛過程中的并道過程,可以發現,APF-Bug混合算法并道時候離動態障礙物較遠,可有效保證車輛行駛的安全性。圖5d和圖6d為車輛的完整超車路徑,通過對比可以明顯看出:傳統APF算法不穩定,所規劃的行駛路徑距離障礙物較近,安全性沒有保障,在實際應用中容易與障礙物發生碰撞;APF-Bug混合算法在動態障礙物場景下所規劃的路徑更加平滑,且在運動過程中與障礙物的距離較遠,與傳統APF算法相比,其安全性與穩定性都得到有效的提升。

(a) 換道過程 (b) 超車過程 (c) 并道過程 (d) 完整超車路徑

表2 不同算法的車輛位置信息
本章對自動避障系統的軟件及硬件進行設計,搭建智能車試驗平臺。其中,智能車的軟件部分主要以STM32系列單片機為控制核心,利用C代碼將APF-Bug算法嵌入到芯片中,應用于超車場景,驗證改進算法的有效性。智能車的硬件部分包括超聲測距模塊、電源系統、運動電機驅動模塊等,主要通過產生脈沖寬度調制(pulse width modulation,PWM)脈沖控制智能車的轉向和速度。其中,超聲測距模塊用于測量智能車在超車過程中與障礙車輛之間的距離,運動電機驅動模塊用來驅動智能車的電機運轉。自動避障系統的硬件組成框架如圖7所示。

圖7 自動避障系統的硬件組成框架
智能車的長度為245 mm,寬度為160 mm,前方障礙物車輛的長度為210 mm,寬度為185 mm,以智能車的尺寸大小為依據,設置車道線的寬度為260 mm,兩車初始狀態的位置如圖8a和圖9a所示。智能車輛通過超聲波模塊檢測與前方障礙物車輛的距離,滿足超車條件時,調整PWM波,使車輛向左轉行駛到超車車道上并沿著車道中心線(白線)前進,兩車位置如圖8b和圖9b所示。當智能車輛超過前方車輛時,兩車的狀態位置信息如圖8c和圖9c所示,智能檢測與被超車輛之間的安全距離,在安全距離內向右移動,回到原車道線上,兩車的位置信息如圖8d和圖9d所示。在整個試驗過程中,模擬智能車處于理想狀態以確保車輛在行駛過程中的安全性。

(a) 車輛初始狀態 (b) 車輛換道過程 (c) 車輛超車過程 (d) 車輛并道過程
對比圖8和圖9可以發現:傳統APF算法所規劃的路徑安全性沒有保障,所規劃的行駛路徑不穩定,實際應用時極易超車失敗;而APF-Bug混合算法能夠按照仿真運行結果完成超車,但是超車過程中,由于車身配重問題使車身偶爾不能完全擺正,少數情況下會出現超車失敗的情況,經多次試驗驗證統計,超車成功率在95%以上。

(a) 車輛初始狀態 (b) 車輛換道過程 (c) 車輛超車過程(d) 車輛并道過程
本文針對智能車輛在靜態、動態行駛環境下的自動安全避障問題,采用APF算法作為基本框架引入車輛運動學參數以改進APF算法,并應用Bug探索機制,提出了APF-Bug混合算法。經過仿真驗證分析,證明所提混合算法可有效避免智能車在避障過程中陷入路徑局部極值,同時在較低計算復雜度的前提下提高了路徑規劃的穩定性和安全性,確保智能車輛在動態行駛環境下安全可靠避障。在下一步研究中,面向更為復雜的動態混合交通流行駛環境,如何設計一種更加安全、平穩、高效的避障與超車路徑規劃算法將是我們研究的重點。