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