В этом примере показано, как создать автоматизированную парковочную систему в Simulink ® с автоматизированной Toolbox™ вождения. Он полностью соответствует примеру автоматической парковки MATLAB ®.
Автоматическая парковка автомобиля, оставленного перед парковкой, является сложной проблемой. Ожидается, что автоматизированные системы транспортного средства возьмут на себя управление транспортным средством и направят его в доступное место стоянки. Этот пример фокусируется на планировании возможного пути через среду, генерации траектории из этого пути и использовании возможного контроллера для выполнения траектории. Создание карты и динамическое предотвращение препятствий исключаются из этого примера.
Перед моделированием helperSLCreateCostmap вызывается в пределах PreLoadFcn функция обратного вызова модели. Дополнительные сведения об использовании функций обратного вызова см. в разделе Обратные вызовы модели (Simulink). helperSLCreateCostmap создает статическую карту стоянки, содержащую информацию о стационарных препятствиях, дорожной разметке и припаркованных автомобилях. Карта представлена в виде объект.vehicleCostmap
Для использования объект в Simulink ®, vehicleCostmaphelperSLCreateUtilityStruct функция преобразует в массив структуры при инициализации маски блока. Дополнительные сведения см. в разделе Инициализация маски (Simulink).vehicleCostmap

Глобальный план трассы описывается как последовательность сегментов полосы движения, пересекаемых для достижения места парковки. Перед моделированием 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] находится в верхней части этого стека. Блок Планировщик поведения запускает последовательность задач навигации на основе глобального плана маршрута, предоставляя промежуточную цель и конфигурацию для блоков Планирование движения и Генерация траектории. Для навигации по каждому сегменту пути используются следующие шаги:
Планирование движения: Планирование возможного пути через карту среды с использованием оптимального алгоритма быстрого исследования случайного дерева (RRT *) ().pathPlannerRRT
Создание траектории: Сглаживание опорной траектории путем подгонки сплайнов [2] к ней с помощью блока «Сглаживание траектории». Затем преобразуйте сглаженную траекторию в траекторию путем создания профиля скорости с помощью блока Velocity Profiler.
Управление транспортным средством: HelperPathAnalyzer обеспечивает опорный сигнал для подсистемы контроллера транспортного средства, которая управляет рулевым управлением и скоростью транспортного средства.
Проверка цели: Проверьте, достигло ли транспортное средство конечной позы сегмента с помощью 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.