Что такое OpenSCENARIO?
OpenSCENARIO — открытый стандарт ASAM для описания динамических сценариев вождения: как эго-автомобиль и другие участники движения действуют во времени в форме, воспроизводимой симуляторами. Это де-факто формат обмена для сценарного тестирования систем автоматизированного вождения.
Две семьи OpenSCENARIO
Заголовок раздела «Две семьи OpenSCENARIO»Существуют два во многом независимых стандарта, разделяющих одно название:
- OpenSCENARIO 1.x — на основе XML. Стабильный, широко поддерживаемый. Версия 1.3 — текущая производственная цель для большинства инструментов.
- OpenSCENARIO 2.0 / DSL — предметно-ориентированный язык для абстрактных, параметрических и вероятностных сценариев. Более новый и выразительный, поддержка инструментами растёт.
Форматы несовместимы между собой, но 1.x — то, что сегодня потребляют большинство симуляторов и конвейеров тестирования по SOTIF / ISO 21448.
Что входит в файл OpenSCENARIO 1.x
Заголовок раздела «Что входит в файл OpenSCENARIO 1.x»Сценарий 1.x обычно состоит из:
- Блока RoadNetwork — как правило, файл OpenDRIVE
.xodr, опционально дополненный файлом сцены.osgb. - Блока Entities — транспортные средства, пешеходы и другие объекты.
- Storyboard — упорядоченные по времени акты, манёвры и события.
- Блока Init — начальные положения, скорости и назначения параметров.
XML читается естественно для небольшого отдельного сценария, но становится сложным в обслуживании при масштабировании до десятков вариантов. Именно здесь помогают инструменты создания сценариев и DSL.
Основные подходы к созданию сценариев
Заголовок раздела «Основные подходы к созданию сценариев»- Ручная запись XML. Подходит для небольших команд и эталонных фикстур.
- DSL / кодогенерация. OpenSCENARIO 2.0 DSL, Scenic или внутренние генераторы выдают XML из описаний высокого уровня.
- Python-библиотеки. scenariogeneration (бывший
pyoscx/pyodrx) предоставляет программный API для OpenSCENARIO + OpenDRIVE с покрытием версий V1.0 — V1.3.1. - Движки сценариев симуляторов. CARLA ScenarioRunner определяет и выполняет сценарии для CARLA с поддержкой Python и OpenSCENARIO 1.0 / 2.0.
- Визуальные редакторы. MathWorks RoadRunner (экспорт XML и DSL), Truevision Designer, Blender Driving Scenario Creator и drawtonomy (браузерная доска с частичным экспортом).
В реальных проектах часто используют комбинацию подходов: Python-библиотека или DSL для самих сценариев плюс визуальный редактор для дорожной сети.
Место drawtonomy
Заголовок раздела «Место drawtonomy»drawtonomy — это браузерная доска с частичным экспортером OpenSCENARIO 1.3 / OpenDRIVE 1.8. По данным документации экспортёра:
- Разместите полосы, перекрёстки, транспортные средства, пешеходов, светофоры и разметку на двумерном холсте вид сверху.
- Экспортируйте zip с
.xosc+.xodr+run.sh, который воспроизводит простые сцены в esmini.
Экспортёр намеренно покрывает подмножество спецификации. Что он не генерирует сегодня (отмечено как пункты дорожной карты в SDK):
- Примитивы перекрёстков OpenDRIVE (
<junction>). - Дорожные знаки как записи OpenDRIVE
<signal>. - Профили ускорения, события остановки, маршруты с учётом сигналов, действия смены полосы или сложные storyboard с несколькими участниками.
- Условные триггеры, перебор параметров, нестандартные контроллеры или управляемые ML.
На практике воспринимайте экспорт OpenSCENARIO из drawtonomy как отправную точку-черновик: полезен как база для ручного редактирования или для создания иллюстрации к сценарию, но не как путь к профессиональному созданию сценариев.