В этом примере показано, как симулировать автоматизированную систему маневра изменения маршрута для магистрали ведущий сценарий.
Автоматизированная система маневра изменения маршрута (LCM) позволяет автомобилю, оборудованному датчиком автоматически переместиться от одной полосы до другого маршрута. Системные модели LCM продольная и боковая динамика управления для автоматизированного изменения маршрута. Система LCM обнаруживает среду для большинства важных объектов (MIOs) использование встроенных датчиков, идентифицирует оптимальную траекторию, которая избегает этих объектов и регулирует автомобиль, оборудованный датчиком вдоль этой траектории.
В этом примере показано, как спроектировать и протестировать компоненты планировщика и диспетчера системы LCM. В этом примере планировщик изменения маршрута использует информацию об основной истине из сценария, чтобы обнаружить MIOs. Это затем генерирует выполнимую траекторию, чтобы согласовать изменение маршрута, которое выполняется изменением маршрута контроллер. В этом примере, вас:
Исследуйте тестовую модель — модель содержит планирование, средства управления, динамику аппарата, сценарий и метрики, чтобы оценить функциональность.
Смоделируйте планировщика изменения маршрута — образец модели находит MIO, демонстрационные конечные состояния автомобиля, оборудованного датчиком, и генерирует оптимальную траекторию.
Смоделируйте изменение маршрута контроллер — Эта модель генерирует команды управления для автомобиля, оборудованного датчиком на основе сгенерированной траектории.
Симулируйте и визуализируйте поведение системы — тестовая модель сконфигурирована, чтобы протестировать интегрирование планирования и средств управления, чтобы выполнить маневры изменения маршрута на кривой дороге с несколькими транспортными средствами.
Исследуйте другие сценарии — Эти сценарии тестируют систему под дополнительными условиями.
Можно применить шаблоны моделирования, используемые в этом примере, чтобы протестировать собственные компоненты планировщика и диспетчера системы LCM.
В этом примере вы используете тестовую модель симуляции уровня системы, чтобы исследовать поведение компонентов планировщика и диспетчера для системы маневра изменения маршрута.
Чтобы исследовать тестовую модель, откройте рабочую копию файлов проекта в качестве примера. MATLAB® копирует файлы в папку в качестве примера так, чтобы можно было отредактировать их.
addpath(fullfile(matlabroot, 'toolbox', 'driving', 'drivingdemos')); helperDrivingProjectSetup('HighwayLaneChange.zip', 'workDir', pwd);
Откройте тестовую модель симуляции уровня системы.
open_system('HighwayLaneChangeTestBench')
Открытие этой модели запускает helperSLHighwayLaneChangeSetup
скрипт, который инициализирует дорожный сценарий с помощью drivingScenario
объект в базовом рабочем пространстве. Это также конфигурирует параметры конфигурации планировщика, параметры проектирования контроллера, параметры модели транспортного средства и сигналы шины Simulink®, требуемые для определения вводов и выводов для HighwayLaneChangeTestBench
модель.
Тестовая модель содержит следующие подсистемы.
Сценарий и Среда — Подсистема, которая задает сцену, транспортные средства и данные о карте, используемые для симуляции.
Параметры конфигурации планировщика — Подсистема, которая задает параметры конфигурации, требуемые для алгоритма планировщика.
Магистральный Планировщик Изменения Маршрута — Подсистема, которая реализует маршрут, изменяет алгоритм планировщика для магистрали.
Контроллер Изменения маршрута — Подсистема, которая задает контроллер следования траектории, который генерирует команды управления, чтобы регулировать автомобиль, оборудованный датчиком вдоль сгенерированной траектории.
Динамика аппарата — Подсистема, которая задает динамическую модель для автомобиля, оборудованного датчиком.
Метрическая Оценка — Подсистема, которая задает метрики, чтобы оценить поведение уровня системы.
Подсистема Динамики аппарата моделирует автомобиль, оборудованный датчиком с помощью Модели Велосипеда и обновляет ее состояние с помощью команд, полученных от Диспетчера Изменения Лейна. Для получения дополнительной информации о подсистеме Динамики аппарата смотрите, что Хайвей Лейн Следует примеру.
Подсистема Сценария и Среды использует блок Scenario Reader, чтобы обеспечить дорожную сеть и положения основной истины транспортного средства. Этот блок также выводит, сопоставляют данные, требуемые для магистрального алгоритма планировщика изменения маршрута. Откройте подсистему Сценария и Среды.
open_system('HighwayLaneChangeTestBench/Scenario and Environment')
Блок Scenario Reader сконфигурирован, чтобы считать drivingScenario
объект от базового рабочего пространства. Это использует этот объект считать данные об агенте. Это берет в информации об автомобиле, оборудованном датчиком, чтобы выполнить симуляцию с обратной связью. Этот блок выходная информация об основной истине маршрутов и агентов в координатах автомобиля, оборудованного датчиком. Блок Vehicle To World используется, чтобы преобразовать целевые положения транспортного средства от координат транспортного средства до мировых координат. Эта подсистема считывает данные о карте из базового рабочего пространства и информации о выходных параметрах о маршрутах и ссылочном пути.
Подсистема Параметров конфигурации Планировщика читает переменные базового рабочего пространства с помощью постоянных блоков и создает структуру шины с помощью блока Bus Creator. Шина, созданная этой подсистемой, используется планировщиком изменения маршрута.
Магистральный образец модели Планировщика Изменения Маршрута использует положения агента основной истины в мировых координатах, данных о карте и параметрах конфигурации планировщика, чтобы выполнить траекторию, планирующую автоматизированный маневр изменения маршрута.
Магистральный образец модели Планировщика Изменения Маршрута реализует основной алгоритм для магистральной системы изменения маршрута. Модель находит MIOs окружением автомобиля, оборудованного датчиком с помощью системы координат Fernet. Впоследствии, демонстрационные конечные состояния модели для различных поведений, предсказывает движение целевых агентов и генерирует несколько траекторий. Наконец, модель оценивает затраты на сгенерированные траектории и проверки на возможность столкновения и кинематической выполнимости, чтобы оценить оптимальную траекторию. Откройте Магистральный образец модели Планировщика Изменения Маршрута.
open_system('HighwayLaneChangePlanner')
Модель Highway Lane Change Planner содержит следующие блоки:
Блок Frenet State Converter преобразует положение автомобиля, оборудованного датчиком и других транспортных средств в сценарии в систему координат Frenet от мировых координат.
Блок Find MIOs идентифицирует самые важные объекты (MIOs) окружение автомобиля, оборудованного датчиком.
Демонстрационные конечные состояния блока Terminal State Sampler для круиз-контроля, приведите автомобиль после, и поведения изменения маршрута. Модуль Предсказания Движения предсказывает движение MIOs.
Образец модели Планировщика Движения генерирует оптимальную траекторию от произведенных траекторий. Эта модель проверяет произведенные траектории на стоимость, выполнимость и возможность столкновения идентифицировать оптимальную траекторию. Этот блок также вычисляет соответствующую точку на траектории для автомобиля, оборудованного датчиком, чтобы следовать. Для получения дополнительной информации о Магистральном Планировщике Изменения Маршрута смотрите, Генерируют Код для Магистрального Планировщика Изменения Маршрута.
Образец модели Контроллера Изменения Маршрута симулирует механизм управления следования траектории, который сохраняет автомобиль, оборудованный датчиком, перемещающийся вдоль сгенерированной траектории при отслеживании скорости набора. Для этого контроллер настраивает и продольное ускорение и передний руководящий угол автомобиля, оборудованного датчиком. Контроллер вычисляет действия оптимального управления в то время как удовлетворяющая скорость, ускорение и держащиеся угловые ограничения с помощью адаптивной модели прогнозирующее управление (MPC). Откройте Контроллер Изменения Маршрута образец модели.
open_system('LaneChangeController')
Виртуальная подсистема Центра Маршрута создает виртуальный маршрут из точки контура. Виртуальный маршрут совпадает с форматом, требуемым блоком Path Following Controller.
Подсистема Искривления Предварительного просмотра преобразует траекторию во вход искривления, требуемый блоком Path Following Controller.
Блок Path Following Controller использует блок Path Following Control System (Model Predictive Control Toolbox) из Model Predictive Control Toolbox™.
Блок Path Following Controller сохраняет транспортное средство, перемещающееся в отмеченном маршруте магистрали при поддержании установленной пользователями скорости. Этот контроллер включает объединенное продольное и боковое управление автомобиля, оборудованного датчиком:
Продольное управление обеспечивает установленную пользователями скорость автомобиля, оборудованного датчиком.
Боковое управление сохраняет автомобиль, оборудованный датчиком, перемещающийся вдоль центральной линии его маршрута путем корректировки регулирования автомобиля, оборудованного датчиком.
Метрическая подсистема Оценки оценивает поведение уровня системы системы LCM с помощью метрик, упомянутых ниже. Откройте Метрическую подсистему Оценки.
open_system('HighwayLaneChangeTestBench/Metrics Assessment')
Блок DetectCollision обнаруживает столкновение автомобиля, оборудованного датчиком с другими транспортными средствами и останавливает симуляцию, если столкновение обнаруживается.
Блок DetectLeadVehicle вычисляет прогресс между эго и ведущими транспортными средствами, который используем в вычислениях значение TimeGap.
Значение TimeGap вычисляется с помощью расстояния до ведущего транспортного средства (прогресс) и продольная скорость автомобиля, оборудованного датчиком, и это оценено против предписанных пределов.
Значение LongitudinalJerk вычислено с помощью продольной скорости и оценено против предписанных пределов.
Значение LateralJerk вычисляется с помощью поперечной скорости, оцененной против предписанных пределов.
Настройте и запустите имитационную модель HighwayLaneChangeTestBench, чтобы визуализировать поведение системы во время изменения маршрута. Блок Visualization в модели создает фигуру MATLAB, которая показывает представление преследования и вид сверху сценария и строит автомобиль, оборудованный датчиком, произведенные траектории, список капсул и другие транспортные средства в сценарии. Сконфигурируйте модель HighwayLaneChangeTestBench, чтобы использовать scenario_LC_15_StopnGo_Curved
сценарий.
helperSLHighwayLaneChangeSetup("scenarioFcnName","scenario_LC_15_StopnGo_Curved")
Симулируйте модель в течение 5 секунд. Образец модели планировщика изменения маршрута генерирует траекторию, чтобы переместиться по транспортному средству в сценарии. Чтобы сократить командное окно выход, сначала выключите сообщения обновления MPC.
mpcverbosity('off'); sim("HighwayLaneChangeTestBench","StopTime","5");
Закройте фигуру.
hLCPlot = findobj( 'Type', 'Figure', 'Name', 'Lane Change Status Plot'); if ~isempty(hLCPlot) close(hLCPlot); end
Запустите симуляцию в течение 8 секунд. Образец модели планировщика изменения маршрута генерирует траекторию, чтобы перейти вокруг более медленного ведущего транспортного средства.
sim("HighwayLaneChangeTestBench","StopTime","8");
Закройте фигуру.
hLCPlot = findobj( 'Type', 'Figure', 'Name', 'Lane Change Status Plot'); if ~isempty(hLCPlot) close(hLCPlot); end
Запустите симуляцию в течение 18 секунд. Образец модели планировщика изменения маршрута генерирует траекторию, чтобы переместиться по транспортному средству к левому маршруту и затем к правильному маршруту, чтобы избежать столкновения с медленным движущимся ведущим транспортным средством. Заметьте, что автомобиль, оборудованный датчиком выполняет изменение маршрута дважды, чтобы избежать столкновения при поддержании скорости набора.
simout = sim("HighwayLaneChangeTestBench","StopTime","18");
Закройте фигуру.
hLCPlot = findobj( 'Type', 'Figure', 'Name', 'Lane Change Status Plot'); if ~isempty(hLCPlot) close(hLCPlot); end
Во время симуляции модель регистрирует сигналы к базовому рабочему пространству как logsout
. Можно анализировать результаты симуляции и отладить любые отказы в поведении системы с помощью helperAnalyzeLCSimulationResults
функция. Функция создает фигуру MATLAB и строит представление преследования сценария. Ползунок на рисунке позволяет вам выбрать желаемый шаг симуляции, чтобы анализировать различные параметры, показанные в этих панелях:
Преследуйте Представление — Показывает представление преследования сценария, показывающего автомобиль, оборудованный датчиком, произведенные траектории, список капсул и другие транспортные средства.
Информация о траектории — Показывает различные атрибуты произведенных траекторий. Подсвеченные строки показывают тип произведенной траектории при помощи той же расцветки как показано в Представлении Преследования.
Информация о MIO — Показывает различные атрибуты идентифицированного MIOs. Цвет строки соответствует с цветом поверхности соответствующего транспортного средства.
Режим — Показывает выбранное поведение для автомобиля, оборудованного датчиком.
Скорость эго — Показывает скорость автомобиля, оборудованного датчиком. Модули исчисляются в метрах в секунду.
Шаг симуляции — Показывает набор номера шага симуляции с помощью ползунка.
Время симуляции — Показывает время, соответствуя шагу симуляции. Величины в метрах.
Состояние эго — Показывает параметры автомобиля, оборудованного датчиком и идентифицировало ведущее транспортное средство.
Параметры планировщика — Показывают параметры конфигурации для планировщика.
Запустите скрипт и исследуйте график.
helperAnalyzeLCSimulationResults(simout.logsout);
В предыдущем разделе вы исследовали поведение системы для 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]
Эти сценарии создаются с помощью Driving Scenario Designer и экспортируются в файл сценария. Исследуйте комментарии в каждом файле для получения дополнительной информации на дороге и транспортных средствах в каждом сценарии. Можно сконфигурировать HighwayLaneChangeTestBench
и рабочая область, чтобы симулировать эти сценарии с помощью helperSLHighwayLaneChangeSetup
функция. Например, можно конфигурировать моделирование для кривого дорожного сценария.
helperSLHighwayLaneChangeSetup("scenarioFcnName","scenario_LC_10_SingleLaneChange_Curved");
В этом примере показано, как симулировать магистральный маршрут, меняют маневр с помощью положений транспортного средства основной истины.
Включите сообщения обновления MPC снова.
mpcverbosity('on');
trajectoryOptimalFrenet
(Navigation Toolbox)