Вспомогательные скрипты
Если не указано иное, запускайте эти команды из корня репозитория OpenCDA в контейнере OpenCDA. Для команд, подключающихся к CARLA, задайте CARLA_HOST, как показано в Подключение из OpenCDA.
Команды сборки и запуска интерфейса Artery приведены в Команды и цели времени выполнения.
Средства преобразования карт CARLA/SUMO
Предоставляются вспомогательные скрипты для подготовки ресурсов карт SUMO из карт CARLA.
Эти скрипты полезны для преобразования карты CARLA в совместимые с SUMO файлы:
.net.xml: файл дорожной сети SUMO.poly.xml: файл полигонов SUMO со статическими объектами среды
Скрипты находятся в каталоге scripts OpenCDA. Зависимости для преобразования и упорядоченный рабочий процесс описаны в Карты и ресурсы SUMO. Пути внутри opencda/sumo-assets относятся к подключённому каталогу ресурсов SUMO на хосте.
Создание сети SUMO с помощью netconvert_carla.py
Эта утилита создаёт файл SUMO .net.xml из данных карты CARLA/OpenDRIVE.
Поддерживаются два режима:
преобразовать локальный файл OpenDRIVE
.xodrсчитать данные OpenDRIVE из текущего загруженного мира CARLA с помощью
--from-carla
Скрипт использует SUMO netconvert, поэтому переменная SUMO_HOME должна быть настроена, а инструменты SUMO - доступны в среде.
Использование
python scripts/netconvert_carla.py [xodr_file] --output OUTPUT
или при чтении карты непосредственно из CARLA:
python scripts/netconvert_carla.py \
--from-carla \
--carla-host "$CARLA_HOST" \
--carla-port CARLA_PORT \
--carla-map CARLA_MAP \
--output OUTPUT
Аргументы
xodr_file: необязательный путь к локальному файлу OpenDRIVE.xodr. Обязателен, если не используется--from-carla.
Параметры
--output,-o: путь к созданному файлу SUMO.net.xml--from-carla: чтение данных OpenDRIVE из текущего загруженного мира CARLA--carla-host: хост сервера CARLA--carla-port: порт сервера CARLA--carla-timeout: тайм-аут API CARLA в секундах--carla-map: карта CARLA для загрузки, если она ещё не активна--guess-tls: определение светофоров на перекрёстках
Пример
Сначала создайте выходной каталог командой mkdir -p opencda/sumo-assets/maps/Town12.
python scripts/netconvert_carla.py \
--from-carla \
--carla-host "$CARLA_HOST" \
--carla-map Town12 \
--output opencda/sumo-assets/maps/Town12/Town12.generated.net.xml
Создание полигонов SUMO с помощью polyconvert_carla.py
Эта утилита создаёт файл SUMO .poly.xml из статических объектов карты CARLA.
Скрипт использует существующий файл SUMO .net.xml для преобразования координат и обрезки по границам, затем сканирует мир CARLA и записывает выбранные статические объекты как полигоны SUMO.
Использование
python scripts/polyconvert_carla.py \
--net-file NET_FILE \
--output OUTPUT \
--carla-host "$CARLA_HOST" \
--carla-map CARLA_MAP
Параметры
--net-file: существующий файл SUMO.net.xml--output,--poly-output,-o: выходной файл SUMO.poly.xml--carla-host: хост сервера CARLA--carla-port: порт сервера CARLA--carla-timeout: тайм-аут API CARLA в секундах--carla-map: карта CARLA для загрузки, если она ещё не активна--labels: разделённые запятыми семантические метки CARLA для экспорта--bounds: явные границы сканирования CARLA в форматеmin_x,min_y,max_x,max_y--bounds-margin: дополнительный отступ вокруг границ сканирования--boundary-margin: дополнительный отступ вокруг границы сети SUMO--stream-distance: расстояние потоковой загрузки фрагментов CARLA--scan-step: расстояние между точками сканирования--settle-ticks: число тактов ожидания после перемещения наблюдателя--scan-altitude: высота наблюдателя во время сканирования--min-height: минимальная высота объекта--max-area: максимальная площадь основания полигона--max-wall-thickness: фильтр максимальной толщины стены--verbose: включение подробного журналирования
Пример
python scripts/polyconvert_carla.py \
--net-file opencda/sumo-assets/maps/Town10HD/Town10HD.net.xml \
--output opencda/sumo-assets/maps/Town10HD/Town10HD.generated.poly.xml \
--carla-host "$CARLA_HOST" \
--carla-map Town10HD
Вспомогательные средства наблюдателя CARLA
Также предоставляются небольшие вспомогательные скрипты для чтения и задания положения наблюдателя CARLA.
Получение положения наблюдателя
python scripts/get_spectator_position.py \
--carla-host "$CARLA_HOST" \
--carla-port 2000
Команда выводит текущее положение и поворот наблюдателя.
Задание положения наблюдателя
echo "10.0,20.0,50.0" | python scripts/set_spectator_position.py \
--carla-host "$CARLA_HOST" \
--carla-port 2000
Команда задаёт положение наблюдателя из стандартного ввода.
Создание видео с помощью make_video.py
Для этой утилиты исполняемый файл ffmpeg должен находиться в PATH. Она преобразует последовательность визуализированных кадров в видеофайл. Сначала выполните ffmpeg -version. Если FFmpeg отсутствует, установите его в среду, используемую для преобразования. Утилита обычно применяется для визуализации результатов симуляции, созданных OpenCDA, например результатов восприятия в 3D или BEV.
Использование
python scripts/make_video.py [-h] [--framerate FRAMERATE] [--rotate ROTATE] [--pattern PATTERN] input_dir output_path
Аргументы
input_dir: каталог с входными кадрами изображенийoutput_path: путь к выходному видеофайлу, напримерvideo.mp4
Параметры
--framerate: частота кадров в кадрах в секунду--rotate: поворот кадров против часовой стрелки; допустимые значения:90,180,270--pattern: шаблон имён файлов последовательности изображений в формате glob
Пример
python scripts/make_video.py \
simulation_output/coperception/vis_3d/v2xp_datadump_town06_carla_2026_03_24_09_56_21 \
simulation_output/coperception/v2xp_datadump_town06_carla_3d.mp4