SUMO и Artery
Добавьте к первой симуляции синхронизацию трафика SUMO, затем при необходимости подключите Artery для сетевого обмена через CAPI. Оставьте CARLA запущенной, как описано в Запуск CARLA.
CARLA и SUMO
Из корня CAVISE в Linux/WSL:
./run.sh build sumo opencda-minimal
./run.sh up sumo opencda-minimal
В отдельном терминале запустите SUMO с одним клиентом TraCI (OpenCDA):
docker exec -it sumo bash
sumo -c assets/v2xp_datadump_town06_carla/v2xp_datadump_town06_carla.sumocfg \
--step-length 0.05 --remote-port 3000 --num-clients 1
SUMO ожидает подключения OpenCDA. Если настроен дисплей, вместо sumo используйте sumo-gui. В контейнере OpenCDA задайте CARLA_HOST, как указано в Подключение из OpenCDA, затем выполните:
python opencda.py -t v2xp_datadump_town06_carla \
--cosim --carla-host "$CARLA_HOST" --ticks 200
Поля sumo.host и sumo.port сценария должны указывать на этот сервер SUMO. Параметр --cosim подключается к существующему серверу. Он не запускает SUMO автоматически.
Добавление Artery
Перед этим запуском остановите предыдущие процессы OpenCDA и SUMO. Пересоздайте OpenCDA с поддержкой Protobuf. Из корня CAVISE в Linux/WSL выполните:
./run.sh build artery opencda-protobuf
./run.sh up artery opencda-protobuf sumo
Порядок запуска: CARLA и SUMO, затем Artery, затем OpenCDA. Используйте отдельные терминалы для длительно работающих процессов.
Запустите SUMO с двумя клиентами (Artery и OpenCDA):
docker exec -it sumo bash
sumo -c assets/v2xp_datadump_town06_carla/v2xp_datadump_town06_carla.sumocfg \
--step-length 0.05 --remote-port 3000 --num-clients 2
В контейнере Artery:
docker exec -it artery bash
cd /workspaces/artery
./tools/build.py -cb --build-dir /cached-build --config Debug
./tools/run_artery.py -l /cached-build/Debug/run-artery.ini -s scenarios/capi -u Cmdenv
Базовая конфигурация capi подключается к sumo:3000 с порядковым номером клиента 1 и ожидает OpenCDA на порту 7777. В контейнере OpenCDA после входа в пересозданный контейнер снова задайте CARLA_HOST, затем выполните:
python opencda.py -t v2xp_datadump_town06_carla \
--cosim --with-capi \
--carla-host "$CARLA_HOST" --artery-host artery:7777 --ticks 200
v2xp_datadump_town06_carla наследует из default.yaml порядковый номер клиента OpenCDA SUMO 2 и шаг 0,05 секунды. Команды переопределяют шаг 0,1 секунды из файла SUMO, чтобы оба симулятора выполнялись с одинаковой скоростью. Для пользовательских сценариев задавайте разные порядковые номера клиентов, одинаковую длительность шага и согласованные ресурсы карты. См. Создание сценария.
Для совместного использования CAPI и кооперативного восприятия требуется полный образ opencda. Варианты целей и параметры интерфейса Artery приведены в Команды и цели времени выполнения. После остановки OpenCDA остановите оставшиеся процессы симуляторов с помощью Ctrl+C в соответствующих терминалах, а затем остановите их контейнеры, если они больше не нужны.