張炳力, 佘亞飛
(合肥工業(yè)大學(xué) 汽車與交通工程學(xué)院,安徽 合肥 230009)
針對自動駕駛的橫向控制,當(dāng)前的主流方法大致分為基于運動學(xué)的控制算法和基于動力學(xué)的控制算法兩類[1]。基于運動學(xué)的方法是利用目標(biāo)路徑與車輛運動過程中的幾何關(guān)系,其中使用較為廣泛的算法有Pure Pursuit、Stanley等。Pure Pursuit算法最早由文獻(xiàn)[2]提出,具有易于實現(xiàn)、計算成本低并且控制效果較為穩(wěn)定等特點,在自動駕駛相關(guān)研究中被廣泛應(yīng)用[3-4];Stanley算法由文獻(xiàn)[5]提出,部署該控制算法的無人車取得了當(dāng)年DARPA挑戰(zhàn)賽冠軍,Stanley算法在大多數(shù)駕駛環(huán)境下尤其是彎道行駛時具有更好的跟蹤性能,因此被廣泛應(yīng)用于自動駕駛技術(shù)的研究[6]。
相較于基于運動學(xué)的方法,基于動力學(xué)的方法在橫向控制性能上表現(xiàn)更加優(yōu)秀,其充分考慮了車輛的動力學(xué)特性,被越來越多地應(yīng)用于軌跡跟蹤問題,目前主流的控制算法為模型預(yù)測控制(model predictive control,MPC)。文獻(xiàn)[7]設(shè)計了基于MPC的車道保持系統(tǒng)轉(zhuǎn)向控制策略,驗證其在軌跡跟蹤的橫向控制上具有較好的適應(yīng)性和魯棒性,引入的車輛動力學(xué)模型可以通過模型的等效約束轉(zhuǎn)化減少規(guī)劃與控制的計算量,提高系統(tǒng)的實時性;文獻(xiàn)[8]考慮輪胎的非線性特性,對狀態(tài)矩陣和控制矩陣進(jìn)行了修正,調(diào)整了代價函數(shù)的權(quán)重,并通過實驗驗證了設(shè)計的控制器在真實環(huán)境中控制精度更高并且魯棒性強;文獻(xiàn)[9]設(shè)計了一種自主切換控制模型的MPC控制器,在穩(wěn)態(tài)工況下以速度航向偏差作為跟蹤誤差,而在瞬態(tài)工況下以車輛橫向偏差作為跟蹤誤差,從而大幅提高了跟蹤精度。
但是基于模型預(yù)測的方法需要已知車輛的動力學(xué)參數(shù),若車輛的動力學(xué)參數(shù)未知,則難以進(jìn)行控制器的設(shè)計;除此之外,對于不同車輛的適用性不強。當(dāng)所設(shè)計的控制器部署到其他車輛上時,由于不同車輛動力學(xué)參數(shù)不同,控制器的控制性能會受到很大影響。為了解決在不同車輛上的適用性問題并且探索更為有效的控制方案,一些學(xué)者提出了基于深度強化學(xué)習(xí)的方案[10-13]。文獻(xiàn)[14]分別使用深度Q網(wǎng)絡(luò)(deep Q-network,DQN)和深度確定性策略梯度(deep deterministic policy gradient,DDPG)算法設(shè)計軌跡跟蹤橫向控制器,通過對比實驗結(jié)果證明了DDPG算法在車輛橫向控制上的表現(xiàn)更優(yōu)秀;文獻(xiàn)[15]也驗證了自動駕駛是一個連續(xù)控制問題,不能簡單地將連續(xù)問題分解成離散問題。DDPG算法因為已經(jīng)被證實適用于連續(xù)控制場景,所以逐漸成為基于強化學(xué)習(xí)的主流控制方法[16]。然而,DDPG算法本身在某些情況下可能會出現(xiàn)值函數(shù)過估計、訓(xùn)練時間較長并且容易陷入局部最優(yōu)的問題。針對這些問題,文獻(xiàn)[17]改進(jìn)DDPG算法,并提出了雙延遲深度確定性策略梯度(twin delayed deep deterministic policy gradient,TD3)算法,該算法相較于DDPG算法極大地提高了訓(xùn)練速度和訓(xùn)練效果,在決策和控制領(lǐng)域具有很大的應(yīng)用前景[18-19]。
目前,針對軌跡跟蹤的研究仍存在一些問題,無論是基于幾何跟蹤或者基于模型預(yù)測等傳統(tǒng)控制方案,還是基于強化學(xué)習(xí)的方案,橫向控制的性能優(yōu)化大多聚焦于跟蹤精度,而較少考慮乘客的舒適度。
針對以上問題,本文所做的研究如下:
1) 根據(jù)車道線保持的使用場景提出一種基于深度強化學(xué)習(xí)的橫向控制方案,重新設(shè)計其狀態(tài)空間以及動作空間。對輸入和輸出進(jìn)行歸一化處理,從而克服在不同應(yīng)用情況的場景下輸入和輸出取值范圍不同的問題。
2) 采用基于TD3的方案優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),設(shè)計Critic和Actor網(wǎng)絡(luò)結(jié)構(gòu)以及參數(shù),使其具有較快的訓(xùn)練速度以及穩(wěn)定的訓(xùn)練過程。
3) 設(shè)計獎勵函數(shù),將跟蹤精度和乘客舒適度作為性能指標(biāo)平衡考慮。
4) 選擇仿真平臺,并根據(jù)ISO 11270:2014(E)[20]標(biāo)準(zhǔn)搭建仿真環(huán)境進(jìn)行實驗驗證。
當(dāng)被控車輛即將進(jìn)入曲率變化的區(qū)域時,如果不能得到足夠多前方目標(biāo)軌跡的信息,那么車輛可能會出現(xiàn)橫向控制的輸出值更新不及時的情況,此時控制輸出往往會出現(xiàn)控制結(jié)果超調(diào)的現(xiàn)象,并且伴隨著控制輸出不穩(wěn)定。
為了使車輛在前方目標(biāo)軌跡的曲率發(fā)生變化時可以提前得到前方目標(biāo)軌跡的信息,從而較快做出控制輸出的更新,而不是在要進(jìn)入曲率變化的區(qū)域時再改變橫向控制的輸出值,結(jié)合下文所述的獎勵函數(shù)設(shè)計,本文選取狀態(tài)空間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 狀態(tài)空間定義
不同應(yīng)用情況的場景下,定義狀態(tài)空間l1~l12的取值范圍乃至數(shù)量級不同,會導(dǎo)致訓(xùn)練的智能體在某些應(yīng)用場景下失效。為確保所設(shè)計的控制器具有較強的場景泛化能力,將定義狀態(tài)的各距離減去最小值,之后再除以最大值與最小值之差得到l1~l12,從而將定義的狀態(tài)歸一化至以下區(qū)間,即li∈[0,1]。
動作空間是所設(shè)計的軌跡跟蹤控制器的輸出值,其選取仿照人類駕駛員,定義動作空間為前輪轉(zhuǎn)角φsteer。動作輸出值的取值范圍較大會導(dǎo)致Actor網(wǎng)絡(luò)學(xué)習(xí)效果不佳,因此將動作輸出的上下限限制為±1,將動作輸出的前輪轉(zhuǎn)角φsteer限制在區(qū)間[-1,1]。為了讓前輪轉(zhuǎn)角適用于真實車輛的控制場景,在動作輸出后設(shè)計增益,乘以180°/π,即將前輪轉(zhuǎn)角φsteer放大至區(qū)間 [-57.3°,57.3°]。
本文所設(shè)計的Actor網(wǎng)絡(luò)如圖2所示,學(xué)習(xí)率設(shè)置為0.000 1。
從圖2可以看出,Actor網(wǎng)絡(luò)由1個輸入層(State)、2個隱藏層(Actor FC1、Actor FC2)和1個輸出層(Actor Output)組成。Actor網(wǎng)絡(luò)將狀態(tài)向量作為輸入,2個隱藏層使用relu激活函數(shù),輸出層采用tanh激活函數(shù)輸出前輪轉(zhuǎn)角,使預(yù)期累積長期回報最大化,從而實現(xiàn)確定性策略。
圖2 Actor網(wǎng)絡(luò)
本文所設(shè)計的Critic網(wǎng)絡(luò)如圖3所示。
從圖3可以看出,Critic網(wǎng)絡(luò)由2個輸入層(State、Action)、4個隱藏層以及1個輸出層(Critic Output)組成。Critic網(wǎng)絡(luò)實現(xiàn)對Q值的近似,2個Critic網(wǎng)絡(luò)將狀態(tài)向量和動作分別輸入,并選擇兩者中較小的Q值輸出??紤]到學(xué)習(xí)率低會使訓(xùn)練需要很長時間,而學(xué)習(xí)率高則可能會達(dá)到局部最優(yōu)結(jié)果或者發(fā)散,因此學(xué)習(xí)率根據(jù)經(jīng)驗設(shè)置為0.000 1。
圖3 Critic網(wǎng)絡(luò)
Actor網(wǎng)絡(luò)與Critic網(wǎng)絡(luò)互相作用,首先環(huán)境會給智能體一個狀態(tài),智能體將此狀態(tài)輸入到Actor網(wǎng)絡(luò)并輸出相應(yīng)的動作。將此時刻下狀態(tài)和動作輸入Critic網(wǎng)絡(luò)得到相應(yīng)的Q值,并利用較小的Q值更新網(wǎng)絡(luò)。
在轉(zhuǎn)彎行駛工況下,轉(zhuǎn)向過快可能會造成車輛在一定程度上喪失穩(wěn)定性,從而使橫向加速度變化劇烈導(dǎo)致舒適度較低。
為了使智能體盡可能地避免陷入局部最優(yōu),在接近最優(yōu)情況的過程中獎勵值增加得應(yīng)該更快,獎勵函數(shù)采用負(fù)指數(shù)形式。因此,結(jié)合選取的狀態(tài)空間并且綜合考慮跟蹤精度與舒適性,本文設(shè)計的獎勵函數(shù)如下:
(1)
(2)
Δli=|l2i-1-l2i|,i=1,2,3,4,5,6
(3)
l1~l12為狀態(tài)空間中定義的觀測量,當(dāng)車輛前方橫向距離在車道線中心線時,Δli=0;而車輛前方橫向距離偏離車道線中心線越多,Δli會隨之增大,直到超過車道線邊緣線,此時達(dá)到最大值Δli=1。
對于連續(xù)動作信號來說,設(shè)定噪聲以鼓勵探索是十分重要的。自相關(guān)的奧恩斯坦-烏倫貝克(Ornstein-Uhlenbeck,OU)噪聲與高斯噪聲等獨立的噪聲相比,前者可以使控制的信號較為連續(xù),后者會使前后兩步相差較大[21],因此對于慣性系統(tǒng)來說OU噪聲更為合適。而本文系統(tǒng)動作空間為前輪轉(zhuǎn)角φsteer,需要在原始動作上增加噪聲。為了產(chǎn)生在原始動作附近鄰域內(nèi)的實際執(zhí)行動作,增加的噪聲均值應(yīng)為0。
綜上可知,本文通過添加均值為0的OU噪聲模型來增加智能體探索,其OU噪聲離散形式的微分方程如下:
x(t+1)=x(t)-θ(x(t)-μ)Ts
(4)
其中:Ts為每一步的時間;μ為噪聲均值;θ決定了接近均值的速度。式(4)中各項參數(shù)均為常數(shù),具體設(shè)計如下:μ=0;θ=0.15;Ts=0.05。
本文選擇使用Prescan和MATLAB聯(lián)合仿真的方法對所設(shè)計的控制器進(jìn)行仿真驗證,其仿真平臺如圖4所示。在Prescan中進(jìn)行仿真環(huán)境的搭建,對車輛、道路以及傳感器等進(jìn)行創(chuàng)建,并將這些數(shù)據(jù)導(dǎo)入MATLAB。在MATLAB中完成控制算法的實現(xiàn),并把控制結(jié)果的車輛數(shù)據(jù)導(dǎo)入Prescan中進(jìn)行更新,整個算法更新時間同上文所述的探索策略更新時間一致。此外,使用Prescan內(nèi)部集成的3D可視化查看工具,以便于對運行結(jié)果進(jìn)行直接觀測。
圖4 Prescan聯(lián)合MATLAB仿真平臺
仿真場景依據(jù)ISO 11270:2014(E)搭建,該國際標(biāo)準(zhǔn)適用于乘用車、商用車和公共汽車的車道線保持的性能測試。根據(jù)ISO 11270:2014(E)車道線保持的性能評價試驗分直道和彎道,并且要求整個測試過程中橫向加速度不超過3 m/s2,因此分別搭建直道、左轉(zhuǎn)彎道、右轉(zhuǎn)彎道3個仿真場景。
5.2.1 使用車輛
使用型號為AudiA8的車輛進(jìn)行仿真,該車輛的基本參數(shù)見表1所列。
表1 車輛基本參數(shù)
5.2.2 直道
根據(jù)測試標(biāo)準(zhǔn),測試車輛以20~22 m/s的速度沿直線道路直線行駛,并且允許車輛輪胎外邊緣超過車道線邊界的最大值為0.4 m。直道仿真場景道路長度為300 m,車輛行駛速度為20 m/s。
5.2.3 彎道
根據(jù)測試標(biāo)準(zhǔn),整個測試過程中車速應(yīng)處在20~22 m/s之間,彎道中的行駛時間大于5 s。設(shè)定:車輛行駛速度v=20 m/s;彎道行駛時間t=10 s;彎道中車輛橫向加速度ay=1 m/s2。則道路幾何參數(shù)如下:
S=tv=200 m
(5)
(6)
仿真彎道設(shè)計如圖5所示。彎道的測試過程由2個單獨的測試組成,一次進(jìn)入左曲線,一次進(jìn)入右曲線。允許車輛輪胎外邊緣超過車道邊界的最大值為0.4 m。
圖5 仿真彎道設(shè)計網(wǎng)絡(luò)
5.3.1 單次運行終止條件
設(shè)定單次運行停止并對場景進(jìn)行初始化開始下一次運行的條件如下:
1) 運行過程中目標(biāo)車輛的車輪外側(cè)超出車道線邊緣。
2) 目標(biāo)車輛到達(dá)目標(biāo)地點。
5.3.2 訓(xùn)練終止條件
為了加強訓(xùn)練后智能體的穩(wěn)定性,定義平均獎勵,并取平均的窗口長度為50次運行結(jié)果。為了避免訓(xùn)練結(jié)果陷入局部最優(yōu),從而發(fā)生長時間訓(xùn)練但未能達(dá)到設(shè)置的平均獎勵目標(biāo)值,設(shè)置最大運行次數(shù)為2 000。
5.3.3 訓(xùn)練結(jié)果
基于2種算法設(shè)計的智能體訓(xùn)練結(jié)果如圖6所示。
圖6 基于2種算法設(shè)計的智能體訓(xùn)練結(jié)果
從圖6a可以看出:藍(lán)色線表示每次運行結(jié)果的累計獎勵值,該值隨著不斷訓(xùn)練整體上呈上升趨勢;紅色線表示平均窗口內(nèi)累計獎勵值的平均值,該值訓(xùn)練過程中呈上升趨勢并逐漸收斂于最優(yōu)情況的累計獎勵值;單次運行的累計獎勵值在運行20次時第1次達(dá)到最優(yōu)值附近;平均獎勵在運行40次后逐漸收斂,并且在60次后達(dá)到穩(wěn)定。由圖6可知,相較于圖6b所示的DDPG算法的訓(xùn)練過程,本文算法訓(xùn)練過程可以更快達(dá)到收斂,并且訓(xùn)練過程較為穩(wěn)定,訓(xùn)練過程中獎勵值不會出現(xiàn)劇烈波動。
訓(xùn)練后運行的每一步獎勵值如圖7所示,其平均值為1.98。而設(shè)計的獎勵函數(shù)最大值為2,即在每一步都采取最優(yōu)行動時獎勵值為2。訓(xùn)練后的獎勵平均值達(dá)到了最大獎勵函數(shù)的99%,可以認(rèn)為此時已經(jīng)基本達(dá)到最優(yōu)情況。
圖7 訓(xùn)練后單步獎勵值
本文采用橫向誤差e作為衡量跟蹤精度的量化指標(biāo)。橫向誤差定義如圖8所示,定義為車輛質(zhì)心到車道線中心線的距離。此外,使用車輛橫向加速度來評價乘客舒適度的性能[22]。
圖8 橫向誤差定義
以跟蹤精度和乘客舒適度作為控制器的性能指標(biāo),將本文所設(shè)計的控制器與文獻(xiàn)[3]設(shè)計的Pure Pursuit控制器、文獻(xiàn)[6]設(shè)計的Stanley方法控制器、文獻(xiàn)[8]設(shè)計的MPC控制器以及文獻(xiàn)[18]基于DDPG算法設(shè)計的控制器的仿真結(jié)果進(jìn)行對比。除本文算法外,其他算法的參數(shù)與其對應(yīng)文獻(xiàn)中設(shè)置的參數(shù)一致,包括本文算法在內(nèi)的所有算法仿真環(huán)境設(shè)置完全相同。
直道仿真實驗結(jié)果如圖9所示。
從圖9可以看出,在直線行駛工況下,各方案的控制器控制性能基本相同,橫向加速度接近于0,橫向誤差也都在0.01 m以內(nèi),跟蹤精度與舒適性均比較高。
圖9 直道仿真實驗結(jié)果
右轉(zhuǎn)彎道仿真實驗結(jié)果如圖10所示。
從圖10右轉(zhuǎn)彎道的仿真實驗結(jié)果可以看出,對于橫向加速度,本文控制器下橫向加速度波動最小,穩(wěn)定性最高;其次是使用文獻(xiàn)[18]中DDPG算法的控制器。這2種基于強化學(xué)習(xí)方案的橫向加速度穩(wěn)定性要明顯優(yōu)于軌跡跟蹤的其他3種傳統(tǒng)控制方案。
右轉(zhuǎn)彎道不同算法的橫向誤差均方根值見表2所列。
由表2可知,在右轉(zhuǎn)彎道場景中,本文算法的橫向誤差均方根值比其他主流控制方案(文獻(xiàn)[3]算法、文獻(xiàn)[6]算法、文獻(xiàn)[8]算法、文獻(xiàn)[18]算法)分別小74%、63%、36%、50%。
表2和圖10b中的數(shù)據(jù)表明:對于橫向誤差,本文控制器的仿真結(jié)果最趨近于0,表明其跟蹤精度最高;控制結(jié)果較優(yōu)的是文獻(xiàn)[8]MPC方法和文獻(xiàn)[18]算法的控制器,在控制精度上要優(yōu)于文獻(xiàn)[3]和文獻(xiàn)[6]基于運動學(xué)設(shè)計的控制器。
表2 不同算法的右轉(zhuǎn)彎道橫向誤差均方根值
左轉(zhuǎn)彎道仿真實驗結(jié)果如圖11所示。
從圖11可以看出,左轉(zhuǎn)彎道仿真實驗結(jié)果與右轉(zhuǎn)彎道仿真實驗結(jié)果相似,驗證了本文控制器具有場景泛化性。
左轉(zhuǎn)彎道不同算法的橫向誤差均方根值見表3所列。
由表3可知,在左轉(zhuǎn)彎道工況下,本文算法的橫向誤差均方根值比文獻(xiàn)[3]算法、文獻(xiàn)[6]算法、文獻(xiàn)[8]算法、文獻(xiàn)[18]算法的方案分別小64%、59%、18%、43%。實驗結(jié)果表明本文控制器比其他控制方案的橫向加速度波動小,穩(wěn)定性表現(xiàn)更優(yōu)異,同時控制器跟蹤精度也最高。
表3 左轉(zhuǎn)彎道橫向誤差均方根值
為了驗證本文所設(shè)計控制器的泛化性,將其在復(fù)雜工況中進(jìn)行仿真。
仿真測試場景如圖12所示,由4段彎道以及若干段直道組成。
圖12 長距離連續(xù)轉(zhuǎn)彎
仿真測試結(jié)果如圖13所示,本文控制器可以將橫向誤差控制在0.1 m之內(nèi),在復(fù)雜工況使用場景下表現(xiàn)出良好的魯棒性。
圖13 長距離連續(xù)轉(zhuǎn)彎測試結(jié)果
本文將TD3算法應(yīng)用于軌跡跟蹤的橫向控制,設(shè)計出一種基于深度強化學(xué)習(xí)的控制器,旨在解決自動駕駛中的軌跡跟蹤問題。通過仿真實驗,驗證了本文所設(shè)計的控制器具有以下特點:
1) 在不同使用場景下均可以將橫向誤差控制在可接受范圍之內(nèi),可以滿足實際使用中的功能要求。相較于目前主流的控制器方案,尤其在復(fù)雜環(huán)境中的行駛工況(如大曲率的彎道行駛)下,控制精度更加優(yōu)秀。
2) 可以在大曲率彎道行駛中保持橫向加速度的穩(wěn)定,相較于其他主流方案,本文控制器橫向加速度較小同時也較為穩(wěn)定,最大程度上保證乘客的舒適度。
3) 具有較強的場景泛化性,可以滿足車輛在復(fù)雜工況下的使用要求,可以較大程度上保證車輛不會偏離車道中心線。
本文設(shè)計并利用仿真實驗驗證了深度強化學(xué)習(xí)在軌跡跟蹤問題上的效果,探索了強化學(xué)習(xí)算法應(yīng)用在自動駕駛上的實現(xiàn)方式。所提出的控制器方案相較于當(dāng)前的主流解決方案有著更優(yōu)異的性能,具有較高的實際應(yīng)用價值。