張濤 孫曉霞 趙寧
中國(guó)北方車輛研究所 北京 100072
自適應(yīng)巡航控制(Adaptive Cruise Control,ACC)是先進(jìn)駕駛輔助系統(tǒng)(Advanced Driver Assistance Systems,ADAS)的重要組成部分[1],屬于車輛的主動(dòng)安全性和舒適性控制系統(tǒng)。ACC系統(tǒng)的主車通過(guò)距離傳感器檢測(cè)與前方目標(biāo)車輛之間的相對(duì)速度與相對(duì)距離等信息,自動(dòng)調(diào)節(jié)主車的行駛速度,確保主車與前方目標(biāo)車輛達(dá)到一種動(dòng)態(tài)穩(wěn)定的安全距離。ACC系統(tǒng)一方面減少人工駕駛操作失誤而增強(qiáng)車輛主動(dòng)行駛的安全性,另一方面能夠提高駕駛的舒適性并減輕駕駛員的駕駛負(fù)擔(dān)。近年來(lái),車對(duì)車(V2V)通信技術(shù)的發(fā)展,如DSRC和LTE-V[2],為主車提供了與周圍車輛交換信息的機(jī)會(huì)。這意味著ACC系統(tǒng)不僅僅通過(guò)主車傳感器來(lái)感知外部環(huán)境,還能通過(guò)車聯(lián)網(wǎng)設(shè)備直接獲得前車的速度、加速度等信息來(lái)進(jìn)行系統(tǒng)控制,由此產(chǎn)生的車輛巡航功能稱為協(xié)作式自適應(yīng)巡航控制(Cooperative Adaptive Cruise Control,CACC)系統(tǒng)。
關(guān)于ACC/CACC的研究最早可以追溯到美國(guó)的PATH項(xiàng)目[3]等。在早期的巡航控制系統(tǒng)中的跟蹤控制策略中,線性前饋和反饋控制器由于其算法簡(jiǎn)單、硬件實(shí)現(xiàn)方便等優(yōu)點(diǎn)被廣泛應(yīng)用[4],然而由于車輛動(dòng)力學(xué)的非線性和環(huán)境的不確定性,控制器的參數(shù)需要手動(dòng)調(diào)整,控制器難以對(duì)未知干擾進(jìn)行自適應(yīng)和魯棒性。模型預(yù)測(cè)控制(Model Predictive Control, MPC)也被引入到巡航控制系統(tǒng)中,通過(guò)預(yù)測(cè)系統(tǒng)動(dòng)力學(xué)和狀態(tài)約束來(lái)生成最優(yōu)控制命令[5],但是MPC設(shè)計(jì)涉及的參數(shù)較多,需要更多的時(shí)間進(jìn)行計(jì)算調(diào)整。此外為了獲得更好的駕駛舒適性,在控制器設(shè)計(jì)中有必要考慮駕駛員的心理和駕駛習(xí)慣。在文獻(xiàn)[6]中,將數(shù)據(jù)驅(qū)動(dòng)的自學(xué)習(xí)算法與MPC相結(jié)合,提出了一種基于人的自主控制方案,結(jié)果表明在保持安全跟蹤距離的情況下,可以降低車輛的速度“顛簸”。然而目前大部分自適應(yīng)學(xué)習(xí)算法存在收斂速度較慢,不能充分利用計(jì)算資源,無(wú)法進(jìn)行在線學(xué)習(xí)等諸多弊端。
ACC/CACC系統(tǒng)歸根結(jié)底是一項(xiàng)駕駛員輔助系統(tǒng),傳統(tǒng)基于PID、MPC等控制方法并不能很好的模擬駕駛員開車時(shí)的特性,尤其是在主車跟蹤前車進(jìn)行減速停車時(shí),有些駕駛員傾向于高速接近前車并進(jìn)行急剎車,而有些駕駛員因駕駛風(fēng)格較為平滑而傾向于緩慢減速接近前車。但是,現(xiàn)有的跟蹤巡航控制過(guò)程過(guò)于呆板,導(dǎo)致因?yàn)楦嚲嚯x或者控制效果不夠擬人化而讓駕駛員感覺(jué)不舒適,很可能由于駕駛員的感受不好而對(duì)系統(tǒng)產(chǎn)生了否定,因此就對(duì)自適應(yīng)巡航控制系統(tǒng)提出了更高的要求。
為了提升自適應(yīng)巡航系統(tǒng)的擬人化停車制動(dòng)效果,本文提出一種基于多路并行監(jiān)督強(qiáng)化學(xué)習(xí)(Supervised Reinforcement Learning, SRL)的CACC系統(tǒng)制動(dòng)控制策略,該控制策略能充分利用計(jì)算資源、快速迭代縮短網(wǎng)絡(luò)訓(xùn)練時(shí)間。通過(guò)在離線學(xué)習(xí)過(guò)程中加入模擬駕駛員特性的神經(jīng)網(wǎng)絡(luò),使得巡航制動(dòng)控制單元的控制輸出量包含了離線學(xué)習(xí)過(guò)程中的駕駛員駕駛特性,又包含在線學(xué)習(xí)過(guò)程中對(duì)控制量的評(píng)價(jià)指標(biāo)而添加額外的控制量,使得控制單元在駕駛員駕駛過(guò)程中能夠不斷在線學(xué)習(xí)更新控制策略來(lái)更好地模擬駕駛員特性。
ACC/CACC系統(tǒng)的基本功能是調(diào)節(jié)主車輛的加速度,使得主車輛和其最近的前車之間的相對(duì)速度以及車輛間距離和期望距離之間的誤差收斂到零。圖1顯示了車輛輔助駕駛系統(tǒng)的控制框架結(jié)構(gòu)圖
圖1 系統(tǒng)的控制框架結(jié)構(gòu)圖
車輛系統(tǒng)通過(guò)總線信息以及車載測(cè)距系統(tǒng)采集主車車速、加速度等狀態(tài)變量以及與前車的相對(duì)車距、速度等環(huán)境變量,同時(shí)可以通過(guò)V2V模塊采集前車的加速度、航向角、GPS坐標(biāo)等變量;離線訓(xùn)練好的上層控制模塊根據(jù)當(dāng)前主車狀態(tài)變量x(t)生成車輛期望加速度的控制量u(t);效果評(píng)價(jià)模塊根據(jù)狀態(tài)變量x(t)和期望加速度控制量,并結(jié)合人工駕駛時(shí)實(shí)際控制量對(duì)上層控制模塊的控制效果進(jìn)行評(píng)價(jià),如果評(píng)價(jià)結(jié)果為不符合要求,系統(tǒng)進(jìn)入在線學(xué)習(xí)模式,如果評(píng)價(jià)結(jié)果為符合控制要求,則將控制量下發(fā)給下層控制模塊;離線學(xué)習(xí)用于生產(chǎn)系統(tǒng)的初始最優(yōu)參數(shù),在線學(xué)習(xí)用于根據(jù)控制誤差,實(shí)時(shí)修正網(wǎng)絡(luò)參數(shù),滿足駕駛員使用需求后固定系統(tǒng)參數(shù)結(jié)束在線更新過(guò)程。下層控制模塊根據(jù)車輛動(dòng)力學(xué)模型解算當(dāng)前車速和需求加速度下的期望油門開度和制動(dòng)壓力,結(jié)合執(zhí)行器對(duì)加速和制動(dòng)踏板進(jìn)行控制。其中上層控制模塊的構(gòu)建包括離線訓(xùn)練和在線訓(xùn)練兩部分,評(píng)價(jià)模塊用于估計(jì)上層控制模塊的代價(jià)函數(shù),用來(lái)定量化指導(dǎo)上層控制單元的迭代優(yōu)化。
強(qiáng)化學(xué)習(xí)(Reinforcement Learning,RL)算法是依靠神經(jīng)網(wǎng)絡(luò)擬合學(xué)習(xí)控制的最優(yōu)策略,即從當(dāng)前狀態(tài)到當(dāng)前行動(dòng)的映射,以優(yōu)化某些控制性能的標(biāo)準(zhǔn)[7]。然而僅僅依靠RL,學(xué)習(xí)網(wǎng)絡(luò)并沒(méi)有被告知當(dāng)遇到某種狀態(tài)時(shí)應(yīng)該采取何種行動(dòng)最合適,而是必須通過(guò)反復(fù)學(xué)習(xí)來(lái)發(fā)現(xiàn)哪些行動(dòng)會(huì)帶來(lái)最大的回報(bào)。研究人員提出,使用監(jiān)督模塊對(duì)學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行正向引導(dǎo)可以使學(xué)習(xí)問(wèn)題更容易解決[8]。對(duì)于車輛動(dòng)力學(xué)控制問(wèn)題,可以利用人類駕駛員實(shí)際駕駛操作的數(shù)據(jù)作為RL的監(jiān)督引導(dǎo)者。
圖2所示為本文所采用的SRL的基本單元體結(jié)構(gòu)體。行動(dòng)-評(píng)價(jià)架構(gòu)用于建立車輛狀態(tài)和動(dòng)作之間的直接關(guān)系以及狀態(tài)、動(dòng)作和控制性能之間的持續(xù)更新關(guān)系[9]。監(jiān)督單元可以理解為駕駛員行為的數(shù)據(jù)庫(kù),根據(jù)當(dāng)前車輛狀態(tài)給出合理的“擬人化”控制量輸出,并與行動(dòng)單元給出的“機(jī)械化”控制量輸出作比較,向行動(dòng)單元提供關(guān)于哪些操作可能適合或不適合的更新提示;同時(shí),由權(quán)重調(diào)節(jié)器混合兩種動(dòng)作的復(fù)合動(dòng)作被發(fā)送到車輛系統(tǒng),系統(tǒng)從當(dāng)前車輛狀態(tài)通過(guò)響應(yīng)復(fù)合輸入動(dòng)作轉(zhuǎn)換到下一個(gè)狀態(tài)x(t+1),并對(duì)該動(dòng)作給予獎(jiǎng)勵(lì)回報(bào)。
圖2 行動(dòng)-評(píng)價(jià)監(jiān)督強(qiáng)化學(xué)習(xí)的基本單元體
圖2中的實(shí)線表示數(shù)據(jù)流方向,虛線表示根據(jù)誤差進(jìn)行學(xué)習(xí)的方向,定義輸入狀態(tài)變量x(t)=[Δd(t),Δv(t),Δa(t)],包括主車與前方目標(biāo)車輛之間的距離誤差、速度誤差和前后加速度誤差。根據(jù)輸入的狀態(tài)變量x(t),監(jiān)督單元生成的具有不同駕駛員特性的監(jiān)督控制變量u s(t),行動(dòng)單元輸出的直接控制變量為u a(t),權(quán)重調(diào)節(jié)器混合兩種控制量為u(t),將u(t)施加在仿真車輛系統(tǒng)或?qū)嶋H車輛系統(tǒng)上,由車輛下層執(zhí)行器響應(yīng)并產(chǎn)生下一時(shí)刻的狀態(tài)變量x(t+1)。根據(jù)每一次的動(dòng)作響應(yīng)效果給出獎(jiǎng)勵(lì)回報(bào)r(t),評(píng)價(jià)單元根據(jù)行動(dòng)u(t)及其對(duì)應(yīng)的動(dòng)作狀態(tài)x(t+1)計(jì)算得到代價(jià)函數(shù)的估計(jì)值J(t)。同時(shí),監(jiān)督單元的u s(t)與控制單元的u a(t)形成了行動(dòng)單元學(xué)習(xí)的誤差E a1(t),控制變量輸入到評(píng)價(jià)單元并結(jié)合期望控制目標(biāo)U(t)構(gòu)造行動(dòng)單元的另一種學(xué)習(xí)誤差E a2(t)。最后根據(jù)回報(bào)r(t)、當(dāng)前代價(jià)估計(jì)值J(t)(帶學(xué)習(xí)率γ)和上一次代價(jià)值構(gòu)造評(píng)價(jià)單元的學(xué)習(xí)誤差Ec(t),Z-1為Z的變換符號(hào),將當(dāng)前時(shí)刻的變量變換為前一時(shí)刻變量以便利用遞推法則。
在提出的SRL控制算法中有三種神經(jīng)網(wǎng)絡(luò):行動(dòng)單元網(wǎng)絡(luò)、評(píng)價(jià)單元網(wǎng)絡(luò)和監(jiān)督單元網(wǎng)絡(luò)。行動(dòng)網(wǎng)絡(luò)負(fù)責(zé)根據(jù)狀態(tài)生成控制命令,利用評(píng)價(jià)網(wǎng)絡(luò)來(lái)近似折現(xiàn)的總獎(jiǎng)勵(lì),并對(duì)控制信號(hào)的性能進(jìn)行評(píng)估。監(jiān)督網(wǎng)絡(luò)用于模擬駕駛員的行為,提供駕駛員的預(yù)測(cè)控制信號(hào),指導(dǎo)行動(dòng)網(wǎng)絡(luò)和評(píng)價(jià)網(wǎng)絡(luò)的更新訓(xùn)練。行動(dòng)網(wǎng)絡(luò)和評(píng)價(jià)網(wǎng)絡(luò)均采用簡(jiǎn)單的三層前饋神經(jīng)網(wǎng)絡(luò),其具體含義及公式化網(wǎng)絡(luò)已經(jīng)在[9-10]中介紹,本文為簡(jiǎn)化不再重復(fù)敘述。
駕駛員行為的建??梢圆捎脜?shù)模型,如智能駕駛員模型[11],也可以采用非參數(shù)模型,如高斯混合回歸模型和人工神經(jīng)網(wǎng)絡(luò)模型。在文獻(xiàn)[12]中,研究了一種基于神經(jīng)網(wǎng)絡(luò)的建模駕駛員行為的方法。在這一部分中,駕駛員的行為是由一個(gè)前饋神經(jīng)網(wǎng)絡(luò)建模的,它與行動(dòng)網(wǎng)絡(luò)的結(jié)構(gòu)相同。收集真實(shí)場(chǎng)景主車人工駕駛跟隨前車在路口減速停車時(shí)的駕駛員的操作數(shù)據(jù)及車輛狀態(tài),形成數(shù)據(jù)集D。使用數(shù)據(jù)集D= {e d(t),v r(t),a r(t),a des(t)}訓(xùn)練監(jiān)督網(wǎng)絡(luò),可以根據(jù)給定狀態(tài)[e d(t),v r(t),a r(t)]預(yù)測(cè)駕駛員的命令a des(t)。監(jiān)督網(wǎng)絡(luò)的權(quán)值通過(guò)預(yù)測(cè)誤差的反向傳播進(jìn)行更新,并采用梯度下降的原則對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,直到權(quán)值收斂。
需要注意的是,行動(dòng)網(wǎng)絡(luò)、監(jiān)督網(wǎng)絡(luò)和權(quán)重調(diào)節(jié)器生成一個(gè)用于主車輛的復(fù)合動(dòng)作,公式如下所示:
其中u s(t)在[1,1]范圍內(nèi)進(jìn)行歸一化處理;u E(t)是行動(dòng)單元的探索行為,且u E(t)=u a(t)+N(0,σ),N(0,σ)表示均值0和方差σ的隨機(jī)噪聲。權(quán)重ks為行動(dòng)網(wǎng)絡(luò)和監(jiān)督網(wǎng)絡(luò)之間的控制比例。這個(gè)參數(shù)在監(jiān)督學(xué)習(xí)過(guò)程中非常重要,因?yàn)樗鼪Q定了駕駛員特性參與的自主程度,也決定了監(jiān)督網(wǎng)絡(luò)的指導(dǎo)強(qiáng)度。
本文所設(shè)計(jì)的上層控制模塊學(xué)習(xí)過(guò)程,一方面包括先進(jìn)行駕駛特性的離線學(xué)習(xí)以使其達(dá)到接近駕駛員行為特性,再進(jìn)行行駛過(guò)程中的在線學(xué)習(xí)進(jìn)行控制算法的迭代與優(yōu)化。在離線學(xué)習(xí)過(guò)程中,為了能夠充分利用計(jì)算機(jī)資源,且需要確保神經(jīng)網(wǎng)絡(luò)快速收斂并能夠避免收斂于局部最優(yōu)解,本文提出采用多路并行的學(xué)習(xí)方式,其完整的離線學(xué)習(xí)過(guò)程包括一個(gè)全局學(xué)習(xí)模塊以及n個(gè)子訓(xùn)練模塊,如圖3所示。需要指出每個(gè)子訓(xùn)練模塊與全局訓(xùn)練模塊的結(jié)構(gòu)相同,均為基本的行動(dòng)-評(píng)價(jià)-監(jiān)督網(wǎng)絡(luò)單元。
在車載系統(tǒng)訓(xùn)練開始前,先根據(jù)控制器的計(jì)算資源確定子訓(xùn)練模塊的數(shù)量,并初始化全局模塊和各子模塊的神經(jīng)網(wǎng)絡(luò)參數(shù);之后,各子單元在其各自監(jiān)督單元的引導(dǎo)下進(jìn)行獨(dú)立的訓(xùn)練,由于采用了系統(tǒng)多線程資源,確保各子單元的訓(xùn)練可以同時(shí)進(jìn)行。當(dāng)所有子單元的訓(xùn)練過(guò)程結(jié)束后將各子訓(xùn)練單元所獲得的神經(jīng)網(wǎng)絡(luò)權(quán)值更新量上傳到全局單元,此時(shí)全局單元根據(jù)各子單元的權(quán)值更新量來(lái)更新全局單元內(nèi)的神經(jīng)網(wǎng)絡(luò)。由于全局單元直接獲得了更有“傾向性”網(wǎng)絡(luò)參數(shù),有利于進(jìn)行網(wǎng)絡(luò)的收斂訓(xùn)練,在全局模塊網(wǎng)絡(luò)訓(xùn)練結(jié)束后,將更加優(yōu)秀的網(wǎng)絡(luò)參數(shù)下發(fā)到各子單元。此后,根據(jù)上述方式依次循環(huán)訓(xùn)練,當(dāng)訓(xùn)練次數(shù)達(dá)到設(shè)定值或者全局單元的性能指標(biāo)達(dá)到要求時(shí)停止訓(xùn)練,此時(shí)得到的神將網(wǎng)絡(luò)參數(shù)即為離線學(xué)習(xí)的最終參數(shù)。該并行訓(xùn)練方式與傳統(tǒng)串行訓(xùn)練方式相比,相同時(shí)間步長(zhǎng)內(nèi)的訓(xùn)練次數(shù)是其n倍,因此達(dá)到相同訓(xùn)練效果所用時(shí)間是其1/n,與此同時(shí),由于網(wǎng)絡(luò)隨機(jī)探索,因此一次訓(xùn)練能夠進(jìn)行更多的網(wǎng)絡(luò)探索行為,系統(tǒng)不容易收斂于局部最優(yōu),同時(shí)能夠更好地利用計(jì)算平臺(tái)的計(jì)算能力,達(dá)到更好的訓(xùn)練效果。
為了建立滿足駕駛員停車駕駛風(fēng)格的監(jiān)督網(wǎng)絡(luò),需要針對(duì)駕駛員跟車制動(dòng)行為進(jìn)行數(shù)據(jù)采集?,F(xiàn)場(chǎng)測(cè)試中通過(guò)一輛改裝的純電動(dòng)車輛進(jìn)行駕駛數(shù)據(jù)的收集,車輛上配置了高精度定位導(dǎo)航儀,用于測(cè)量主車速度和加速度值,此外,安裝了Mobieye攝像頭與德爾福雷達(dá)融合的測(cè)距系統(tǒng)用于測(cè)量與前車的相對(duì)速度與距離,通信設(shè)備用于與前車交互獲得前車加速度,改裝車輛如圖所示。
圖4 用于駕駛員駕駛數(shù)據(jù)采集的車輛平臺(tái)
挑選市中心合適的城市道路,確保司機(jī)在行程中穿過(guò)了許多交通燈控制的交叉路口,針對(duì)不同駕駛員,收集主車在跟蹤前車到達(dá)路口并完成減速停車的完整行駛數(shù)據(jù)。圖5統(tǒng)計(jì)了兩種完全不同駕駛風(fēng)格的駕駛員車輛距離與加速度圖,圖5(a)中的駕駛員跟蹤前車到達(dá)路口進(jìn)行減速停車的過(guò)程中,往往在較遠(yuǎn)的距離時(shí)便進(jìn)行剎車減速,然后緩慢減速接近停車,而圖5(b)中的駕駛員更傾向于穩(wěn)定的駕駛到路口車輛近距離處,在進(jìn)行急剎車確保車輛停止在目標(biāo)車輛的后方。
圖5 不同駕駛風(fēng)格的車輛制動(dòng)減速度圖
選用沒(méi)有監(jiān)督單元反饋的RL,SRL,以及并行SRL,分別針對(duì)圖5(a)的駕駛數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)訓(xùn)練,仿真中設(shè)置的車輛動(dòng)力學(xué)行為模型如下:
其中,s(t)表示車輛行駛的距離;a(t)表示經(jīng)由下層執(zhí)行器響應(yīng)控制輸入u(t)之后得到的車輛加速度;τ表示執(zhí)行器的延時(shí);此外,期望的車間距離d d(t)與速度v(t)成正比,即d d(t)=d0+hv(t),h為車間時(shí)距[13],可近似代表駕駛員的跟隨駕駛風(fēng)格。
設(shè)計(jì)一個(gè)包含最多1000個(gè)連續(xù)的訓(xùn)練周期試驗(yàn)。在試驗(yàn)結(jié)束時(shí)(試驗(yàn)次數(shù)小于1000次),如果主車能在期望的范圍內(nèi)與前一輛車保持穩(wěn)定狀態(tài),則認(rèn)為試驗(yàn)成功。作為對(duì)比,針對(duì)與并行SRL相同的訓(xùn)練過(guò)程,采用了沒(méi)有監(jiān)督單元的RL算法以及僅有一個(gè)單元體的SRL算法進(jìn)行相同網(wǎng)絡(luò)的訓(xùn)練。每個(gè)實(shí)驗(yàn)進(jìn)行100次實(shí)驗(yàn)。如表1所示的訓(xùn)練結(jié)果表明,使用所提出的并行SRL算法,訓(xùn)練收斂過(guò)程總是成功的,且需要的試驗(yàn)比使用SRL和RL算法少很多。
表1 訓(xùn)練結(jié)果
進(jìn)一步,為了分析并行SRL的所達(dá)到的擬人化效果,進(jìn)行下述的對(duì)比試驗(yàn):分別利用離線的監(jiān)督網(wǎng)絡(luò)以及完整并行監(jiān)督強(qiáng)化學(xué)習(xí)網(wǎng)絡(luò)并行網(wǎng)絡(luò)控制相同的車輛仿真模型,圖6展示了兩種不同的控制效果。在上述實(shí)驗(yàn)中,監(jiān)督網(wǎng)絡(luò)近似作為人類駕駛員,從實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn)并行SRL網(wǎng)絡(luò)的輸出控制效果接近于人類駕駛員,且獲得的加速度更為平滑,同時(shí)在一定消除了部分減速過(guò)程中的“顛簸”。
圖6 并行監(jiān)督強(qiáng)化學(xué)習(xí)的仿真控制效果
在本研究中,我們提出了一種基于并行SRL的框架,用于ACC/CACC系統(tǒng)的縱向車輛制動(dòng)動(dòng)力學(xué)控制。特別是通過(guò)引入真實(shí)駕駛數(shù)據(jù)搭建的監(jiān)督單元,指導(dǎo)強(qiáng)化學(xué)習(xí)過(guò)程融入駕駛員的特性。其次并行學(xué)習(xí)的機(jī)制能夠充分利用了計(jì)算資源以實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的在線與離線快速迭代,大大縮短了網(wǎng)絡(luò)訓(xùn)練時(shí)間。通過(guò)數(shù)值仿真發(fā)現(xiàn),該控制策略可以成功地模仿駕駛員的停車特征,從而提高駕駛員的舒適度并接受ACC/CACC系統(tǒng)。