exponenta event banner

Согласование светофора с визуализацией нереального механизма

В этом примере показано, как проектировать и моделировать транспортное средство для согласования светофоров в среде моделирования вождения Unreal Engine ®.

Введение

Логика принятия решений для согласования светофоров является фундаментальным компонентом автоматизированного управления транспортными средствами. Логика принятия решения взаимодействует с контроллером для управления эго-транспортным средством на основе состояния светофора и других транспортных средств в эго-полосе. Моделирование реальных сценариев трафика с реалистичными условиями может обеспечить более глубокое понимание взаимодействий между логикой принятия решений и контроллером. Automated Driving Toolbox™ предоставляет 3D среду моделирования на базе Unreal Engine ® от Epic Games ®. Этот механизм можно использовать для визуализации движения транспортного средства в заранее построенной сцене 3D. Этот движок обеспечивает интуитивно понятный способ анализа эффективности логики принятия решений и алгоритмов управления при согласовании светофора на перекрестке.

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

  1. Изучите архитектуру модели испытательного стенда: модель содержит датчики и среду, логику принятия решений светофора, средства управления и динамику транспортного средства.

  2. Управление светофором в нереальной сцене: Simulation 3D Traffic Light Controller вспомогательный блок настраивает модель для управления состоянием светофора в нереальной сцене с помощью Simulink ®.

  3. Моделирование поведения транспортного средства во время перехода от зеленого к красному: Модель анализирует взаимодействия между логикой принятия решения и контроллером, когда состояние светофора переходит от зеленого к красному, а эго-транспортное средство находится на расстоянии 10 метров от стоп-линии.

  4. Моделирование поведения транспортного средства во время перехода от красного к зеленому: Модель анализирует взаимодействия между логикой принятия решения и контроллером, когда светофор переходит от красного к зеленому, а эго-транспортное средство находится на расстоянии 11 метров от стоп-линии. В этом случае эго-транспортное средство также согласовывает сигнал светофора, когда другое транспортное средство пересекает перекресток.

  5. Изучите другие сценарии: эти сценарии тестируют систему в дополнительных условиях.

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

В этом примере моделирование на уровне системы включается посредством интеграции с нереальным механизмом. Для этой среды требуется 64-разрядная платформа Windows ®.

if ~ispc
    error(['3D Simulation is only supported on Microsoft', char(174), ' Windows', char(174), '.']);
end

Изучение архитектуры модели испытательного стенда

Для изучения поведения системы согласования светофоров откройте модель испытательного стенда для моделирования системы.

open_system("TrafficLightNegotiationWithUnrealTestBench");

При открытии этой модели запускается helperSLTrafficLightNegotiationWithUnrealSetup сценарий для инициализации сценария теста, сохраненного как drivingScenario в базовой рабочей области. Сценарий тестирования по умолчанию, scenario_TLN_straight_greenToRed_with_lead_vehicle, содержит одно эго-транспортное средство и два эго-транспортных средства. Этот сценарий настройки также настраивает конструктивные параметры контроллера, параметры модели транспортного средства и сигналы шины Simulink ® для определения входов и выходов для TrafficLightNegotiationWithUnrealTestBench модель.

Модель испытательного стенда содержит следующие подсистемы:

  1. Сенсоры и окружающая среда: моделирует дорожную сеть, транспортные средства, камеру и радиолокационные датчики, используемые для моделирования. Подсистема использует Simulation 3D Traffic Light Controller вспомогательный блок для управления состоянием светофоров в сцене Unreal.

  2. Логика принятия решения в отношении светофора: Арбитражное разбирательство между светофором и другими транспортными средствами-лидерами или транспортными средствами-перекрестками на перекрестке.

  3. Lane-Follow Controller: Генерирует продольные и боковые органы управления для эго-транспортного средства.

  4. Vehicle Dynamics: моделирует эго-транспортное средство с помощью блока Велосипедная модель и обновляет его состояние с помощью команд, полученных из ссылочной модели Lane Following Controller.

Эталонные модели «Логика принятия решения по светофору», «Lane Following Controller» и «Vehicle Dynamics» используются повторно из примера «Согласование светофора». В этом примере изменяется подсистема «Датчики и среда», чтобы сделать ее совместимой для моделирования с нереальной сценой.

Подсистема «Датчики и окружающая среда» конфигурирует дорожную сеть, устанавливает положение транспортного средства, синтезирует датчики и предохраняет детекторы транспортного средства от радаров и датчиков зрения. Откройте подсистему датчиков и окружающей среды.

open_system("TrafficLightNegotiationWithUnrealTestBench/Sensors and Environment");

Выбор сценария

Схема и дорожная сеть, необходимые для модели испытательного стенда, определяются следующими частями данной подсистемы:

  • Параметр имени сцены Scene name для блока Simulation 3D Scene Configuration установлено значение US City Block. Городская блок-дорожная сеть США состоит из пятнадцати односторонних перекрестков с двумя светофорами на каждом перекрестке. В этом примере для тестирования модели используется участок сцены городского блока США.

  • Блок чтения сценариев принимает информацию ego-транспортного средства в качестве входных данных и выполняет моделирование с замкнутым контуром. Этот блок считывает drivingScenario объект scenario из базового рабочего пространства. Сценарий содержит требуемую дорожную сеть. Дорожная сеть тесно совпадает с участком сцены городского блока США и содержит один перекрёсток.

Можно отобразить выбранный раздел сцены городского блока США с помощью helperDisplayTrafficLightScene функция.

Задайте пределы x и y, чтобы выбрать нужную область сцены и распечатать извлеченную сцену.

xlimit = [-110 70];
ylimit = [-105 105];
hFigure = helperDisplayTrafficLightScene(xlimit, ylimit);
snapnow;
close(hFigure);

helperGetTrafficLightScenario функция определяет опорный путь для эго-транспортного средства, по которому должна следовать информация о полосе движения. Блок «Информация о пути ссылки» считывает путь ссылки, сохраненный в базовой переменной рабочего пространства. referencePathInfo. Эго-транспортное средство может либо идти прямо, либо совершать левый поворот на перекрестке на основе опорной траектории. Можно выбрать одну из этих траекторий привязки, задав входные значения helperGetTrafficLightScenario функция. Задайте значение

  • Straight - Заставить эго транспортное средство двигаться прямо через перекресток.

  • Left - Чтобы сделать эго транспортное средство сделать левый поворот на перекрестке.

Блок «Задать скорость» считывает значение скорости из базовой переменной рабочего пространства. setVelocity и выдает в качестве входных данных контроллер.

Установка позиций транспортного средства

Сценарий содержит одно эго-транспортное средство и два эго-транспортных средства. Положение каждого транспортного средства в сценарии определяется следующими частями подсистемы:

  • Входной порт Ego управляет положением ego-транспортного средства, которое определяется Simulation 3D Vehicle with Ground Following 1 блок. ActorName параметр маски Simulation 3D Vehicle with Ground Following 1 блок указан как EgoVehicle.

  • Блок Cuboid To 3D Simulation преобразует систему координат ego pose (по отношению к центру задней оси транспортного средства) в систему координат 3D моделирования (по отношению к центру транспортного средства).

  • Блок «Считыватель сценариев» также выводит наземную информацию об истинности полос движения и позициях субъектов в координатах эго-транспортного средства для целевых транспортных средств. В этом примере есть два целевых транспортного средства, которые определяются другими моделирующими 3D транспортными средствами с блоками «За землей».

Подсистема Tracking and Sensor Fusion предохраняет детекторы транспортных средств от блоков Driving Radar Data Generator и Vision Detection Generator и отслеживает конденсированные детекторы с помощью блока Multi-Object Tracker для обеспечения объектных дорожек, окружающих эго-транспортное средство. Блок генератора визуального обнаружения также обеспечивает обнаружение полосы движения по отношению к эго-транспортному средству, что помогает идентифицировать транспортные средства, присутствующие в эго-дорожке.

Управление светофором на нереальной сцене

Эта модель использует вспомогательный блок контроллера симуляции 3D светофора для настройки и управления состоянием светофоров в нереальной сцене. Блок поддержки контроллера симуляции 3D светофора управляет состоянием светофоров с помощью Timer-Based или State-Based режим. Можно выбрать требуемый режим с помощью Control mode параметр маски. По умолчанию эта модель использует State-Based режим. Для получения информации о Timer-Based см. описание маски блока.

В State-Based , блок перезаписывает состояние светофора, указанного Traffic Light ID входной порт. Значение для Traffic Light ID входной порт устанавливается intersectionInfo.trafficLightToNegotiate переменной в helperGetTrafficLightScenario функция. В этой модели значение для Traffic Light ID входной порт имеет значение 16. Это подразумевает, что блок управляет светофором со значением ID 16 в сцене блока города США. Состояния всех светофоров, присутствующих в сцене городского блока США, возвращает Ground Truth выходной порт Simulation 3D Traffic Light Controller блок вспомогательного устройства. Модель проверяет логику принятия решений и управляет ими, используя информацию о истинности земли, и не требует обнаружения светофора на основе восприятия.

Traffic Light Select блок извлекает состояние светофора со значением ID 16 из Ground Truth выход. Эталонная модель логики принятия решения о светофоре использует значение состояния для арбитража между ведущим автомобилем и светофором. Для получения дополнительной информации о ссылочной модели логики принятия решения о светофоре см. пример согласования светофора.

Блок «Положение стоп-линии светофора» обеспечивает положение стоп-линии на перекрестке, соответствующее выбранному светофору trafficLightToNegotiate. Значение положения стоп-линии задается intersectionInfo.tlStopLinePosition.

Блок «Центр пересечения» определяет положение центра пересечения дорожной сети в сценарии. Это получается с помощью intersectionInfo, вывод из helperGetTrafficLightScenario.

Часто важно проверить логику принятия решения и управление, когда эго-транспортное средство близко к светофору и светофор меняет свое состояние. Модель, используемая в этом примере, позволяет светофорам изменять состояние при EgoVehicle находится близко к светофору.

Distance To Traffic Light Stop Line блок вычисляет евклидово расстояние между стоп-линией, соответствующей выбранному светофору trafficLightToNegotiate и текущее положение эго-транспортного средства.

Логика принятия решения по светофору использует значение расстояния для определения наиболее важного объекта (MIO), ближайшего объекта перед эго-транспортным средством. Это может быть ведущее транспортное средство или светофор в полосе эго.

Выходы логического блока переключения светофоров tlState, состояние светофора, которое необходимо установить. Это реализуется с помощью Stateflow™ и использует значение расстояния для запуска изменения состояния при EgoVehicle находится ближе к светофору, чем заданное расстояние.

Откройте блок логики переключения светофоров.

open_system("TrafficLightNegotiationWithUnrealTestBench/Sensors and Environment/Traffic Light Switching Logic", 'force');

Логика переключения светофоров использует Configuration params параметр маски для считывания конфигурации светофора, trafficLightConfig, из базового рабочего пространства. Вы можете использовать trafficLightConfig структура для конфигурирования различных сценариев тестирования. Эта структура определена в функции сценария тестирования и имеет следующие поля: stateChangeDistance, initialState, и changeState.

  • initialState определяет состояние светофора до изменения состояния.

  • stateChangeDistance задает пороговое расстояние EgoVehicle на светофор, при котором должно произойти изменение состояния.

  • changeState определяет состояние светофора, устанавливаемого после изменения состояния.

Переключение состояний происходит в зависимости от конфигурации аппарата и когда EgoVehicle достигает stateChangeDistance. Когда initialState является Red и changeState является Green диаграмма Stateflow переключается из Red состояние для Green состояние. И наоборот, когда initialState является Green и changeState является Red диаграмма Stateflow смоделирована таким образом, что переход состояния происходит из Green состояние для Yellow состояние и через одну секунду светофор переключается на Red состояние.

Моделирование поведения транспортного средства во время перехода от зеленого к красному

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

Сконфигурируйте TrafficLightNegotiationWithUnrealTestBench для использования scenario_TLN_straight_greenToRed_with_lead_vehicle сценарий тестирования.

helperSLTrafficLightNegotiationWithUnrealSetup(...
    "scenario_TLN_straight_greenToRed_with_lead_vehicle");

Отображение trafficLightConfig параметры структуры, установленные для сценария тестирования.

disp(trafficLightConfig');
           initialState: 2
    stateChangeDistance: 10
            changeState: 0

Моделирование модели. Во время моделирования модель регистрирует сигналы, необходимые для анализа после моделирования, в logsout.

Чтобы уменьшить количество выходных данных командного окна, сначала отключите сообщения обновления MPC.

mpcverbosity('off');
sim("TrafficLightNegotiationWithUnrealTestBench");

Постройте график результатов моделирования с помощью helperPlotTrafficLightControlAndNegotiationResults функция.

hFigResults = helperPlotTrafficLightControlAndNegotiationResults(logsout, trafficLightConfig.stateChangeDistance);

Изучите результаты.

  • На графике состояния светофора показано состояние светофора. На графике «Расстояние до стоп-линии светофора» показано расстояние между эго-транспортным средством и стоп-линией, соответствующей светофору. Видно, что исходное состояние светофора - зеленый, а состояние меняется с зеленого на желтое, когда эго-транспортное средство приближается к стоп-линии. Состояние меняется с желтого на красное, когда эго-транспортное средство находится на расстоянии 10 метров от стоп-линии.

  • График относительного продольного расстояния показывает относительное расстояние между эго-транспортным средством и наиболее важным объектом (MIO). MIO является ближайшим объектом перед эго-транспортным средством. Это может быть ведущее транспортное средство или светофор в полосе эго. Эго-транспортное средство следует за ведущим транспортным средством и сохраняет безопасное расстояние, когда светофор горит зеленым. Расстояние между эго и ведущим транспортным средством уменьшается при переходе светофора с зеленого на красный. Это происходит потому, что, когда эго-транспортное средство приближается к стоп-линии, светофор обнаруживается как MIO. В этот момент времени состояние светофора либо красное, либо желтое.

  • График ускорений Ego показывает профиль ускорений от контроллера Lane Following. Обратите внимание, что это близко следует за падением относительного расстояния, в ответ на обнаружение красного светофора как MIO.

  • График скорости эго показывает профиль скорости эго-транспортного средства. Обратите внимание, что скорость эго замедляется в ответ на желтый и красный светофоры и полностью останавливается перед стоп-линией. Это можно проверить, сравнив график с «Расстоянием до стоп-линии светофора», когда скорость равна нулю.

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

Закройте фигуру.

close(hFigResults);

Моделирование поведения транспортного средства во время перехода от красного к зеленому

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

Функция сценария тестирования scenario_TLN_red_to_green_with_cross_traffic_vehicle реализует этот сценарий. Сконфигурируйте TrafficLightNegotiationWithUnrealTestBench для использования этого сценария.

helperSLTrafficLightNegotiationWithUnrealSetup(...
    "scenario_TLN_straight_redToGreen_with_cross_vehicle");

Отображение trafficLightConfig параметры структуры, установленные для этого сценария тестирования.

disp(trafficLightConfig');
           initialState: 0
    stateChangeDistance: 11
            changeState: 2

Моделирование модели.

sim("TrafficLightNegotiationWithUnrealTestBench");

Постройте график результатов моделирования.

hFigResults = helperPlotTrafficLightControlAndNegotiationResults(logsout, trafficLightConfig.stateChangeDistance);

Изучите результаты.

  • График состояния светофора показывает, что исходное состояние светофора красное. Состояние светофора меняется с красного на зеленое, когда эго-транспортное средство находится на расстоянии 11 метров от стоп-линии.

  • График относительного продольного расстояния близко следует за графиком «Расстояние до стоп-линии светофора», поскольку отсутствует ведущее транспортное средство. Обратите внимание на внезапное падение относительного расстояния в ответ на обнаружение перекрестного транспортного средства.

  • График ускорения эго показывает, что эго-транспортное средство пытается замедлиться, видя красный сигнал светофора. Однако в ответ на изменение состояния на зеленое можно наблюдать увеличение ускорения. Затем можно заметить профиль жесткого торможения в ответ на перекрестное движение транспортного средства на перекрестке.

  • График скорости эго точно соответствует графику ускорения эго и показывает снижение скорости по мере приближения эго-транспортного средства к перекрестку. Также можно заметить небольшое увеличение скорости в ответ на зеленый сигнал светофора и последующее снижение скорости в ответ на перекрестное движение транспортного средства.

Закройте фигуру.

close(hFigResults);

Изучение других сценариев

В предыдущих разделах изучалось поведение системы для scenario_TLN_straight_greenToRed_with_lead_vehicle и scenario_TLN_straight_redToGreen_with_cross_vehicle сценарии. Ниже приведен список сценариев, совместимых с TrafficLightNegotiationWithUnrealTestBench.

scenario_TLN_straight_greenToRed
scenario_TLN_straight_greenToRed_with_lead_vehicle [Default]
scenario_TLN_straight_redToGreen_with_cross_vehicle
scenario_TLN_left_redToGreen_with_lead_vehicle

Используйте эти дополнительные сценарии для анализа TrafficLightNegotiationWithUnrealTestBench в различных условиях.

Включите сообщения обновления MPC.

mpcverbosity('on');

В этом примере можно использовать шаблоны моделирования для создания собственного приложения согласования светофоров.

См. также

| | | | | |

Связанные темы