Считайте сообщение ROS изображений в Simulink®

Этот пример требует Computer Vision Toolbox® и Robotics System Toolbox®.

Запустите сеть ROS.

rosinit
Initializing ROS master on http://ah-rhosea:11311/.
Initializing global node /matlab_global_node_45601 with NodeURI http://ah-rhosea:49292/

Загрузите демонстрационные сообщения, чтобы отправить включая демонстрационное сообщение изображений, img. Создайте издателя, чтобы отправить Image ROS обменивайтесь сообщениями на '/image_test' тема. Задайте тип сообщения как '/sensor_msgs/Image'. Отправьте сообщение изображений.

imgcell = load('imgdata.mat','img');
img = imgcell.img;
pub = rospublisher('/image_test','sensor_msgs/Image');
send(pub,img)

Откройте модель Simulink® для подписки на сообщение ROS и чтения в изображении от ROS.

Убедитесь, что Subscribe блок подписывается на '/image_test' тема. В меню под Инструментами> Операционная система Робота> Управляет Длинами массива, проверяет Data массив имеет максимальную длину, больше, чем демонстрационное изображение (921 600 пикселей).

open_system('read_image_example_model.slx')

Запустите модель. Video Viewer показывает демонстрационное изображение.

Остановите симуляцию и закройте сеть ROS.

rosshutdown
Shutting down global node /matlab_global_node_45601 with NodeURI http://ah-rhosea:49292/
Shutting down ROS master on http://ah-rhosea:11311/.