PreScan產(chǎn)品功能包含如下:
1. Pre-processor or GUI: 預(yù)處理器或GUI
2. Engineering Workspace or Compilation Sheet:工程工作區(qū)或編譯表
3. Main modules:主要模塊
4. Process Manager:進(jìn)程管理
5. Miscellaneous:其它項
1.1 預(yù)處理器或GUI
GUI的關(guān)鍵是其預(yù)定義和可自由配置的庫元素(library elements),能夠使用拖放操作快速構(gòu)建測試場景。通過查看可生成的報告(reporting),預(yù)覽(preview)和解析(parsing)等模式,幫助用戶了解已建立的場景類型及已經(jīng)使用的庫元素及相應(yīng)的配置。這些功能還可以幫助用戶確定試驗中需要在實際在Engineering Workspace中執(zhí)行試驗之前要解決的問題。同時GUI還可以完成自動轉(zhuǎn)換較早版本的試驗場景模型。
PreScan 2021中預(yù)處理器主要的部分,如下圖所示:
在標(biāo)準(zhǔn)Microsoft Windows類型的控件和工具欄旁邊,可以看到:
->在左側(cè)的選項卡代表可用的各種庫元素。庫元素包括執(zhí)行器(actors)(汽車,動畫人物,卡車等),基礎(chǔ)元素(infrastructural elements)(建筑物,道路,樹木等)和傳感器(sensors)(以及其他傳感器)
->右側(cè)上部是稱作實驗樹(experiment tree):顯示了實驗中元素之間的關(guān)系。使用實驗樹,可以快速查看汽車上安裝了哪種類型的傳感器以及為其分配了哪些軌跡。在屬性編輯器中不直接需要或不直接可見的信息(位于實驗樹的下方和下方)可以使用“對象配置”對話框訪問,該對話框在將鼠標(biāo)懸停在所選對象上時按鼠標(biāo)右鍵即可調(diào)用。同時,其他選項(例如復(fù)制,粘貼和編輯)也可以通過這種方式訪問。當(dāng)然,當(dāng)將鼠標(biāo)懸停在構(gòu)建區(qū)域中的對象本身上時,如果按下相同的鼠標(biāo)按鈕,也可以調(diào)用相同的選項。
->在中間的 build area區(qū)域中,可以俯視PreScan世界中放置的所有元素,它們是設(shè)置實驗的主要用戶界面。
1.1.1 Library items
預(yù)處理部分包含五種類別的library,他們分別是:
->帶有被稱為路基underlays環(huán)境(Environment)
->基礎(chǔ)設(shè)施(Infrastructure),包括路段(road segment),建筑物(buildings),可擴(kuò)展的所謂抽象對象(abstract objects)(稍后將詳細(xì)介紹),自然元素(Nature Elements)和交通標(biāo)志(traffic signs)等元素;
->具有諸如汽車(cars & motors),卡車(trucks)和公共汽車(busses),人類(humans)等元素的執(zhí)行器,及用于標(biāo)定傳感器讀數(shù)的標(biāo)定元素(calibration elements)。
->具有預(yù)先定義的人類視覺(human view)的VisuAids,可以將其拖放到汽車或大地坐標(biāo)系上。
下面對于上述元素庫將做一些簡要的說明:
執(zhí)行器(Actor)
執(zhí)行器是那些在試驗場景中顯示的有效目標(biāo),通常指車輛和行人。
執(zhí)行器具有傳感器屬性,動力學(xué)模型,控制器模型和動畫屬性等,例如,可以點亮剎車燈并使車輪轉(zhuǎn)動。執(zhí)行器也可以綁定到它們必須遵循的軌跡。此處提供了一個執(zhí)行器輸入樣本樣板,其中顯示了簡單動力學(xué)模型(通常在PreScan中可用)在汽車上的使用情況。
基于MATLAB / Simulink的動力學(xué)和控制器模型,用戶可以方便地實現(xiàn)自己模型的開發(fā)。同時動力學(xué)模型包括可能使用的CarSim和VeDyna等比較廣泛使用的動力學(xué)模型.
執(zhí)行器中非常特殊的類別是行人的類別。在PreScan中,可以使用三個人:騎自行車的人(cyclist),摩托車手(motorcyclist)和動畫的人(animated human) (具有三種不同的姿勢:靜止,行走和奔跑)。請注意,騎自行車的人和摩托車手實際上可以操縱。如下圖所示:
路段Road segments
可以在“基礎(chǔ)結(jié)構(gòu)庫( Infrastructure)”選項卡下找到路段。除了直線路段(straights)和折彎路段(bends)等標(biāo)準(zhǔn)路段外,用戶還會發(fā)現(xiàn)特殊的變體,例如入口和出口車道(entrance and exit lanes),合并路段(merge segment)和彎曲(curved road segments)路段。
所有路段類型均可由用戶自由配置:可以設(shè)置車道數(shù)量,行車方向,線型和顏色,環(huán)形交叉路口的車道數(shù)量等。此處的插圖顯示了可以在一分鐘內(nèi)完成的示例 :
攝像頭傳感器Camera sensor
可以將自己的單目或多目攝像頭傳感器拖放并安裝在執(zhí)行器上,當(dāng)其在四處行駛時,會將運(yùn)行時的周圍環(huán)境輸出成攝像機(jī)圖像。下圖是各種狀態(tài)下的屏幕截圖以及“編譯表”中的顯示形式:
TIS 傳感器
該傳感器結(jié)合了雷達(dá)和激光雷達(dá)技術(shù),因此得名:技術(shù)獨(dú)立傳感器(Technology Independent Sensor TIS)。 它提供了三種基本的掃描感知模式,即:
->線掃描(Line Scan):這是最常用的模式,在該模式中,連續(xù)發(fā)射光束并水平或垂直捕獲信息。
->Z掃描(Z-Scan beamwise):Z掃描是執(zhí)行Z掃描模式的更為復(fù)雜的掃描形式;
->矩陣掃描(Z-Scan arraywise):可以將矩陣掃描與使用PC屏幕捕獲工具捕獲圖像進(jìn)行比較:以用戶指定的捕獲頻率捕獲整個圖像并檢索信息。當(dāng)然,此信息不是在位圖圖像(RGB值)中找到的信息,而是特定的TIS信息,例如方位角和仰角等。
下圖很好地說明了每個捕獲周期內(nèi)各種掃描模式之間的差異。藍(lán)色單元格顯示光束實際上在照亮場景的位置。
建筑物Buildings
可以在“基礎(chǔ)結(jié)構(gòu)庫(Infrastructure)”選項卡下找到建筑物。這是一些可用建筑物的樣本。還要注意樹木。這些樹使能通過檢測樹枝和樹葉感知到遮擋!
抽象目標(biāo)Abstract objects
也可以在“基礎(chǔ)結(jié)構(gòu)庫(Infrastructure)”選項卡下找到抽象對象。抽象對象用于裝飾場景,而不必過多關(guān)注細(xì)節(jié)等。所有抽象對象都是可伸縮的,可以設(shè)定傳感器屬性。以下對象已包含為抽象對象:教堂,工廠,房屋,辦公室,矩形框等。
交通信號Traffic signs
在“基礎(chǔ)結(jié)構(gòu)庫(Infrastructure)”選項中,同時可以快速創(chuàng)建交通信號標(biāo)志
車輛操縱定義Car Maneuver Definition
在GUI界面中使用專用的工具可以很容易進(jìn)行車輛操縱定義。假設(shè)想在兩輛汽車之間設(shè)計一次碰撞事故。首先通過將路徑組合在一起,創(chuàng)建需求的道路模型??捎玫木€段包括直線(straight line,),圓弧(arc),車道變化(lane change),高程變化(elevation change),貝塞爾曲線(Bézier curve)和回旋曲線(clothoid curve)。通過為它設(shè)定一個執(zhí)行器actor,同時創(chuàng)建一條軌跡(它基本上是路徑+速度信息)??梢允褂檬髽?biāo)或使用路徑編輯器來修改路徑。該界面還允許縮放和選擇各個細(xì)分類型。使用速度曲線編輯器可以設(shè)置速度曲線。在下面的圖片中,顯示了兩個軌跡以及路徑編輯器和速度曲線編輯器。
當(dāng)定義了另一個屬于不同執(zhí)行器的軌跡時,可以通過同步角色位置來重構(gòu)接近碰撞。通過移動動畫滑塊并通過沿其軌跡移動執(zhí)行器,可以使執(zhí)行器彼此相對。一旦使用“同步(synchronize button)”按鈕,軌跡就會隨著時間的推移而發(fā)生變化,從而使執(zhí)行器在正確的時間處在正確的位置。PreScan通過引入在所選軌跡的開始或結(jié)束處的延遲時間實現(xiàn)自動計算。
解析和編譯機(jī)制Parse & Build Mechanism
所有警告對話框均已集中到一個名為“解析和編譯(parse & build)”的模塊中。在解析過程中,首先要檢查實驗仿真速率的一致性。失敗時,給出了明確的問題描述,用戶可以為識別的問題區(qū)域重新設(shè)置。成功完成所有解析步驟后,用戶可以選擇編譯實驗。編譯過程涉及生成3D可視化所需的所有文件,并通過編譯(Compilation Sheet)表進(jìn)行實驗。
PreScan的調(diào)度程序(scheduler)是使用直接鏈接到parse&build的檢查機(jī)制。調(diào)度程序顯示各個模塊要求和/或要求的模擬速率。調(diào)度程序的這張圖說明了PreScan的工作原理:在底部,PreScan引擎提供的用戶定義的模擬步長。在右側(cè),可以看到“硬件在環(huán)”接口,在新版本中獲得更新。
報告Reporting
存在兩種類型的報告,即。關(guān)于對象的報告,顯示它們具有什么屬性(傳感器屬性,控制器的名稱或類型等),以及關(guān)于傳感器的報告,顯示哪個傳感器用于感知哪些對象及實現(xiàn)什么功能。
自動錯誤報告 Auto-error reporting
程序執(zhí)行異常(即程序崩潰)時,PreScan會自動創(chuàng)建一個錯誤信息文件。該文件包含日志文件,以zip格式本身經(jīng)歷或?qū)е卤罎⒌膶嶒炓约吧傻腻e誤消息的屏幕轉(zhuǎn)儲。請注意,也可以在不太嚴(yán)重的程序錯誤時手動生成此報告。
1.2 工程工作空間或編譯表(Engineering Workspace or Compilation Sheet)
編譯表是PreScan仿真引擎的從屬,并具有各種PreScan功能之間的所有連接。特殊的MATLAB / Simulink交互機(jī)制,使僅在PreScan生成和插入的特定塊的需要時刷新。在用戶重新生成實驗后,將保留插入的Simulink塊或模型,這可以避免大量的反工,節(jié)省大量的時間。例如,當(dāng)使用GUI更改特定傳感器的設(shè)置。
編譯表中最引人注目的元素是執(zhí)行器。其具有輸入和輸出端口。例如,中間的汽車(Toyota Previa)上裝有三個系統(tǒng)。GPS系統(tǒng)(在PreScan中稱為SELF端口),一個稱為AIR(理想化傳感器)的傳感器和一個立體攝像機(jī)系統(tǒng)。右上角有一個表格,告訴實驗中有哪些元素以及它們具有哪些特定的頂級屬性。還要注意中間引入的塊:該塊輸出碰撞檢測信息。
在顯示頂部的汽車下方(馬自達(dá)RX-8)雙擊時,會發(fā)現(xiàn)由PreScan GUI生成的更多功能。PreScan生成的所有塊均為灰色,而用戶插入的塊默認(rèn)為黑色。在PreScan的GUI中定義了可以廣播的各種消息。除了這些塊外,還有一個GUI插入的軌跡和簡單的動力學(xué)模型。
3D可視化觀察器The 3D Visualization Viewer
3D可視化觀察器用于可視化已建立的實驗??梢允褂妙A(yù)定義的視點(例如頂視圖和默認(rèn)場景視圖),也可以在需要時定義自己的視點??梢暬^察器帶有使用鼠標(biāo)的直觀導(dǎo)航。同時也可以使用全屏模式,提高駕駛員對仿真場景的體驗效果。
3D可視化查看器還用于生成影片和/或所選視點的單個圖片。 支持的單個圖片格式包括png和jpg.
1.3 主要模塊Main Modules
為了更好地了解產(chǎn)品功能和特性,應(yīng)該首先了解PreScan包含的三個主要模塊:
預(yù)處理模塊Pre-processor 也可叫做 'the GUI':
預(yù)處理模塊用于定義和修改試驗工況和場景,Prescan試驗場景通常包含一個定義的虛擬世界(道路、樹木、建筑等),定義的執(zhí)行器(行人、車輛等),其中每一個執(zhí)行器都有自己的控制器或者動力學(xué)模型或者感知模型,及其它信息,例如跟隨路徑駕駛等。
工程工作空間 Engineering W orkspace:
工程工作區(qū)由專用的MATLAB / Simulink交互組成,通常稱為“編譯表”。該交互是PreScan模擬核心的從屬,并具有各個PreScan模塊之間的所有連接。編譯表是工程師進(jìn)行算法研究的主要界面。之所以選擇MATLAB / Simulink,有多種原因,但最重要的是,MATLAB / Simulink是汽車世界上首選的仿真選擇。MATLAB / Simulink中已經(jīng)提供了許多控制和決策算法,可以很容易地將其導(dǎo)入并在進(jìn)行任何轉(zhuǎn)換進(jìn)行重新使用。除此之外,使用MATLAB / Simulink還可以使用現(xiàn)代的V-Cycle開發(fā)工具(由dSPACE等推動)
3D可視觀察器 3D Visualization Viewer:
該模塊為提供了實驗的多種觀測點。例如如果開發(fā)者想通過駕駛員的視角觀看仿真情況!其他選項包括預(yù)定義的視角,例如頂視圖和向北或向南的視圖。其導(dǎo)航控件非常直觀,并提供了廣泛的圖片和動畫生成功能。
還有另外兩個對用戶不可見的模塊:
仿真引擎Simulation Engine:仿真引擎或調(diào)度程序是PreScan的真正核心。在此模塊中,將對傳感器進(jìn)行仿真并計算參與者的位置。它以1:1鏈接到PreScan的MATLAB / Simulink進(jìn)行交互。
進(jìn)程管理模塊Process Manager:進(jìn)程管理器監(jiān)督主要模塊,包括仿真引擎。它同步和調(diào)度模塊之間的各種信息流.
1.4 進(jìn)程管理Process Manager
進(jìn)程管理器監(jiān)控主要模塊GUI,MATLAB和VisServer。它同步和調(diào)度模塊之間的各種信息流。界面中的按鈕可用于啟動這些模塊,下圖為PreScan配置的Windows命令窗口。在此窗口中,可以使用prescan run命令運(yùn)行已編譯的PreScan實驗。
當(dāng)啟動GUI或Engineering Workspace(即為PreScan配置的MATLAB接口)時,Process Manager將自動啟動??梢酝ㄟ^在Windows任務(wù)欄中右鍵單擊并選擇“打開”,使用圖標(biāo)打開Process Manager GUI...
通過從菜單中選擇退出,可以同時停止所有PreScan進(jìn)程。
1.5 其它項Miscellaneous
PreScan同時帶有實例,工具設(shè)置和后處理工具。
Demos
PreScan包含的一些實例,將教使用者如何在Prescan設(shè)置典型的實驗,并幫助用戶快速搭建自己的實驗產(chǎn)場景。一些實例展示了標(biāo)準(zhǔn)PreScan傳感器模型提供的功能(如噪聲和漂移),另一個實例展示了如何重建交通場景,還有實例演示了對規(guī)避的仿真。
這些實例涵蓋了不同關(guān)鍵字指示的領(lǐng)域。規(guī)避實例展示的關(guān)鍵詞包括:合并駕駛員模型,在軌跡之間切換以及模型初始化。另一個帶有動畫的完整6自由度實例,其中汽車在雙掛架之間發(fā)生旋轉(zhuǎn)-作為關(guān)鍵字:引入了6自由度的車輛動力學(xué)模型,能夠處理滑移的詳細(xì)輪胎模型以及車輪和輪胎的動畫及方向盤。
工具模塊設(shè)置 Tool block sets
標(biāo)準(zhǔn)的PreScan安裝還具有一些方便的工具,這些工具是基于MATLAB / Simulink的模塊的形式。在工具庫中可以找到以下塊:
->一個簡單的駕駛員模型,使用戶可以在空間和時間(速度)上實際跟蹤軌跡。該塊讀取設(shè)定點并實現(xiàn)節(jié)氣門和轉(zhuǎn)向角的控制。
->坐標(biāo)轉(zhuǎn)換塊:此塊將世界位置和速度轉(zhuǎn)換為您自己的坐標(biāo)系中的位置和速度。
->根據(jù)整個車身運(yùn)動計算車輪位置的模塊。該塊被認(rèn)為對于車輛動畫很方便。
動畫編譯工具 Movie compilation tool
MovieGenerator是一種特殊的后處理工具,已開發(fā)為將3D Visualization Viewer生成的各個位圖“粘合”在一起。這使用戶可以選擇觀看動畫的視角。
歡迎關(guān)注,轉(zhuǎn)發(fā)和點贊 智駕社公眾號,后期將會邀請小明師兄為大家分享更多的仿真文章,和小明師兄一起學(xué)習(xí)和進(jìn)步。同時歡迎加入智能駕駛場景仿真交流群。