自動(dòng)駕駛是目前比較熱門(mén)的話題,包含的技術(shù)領(lǐng)域五花八門(mén),例如:雷達(dá)、攝像頭、汽車電控、激光雷達(dá)、物體識(shí)別、高精度地圖、導(dǎo)航技術(shù)等等。小編特邀 MathWorks 行業(yè)技術(shù)專家來(lái)聊一聊 MathWorks 這幾年的自動(dòng)駕駛之路,分享最新的技術(shù)投入和應(yīng)用亮點(diǎn)。
◆◆◆◆
MathWorks 對(duì)自動(dòng)駕駛技術(shù)的投入可以總結(jié)為以下幾個(gè)階段:
2015:SCANIA AEB 系統(tǒng)
2015 年,瑞典著名的重卡生產(chǎn)商 SCANIA 發(fā)布了用 MATLAB/Simulink 設(shè)計(jì)的 AEB(自動(dòng)緊急剎車)系統(tǒng),看動(dòng)畫(huà):
在這個(gè)案例中,SCANIA 利用 MATLAB/Simulink 做了兩件大事:
一是設(shè)計(jì)了數(shù)據(jù)融合(Sensor Fusion)系統(tǒng)。AEB 把攝像頭和雷達(dá)采集的數(shù)據(jù)進(jìn)行整合,同時(shí)使用車輛前部安裝的雷達(dá)和攝像頭來(lái)掃描前方區(qū)域的物體。系統(tǒng)利用每個(gè)傳感器的獨(dú)特優(yōu)勢(shì)獲取更精確的環(huán)境模型。
雷達(dá)的優(yōu)勢(shì)在于確定物體的距離、相對(duì)速度,但在確定物體的形狀或橫向位置方面較弱。攝像頭主要優(yōu)勢(shì)在于辨識(shí)物體類別,主要缺點(diǎn)在于在黑暗環(huán)境下難以工作,以及對(duì)速度估計(jì)不準(zhǔn)確。SCANIA 構(gòu)建了一個(gè)傳感器融合系統(tǒng),可將兩個(gè)傳感器中的數(shù)據(jù)進(jìn)行匹配合并。傳感器融合系統(tǒng)一旦在主道上發(fā)現(xiàn)物體,會(huì)將該物體的位置和預(yù)計(jì)路徑傳遞給 AEB,AEB 將確定何時(shí)警告駕駛員或采取制動(dòng)措施。
二是設(shè)計(jì)了整個(gè)回放測(cè)試系統(tǒng)。SCANIA 的車隊(duì)在超過(guò) 150 萬(wàn)公里的駕駛里程中,所記錄的實(shí)際交通數(shù)據(jù)超過(guò)了 80TB。這 150 萬(wàn)公里的實(shí)測(cè)數(shù)據(jù),為每次更新發(fā)布的新功能提供了海量測(cè)試場(chǎng)景和數(shù)據(jù)。
為了進(jìn)一步提高仿真運(yùn)行速度,研發(fā)團(tuán)隊(duì)編寫(xiě)了 MATLAB 腳本,在服務(wù)器集群進(jìn)行多核并行計(jì)算和仿真,最多同時(shí)可以運(yùn)行300個(gè)仿真實(shí)例。通過(guò)這一方法,將仿真 150 萬(wàn)公里交通數(shù)據(jù)的時(shí)間減少到 12 小時(shí)。在仿真中發(fā)現(xiàn)值得關(guān)注的新場(chǎng)景時(shí),會(huì)在 Simulink 中重新運(yùn)行仿真并進(jìn)行深度分析。
2016:傳感器融合示例
坦率地講,SCANIA 的這個(gè)案例激發(fā)了 MathWorks 的開(kāi)發(fā)靈感。2016 年在波士頓的年度大會(huì)上,來(lái)自美國(guó)底特律的應(yīng)用工程師展示了他用 MATLAB 腳本開(kāi)發(fā)的一個(gè)前車碰撞預(yù)警(FCW)的演示案例。這個(gè)演示案例就是后來(lái) ADST(自動(dòng)駕駛工具箱)的原型。這個(gè)原型中包含的 2 個(gè)關(guān)鍵點(diǎn):可視化、數(shù)據(jù)融合,都成了 ADST 的產(chǎn)品亮點(diǎn)。
還有一家公司——德國(guó)大陸集團(tuán)(Continental)——用 MATLAB 也是爐火純青。MATLAB 既然是好工具,我就用工具來(lái)代替大量人工重復(fù)勞動(dòng)。2014 年,Continental 在研發(fā)一款自動(dòng)駕駛攝像頭的時(shí)候,使用 MATLAB 來(lái)自動(dòng)化標(biāo)注物體和道路標(biāo)志,這些自動(dòng)化的方法顯著地提高了攝像頭的機(jī)器學(xué)習(xí)效率。這一靈感也最終由 MathWorks 工程師實(shí)現(xiàn)在 ADST 的功能中:GroundTruth Labelling (真值標(biāo)定)。
R2017a:ADST - 自動(dòng)駕駛系統(tǒng)工具箱
2017 年 3 月,MathWorks 在 MATLAB R2017a 發(fā)布了 ADST(自動(dòng)駕駛系統(tǒng)工具箱),包括 3 個(gè)核心功能點(diǎn):
-
可視化
-
數(shù)據(jù)融合
-
真值標(biāo)定
行業(yè)技術(shù)專家強(qiáng)調(diào):可視化是數(shù)據(jù)分析的第一步。
大家先一起看看汽車?yán)走_(dá)和攝像頭的數(shù)據(jù)長(zhǎng)什么樣。以雷達(dá)為例:下面兩個(gè)數(shù)據(jù)表格顯示了在什么時(shí)間戳,有多少個(gè)識(shí)別物體,物體的方位、速度等數(shù)據(jù)信息。
讓我們看一段 MATLAB 處理數(shù)據(jù)并實(shí)現(xiàn)可視化的動(dòng)畫(huà):
通過(guò) MATLAB 自帶的 API 和函數(shù),用戶可以比較容易地將雷達(dá)和攝像頭的傳感器數(shù)據(jù),進(jìn)行人眼可視化。上圖左邊是原始的攝像頭畫(huà)面,右邊藍(lán)色的三角代表攝像頭識(shí)別的目標(biāo),紅顏色代表雷達(dá)識(shí)別的目標(biāo)。通過(guò)可視化,人眼可以看到雷達(dá)和攝像頭的信號(hào)有一定的偏差,那么自然就會(huì)問(wèn)另外一個(gè)問(wèn)題,車載電子設(shè)備到底以哪個(gè)為準(zhǔn)呢?這就自然引入 ADST 的另外一個(gè)功能 – Sensor Fusion(傳感器融合)。
理解傳感器融合有幾個(gè)關(guān)鍵詞:多目標(biāo)追蹤(Multi-ObjectTracking),卡爾曼濾波器(KalmanFilter)和代價(jià)矩陣(CostMatrix)。
上圖簡(jiǎn)單介紹了一個(gè)傳感器融合的過(guò)程——從傳感器的捕獲(detection)到最終被確認(rèn)為追蹤物體(track):
-
物體被傳感器(視覺(jué)、雷達(dá)等)捕獲,形成 detection
-
Track manager 先為該detection分配一個(gè) track
-
Tracking filter 通過(guò)卡爾曼濾波器不斷估計(jì) detection 的 track
-
Track manger 通過(guò)代價(jià)矩陣將 detection 分配更新到 track
-
目標(biāo) detection 消失后,track 被刪除
MATLAB 自帶的多目標(biāo)追蹤,可以追蹤最多 120 個(gè)運(yùn)動(dòng)中的目標(biāo)。每個(gè)目標(biāo)的最終的 track 可能既不是雷達(dá)的位置,也不是視覺(jué)的位置,而是最終 track 算出來(lái)的位置。下圖展示了代價(jià)矩陣的示意圖,將 detection 分配到 track 的過(guò)程用到了 Hungarian Assignment Algorithm。
MATLAB 自帶了前向碰撞告警(FCW)例子可以幫助用戶理解傳感器融合的使用。
上圖為 FCW 的數(shù)據(jù)融合處理流程,基本的邏輯是將雷達(dá)雜波信號(hào)濾除后,進(jìn)行多目標(biāo)的追蹤和更新,在識(shí)別到最關(guān)鍵目標(biāo)(Most Important Object)后,根據(jù)前向距離進(jìn)行剎車告警。
讓我們看看該樣例的運(yùn)行動(dòng)畫(huà):
藍(lán)色三角形的視覺(jué)識(shí)別目標(biāo)和紅色圓形的雷達(dá)識(shí)別目標(biāo),在消除了雷達(dá)雜波(大部分為只有紅色圓型的目標(biāo),以及在其他車道的目標(biāo))后,通過(guò)數(shù)據(jù)融合形成目標(biāo)追蹤。看到的灰色方框即為運(yùn)動(dòng)物體的追蹤。
上圖左邊的視頻錄像是一個(gè)實(shí)際路況的采集視頻,樣例還提供了相應(yīng)的視覺(jué)和雷達(dá)的object list。有人會(huì)問(wèn):在數(shù)據(jù)融合設(shè)計(jì)早期的時(shí)候,我只有一個(gè) idea,還沒(méi)有具體的 object list ,那如何才能驗(yàn)證我的算法呢?MATLAB 還提供了另外一個(gè) Sensor Fusion 的樣例,看動(dòng)圖:
這個(gè)樣例和上面有實(shí)際環(huán)境的樣例有幾點(diǎn)不同:
-
車輛和道路都是可以像搭積木一樣,通過(guò) MATLAB 腳本快速搭建測(cè)試場(chǎng)景
-
在這個(gè)模擬環(huán)境中可以模擬雷達(dá)(radar Detection Generator)和視覺(jué)(vision Detection Generator)的傳感器。
好處不言而喻:快速驗(yàn)證idea。
隨著自動(dòng)駕駛工具箱發(fā)布的,還有一個(gè)廣受歡迎的功能——真值標(biāo)定(ground truth labelling)。
首先給出定義:在機(jī)器學(xué)習(xí)中 ground truth 表示有監(jiān)督學(xué)習(xí)的訓(xùn)練集的分類準(zhǔn)確性,用于證明或者推翻某個(gè)假設(shè)。很多視覺(jué)識(shí)別算法是用的機(jī)器學(xué)習(xí)。機(jī)器學(xué)習(xí)的認(rèn)知基礎(chǔ)就是真值。真值標(biāo)定的功能有兩點(diǎn):
-
采用大量真值來(lái)訓(xùn)練機(jī)器學(xué)習(xí)算法
-
利用真值來(lái)檢驗(yàn)現(xiàn)有的識(shí)別算法
真值標(biāo)定的輸入一般是視頻文件。真值標(biāo)定既可以手動(dòng)一幀一幀地標(biāo)定,也可以半自動(dòng)化標(biāo)定后再手工修正,最終可以將結(jié)果保存成真值數(shù)據(jù)庫(kù)。讓我們看一段半自動(dòng)標(biāo)定的動(dòng)畫(huà):
最終標(biāo)定出來(lái)的真值數(shù)據(jù)如下圖所示:就像電影的字幕類似,幾分幾秒,在畫(huà)面的什么方位,是什么物體:
ADST 在發(fā)布后,受到汽車電控工程師和自動(dòng)駕駛研發(fā)人員的廣泛使用。MathWorks 工程師在和他們交流后發(fā)現(xiàn),他們有一個(gè)共同的興趣點(diǎn):ADST 的功能大部分集中于前端(可視化、真值標(biāo)定、傳感器融合),有沒(méi)有將前端的識(shí)別和融合結(jié)果和后端的汽車電控結(jié)合起來(lái)的案例?其實(shí)這也反映了市場(chǎng)熱點(diǎn)從 ADAS(高級(jí)駕駛輔助系統(tǒng))向 AD(自動(dòng)駕駛)過(guò)渡。ADAS 側(cè)重于告警,而 AD 側(cè)重于控制。
R2017b:閉環(huán)控制示例
隨著MATLAB R2017b的發(fā)布,MathWorks推出了一個(gè)自適應(yīng)巡航(ACC)的案例,包括:
-
Simulink 模型:包含傳感器融合、傳感器模型、可視化、控制器模型、車輛模型、模擬道路場(chǎng)景和環(huán)境模型
-
控制器引入了兩種參考設(shè)計(jì):PID 和 MPC(Model Predictive Control)
-
代碼自動(dòng)生成
讓我們看一下運(yùn)行的動(dòng)畫(huà):由于紫車車輛強(qiáng)行并線到藍(lán)色車輛(被控車輛),在 ACC 的作用下藍(lán)色車輛的速度下降直到紫色車輛離開(kāi)本車道。
這里用到的速度控制是經(jīng)典的 PID 控制。眾所周知,PID 的好處是簡(jiǎn)單、易懂、占用資源少,但是在自動(dòng)駕駛的復(fù)雜環(huán)境下,想要對(duì)車輛進(jìn)行精準(zhǔn)控制,可以考慮更加復(fù)雜的先進(jìn)控制方法,比如 MPC(ModelPredictive Control)。從另外一個(gè)角度來(lái)看,MPC 過(guò)去沒(méi)有流行的原因之一就是受限于硬件資源和成本。目前,在自動(dòng)駕駛技術(shù)和需求的推動(dòng)下,汽車控制器必須變得越來(lái)越強(qiáng)大,使得 MPC 變得可能。下圖給出了在 ACC 的環(huán)境下,使用 PID 和 MPC 的對(duì)比:MPC 比 PID 控制的更加精準(zhǔn)、快速。
有了 ACC 這個(gè)例子,用戶可以在 MATLAB/Simulink 統(tǒng)一平臺(tái)下做如下事情:傳感器融合、傳感器模型、可視化、控制器設(shè)計(jì)和代碼生成、車輛模型、模擬道路場(chǎng)景和環(huán)境模型。但在實(shí)踐中發(fā)現(xiàn),用戶對(duì)模擬道路場(chǎng)景和環(huán)境模型要求其實(shí)很高:
-
MATLAB 雖然可以創(chuàng)建道路場(chǎng)景,但是必須用腳本編程,比較麻煩。
-
更希望看到虛擬現(xiàn)實(shí)場(chǎng)景。
R2018a:unreal 集成
2018 年 3 月,針對(duì)第一點(diǎn),MATLAB R2018a 推出了 Driving Scenario Designer的 App,直接可以畫(huà)道路、車輛和簡(jiǎn)單傳感器模型:
針對(duì)第二點(diǎn)需求,MATLAB R2018a 推出的 Vehicle Dynamics Blockset 可以和 unreal 游戲引擎集成,并自帶了一個(gè)免費(fèi)版的 unreal。當(dāng)然 Vehicle Dynamics Blockset 主要功能是提供了車輛橫向動(dòng)力學(xué)的模塊,免費(fèi)版 unreal 只是用于 3D 顯示。相信對(duì)于自動(dòng)駕駛控制器設(shè)計(jì)人員,在設(shè)計(jì)例如 ACC(自適應(yīng)巡航),LKA(自動(dòng)車道保持)等自動(dòng)駕駛功能時(shí)候,Vehicle Dynamics Blockset 一定能發(fā)揮強(qiáng)大的作用。
◆◆◆◆
讓我們?cè)倩仡^看看 MATLAB的自動(dòng)駕駛之路:從用戶案例中的啟發(fā),到推出自動(dòng)駕駛工具箱;通過(guò)和用戶的溝通逐步加入的車輛控制部分和 unreal 集成。
當(dāng)然,自動(dòng)駕駛永遠(yuǎn)在路上,MATLAB/Simulink 也在激光雷達(dá)點(diǎn)云處理、駕駛路徑規(guī)劃和跟隨等方面持續(xù)推出更多的功能和應(yīng)用案例,例如:
實(shí)時(shí)車輛數(shù)據(jù)融合和顯示。通過(guò)和用戶的深入交流,技術(shù)專家了解到用戶的興趣點(diǎn)多集中于:車輛上安裝了攝像頭和雷達(dá)后,在實(shí)時(shí)運(yùn)行的同時(shí),如何實(shí)現(xiàn)數(shù)據(jù)融合并顯示結(jié)果?
MathWorks工程師通過(guò) Automated Driving System Toolbox、Vehicle Network Toolbox、Instrument Control Toolbox、MATLAB Coder、Embedded Coder 等工具箱,已經(jīng)實(shí)現(xiàn)在車輛上做實(shí)時(shí)駕駛的數(shù)據(jù)融合和數(shù)據(jù)顯示:
-
matlab
+關(guān)注
關(guān)注
189文章
2999瀏覽量
233494 -
Simulink
+關(guān)注
關(guān)注
22文章
541瀏覽量
63735 -
自動(dòng)駕駛
+關(guān)注
關(guān)注
788文章
14245瀏覽量
169934
原文標(biāo)題:MATLAB 的自動(dòng)駕駛之路
文章出處:【微信號(hào):IV_Technology,微信公眾號(hào):智車科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何利用matlab把simulink轉(zhuǎn)化為c語(yǔ)言
在matlab的simulink仿真
如何利用MATLAB和Simulink去進(jìn)行S模式檢測(cè)和解碼?
如何去搭建Matlab/Simulink?
利用Matlab的simulink搭建模型生成C代碼
利用Matlab的simulink搭建模型生成C代碼
利用MATLAB的simulink建立仿真模型
如何利用MATLAB的simulink建立仿真模型呢
Matlab/simulink在FPGA設(shè)計(jì)中的應(yīng)用
通信電子電路Matlab/Simulink仿真
MathWorks發(fā)布在MATLAB和Simulink中提供
如何使用Matlab和Simulink進(jìn)行調(diào)制解調(diào)的分析

在Simulink中編輯MATLAB代碼的資料說(shuō)明

評(píng)論