Переговоры о светофоре с нереальной визуализацией Engine

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

Введение

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

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

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

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

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

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

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

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

В этом примере вы активируете симуляцию уровня системы путем интегрирования с Unreal Engine. Для это окружение требуется 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 блок helper для управления состоянием светофоров в сцене Unreal.

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

  3. Контроллер маршрута: генерирует продольные и боковые элементы управления для автомобиля , оборудованного датчиком.

  4. Динамика аппарата: Моделирует автомобиль , оборудованный датчиком с помощью блока Bicycle Model и обновляет его состояние с помощью команд, полученных от Контроллера образца модели Lane Following.

Логика принятия решений по светофору, образцы модели Lane Following Controller и Подсистема динамики аппарата используются повторно из примера согласования светофора. Этот пример изменяет Подсистемы Датчиков и Окружения, чтобы сделать ее совместимой для симуляции со сценой Unreal.

Подсистема Sensors and Environment конфигурирует дорожную сеть, устанавливает положения транспортного средства, синтезирует датчики и запирает обнаружения транспортного средства с радара и датчиков зрения. Откройте Подсистему Датчиков и Окружения.

open_system("TrafficLightNegotiationWithUnrealTestBench/Sensors and Environment");

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

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

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

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

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

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

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

The helperGetTrafficLightScenario функция задает путь ссылки для автомобиля , оборудованного датчиком, которым следует следовать, когда информация о маршруте недоступна. Блок Reference Path Info считывает ссылочный путь, сохраненный в переменной базового рабочего пространства referencePathInfo. На основе траектории автомобиля , оборудованного датчиком можно либо перейти прямо, либо совершить поворот налево на пересечении. Ссылка Можно выбрать одну из следующих ссылок траекторий путем установки входа значений helperGetTrafficLightScenario функция. Установите значение на

  • Straight - Чтобы заставить автомобиль , оборудованный датчиком перемещаться прямо через перекресток.

  • Left - Чтобы заставить автомобиль , оборудованный датчиком взять поворот налево на перекрестке.

Блок Set Velocity считывает значение скорости из переменной базового рабочего пространства setVelocity и дает в качестве входов контроллеру.

Установите положения транспортного средства

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

  • Блок Simulation 3D Vehicle with Ground Following обеспечивает интерфейс, который изменяет положение и ориентацию транспортного средства в 3D сцене.

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

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

  • Блок Scenario Reader также выходы основной истины информацию о полосах и положениях актёра в координатах автомобиля , оборудованного датчиком для целевых транспортных средств. В этом примере есть два целевых транспортных средств, которые заданы другими блоками Simulation 3D Vehicle with Ground Following.

  • Блок Vehicle To World преобразует координаты положения актёра из координат автомобиль , оборудованный датчиком в мировые координаты.

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

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

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

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

The Traffic Light Select блок извлекает состояние светофора со значением идентификатора 16 из Ground Truth выход. Образец модели Lag Light Decision Logic использует значение состояния для арбитража между ведущим автомобилем и светофором. Для получения дополнительной информации об образце модели Traffic Light Decision Logic, смотрите пример Согласования светофора.

Блок Traffic Light Stop Line Position обеспечивает положение стоповой линии на перекрестке, соответствующем выбранному светофору trafficLightToNegotiate. Значение положения стоповой линии определяется intersectionInfo.tlStopLinePosition.

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

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

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

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

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

Откройте блок Traffic Light Switching Logic.

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

Логика переключения светофора использует Configuration params параметр mask для чтения строения светофора, 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 показывает профиль ускорения от контроллера маршрута следования. Заметьте, что это внимательно следует падению относительного расстояния, в ответ на обнаружение красного светофора как MIO.

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

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

Закройте рисунок.

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 метров от стоп- линии.

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

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

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

Закройте рисунок.

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');

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

См. также

| | | | | |

Похожие темы