跳到內容

esmini 是什麼?

esmini 是由瑞典 ADAS 社群開發的開源 OpenSCENARIO 播放器。它刻意保持精簡,是廣泛用作 OpenSCENARIO 1.x 輕量參考的工具——小到可以閱讀原始碼、快到可以嵌入、穩定到可以作為健全性檢查基準。

esmini 解析一個 OpenSCENARIO 1.x .xosc,載入所參考的 OpenDRIVE .xodr 道路網路,並執行 Storyboard——沿軌跡或控制器驅動各實體,並串流輸出其狀態。

它並非像 CARLA 或 LGSVL 那樣的完整物理模擬器。其精簡設計正是其價值所在:esmini 是開源的「此場景能否正確解析並重播?」基準,是大多數 OpenSCENARIO 工具所針對的目標。

由於 esmini 是最常見的開源 OpenSCENARIO 1.x 消費者,「能否在 esmini 中執行?」已成為任何 OpenSCENARIO 匯出流程的標準健全性檢查。大多數產生 ASAM 檔案的工具都會先以 esmini 驗證,才宣稱支援 OpenSCENARIO——包括 RoadRunner(它匯出「相容於任何 OpenSCENARIO 標準模擬器與播放器,如 CARLA、esmini 與 IPG CarMaker 的場景」)及其他許多工具。

esmini 至少需要:

  • 一個 .xosc(OpenSCENARIO 場景)。
  • 一個 .xodr(OpenDRIVE 道路網路),由 .xosc 參考。
  • 可選的 .osgb 檔案用於三維渲染,或 Models/ 目錄中的車輛素材。

將這些檔案打包成一個自包含的壓縮包——有時非正式地稱為「esmini bundle」——可讓場景在不同機器與 CI 環境中攜帶使用。

drawtonomy 自己就會執行 esmini——編譯為 WebAssembly——直接在瀏覽器中運作。你編寫故事板(或開啟既有的 .xosc),按下播放,場景編輯器就會在頁面內執行它:播放控制、拖曳定位、跟隨鏡頭、幽靈軌跡,以及根據你設定的END 與 FAIL 條件產出的 PASS / FAIL 判定——不需要安裝,也不需要另外的播放器。模擬核心就是 esmini;drawtonomy 只是在外面包了一層畫布原生的外殼。

如果你想在原生 esmini 安裝環境中執行場景(用於三維 OpenSceneGraph 檢視器、CI 批次測試,或 Python/C++ 流程),drawtonomy 也能匯出包含 .xosc、.xodr 與 run.sh 呼叫指令的壓縮包:

Terminal window
unzip <name>.zip
esmini --osc <name>/<name>.xosc --window 60 60 1024 768

需要注意的事項:

  • 瀏覽器內的播放器讀取 OpenSCENARIO 1.x,ASAM 匯出則寫入 OpenSCENARIO 1.0–1.2 / OpenDRIVE 1.8——兩者都涵蓋規格的一個子集:action、條件式 trigger、階段與事件都能執行,OpenDRIVE 的路口元素與 <signal> 項目現在也都能輸出。未經編輯、原封不動延續匯入 .xodr 的路口是高保真度的;從手繪車道網路合成出的路口目前還不夠可靠。參數掃描以及自訂或 ML 驅動的控制器目前仍未支援。
  • 車輛素材預設使用 esmini 內建模型,無需額外的 .osgb 檔案。
  • 如需大規模或參數化場景掃描,請以 DSL 或 Python 函式庫生成車隊——這部分仍不在視覺化編輯器的範圍內。