劉春陽,王張飛,隋 新,詹 坤,郭 楠,,陳立海
(河南科技大學(xué) a.機(jī)電工程學(xué)院;b.機(jī)械裝備先進(jìn)制造河南省協(xié)同創(chuàng)新中心;c.河南省機(jī)械設(shè)計(jì)及傳動系統(tǒng)重點(diǎn)實(shí)驗(yàn)室,河南 洛陽 471003)
車道保持輔助(lane keeping assist, LKA)控制系統(tǒng)是汽車安全輔助駕駛技術(shù)研究的重要內(nèi)容,通過傳感器技術(shù)對車道線進(jìn)行檢測識別,根據(jù)LKA控制系統(tǒng)做出判斷并控制車輛方向盤轉(zhuǎn)動,從而使車輛保持在車道線內(nèi)[1-2]。文獻(xiàn)[3]采用改進(jìn)單點(diǎn)預(yù)瞄最優(yōu)曲線駕駛員模型實(shí)現(xiàn)了車道保持控制,但是算法魯棒性有待提升。文獻(xiàn)[4]提出了一種安全屏障監(jiān)控的車道自動保持控制方法,低速狀態(tài)下算法運(yùn)算效率高,但在高速條件下性能穩(wěn)定性變差。文獻(xiàn)[5]提出了基于模糊控制理論人機(jī)共駕的控制方法,雖然可以維持在車道線內(nèi)行駛,但駕駛員體驗(yàn)效果還有待改善。LKA控制系統(tǒng)在實(shí)車測試階段,需要根據(jù)不同的車速、路況等條件進(jìn)行合適的參數(shù)設(shè)置,傳統(tǒng)模式下,需要通過開發(fā)環(huán)境對控制程序進(jìn)行修改,效率低,數(shù)據(jù)可視化效果差。因此,有必要設(shè)計(jì)一套在線調(diào)試系統(tǒng),在保證駕駛安全的前提下,使車輛在行駛過程中實(shí)現(xiàn)參數(shù)的在線調(diào)試及數(shù)據(jù)的可視化監(jiān)測,幫助調(diào)試人員更好地了解車輛狀態(tài)信息,提高試驗(yàn)調(diào)試的效率和質(zhì)量。
針對上述問題,本文提出了一種基于Python語言開發(fā)的車道保持控制在線調(diào)試系統(tǒng)。利用PyQt開發(fā)系統(tǒng)界面和功能,在實(shí)車測試環(huán)境下,進(jìn)行車輛狀態(tài)和道路環(huán)境檢測、LKA系統(tǒng)參數(shù)監(jiān)控調(diào)整、數(shù)據(jù)存儲管理以及可視化,實(shí)現(xiàn)車道保持控制系統(tǒng)安全高效的在線調(diào)試。
LKA控制系統(tǒng)整體結(jié)構(gòu)框圖如圖1所示,下位機(jī)以意法半導(dǎo)體32位(STMicroeletronics 32-bit,STM32)控制器為核心[6],通過控制器局域網(wǎng)(controller area network,CAN)通信接口和各個傳感器模塊進(jìn)行數(shù)據(jù)交互,并借助按鍵、顯示器、指示燈等實(shí)現(xiàn)與駕駛員的交互操作。上位機(jī)調(diào)試軟件依托Python語言開發(fā),具有跨平臺可移植特性,主要實(shí)現(xiàn)LKA控制系統(tǒng)的狀態(tài)信息可視化監(jiān)測、控制策略參數(shù)優(yōu)化和在線調(diào)試的人機(jī)交互。
系統(tǒng)結(jié)合駕駛員模型,模擬車輛駕駛過程,設(shè)計(jì)了三段式糾偏控制策略進(jìn)行LKA控制,三段式糾偏控制策略如圖2所示。以車輛發(fā)生左偏,控制車輛往右糾正到車道線內(nèi)為例,設(shè)定LKA輔助扭矩發(fā)送標(biāo)志位為S。

第1階段,激活LKA糾正,設(shè)置S=1,線性增加LKA輔助扭矩使方向盤順時針轉(zhuǎn)動,輔助扭矩增速小于0.2 N·m/s。根據(jù)車輛類型,設(shè)定正向最大扭矩閾值(maximum torque threshold,MTT),當(dāng)LKA扭矩達(dá)到最大扭矩閾值時,維持扭矩不變。檢測方向盤轉(zhuǎn)角測量值,達(dá)到設(shè)定的閾值角度時,設(shè)置S=2,降低LKA輔助扭矩使方向盤角度維持不變。當(dāng)車身方位角逐漸減小且車輛回到車道中心線位置時,進(jìn)入第2階段,設(shè)置S=3,反向增加LKA扭矩,為增加車輛轉(zhuǎn)向時車身的穩(wěn)定性,設(shè)定反向最大扭矩閾值(reverse maximum torque threshold,RMTT)。若方向盤逆時針轉(zhuǎn)動,當(dāng)車身方位角減小為零時,設(shè)置S=4,減小作用于電動助力轉(zhuǎn)向系統(tǒng)(electric power steering,EPS)執(zhí)行機(jī)構(gòu)的輔助扭矩,進(jìn)入第3階段。若方向盤未逆時針轉(zhuǎn)動,則增大LKA輔助扭矩閾值(increase reverse torque threshold,IRTT),使方向盤逆時針轉(zhuǎn)動,當(dāng)車身擺正,方位角減小為零時,設(shè)置S=7,進(jìn)入第3階段。第3階段,根據(jù)方向盤角度值,設(shè)置S=5,正向增加LKA輔助扭矩閾值(second forward torque threshold,SFTT)使方向盤順時針轉(zhuǎn)動,當(dāng)方向盤回到零位時,設(shè)置S=6,使LKA輔助扭矩降為零,完成糾偏控制。
系統(tǒng)通過對各傳感器采集的數(shù)據(jù)進(jìn)行處理,分析車輛與左車道線距離(left-left distance,LLD)、車輛與右車道線距離(right-left distance,RLD)、車身方位角及車速等信息,判斷車輛是否發(fā)生偏離。只有當(dāng)判斷車輛處于非人為控制產(chǎn)生的偏離時,LKA控制系統(tǒng)才處于激活狀態(tài),啟動車輛偏離抑制功能。根據(jù)三段式LKA控制策略,通過對LLD、RLD、MTT、RMTT、IRTT、SFTT、車身方位角等參數(shù)進(jìn)行不斷優(yōu)化,計(jì)算LKA輔助扭矩。輸出輔助扭矩到EPS單元[7-9],調(diào)整車輛在車道線中的位置,從而維持車輛在車道線內(nèi)行駛。
圖3為下位機(jī)LKA控制系統(tǒng)軟件流程圖。如圖3a所示,各個傳感器的數(shù)據(jù)通過CAN報(bào)文方式傳遞,主程序在設(shè)定的內(nèi)存中查詢CAN報(bào)文,根據(jù)制定的通信協(xié)議對其進(jìn)行解析和處理。若發(fā)生人機(jī)駕駛沖突,則LKA控制系統(tǒng)逐漸降低扭矩,有序退出;若未發(fā)生人機(jī)沖突,系統(tǒng)進(jìn)入LKA主工作流程。如圖3b所示,當(dāng)車輛往左側(cè)發(fā)生偏離時,啟動三段式左偏右糾控制策略,通過LKA控制系統(tǒng)主程序?qū)馕龊蟮臄?shù)據(jù)進(jìn)行分析,計(jì)算出相應(yīng)的輔助扭矩,作用于EPS執(zhí)行機(jī)構(gòu)[10-18];當(dāng)車輛往右側(cè)發(fā)生偏離時,啟動三段式右偏左糾控制策略。下位機(jī)與上位機(jī)之間通過232公認(rèn)標(biāo)準(zhǔn)(recommended standard-232,RS-232)串口通信建立連接,下位機(jī)將解析后的各項(xiàng)數(shù)據(jù)發(fā)送至上位機(jī),以便通過可視化數(shù)據(jù)實(shí)時監(jiān)控車輛狀態(tài)。同時,對控制策略參數(shù)進(jìn)行優(yōu)化調(diào)整,實(shí)現(xiàn)在線調(diào)試功能。

(a) 系統(tǒng)流程圖 (b) LKA主工作流程圖
在Linux系統(tǒng)上采用Python3.6、PyQt5開發(fā)在線調(diào)試軟件,硬件系統(tǒng)采用Jetson TX2運(yùn)算平臺[19-20],便于后續(xù)進(jìn)行數(shù)據(jù)的深度挖掘。
上位機(jī)軟件功能設(shè)計(jì)結(jié)構(gòu)如圖4所示。上位機(jī)軟件功能結(jié)構(gòu)主要分為系統(tǒng)實(shí)時通信、數(shù)據(jù)可視化、參數(shù)配置和數(shù)據(jù)存儲4個模塊。系統(tǒng)實(shí)時通信模塊主要完成上位機(jī)與下位機(jī)之間的串行通信和協(xié)議解析工作;數(shù)據(jù)可視化模塊主要用于顯示當(dāng)前狀態(tài)車輛和傳感器的實(shí)時信息,包括車速、車輛到車道線距離、車身方位角、車輛是否發(fā)生偏離以及EPS傳感器等數(shù)據(jù);參數(shù)配置模塊用于實(shí)現(xiàn)LKA三段式控制策略參數(shù)向下位機(jī)進(jìn)行讀寫配置;數(shù)據(jù)存儲模塊主要用于各傳感器數(shù)據(jù)以及控制策略配置參數(shù)的存儲,便于數(shù)據(jù)記錄、查看以及調(diào)用。

圖4 上位機(jī)軟件功能設(shè)計(jì)結(jié)構(gòu)圖
上位機(jī)調(diào)試軟件基于Python編寫,采用Serial串口控制模塊進(jìn)行串口通信,支持跨平臺調(diào)用[21]。上位機(jī)數(shù)據(jù)刷新頻率為20 ms,可滿足實(shí)時性要求。下位機(jī)與上位機(jī)之間采用ASCII碼字符的形式進(jìn)行數(shù)據(jù)接收和發(fā)送,定義比特率為115 200 bit/s。考慮到串口通信的利用率和系統(tǒng)的容錯率,定義參數(shù)隊(duì)列。將不同功能的參數(shù)放入?yún)?shù)隊(duì)列,將刷新頻率相近的參數(shù)放在同一個參數(shù)隊(duì)列中發(fā)送,可有效減少節(jié)點(diǎn)信息發(fā)送次數(shù),提高串口的利用率。根據(jù)傳感器工作特性,數(shù)據(jù)發(fā)送周期分別為20 ms和80 ms。在20 ms周期內(nèi),定義發(fā)送報(bào)文為:方向盤扭矩、方向盤角度、車身方位角、輔助扭矩;在80 ms周期內(nèi),定義發(fā)送報(bào)文為:行駛速度、三段式標(biāo)志位、LKA開關(guān)、左車道線距離、右車道線距離、左車道線類型、右車道線類型、左車道線曲率、右車道線曲率、左車道線置信度、右車道線置信度。
為了便于數(shù)據(jù)觀察和實(shí)現(xiàn)更好的人機(jī)交互功能,人機(jī)交互界面將上位機(jī)功能結(jié)構(gòu)中的4個模塊通過傳感器數(shù)據(jù)監(jiān)控、數(shù)據(jù)圖形化、汽車狀態(tài)監(jiān)控、參數(shù)配置和用戶設(shè)置5個區(qū)域進(jìn)行顯示。
傳感器數(shù)據(jù)監(jiān)控區(qū)域主要包括車輛當(dāng)前位置、車道線識別、LKA輔助扭矩等數(shù)據(jù);數(shù)據(jù)圖形化區(qū)域主要將車輛與左右車道線的距離、車身方位角、方向盤轉(zhuǎn)角和LKA輔助扭矩進(jìn)行數(shù)據(jù)曲線顯示,便于調(diào)試人員進(jìn)行車輛前后狀態(tài)對比分析;汽車狀態(tài)監(jiān)控區(qū)域用于實(shí)時更新LKA控制系統(tǒng)狀態(tài)以及車輛運(yùn)行狀態(tài),如LKA功能是否開啟、車輛是否偏離車道等信息,并通過外置聲卡進(jìn)行聲音輸出,對駕駛員進(jìn)行提醒;參數(shù)配置區(qū)域?qū)崿F(xiàn)對三段式控制策略參數(shù)的讀取和寫入,便于調(diào)試人員對LKA控制策略參數(shù)進(jìn)行在線優(yōu)化;用戶設(shè)置區(qū)域主要用于串口的打開和關(guān)閉、數(shù)據(jù)的存儲等。
選用的試驗(yàn)車為江淮輕型卡車,圖5a為試驗(yàn)車外部視圖。所用視覺傳感器為Mobileye-E630傳感器,粘貼在前車窗的中心,經(jīng)過校準(zhǔn)后可以準(zhǔn)確識別和測定車道線信息。試驗(yàn)過程中,車輛實(shí)現(xiàn)糾偏控制轉(zhuǎn)向,如圖5b所示,圖5b中①和②分別為開發(fā)的LKA下位機(jī)控制器和上位機(jī)調(diào)試系統(tǒng)。

因試驗(yàn)場地限制,試驗(yàn)中設(shè)定車速為35~95 km/h,試驗(yàn)車進(jìn)行多組道路測試,根據(jù)不同車速設(shè)置對應(yīng)的參數(shù),可以實(shí)現(xiàn)較好的糾偏效果。不同車速狀態(tài)下車輛發(fā)生左偏和右偏時的糾正參數(shù)設(shè)置分別如表1和表2所示。試驗(yàn)中設(shè)置最低車速為35 km/h,將車速以20 km/h進(jìn)行區(qū)間劃分。當(dāng)車速增加時,設(shè)定車輛與車道線距離閾值逐漸增大,為后續(xù)糾偏過程預(yù)留足夠的響應(yīng)時間,其中,設(shè)定車輛與左車道線距離閾值為-3.3~-3.2 m,設(shè)定車輛與右車道線距離閾值為3.1~3.2 m。同時,設(shè)定車身方位角和輔助扭矩閾值逐漸減小,避免車輛在進(jìn)行糾偏動作時出現(xiàn)較大幅度擺動,設(shè)定車身方位角為-0.003~0.003 rad,設(shè)定輔助扭矩閾值為-1.3~1.5 N·m。

表1 不同車速狀態(tài)下車輛左偏糾正參數(shù)

表2 不同車速狀態(tài)下車輛右偏糾正參數(shù)
圖6為車速85~90 km/h時實(shí)車試驗(yàn)數(shù)據(jù)曲線圖。圖6a為車輛與左右車道線的距離,用于監(jiān)測當(dāng)前時刻車輛在車道線內(nèi)的位置;圖6b為LKA輔助扭矩,輔助扭矩線性變化,作用于EPS單元,控制車輛方向盤轉(zhuǎn)動;圖6c為車身方位角,用于判斷車輛與車道線之間的角度;圖6d為方向盤角度,通過對方向盤角度進(jìn)行微調(diào),從而維持車輛在車道線內(nèi)穩(wěn)定行駛。圖6中,A、B、C和A′、B′、C′分別表示車輛往左側(cè)和往右側(cè)偏離車道線,為三段式控制策略進(jìn)行第1、2、3階段糾偏控制起點(diǎn);D和D′分別表示完成左側(cè)和右側(cè)偏離的糾偏控制。


當(dāng)車輛往左側(cè)發(fā)生偏離,同時滿足LKA控制系統(tǒng)激活條件時,啟動三段式糾偏控制模式。第1階段,給EPS執(zhí)行機(jī)構(gòu)施加輔助扭矩進(jìn)行糾正,如圖6b中AB段所示,控制器輸出的輔助扭矩線性增加,使得車輛方向盤轉(zhuǎn)角向右側(cè)轉(zhuǎn)動增加,并帶動車輛車身方位角減小,糾正車輛的運(yùn)動偏離趨勢,設(shè)置輔助扭矩閾值為-1.3~1.5 N·m。當(dāng)扭矩達(dá)到最大閾值時,扭矩進(jìn)入維持狀態(tài),當(dāng)方向盤轉(zhuǎn)角達(dá)到設(shè)定值時,扭矩下降到維持方向盤轉(zhuǎn)角的臨界值,確保車輛能夠連續(xù)穩(wěn)定進(jìn)行糾正。第2階段,使車身方位角擺正,如圖6c中BC段所示,當(dāng)車身已糾正回到車道線內(nèi),扭矩開始下降,并反方向驅(qū)動方向盤回轉(zhuǎn),帶動車身方位角逐漸減小,直到車輛與車道線趨于平行,試驗(yàn)過程中,車身方位角穩(wěn)定維持在-0.02~0.02 rad。第3階段,將方向盤進(jìn)行回正,如圖6d中CD段所示,微調(diào)輔助扭矩的輸出,控制車輛方向盤轉(zhuǎn)角逐漸降為零,試驗(yàn)過程中,方向盤轉(zhuǎn)角為-0.30~0.33 rad。當(dāng)方向盤轉(zhuǎn)角回到零位,完成本輪糾偏控制,輔助扭矩降為零。車輛在完成第1次糾偏動作后,受道路環(huán)境因素影響,車輛往右側(cè)發(fā)生偏離,同時滿足LKA控制系統(tǒng)激活條件,再次啟動三段式糾偏控制。控制過程與第1次糾偏控制相同,采用三段式糾偏控制策略,將車輛糾正到車道線內(nèi)。經(jīng)過上述兩次糾偏控制后,車輛沿車道線中心位置行駛,如圖6a中D′點(diǎn)以后所示,車輛與左右車道線距離基本相同,車身與車道線平行,同時車身方位角逐漸降為零,如圖6c中D′點(diǎn)以后所示,車輛穩(wěn)定在車道線內(nèi)行駛。若經(jīng)過上述兩次糾偏控制,車輛再次偏離車道線,此時系統(tǒng)將再次啟動糾偏策略進(jìn)行糾偏控制,直至實(shí)現(xiàn)車輛在車道線內(nèi)穩(wěn)定行駛。

圖7 車道保持控制算法持續(xù)作用控制效果
根據(jù)通信協(xié)議分別對視覺傳感器和EPS傳感器進(jìn)行報(bào)文解析,車輛與車道線距離以及車身方位角信息刷新頻率為0.1 s,EPS單元扭矩刷新頻率為20 ms。試驗(yàn)中設(shè)置控制系統(tǒng)數(shù)據(jù)傳輸刷新頻率為20 ms,能夠滿足傳感器報(bào)文數(shù)據(jù)處理的實(shí)時性。由于三段式糾偏控制方法以車輛與車道線距離以及車身方位角信息作為車輛偏離判斷條件,因此,啟動三段式糾偏控制后,系統(tǒng)監(jiān)測車輛跑偏的響應(yīng)時間為0.1 s,進(jìn)行扭矩等控制參數(shù)更新的時間間隔為20 ms。
試驗(yàn)車輛的車身寬度為1.9 m,視覺傳感器粘貼在前車窗的中心,所以視覺傳感器與車輛左右兩側(cè)距離約為1 m,即視覺傳感器獲取的距離數(shù)據(jù)小于1 m時,表示車輛超出車道線。圖7為車道保持控制算法持續(xù)作用控制效果圖。從圖7中可以看出:使用三段式糾偏控制方法,車輛能夠穩(wěn)定在車道線內(nèi)行駛,并且穩(wěn)定運(yùn)行時間超過40 s。
(1)基于可跨平臺移植的Python語言和PyQt工具包,設(shè)計(jì)了LKA控制在線調(diào)試系統(tǒng)。實(shí)現(xiàn)了與車道保持控制下位機(jī)通信、調(diào)試過程監(jiān)控?cái)?shù)據(jù)的可視化、控制策略參數(shù)在線調(diào)試、人機(jī)交互等功能。
(2)設(shè)計(jì)了三段式車道保持控制策略,分析了各段的控制過程和關(guān)鍵參數(shù),結(jié)合開發(fā)的上位機(jī)調(diào)試系統(tǒng),可以進(jìn)行參數(shù)的在線優(yōu)化調(diào)試。開發(fā)了基于STM32的LKA下位機(jī)控制器,通過CAN通信獲取各類狀態(tài)信息,并實(shí)現(xiàn)了LKA的底層驅(qū)動控制。
(3)通過不同車速下規(guī)則化道路上的實(shí)車測試,驗(yàn)證了三段式控制策略的有效性,并優(yōu)化了不同車速下的控制參數(shù)。系統(tǒng)監(jiān)測車輛跑偏的響應(yīng)時間為0.1 s,糾正后能保持車道線內(nèi)穩(wěn)定行駛達(dá)40 s以上,滿足了LKA控制系統(tǒng)在線調(diào)試的需求。