exponenta event banner

Смена полосы движения

В этом примере показано, как смоделировать автоматизированную систему маневра при изменении полосы движения для сценария движения по шоссе.

Введение

Автоматизированная система маневра изменения полосы движения (LCM) позволяет эго-транспортному средству автоматически перемещаться с одной полосы движения на другую. Система LCM моделирует динамику продольного и бокового управления для автоматического изменения полосы движения. Система LCM распознает среду для наиболее важных объектов (MIO) с помощью бортовых датчиков, определяет оптимальную траекторию, которая позволяет избежать этих объектов, и управляет эго-транспортным средством по этой траектории.

В этом примере показано, как проектировать и тестировать компоненты плановика и контроллера системы LCM. В этом примере планировщик изменения полосы движения использует информацию об истинности грунта из сценария для обнаружения MIO. Затем он генерирует возможную траекторию для согласования изменения полосы, которое выполняется контроллером изменения полосы. В этом примере выполняется следующее:

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

  • Моделирование планировщика изменения полосы движения - эталонная модель находит MIO, анализирует терминальные состояния эго-транспортного средства и генерирует оптимальную траекторию.

  • Моделирование контроллера изменения полосы движения - эта модель генерирует команды управления для эго-транспортного средства на основе сформированной траектории.

  • Моделирование и визуализация поведения системы - модель испытательного стенда настроена на тестирование интеграции планирования и управления для выполнения маневра по изменению полосы движения на криволинейной дороге с несколькими транспортными средствами.

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

Шаблоны моделирования, используемые в этом примере, можно применить для тестирования собственных компонентов плановика и контроллера системы LCM.

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

В этом примере используется модель стенда моделирования на уровне системы для изучения поведения компонентов планировщика и контроллера для системы маневра смены полосы движения. Откройте модель испытательного стенда для моделирования на уровне системы.

open_system('HighwayLaneChangeTestBench')

При открытии этой модели запускается helperSLHighwayLaneChangeSetup сценарий, который инициализирует сценарий дороги с помощью drivingScenario (Автоматизированная панель управления) объект в базовом рабочем пространстве. Он также конфигурирует параметры конфигурации планировщика, параметры проектирования контроллера, параметры модели транспортного средства и сигналы шины Simulink ®, необходимые для определения входов и выходов для HighwayLaneChangeTestBench модель.

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

  • Сценарий и среда - подсистема, определяющая сцену, транспортные средства и данные карты, используемые для моделирования.

  • Параметры конфигурации плановика - подсистема, определяющая параметры конфигурации, необходимые для алгоритма плановика.

  • Планировщик изменения полосы движения - подсистема, реализующая алгоритм планировщика изменения полосы движения для магистрали.

  • Контроллер изменения полосы движения (Lane Change Controller) - подсистема, определяющая путь, следующий за контроллером, который генерирует управляющие команды для управления эго-транспортным средством по сформированной траектории.

  • Vehicle Dynamics - подсистема, задающая динамическую модель для транспортного средства ego.

  • Оценка метрик - подсистема, определяющая метрики для оценки поведения на уровне системы.

Подсистема Vehicle Dynamics моделирует эго-транспортное средство с помощью велосипедной модели (Automated Driving Toolbox) и обновляет его состояние с помощью команд, полученных от контроллера изменения полосы движения. Дополнительные сведения о подсистеме Vehicle Dynamics см. в разделе Пример «Highway Lane Following» (Automated Driving Toolbox).

Подсистема «Сценарий и окружающая среда» использует блок «Считыватель сценариев» (Automated Driving Toolbox) для определения положения дорожной сети и грунта транспортного средства. Этот блок также выводит данные карты, необходимые для алгоритма планировщика изменения полосы движения. Откройте подсистему «Сценарий и среда».

open_system('HighwayLaneChangeTestBench/Scenario and Environment')

Блок чтения сценариев (Automated Driving Toolbox) сконфигурирован для чтения drivingScenario (Автоматизированная панель управления) объект из базового рабочего пространства. Этот объект используется для чтения данных актера. Для моделирования с замкнутым контуром требуется информация об эго-транспортном средстве. Этот блок выводит наземную информацию об истинности полос движения и действующих лиц в координатах эго-транспортных средств. Блок «Транспортное средство в мир» (Automated Driving Toolbox) используется для преобразования положения целевого транспортного средства из координат транспортного средства в координаты мира. Эта подсистема считывает данные карты из базового рабочего пространства и выводит информацию о полосах движения и опорном пути.

Подсистема «Параметры конфигурации планировщика» считывает базовые переменные рабочего пространства с помощью постоянных блоков и создает структуру шины с помощью блока Bus Creator. Шина, созданная этой подсистемой, используется планировщиком изменения полосы движения.

Для выполнения планирования траектории для автоматического маневра изменения полосы движения эталонная модель Highway Lane Change Planner использует положения субъектов истинности земли в координатах мира, данных карты и параметрах конфигурации планировщика.

Планировщик изменения полосы движения модели

Эталонная модель планировщика изменения полосы движения реализует основной алгоритм для системы изменения полосы движения. Модель находит МИО, окружающие эго-транспортное средство, с помощью системы координат Fergy. Впоследствии модель производит выборку терминальных состояний для различных моделей поведения, предсказывает движение целевых субъектов и генерирует несколько траекторий. Наконец, модель оценивает затраты на сгенерированные траектории и проверяет возможность столкновения и кинематическую осуществимость для оценки оптимальной траектории. Откройте ссылочную модель планировщика изменения полосы движения.

open_system('HighwayLaneChangePlanner')

Модель планировщика изменения полосы движения содержит следующие блоки:

  • Блок преобразователя состояния Френета преобразует позу эго-транспортного средства и других транспортных средств в сценарии в систему координат Френета из мировых координат.

  • Блок поиска MIO определяет наиболее важные объекты (MIO), окружающие эго-транспортное средство.

  • Блок Terminal State Sampler отбирает состояния терминала для круиз-контроля, следования за ведущим автомобилем и изменения полосы движения. Модуль прогнозирования движения предсказывает движение MIO.

  • Ссылочная модель планировщика движения создает оптимальную траекторию из выбранных траекторий. Эта модель проверяет отобранные траектории на предмет стоимости, осуществимости и возможности столкновения для определения оптимальной траектории. Этот блок также вычисляет соответствующую точку на траектории для эго-транспортного средства. Дополнительные сведения о планировщике изменения полосы движения см. в разделе Создание кода для планировщика изменения полосы движения (автоматизированная панель инструментов вождения).

Контроллер изменения полосы движения модели

Эталонная модель контроллера изменения полосы движения моделирует путь, следующий за механизмом управления, который удерживает эго-транспортное средство, движущееся по сгенерированной траектории, при отслеживании заданной скорости. Для этого контроллер регулирует как продольное ускорение, так и угол переднего рулевого управления эго-транспортного средства. Контроллер вычисляет оптимальные действия управления при удовлетворении ограничений скорости, ускорения и угла поворота с использованием адаптивной модели прогнозирующего управления (MPC). Откройте ссылочную модель контроллера изменения полосы движения.

open_system('LaneChangeController')

  • Подсистема «Центр виртуальной полосы» создает виртуальную полосу из точки траектории. Виртуальная полоса соответствует формату, требуемому блоком Контроллера отслеживания пути.

  • Подсистема предварительного просмотра кривизны преобразует траекторию в кривизну, требуемую блоком контроллера по траектории.

  • В блоке Контроллер следования пути используется блок Система управления следованием пути из Toolbox™ управления прогнозом модели.

Блок контроллера следования пути удерживает транспортное средство, движущееся в пределах обозначенной полосы шоссе, при сохранении заданной пользователем скорости. Этот контроллер включает комбинированное продольное и боковое управление эго-транспортным средством:

  • Продольное управление поддерживает заданную пользователем скорость эго-транспортного средства.

  • Боковое управление удерживает эго-транспортное средство, движущееся вдоль центральной линии его полосы движения, путем регулировки рулевого управления эго-транспортным средством.

Изучение оценки метрик

Подсистема оценки метрик оценивает поведение системы LCM на уровне системы с использованием метрик, упомянутых ниже. Откройте подсистему оценки метрик.

open_system('HighwayLaneChangeTestBench/Metrics Assessment')

  • Блок DetectCollision обнаруживает столкновение эго-транспортного средства с другими транспортными средствами и останавливает моделирование при обнаружении столкновения.

  • Блок DetectLeadVehicle вычисляет прогресс между эго и ведущим транспортными средствами, который используется для вычисления TimeGap.

  • Значение TimeGap рассчитывается с использованием расстояния до ведущего транспортного средства (проходного пути) и продольной скорости эго-транспортного средства и оценивается с учетом предписанных пределов.

  • Объемный толчок рассчитывается с использованием продольной скорости и оценивается по заданным пределам.

  • Вычисляют значение ТТ с использованием поперечной скорости, оцениваемой по заданным пределам.

Моделирование и визуализация поведения системы

Настроенный и пробег модель моделирования HighwayLaneChangeTestBench, чтобы визуализировать поведение системы во время изменения переулка. Блок визуализации в модели создает рисунок MATLAB, который показывает вид погони и вид сверху сценария и отображает эго-транспортное средство, траектории выборки, список капсул и другие транспортные средства в сценарии. Настройте модель HighwayLaneChangeTestBench, чтобы использовать scenario_LC_15_StopnGo_Curved сценарий.

helperSLHighwayLaneChangeSetup("scenarioFcnName","scenario_LC_15_StopnGo_Curved")

Моделирование модели в течение 5 секунд. Ссылочная модель плановика изменения полосы движения создает траекторию для навигации по транспортному средству в сценарии. Чтобы уменьшить количество выходных данных командного окна, сначала отключите сообщения обновления MPC.

mpcverbosity('off');
sim("HighwayLaneChangeTestBench","StopTime","5");

Запустите моделирование в течение 8 секунд. Ссылочная модель планировщика изменения полосы движения создает траекторию для навигации по более медленному ведущему транспортному средству.

sim("HighwayLaneChangeTestBench","StopTime","8");

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

sim("HighwayLaneChangeTestBench","StopTime","18");

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

В предыдущем разделе рассматривается поведение системы для scenario_LC_15_StopnGo_Curved сценарий. Ниже приведен список сценариев, совместимых с HighwayLaneChangeTestBench модель.

scenario_LC_01_SlowMoving
scenario_LC_02_SlowMovingWithPassingCar
scenario_LC_03_DisabledCar
scenario_LC_04_CutInWithBrake
scenario_LC_05_SingleLaneChange
scenario_LC_06_DoubleLaneChange
scenario_LC_07_RightLaneChange
scenario_LC_08_SlowmovingCar_Curved
scenario_LC_09_CutInWithBrake_Curved
scenario_LC_10_SingleLaneChange_Curved
scenario_LC_11_MergingCar_HighwayEntry
scenario_LC_12_CutInCar_HighwayEntry
scenario_LC_13_DisabledCar_Ushape
scenario_LC_14_DoubleLaneChange_Ushape
scenario_LC_15_StopnGo_Curved [Default]

Эти сценарии создаются с помощью конструктора сценариев вождения (Automated Driving Toolbox) и экспортируются в файл сценариев. Изучите комментарии в каждом файле для получения более подробной информации о дороге и транспортных средствах в каждом сценарии. Вы можете настроить HighwayLaneChangeTestBench и рабочей области для моделирования этих сценариев с использованием helperSLHighwayLaneChangeSetup функция. Например, можно настроить моделирование для сценария криволинейной дороги.

helperSLHighwayLaneChangeSetup("scenarioFcnName","scenario_LC_10_SingleLaneChange_Curved");

Заключение

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

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

mpcverbosity('on');

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