
近期,MathWorks新釋出了一個自動駕駛場景建構工具——RoadRunner,該工具操作簡便、功能強大、素材豐富,極大地提升了場景建構的效率和品質。RoadRunner的推出使得MathWorks在自動駕駛仿真測試領域如虎添翼,讓使用者在搭建駕駛員在環系統時更加遊刃有餘。本文将介紹,如何基于MATLAB(MathWorks)、RoadRunner(MathWorks)、UE4(虛幻引擎,Epic Games)和Speedgoat(Speedgoat)打造一個專業的、高成本效益的駕駛員在環系統。
1. 綜述
從感覺、融合、規劃到控制,不同使用者專注的算法并不一樣,是以仿真測試的需求也因人而異,使用者可基于本文打造滿足對應需求的駕駛員在環系統。以測試融合、規劃和控制算法為例,我們來詳細說明借助上述的四個工具如何搭建駕駛員在環系統。
系統組成如上圖,硬體主要包括:
- 上位機電腦,運作場景和傳感器模型。接收車輛模型計算出來的車輛位置和姿态,根據位姿将車輛渲染在UE4場景中。并将傳感器模型結果發送給量産控制器或Speedgoat原型控制器。
- 駕駛操縱平台,模拟駕駛員對車輛的操縱。
- 量産控制器或Speedgoat原型控制器,運作融合、決策、控制算法。基于傳感器檢測結果、駕駛員操作信号、車輛狀态資訊等,計算得到車輛控制信号,通過CAN發送給Speedgoat實時仿真平台。
- Speedgoat實時仿真平台,運作車輛模型。基于車輛控制信号、地形路面資訊等,計算得到車輛位置和姿态,并發送給上位機電腦。
軟體主要包括:
- MATLAB R2020a,主要相關的工具箱如下表
- RoadRunner,用以建構駕駛場景
- UE4(Unreal Engine 4.23),加載RoadRunner建構的場景檔案,運作及渲染場景,與Simulink互動
- Speedgoat驅動庫,以Simulink工具箱的形式呈現,提供IO、CAN、UDP等的Simulink驅動子產品
以上硬體及軟體如何使用,下文将逐一介紹。
2. 車輛模型及Speedgoat實時仿真平台
2.1 車輛模型
在車輛模組化方面,MathWorks提供了Powertrain Blockset和Vehicle Dynamics Blockset。兩個工具箱都提供了豐富的子產品,以Vehicle Dynamics Blockset為例,它包含了動力總成(PowerTrain)、傳感器(Sensors)、轉向系(Steering)、懸架(Suspension)、車身(Vehicle Body)、場景(Vehicle Scenarios)、輪系(Wheels and Tires)等。
對于自動駕駛仿真測試而言,車輛動力學是車輛模型中非常重要的一部分。MathWorks提供了3自由度、7自由度和14自由度的車輛動力學參考模型,使用者可以參考使用。
基于Powertrain Blockset和Vehicle Dynamics Blockset,使用者可以靈活建構整車模型。除此之外,MathWorks也提供了一些可供使用者參考使用的整車模型。使用者可以在MathWorks整車模型的基礎上進行參數化,進而快速得到一個接近真實車輛的駕駛員在環整車模型。
2.2 Speedgoat實時仿真平台
用于自動駕駛仿真測試的車輛模型往往比較複雜,需要強有力的仿真平台來支援實時運作。本系統中運作車輛模型的是來自Speedgoat公司的高性能實時仿真平台——Performance Real-Time Target Machine。Simulink車輛模型可一鍵編譯、下載下傳、運作到Speedgoat實時仿真平台。
Speedgoat是MathWorks的聯營公司,由MathWorks前員工創立,緻力于提供專門針對Simulink環境的實時系統。Speedgoat實時系統基于MathWorks的Simulink Real-Time工具箱,實作與MATLAB/Simulink無縫銜接。
Performance Real-Time Target Machine是一款高性能的實時仿真平台,規格參數如下。
3. 自動駕駛算法及Speedgoat原型控制器
自動駕駛算法是駕駛員在環系統的被測對象,本文不做深入探讨。值得一提的是,MathWorks近年來新開發的工具箱——Sensor Fusion and Tracking Toolbox,為使用者提供了豐富的傳感器融合與目标追蹤算法。
本系統中,運作自動駕駛算法的原型控制器是Speedgoat的Baseline Real-Time Target Machine.
4. 駕駛操縱平台
駕駛操縱平台可供駕駛員進行駕駛操作,輸出轉向、油門、刹車等信号。駕駛操縱平台主要可以分為兩類:1、實車的轉向油門刹車系統;2、羅技等公司提供的簡化操縱平台。對于前者,操縱信号通過IO或者CAN進行傳輸,隻要控制器中有對應接口即可直接接收這些信号。對于後者,這些簡化操縱平台的接口一般是USB口,需要先用Simulink的相關驅動子產品接收USB信号。我們以羅技G29為例,介紹駕駛操縱信号如何進入Simulink模型。
Simulink 3D Animation工具箱的Joystick Input子產品支援接收羅技G29的USB信号。Joystick Input的輸出Axes和Buttons包含了很多個信号,需要預先标定下方向盤、油門、刹車和這些信号的對應關系。标定方式很簡單,将羅技USB插到電腦上,把Joystick Input拖到Simulink模型中,進行駕駛操作,看Joystick Input的哪個輸出信号有變化,即可确認對應關系。
5. 駕駛場景
駕駛場景建構和模拟是自動駕駛仿真測試中的重要環節,也很大程度上影響着仿真測試的效果。針對不同的仿真測試需求,MathWorks提供了兩套方案。兩套方案的具體情況,請見下圖。
第一套方案采用的場景表達工具是MathWorks自己開發的Driving Scenario Designer,可以建構“方塊式”駕駛場景,适用于對融合、規劃和控制算法的測試。第二套方案采用的場景表達工具是Epic Games開發的虛幻引擎UE4(Unreal Engine 4.23),也适用于對感覺算法進行測試。RoadRunner建構的場景,既可以導出到Driving Scenario Designer,又可以導出到UE4。
考慮到駕駛員在環對駕駛體驗有一定要求,是以在駕駛員在環系統中采用的場景表達工具是UE4。
5.1 RoadRunner
RoadRunner 是一個互動式編輯器,可用于針對自動駕駛系統仿真和測試設計三維場景。您可以建立區域特定的道路标志和标記以自定義道路場景。您可以插入标志、信号、護欄和道路損壞,以及綠化、建築物和其他三維模型。RoadRunner 還提供工具,用于設定和配置交叉路口處的交通信号配時、相位和行車路徑。
RoadRunner 支援雷射雷達點雲、航拍圖像和 GIS 資料的可視化。您可以使用 OpenDRIVE 導入和導出道路網絡。使用 RoadRunner 建構的三維場景可導出為 FBX、glTF、OpenFlight、OpenSceneGraph、OBJ 和 USD 格式。導出的場景可在自動駕駛仿真器和遊戲引擎中使用,包括 CARLA、Vires VTD、NVIDIA DRIVE Sim、LGSVL、百度 Apollo、Unity 和虛幻引擎 (Unreal Engine)。
知乎視訊www.zhihu.com
5.2 UE4
RoadRunner建構的場景可以導出成FBX檔案,Unreal Engine加載該檔案,複現場景并做逼真的渲染。RoadRunner與UE4結合,既實作了友善快捷地建構場景,又實作了對場景的高保真度模拟。同時,Simulink的自動駕駛工具箱Automated Driving Toolbox提供了與Unreal Engine場景互動的攝像頭、雷射雷達、毫米波雷達等傳感器模型。
5.3 UE4與Simulink聯合仿真
UE4與Simulink的聯合仿真,主要借助于自動駕駛工具箱Automated Driving Toolbox的Simulation 3D Scene Configuration子產品。
該子產品對于場景來源(Scene source)有三個選項:Default Scenes,Unreal Executable和Unreal Editor。前者使用的是MathWorks提供的自帶參考場景,後兩者可使用使用者自定義的場景。Unreal Editor和Unreal Executable正好對應使用自定義場景進行聯合仿真的兩種模式。
1) Unreal Editor。這種模式下,Unreal Editor加載RoadRunner建構的場景後,直接與Simulink聯合仿真。在聯合仿真的過程中,Unreal Editor一直是開啟并運作狀态。在測試早期,使用者可能需要根據測試需求不斷調整場景設定,那麼便适用于這種模式。
2) Unreal Executable。當測試場景基本固定之後,使用者可以在Unreal Editor中将場景打包成一個可執行的檔案,并在Simulation 3D Scene Configuration子產品中加載該檔案,實作與Simulink的聯合仿真。這種模式下,聯合仿真過程中不再需要打開Unreal Editor,場景是以一個獨立視窗的形式來呈現及運作的,可以減少對電腦資源的消耗。
6. 駕駛員在環系統示例
就如之前所述,根據不同的仿真測試需求,駕駛員在環系統呈現的形式是多種多樣的。本節展示簡單系統和複雜系統兩個示例。
6.1 簡單駕駛員在環系統
該系統中不帶自動駕駛功能,駕駛員操控一個非智能轎車模型。
知乎視訊www.zhihu.com
6.2 自動緊急制動(AEB)的仿真測試平台
該系統中,Speedgoat Baseline Real-Time Target Machine運作AEB算法(算法參考自MATLAB的AEB demo),Speedgoat Performance Real-Time Target Machine運作車輛模型(模型參考MATLAB的示例模型)。
該系統運作視訊如下。
知乎視訊www.zhihu.com