Перейти к содержимому

Что такое esmini?

esmini — открытый плеер OpenSCENARIO, разработанный шведским сообществом ADAS. Это намеренно минималистичный плеер, широко используемый как лёгкий эталон для 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 для рендеринга в 3D-просмотрщике или директорию Models/ с моделями транспортных средств.

Упаковка всего этого в самодостаточный zip — иногда неформально называемый «пакетом esmini» — делает сценарии переносимыми между машинами и CI.

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>.zip
esmini --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-библиотеки — это осознанно остаётся вне области визуального редактора.