李秋晨,孫鵬飛
(北京新能源汽車技術創新中心有限公司,北京 100176)
迄今為止,自主駕駛對現代交通系統具有重要意義。自動駕駛汽車自主處理具體駕駛任務,將駕駛員從繁重的工作中解放出來。諸如美國、日本等許多國家正在進行自動駕駛汽車的相關研發工作[1]。谷歌公司發布了一款自動駕駛汽車,并進行了超過161萬英里的路上測試。特斯拉在量產汽車上安裝了可供客戶使用的自動駕駛系統[2-3]。
然而,現有的自動駕駛系統仍然面臨著長期的挑戰。谷歌的自動駕駛汽車在十字路口右轉時與公共汽車相撞,近10名特斯拉用戶在各種事故中喪生。研究表明,遵守交通規則的駕駛方法應引起高度重視[4]。
汽車換道條件受駕駛員的經驗、車輛性能和周圍車輛的影響。超車步驟可分為換道動機、決策和實施三個部分。
狀態流是有限自動機理論的實施實例,所以狀態流模擬了一個事件驅動的模型。當某個條件從一個狀態變為另一個狀態時,狀態轉換就發生了。有兩種類型的事件驅動模型。一種是真值表,另一種由狀態之間的中間狀態表示。用戶還可以使用狀態流構建一些基于流的無狀態系統,這些系統沒有事件驅動[5]。
本文首先考慮將超車交通規則轉換為狀態流中的邏輯,并給出了流程圖。其次,利用公式判斷超車動機。然后利用雙目攝像頭檢測車輛與障礙物的距離。接下來,GPS設備提供位置信息進行地圖數據庫搜索,以確認道路的超車許可和限速。最后完成超車實驗,采集人類駕駛員的數據。
我們在日本進行了實驗,車輛在左側行駛。換道動機描述如下:車輛速度逼近道路最高限速,如果當前車道出現障礙物,駕駛員將在當前車速并保持與其他車輛的安全距離的前提下進行車輛換道[6]。
在以往的研究中,由于城市道路比較復雜,超車主要是在高速公路上實施[7]。自動駕駛系統在目標車道安全和車輛障礙物相對速度兩條規則約束下,根據車載傳感器數據分析換道的可能性。而人類駕駛員根據駕駛經驗對車輛的實時狀態和周圍障礙物作出判斷,以此決定是否換道[8]。在車輛換道過程中,影響駕駛員決策的主要因素是當前車道的狀態、周圍車輛的距離和相鄰車道上的車速。當前車減速或停車時,駕駛員應使用轉向燈并注意右側。如果與右側車輛的距離足夠,可以進行超車。《維也納道路交通公約》對超車規則作了詳細地規定。如果右側有障礙物,駕駛員應制動并與前車保持安全距離。然后等車并觀察右側,直到右前方和右后方可支持通過。禁止的行為如下:
(1)車輛跟車并開始超車動作;
(2)前車示警需要超車;
(3)超車影響對面車輛或時間不足。
雙目檢測的方法是通過處理兩幅圖像間的視差計算車輛與障礙物之間的距離。人眼可以根據兩眼聚焦在同一物體上的差異感知物體的距離,雙目攝像頭的原理與人眼相似。目標距離由視差決定,視差對應于物體和眼睛之間的距離。

圖1 雙目攝像頭輸出圖像
圖1 中雙目攝像頭用于測量與前車的距離。雙目攝像頭標定完成后,使用OpenCV庫中的三維測量函數輸出圖像深度圖。同時,檢測圖像中的車輛和其他障礙物。我們通過設置感興趣區域減少噪聲和干擾并獲取對應車輛。超車動機由深度圖像和檢測圖像中提取出的目標距離和速度進行判斷。同時,使用后置雙目攝像頭獲取與右后方車輛的距離。
人類駕駛技術的發展方向是檢測、決策和實施。在實踐中,影響駕駛員行為的因素很多,如周圍車輛、自車性能、道路狀況等。駕駛風格和駕駛經驗也會影響決策。由于道路狀況復雜,開發超車決策方法有重要意義[9]。
我們使用公式來判斷超車動機。測試車輛為豐田COMS電動汽車,通過CAN總線采集車速、制動傳感器、轉向角等數據,雙目攝像頭提供距離數據。結合以上信息和人類駕駛員數據,運用公式對超車動機進行分析判斷。我們使用馬可·里戈利公式[10],Vc代表自車速度,Vl代表前車速度。Drel表示與前車的距離。Drec代表駕駛員的反應距離,K是安全參數。
當Dthres>0時,車輛不可超車。當Dthres≤0時,車輛可實施超車。


圖2 超車過程示意圖
本文將安全駕駛放在首位,選擇合適的方法和邏輯實現超車。如圖3所示,首先檢測前車減速。如果沒有交通堵塞,則使用公式(1)計算Dthres,如果Dthres>0,則進行超車。然后利用Matlab連接的地圖數據庫對超車許可證進行檢查。根據GPS定位信息在地圖數據庫中查找道路超車許可和道路限速。再次,使用雙目攝像頭檢測與右側車輛的距離。根據人類駕駛員的經驗數據計算超車時間是否足夠。如果時間不夠,停止超車并再次檢查距離和時間。通過上述步驟保證汽車自動駕駛的安全性。
在雙向雙車道超車時需要使用對向車道,屬于危險和復雜的場景。雙目攝像頭檢測自車與對面車輛的距離,雙向雙車道變道試驗提供時間數據,自動駕駛系統計算并決定是否足以實現超車并發送到超車狀態流。

圖3 超車邏輯流程圖

圖5 車輛識別圖像示意圖

圖6 有障礙物超車
在MATLAB Simulink Stateflow中,流程圖部分適用于交通規則邏輯的設計和控制。通過對事件判斷的方法,自動駕駛系統可以根據來自傳感器的數據和條件來決定自車行為。Stateflow可以與Simulink連接。若全部條件滿足,自動駕駛系統將輸出超車結果。

圖4 狀態流中的邏輯
在Matlab Stateflow中,輸入為“動機”、“限速”、“禁止超車”、“倒車”、“雙向雙車道”和“對向車輛”。通過判斷我們可以得出是否超車的結果。
如圖5所示,雙目攝像頭使用像素塊匹配識別車輛。CAN總線將速度、轉向等數據發送到Simulink。在實驗中,被控制車輛停下來直到障礙物消失,然后實施超車。
自動駕駛有助于將人類駕駛員從繁重的駕駛工作中解放出來,安全性是自動駕駛中最重要的部分,交通規則是安全自動駕駛的保證。超車是自動駕駛中需要引起關注的重要問題,本文提出的關于超車的交通規則控制方法把安全放在首位。