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

Почему drawtonomy — доска, построенная для сценариев вождения

drawtonomy — это доска, построенная специально для сценариев вождения. Большинство команд сегодня рисуют такие диаграммы в универсальных инструментах рисования или презентациях — те хорошо работают для общих фигур, но не знают, что такое полоса, поэтому геометрию приходится перерисовывать каждый раз, когда дорога поворачивает, у перекрёстка появляется ещё одно плечо или пешеходный переход нужно выровнять с дорогой.

Эта страница объясняет проектные решения, которые следуют из позиционирования «доска для сценариев вождения», а не «инструмент, экспортирующий в симулятор».

Большая часть реальной коммуникации в автономном вождении проходит через диаграммы: в статьях, обзорах архитектуры, планировочных встречах, разборах инцидентов, классах и презентациях. Диаграмма — это артефакт, на который смотрят, о котором спорят и который помнят.

Универсальные инструменты рисования на этом уровне дают только универсальные фигуры. Полоса — это прямоугольник, который нужно перерисовывать при каждом повороте дороги; пешеходный переход — стопка прямоугольников, которые приходится выравнивать вручную; перекрёсток — полчаса возни. Хуже того, в момент изменения геометрии дороги — а в работе AV это происходит постоянно — приходится начинать заново.

drawtonomy существует, чтобы сделать этот цикл быстрым. Кирпичики, которые в действительности есть в домене — полосы, перекрёстки, пешеходные переходы, светофоры, дорожная разметка, транспорт, пешеходы — это первоклассные фигуры, поэтому иллюстрация остаётся корректной по мере итераций.

Работа по сценариям вождения происходит на нескольких уровнях:

  1. Диаграммы. Статьи, слайды, эскизы на доске, иллюстрации в design-doc, материалы для занятий. Быстро и легко в принципе, но в универсальном инструменте геометрию дороги приходится перестраивать при каждом изменении.
  2. Инструменты создания. Редакторы OpenSCENARIO, редакторы дорожных сетей, CAD-подобные пакеты. Точные, медленные, дорогие в освоении.
  3. Симуляторы. esmini, CARLA, внутренние инструменты. Запускают сценарий, выдают данные.

drawtonomy живёт на уровне 1 и заходит на уровень 2, когда нужно: импортировать карту Lanelet2, эскизировать изменения, экспортировать OpenDRIVE/OpenSCENARIO, передать результат в esmini.

Точкой сравнения является быстрый эскиз на доске или в презентации, а не CAD-инструмент. Это задаёт планку трения: открыть URL, нарисовать, поделиться. Никакой установки, аккаунта, формата файла проекта. Всё, что сделало бы drawtonomy тяжелее быстрого эскиза, отсекается.

Дорога — не мешок ломаных. drawtonomy моделирует связи полос (Next / Previous / Left / Right), чтобы перемещение границы автоматически обновляло соседние полосы. Две полосы, делящие границу, делят и одни и те же граничные точки — потяните один раз, обе двигаются. См. Модель связей полос.

Транспортные средства (sedan, bus, truck, motorcycle…), пешеходы (walking, simple), светофоры для транспорта и пешеходов, пешеходные переходы, дорожная разметка, знаки, шаблоны перекрёстков. Это встроенные фигуры, а не приближения универсальными прямоугольниками. Пользовательские SVG-шаблоны можно добавлять через PR.

Редактируемость на выходе так же, как и на входе

Заголовок раздела «Редактируемость на выходе так же, как и на входе»

Каждый формат вывода, который производит drawtonomy, сохраняет достаточно состояния, чтобы быть отредактированным повторно. drawtonomy.svg — каноническая форма без потерь: обычный SVG, который везде отображается (браузеры, GitHub, презентации, иллюстрации статей) и снова открывается в drawtonomy со всеми связями и отношениями перекрытия. Ничто не запирается в формате, который нельзя прочитать обратно.

Код экспортёра и парсера — часть @drawtonomy/sdk и работает без редактора. CI-пайплайны, браузерные расширения и ИИ-инструменты могут программно генерировать и валидировать сцены.

Когда у вас есть диаграмма, обычно хочется сделать с ней что-то. drawtonomy поставляет несколько мостов, чтобы иллюстрация не оставалась запертой внутри редактора:

  • drawtonomy.svg — по умолчанию. Встраивайте в статьи, слайды, Markdown-документы; открывайте позже, чтобы продолжить редактировать.
  • Обмен с Lanelet2 — открывайте Lanelet2 OSM-карту (включая образцы карт Autoware), редактируйте, экспортируйте обратно. Полезно для эскизирования изменений в существующей HD-карте.
  • Экспорт ASAM — OpenDRIVE 1.8 + OpenSCENARIO 1.3, опционально собранные в готовый к esmini ZIP.
  • AI Scene Generator — опишите сценарий на естественном языке или вставьте OpenSCENARIO XML и получите редактируемый холст, с которого начинать уточнение.

Эти мосты полезны, но сама диаграмма — причина, по которой существует drawtonomy. Иллюстрация в drawtonomy уже ценна сама по себе как иллюстрация; эти форматы позволяют ей перетекать в следующую стадию рабочего процесса при необходимости.

  • Не симулятор. Он не запускает сценарии. Экспорт в esmini, CARLA или ваш собственный инструмент для этого.
  • Не CAD-инструмент. Он не обеспечивает инженерную точность (клотоидные сплайны, виражи, высота). Геометрия — простая 2D.
  • Не пакет реального времени для совместной работы. Это однопользовательский редактор. Сохранил, поделился, открыл снова.