Команды и цели времени выполнения
Полный первый запуск описан в Первая симуляция. На этой странице приведены варианты команд и расширенные операции времени выполнения.
Настройка репозиториев
Запустите python setup.py в корне CAVISE с активированной Python-средой. Если имена репозиториев не указаны, выбираются все пять репозиториев. Если не указана версия, открывается интерактивный выбор ветки или тега. main не выбирается автоматически. Существующие каталоги пропускаются.
Репозиторий |
Параметр версии |
|---|---|
|
|
|
|
|
|
|
|
|
|
Например, клонируйте OpenCDA и OpenCOOD с явно заданными ref:
python setup.py opencda opencood -o main -O main
Жизненный цикл контейнера
Запускайте ./run.sh COMMAND [SERVICES...] из корня CAVISE в Linux/WSL. Основные сервисы: carla, opencda, artery и sumo. Если сервисы не указаны, выбираются все основные сервисы, включая CARLA в Windows. Для выполняемого эксперимента предпочтительно явно указывать список сервисов.
Команда |
Поведение |
|---|---|
|
Собирает образы. Не запускает контейнеры или процессы симулятора. |
|
Создаёт или запускает контейнеры в фоновом режиме, пересоздавая их при необходимости. |
|
Запускает существующие остановленные контейнеры. Не применяет изменения образа или конфигурации. |
|
Останавливает контейнеры, сохраняя их. |
|
Перезапускает существующие контейнеры. Не пересобирает образы. |
|
Удаляет контейнеры через Compose. Файлы вне подключённых томов могут быть потеряны. |
Пример:
./run.sh build opencda-coperception
./run.sh up opencda-coperception
./run.sh stop opencda-coperception
./run.sh start opencda-coperception
За один вызов можно выбрать только одну цель OpenCDA. Все цели используют одни и те же имя сервиса и имя контейнера - opencda. Они не являются одновременно работающими независимыми контейнерами.
Цели образов OpenCDA
Цель |
OpenCOOD |
Protobuf |
Пользовательские расширения CUDA |
Назначение |
|---|---|---|---|---|
|
Нет |
Нет |
Нет |
Базовые CARLA/OpenCDA, при необходимости SUMO. |
|
Нет |
Да |
Нет |
Artery без кооперативного восприятия. |
|
Да |
Нет |
Нет |
Модели, которым не требуются пользовательские расширения CUDA. |
|
Да |
Нет |
Да |
Модели, требующие пользовательских расширений CUDA, например FPV-RCNN. |
|
Да |
Да |
Да |
Кооперативное восприятие совместно с Artery. Цель по умолчанию. |
Все цели используют базовый образ среды выполнения CUDA. Расширения CUDA - отдельная возможность сборки, а не переключатель, включающий вычисления на GPU. opencda-minimal и opencda-protobuf не устанавливают OpenCOOD.
Архитектура CUDA по умолчанию - 86. Задайте CUDA_ARCHITECTURES в соответствии с архитектурами, поддерживаемыми GPU и компилятором CUDA образа, например:
CUDA_ARCHITECTURES="86;89" ./run.sh build opencda-cuda
После изменения Dockerfile или зависимостей выполните повторную сборку. После изменения файла CAPI .proto пересоберите цель Protobuf, а после изменения нативного исходного кода OpenCOOD - цель CUDA. Затем используйте up: точка входа контейнера синхронизирует нативные артефакты с подключённым рабочим каталогом.
Прямой доступ к Compose
Обычно run.sh автоматически выбирает цель, тег, пути и каталог моделей. Для прямого использования Compose оставайтесь в корне CAVISE и подготовьте подключение каталога моделей до создания контейнера:
source paths.conf
mkdir -p "$PATH_TO_MODELS"
export OPENCDA_BUILD_TARGET=opencda-protobuf
export OPENCDA_IMAGE_TAG=protobuf
docker compose -f dc-configs/docker-compose.yml --env-file paths.conf build opencda
docker compose -f dc-configs/docker-compose.yml --env-file paths.conf up -d opencda
Суффиксы целей соответствуют тегам образов minimal, protobuf, coperception и cuda. Полная цель использует local. Задавайте обе переменные согласованно. Чтобы проверить сформированную конфигурацию без запуска:
docker compose -f dc-configs/docker-compose.yml --env-file paths.conf config
Чтобы удалить весь основной проект Compose:
./run.sh down
Менеджер сценариев
Веб-менеджер сценариев использует отдельный проект Compose и не включается при вызове run.sh up без аргументов. Запустите его отдельно:
./run.sh build scenario-manager
./run.sh up scenario-manager
Если браузер не открылся автоматически, откройте http://localhost. Остановите сервис командой ./run.sh stop scenario-manager. Выполняйте эти вызовы отдельно от основных сервисов симулятора, поскольку обёртка передаёт аргументы сервисов выбранным проектам Compose.
CLI OpenCDA
В контейнере OpenCDA выполните:
python opencda.py --help
-t выбирает YAML-путь внутри opencda/scenario_testing/config_yaml без суффикса. Допускаются вложенные пути. Значение --carla-host по умолчанию - carla. В этих руководствах для Docker Desktop в Windows используется host.docker.internal. Значение --artery-host по умолчанию - artery:7777.
Полные примеры запуска приведены в SUMO и Artery, Кооперативное восприятие, AdvCP и Запись и результаты.
Интерфейсы Artery
В контейнере Artery из /workspaces/artery выберите интерфейс Qt:
./tools/run_artery.py -l /cached-build/Debug/run-artery.ini -s scenarios/capi -u Qtenv
Используйте -u Cmdenv для терминального интерфейса. Добавьте -c CONFIG_NAME, чтобы выбрать конфигурацию, объявленную в omnetpp.ini сценария. Инструкции по сборке и полный порядок запуска приведены в SUMO и Artery.