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

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

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

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

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

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

Этот пример использует виртуальную машину (VM), доступную для загрузки в Virtual Machine с ROS 2 Melodic и Gazebo.

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

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

Откройте модель и сконфигурируйте Simulink

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

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

open_system('signFollowingRobotROS.slx');

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

  • На вкладке Simulation, Prepare group, выберите ROS Network.

  • Укажите IP-адрес и номер порта хозяина ROS в Gazebo. В данном примере мастер ROS в Gazebo 192.168.203.128:11311. Введите 192.168.203.128 в поле Hostname/IP-адрес и 11311 в поле Номер порта.

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

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

open_system('signFollowingRobotROS/Image Processing');

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

open_system('signFollowingRobotROS/Sign Tracking Logic');

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

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

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

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

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