В этом примере показано, как использовать Simulink ® для управления моделируемым роботом, работающим на отдельном симуляторе на базе ROS.
В этом примере запускается модель, которая реализует алгоритм следования знакам и управляет моделируемым роботом, чтобы следовать по пути, основанному на знаках в среде. Алгоритм получает информацию о местоположении и информацию камеры от моделируемого робота, который работает в отдельном симуляторе на основе АФК. Алгоритм определяет цвет знака и посылает команды скорости для поворота робота на основе цвета. В этом примере алгоритм предназначен для поворота влево, когда робот сталкивается с синим знаком, и вправо, когда робот сталкивается с зеленым знаком. В конце концов робот останавливается, когда сталкивается с красным знаком.
Чтобы увидеть этот пример с использованием ROS 2 или MATLAB ®, см. раздел Sign Following Robot with ROS в MATLAB.
Запустите имитатор на базе ROS для робота с дифференциальным приводом и настройте соединение Simulink ® с имитатором робота .
В этом примере используется виртуальная машина, доступная для загрузки на виртуальной машине с ROS 2 Melodic и Gazebo.
Запустите рабочий стол виртуальной машины Ubuntu ®.
На рабочем столе Ubuntu щелкните значок Gazebo Sign Follower ROS, чтобы запустить мир Gazebo, построенный для этого примера.
Настройка настроек ROS Simulink для связи с имитатором робота.
Откройте пример модели.
open_system('signFollowingRobotROS.slx');Настройка параметров сети для ROS.
На вкладке Моделирование в группе Подготовка выберите Сеть ROS.
Укажите IP-адрес и номер порта хозяина ROS в Gazebo. Для этого примера мастер ROS в Беседке 192.168.203.128:11311. Войти 192.168.203.128 в поле Hostname/IP address и 11311 в поле Номер порта.
Нажмите «ОК» для внесения изменений и закрытия диалогового окна.
На каждом временном шаге алгоритм обнаруживает знак из подачи камеры, принимает решение о повороте и гонит его вперёд. Обнаружение знака выполняется в подсистеме обработки изображений модели.
open_system('signFollowingRobotROS/Image Processing');В подсистеме Sign Tracking Logic реализована диаграмма Stateflow ®, определяющая размер и координаты обнаруженного изображения с помощью функции обработки изображений и обеспечивающая линейную и угловую скорость для управления роботом.
open_system('signFollowingRobotROS/Sign Tracking Logic');Запустите модель и понаблюдайте за поведением робота в имитаторе робота.
Видеопросмотрщики показывают фактическую подачу с камеры и обнаруженное изображение знака.
В тренажере робот следует знаку и поворачивается в зависимости от цвета.
Моделирование останавливается автоматически, как только робот достигает красного знака в конце.
