Mathworks資深應用工程師王鴻鈞:仿真加速自動駕駛功能的開發(fā)
原標題:Mathworks資深應用工程師王鴻鈞:仿真加速自動駕駛功能的開發(fā) | 2018全球智能駕駛峰會
Mathworks資深應用工程師 王鴻鈞
雷鋒網(wǎng)新智駕按:10月26日至27日,2018 全球智能駕駛峰會在蘇州召開,本次峰會由蘇州市相城區(qū)人民政府主辦,蘇州高鐵新城管理委員會、雷鋒網(wǎng)&新智駕和數(shù)域承辦,邀請到來自主機廠、科技公司、資本機構和產業(yè)研究機構等領域的多位專家,共同打造了一場智能汽車和自動駕駛領域的頂級峰會。
自動駕駛龍頭企業(yè)Waymo的秘密武器之一是模擬系統(tǒng)Carcraft。駕駛模擬系統(tǒng)能夠提高數(shù)據(jù)的利用率、以低成本的方式構建極端場景,對自動駕駛進行驗證。事實上,所有有志于以自動駕駛顛覆未來出行方式的企業(yè),都會注意到自動駕駛模擬器的重要性。
10月27日,Mathworks資深應用工程師王鴻均在2018全球智能駕駛峰會上發(fā)表主題為《以仿真加速自動駕駛功能的設計、實現(xiàn)與驗證》的演講,分享頂尖軟件開發(fā)商和供應商眼中仿真加速自動駕駛所需要的功能,以及如何實現(xiàn)、驗證。
他主要介紹了Mathworks的MATLAB和SIMULINK兩個主要產品,以及它們是如何在自動駕駛中發(fā)揮作用的,并介紹了兩個實際應用案例。
以下是王鴻鈞演講全部內容,雷鋒網(wǎng)新智駕進行了不改變原意的編輯:?
Mathworks作為工具軟件提供商,在系統(tǒng)供應商的背后以自己的力量默默推動著自動駕駛系統(tǒng)的發(fā)展。包括整機產品里面,或多或少都有Mathworks參與的成分。
Mathworks和MATLAB、SIMULINK
Mathworks公司來自美國,公司的宗旨是加速工程與科學的進程。不管是做科研還是做產品,在各種各樣的系統(tǒng)開發(fā)過程中Mathworks的這種基于仿真的工程軟件越來越多地發(fā)揮作用。Mathworks主要產品是MATLAB、SIMULINK。
MATLAB作為一個領先數(shù)學計算軟件,距今已有35年的歷史了。MATLAB語言已經(jīng)成為一個工業(yè)標準的高級編成語言,它被廣泛的應用于算法開發(fā)數(shù)據(jù)計算,數(shù)據(jù)的可視化以及數(shù)據(jù)的分析當中。
SIMULINK是基于車輛控制系統(tǒng)框圖對動態(tài)系統(tǒng)建模和仿真。然后去分析系統(tǒng)的特性、完成系統(tǒng)的設計。同時SIMULINK軟件支持模型到嵌入式代碼的自動轉化,可以將建立的系統(tǒng)模型轉換成C或者C++的代碼,把這些代碼直接用到嵌入式系統(tǒng)當中,省去了手寫手動編碼的一個過程,同時SIMULINK提供了非常多的工具箱,可以使用它去進行自動控制系統(tǒng)的設計、信號處理和通訊系統(tǒng)的設計,以及各種物理對象的建模。
MATLAB和SIMULINK如何用于開發(fā)自動駕駛功能
王鴻鈞介紹,Mathworks可以作用于自動駕駛開發(fā)的三個分析:
第一個方面是控制,MATLAB、SIMULINK是一個自動控制的行業(yè)標準的軟件,可以使用MATLAB、SIMULINK去進行系統(tǒng)的建模,進行控制算法,以及先進控制算法的開發(fā),包括在自動駕駛里面經(jīng)常用到模型預測控制算法的開發(fā)。可以進行仿真、進行算法的設計等等,同時用SIMULINK自動對進行進行回歸測試。
第二個方面是感知,在感知層Mathworks可以開發(fā)視覺算法,雷達算法,包括激光雷達算法,可以對采集到的數(shù)據(jù)進行可視化,對傳感器收集到的數(shù)據(jù)進行分析,包括去設計深度學習的算法。Mathworks可以直接在MATLAB當中完成深度學習神經(jīng)網(wǎng)絡的設計、網(wǎng)絡的訓練以及網(wǎng)絡的部署。也可以生成用于GPO的代碼或者是FPGA的代碼,可以直接把它部署到相應的硬件。
第三個方面是導航,Mathworks可以使用MATLAB進行路徑規(guī)劃的算法的仿真,同時和機器人操作系統(tǒng)之間有良好的連接性。
此外,作為一個通用的數(shù)學平臺,MATLAB還提供了非常多的其它功能,比如數(shù)據(jù)分析,大數(shù)據(jù)或者基于大數(shù)據(jù)的機器學習等等。
功能安全方面,自動駕駛系統(tǒng)是高安全性等級要求的系統(tǒng),Mathworks對系統(tǒng)功能安全方面有一系列認證的要求,比如ISO26262的認證,Mathworks提供了一整套的驗證和測試的工具鏈,可以幫忙完成認證的工作。
Mathworks和Scania的應用案例
合作伙伴Scania是Mathworks工具應用的典型案例,它用Mathworks工具開發(fā)部署,用AEB的傳感器融合算法。目前AEB也是已經(jīng)開始作為一個歐盟的標準,強制安裝在貨車上面,在國內也是很快會成為下一個需要強制安裝的對象。
在系統(tǒng)原理上,傳感器融合的算法是從兩類傳感器采集到周圍的環(huán)境感知數(shù)據(jù)。第一類傳感器是毫米波雷達,第二類傳感器是攝像頭的圖像數(shù)據(jù),Mathworks針對這兩個傳感器采集到周圍車輛目標檢測的結果去進行一個融合,然后獲得周圍環(huán)境的一個準確感知。
需要通過搭載了雷達傳感器和視覺傳感器的實驗車輛進行大量公路的實驗,然后區(qū)別采集到傳感器第一手原始的數(shù)據(jù),把這些數(shù)據(jù)使用數(shù)存儲下來。傳統(tǒng)上來說,如果設計了一個新的算法,進行了一輪新的迭代,需要從頭進行路試,然后把新的算法再進行整個100多萬公里的公路測試,但是顯然這個效率是非常低的,所以Mathworks采用一種重復仿真的工作流程,這中間最關鍵的核心環(huán)節(jié)就是仿真,也就是采集到了150萬公里的實車數(shù)據(jù)之后,不需要再去進行公路測試了,可以把這些數(shù)據(jù)放到數(shù)據(jù)庫里面去,使用設計算法去運行這些數(shù)據(jù)。Mathworks通過仿真的環(huán)節(jié)進行一個虛擬的測試,可以進行快速的迭代,每修改一輪算法之后只需要在服務器上面運行仿真的環(huán)境,然后在這個仿真的環(huán)境里面測試算法就可以了。
Scania統(tǒng)計的結果是:每運行一次150萬公里的仿真需要的時間是12個小時,只需要12個小時就可以替代150萬公里的公路測試,這是一個非常高效率的行為。
MATLAB在整個傳感器融合算法的開發(fā)過程中提供了一個完整可視化開發(fā)的環(huán)境,以及一個圓形算法。MATLAB提供的功能包括:視頻的播放、視頻上的一些疊加顯示,包括目標框的識別、車道線的識別以及右邊鳥瞰圖的繪圖,把這些部分組合起來就可以獲得一個圖形化的傳感器融合的開發(fā)界面,同時Mathworks提供了MATLAB Coder,這是是從MATLAB代碼轉換成C或者是C++嵌入式代碼的一個工具。直接使用MATLAB Coder就可以將其轉換為C或者C++代碼。得到C代碼以后,就可以把這些算法用于計算機或者一些嵌入式系統(tǒng),只要獲得了C或者C++代碼就可以很容易進行移植工作。
Mathworks和Voyage的應用案例
Voyage是美國一個比較新興的自動駕駛公司。Voyage在2017年公開了一些自動駕駛出租車運行的信息。Voyage是怎樣使用MATLAB 和Simulink來開發(fā)他們的車輛縱向控制的呢?
首先Voyage用Simulink進行縱向模型控制器的仿真。然后生成一個ROS節(jié)點,和ROS這類系統(tǒng)是有一個比較好的互通性,因為Mathworks提供了相應的支持,可以生成C++代碼,用于生成ROS的節(jié)點,同時生成的ROS節(jié)點,用戶可以把它集成到ROS開源軟件的框架里面去??蚣芾锩孢€有其它的組件,包括感知與規(guī)劃算法在內,可以很方便的把其中一部分功能用MATLAB和SIMULINK去補,通過模型開發(fā),然后再進行代碼生成。
Voyage的一個硬件負責人說:“我們一直在尋找一種快速原型產品的開發(fā)方式,我們發(fā)現(xiàn)用SIMULINK進行控制器的開發(fā)和代碼生成,同時使用MATLAB實現(xiàn)開發(fā)任務的自動化,可以幫助我們進行快速的迭代,能夠大大提高我們整個產品的開發(fā)效率?!?/p>
Voyage很快速的從MATLAB當中提供一個參考事例的基礎上進行仿真,并且生成控制器的C++代碼,在三天之內就集成到了實車上進行測試。其實它存在非常多的問題,實在功能上,對它需求的定義也不是很完善,需要在實車上進行大量的實驗,去完善控制器的設計需求。
對起停這兩個狀態(tài)分別做設計,分別設一個獨立的控制算法,然后組合起來,形成一個完整的縱向控制器,Voyage在實車測試的時候,發(fā)現(xiàn)了這些新需求,針對這些新的需求完善設計,去修改控制器。反復加入了這類需求之后,Voyage再去修改SIMULINK,和SIMULINK里的算法設計。最后去完成模型預測控制的參數(shù)迭代,以及一些邊界約束條件迭代等等,使得整個控制器的性能越來越好,就可以往產品化的方向繼續(xù)努力。
Mathworks提供一系列仿真自動駕駛功能的參考程序
目前絕大多數(shù)已有的汽車產品處于L1-L2階段,在歐盟的標準里面,2020年是L1普及甚至成為強制標準的階段。L2在一些車輛上已經(jīng)實裝了,現(xiàn)在有些產品已經(jīng)有了L2的功能,比如說TGA、交通擁堵輔助這類功能就是典型L2的功能。
L3以上的技術目前為止并不成熟,Mathworks的demo也在不斷優(yōu)化完善中,目前提供了一個簡單的仿真框架,就是使用雷達和視覺傳感器,傳感器融合模型預測控制等等模塊進行系統(tǒng)閉環(huán)仿真的MATLAB。這個框架當中包含了控制器、傳感器模型,可以在這個基礎上快速進行原型系統(tǒng)的仿真??梢酝ㄟ^SIMULINK當中一些樸實無華的功能去對仿真過程當中的信號進行分析。
控制器包括兩塊內容:第一塊是傳感器融合與目標跟蹤;第二塊是右邊ACC控制算法。使用模型預測控制可以把這部分分別生成C++代碼。對于車輛建模,車輛屬于被控對象,需要用到車輛動力學模型,所以Mathworks也推出了車輛動力學模塊庫,同時也支持3D顯示,仿真過程可以通過3D畫面顯示出來。
同時Mathworks也支持批量的自動化測試,因為個自動駕駛功能的測試需要用到大量場景,甚至是幾十萬上百萬公里的測試場景。Mathworks提供了一個駕駛場景設計器可以去畫一些簡單的測試場景,也提供了一些預制的駕駛場景,AEB、ACC等等的測試場景,Mathworks也支持Open driver道路文件的導入,用戶可以去導入一些已有的道路去進行場景設計,去進行仿真。
還可以使用SIMULINK Test去運行自動化的批量測試,載入測試運行測試,分析結果,所有的這些動作都是自動化的,最后可以生成一份測試報告,在測試報告中可以分析哪些測試通過,哪些測試不通過。
最后如果還想把圖像算法或者是激光雷達算法等集成到整個閉環(huán)的仿真當中,Mathworks還提供了一種是可以和“虛幻”引擎的3D道路場景進行協(xié)同和仿真的方法。MATLAB通過插件可以使用虛幻編輯器去創(chuàng)造一些自定義的場景,并與SIMULINK進行協(xié)同和仿真。
“虛幻”引擎這一類的場景設計工具,有著相對豐富的資源和素材。同樣Mathworks的三維游戲引擎也可以用來去進行雷達傳感器或者激光雷達傳感器的建模,整個系統(tǒng)仿真環(huán)境也可以把它放到硬件在環(huán)、甚至是車輛在環(huán)仿真里面去。因為Mathworks的車輛模型傳感器模型都是可以生成C或者是C++代碼的,可以分到仿真機這種實時計算機里面去運行。
“虛幻”引擎可以在桌面上運行,把嵌入式控制器連接起來就可以形成一個硬件在環(huán)仿真的環(huán)境。在傳統(tǒng)上,MATLAB和SIMULINK本身提供了一套基于模型設計的微開發(fā)流程完整的工具鏈。
在整個需求定義模型設計完成之后,還要做相應的軟件設計和代碼生成,Mathworks擁有Simulink Coder這類基于模型的驗證工具,包括代碼驗證工具、進行實時仿真測試的工具等等,這些工具都可以幫助用戶進行一個實際產品的開發(fā)。
Mathworks最后都是面向嵌入式的處理器或者嵌入式的系統(tǒng)進行產品的實現(xiàn)。同時Mathworks也提供了大量的經(jīng)過認證的工具,幫助用戶滿足功能安全標準。
免責聲明:本文僅代表作者個人觀點,與中創(chuàng)網(wǎng)無關。其原創(chuàng)性以及文中陳述文字和內容未經(jīng)本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關內容。