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

  • 手機站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

首頁 > 汽車技術 > 正文

A basic OPENSCENARIO player

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

所以,在接下來一段時間,我們會將重心往這邊偏一偏。

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

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

esmini作為一個研究項目的成果,對學生黨而言,也是一個非常優(yōu)秀的自動駕駛仿真項目。它的README寫的真誠而詳細,作為教學項目非常合適。

esmini背景

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

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

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

esmini組成

•  esmini包含以下主要庫:

•  RoadManager(esminiRMLib):提供以OpenDRIVE格式描述的道路網(wǎng)絡接口庫。

•  ScenarioEngine(esminiLib):提供viewer和與以OpenSCENARIO格式描述的交通場景交互的主庫。該庫包括RoadManager。

•  esmini還提供了一些可以原樣使用或為定制解決方案提供靈感的應用模塊:

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

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

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

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

•  replayer :重播以前執(zhí)行過的場景。

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

esmini使用

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

esmini的部分特性

OSI(open simulation interface)支持

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

Unity支持

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

•  通用場景播放器腳本

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

•  適用于所有平臺的插件

•  將玩家腳本連接到游戲?qū)ο蟮膱鼍?br />
esmini控制器

esmini帶有一些控制器(在此場景中控制單個實體的方式):

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

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

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

•  ExternalController :使用外部程序控制的實體。

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

其他相關工作

這里提及的項目不隸屬于esmini,但都非常有用,近期就會介紹。

pyoscx是一個基于Python的場景創(chuàng)建框架。可以用高級腳本格式編寫場景,并自動生成OpenSCENARIO 1.0 XML。

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

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

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

esmini-visualizer是一種自動生成可視化場景視頻的工具。

OpenScenarioEditor。Infotiv AB在VALU3S項目下開發(fā)了一個簡單的ASAM OpenSCENARIO編輯器。

RcontrolStation scenario editor。OpenSCENARIO編輯器的另一個胚胎,它是自動駕駛模型車輛平臺(SDVP)項目的一部分。

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

esmini工作原理

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

RoadManager

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

Scenario Engine

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

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

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

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

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

Viewerbase

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

簡而言之,該模塊提供以下功能:

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

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

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

PlayerBas

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

Commonmini

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

How the module interacte

在較高級別上,步進播放器時的事件順序為:

A basic OPENSCENARIO player

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

A basic OPENSCENARIO player1
分享到:
 
反對 0 舉報 0 收藏 0 評論 0
滬ICP備11026917號-25