加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 3.1 例子:快速開(kāi)始搭建第一個(gè)自動(dòng)駕駛場(chǎng)景仿真模型 
    • 結(jié)論
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

分享 | PreScan快速入門(mén)到精通:第四講 快速搭建第一個(gè)自動(dòng)駕駛仿真模型

2021/08/31
1767
閱讀需 15 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

PreScan的愿景是通過(guò)提供虛擬驗(yàn)證功能來(lái)彌補(bǔ)仿真和驗(yàn)證之間的差距。 在實(shí)際建立一個(gè)PreScan實(shí)驗(yàn)并運(yùn)行之前,我們先來(lái)看看下圖                           

描繪了四個(gè)重要的建模步驟:1.構(gòu)建場(chǎng)景;2.增加控制系統(tǒng);3. 為傳感器系統(tǒng)建模;4.運(yùn)行實(shí)驗(yàn)。 這些步驟,通常是每次做實(shí)驗(yàn)時(shí)都要遵循的。

構(gòu)建場(chǎng)景

最理想的情況是,首先使用實(shí)際的事故數(shù)據(jù)。只有這樣,才知道這個(gè)場(chǎng)景足夠重要,足以導(dǎo)致事故的發(fā)生。PreScan提供了輕松重建事故發(fā)生的可能性。它有各種各樣的工具,從構(gòu)建道路和實(shí)現(xiàn)抽象的基礎(chǔ)設(shè)施元素的模糊視點(diǎn)的簡(jiǎn)單方法,到支持近距離碰撞的工具。這些工具的一個(gè)較大的部分是在第一個(gè)開(kāi)始的時(shí)候就已經(jīng)涉及到了。

增加控制系統(tǒng)

控制系統(tǒng)的理解應(yīng)該比傳統(tǒng)的汽車控制系統(tǒng)如ESP、ACC等更寬泛??刂葡到y(tǒng)還包括對(duì)象感知算法、傳感器融合算法、決策算法等。

為傳感器系統(tǒng)建模

這可能很簡(jiǎn)單,就像實(shí)現(xiàn)一個(gè)可自由調(diào)整的理想化傳感器(在PreScan中已經(jīng)有了),也可能很復(fù)雜,就像實(shí)現(xiàn)一個(gè)詳細(xì)的基于物理學(xué)的雷達(dá)模型,輸出原始感知信號(hào),由自己的數(shù)據(jù)處理算法進(jìn)行后處理,處理后的數(shù)據(jù)被送入自己的DSP模型,負(fù)責(zé)跟蹤和追蹤目標(biāo)。由于系統(tǒng)的邊界是靈活的,所以我們?cè)谶@里更愿意談?wù)?quot;為傳感器系統(tǒng)建模"。

進(jìn)行實(shí)驗(yàn)

有幾種選擇:只需在Simulink環(huán)境中運(yùn)行一個(gè)實(shí)驗(yàn),同時(shí)在范圍內(nèi)觀察結(jié)果,同時(shí)使用基于MATLAB的繪圖腳本對(duì)獲得的結(jié)果進(jìn)行后期處理。另一種選擇是讓基于MATLAB的批處理腳本配置、運(yùn)行和后期處理方案。如果這還不夠的話,作為用戶可以把自己的制動(dòng)和油門(mén)和及方向盤(pán)鏈接上,在自己做的實(shí)驗(yàn)場(chǎng)景中進(jìn)行駕駛。

3.1 例子:快速開(kāi)始搭建第一個(gè)自動(dòng)駕駛場(chǎng)景仿真模型 

本教程將向第一次使用PreScan的用戶解釋如何在PreScan中設(shè)置和運(yùn)行實(shí)驗(yàn)。它提供了使用PreScan的工作指南。 

請(qǐng)不要在實(shí)驗(yàn)名稱和實(shí)驗(yàn)地點(diǎn)中使用非西方文字(如日語(yǔ)、韓語(yǔ)、中文等)。 

概念

PreScan的基本思路是在圖形用戶界面(GUI)中構(gòu)建一個(gè)實(shí)驗(yàn),并使用Simulink仿真實(shí)驗(yàn)。在GUI中,可以將庫(kù)中的組件拖放到構(gòu)建區(qū)域中,得到實(shí)驗(yàn)的大致布局。可以通過(guò)改變這些組件的屬性來(lái)設(shè)置細(xì)節(jié),使用適當(dāng)?shù)呐渲么翱诨驅(qū)傩跃庉嬈?,用鼠?biāo)右鍵到達(dá)的屬性編輯器。

在GUI中建立好實(shí)驗(yàn)后,就會(huì)準(zhǔn)備一個(gè)實(shí)驗(yàn)的Simulink模型,稱為:編譯表。用戶可以將自己的算法添加到這個(gè)Simulink模型中,并正常播放模型。 

Simulink模型只需要準(zhǔn)備一次;在Simulink中,有一個(gè)按鈕可以更新GUI中的更改。 

創(chuàng)建一個(gè)實(shí)驗(yàn)場(chǎng)景

單擊 Windows 桌面或開(kāi)始菜單上的 PreScan GUI 圖標(biāo),啟動(dòng) PreScan GUI (參見(jiàn)圖形用戶界面Graphical User Interface(GUI) (GUI) 一節(jié))。PreScan 啟動(dòng)時(shí),會(huì)出現(xiàn)以下界面。

 

 

要開(kāi)始建立一個(gè)場(chǎng)景,應(yīng)該有一個(gè)實(shí)驗(yàn)。從文件菜單中選擇 "新實(shí)驗(yàn)New Experiment"。 

 

出現(xiàn) "新建實(shí)驗(yàn)"對(duì)話框,在該對(duì)話框中可以命名實(shí)驗(yàn),描述作者,并給出實(shí)驗(yàn)的簡(jiǎn)短描述。

實(shí)驗(yàn)位置是實(shí)驗(yàn)的保存目錄。上次打開(kāi)、保存或創(chuàng)建實(shí)驗(yàn)的實(shí)驗(yàn)位置將保存在窗口注冊(cè)表中。當(dāng)啟動(dòng)MATLAB®時(shí),它將在這個(gè)位置打開(kāi)。

需要進(jìn)一步設(shè)置實(shí)驗(yàn)類型和實(shí)驗(yàn)采樣率。

 

實(shí)驗(yàn)完成后,左側(cè)的預(yù)掃描積木庫(kù)就會(huì)變成可用的,圖標(biāo)會(huì)變成正常的顏色,表示現(xiàn)在可以使用。 

底層

從為實(shí)驗(yàn)創(chuàng)建一個(gè)底層開(kāi)始。從 "環(huán)境 "選項(xiàng)卡 "環(huán)境"(底層(2-D))中選擇 "草",然后將其拖放到 "建立區(qū)域 "中??梢栽趯傩跃庉嬈鲄^(qū)域中設(shè)置底層的位置和方向。 

 

道路

第二步是建立道路網(wǎng)。從基礎(chǔ)設(shè)施庫(kù)中選擇環(huán)形路,然后將其拖到構(gòu)建區(qū)域。注意在屬性編輯區(qū)中可以設(shè)置以下屬性:方向、車道寬度、半徑等。 

 

軌跡

第三步是創(chuàng)建軌跡。從中間的任務(wù)欄中選擇繼承路徑圖標(biāo)(下圖中的中間圖標(biāo))。

 

當(dāng)用鼠標(biāo)懸停在環(huán)形路上時(shí),會(huì)出現(xiàn)黃色的圓圈。這些是該路段的入口點(diǎn)和出口點(diǎn)。選擇左邊入口的下圓圈,選擇右邊出口的上圓圈。鼠標(biāo)左擊兩下,路徑就會(huì)自動(dòng)生成。

 

路徑考慮到了實(shí)驗(yàn)的默認(rèn)設(shè)置:例如,在道路右側(cè)行駛,在環(huán)島上逆時(shí)針行駛。用戶的首選項(xiàng)可以在 "設(shè)置/首選項(xiàng)Settings / Preferences "中進(jìn)行設(shè)置。

執(zhí)行器

現(xiàn)在我們將在創(chuàng)建的路徑上附加一個(gè)執(zhí)行器。從執(zhí)行器庫(kù)中選擇馬自達(dá)RX8,然后將其拖到Build區(qū)域。

當(dāng)角色被拖動(dòng)到路徑上時(shí),路徑將被高亮顯示。在這種情況下,如果你松開(kāi)鼠標(biāo)按鈕,就會(huì)自動(dòng)創(chuàng)建一個(gè)軌跡,并將執(zhí)行器連接到軌跡上。請(qǐng)注意,一系列的點(diǎn)是如何提供軌跡的可視化表示的,現(xiàn)在汽車被連接到它的軌跡。 

 

 

通過(guò)在Build區(qū)域或?qū)嶒?yàn)樹(shù)中右擊所需的actor,并從出現(xiàn)的下拉菜單中選擇對(duì)象配置,打開(kāi)actor的對(duì)象配置對(duì)話框??匆幌逻@個(gè)角色是否連接到了PathObject_1和SpeedProfile_1。 

 

在執(zhí)行器庫(kù)中選擇第二輛車,將其拖到環(huán)島的右側(cè)出口處。將方向(偏航)設(shè)置為150度,讓它面向左邊。單擊 "方向 "旁邊的"+"-圖標(biāo),單獨(dú)顯示偏航方向。

 

縮放

使用工具欄中的縮放按鈕,將場(chǎng)景縮放到所需視圖。

傳感器

通過(guò)以下顯示圖標(biāo),可以切換傳感器光束、攝像頭光束、重心、GPS坐標(biāo)和車道定義的可見(jiàn)度。通過(guò)使用標(biāo)記的按鈕,設(shè)置傳感器光束和攝像頭光束的可見(jiàn)性。這些設(shè)置不作為實(shí)驗(yàn)的一部分保存。

從傳感器庫(kù)中選擇AIR,并將其拖到Build區(qū)的Mazda上。

 

出現(xiàn)AIR對(duì)象配置對(duì)話框,在該對(duì)話框中可以對(duì)AIR傳感器進(jìn)行配置。AIR配置參數(shù)有:位置、方向、光束范圍和光束掃射角度。

 

單擊 "確定 "后,AIR傳感器出現(xiàn)在實(shí)驗(yàn)樹(shù)中。

攝像機(jī)

在仿真過(guò)程中,可以添加視覺(jué)輔助攝像機(jī)(Visu Aids)。選擇 "人眼視圖",選擇具有人眼等屬性的攝像機(jī)。

 

當(dāng)攝像機(jī)被拖到車輛上時(shí),可以通過(guò)選擇駕駛員或副駕駛的眼睛位置,用左、右標(biāo)示的方式將攝像機(jī)固定在車輛上。

 

 

現(xiàn)在的實(shí)驗(yàn)應(yīng)該和下面這個(gè)圖類似。 

 

保存 

保存實(shí)驗(yàn)

匯編表

所有在PreScan GUI中創(chuàng)建的信息都被收集到Simulink模型中進(jìn)行仿真。這個(gè)Simulink模型也被稱為 "匯編表",因?yàn)樵赑reScan中運(yùn)行實(shí)驗(yàn)所必需的信息都被有效地收集在這個(gè)Simulink匯編表中。用戶在這個(gè)編譯表中可以找到的元素包括在GUI中選擇的Simulink模型,如動(dòng)力學(xué)模型,使用GUI定義的軌跡信息,以及到PreScan標(biāo)準(zhǔn)傳感器模型和PreScan仿真引擎的端口。

PreScan有一個(gè)名為Parse& Build的序列,用于制作編譯表。Parse是用來(lái)檢查仿真的不同組件的配置,如執(zhí)行器、軌跡和傳感器。在Build階段,編譯表被實(shí)際建立。只有在Parse階段成功完成后,才能建立一個(gè)編譯表。 

 

如果Parse結(jié)果沒(méi)有失敗,可以編譯實(shí)驗(yàn)。

 

3D動(dòng)畫(huà)

仿真是以3D可視化的。要做到這一點(diǎn),需要通過(guò)選擇顯示3D世界來(lái)啟動(dòng)VisViewer。

或使用工具欄中的藍(lán)色3D圖標(biāo),從"文件 "菜單或使用 "工具條 "中的藍(lán)色3D圖標(biāo)。2021版的動(dòng)畫(huà)圖標(biāo)主要是顯示在創(chuàng)建場(chǎng)景的時(shí)候的3D預(yù)覽圖,其可以在創(chuàng)建過(guò)程中實(shí)時(shí)更新,但是仿真運(yùn)行需要通過(guò)SIMULINK聯(lián)合仿真才能將實(shí)時(shí)動(dòng)畫(huà)調(diào)出,并跟隨時(shí)間實(shí)時(shí)變化。

 

VisViewer出現(xiàn),放大到場(chǎng)景的外部邊界。 

如果在打開(kāi)VisViewer并生成編譯表后,將執(zhí)行器添加到實(shí)驗(yàn)中,則需要重新生成VisViewer和編譯表。 

現(xiàn)在,實(shí)驗(yàn)已經(jīng)全部完成?,F(xiàn)在是時(shí)候開(kāi)始仿真了。實(shí)驗(yàn)樹(shù)現(xiàn)在看起來(lái)應(yīng)該是這樣的

仿真

在GUI中創(chuàng)建了實(shí)驗(yàn)后,就進(jìn)入了最重要的階段:仿真階段,在這個(gè)階段中,實(shí)驗(yàn)要進(jìn)行仿真。仿真環(huán)境可以通過(guò)文件菜單中的Invoke Simulink運(yùn)行模式,通過(guò)控制欄中的圖標(biāo),或者直接通過(guò)開(kāi)始菜單中的快捷方式或桌面上的快捷方式(兩者都有相同的圖標(biāo))來(lái)達(dá)到仿真環(huán)境。 

MATLAB啟動(dòng)了。

等到MATLAB中的命令窗口中出現(xiàn)以下幾行。這表明MATLAB已經(jīng)正確配置了PreScan。

=================================================

MATLAB has been configured for PreScan R2021.0

=================================================

轉(zhuǎn)到GUI保存實(shí)驗(yàn)的目錄下。注意,MATLAB已經(jīng)在 "實(shí)驗(yàn)位置 "目錄下啟動(dòng)了。

 

打開(kāi)實(shí)驗(yàn)的編譯表。編譯表的名稱總是在實(shí)驗(yàn)名稱后面加上_cs.mdl或_cs.slx。在本例中是Experiment_FirstStart_cs.slx。實(shí)驗(yàn)的Simulink模型打開(kāi)

雙擊馬自達(dá)_RX8_1車型。就會(huì)出現(xiàn)以下(子)系統(tǒng)。在這個(gè)系統(tǒng)中,所有在GUI中定義的元素都存在:空氣傳感器和軌跡。還有一個(gè)額外的元素出現(xiàn)了。車輛狀態(tài)。這個(gè)元素與PreScan仿真引擎進(jìn)行通信。 

寶馬的模型看起來(lái)有點(diǎn)不同,因?yàn)闆](méi)有給這輛車分配傳感器或軌跡。為了幫助你構(gòu)造你的實(shí)驗(yàn),我們創(chuàng)建了一個(gè)空的動(dòng)力學(xué)塊。 

通過(guò)按下Simulink中的Play按鈕()開(kāi)始仿真。在VisViewer中,可以在仿真時(shí)間內(nèi)跟蹤仿真進(jìn)度。

現(xiàn)在來(lái)看一下VisViewer。從VisViewer的工具欄中選擇有兩個(gè)窗口的視圖。在底部窗口中點(diǎn)擊,從工具欄的下拉菜單中選擇HumanView_1。重新運(yùn)行仿真(Simulink®中的播放按鈕),并查看VisViewer的兩個(gè)窗口。最多可以設(shè)置四個(gè)攝像頭來(lái)跟蹤場(chǎng)景。

現(xiàn)在我們通過(guò)添加Simulink模型中的SELF-port和AIR-sensor信號(hào),來(lái)看看Simulink模型中的顯示塊。打開(kāi)Simulink庫(kù)瀏覽器(按你習(xí)慣的方法),將一個(gè)Mux和一個(gè)顯示塊拖到實(shí)驗(yàn)的Simulink模型中。這些塊可以分別在信號(hào)路由和Sinks下找到。

下圖中,可以看到傳感器的SELF端口和AIR傳感器的信號(hào)。 

 

 

SELF端口顯示的是行為體本身的信息。輸出的是實(shí)驗(yàn)的全局軸系統(tǒng)中的位置,以及GPS坐標(biāo)。

AIR傳感器檢測(cè)到一個(gè)物體,產(chǎn)生6個(gè)信號(hào)的輸出。在沒(méi)有檢測(cè)到物體的情況下,輸出為0。輸出分別是范圍、方位角、仰角、ID、速度和航向。下圖顯示了這些輸出。

關(guān)于AIR傳感器的詳細(xì)說(shuō)明,后期小明師兄會(huì)和大家一起學(xué)習(xí),歡迎關(guān)注,點(diǎn)贊,轉(zhuǎn)發(fā)三連。 

結(jié)論

實(shí)驗(yàn)已經(jīng)準(zhǔn)備好了。它可以使用常規(guī)的Simulink方法插入自己的塊(控制邏輯、車輛動(dòng)力學(xué))。Prescan仿真可以在連續(xù)模式和離散模式下運(yùn)行。

當(dāng)添加自己的塊時(shí),在離散模式下運(yùn)行仿真時(shí),編譯表不應(yīng)該包含任何連續(xù)狀態(tài),這一點(diǎn)很重要。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜