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