esmini 是什麼?
esmini 是由瑞典 ADAS 社群開發的開源 OpenSCENARIO 播放器。它刻意保持精簡,是廣泛用作 OpenSCENARIO 1.x 輕量參考的工具——小到可以閱讀原始碼、快到可以嵌入、穩定到可以作為健全性檢查基準。
esmini 的功能
Section titled “esmini 的功能”esmini 解析一個 OpenSCENARIO 1.x .xosc,載入所參考的 OpenDRIVE .xodr 道路網路,並執行 Storyboard——沿軌跡或控制器驅動各實體,並串流輸出其狀態。
它並非像 CARLA 或 LGSVL 那樣的完整物理模擬器。其精簡設計正是其價值所在:esmini 是開源的「此場景能否正確解析並重播?」基準,是大多數 OpenSCENARIO 工具所針對的目標。
esmini 對工具開發的重要性
Section titled “esmini 對工具開發的重要性”由於 esmini 是最常見的開源 OpenSCENARIO 1.x 消費者,「能否在 esmini 中執行?」已成為任何 OpenSCENARIO 匯出流程的標準健全性檢查。大多數產生 ASAM 檔案的工具都會先以 esmini 驗證,才宣稱支援 OpenSCENARIO——包括 RoadRunner(它匯出「相容於任何 OpenSCENARIO 標準模擬器與播放器,如 CARLA、esmini 與 IPG CarMaker 的場景」)及其他許多工具。
esmini 的典型輸入
Section titled “esmini 的典型輸入”esmini 至少需要:
- 一個
.xosc(OpenSCENARIO 場景)。 - 一個
.xodr(OpenDRIVE 道路網路),由.xosc參考。 - 可選的
.osgb檔案用於三維渲染,或Models/目錄中的車輛素材。
將這些檔案打包成一個自包含的壓縮包——有時非正式地稱為「esmini bundle」——可讓場景在不同機器與 CI 環境中攜帶使用。
drawtonomy 在其中的定位
Section titled “drawtonomy 在其中的定位”drawtonomy 自己就會執行 esmini——編譯為 WebAssembly——直接在瀏覽器中運作。你編寫故事板(或開啟既有的 .xosc),按下播放,場景編輯器就會在頁面內執行它:播放控制、拖曳定位、跟隨鏡頭、幽靈軌跡,以及根據你設定的END 與 FAIL 條件產出的 PASS / FAIL 判定——不需要安裝,也不需要另外的播放器。模擬核心就是 esmini;drawtonomy 只是在外面包了一層畫布原生的外殼。
如果你想在原生 esmini 安裝環境中執行場景(用於三維 OpenSceneGraph 檢視器、CI 批次測試,或 Python/C++ 流程),drawtonomy 也能匯出包含 .xosc、.xodr 與 run.sh 呼叫指令的壓縮包:
unzip <name>.zipesmini --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 函式庫生成車隊——這部分仍不在視覺化編輯器的範圍內。
- 場景編輯器——在瀏覽器中以 esmini-WASM 編寫並執行故事板。
- 開啟並播放既有的 .xosc——載入
.xosc並按下播放。 - OpenSCENARIO 是什麼?
- OpenDRIVE 是什麼?
- 匯出至 ASAM OpenDRIVE / OpenSCENARIO