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

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

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

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

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

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

Этот пример использует виртуальную машину (VM), доступную для загрузки с помощью инструкций в Запуск with Gazebo и Simulated 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

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

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

open_system('signFollowingRobotROS2.slx');

Настройка параметров сети для ROS 2.

  • На вкладке Simulation, в PREPARE, выберите ROS Toolbox > ROS Network.

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

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

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

open_system('signFollowingRobotROS2/Image Processing');

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

open_system('signFollowingRobotROS2/Sign Tracking Logic');

Запуск модели

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

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

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

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

Для просмотра документации необходимо авторизоваться на сайте