Устранение неполадок
Сначала определите, какой этап завершается ошибкой: сборка образа, запуск контейнера, запуск симулятора, подключение или выполнение сценария. run.sh up только создаёт ожидающие контейнеры. Эта команда не запускает CARLA, SUMO, Artery или OpenCDA.
Не удаётся подключиться к CARLA
Убедитесь, что процесс CARLA запущен, затем повторите запрос версии и карты из Подключение из OpenCDA в контейнере OpenCDA. Порт RPC по умолчанию - 2000. Увеличьте --carla-timeout, если загрузка карты занимает больше времени.
Имя сервиса Compose - carla. В оболочке OpenCDA:
export CARLA_HOST=carla
Убедитесь, что оба контейнера находятся в одной сети Compose и что CarlaUE4.sh запущен внутри контейнера CARLA.
При использовании Docker Desktop задайте адрес хоста Windows в оболочке OpenCDA:
export CARLA_HOST=host.docker.internal
Проверьте интеграцию WSL в Docker Desktop и правило брандмауэра Windows для CARLA. Если внутри WSL используется независимый Docker Engine, проверьте его маршрут к хосту Windows, не предполагая наличия этого имени хоста. Явно передайте доступный адрес хоста через --carla-host.
Town06 отсутствует или версии различаются
Установите дополнительные карты для того же выпуска CARLA, что и сервер. Dockerfile CARLA в CAVISE импортирует соответствующий архив карт во время сборки. В Windows установите карты в распакованный пакет. Перед запуском сценария снова проверьте client.get_available_maps().
Текущие сервер и Python-клиент должны иметь версию 0.9.16. Если версии отличаются, пересоберите устаревший образ или установите соответствующий пакет Windows. Простая смена имени сценария не устанавливает отсутствующую карту.
Неизвестный параметр модели или отсутствующая цель сборки
Для --model-id и opencda-coperception требуется версия OpenCDA, использующая отдельные репозитории OpenCOOD и models. Проверяйте версии компонентов, а не только коммит CAVISE верхнего уровня. В контейнере OpenCDA:
python opencda.py --help
Setup пропускает существующие репозитории и не является командой обновления. После обновления совместимых checkout пересоберите выбранную цель и выполните up, чтобы пересоздать её контейнер.
Отсутствует OpenCOOD или расширение CUDA
При ошибке No module named opencood убедитесь, что существует соседний checkout OpenCOOD, и выберите opencda-coperception, opencda-cuda или opencda. Минимальный образ и образ только с Protobuf не устанавливают OpenCOOD.
Если для модели требуется расширение, например roiaware_pool3d_cuda, выполните из корня CAVISE:
./run.sh build opencda-cuda
./run.sh up opencda-cuda
Если в том же эксперименте требуется CAPI, используйте полную цель opencda. Проверьте внутри контейнера OpenCDA:
python -c "from opencood.pcdet_utils.roiaware_pool3d import roiaware_pool3d_cuda; print(roiaware_pool3d_cuda.__file__)"
Если расширение сообщает о неподдерживаемой архитектуре GPU, пересоберите образ с подходящим значением CUDA_ARCHITECTURES. См. Команды и цели времени выполнения.
Не удаётся загрузить модели
Проверьте ID пакета, доступ к сети, репозиторий или ref и разрешения каталога models на хосте. Используйте run.sh up, чтобы каталог был создан вашим пользователем до подключения Docker через bind mount. Для прямого использования Compose сначала создайте его, как описано в Команды и цели времени выполнения.
Для --no-auto-fetch-models необходим полный корректный пакет, уже находящийся на диске. При ошибке метаданных или контрольной суммы требуется корректный пакет, а не отключение проверки. Поддерживаемые переопределения описаны в Модели и ресурсы времени выполнения.
AdvCP не запускается или не влияет на прогнозы
Используйте
--with-coperceptionи--advcp-configсовместно с--with-advcp.Включите подкаталог сценария:
-t advcp-scenarios/advcp_check.Убедитесь, что настроенные
attacker_idsсуществуют в этом сценарии. Конфигурацияremoval_forwardпо умолчанию выбираетcav-5.Проверьте совместимость модели и режима слияния, видимость датчиками и прогрев метрик. Активация конфигурации не гарантирует успешную атаку.
Используйте сопоставимые команды базового запуска и атаки из AdvCP.
SUMO или Artery ожидает клиента
Проверьте число клиентов SUMO, порт и порядок подключения каждого клиента. В примере SUMO и Artery используется один клиент только для OpenCDA или два клиента для OpenCDA совместно с Artery. Запускайте SUMO до его клиентов. Сервер с двумя клиентами ожидает, если подключился только один. Также убедитесь, что процесс предыдущего запуска не занимает тот же порт.
Проблемы с GPU и дисплеем
После создания контейнера выполните docker exec opencda nvidia-smi. Если доступ к GPU не работает, вернитесь к требованиям конкретной платформы в Установка, прежде чем отлаживать сам сценарий.
При ошибке дисплея X11/XWayland проверьте DISPLAY на хосте и подключение /tmp/.X11-unix. Если X-сервер отклоняет клиентов контейнера, разрешите локальные подключения Docker из графического сеанса хоста:
xhost +local:docker
После сеанса отзовите этот доступ командой xhost -local:docker. Если графический сеанс недоступен, используйте рендеринг CARLA без вывода на экран, sumo и интерфейс Cmdenv Artery.
CARLA выполняет рендеринг на хосте Windows. Приложения с GUI внутри контейнеров Linux дополнительно требуют работающей конфигурации дисплея и сокета WSL. Для запуска без окон контейнеров используйте sumo и интерфейс Cmdenv Artery, а визуализации восприятия сохраняйте вместо открытия в реальном времени.