李秋晨,孫鵬飛
(北京新能源汽車技術(shù)創(chuàng)新中心有限公司,北京 100176)
迄今為止,自主駕駛對現(xiàn)代交通系統(tǒng)具有重要意義。自動駕駛汽車自主處理具體駕駛?cè)蝿?wù),將駕駛員從繁重的工作中解放出來。諸如美國、日本等許多國家正在進(jìn)行自動駕駛汽車的相關(guān)研發(fā)工作[1]。谷歌公司發(fā)布了一款自動駕駛汽車,并進(jìn)行了超過161萬英里的路上測試。特斯拉在量產(chǎn)汽車上安裝了可供客戶使用的自動駕駛系統(tǒng)[2-3]。
然而,現(xiàn)有的自動駕駛系統(tǒng)仍然面臨著長期的挑戰(zhàn)。谷歌的自動駕駛汽車在十字路口右轉(zhuǎn)時與公共汽車相撞,近10名特斯拉用戶在各種事故中喪生。研究表明,遵守交通規(guī)則的駕駛方法應(yīng)引起高度重視[4]。
汽車換道條件受駕駛員的經(jīng)驗、車輛性能和周圍車輛的影響。超車步驟可分為換道動機(jī)、決策和實施三個部分。
狀態(tài)流是有限自動機(jī)理論的實施實例,所以狀態(tài)流模擬了一個事件驅(qū)動的模型。當(dāng)某個條件從一個狀態(tài)變?yōu)榱硪粋€狀態(tài)時,狀態(tài)轉(zhuǎn)換就發(fā)生了。有兩種類型的事件驅(qū)動模型。一種是真值表,另一種由狀態(tài)之間的中間狀態(tài)表示。用戶還可以使用狀態(tài)流構(gòu)建一些基于流的無狀態(tài)系統(tǒng),這些系統(tǒng)沒有事件驅(qū)動[5]。
本文首先考慮將超車交通規(guī)則轉(zhuǎn)換為狀態(tài)流中的邏輯,并給出了流程圖。其次,利用公式判斷超車動機(jī)。然后利用雙目攝像頭檢測車輛與障礙物的距離。接下來,GPS設(shè)備提供位置信息進(jìn)行地圖數(shù)據(jù)庫搜索,以確認(rèn)道路的超車許可和限速。最后完成超車實驗,采集人類駕駛員的數(shù)據(jù)。
我們在日本進(jìn)行了實驗,車輛在左側(cè)行駛。換道動機(jī)描述如下:車輛速度逼近道路最高限速,如果當(dāng)前車道出現(xiàn)障礙物,駕駛員將在當(dāng)前車速并保持與其他車輛的安全距離的前提下進(jìn)行車輛換道[6]。
在以往的研究中,由于城市道路比較復(fù)雜,超車主要是在高速公路上實施[7]。自動駕駛系統(tǒng)在目標(biāo)車道安全和車輛障礙物相對速度兩條規(guī)則約束下,根據(jù)車載傳感器數(shù)據(jù)分析換道的可能性。而人類駕駛員根據(jù)駕駛經(jīng)驗對車輛的實時狀態(tài)和周圍障礙物作出判斷,以此決定是否換道[8]。在車輛換道過程中,影響駕駛員決策的主要因素是當(dāng)前車道的狀態(tài)、周圍車輛的距離和相鄰車道上的車速。當(dāng)前車減速或停車時,駕駛員應(yīng)使用轉(zhuǎn)向燈并注意右側(cè)。如果與右側(cè)車輛的距離足夠,可以進(jìn)行超車?!毒S也納道路交通公約》對超車規(guī)則作了詳細(xì)地規(guī)定。如果右側(cè)有障礙物,駕駛員應(yīng)制動并與前車保持安全距離。然后等車并觀察右側(cè),直到右前方和右后方可支持通過。禁止的行為如下:
(1)車輛跟車并開始超車動作;
(2)前車示警需要超車;
(3)超車影響對面車輛或時間不足。
雙目檢測的方法是通過處理兩幅圖像間的視差計算車輛與障礙物之間的距離。人眼可以根據(jù)兩眼聚焦在同一物體上的差異感知物體的距離,雙目攝像頭的原理與人眼相似。目標(biāo)距離由視差決定,視差對應(yīng)于物體和眼睛之間的距離。
圖1 雙目攝像頭輸出圖像
圖1 中雙目攝像頭用于測量與前車的距離。雙目攝像頭標(biāo)定完成后,使用OpenCV庫中的三維測量函數(shù)輸出圖像深度圖。同時,檢測圖像中的車輛和其他障礙物。我們通過設(shè)置感興趣區(qū)域減少噪聲和干擾并獲取對應(yīng)車輛。超車動機(jī)由深度圖像和檢測圖像中提取出的目標(biāo)距離和速度進(jìn)行判斷。同時,使用后置雙目攝像頭獲取與右后方車輛的距離。
人類駕駛技術(shù)的發(fā)展方向是檢測、決策和實施。在實踐中,影響駕駛員行為的因素很多,如周圍車輛、自車性能、道路狀況等。駕駛風(fēng)格和駕駛經(jīng)驗也會影響決策。由于道路狀況復(fù)雜,開發(fā)超車決策方法有重要意義[9]。
我們使用公式來判斷超車動機(jī)。測試車輛為豐田COMS電動汽車,通過CAN總線采集車速、制動傳感器、轉(zhuǎn)向角等數(shù)據(jù),雙目攝像頭提供距離數(shù)據(jù)。結(jié)合以上信息和人類駕駛員數(shù)據(jù),運用公式對超車動機(jī)進(jìn)行分析判斷。我們使用馬可·里戈利公式[10],Vc代表自車速度,Vl代表前車速度。Drel表示與前車的距離。Drec代表駕駛員的反應(yīng)距離,K是安全參數(shù)。
當(dāng)Dthres>0時,車輛不可超車。當(dāng)Dthres≤0時,車輛可實施超車。
圖2 超車過程示意圖
本文將安全駕駛放在首位,選擇合適的方法和邏輯實現(xiàn)超車。如圖3所示,首先檢測前車減速。如果沒有交通堵塞,則使用公式(1)計算Dthres,如果Dthres>0,則進(jìn)行超車。然后利用Matlab連接的地圖數(shù)據(jù)庫對超車許可證進(jìn)行檢查。根據(jù)GPS定位信息在地圖數(shù)據(jù)庫中查找道路超車許可和道路限速。再次,使用雙目攝像頭檢測與右側(cè)車輛的距離。根據(jù)人類駕駛員的經(jīng)驗數(shù)據(jù)計算超車時間是否足夠。如果時間不夠,停止超車并再次檢查距離和時間。通過上述步驟保證汽車自動駕駛的安全性。
在雙向雙車道超車時需要使用對向車道,屬于危險和復(fù)雜的場景。雙目攝像頭檢測自車與對面車輛的距離,雙向雙車道變道試驗提供時間數(shù)據(jù),自動駕駛系統(tǒng)計算并決定是否足以實現(xiàn)超車并發(fā)送到超車狀態(tài)流。
圖3 超車邏輯流程圖
圖5 車輛識別圖像示意圖
圖6 有障礙物超車
在MATLAB Simulink Stateflow中,流程圖部分適用于交通規(guī)則邏輯的設(shè)計和控制。通過對事件判斷的方法,自動駕駛系統(tǒng)可以根據(jù)來自傳感器的數(shù)據(jù)和條件來決定自車行為。Stateflow可以與Simulink連接。若全部條件滿足,自動駕駛系統(tǒng)將輸出超車結(jié)果。
圖4 狀態(tài)流中的邏輯
在Matlab Stateflow中,輸入為“動機(jī)”、“限速”、“禁止超車”、“倒車”、“雙向雙車道”和“對向車輛”。通過判斷我們可以得出是否超車的結(jié)果。
如圖5所示,雙目攝像頭使用像素塊匹配識別車輛。CAN總線將速度、轉(zhuǎn)向等數(shù)據(jù)發(fā)送到Simulink。在實驗中,被控制車輛停下來直到障礙物消失,然后實施超車。
自動駕駛有助于將人類駕駛員從繁重的駕駛工作中解放出來,安全性是自動駕駛中最重要的部分,交通規(guī)則是安全自動駕駛的保證。超車是自動駕駛中需要引起關(guān)注的重要問題,本文提出的關(guān)于超車的交通規(guī)則控制方法把安全放在首位。