PreScan的愿景是通過提供虛擬驗證功能來彌補仿真和驗證之間的差距。 在實際建立一個PreScan實驗并運行之前,我們先來看看下圖
描繪了四個重要的建模步驟。1.構建場景;2.增加控制系統(tǒng);3.為傳感器系統(tǒng)建模;4.運行實驗。 這些步驟,通常是每次做實驗時都要遵循的。
構建場景
最理想的情況是,首先使用實際的事故數(shù)據。只有這樣,才知道這個場景足夠重要,足以導致事故的發(fā)生。PreScan提供了輕松重建事故發(fā)生的可能性。它有各種各樣的工具,從構建道路和實現(xiàn)抽象的基礎設施元素的模糊視點的簡單方法,到支持近距離碰撞的工具。這些工具的一個較大的部分是在第一個開始的時候就已經涉及到了。
增加控制系統(tǒng)
控制系統(tǒng)的理解應該比傳統(tǒng)的汽車控制系統(tǒng)如ESP、ACC等更寬泛??刂葡到y(tǒng)還包括對象感知算法、傳感器融合算法、決策算法等。
為傳感器系統(tǒng)建模
這可能很簡單,就像實現(xiàn)一個可自由調整的理想化傳感器(在PreScan中已經有了),也可能很復雜,就像實現(xiàn)一個詳細的基于物理學的雷達模型,輸出原始感知信號,由自己的數(shù)據處理算法進行后處理,處理后的數(shù)據被送入自己的DSP模型,負責跟蹤和追蹤目標。由于系統(tǒng)的邊界是靈活的,所以我們在這里更愿意談論"為傳感器系統(tǒng)建模"。
進行實驗
有幾種選擇:只需在Simulink環(huán)境中運行一個實驗,同時在范圍內觀察結果,同時使用基于MATLAB的繪圖腳本對獲得的結果進行后期處理。另一種選擇是讓基于MATLAB的批處理腳本配置、運行和后期處理方案。如果這還不夠的話,作為用戶可以把自己的制動和油門和及方向盤鏈接上,在自己做的實驗場景中進行駕駛。
3.1 例子:快速開始搭建第一個自動駕駛場景仿真模型
本教程將向第一次使用PreScan的用戶解釋如何在PreScan中設置和運行實驗。它提供了使用PreScan的工作指南。
請不要在實驗名稱和實驗地點中使用非西方文字(如日語、韓語、中文等)。
概念
PreScan的基本思路是在圖形用戶界面(GUI)中構建一個實驗,并使用Simulink仿真實驗。在GUI中,可以將庫中的組件拖放到構建區(qū)域中,得到實驗的大致布局??梢酝ㄟ^改變這些組件的屬性來設置細節(jié),使用適當?shù)呐渲么翱诨驅傩跃庉嬈鳎檬髽擞益I到達的屬性編輯器。
在GUI中建立好實驗后,就會準備一個實驗的Simulink模型,稱為:編譯表。用戶可以將自己的算法添加到這個Simulink模型中,并正常播放模型。
Simulink模型只需要準備一次;在Simulink中,有一個按鈕可以更新GUI中的更改。
創(chuàng)建一個實驗場景
單擊 Windows 桌面或開始菜單上的 PreScan GUI 圖標,啟動 PreScan GUI (參見圖形用戶界面Graphical User Interface(GUI) (GUI) 一節(jié))。PreScan 啟動時,會出現(xiàn)以下界面。
要開始建立一個場景,應該有一個實驗。從文件菜單中選擇 "新實驗New Experiment"。
出現(xiàn) "新建實驗"對話框,在該對話框中可以命名實驗,描述作者,并給出實驗的簡短描述。
實驗位置是實驗的保存目錄。上次打開、保存或創(chuàng)建實驗的實驗位置將保存在窗口注冊表中。當啟動MATLAB®時,它將在這個位置打開。
需要進一步設置實驗類型和實驗采樣率。
實驗完成后,左側的預掃描積木庫就會變成可用的,圖標會變成正常的顏色,表示現(xiàn)在可以使用。
底層
從為實驗創(chuàng)建一個底層開始。從 "環(huán)境 "選項卡 "環(huán)境"(底層(2-D))中選擇 "草",然后將其拖放到 "建立區(qū)域 "中??梢栽趯傩跃庉嬈鲄^(qū)域中設置底層的位置和方向。
道路
第二步是建立道路網。從基礎設施庫中選擇環(huán)形路,然后將其拖到構建區(qū)域。注意在屬性編輯區(qū)中可以設置以下屬性:方向、車道寬度、半徑等。
軌跡
第三步是創(chuàng)建軌跡。從中間的任務欄中選擇繼承路徑圖標(下圖中的中間圖標)。
當用鼠標懸停在環(huán)形路上時,會出現(xiàn)黃色的圓圈。這些是該路段的入口點和出口點。選擇左邊入口的下圓圈,選擇右邊出口的上圓圈。鼠標左擊兩下,路徑就會自動生成。
路徑考慮到了實驗的默認設置:例如,在道路右側行駛,在環(huán)島上逆時針行駛。用戶的首選項可以在 "設置/首選項Settings / Preferences "中進行設置。
執(zhí)行器
現(xiàn)在我們將在創(chuàng)建的路徑上附加一個執(zhí)行器。從執(zhí)行器庫中選擇馬自達RX8,然后將其拖到Build區(qū)域。
當角色被拖動到路徑上時,路徑將被高亮顯示。在這種情況下,如果你松開鼠標按鈕,就會自動創(chuàng)建一個軌跡,并將執(zhí)行器連接到軌跡上。請注意,一系列的點是如何提供軌跡的可視化表示的,現(xiàn)在汽車被連接到它的軌跡。
通過在Build區(qū)域或實驗樹中右擊所需的actor,并從出現(xiàn)的下拉菜單中選擇對象配置,打開actor的對象配置對話框??匆幌逻@個角色是否連接到了PathObject_1和SpeedProfile_1。
在執(zhí)行器庫中選擇第二輛車,將其拖到環(huán)島的右側出口處。將方向(偏航)設置為150度,讓它面向左邊。單擊 "方向 "旁邊的"+"-圖標,單獨顯示偏航方向。
縮放
使用工具欄中的縮放按鈕,將場景縮放到所需視圖。
傳感器
通過以下顯示圖標,可以切換傳感器光束、攝像頭光束、重心、GPS坐標和車道定義的可見度。通過使用標記的按鈕,設置傳感器光束和攝像頭光束的可見性。這些設置不作為實驗的一部分保存。
從傳感器庫中選擇AIR,并將其拖到Build區(qū)的Mazda上。
出現(xiàn)AIR對象配置對話框,在該對話框中可以對AIR傳感器進行配置。AIR配置參數(shù)有:位置、方向、光束范圍和光束掃射角度。
單擊 "確定 "后,AIR傳感器出現(xiàn)在實驗樹中。
攝像機
在仿真過程中,可以添加視覺輔助攝像機(Visu Aids)。選擇 "人眼視圖",選擇具有人眼等屬性的攝像機。
當攝像機被拖到車輛上時,可以通過選擇駕駛員或副駕駛的眼睛位置,用左、右標示的方式將攝像機固定在車輛上。
現(xiàn)在的實驗應該和下面這個圖類似。
保存
保存實驗
匯編表
所有在PreScan GUI中創(chuàng)建的信息都被收集到Simulink模型中進行仿真。這個Simulink模型也被稱為 "匯編表",因為在PreScan中運行實驗所必需的信息都被有效地收集在這個Simulink匯編表中。用戶在這個編譯表中可以找到的元素包括在GUI中選擇的Simulink模型,如動力學模型,使用GUI定義的軌跡信息,以及到PreScan標準傳感器模型和PreScan仿真引擎的端口。
PreScan有一個名為Parse& Build的序列,用于制作編譯表。Parse是用來檢查仿真的不同組件的配置,如執(zhí)行器、軌跡和傳感器。在Build階段,編譯表被實際建立。只有在Parse階段成功完成后,才能建立一個編譯表。
如果Parse結果沒有失敗,可以編譯實驗。
3D動畫
仿真是以3D可視化的。要做到這一點,需要通過選擇顯示3D世界來啟動VisViewer。
或使用工具欄中的藍色3D圖標,從"文件 "菜單或使用 "工具條 "中的藍色3D圖標。2021版的動畫圖標主要是顯示在創(chuàng)建場景的時候的3D預覽圖,其可以在創(chuàng)建過程中實時更新,但是仿真運行需要通過SIMULINK聯(lián)合仿真才能將實時動畫調出,并跟隨時間實時變化。
VisViewer出現(xiàn),放大到場景的外部邊界。
如果在打開VisViewer并生成編譯表后,將執(zhí)行器添加到實驗中,則需要重新生成VisViewer和編譯表。
現(xiàn)在,實驗已經全部完成?,F(xiàn)在是時候開始仿真了。實驗樹現(xiàn)在看起來應該是這樣的
仿真
在GUI中創(chuàng)建了實驗后,就進入了最重要的階段:仿真階段,在這個階段中,實驗要進行仿真。仿真環(huán)境可以通過文件菜單中的Invoke Simulink運行模式,通過控制欄中的圖標,或者直接通過開始菜單中的快捷方式或桌面上的快捷方式(兩者都有相同的圖標)來達到仿真環(huán)境。
MATLAB啟動了。
等到MATLAB中的命令窗口中出現(xiàn)以下幾行。這表明MATLAB已經正確配置了PreScan。
=================================================
MATLAB has been configured for PreScan R2021.0
=================================================
轉到GUI保存實驗的目錄下。注意,MATLAB已經在 "實驗位置 "目錄下啟動了。
打開實驗的編譯表。編譯表的名稱總是在實驗名稱后面加上_cs.mdl或_cs.slx。在本例中是Experiment_FirstStart_cs.slx。實驗的Simulink模型打開
雙擊馬自達_RX8_1車型。就會出現(xiàn)以下(子)系統(tǒng)。在這個系統(tǒng)中,所有在GUI中定義的元素都存在:空氣傳感器和軌跡。還有一個額外的元素出現(xiàn)了。車輛狀態(tài)。這個元素與PreScan仿真引擎進行通信。
寶馬的模型看起來有點不同,因為沒有給這輛車分配傳感器或軌跡。為了幫助你構造你的實驗,我們創(chuàng)建了一個空的動力學塊。
通過按下Simulink中的Play按鈕()開始仿真。在VisViewer中,可以在仿真時間內跟蹤仿真進度。
現(xiàn)在來看一下VisViewer。從VisViewer的工具欄中選擇有兩個窗口的視圖。在底部窗口中點擊,從工具欄的下拉菜單中選擇HumanView_1。重新運行仿真(Simulink®中的播放按鈕),并查看VisViewer的兩個窗口。最多可以設置四個攝像頭來跟蹤場景。
現(xiàn)在我們通過添加Simulink模型中的SELF-port和AIR-sensor信號,來看看Simulink模型中的顯示塊。打開Simulink庫瀏覽器(按你習慣的方法),將一個Mux和一個顯示塊拖到實驗的Simulink模型中。這些塊可以分別在信號路由和Sinks下找到。
下圖中,可以看到傳感器的SELF端口和AIR傳感器的信號。
SELF端口顯示的是行為體本身的信息。輸出的是實驗的全局軸系統(tǒng)中的位置,以及GPS坐標。
AIR傳感器檢測到一個物體,產生6個信號的輸出。在沒有檢測到物體的情況下,輸出為0。輸出分別是范圍、方位角、仰角、ID、速度和航向。下圖顯示了這些輸出。
關于AIR傳感器的詳細說明,后期小明師兄會和大家一起學習,歡迎關注,點贊,轉發(fā)三連。
結論
實驗已經準備好了。它可以使用常規(guī)的Simulink方法插入自己的塊(控制邏輯、車輛動力學)。Prescan仿真可以在連續(xù)模式和離散模式下運行。
當添加自己的塊時,在離散模式下運行仿真時,編譯表不應該包含任何連續(xù)狀態(tài),這一點很重要。