drawtonomy vs ручной XML OpenSCENARIO
Ручной XML OpenSCENARIO
Заголовок раздела «Ручной XML OpenSCENARIO»Ручная запись XML OpenSCENARIO — распространённый рабочий процесс, и для многих случаев он правильный.
Когда XML — подходящий путь:
- Сценарий небольшой, и вам нужен контроль на уровне байтов.
- Вы генерируете XML программно из DSL или конвейера кодогенерации.
- Нужны возможности спецификации, которые drawtonomy не генерирует, — перебор параметров, кастомные или ML-управляемые контроллеры, плотные модели транспортных потоков, OpenSCENARIO 1.3.
- Вы строите новую дорожную сеть с перекрёстками с нуля и вам нужна производственная геометрия
<junction>— экспорт перекрёстков в drawtonomy точен, когда переносит импортированный, неотредактированный.xodr, но генерация новой геометрии перекрёстков из нарисованных вручную полос пока даёт невысокую точность. - Вы совместно работаете над большим каталогом через git, и важны стабильные byte-level diff’ы XML.
Для этих случаев ручной или сгенерированный кодом XML остаётся каноническим подходом. А вот для создания и запуска одного конкретного сценария — действий, условий срабатывания и вердикта PASS / FAIL — визуальный редактор обычно быстрее.
Что drawtonomy умеет выразить сегодня
Заголовок раздела «Что drawtonomy умеет выразить сегодня»Визуальный редактор для OpenSCENARIO 1.2, который создаёт полный storyboard прямо на холсте и запускает его в браузере — без написания XML вручную:
- 2D дорожную сеть вид сверху — полосы, перекрёстки, линии — экспортируемую как OpenDRIVE 1.8
.xodr, плюс размещение транспортных средств, пешеходов, светофоров и дорожной разметки как сущностей (entities). - Полный storyboard: фазы (акты), события, все 35 действий из спецификации (скорость, смена полосы, телепортация, следование по траектории, активация контроллера и другие), а также все 19 условий срабатывания (плюс 6 продвинутых), комбинируемые логикой AND / OR.
- Условия END и FAIL, которые дают вердикт PASS / FAIL при прогоне сценария.
- Выполнение прямо в браузере на esmini, скомпилированном в WebAssembly, — элементы управления воспроизведением, покадровая перемотка, камера слежения, «призрачные» траектории (ghost trails) и опциональное 3D-превью прогона — так что вы можете просмотреть выполнение сценария, не покидая страницу. Тот же
.xoscбез изменений запускается и в нативной установке esmini. - Экспорт в OpenSCENARIO 1.0, 1.1 или 1.2 (1.3 пока недоступна), а также примитивы OpenDRIVE
<junction>/<connection>и дорожные знаки как записи<signal>.
Чего drawtonomy пока не выражает
Заголовок раздела «Чего drawtonomy пока не выражает»Реальные пробелы, которые по-прежнему требуют ручного или сгенерированного XML:
- Экспорт в OpenSCENARIO 1.3 — формат поддерживается при импорте, но пока не предлагается как цель экспорта.
- Производственная геометрия OpenDRIVE
<junction>при построении дорожной сети с нуля. Связность перекрёстков переносится точно, когда через drawtonomy проходит импортированный, неотредактированный.xodr; генерация новой геометрии перекрёстков из нарисованных вручную полос пока даёт невысокую точность, а аналитическая клотоидная геометрия не моделируется. - Перебор параметров, кастомные или ML-управляемые контроллеры и плотные модели транспортных потоков.
- OpenSCENARIO 2.0 / M-SDL (drawtonomy ориентируется на семейство 1.x).
Для этих задач ручная запись или генерация XML остаётся правильным путём.
Разумный гибрид
Заголовок раздела «Разумный гибрид»Для большинства сценариев, которые вы создаёте и запускаете целиком в drawtonomy, браузер служит источником истины. К ручному XML стоит обращаться только на краях:
- Создайте сцену и storyboard в drawtonomy — сеть полос, участников, действия, условия срабатывания, условия end / fail — и запустите, чтобы убедиться в вердикте.
- Если нужна возможность спецификации, которую drawtonomy не генерирует (примитив перекрёстка, перебор параметров, кастомный контроллер), экспортируйте
.xoscи отредактируйте вручную или сгенерируйте эту часть кодом. - Если вам нужны byte-level diff’ы в git для большого каталога, храните канонический XML в коде, а drawtonomy используйте для создания, ревью и воспроизведения отдельных конкретных сценариев.
drawtonomy — это место, где вы создаёте и запускаете сценарий; ручной XML остаётся запасным путём для тех углов спецификации, до которых drawtonomy пока не дотягивается.
В том же сообществе OpenSCENARIO
Заголовок раздела «В том же сообществе OpenSCENARIO»Ручной XML — фундаментальный путь создания OpenSCENARIO: каждый другой инструмент в экосистеме в конечном счёте производит его (или эквивалент на DSL). Экспортёр drawtonomy, scenariogeneration, Scenic, RoadRunner, Blender DSC и остальные — все рано или поздно генерируют XML. Прямое чтение и запись XML — это то, что держит стандарт стандартом, и инструменты, которые его производят, выигрывают от межинструментальной совместимости, выстроенной вокруг него сообществом.
Дополнительное чтение
Заголовок раздела «Дополнительное чтение»- Редактор сценариев — создавайте действия, условия срабатывания и условия end / fail в браузере.
- Создайте свой первый сценарий — смена полосы с пустого холста.
- Что такое OpenSCENARIO?
- Сценарий использования: редактор OpenSCENARIO
- Экспорт в ASAM OpenDRIVE / OpenSCENARIO