天天看點

simulink顯示多個資料_Matlab/Simulink與自動駕駛(ADAS)算法開發

Simulink是如何存在自動駕駛的開發過程中?廢話少講,讓咱們開始娓娓道來!

  • 自動駕駛的開發架構是什麼?

自動駕駛軟體開發基礎的架構,逃不出我們經常所說的三大法寶,感覺--- 決策(規劃)--- 執行(控制),這三個内容,軟體開發基礎思路都不一樣,且聽小編娓娓道來!

simulink顯示多個資料_Matlab/Simulink與自動駕駛(ADAS)算法開發

感覺:

雷達的感覺大多都是一些傅裡葉變換一類的算法來處理多普勒效應的脈沖波信号,目前主流的都是用C來做代碼。雷達的種類很多,這個算法僅僅限于毫米波雷達,雷射雷達小編了解不多。

攝像頭對應的大多都是進行圖像處理,雖然說目前Simulink包含對應的圖像處理算法模型,但是這些算法模型僅僅對于大家寫論文有用,容易出結果,容易仿真!但是實際的算法中大多都是用OpenCV與C++進行融合使用。

像慣性導航,GPS裡面的算法,都是另外一個範疇,Simulink參與的不多,輪速,車身姿态大多來源于ESC,EPS,這些相對應的子產品!

綜上所述,Simulink在感覺這個層面,用的不多。

決策:

在L3以上的級别,因地圖的參與,我們稱之為規劃,L3級别以下的大多稱之為決策,即多個目标的來源的融合,進行決策。

融合算法目前大多在雷達與攝像頭裡面,但是目前有逐漸獨立的趨勢,向域控制器靠攏,相當多的算法都柔和在裡面。軟體開發雖然說有用Simulink開發的,但是很多還是用C,C++進行開發,尤其是對多元度的目标追蹤與融合!

執行(控制):

執行分為,橫向控制域,縱向控制。橫向控制主要是與EPS進行角度,以及扭矩的互動。縱向控制主要與動力總成,底盤進行互動,互動的核心就是加速度的需求與制動的需求。

這些控制邏輯,用通俗的來說,都是簡單的門控制邏輯,大都是或,與,非,一類的邏輯,這些就是Simulink的長項,是以執行相關的邏輯,都是應用Simulink進行開發,然後進行代碼自動生成,最後進行柔和!

綜上所述,Simulink對自動駕駛的支援,其實目前并不是很廣泛,大多集中在功能的控制方面,其它相關的圖像,雷達算法的應用,其它大多都還在寫論文階段,總結如下所示!

simulink顯示多個資料_Matlab/Simulink與自動駕駛(ADAS)算法開發
  • Simulink如何搞自動駕駛算法開發?

目前搞自動駕駛算法開發的,Simulink中有很多對應的庫檔案以及示例可以參考,如下圖所示的庫檔案,可以拿來直接應用。

simulink顯示多個資料_Matlab/Simulink與自動駕駛(ADAS)算法開發

以及對應的示例檔案,直接點選Help,自己學習一下,應該也問題不大。

然後講對應的算法生成,進行內建即可!至于所說的Simulink可以做融合,感覺算法,小編無法否認,但是實踐是檢驗真理的唯一标準,現在實際工程用的還是很少的!

但是,當你在開發某個功能的時候,前期的驗證如何搞?如何搞個模拟的感覺算法,如何搞個仿真的融合算法,如何驗證前期你的功能算法,這個就需要我們的大殺器出場了!

  • Simulink的大殺器--ADAS系統仿真與資料處理

這兩個東西,才是ADAS系統開發的主角,因為真正的功能開發,肯定沒有發動機,變速箱複雜,但是ADAS系統的資料量,以及仿真需求,遠遠大于其它系統,因為這個東西不仿真,直接測試,太花錢!

ADAS的系統是一個非常複雜的東西,在開發早期,特定階段或者某個場景的驗證,如果用實際車輛的話,那就太花錢,而且不實際!是以我們在早期進行場景驗證時候,後期問題複現,就需要我們的大殺器Simulink!尤其對于L3,L4級别的功能,必須要我們這個大殺器才能完成幾百萬公裡的驗證。

ADAS系統仿真與驗證

在Simulink的環境中建立仿真環境進行算法驗證與開發,目前Simulink內建了Driving Scenario Designer的庫,這個庫可以完成場景的規劃與定義,如下所示:

  • 環境模組化---道路,車道線。
  • 車輛模組化---道路車輛,行駛軌迹,自身車輛的尺寸,雷達相關截面積。
  • 标準支援---目前網上有很多Open Drive 格式的路網檔案,可以直接導入,進行計算。

場景的模組化完成後,Matab可以将其轉化為Mat檔案(類似于自動代碼生成的S-Function格式),然後導入Simulink的環境中,添加對應的傳感器模型,進行開環,閉環的仿真!如下圖的開環仿真,以驗證對應的融合算法!

simulink顯示多個資料_Matlab/Simulink與自動駕駛(ADAS)算法開發

閉環的仿真是增加了車輛動力學,以及對應的路徑設計。将其變成閉環,以驗證對應的功能算法,比如ACC,AEB,TJA一類的功能。這兩個就是我們所說的SIL, 軟體在環仿真的學術定義!

simulink顯示多個資料_Matlab/Simulink與自動駕駛(ADAS)算法開發

當這些場景與算法設計完成後,就需要對其進行測試,測試的工具和方法,與之前講的自動代碼生成的測試方法一樣,都可以用Simulink的Test Manager進行動态的Test Case 與靜态的代碼覆寫率的測試,

以上講的都是正規的算法驗證過程,适用于基礎功能開發,但目前大多用的都是應用型項目,應用型項目的主要的測試工作都是進行道路資料采集,然後進行驗證,這樣更加真實可靠,同時也省下很多仿真模型建立的工作。省錢高效!哈哈哈。

中國OEM的傳統做法。具體的操作方法與以上類似!導入場景資料,可以驗證具體的傳感器算法,導入目标清單資料,可以驗證具體的功能算法,如下圖所示!

simulink顯示多個資料_Matlab/Simulink與自動駕駛(ADAS)算法開發

設計,仿真,測試,這個閉環形成ADSA算法的開發與驗證,顯示Simulink軟體的過人之處:

ADAS的資料處理

在實際的測試與驗證的過程中,會收取大量的資料,攝像頭的圖像資料,雷達資料,車道檢測資料,雷射雷達資料,慣性測量單中繼資料等,這些結果如何處理?如何标注真值呢?

Simulink中的ADST工具箱裡面含有對應的函數,然後可以講對應的圖像資料,分析後的目标清單,統一顯示分析在一個圖表中,進行我們所謂的真值标定, 然後進行可視化,這個要比我們肉眼看,要NB多了,請參考下圖!

simulink顯示多個資料_Matlab/Simulink與自動駕駛(ADAS)算法開發

在做可視化的時候,Simulink可以将車輛坐标系與圖像坐标系的進行同屏轉化,這樣可以繪制不同的點雲資料,便于傳感器信号的分析,驗證。

  • 小結
simulink顯示多個資料_Matlab/Simulink與自動駕駛(ADAS)算法開發

鄙人才疏學淺,這些總結僅僅為朋友們,進行抛磚引玉,大家共同學習!ADSA系統的算法研究,猶如星辰大海,隻要你抓住其中一個閃亮的星,就可以使你在智能化的大潮中屹立橋頭,成為大潮中的弄潮兒,同時也希望與我們所有的同行,共同學習,共同進步,一起去征服那個燦爛的星辰大海!

學無止境,深入淺出,精心研究,方成大器!與有志者共勉!