Подпишите следующего робота с ROS 2 в Simulink

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

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

Чтобы видеть, что этот пример использует ROS 1 или MATLAB®, смотрите Знак Следовать за Роботом с ROS в MATLAB.

Запустите средство моделирования робота

Запустите ОСНОВАННОЕ НА ROS средство моделирования для робота с дифференциальным приводом и сконфигурируйте связь Simulink® со средством моделирования робота.

Этот пример использует виртуальную машину (VM) доступную для скачивания в Виртуальной машине с Бодрым ROS 2 и Gazebo.

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

  • В рабочем столе Ubuntu кликните по Последователю Знака Gazebo значок ROS, чтобы запустить мир Gazebo, созданный для этого примера.

  • Кликните по РОС-Бридж (Подчеркивание штриховой линией) значок, чтобы запустить РОС-Бридж к релейным сообщениям между вашим узлом ROS 2 и поддерживающим ROS роботом Turtlebot3.

  • В Окне Команды MATLAB, набор ROS_DOMAIN_ID переменная окружения к 25 совпадать со средством моделирования робота настройки РОС-Бридж и запускать ros2 topic list проверять, что темы от средства моделирования робота отображаются в MATLAB.

setenv('ROS_DOMAIN_ID','25')
ros2('topic','list')
/camera/rgb/camera_info
/camera/rgb/image_raw
/camera/rgb/image_raw/compressed
/clock
/gazebo/link_states
/gazebo/model_states
/imu
/joint_states
/odom
/parameter_events
/rosout
/rosout_agg
/scan
/tf

Открытая модель и конфигурирует Simulink

Setup настройки ROS Simulink, чтобы связаться со средством моделирования робота.

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

open_system('signFollowingRobotROS2.slx');

Сконфигурировать сетевые настройки для ROS 2.

  • Под вкладкой Simulation, в PREPARE, выбирают ROS Toolbox> ROS Network.

  • В Конфигурируют Адреса Сети ROS, устанавливают Значение идентификатора Области ROS 2 на 25.

  • Нажмите ОК, чтобы применить изменения и закрыть диалоговое окно.

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

open_system('signFollowingRobotROS2/Image Processing');

Знак, Отслеживающий Логическую подсистему, реализует график Stateflow®, который берет в обнаруженном размере изображения и координатах от Обработки изображений и обеспечивает линейный и скорость вращения, чтобы управлять роботом.

open_system('signFollowingRobotROS2/Sign Tracking Logic');

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

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

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

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

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