Автоматизированная парковка в Simulink

В этом примере показано, как создать автоматическую систему парковки в Simulink ® с Automated Driving Toolbox™. Он внимательно следует примеру Automated Parking Valet MATLAB ®.

Введение

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

Перед симуляцией helperSLCreateCostmap функция вызывается в PreLoadFcn функция обратного вызова модели. Для получения дополнительной информации об использовании функций обратного вызова смотрите Model Callbacks (Simulink). The helperSLCreateCostmap функция создает статическую карту парковки, содержащую информацию о стационарных препятствиях, дорожной разметке и припаркованных автомобилях. Карта представлена как vehicleCostmap объект.

Как использовать vehicleCostmap объект в Simulink ®, helperSLCreateUtilityStruct функция преобразует vehicleCostmap в массив структур в маске блока. Для получения дополнительной информации см. раздел «Инициализация маски» (Simulink).

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

routePlan =

  5×3 table

       StartPose              EndPose            Attributes 
    ________________    ____________________    ____________

     4     12      0      56      11       0    [1×1 struct]
    56     11      0      70      19      90    [1×1 struct]
    70     19     90      70      32      90    [1×1 struct]
    70     32     90      52      38     180    [1×1 struct]
    53     38    180    36.3      44      90    [1×1 struct]

Входами и выходами многих блоков в этом примере являются шины Simulink (Simulink.Bus (Simulink) классы). В PreLoadFcn функция обратного вызова модели, helperSLCreateUtilityBus функция создает эти автобусы.

Планирование является иерархическим процессом, каждый последующий слой отвечает за более мелкую задачу. Слой поведения [1] находится в верхней части этого стека. Блок Behavior Planner запускает последовательность навигационных задач на основе плана глобального маршрута, предоставляя промежуточную цель и строение для блоков Motion Planning и Trajectory Generation. Перемещение по каждому сегменту контура осуществляется с помощью следующих шагов:

  1. Планирование движения: Планируйте допустимый путь через карту окружения с помощью оптимального быстро исследующего алгоритма случайного дерева (RRT *) (pathPlannerRRT).

  2. Генерация траектории: сглаживайте опорный путь, подгоняя к нему сплайны [2] с помощью блока Path Smooter Spline. Затем преобразуйте сглаженный путь в траекторию, сгенерировав профиль скорости с помощью блока Velocity Profiler.

  3. Управление автомобилем: The HelperPathAnalyzer предоставляет опорный сигнал для подсистемы Транспортного средства Controller, которая управляет управлением и скоростью транспортного средства.

  4. Проверка цели: Проверьте, достиг ли транспортное средство конечного положения сегмента с помощью helperGoalChecker.

Исследуйте подсистемы

Подсистема Транспортного средства Controller содержит блок Стэнли Латерального Контроллера и блок Стэнли Продольного Контроллера, чтобы регулировать положение и скорость транспортного средства, соответственно. Чтобы обработать реалистичную динамику аппарата [3], параметр модели Транспортного средства в блоке Lateral Controller Stanley устанавливается в Dynamic bicycle model. При этом строении для вычисления команды рулевого управления требуются дополнительные входы, такие как кривизна пути, текущая скорость рыскания транспортного средства и текущий угол рулевого управления. Блок Longitudinal Controller Stanley использует переключающий Пропорционально-Интегральный контроллер, чтобы вычислить команды ускорения и замедления, которые приводят в действие тормоз и дроссель в транспортном средстве.

Чтобы продемонстрировать эффективность, контроллер транспортного средства применяется к блоку Транспортного средства Model, который содержит упрощенную систему рулевого управления [3], которая моделируется как система первого порядка и блок Транспортного средства Body 3DOF (Vehicle Dynamics Blockset), общий между Automated Driving Toolbox™ и Vehicle Dynamics Blockset™. По сравнению с кинематической моделью велосипеда, используемой в примере Automated Parking Valet MATLAB ®, этот блок Vehicle Model является более точным, потому что он рассматривает инерционные эффекты, такие как скольжение шины и сервопривод рулевого управления.

Результаты симуляции

Блок Visualization показов, как транспортное средство отслеживает путь ссылки. Он также отображает скорость транспортного средства и команду рулевого управления в возможности. Следующие изображения являются результатами симуляции для этого примера:

Симуляция останавливается примерно на 45 секунде, когда транспортное средство достигает места назначения.

Заключения

В этом примере показано, как реализовать автоматическую парковку в Simulink.

Ссылки

[1] Бюлер, Мартин, Карл Иагнемма и Санджив Сингх. The DARPA Urban Challenge: Автономные транспортные средства в городском движении (1-е изд.). Издательская компания Springer, Incorporated, 2009.

[2] Lepetic, Marko, Gregor Klancar, Igor Skrjanc, Drago Matko, and Bostjan Potocnik, «Time Optimal Path Planning Учитывая Пределы ускорения». Робототехника и автономные системы, Том 45, Выпуски 3-4, 2003, стр. 199-210.

[3] Гофман, Габриэль М., Клэр Дж. Томлин, Майкл Монтемерло и Себастьян Трун. Autonomobile Automobile Trajectory Tracking for Off-Road Driving: Проектирование контроллера, Experimental Validation and Racing (неопр.) (недоступная ссылка). American Control Conference, 2007, pp. 2296-2301.

См. также

Блоки

Объекты

Похожие темы