張炳力, 佘亞飛
(合肥工業大學 汽車與交通工程學院,安徽 合肥 230009)
針對自動駕駛的橫向控制,當前的主流方法大致分為基于運動學的控制算法和基于動力學的控制算法兩類[1]。基于運動學的方法是利用目標路徑與車輛運動過程中的幾何關系,其中使用較為廣泛的算法有Pure Pursuit、Stanley等。Pure Pursuit算法最早由文獻[2]提出,具有易于實現、計算成本低并且控制效果較為穩定等特點,在自動駕駛相關研究中被廣泛應用[3-4];Stanley算法由文獻[5]提出,部署該控制算法的無人車取得了當年DARPA挑戰賽冠軍,Stanley算法在大多數駕駛環境下尤其是彎道行駛時具有更好的跟蹤性能,因此被廣泛應用于自動駕駛技術的研究[6]。
相較于基于運動學的方法,基于動力學的方法在橫向控制性能上表現更加優秀,其充分考慮了車輛的動力學特性,被越來越多地應用于軌跡跟蹤問題,目前主流的控制算法為模型預測控制(model predictive control,MPC)。文獻[7]設計了基于MPC的車道保持系統轉向控制策略,驗證其在軌跡跟蹤的橫向控制上具有較好的適應性和魯棒性,引入的車輛動力學模型可以通過模型的等效約束轉化減少規劃與控制的計算量,提高系統的實時性;文獻[8]考慮輪胎的非線性特性,對狀態矩陣和控制矩陣進行了修正,調整了代價函數的權重,并通過實驗驗證了設計的控制器在真實環境中控制精度更高并且魯棒性強;文獻[9]設計了一種自主切換控制模型的MPC控制器,在穩態工況下以速度航向偏差作為跟蹤誤差,而在瞬態工況下以車輛橫向偏差作為跟蹤誤差,從而大幅提高了跟蹤精度。
但是基于模型預測的方法需要已知車輛的動力學參數,若車輛的動力學參數未知,則難以進行控制器的設計;除此之外,對于不同車輛的適用性不強。當所設計的控制器部署到其他車輛上時,由于不同車輛動力學參數不同,控制器的控制性能會受到很大影響。為了解決在不同車輛上的適用性問題并且探索更為有效的控制方案,一些學者提出了基于深度強化學習的方案[10-13]。文獻[14]分別使用深度Q網絡(deep Q-network,DQN)和深度確定性策略梯度(deep deterministic policy gradient,DDPG)算法設計軌跡跟蹤橫向控制器,通過對比實驗結果證明了DDPG算法在車輛橫向控制上的表現更優秀;文獻[15]也驗證了自動駕駛是一個連續控制問題,不能簡單地將連續問題分解成離散問題。DDPG算法因為已經被證實適用于連續控制場景,所以逐漸成為基于強化學習的主流控制方法[16]。然而,DDPG算法本身在某些情況下可能會出現值函數過估計、訓練時間較長并且容易陷入局部最優的問題。針對這些問題,文獻[17]改進DDPG算法,并提出了雙延遲深度確定性策略梯度(twin delayed deep deterministic policy gradient,TD3)算法,該算法相較于DDPG算法極大地提高了訓練速度和訓練效果,在決策和控制領域具有很大的應用前景[18-19]。
目前,針對軌跡跟蹤的研究仍存在一些問題,無論是基于幾何跟蹤或者基于模型預測等傳統控制方案,還是基于強化學習的方案,橫向控制的性能優化大多聚焦于跟蹤精度,而較少考慮乘客的舒適度。
針對以上問題,本文所做的研究如下:
1) 根據車道線保持的使用場景提出一種基于深度強化學習的橫向控制方案,重新設計其狀態空間以及動作空間。對輸入和輸出進行歸一化處理,從而克服在不同應用情況的場景下輸入和輸出取值范圍不同的問題。
2) 采用基于TD3的方案優化神經網絡結構,設計Critic和Actor網絡結構以及參數,使其具有較快的訓練速度以及穩定的訓練過程。
3) 設計獎勵函數,將跟蹤精度和乘客舒適度作為性能指標平衡考慮。
4) 選擇仿真平臺,并根據ISO 11270:2014(E)[20]標準搭建仿真環境進行實驗驗證。
當被控車輛即將進入曲率變化的區域時,如果不能得到足夠多前方目標軌跡的信息,那么車輛可能會出現橫向控制的輸出值更新不及時的情況,此時控制輸出往往會出現控制結果超調的現象,并且伴隨著控制輸出不穩定。
為了使車輛在前方目標軌跡的曲率發生變化時可以提前得到前方目標軌跡的信息,從而較快做出控制輸出的更新,而不是在要進入曲率變化的區域時再改變橫向控制的輸出值,結合下文所述的獎勵函數設計,本文選取狀態空間l1~l12,具體如圖1所示。
圖1中:l1、l2表示在車輛前軸處汽車中心線與車道線左邊緣以及車道線右邊緣的距離;l3、l4表示在車輛前軸前方2 m處汽車中心線與車道線左邊緣以及車道線右邊緣的距離;l5、l6表示在車輛前軸前方6 m處汽車中心線與車道線左邊緣以及車道線右邊緣的距離;l7、l8表示在車輛前軸前方10 m處汽車中心線與車道線左邊緣以及車道線右邊緣的距離;l9、l10表示在車輛前軸前方14 m處汽車中心線與車道線左邊緣以及車道線右邊緣的距離;l11、l12表示在車輛前軸前方18 m處汽車中心線與車道線左邊緣以及車道線右邊緣的距離。

圖1 狀態空間定義
不同應用情況的場景下,定義狀態空間l1~l12的取值范圍乃至數量級不同,會導致訓練的智能體在某些應用場景下失效。為確保所設計的控制器具有較強的場景泛化能力,將定義狀態的各距離減去最小值,之后再除以最大值與最小值之差得到l1~l12,從而將定義的狀態歸一化至以下區間,即li∈[0,1]。
動作空間是所設計的軌跡跟蹤控制器的輸出值,其選取仿照人類駕駛員,定義動作空間為前輪轉角φsteer。動作輸出值的取值范圍較大會導致Actor網絡學習效果不佳,因此將動作輸出的上下限限制為±1,將動作輸出的前輪轉角φsteer限制在區間[-1,1]。為了讓前輪轉角適用于真實車輛的控制場景,在動作輸出后設計增益,乘以180°/π,即將前輪轉角φsteer放大至區間 [-57.3°,57.3°]。
本文所設計的Actor網絡如圖2所示,學習率設置為0.000 1。
從圖2可以看出,Actor網絡由1個輸入層(State)、2個隱藏層(Actor FC1、Actor FC2)和1個輸出層(Actor Output)組成。Actor網絡將狀態向量作為輸入,2個隱藏層使用relu激活函數,輸出層采用tanh激活函數輸出前輪轉角,使預期累積長期回報最大化,從而實現確定性策略。

圖2 Actor網絡
本文所設計的Critic網絡如圖3所示。
從圖3可以看出,Critic網絡由2個輸入層(State、Action)、4個隱藏層以及1個輸出層(Critic Output)組成。Critic網絡實現對Q值的近似,2個Critic網絡將狀態向量和動作分別輸入,并選擇兩者中較小的Q值輸出。考慮到學習率低會使訓練需要很長時間,而學習率高則可能會達到局部最優結果或者發散,因此學習率根據經驗設置為0.000 1。

圖3 Critic網絡
Actor網絡與Critic網絡互相作用,首先環境會給智能體一個狀態,智能體將此狀態輸入到Actor網絡并輸出相應的動作。將此時刻下狀態和動作輸入Critic網絡得到相應的Q值,并利用較小的Q值更新網絡。
在轉彎行駛工況下,轉向過快可能會造成車輛在一定程度上喪失穩定性,從而使橫向加速度變化劇烈導致舒適度較低。
為了使智能體盡可能地避免陷入局部最優,在接近最優情況的過程中獎勵值增加得應該更快,獎勵函數采用負指數形式。因此,結合選取的狀態空間并且綜合考慮跟蹤精度與舒適性,本文設計的獎勵函數如下:
(1)

(2)
Δli=|l2i-1-l2i|,i=1,2,3,4,5,6
(3)
l1~l12為狀態空間中定義的觀測量,當車輛前方橫向距離在車道線中心線時,Δli=0;而車輛前方橫向距離偏離車道線中心線越多,Δli會隨之增大,直到超過車道線邊緣線,此時達到最大值Δli=1。
對于連續動作信號來說,設定噪聲以鼓勵探索是十分重要的。自相關的奧恩斯坦-烏倫貝克(Ornstein-Uhlenbeck,OU)噪聲與高斯噪聲等獨立的噪聲相比,前者可以使控制的信號較為連續,后者會使前后兩步相差較大[21],因此對于慣性系統來說OU噪聲更為合適。而本文系統動作空間為前輪轉角φsteer,需要在原始動作上增加噪聲。為了產生在原始動作附近鄰域內的實際執行動作,增加的噪聲均值應為0。
綜上可知,本文通過添加均值為0的OU噪聲模型來增加智能體探索,其OU噪聲離散形式的微分方程如下:
x(t+1)=x(t)-θ(x(t)-μ)Ts
(4)
其中:Ts為每一步的時間;μ為噪聲均值;θ決定了接近均值的速度。式(4)中各項參數均為常數,具體設計如下:μ=0;θ=0.15;Ts=0.05。
本文選擇使用Prescan和MATLAB聯合仿真的方法對所設計的控制器進行仿真驗證,其仿真平臺如圖4所示。在Prescan中進行仿真環境的搭建,對車輛、道路以及傳感器等進行創建,并將這些數據導入MATLAB。在MATLAB中完成控制算法的實現,并把控制結果的車輛數據導入Prescan中進行更新,整個算法更新時間同上文所述的探索策略更新時間一致。此外,使用Prescan內部集成的3D可視化查看工具,以便于對運行結果進行直接觀測。

圖4 Prescan聯合MATLAB仿真平臺
仿真場景依據ISO 11270:2014(E)搭建,該國際標準適用于乘用車、商用車和公共汽車的車道線保持的性能測試。根據ISO 11270:2014(E)車道線保持的性能評價試驗分直道和彎道,并且要求整個測試過程中橫向加速度不超過3 m/s2,因此分別搭建直道、左轉彎道、右轉彎道3個仿真場景。
5.2.1 使用車輛
使用型號為AudiA8的車輛進行仿真,該車輛的基本參數見表1所列。

表1 車輛基本參數
5.2.2 直道
根據測試標準,測試車輛以20~22 m/s的速度沿直線道路直線行駛,并且允許車輛輪胎外邊緣超過車道線邊界的最大值為0.4 m。直道仿真場景道路長度為300 m,車輛行駛速度為20 m/s。
5.2.3 彎道
根據測試標準,整個測試過程中車速應處在20~22 m/s之間,彎道中的行駛時間大于5 s。設定:車輛行駛速度v=20 m/s;彎道行駛時間t=10 s;彎道中車輛橫向加速度ay=1 m/s2。則道路幾何參數如下:
S=tv=200 m
(5)
(6)
仿真彎道設計如圖5所示。彎道的測試過程由2個單獨的測試組成,一次進入左曲線,一次進入右曲線。允許車輛輪胎外邊緣超過車道邊界的最大值為0.4 m。

圖5 仿真彎道設計網絡
5.3.1 單次運行終止條件
設定單次運行停止并對場景進行初始化開始下一次運行的條件如下:
1) 運行過程中目標車輛的車輪外側超出車道線邊緣。
2) 目標車輛到達目標地點。
5.3.2 訓練終止條件
為了加強訓練后智能體的穩定性,定義平均獎勵,并取平均的窗口長度為50次運行結果。為了避免訓練結果陷入局部最優,從而發生長時間訓練但未能達到設置的平均獎勵目標值,設置最大運行次數為2 000。
5.3.3 訓練結果
基于2種算法設計的智能體訓練結果如圖6所示。

圖6 基于2種算法設計的智能體訓練結果
從圖6a可以看出:藍色線表示每次運行結果的累計獎勵值,該值隨著不斷訓練整體上呈上升趨勢;紅色線表示平均窗口內累計獎勵值的平均值,該值訓練過程中呈上升趨勢并逐漸收斂于最優情況的累計獎勵值;單次運行的累計獎勵值在運行20次時第1次達到最優值附近;平均獎勵在運行40次后逐漸收斂,并且在60次后達到穩定。由圖6可知,相較于圖6b所示的DDPG算法的訓練過程,本文算法訓練過程可以更快達到收斂,并且訓練過程較為穩定,訓練過程中獎勵值不會出現劇烈波動。
訓練后運行的每一步獎勵值如圖7所示,其平均值為1.98。而設計的獎勵函數最大值為2,即在每一步都采取最優行動時獎勵值為2。訓練后的獎勵平均值達到了最大獎勵函數的99%,可以認為此時已經基本達到最優情況。

圖7 訓練后單步獎勵值
本文采用橫向誤差e作為衡量跟蹤精度的量化指標。橫向誤差定義如圖8所示,定義為車輛質心到車道線中心線的距離。此外,使用車輛橫向加速度來評價乘客舒適度的性能[22]。

圖8 橫向誤差定義
以跟蹤精度和乘客舒適度作為控制器的性能指標,將本文所設計的控制器與文獻[3]設計的Pure Pursuit控制器、文獻[6]設計的Stanley方法控制器、文獻[8]設計的MPC控制器以及文獻[18]基于DDPG算法設計的控制器的仿真結果進行對比。除本文算法外,其他算法的參數與其對應文獻中設置的參數一致,包括本文算法在內的所有算法仿真環境設置完全相同。
直道仿真實驗結果如圖9所示。
從圖9可以看出,在直線行駛工況下,各方案的控制器控制性能基本相同,橫向加速度接近于0,橫向誤差也都在0.01 m以內,跟蹤精度與舒適性均比較高。

圖9 直道仿真實驗結果
右轉彎道仿真實驗結果如圖10所示。
從圖10右轉彎道的仿真實驗結果可以看出,對于橫向加速度,本文控制器下橫向加速度波動最小,穩定性最高;其次是使用文獻[18]中DDPG算法的控制器。這2種基于強化學習方案的橫向加速度穩定性要明顯優于軌跡跟蹤的其他3種傳統控制方案。
右轉彎道不同算法的橫向誤差均方根值見表2所列。
由表2可知,在右轉彎道場景中,本文算法的橫向誤差均方根值比其他主流控制方案(文獻[3]算法、文獻[6]算法、文獻[8]算法、文獻[18]算法)分別小74%、63%、36%、50%。
表2和圖10b中的數據表明:對于橫向誤差,本文控制器的仿真結果最趨近于0,表明其跟蹤精度最高;控制結果較優的是文獻[8]MPC方法和文獻[18]算法的控制器,在控制精度上要優于文獻[3]和文獻[6]基于運動學設計的控制器。

表2 不同算法的右轉彎道橫向誤差均方根值
左轉彎道仿真實驗結果如圖11所示。
從圖11可以看出,左轉彎道仿真實驗結果與右轉彎道仿真實驗結果相似,驗證了本文控制器具有場景泛化性。
左轉彎道不同算法的橫向誤差均方根值見表3所列。
由表3可知,在左轉彎道工況下,本文算法的橫向誤差均方根值比文獻[3]算法、文獻[6]算法、文獻[8]算法、文獻[18]算法的方案分別小64%、59%、18%、43%。實驗結果表明本文控制器比其他控制方案的橫向加速度波動小,穩定性表現更優異,同時控制器跟蹤精度也最高。

表3 左轉彎道橫向誤差均方根值
為了驗證本文所設計控制器的泛化性,將其在復雜工況中進行仿真。
仿真測試場景如圖12所示,由4段彎道以及若干段直道組成。

圖12 長距離連續轉彎
仿真測試結果如圖13所示,本文控制器可以將橫向誤差控制在0.1 m之內,在復雜工況使用場景下表現出良好的魯棒性。

圖13 長距離連續轉彎測試結果
本文將TD3算法應用于軌跡跟蹤的橫向控制,設計出一種基于深度強化學習的控制器,旨在解決自動駕駛中的軌跡跟蹤問題。通過仿真實驗,驗證了本文所設計的控制器具有以下特點:
1) 在不同使用場景下均可以將橫向誤差控制在可接受范圍之內,可以滿足實際使用中的功能要求。相較于目前主流的控制器方案,尤其在復雜環境中的行駛工況(如大曲率的彎道行駛)下,控制精度更加優秀。
2) 可以在大曲率彎道行駛中保持橫向加速度的穩定,相較于其他主流方案,本文控制器橫向加速度較小同時也較為穩定,最大程度上保證乘客的舒適度。
3) 具有較強的場景泛化性,可以滿足車輛在復雜工況下的使用要求,可以較大程度上保證車輛不會偏離車道中心線。
本文設計并利用仿真實驗驗證了深度強化學習在軌跡跟蹤問題上的效果,探索了強化學習算法應用在自動駕駛上的實現方式。所提出的控制器方案相較于當前的主流解決方案有著更優異的性能,具有較高的實際應用價值。