exponenta event banner

Автоматическая парковка в Simulink

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

Введение

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

Перед моделированием helperSLCreateCostmap вызывается в пределах PreLoadFcn функция обратного вызова модели. Дополнительные сведения об использовании функций обратного вызова см. в разделе Обратные вызовы модели (Simulink). 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] находится в верхней части этого стека. Блок Планировщик поведения запускает последовательность задач навигации на основе глобального плана маршрута, предоставляя промежуточную цель и конфигурацию для блоков Планирование движения и Генерация траектории. Для навигации по каждому сегменту пути используются следующие шаги:

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

  2. Создание траектории: Сглаживание опорной траектории путем подгонки сплайнов [2] к ней с помощью блока «Сглаживание траектории». Затем преобразуйте сглаженную траекторию в траекторию путем создания профиля скорости с помощью блока Velocity Profiler.

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

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

Изучение подсистем

Подсистема контроллера транспортного средства содержит блок бокового контроллера Стэнли и блок продольного контроллера Стэнли для регулирования позы и скорости транспортного средства соответственно. Для обработки реалистичной динамики транспортного средства [3] параметр модели транспортного средства в боковом блоке контроллера Стэнли установлен в Dynamic bicycle model. При такой конфигурации для вычисления команды рулевого управления требуются дополнительные входные сигналы, такие как кривизна траектории, текущая скорость рыскания транспортного средства и текущий угол поворота рулевого управления. Блок продольного контроллера Стэнли использует переключающий пропорциональный интегральный контроллер для расчета команд ускорения и замедления, которые приводят в действие тормоз и дроссель в транспортном средстве.

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

Результаты моделирования

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

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

Заключения

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

Ссылки

[1] Бюлер, Мартин, Карл Иагнемма и Санджив Сингх. Городской вызов DARPA: автономные транспортные средства в городском движении (1-е изд.). Springer Publishing Company, Incorporated, 2009.

[2] Лепетик, Марко, Грегор Кланкар, Игорь Скрян, Драго Матко и Бостьян Поточник, «Планирование оптимального пути во времени с учетом пределов ускорения». робототехника и автономные системы, том 45, выпуски 3-4, 2003, стр. 199-210.

[3] Гофман, Габриэль М., Клэр Дж. Томлин, Майкл Монтемерло и Себастьян Трюн. «Отслеживание автономных автомобильных траекторий для внедорожного вождения: дизайн контроллера, экспериментальная валидация и гонки». Американская конференция по контролю, 2007 год, стр. 2296-2301.

См. также

Блоки

Объекты

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