Используйте 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
Настройка настроек 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');Запустите модель и понаблюдайте за поведением робота в имитаторе робота.
Видеопросмотрщики показывают фактическую подачу с камеры и обнаруженное изображение знака.
В тренажере робот следует знаку и поворачивается в зависимости от цвета.
Моделирование останавливается автоматически, как только робот достигает красного знака в конце.
![]()