日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測(cè)試網(wǎng)

  • 公眾號(hào)
    • 汽車測(cè)試網(wǎng)

    • 在線課堂

    • 電車測(cè)試

A basic OPENSCENARIO player

2021-03-24 15:20:32·  來(lái)源:自動(dòng)駕駛仿真  
 
我們前面介紹過(guò)一些仿真器,也提過(guò)一些場(chǎng)景生成方法,這都是與自動(dòng)駕駛仿真相關(guān)的重要話題。但眾所周知,到了最后,仿真的關(guān)鍵還是在于數(shù)據(jù)。這就涉及仿真中另一
我們前面介紹過(guò)一些仿真器,也提過(guò)一些場(chǎng)景生成方法,這都是與自動(dòng)駕駛仿真相關(guān)的重要話題。但眾所周知,到了最后,仿真的關(guān)鍵還是在于數(shù)據(jù)。這就涉及仿真中另一個(gè)非常重要的話題:標(biāo)準(zhǔn)場(chǎng)景數(shù)據(jù)格式,即OpenX系列和高級(jí)場(chǎng)景語(yǔ)言之類。有了這些,數(shù)據(jù)交換才有基礎(chǔ),大規(guī)模的基于數(shù)據(jù)的仿真才不會(huì)變成無(wú)源之水、無(wú)本之木。

所以,在接下來(lái)一段時(shí)間,我們會(huì)將重心往這邊偏一偏。

今天讓我們先看看esmini,一個(gè)OpenScenaio解析器。

esmini是一個(gè)非常有價(jià)值的項(xiàng)目,以前我們花了很大篇幅介紹CARLA,它提供的豐富功能能滿足絕大部分仿真需求。相比于CARLA,聚焦于場(chǎng)景設(shè)置以及解析這個(gè)關(guān)鍵功能的esmini則是小而精致的類型。另外,esmini非常重視自身的易集成性,在開(kāi)發(fā)自己公司的仿真器時(shí),能派上很大用場(chǎng)。

esmini作為一個(gè)研究項(xiàng)目的成果,對(duì)學(xué)生黨而言,也是一個(gè)非常優(yōu)秀的自動(dòng)駕駛仿真項(xiàng)目。它的README寫(xiě)的真誠(chéng)而詳細(xì),作為教學(xué)項(xiàng)目非常合適。

esmini背景

esmini的全程是Environment Simulator Minimalistic。項(xiàng)目的目的是探索并熟悉新興的OpenSCENARIO數(shù)據(jù)格式。該項(xiàng)目重視所開(kāi)發(fā)的工具的易集成性和可移植性。當(dāng)前項(xiàng)目成果能夠整合到C ++應(yīng)用程序、Unity3D(C#)以及Simulink等其他框架中。

需要專門提出來(lái)的是,這個(gè)項(xiàng)目并非主要用于生產(chǎn)用途。另外由于旨在回答與項(xiàng)目有關(guān)的研究問(wèn)題,因此項(xiàng)目代碼在清晰度,結(jié)構(gòu),注釋,錯(cuò)誤處理和編碼準(zhǔn)則方面不能保證質(zhì)量。另外受限于項(xiàng)目需求和研究范圍定義,esmini并未支持所有場(chǎng)景元素。

即使如此,esmini的代碼作為項(xiàng)目的公開(kāi)結(jié)果依然被原樣發(fā)布。對(duì)有志于構(gòu)建類似工具,以及習(xí)慣于OpenSCENARIO格式的人,esmini可以提供一些指導(dǎo)和靈感。

esmini組成

•  esmini包含以下主要庫(kù):

•  RoadManager(esminiRMLib):提供以O(shè)penDRIVE格式描述的道路網(wǎng)絡(luò)接口庫(kù)。

•  ScenarioEngine(esminiLib):提供viewer和與以O(shè)penSCENARIO格式描述的交通場(chǎng)景交互的主庫(kù)。該庫(kù)包括RoadManager。

•  esmini還提供了一些可以原樣使用或?yàn)槎ㄖ平鉀Q方案提供靈感的應(yīng)用模塊:

•  esmini :一個(gè)靜態(tài)鏈接到esmini模塊的場(chǎng)景播放器程序。

•  esmini-dyn :一個(gè)使用esminiLib播放OpenSCENARIO文件的mini示例。

•  odrplot :能用于從OpenDRIVE產(chǎn)生數(shù)據(jù)文件,并使用Python繪制路網(wǎng)。

•  odrviewer :使用虛擬交通可視化OpenDRIVE道路網(wǎng)絡(luò)。

•  replayer :重播以前執(zhí)行過(guò)的場(chǎng)景。

•  osiecever :一個(gè)通過(guò)UDP從esmini接收OSI消息的簡(jiǎn)單應(yīng)用程序。請(qǐng)注意:從版本1.5開(kāi)始,esmini僅支持OpenSCENARIO v1.0。所有demo場(chǎng)景均已從0.9.1更新到1.0。ASAM提供了一種轉(zhuǎn)換方案??梢耘c自動(dòng)遷移XML文件的工具一起使用

esmini使用

在自定義應(yīng)用程序中集成esmini的最簡(jiǎn)單方法是鏈接所有包含的共享庫(kù)ScenarioEngineDLL。在win上,esmini提供了esminilib.dll; 針對(duì)Linux平臺(tái)提供了libesminiLib.so,為Mac系統(tǒng)提供了libesminiLib.dylib。另外esmini還提供了python接口庫(kù)。

esmini的部分特性

OSI(open simulation interface)支持

除了用于獲取有關(guān)正在進(jìn)行的仿真的信息(例如 道路寬度和道路使用者位置)的內(nèi)部API外,esmini還會(huì)收集其他信息并存儲(chǔ)到OSI真值結(jié)構(gòu)中。該結(jié)構(gòu)可以存儲(chǔ)在OSI trace文件中,并通過(guò)UDP檢索和/或通過(guò)API直接檢索(請(qǐng)參閱esminiLib.hpp)。

Unity支持

esmini共享庫(kù)在Unity中也可以正常工作。本項(xiàng)目也提供了一個(gè)包括如下元素的非常詳盡的例子:

•  通用場(chǎng)景播放器腳本

•  一些示例場(chǎng)景(OpenSCENARIO + OpenDRIVE),包括3D模型

•  適用于所有平臺(tái)的插件

•  將玩家腳本連接到游戲?qū)ο蟮膱?chǎng)景

esmini控制器

esmini帶有一些控制器(在此場(chǎng)景中控制單個(gè)實(shí)體的方式):

•  DefaultController :完全按照OpenSCENARIO文件中的指定執(zhí)行操作。默認(rèn)情況下分配給實(shí)體。

•  InteractiveController :通過(guò)鍵盤(pán)箭頭鍵將控制權(quán)移交給用戶

•  FollowGhost :提前幾秒鐘執(zhí)行事件,實(shí)體將遵循其軌跡。

•  ExternalController :使用外部程序控制的實(shí)體。

•  SumoController :一種在場(chǎng)景中集成SUMO控制的車輛的方法。

其他相關(guān)工作

這里提及的項(xiàng)目不隸屬于esmini,但都非常有用,近期就會(huì)介紹。

pyoscx是一個(gè)基于Python的場(chǎng)景創(chuàng)建框架??梢杂酶呒?jí)腳本格式編寫(xiě)場(chǎng)景,并自動(dòng)生成OpenSCENARIO 1.0 XML。

pyodrx是一個(gè)基于Python的道路網(wǎng)絡(luò)創(chuàng)建框架。這個(gè)想法用高級(jí)腳本格式編寫(xiě)道路網(wǎng)絡(luò),并自動(dòng)生成OpenDRIVE1.4 XML。

pyoscx / scenariogeneratio將pyoscx和pyodrx結(jié)合在一起,提供了一個(gè)參數(shù)化接口,并生成鏈接的OpenSCENARIO和OpenDRIVE文件來(lái)運(yùn)行多個(gè)仿真,

OSC-ALK-scenarios是用于測(cè)試自動(dòng)場(chǎng)景的集合。“寶馬承擔(dān)了根據(jù)ALKS法規(guī)使用OpenSCENARIO和OpenDRIVE實(shí)施測(cè)試方案的任務(wù),從而產(chǎn)生了可通過(guò)標(biāo)準(zhǔn)兼容模擬器執(zhí)行的XML文件包。”

esmini-visualizer是一種自動(dòng)生成可視化場(chǎng)景視頻的工具。

OpenScenarioEditor。Infotiv AB在VALU3S項(xiàng)目下開(kāi)發(fā)了一個(gè)簡(jiǎn)單的ASAM OpenSCENARIO編輯器。

RcontrolStation scenario editor。OpenSCENARIO編輯器的另一個(gè)胚胎,它是自動(dòng)駕駛模型車輛平臺(tái)(SDVP)項(xiàng)目的一部分。

esmini-pybind11是為內(nèi)部esmini API(不僅是共享庫(kù)esminiLib和esminiRMLib)建立Python包裝器的一項(xiàng)持續(xù)工作。

esmini工作原理

最后,再簡(jiǎn)單提一下esmini工作原理。以下是其主要代碼模塊的簡(jiǎn)要介紹。

RoadManager

實(shí)現(xiàn)了不完整的OpenDRIVE數(shù)據(jù)模型和接口。目標(biāo)是為esmini提供所需和最有用的功能。功能在不斷開(kāi)發(fā)中。

Scenario Engine

它解析OpenSCENARIO文件,創(chuàng)建實(shí)體,觸發(fā)器和動(dòng)作的數(shù)據(jù)模型。最后,步進(jìn)場(chǎng)景,評(píng)估觸發(fā)器并相應(yīng)地執(zhí)行操作。

它還包括ScenarioGateway。該模塊的目的是創(chuàng)建一個(gè)管理真值的中央管理器,以允許異步報(bào)告實(shí)體狀態(tài)。主要的用例是一個(gè)外部模擬器,該模擬器通過(guò)

UDP向esmini報(bào)告自車(或被測(cè)車輛/系統(tǒng))的狀態(tài)。單獨(dú)的接收器線程可以隨時(shí)向網(wǎng)關(guān)報(bào)告最新值。有關(guān)示例,請(qǐng)參閱server module hpp / cpp。進(jìn)一步的想法是使用每個(gè)報(bào)告狀態(tài)的時(shí)間戳,以允許對(duì)位置和旋轉(zhuǎn)的推斷,以便及時(shí)地同步狀態(tài),例如,在渲染下一幅圖像或?yàn)槔走_(dá)模型提供數(shù)據(jù)時(shí)。

ScenarioEngine還負(fù)責(zé)以各種方式報(bào)告OSI真值:通過(guò)API函數(shù)來(lái)獲取OSI結(jié)構(gòu);保存到OSI trace 文件 ;通過(guò)IP / UDP將OSI數(shù)據(jù)發(fā)送到外部主機(jī)。

另一個(gè)功能是理想的傳感器,它由放置在實(shí)體上任意位置的視錐臺(tái)定義。它將檢測(cè)視錐內(nèi)部的任何其他實(shí)體。請(qǐng)注意當(dāng)前的限制,即僅考慮實(shí)體參考點(diǎn),因此實(shí)體可能部分位于視錐內(nèi)部,但仍未被檢測(cè)到。

Viewerbase

提供基本的3D查看器預(yù)覽方案。它基于OpenSceneGraph開(kāi)源圖形庫(kù)構(gòu)建。這是基于穩(wěn)定性,性能和可移植性而不是flashiness的考慮,這符合esmini的目的。

簡(jiǎn)而言之,該模塊提供以下功能:

道路網(wǎng)絡(luò)和周圍環(huán)境的可選3D視覺(jué)表征。直接支持.osgb(OpenSceneGraph二進(jìn)制)文件格式。使用osgconv工具進(jìn)行轉(zhuǎn)換可以間接支持許多文件格式(注意:esmini中不包括)。
場(chǎng)景實(shí)體的3D視覺(jué)表征。使用提供的3D模型或esmini將創(chuàng)建替代的虛擬模型,例如根據(jù)指定尺寸的3D邊界框。

道路特征可視化。例如。OpenDRIVE的幾何形狀,車道和道路標(biāo)記。這些特征以非常簡(jiǎn)單的方式由點(diǎn)和線表示。因此,它不能替代3D模型的值,但是至少在3D模型不可用時(shí),它可以提供一些指導(dǎo)。這對(duì)于調(diào)試OpenDRIVE道路網(wǎng)絡(luò)定義中的問(wèn)題也很有用。

鍵盤(pán)輸入。First OSG提供了一組關(guān)鍵的快捷方式來(lái)控制視覺(jué)功能,例如啟用/禁用紋理或線框/陰影模式。然后,esmini添加了一組快捷方式來(lái)控制各種功能,例如切換道路特征可視化或更改攝影機(jī)行??梢栽赿ocs / readme.txt中找到鍵盤(pán)快捷鍵的完整列表。鍵盤(pán)輸入也被路由到控制器,這對(duì)于交互式駕駛模式很有用。

PlayerBas

該模塊將ScenarioEngine與Viewer結(jié)合在一起,還提供了高級(jí)API,用于在自定義播放器應(yīng)用程序中初始化,步進(jìn)和控制場(chǎng)景。

Commonmini

在模塊和應(yīng)用程序之間共享的便捷功能的集合。例如:參數(shù)解析器、計(jì)時(shí)器、線程和互斥、數(shù)學(xué)運(yùn)算以及l(fā)ogger等。

How the module interacte

在較高級(jí)別上,步進(jìn)播放器時(shí)的事件順序?yàn)椋?br />
A basic OPENSCENARIO player

要了解esmini的內(nèi)部使用和開(kāi)發(fā)目的,讓我們放大一個(gè)層次:

A basic OPENSCENARIO player1
分享到:
 
反對(duì) 0 舉報(bào) 0 收藏 0 評(píng)論 0
滬ICP備11026917號(hào)-25