追尾事故是載貨卡車和其它重型車輛最容易發生的一類事故。2015 年,為了降低追尾事故的風險,歐盟法規要求為所有新車輛使用先進的緊急制動系統 (Advanced Emergency Braking Systems, AEBS)。
與其它先進的駕駛輔助系統 (Advanced Driver Assistance Systems, ADAS) 一樣,AEBS 使用傳感器輸入來感知周圍環境。即將發生事故時,系統會通過聲音警報警告駕駛員。如果駕駛員沒有反應,系統將采取警告制動。如果駕駛員仍然沒有反應,系統將采取完全制動以避免發生事故。
AEBS 概覽
此外,AEBS 還提供“制動輔助系統”:當駕駛員已經剎車,但沒有足夠的制動力避免事故時,系統將通過計算提供所需的額外制動力。
AEBS 同時使用車輛前部安裝的雷達和相機傳感器來掃描前方區域的物體。系統利用每個傳感器的獨特優勢獲取更精確的環境模型。雷達傳感器的優勢在于確定物體的距離、相對速度和硬度,但在確定物體的形狀或橫向位置方面較弱。只安裝雷達的系統會發現很難將停在路邊的汽車同行駛車道中的汽車區分開。而在另一方面,相機可以精確獲取物體的大小和橫向位置,但不能很好地測定距離,并且無法估計密度(可能會將濃密的云層誤認為是一個堅實的物體)。
Scania 構建了一個傳感器融合系統,可將兩個傳感器中的數據進行匹配并合并到一個物體中。該系統使用四個加權屬性(縱向速度、縱向位置、橫向速度和橫向位置)來計算兩個傳感器檢測到同一個物體的概率。傳感器融合系統一旦在主車輛道路中發現物體,會將該物體的位置和車輛的預計路徑傳遞給 AEBS,AEBS 將確定何時警告駕駛員或采取制動措施。
Scania 團隊以前曾通過基于模型的設計方法開發過使用雷達技術的自適應巡航控制系統,但從未開發過傳感器融合系統。由于這是一種全新的設計,需要使用可讀且易懂的架構將信號流可視化,還預計會有大量設計迭代,因此希望通過一種簡單的方法實現結果可視化和進行設計調試,并通過生成代碼來節省時間。但代碼必須是高效率的,因為當啟動傳感器融合項目時,電子控制單元 (Electronics Control Unit, ECU) 上的 CPU 負載已經達到 60% 左右。最后,還需要對設計進行全面驗證,模型仿真將基于超過 150 萬公里的傳感器數據。基于模型的設計滿足所有這些要求。
構建傳感器融合系統
Scania 首先將系統設計劃分為多個功能單元,如對象匹配和預計路徑定位,并為每個單元構建一個單獨的 Simulink模塊。結果是一個具有良好接口定義的清晰的軟件架構。
傳感器融合系統的 Simulink 模型
團隊為軌跡關聯編寫了 MATLAB代碼,以便計算方差、計算加權概率以及執行那些使用腳本要比使用模塊更容易實現的其它任務,之后通過 MATLAB Function block 將此代碼合并到 Simulink 模型中。這些算法模塊可以使團隊成員更方便地合并算法,并將這些算法與控制系統集成。
為了調試和改進初始設計,使用記錄的雷達傳感器數據、相應的相機圖像和其它車輛傳感器數據運行了仿真。在調試期間發現,將來自車輛前部的傳感器數據和相機視圖進行可視化是非常有用的。Scania 在 MATLAB 中構建了可視化工具,可顯示與周圍交通狀況的 Web 相機視圖同步的傳感器融合數據。
在 MATLAB 中開發的傳感器可視化工具
利用 MATLAB 面向對象的編程功能,該工具使用 MATLAB 類表示任意傳感器檢測到的每個對象,以及傳感器融合系統感知到的統一的對象。通過這些 MATLAB 對象,可以在執行數據可視化時快速及時地前進和后退。
在道路測試期間使用相同的工具,對來自車輛網絡的實時數據進行可視化。
實現系統和優化性能
為了將傳感器融合系統部署到 ECU,使用 Embedded Coder 從 Simulink 模型生成 C 代碼。借助代碼生成,可以快速實現系統,并可避免編碼錯誤。ECU 處理器的大部分資源都已分配給維護功能,包括監視儀表盤警報、物理狀態估計、數據網關和自適應巡航控制,等等。因此,團隊需要優化初始設計來提高效率。
為了讓生成的代碼提供最佳性能,Scania 與 MathWorks Pilot 團隊共同協作,優化了從 MATLAB Coder生成的代碼。為了進一步降低處理負載,Scania 將模型分為交替執行的單獨部分,發現系統調用的三角函數嚴重影響了處理器的處理速度。為了解決這個問題,工程師用 C 語言編寫了三角近似函數,并從 MATLAB 函數模塊調用這些函數。這些修改不但提高了傳感器融合代碼的效率,還使得 AEBS 軟件的反應更快,這在以毫秒計的車輛高速行駛時尤為重要。
驗證和改進設計
Scania 在一段封閉道路上對設計進行了車載測試,但是我們需要了解系統在實際駕駛場景中如何反應,如不同的天氣條件、交通模式和駕駛員行為。在這些條件下直接測試 AEBS 既不現實也不安全。于是,Scania 使用了基于仿真的工作流。首先從一組卡車中收集 ECU 上所有可用數據(而不僅僅是用于數據融合的雷達和相機中的數據),以及來自單獨的參考相機中的圖像。
使用這一組測試數據運行了仿真,以鑒別一些值得關注的駕駛場景。在有些場景中,AEBS 進行了干預,警告駕駛員或采取了制動措施;而在有些場景中,系統本該但沒有進行干預,例如,當駕駛員同時按喇叭和踩剎車、突然轉彎或緊急剎車時。之后針對這些場景對 AEBS 的性能進行了分析,以確定可以在哪些方面改進設計。
需要在每次更新 AEBS 軟件后重新進行仿真。但是,由于在超過 150 萬公里的駕駛里程中所記錄的實際交通數據超過了 80 TB,因此需要幾天才能運行完一個仿真。
為了進一步提高仿真運行速度,團隊編寫了 MATLAB 腳本,并在多臺計算機以及專用的多處理器服務器上并行運行仿真,多達 300 個。通過這一方法將仿真 150 萬公里所有交通數據的時間減少到僅需 12 小時。在模擬器中發現值得關注的新場景時,會在 Simulink 中重新運行仿真以進行深度分析。
使用以 TB 為單位的數據對可能值得關注的場景進行識別和分類是一項乏味且耗時的任務,因此我們開發了情形分類輔助模塊,這是一個基于 MATLAB 的工具,可自動處理這部分工作。
情形分類輔助模塊是基于 MATLAB 的工具,用于處理記錄的 ECU 數據,以及自動識別與緊急制動相關的情形。
該工具從仿真中生成一個活動列表,如由系統發起的事故警報、警告制動和完全制動,以及由駕駛員引起的急剎車和急轉彎。之后可以針對任意兩個版本的軟件對這些列表進行比較。
執行大量仿真的能力增強了 AEBS 功能以及 ECU 中產品代碼實現的魯棒性和安全性。另外,還可以更快地進行更改。使用仿真中的所有可用數據對上千種場景進行了測試,讓Scania對這些更改很有信心。
在ADAS產品中部署生成的代碼
大多數 Scania 卡車和公交車都已經配備了 AEBS(該系統運行從 Simulink 模型生成的產品代碼,并通過大量仿真進行了驗證)。在 Scania 的自適應巡航控制系統中重用了傳感器融合系統設計,因此現在路上有 10 萬多個電子控制單元在使用。
-
傳感器
+關注
關注
2548文章
50664瀏覽量
751947 -
處理器
+關注
關注
68文章
19160瀏覽量
229115 -
服務器
+關注
關注
12文章
9017瀏覽量
85182
發布評論請先 登錄
相關推薦
評論