Чтение сообщения ROS Image в 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. Создайте издателя для отправки ROS- Image сообщение на '/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')

Запустите модель. The 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/.