0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用MATLAB/Simulink在自動加速路上做了兩件大事

電子工程師 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-04-29 09:15 ? 次閱讀

自動駕駛是目前比較熱門的話題,包含的技術(shù)領(lǐng)域五花八門,例如:雷達、攝像頭、汽車電控、激光雷達、物體識別、高精度地圖、導航技術(shù)等等。小編特邀 MathWorks 行業(yè)技術(shù)專家來聊一聊 MathWorks 這幾年的自動駕駛之路,分享最新的技術(shù)投入和應用亮點。

◆◆◆◆

MathWorks 對自動駕駛技術(shù)的投入可以總結(jié)為以下幾個階段:

2015:SCANIA AEB 系統(tǒng)

2015 年,瑞典著名的重卡生產(chǎn)商 SCANIA 發(fā)布了用 MATLAB/Simulink 設(shè)計的 AEB(自動緊急剎車)系統(tǒng),看動畫:

在這個案例中,SCANIA 利用 MATLAB/Simulink 做了兩件大事:

一是設(shè)計了數(shù)據(jù)融合(Sensor Fusion)系統(tǒng)。AEB 把攝像頭和雷達采集的數(shù)據(jù)進行整合,同時使用車輛前部安裝的雷達和攝像頭來掃描前方區(qū)域的物體。系統(tǒng)利用每個傳感器的獨特優(yōu)勢獲取更精確的環(huán)境模型。

雷達的優(yōu)勢在于確定物體的距離、相對速度,但在確定物體的形狀或橫向位置方面較弱。攝像頭主要優(yōu)勢在于辨識物體類別,主要缺點在于在黑暗環(huán)境下難以工作,以及對速度估計不準確。SCANIA 構(gòu)建了一個傳感器融合系統(tǒng),可將兩個傳感器中的數(shù)據(jù)進行匹配合并。傳感器融合系統(tǒng)一旦在主道上發(fā)現(xiàn)物體,會將該物體的位置和預計路徑傳遞給 AEB,AEB 將確定何時警告駕駛員或采取制動措施。

二是設(shè)計了整個回放測試系統(tǒng)。SCANIA 的車隊在超過 150 萬公里的駕駛里程中,所記錄的實際交通數(shù)據(jù)超過了 80TB。這 150 萬公里的實測數(shù)據(jù),為每次更新發(fā)布的新功能提供了海量測試場景和數(shù)據(jù)。

為了進一步提高仿真運行速度,研發(fā)團隊編寫了 MATLAB 腳本,在服務(wù)器集群進行多核并行計算和仿真,最多同時可以運行300個仿真實例。通過這一方法,將仿真 150 萬公里交通數(shù)據(jù)的時間減少到 12 小時。在仿真中發(fā)現(xiàn)值得關(guān)注的新場景時,會在 Simulink 中重新運行仿真并進行深度分析。

2016:傳感器融合示例

坦率地講,SCANIA 的這個案例激發(fā)了 MathWorks 的開發(fā)靈感。2016 年在波士頓的年度大會上,來自美國底特律的應用工程師展示了他用 MATLAB 腳本開發(fā)的一個前車碰撞預警(FCW)的演示案例。這個演示案例就是后來 ADST(自動駕駛工具箱)的原型。這個原型中包含的 2 個關(guān)鍵點:可視化、數(shù)據(jù)融合,都成了 ADST 的產(chǎn)品亮點。

還有一家公司——德國大陸集團(Continental)——用 MATLAB 也是爐火純青。MATLAB 既然是好工具,我就用工具來代替大量人工重復勞動。2014 年,Continental 在研發(fā)一款自動駕駛攝像頭的時候,使用 MATLAB 來自動化標注物體和道路標志,這些自動化的方法顯著地提高了攝像頭的機器學習效率。這一靈感也最終由 MathWorks 工程師實現(xiàn)在 ADST 的功能中:GroundTruth Labelling (真值標定)。

R2017a:ADST - 自動駕駛系統(tǒng)工具箱

2017 年 3 月,MathWorks 在 MATLAB R2017a 發(fā)布了 ADST(自動駕駛系統(tǒng)工具箱),包括 3 個核心功能點:

  • 可視化

  • 數(shù)據(jù)融合

  • 真值標定

行業(yè)技術(shù)專家強調(diào):可視化是數(shù)據(jù)分析的第一步。

大家先一起看看汽車雷達和攝像頭的數(shù)據(jù)長什么樣。以雷達為例:下面兩個數(shù)據(jù)表格顯示了在什么時間戳,有多少個識別物體,物體的方位、速度等數(shù)據(jù)信息。

讓我們看一段 MATLAB 處理數(shù)據(jù)并實現(xiàn)可視化的動畫:

通過 MATLAB 自帶的 API 和函數(shù),用戶可以比較容易地將雷達和攝像頭的傳感器數(shù)據(jù),進行人眼可視化。上圖左邊是原始的攝像頭畫面,右邊藍色的三角代表攝像頭識別的目標,紅顏色代表雷達識別的目標。通過可視化,人眼可以看到雷達和攝像頭的信號有一定的偏差,那么自然就會問另外一個問題,車載電子設(shè)備到底以哪個為準呢?這就自然引入 ADST 的另外一個功能 – Sensor Fusion(傳感器融合)。

理解傳感器融合有幾個關(guān)鍵詞:多目標追蹤(Multi-ObjectTracking),卡爾曼濾波器(KalmanFilter)和代價矩陣(CostMatrix)。

上圖簡單介紹了一個傳感器融合的過程——從傳感器的捕獲(detection)到最終被確認為追蹤物體(track):

  1. 物體被傳感器(視覺、雷達等)捕獲,形成 detection

  2. Track manager 先為該detection分配一個 track

  3. Tracking filter 通過卡爾曼濾波器不斷估計 detection 的 track

  4. Track manger 通過代價矩陣將 detection 分配更新到 track

  5. 目標 detection 消失后,track 被刪除

MATLAB 自帶的多目標追蹤,可以追蹤最多 120 個運動中的目標。每個目標的最終的 track 可能既不是雷達的位置,也不是視覺的位置,而是最終 track 算出來的位置。下圖展示了代價矩陣的示意圖,將 detection 分配到 track 的過程用到了 Hungarian Assignment Algorithm。

MATLAB 自帶了前向碰撞告警(FCW)例子可以幫助用戶理解傳感器融合的使用。

上圖為 FCW 的數(shù)據(jù)融合處理流程,基本的邏輯是將雷達雜波信號濾除后,進行多目標的追蹤和更新,在識別到最關(guān)鍵目標(Most Important Object)后,根據(jù)前向距離進行剎車告警。

讓我們看看該樣例的運行動畫:

藍色三角形的視覺識別目標和紅色圓形的雷達識別目標,在消除了雷達雜波(大部分為只有紅色圓型的目標,以及在其他車道的目標)后,通過數(shù)據(jù)融合形成目標追蹤??吹降幕疑娇蚣礊檫\動物體的追蹤。

上圖左邊的視頻錄像是一個實際路況的采集視頻,樣例還提供了相應的視覺和雷達的object list。有人會問:在數(shù)據(jù)融合設(shè)計早期的時候,我只有一個 idea,還沒有具體的 object list ,那如何才能驗證我的算法呢?MATLAB 還提供了另外一個 Sensor Fusion 的樣例,看動圖:

這個樣例和上面有實際環(huán)境的樣例有幾點不同:

  1. 車輛和道路都是可以像搭積木一樣,通過 MATLAB 腳本快速搭建測試場景

  2. 在這個模擬環(huán)境中可以模擬雷達(radar Detection Generator)和視覺(vision Detection Generator)的傳感器。

好處不言而喻:快速驗證idea。

隨著自動駕駛工具箱發(fā)布的,還有一個廣受歡迎的功能——真值標定(ground truth labelling)。

首先給出定義:在機器學習中 ground truth 表示有監(jiān)督學習的訓練集的分類準確性,用于證明或者推翻某個假設(shè)。很多視覺識別算法是用的機器學習。機器學習的認知基礎(chǔ)就是真值。真值標定的功能有兩點:

  1. 采用大量真值來訓練機器學習算法

  2. 利用真值來檢驗現(xiàn)有的識別算法

真值標定的輸入一般是視頻文件。真值標定既可以手動一幀一幀地標定,也可以半自動化標定后再手工修正,最終可以將結(jié)果保存成真值數(shù)據(jù)庫。讓我們看一段半自動標定的動畫:

最終標定出來的真值數(shù)據(jù)如下圖所示:就像電影的字幕類似,幾分幾秒,在畫面的什么方位,是什么物體:

ADST 在發(fā)布后,受到汽車電控工程師和自動駕駛研發(fā)人員的廣泛使用。MathWorks 工程師在和他們交流后發(fā)現(xiàn),他們有一個共同的興趣點:ADST 的功能大部分集中于前端(可視化、真值標定、傳感器融合),有沒有將前端的識別和融合結(jié)果和后端的汽車電控結(jié)合起來的案例?其實這也反映了市場熱點從 ADAS(高級駕駛輔助系統(tǒng))向 AD(自動駕駛)過渡。ADAS 側(cè)重于告警,而 AD 側(cè)重于控制。

R2017b:閉環(huán)控制示例

隨著MATLAB R2017b的發(fā)布,MathWorks推出了一個自適應巡航(ACC)的案例,包括:

  • Simulink 模型:包含傳感器融合、傳感器模型、可視化、控制器模型、車輛模型、模擬道路場景和環(huán)境模型

  • 控制器引入了兩種參考設(shè)計:PID 和 MPC(Model Predictive Control)

  • 代碼自動生成

讓我們看一下運行的動畫:由于紫車車輛強行并線到藍色車輛(被控車輛),在 ACC 的作用下藍色車輛的速度下降直到紫色車輛離開本車道。

這里用到的速度控制是經(jīng)典的 PID 控制。眾所周知,PID 的好處是簡單、易懂、占用資源少,但是在自動駕駛的復雜環(huán)境下,想要對車輛進行精準控制,可以考慮更加復雜的先進控制方法,比如 MPC(ModelPredictive Control)。從另外一個角度來看,MPC 過去沒有流行的原因之一就是受限于硬件資源和成本。目前,在自動駕駛技術(shù)和需求的推動下,汽車控制器必須變得越來越強大,使得 MPC 變得可能。下圖給出了在 ACC 的環(huán)境下,使用 PID 和 MPC 的對比:MPC 比 PID 控制的更加精準、快速。

有了 ACC 這個例子,用戶可以在 MATLAB/Simulink 統(tǒng)一平臺下做如下事情:傳感器融合、傳感器模型、可視化、控制器設(shè)計和代碼生成、車輛模型、模擬道路場景和環(huán)境模型。但在實踐中發(fā)現(xiàn),用戶對模擬道路場景和環(huán)境模型要求其實很高:

  1. MATLAB 雖然可以創(chuàng)建道路場景,但是必須用腳本編程,比較麻煩。

  2. 更希望看到虛擬現(xiàn)實場景。

R2018a:unreal 集成

2018 年 3 月,針對第一點,MATLAB R2018a 推出了 Driving Scenario Designer的 App,直接可以畫道路、車輛和簡單傳感器模型:

針對第二點需求,MATLAB R2018a 推出的 Vehicle Dynamics Blockset 可以和 unreal 游戲引擎集成,并自帶了一個免費版的 unreal。當然 Vehicle Dynamics Blockset 主要功能是提供了車輛橫向動力學的模塊,免費版 unreal 只是用于 3D 顯示。相信對于自動駕駛控制器設(shè)計人員,在設(shè)計例如 ACC(自適應巡航),LKA(自動車道保持)等自動駕駛功能時候,Vehicle Dynamics Blockset 一定能發(fā)揮強大的作用。

◆◆◆◆

讓我們再回頭看看 MATLAB的自動駕駛之路:從用戶案例中的啟發(fā),到推出自動駕駛工具箱;通過和用戶的溝通逐步加入的車輛控制部分和 unreal 集成。

當然,自動駕駛永遠在路上,MATLAB/Simulink 也在激光雷達點云處理、駕駛路徑規(guī)劃和跟隨等方面持續(xù)推出更多的功能和應用案例,例如:

實時車輛數(shù)據(jù)融合和顯示。通過和用戶的深入交流,技術(shù)專家了解到用戶的興趣點多集中于:車輛上安裝了攝像頭和雷達后,在實時運行的同時,如何實現(xiàn)數(shù)據(jù)融合并顯示結(jié)果?

MathWorks工程師通過 Automated Driving System Toolbox、Vehicle Network Toolbox、Instrument Control Toolbox、MATLAB Coder、Embedded Coder 等工具箱,已經(jīng)實現(xiàn)在車輛上做實時駕駛的數(shù)據(jù)融合和數(shù)據(jù)顯示:



聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • matlab
    +關(guān)注

    關(guān)注

    180

    文章

    2957

    瀏覽量

    229897
  • Simulink
    +關(guān)注

    關(guān)注

    22

    文章

    520

    瀏覽量

    62191
  • 自動駕駛
    +關(guān)注

    關(guān)注

    782

    文章

    13548

    瀏覽量

    165771

原文標題:MATLAB 的自動駕駛之路

文章出處:【微信號:IV_Technology,微信公眾號:智車科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何利用matlabsimulink轉(zhuǎn)化為c語言

    如何利用matlabsimulink轉(zhuǎn)化為c語言,急求,大神們幫幫我
    發(fā)表于 07-06 09:43

    matlabsimulink仿真

    matlabsimulink仿真模塊里面進行仿真SPWM時怎么設(shè)置調(diào)制比?如何實現(xiàn)空間矢量面寬調(diào)制SVPWM的仿真輸出?
    發(fā)表于 08-05 18:12

    如何利用MATLABSimulink進行S模式檢測和解碼?

    如何利用MATLABSimulink進行S模式檢測和解碼?
    發(fā)表于 05-18 07:17

    如何利用MATLABSimulink去進行S模式檢測和解碼?

    如何利用MATLABSimulink去進行S模式檢測和解碼?
    發(fā)表于 05-20 06:31

    如何去搭建Matlab/Simulink

    搭建MatlabSimulink 下針對 TIDSP 的代碼自動生成環(huán)境搭建 Matlab/Simulink 下針對 TIDSP 的代碼自動生成環(huán)境本文介紹如何搭建
    發(fā)表于 07-07 06:18

    利用Matlabsimulink搭建模型生成C代碼

    一、整體思路利用Matlabsimulink搭建模型生成C代碼,通過stm32cubemx生成工程,最后KEIL或者IAR等工具里面編譯生成代碼下載至MCU中執(zhí)行。本文以流水燈建立
    發(fā)表于 08-04 06:08

    利用Matlabsimulink搭建模型生成C代碼

    一、整體思路利用Matlabsimulink搭建模型生成C代碼,通過stm32cubemx生成工程,最后KEIL或者IAR等工具里面編譯生成代碼下載至MCU中執(zhí)行。本文以流水燈建立
    發(fā)表于 08-10 07:49

    利用MATLABsimulink建立仿真模型

    利用MATLABsimulink建立仿真模型,與stm32cubemx搭建數(shù)據(jù)鏈,通過simulink搭建的模型生成工程!(基本不用修改底層代碼)【轉(zhuǎn)載自】
    發(fā)表于 08-17 07:11

    如何利用MATLABsimulink建立仿真模型呢

    如何利用MATLABsimulink建立仿真模型呢?并與stm32cubemx搭建數(shù)據(jù)鏈呢?
    發(fā)表于 11-18 07:17

    Matlab/simulinkFPGA設(shè)計中的應用

    文中首先分析了MATLAB/Simulink 中DSP Builder 模塊庫FPGA 設(shè)計中優(yōu)點,然后結(jié)合FSK 信號的產(chǎn)生原理,給出了如何利用DSP Builder 模塊庫建立F
    發(fā)表于 08-27 12:07 ?87次下載

    基于MatLab/Simulink的GPS系統(tǒng)仿真

    基于MatLab/Simulink的GPS系統(tǒng)仿真:快速可靠的GPS (全球定位系統(tǒng))系統(tǒng)仿真可對雙頻GPS 接收機的設(shè)計、接收算法的研究提供有效的幫助。文中詳細介紹了MatLab/
    發(fā)表于 02-08 14:55 ?112次下載

    通信電子電路Matlab/Simulink仿真

    通信電子電路Matlab/Simulink仿真摘 要:本文利用Matlab/ Simulink 軟件,以無線電調(diào)幅廣播發(fā)射與超外差接收系統(tǒng)為
    發(fā)表于 05-14 13:37 ?160次下載

    MathWorks發(fā)布MATLABSimulink中提供

    MathWorks發(fā)布MATLABSimulink中提供高級信號處理的新工具 MathWorks面向使用MATLABSimulink
    發(fā)表于 09-17 12:47 ?540次閱讀

    如何使用MatlabSimulink進行調(diào)制解調(diào)的分析

    調(diào)制與解調(diào)是信號處理應用的重要內(nèi)容,該文利用 Matlab/Simulink 對幅度調(diào)制與解調(diào)進行仿真和分析。首先采用 MATLAB7.0 語言編制腳本文件, 對信號進行幅度調(diào)制和解調(diào)
    發(fā)表于 04-22 08:00 ?13次下載
    如何使用<b class='flag-5'>Matlab</b>和<b class='flag-5'>Simulink</b>進行調(diào)制解調(diào)的分析

    MATLAB/simulink中建模時的種不同實現(xiàn)方式

    導讀:本期文章主要介紹MATLAB/simulink中建模時的種不同實現(xiàn)方式,一種是直接用現(xiàn)成的文件庫中的模塊進行搭建,一種是用Sfunction代碼實現(xiàn)。接下來以電壓型磁鏈觀測器
    的頭像 發(fā)表于 09-15 10:07 ?1787次閱讀