exponenta event banner

Знак следующего робота с ROS 2 в Simulink

Используйте Simulink ® для управления моделируемым роботом, работающим на отдельном симуляторе на базе ROS по сети ROS 2.

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

Для просмотра этого примера использования ROS 1 или MATLAB ® см. раздел Подпись следующего робота с ROS в MATLAB.

Запустить имитатор робота

Запустите имитатор на базе ROS для робота с дифференциальным приводом и настройте соединение Simulink ® с имитатором робота .

В этом примере используется виртуальная машина (ВМ), доступная для загрузки с помощью инструкций в разделе Начало работы с беседкой и смоделированным TurtleBot.

  • Запустите рабочий стол виртуальной машины Ubuntu ®.

  • На рабочем столе Ubuntu щелкните значок Gazebo ROS2 Maze, чтобы начать создание мира Gazebo для этого примера.

  • В окне команд MATLAB установите ROS_DOMAIN_ID переменная среды для 25 для соответствия настройкам робота-имитатора и запуска ros2 topic list для проверки того, что темы из имитатора робота видны в MATLAB.

setenv('ROS_DOMAIN_ID','25')
ros2('topic','list')
/parameter_events

Открытие модели и настройка Simulink

Настройка настроек ROS Simulink для связи с имитатором робота.

Откройте пример модели.

open_system('signFollowingRobotROS2.slx');

Конфигурирование параметров сети для ROS 2.

  • На вкладке Моделирование (Simulation) в разделе ПОДГОТОВКА (PREPARE) выберите пункт Панель инструментов ROS (ROS Toolbox) > Сеть ROS (ROS Network

  • В разделе Настройка сетевых адресов ROS установите значение идентификатора домена ROS 2 равным 25.

  • Нажмите «ОК» для внесения изменений и закрытия диалогового окна.

На каждом временном шаге алгоритм обнаруживает знак из подачи камеры, принимает решение о повороте и гонит его вперёд. Обнаружение знака выполняется в подсистеме обработки изображений модели.

open_system('signFollowingRobotROS2/Image Processing');

В подсистеме Sign Tracking Logic реализована диаграмма Stateflow ®, определяющая размер и координаты обнаруженного изображения с помощью функции обработки изображений и обеспечивающая линейную и угловую скорость для управления роботом.

open_system('signFollowingRobotROS2/Sign Tracking Logic');

Запустить модель

Запустите модель и понаблюдайте за поведением робота в имитаторе робота.

  • Видеопросмотрщики показывают фактическую подачу с камеры и обнаруженное изображение знака.

  • В тренажере робот следует знаку и поворачивается в зависимости от цвета.

  • Моделирование останавливается автоматически, как только робот достигает красного знака в конце.