Что такое esmini?
esmini — открытый плеер OpenSCENARIO, разработанный шведским сообществом ADAS. Это намеренно минималистичный плеер, широко используемый как лёгкий эталон для OpenSCENARIO 1.x — достаточно маленький для чтения кода, достаточно быстрый для встраивания и достаточно предсказуемый, чтобы служить проверкой работоспособности.
Что делает esmini
Заголовок раздела «Что делает esmini»esmini разбирает файл OpenSCENARIO 1.x .xosc, загружает указанную дорожную сеть OpenDRIVE .xodr и выполняет storyboard — ведёт участников по траекториям или через контроллеры и транслирует результирующее состояние.
Это не полноценный физический симулятор вроде CARLA или LGSVL. Минимализм — это и есть суть: esmini служит открытым базовым уровнем «парсится ли и воспроизводится ли этот сценарий корректно», на который ориентируется большинство инструментов OpenSCENARIO.
Почему esmini важен для инструментария
Заголовок раздела «Почему esmini важен для инструментария»Поскольку esmini — самый распространённый потребитель OpenSCENARIO 1.x с открытым исходным кодом, вопрос «работает ли это в esmini?» стал стандартной проверкой для любого конвейера экспорта OpenSCENARIO. Большинство инструментов, создающих файлы ASAM, проверяют совместимость с esmini прежде, чем заявить о поддержке OpenSCENARIO — включая RoadRunner (который экспортирует сценарии, «совместимые с любыми симуляторами и плеерами, поддерживающими OpenSCENARIO, такими как CARLA, esmini и IPG CarMaker») и многие другие.
Типичные входные данные esmini
Заголовок раздела «Типичные входные данные esmini»esmini требует как минимум:
- Файл
.xosc(сценарий OpenSCENARIO). - Файл
.xodr(дорожная сеть OpenDRIVE), на который ссылается.xosc. - Опционально файл
.osgbдля рендеринга в 3D-просмотрщике или директориюModels/с моделями транспортных средств.
Упаковка всего этого в самодостаточный zip — иногда неформально называемый «пакетом esmini» — делает сценарии переносимыми между машинами и CI.
Место drawtonomy в этой картине
Заголовок раздела «Место drawtonomy в этой картине»drawtonomy запускает сам esmini — скомпилированный в WebAssembly — прямо в браузере. Вы создаёте storyboard (или открываете существующий .xosc), нажимаете play, и редактор сценариев выполняет его на странице: элементы управления воспроизведением, перемотка, камера слежения, «призрачные» траектории (ghost trails) и вердикт PASS / FAIL по вашим условиям END и FAIL — без установки, без отдельного плеера. Ядро симуляции — это и есть esmini; drawtonomy добавляет вокруг него нативную для холста оболочку.
Если вы предпочитаете запускать сценарий в нативной установке esmini (ради 3D-просмотрщика на OpenSceneGraph, наборов прогонов в CI или Python/C++ конвейера), drawtonomy также экспортирует zip с .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 — оба покрывают подмножество спецификации: действия, условные триггеры, фазы и события работают, а примитивы перекрёстков OpenDRIVE и записи
<signal>тоже генерируются. Перекрёстки, перенесённые без изменений из импортированного.xodr, воспроизводятся с высокой точностью; перекрёстки, синтезированные из нарисованной вручную сети полос, пока недостаточно надёжны. Перебор параметров и кастомные или управляемые ML контроллеры сегодня не генерируются. - Модели транспортных средств по умолчанию используют встроенные модели esmini, поэтому дополнительный
.osgbне требуется. - Для крупномасштабных или параметризованных наборов сценариев генерируйте флот из DSL или Python-библиотеки — это осознанно остаётся вне области визуального редактора.
Дополнительное чтение
Заголовок раздела «Дополнительное чтение»- Редактор сценариев — создавайте и запускайте storyboard в браузере на esmini-WASM.
- Открыть и запустить существующий .xosc — перетащите
.xoscи нажмите play. - Что такое OpenSCENARIO?
- Что такое OpenDRIVE?
- Экспорт в ASAM OpenDRIVE / OpenSCENARIO