exponenta event banner

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

Распределите приложение автоматической парковки между различными узлами сети ROS в Simulink ®. Этот пример расширяет пример автоматической парковки (Automated Starking Valet, Automated Driving Toolbox) в Toolbox™ автоматизированного вождения. Используя модель Simulink в примере Automated Parking Valet in Simulink, настройте параметры планировщика, контроллера и динамики транспортного средства перед разделением модели на узлы ROS.

Обязательное условие: автоматическая парковка (автоматическая панель инструментов вождения), создание автономного узла ROS от Simulink ®

Введение

Типичное приложение автономного транспортного средства имеет следующий рабочий процесс.

В этом примере основное внимание уделяется моделированию компонентов планирования, управления и транспортного средства. Для параметра «Локализация» в этом примере используются предварительно записанные данные локализации карты. Кроме того, компонент Планирование подразделяется на компоненты Планирование поведения и Планирование пути. Это приводит к тому, что сеть ROS состоит из четырех узлов ROS: Behavioral Planner, Path Planner, Controller и Vehicle Sim. На следующем рисунке показаны взаимосвязи между каждым узлом ROS в сети и темами, используемыми в каждом узле.

Изучение узлов и возможностей подключения Simulink ROS

Наблюдайте за разделением компонентов на четыре отдельные модели Simulink. Каждая модель Simulink представляет узел ROS, который отправляет и принимает сообщения по различным темам.

Узел SIM транспортного средства

1. Откройте модель транспортного средства.

open_system('ROSValetVehicleExample');

2. Subscribe подсистема содержит блоки ROS Subscribe, считывающие входные данные из узла Controller.

3. Vehicle model подсистема содержит блок модели велосипеда (Automated Driving Toolbox), Vehicle Body 3DOF, для моделирования эффектов контроллера транспортного средства и передачи информации о транспортном средстве по сети АФК через блоки публикации АФК в Publish подсистема.

Узел поведенческого планировщика

1. Откройте модель поведенческого планировщика.

open_system('ROSValetBehavioralPlannerExample');

2. Эта модель считывает текущую позу, скорость и направление транспортного средства из сети АФК и посылает следующую цель. Он проверяет, достигло ли транспортное средство целевой позы сегмента с помощью exampleHelperROSValetGoalChecker.

3. Behavior Planner and Goal Checker модель запускается, когда новое сообщение доступно /currentpose или /currentvel.

4. Модель отправляет статус, если транспортное средство достигло цели парковки с помощью /reachgoal раздел, в котором используется std_msgs/Bool сообщение. Все модели прекращают моделирование, когда это сообщение true.

Узел планировщика путей

1. Откройте модель планировщика путей.

open_system('ROSValetPathPlannerExample');

2. Эта модель планирует возможный путь через карту среды с помощью pathPlannerRRT (Automated Driving Toolbox) объект, который реализует оптимальный алгоритм быстрого исследования случайного дерева (RRT *) и отправляет план контроллеру по сети ROS .

3. Path Planner подсистема запускается, когда новое сообщение доступно на /plannerConfig или /nextgoal темы.

Узел контроллера

1. Откройте модель контроллера транспортного средства.

open_system('ROSValetControllerExample');

2. Эта модель вычисляет и посылает команды управления и скорости по сети АФК.

3. Подсистема контроллера запускается при появлении нового сообщения на /velprofile тема.

Моделирование узлов ROS для проверки секционирования

Убедитесь, что поведение модели остается прежним после разделения системы на четыре узла ROS.

1. Управляемый rosinit в окне команд MATLAB ® для инициализации глобального узла и главного узла ROS

rosinit
Launching ROS Core...
.................................Done in 7.169 seconds.
Initializing ROS master on http://192.168.203.1:51612.
Initializing global node /matlab_global_node_70835 with NodeURI http://ah-sradford:58388/

2. Загрузите предварительно записанные данные карты локализации в базовое рабочее пространство MATLAB с помощью exampleHelperROSValetLoadLocalizationData функция помощника.

exampleHelperROSValetLoadLocalizationData;

3. Откройте расчетную модель.

open_system('ROSValetSimulationExample.slx');

В левой области выбора парковки можно также выбрать точку. Местом парковки по умолчанию является шестое место в верхнем ряду.

4. На вкладке МОДЕЛИРОВАНИЕ (SIMULATION) щелкните Выполнить из раздела SIMULATE (Run from SIMULATE) или выполните sim('ROSValetSimulationExample.slx') в окне команд MATLAB. Откроется рисунок, на котором показано, как транспортное средство отслеживает контрольный путь. Синяя линия представляет опорную траекторию, а красная - фактическую траекторию, пройденную транспортным средством. Моделирование для всех моделей останавливается, когда транспортное средство достигает конечного места стоянки.

sim('ROSValetSimulationExample.slx');

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

Visualization подсистема в модели транспортного средства генерирует результаты для этого примера.

open_system('ROSValetVehicleExample/Vehicle model/Visualization');

VisualizePath Блок отвечает за создание и обновление графика путей транспортного средства, показанных ранее. В области отображаются команды скорости транспортного средства и рулевого управления.

open_system("ROSValetVehicleExample/Vehicle model/Visualization/Commands")

Развертывание узлов ROS

Создание приложений ROS для Behavioral planner, Path planner, Controller узлы и смоделировать Vehicle в MATLAB и сравните результаты с моделированием. Дополнительные сведения о создании заметок ROS см. в разделе Создание автономного узла ROS из Simulink ®.

1. Развертывание Behavioral planner, Path planner и Controller Узлы ROS.

2. Откройте модель транспортного средства.

open_system('ROSValetVehicleExample');

3. На вкладке Моделирование (Simulation) щелкните Выполнить (Run), чтобы начать моделирование.

4. Просмотрите движение транспортного средства на графике и сравните результаты прогона моделирования.

5. Завершение работы сети ROS с помощью rosshutdown.

rosshutdown
Shutting down global node /matlab_global_node_70835 with NodeURI http://ah-sradford:58388/
Shutting down ROS master on http://192.168.203.1:51612.