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

В этом примере показано, как спроектировать и симулировать транспортное средство, чтобы согласовать светофор в Нереальном Engine® ведущая среда симуляции.

Введение

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

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

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

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

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

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

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

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

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

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

Исследуйте архитектуру тестовой модели

Чтобы исследовать тестовую модель, скопируйте файлы проекта в качестве примера в рабочую папку. Используйте workDir аргумент helperDrivingProjectSetup функция, чтобы задать путь к файлу. Длина пути к файлу должна быть меньше 25 символов, чтобы избежать максимального символьного предела для пути к файлу Windows.

addpath(fullfile(matlabroot, 'toolbox', 'driving', 'drivingdemos'));
helperDrivingProjectSetup('TLNUnreal.zip', 'workDir', pwd);

Чтобы исследовать поведение системы согласования светофора, откройте тестовую модель симуляции для системы.

open_system("TrafficLightNegotiationWithUnrealTestBench");

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

Тестовая модель содержит следующие подсистемы:

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

  2. Логика Решения Светофора: Выносит решение между светофором и другими ведущими транспортными средствами или транспортными средствами перекрестного трафика на пересечении.

  3. Следующий за маршрутом Контроллер: Генерирует продольные и боковые средства управления для автомобиля, оборудованного датчиком.

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

Логика Решения Светофора, Маршрут После образцов модели Контроллера и подсистема Динамики аппарата снова используются из примера Согласования Светофора. Этот пример изменяет Датчики и подсистему Среды, чтобы сделать его совместимым для симуляции с Нереальной сценой.

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

open_system("TrafficLightNegotiationWithUnrealTestBench/Sensors and Environment");

Выберите Scenario

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Блок Scenario Reader также выходная информация об основной истине маршрутов и агента позирует в координатах автомобиля, оборудованного датчиком целевым транспортным средствам. В этом примере существует два целевых транспортных средства, которые заданы другой Симуляцией 3D Транспортное средство с Землей После блоков.

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

Обнаружения транспортного средства предохранителей подсистемы Отслеживания и Cочетания датчиков от Управления Радарным Генератором Данных и Генератором Обнаружения Видения блокируют и отслеживают сплавленные обнаружения с помощью блока Multi-Object Tracker, чтобы обеспечить объектные дорожки, окружающие автомобиль, оборудованный датчиком. Блок Vision Detection Generator также обеспечивает обнаружения маршрута относительно автомобиля, оборудованного датчиком, который помогает в идентификации транспортных средств, существующих в маршруте эго.

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

Эта модель использует Симуляцию 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. Это подразумевает, что блок управляет светофором со Значением идентификатора 16 в сцене городского квартала США. Состояния всего светофора, существующего в сцене городского квартала США, возвращены Ground Truth выходной порт Simulation 3D Traffic Light Controller блок помощника. Модель тестирует логику решения и средства управления при помощи информации об основной истине и не требует основанного на восприятии обнаружения светофора.

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

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

Блок Intersection Center обеспечивает позицию перекрестного центра дорожной сети в сценарии. Это получено с помощью 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_03_TLN_straight_greenToRed_with_lead_vehicle сценарий тестирования.

helperSLTrafficLightNegotiationWithUnrealSetup(...
    "scenario_03_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. В этом моменте времени состояние светофора является или красным или желтым.

  • Ускоряющий график Эго показывает ускоряющий профиль от Маршрута После Контроллера. Заметьте, что это сопровождает падение в относительном расстоянии в реакции на обнаружение красного светофора как MIO.

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

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

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

close(hFigResults);

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

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

Функция сценария тестирования scenario_04_TLN_straight_redToGreen_with_cross_vehicle реализации этот сценарий. Сконфигурируйте TrafficLightNegotiationWithUnrealTestBench модель, чтобы использовать этот сценарий.

helperSLTrafficLightNegotiationWithUnrealSetup(...
    "scenario_04_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_03_TLN_straight_greenToRed_with_lead_vehicle и scenario_04_TLN_straight_redToGreen_with_cross_vehicle сценарии. Ниже список сценариев, которые совместимы с TrafficLightNegotiationWithUnrealTestBench.

scenario_01_TLN_left_redToGreen_with_lead_vehicle
scenario_02_TLN_straight_greenToRed
scenario_03_TLN_straight_greenToRed_with_lead_vehicle [Default]
scenario_04_TLN_straight_redToGreen_with_cross_vehicle

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

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

mpcverbosity('on');

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

Смотрите также

| | | | | |

Похожие темы