Как получить доступ к автомобилям SUMO с highway_overtake.py в Webots? - PullRequest
1 голос
/ 08 февраля 2020

Я изменяю контроллер highway_overtake.py, чтобы иметь возможность отслеживать положение и скорость соседних автомобилей SUMO (те, которые выделены в прозрачных цветных прямоугольниках). Как я могу получить информацию о транспортном средстве SUMO, которое находится в непосредственной близости от автомобиля Линкольна? Я хочу получить позицию, ускорение, скорость и т. Д. c. автомобилей SUMO, выделенных возле машины Линкольна. Вот что я попробовал до сих пор:

  • Я изменил поле 'supervisor' на TRUE в мире обгона шоссе для автомобильного узла Lincoln MKZ.
  • Я импортировал Supervisor из контроллера в мой файл контроллера higway_overtake.py.
  • Я пытался вызвать функции traci getIDList () и getPosition (), но выдает ошибку, в которой говорится, что у контроллера нет таких атрибутов.

Я считаю, что эта информация может быть извлекается из файла SumoSupervisor.py, который является файлом контроллера для интерфейса Sumo. Но я не знаю, как получить доступ к этому файлу в моем скрипте highway_overtake.py.

Любая информация, которая может помочь мне решить эту проблему, будет очень полезна! Заранее спасибо.

1 Ответ

2 голосов
/ 08 февраля 2020

Если это для отладки, вы можете использовать эту функцию супервизора, чтобы получить положение всех автомобилей в симуляции, а затем выяснить, какой из них закрыт для вашей целевой машины (какой идентификатор вы знаете). https://cyberbotics.com/doc/guide/supervisor-programming#tracking -the-position-of-robots

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

Или использовать модули GPS (с достаточно высоким разрешением) на каждом машину и сравните координаты.

...