В этом примере показано, как проектировать и моделировать транспортное средство для согласования светофоров в среде моделирования вождения Unreal Engine ®.
Логика принятия решений для согласования светофоров является фундаментальным компонентом автоматизированного управления транспортными средствами. Логика принятия решения взаимодействует с контроллером для управления эго-транспортным средством на основе состояния светофора и других транспортных средств в эго-полосе. Моделирование реальных сценариев трафика с реалистичными условиями может обеспечить более глубокое понимание взаимодействий между логикой принятия решений и контроллером. Automated Driving Toolbox™ предоставляет 3D среду моделирования на базе Unreal Engine ® от Epic Games ®. Этот механизм можно использовать для визуализации движения транспортного средства в заранее построенной сцене 3D. Этот движок обеспечивает интуитивно понятный способ анализа эффективности логики принятия решений и алгоритмов управления при согласовании светофора на перекрестке.
Для получения информации о том, как разработать логику принятия решений и средства управления для согласования светофоров в кубовидной среде. См. пример согласования светофора. В этом примере показано, как управлять светофором в нереальной сцене, а затем моделировать и визуализировать поведение транспортного средства для различных тестовых сценариев. В этом примере будут выполнены следующие действия:
Изучите архитектуру модели испытательного стенда: модель содержит датчики и среду, логику принятия решений светофора, средства управления и динамику транспортного средства.
Управление светофором в нереальной сцене: Simulation 3D Traffic Light Controller вспомогательный блок настраивает модель для управления состоянием светофора в нереальной сцене с помощью Simulink ®.
Моделирование поведения транспортного средства во время перехода от зеленого к красному: Модель анализирует взаимодействия между логикой принятия решения и контроллером, когда состояние светофора переходит от зеленого к красному, а эго-транспортное средство находится на расстоянии 10 метров от стоп-линии.
Моделирование поведения транспортного средства во время перехода от красного к зеленому: Модель анализирует взаимодействия между логикой принятия решения и контроллером, когда светофор переходит от красного к зеленому, а эго-транспортное средство находится на расстоянии 11 метров от стоп-линии. В этом случае эго-транспортное средство также согласовывает сигнал светофора, когда другое транспортное средство пересекает перекресток.
Изучите другие сценарии: эти сценарии тестируют систему в дополнительных условиях.
Шаблоны моделирования, используемые в этом примере, можно применить для проверки собственной логики принятия решений и элементов управления для согласования светофоров в нереальной сцене.
В этом примере моделирование на уровне системы включается посредством интеграции с нереальным механизмом. Для этой среды требуется 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 модель.
Модель испытательного стенда содержит следующие подсистемы:
Сенсоры и окружающая среда: моделирует дорожную сеть, транспортные средства, камеру и радиолокационные датчики, используемые для моделирования. Подсистема использует Simulation 3D Traffic Light Controller вспомогательный блок для управления состоянием светофоров в сцене Unreal.
Логика принятия решения в отношении светофора: Арбитражное разбирательство между светофором и другими транспортными средствами-лидерами или транспортными средствами-перекрестками на перекрестке.
Lane-Follow Controller: Генерирует продольные и боковые органы управления для эго-транспортного средства.
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 и выдает в качестве входных данных контроллер.
Установка позиций транспортного средства
Сценарий содержит одно эго-транспортное средство и два эго-транспортных средства. Положение каждого транспортного средства в сценарии определяется следующими частями подсистемы:
Блок «Имитация 3D транспортного средства со следом за землей» обеспечивает интерфейс, который изменяет положение и ориентацию транспортного средства в 3D сцене.
Входной порт 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');
В этом примере можно использовать шаблоны моделирования для создания собственного приложения согласования светофоров.
Моделирование Cuboid To 3D | Генератор радиолокационных данных | Многообъектный трекер | Моделирование 3D конфигурация сцены | Имитация 3D транспортного средства со следующим грунтом | Транспортное средство в мир | Генератор обнаружения видения