當前位置:
首頁 > 新聞 > Mathworks資深應用工程師王鴻鈞:模擬加速自動駕駛功能的開發

Mathworks資深應用工程師王鴻鈞:模擬加速自動駕駛功能的開發

Mathworks資深應用工程師 王鴻鈞

雷鋒網新智駕按:10月26日至27日,2018 全球智能駕駛峰會在蘇州召開,本次峰會由蘇州市相城區人民政府主辦,蘇州高鐵新城管理委員會、雷鋒網&新智駕和數域承辦,邀請到來自主機廠、科技公司、資本機構和產業研究機構等領域的多位專家,共同打造了一場智能汽車和自動駕駛領域的頂級峰會。

自動駕駛龍頭企業Waymo的秘密武器之一是模擬系統Carcraft。駕駛模擬系統能夠提高數據的利用率、以低成本的方式構建極端場景,對自動駕駛進行驗證。事實上,所有有志於以自動駕駛顛覆未來出行方式的企業,都會注意到自動駕駛模擬器的重要性。

10月27日,Mathworks資深應用工程師王鴻均在2018全球智能駕駛峰會上發表主題為《以模擬加速自動駕駛功能的設計、實現與驗證》的演講,分享頂尖軟體開發商和供應商眼中模擬加速自動駕駛所需要的功能,以及如何實現、驗證。

他主要介紹了Mathworks的MATLAB和SIMULINK兩個主要產品,以及它們是如何在自動駕駛中發揮作用的,並介紹了兩個實際應用案例。

以下是王鴻鈞演講全部內容,雷鋒網新智駕進行了不改變原意的編輯:

Mathworks作為工具軟體提供商,在系統供應商的背後以自己的力量默默推動著自動駕駛系統的發展。包括整機產品裡面,或多或少都有Mathworks參與的成分。

Mathworks和MATLAB、SIMULINK

Mathworks公司來自美國,公司的宗旨是加速工程與科學的進程。不管是做科研還是做產品,在各種各樣的系統開發過程中Mathworks的這種基於模擬的工程軟體越來越多地發揮作用。Mathworks主要產品是MATLAB、SIMULINK。

MATLAB作為一個領先數學計算軟體,距今已有35年的歷史了。MATLAB語言已經成為一個工業標準的高級編成語言,它被廣泛的應用於演算法開發數據計算,數據的可視化以及數據的分析當中。

SIMULINK是基於車輛控制系統框圖對動態系統建模和模擬。然後去分析系統的特性、完成系統的設計。同時SIMULINK軟體支持模型到嵌入式代碼的自動轉化,可以將建立的系統模型轉換成C或者C++的代碼,把這些代碼直接用到嵌入式系統當中,省去了手寫手動編碼的一個過程,同時SIMULINK提供了非常多的工具箱,可以使用它去進行自動控制系統的設計、信號處理和通訊系統的設計,以及各種物理對象的建模。

MATLAB和SIMULINK如何用於開發自動駕駛功能

王鴻鈞介紹,Mathworks可以作用於自動駕駛開發的三個分析:

第一個方面是控制,MATLAB、SIMULINK是一個自動控制的行業標準的軟體,可以使用MATLAB、SIMULINK去進行系統的建模,進行控制演算法,以及先進控制演算法的開發,包括在自動駕駛裡面經常用到模型預測控制演算法的開發。可以進行模擬、進行演算法的設計等等,同時用SIMULINK自動對進行進行回歸測試。

第二個方面是感知,在感知層Mathworks可以開發視覺演算法,雷達演算法,包括激光雷達演算法,可以對採集到的數據進行可視化,對感測器收集到的數據進行分析,包括去設計深度學習的演算法。Mathworks可以直接在MATLAB當中完成深度學習神經網路的設計、網路的訓練以及網路的部署。也可以生成用於GPO的代碼或者是FPGA的代碼,可以直接把它部署到相應的硬體。

第三個方面是導航,Mathworks可以使用MATLAB進行路徑規劃的演算法的模擬,同時和機器人操作系統之間有良好的連接性。

此外,作為一個通用的數學平台,MATLAB還提供了非常多的其它功能,比如數據分析,大數據或者基於大數據的機器學習等等。

功能安全方面,自動駕駛系統是高安全性等級要求的系統,Mathworks對系統功能安全方面有一系列認證的要求,比如ISO26262的認證,Mathworks提供了一整套的驗證和測試的工具鏈,可以幫忙完成認證的工作。

Mathworks和Scania的應用案例

合作夥伴Scania是Mathworks工具應用的典型案例,它用Mathworks工具開發部署,用AEB的感測器融合演算法。目前AEB也是已經開始作為一個歐盟的標準,強制安裝在貨車上面,在國內也是很快會成為下一個需要強制安裝的對象。

在系統原理上,感測器融合的演算法是從兩類感測器採集到周圍的環境感知數據。第一類感測器是毫米波雷達,第二類感測器是攝像頭的圖像數據,Mathworks針對這兩個感測器採集到周圍車輛目標檢測的結果去進行一個融合,然後獲得周圍環境的一個準確感知。

需要通過搭載了雷達感測器和視覺感測器的實驗車輛進行大量公路的實驗,然後區別採集到感測器第一手原始的數據,把這些數據使用數存儲下來。傳統上來說,如果設計了一個新的演算法,進行了一輪新的迭代,需要從頭進行路試,然後把新的演算法再進行整個100多萬公里的公路測試,但是顯然這個效率是非常低的,所以Mathworks採用一種重複模擬的工作流程,這中間最關鍵的核心環節就是模擬,也就是採集到了150萬公里的實車數據之後,不需要再去進行公路測試了,可以把這些數據放到資料庫裡面去,使用設計演算法去運行這些數據。Mathworks通過模擬的環節進行一個虛擬的測試,可以進行快速的迭代,每修改一輪演算法之後只需要在伺服器上面運行模擬的環境,然後在這個模擬的環境裡面測試演算法就可以了。

Scania統計的結果是:每運行一次150萬公里的模擬需要的時間是12個小時,只需要12個小時就可以替代150萬公里的公路測試,這是一個非常高效率的行為。

MATLAB在整個感測器融合演算法的開發過程中提供了一個完整可視化開發的環境,以及一個圓形演算法。MATLAB提供的功能包括:視頻的播放、視頻上的一些疊加顯示,包括目標框的識別、車道線的識別以及右邊鳥瞰圖的繪圖,把這些部分組合起來就可以獲得一個圖形化的感測器融合的開發界面,同時Mathworks提供了MATLAB Coder,這是是從MATLAB代碼轉換成C或者是C++嵌入式代碼的一個工具。直接使用MATLAB Coder就可以將其轉換為C或者C++代碼。得到C代碼以後,就可以把這些演算法用於計算機或者一些嵌入式系統,只要獲得了C或者C++代碼就可以很容易進行移植工作。

Mathworks和Voyage的應用案例

Voyage是美國一個比較新興的自動駕駛公司。Voyage在2017年公開了一些自動駕駛計程車運行的信息。Voyage是怎樣使用MATLAB 和Simulink來開發他們的車輛縱向控制的呢?

首先Voyage用Simulink進行縱向模型控制器的模擬。然後生成一個ROS節點,和ROS這類系統是有一個比較好的互通性,因為Mathworks提供了相應的支持,可以生成C++代碼,用於生成ROS的節點,同時生成的ROS節點,用戶可以把它集成到ROS開源軟體的框架裡面去。框架裡面還有其它的組件,包括感知與規劃演算法在內,可以很方便的把其中一部分功能用MATLAB和SIMULINK去補,通過模型開發,然後再進行代碼生成。

Voyage的一個硬體負責人說:「我們一直在尋找一種快速原型產品的開發方式,我們發現用SIMULINK進行控制器的開發和代碼生成,同時使用MATLAB實現開發任務的自動化,可以幫助我們進行快速的迭代,能夠大大提高我們整個產品的開發效率。」

Voyage很快速的從MATLAB當中提供一個參考事例的基礎上進行模擬,並且生成控制器的C++代碼,在三天之內就集成到了實車上進行測試。其實它存在非常多的問題,實在功能上,對它需求的定義也不是很完善,需要在實車上進行大量的實驗,去完善控制器的設計需求。

對起停這兩個狀態分別做設計,分別設一個獨立的控制演算法,然後組合起來,形成一個完整的縱向控制器,Voyage在實車測試的時候,發現了這些新需求,針對這些新的需求完善設計,去修改控制器。反覆加入了這類需求之後,Voyage再去修改SIMULINK,和SIMULINK里的演算法設計。最後去完成模型預測控制的參數迭代,以及一些邊界約束條件迭代等等,使得整個控制器的性能越來越好,就可以往產品化的方向繼續努力。

Mathworks提供一系列模擬自動駕駛功能的參考程序

目前絕大多數已有的汽車產品處於L1-L2階段,在歐盟的標準裡面,2020年是L1普及甚至成為強制標準的階段。L2在一些車輛上已經實裝了,現在有些產品已經有了L2的功能,比如說TGA、交通擁堵輔助這類功能就是典型L2的功能。

L3以上的技術目前為止並不成熟,Mathworks的demo也在不斷優化完善中,目前提供了一個簡單的模擬框架,就是使用雷達和視覺感測器,感測器融合模型預測控制等等模塊進行系統閉環模擬的MATLAB。這個框架當中包含了控制器、感測器模型,可以在這個基礎上快速進行原型系統的模擬。可以通過SIMULINK當中一些樸實無華的功能去對模擬過程當中的信號進行分析。

控制器包括兩塊內容:第一塊是感測器融合與目標跟蹤;第二塊是右邊ACC控制演算法。使用模型預測控制可以把這部分分別生成C++代碼。對於車輛建模,車輛屬於被控對象,需要用到車輛動力學模型,所以Mathworks也推出了車輛動力學模塊庫,同時也支持3D顯示,模擬過程可以通過3D畫面顯示出來。

同時Mathworks也支持批量的自動化測試,因為個自動駕駛功能的測試需要用到大量場景,甚至是幾十萬上百萬公里的測試場景。Mathworks提供了一個駕駛場景設計器可以去畫一些簡單的測試場景,也提供了一些預製的駕駛場景,AEB、ACC等等的測試場景,Mathworks也支持Open driver道路文件的導入,用戶可以去導入一些已有的道路去進行場景設計,去進行模擬。

還可以使用SIMULINK Test去運行自動化的批量測試,載入測試運行測試,分析結果,所有的這些動作都是自動化的,最後可以生成一份測試報告,在測試報告中可以分析哪些測試通過,哪些測試不通過。

最後如果還想把圖像演算法或者是激光雷達演算法等集成到整個閉環的模擬當中,Mathworks還提供了一種是可以和「虛幻」引擎的3D道路場景進行協同和模擬的方法。MATLAB通過插件可以使用虛幻編輯器去創造一些自定義的場景,並與SIMULINK進行協同和模擬。

「虛幻」引擎這一類的場景設計工具,有著相對豐富的資源和素材。同樣Mathworks的三維遊戲引擎也可以用來去進行雷達感測器或者激光雷達感測器的建模,整個系統模擬環境也可以把它放到硬體在環、甚至是車輛在環模擬裡面去。因為Mathworks的車輛模型感測器模型都是可以生成C或者是C++代碼的,可以分到模擬機這種實時計算機裡面去運行。

「虛幻」引擎可以在桌面上運行,把嵌入式控制器連接起來就可以形成一個硬體在環模擬的環境。在傳統上,MATLAB和SIMULINK本身提供了一套基於模型設計的微開發流程完整的工具鏈。

在整個需求定義模型設計完成之後,還要做相應的軟體設計和代碼生成,Mathworks擁有Simulink Coder這類基於模型的驗證工具,包括代碼驗證工具、進行實時模擬測試的工具等等,這些工具都可以幫助用戶進行一個實際產品的開發。

Mathworks最後都是面向嵌入式的處理器或者嵌入式的系統進行產品的實現。同時Mathworks也提供了大量的經過認證的工具,幫助用戶滿足功能安全標準。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

Nvidia RTX GPU 現身 Adobe MAX,8K 視頻渲染碾壓 CPU
用iPhone一秒拍攝3D照片,Facebook這項技術厲害了

TAG:雷鋒網 |