Опубликуйте и подпишитесь на сообщения ROS в Simulink

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

open_system('simulinkPubSubExample.slx')

Используйте Пустое сообщение и блоки Присвоения Шины, чтобы задать X и значения Y типа сообщения 'geometry_msgs/Point'. Откройте маску блока Blank Message, чтобы задать тип сообщения. Откройте маску блока Bus Assignment, чтобы выбрать сигналы, которые вы хотите присвоить. Удалите любые значения с '???' от правого столбца. Предоставьте блок Bus Assignment соответствующие значения для X и Y.

Накормите Bus выводом блок Publish. Откройте маску блока и выберите Specify your own в качестве источника темы. Задайте тему, '/location', и тип сообщения, 'geoemetry_msgs/Point'.

Добавьте блок Subscribe и задайте тему и тип сообщения. Накормите выводом Msg Селектор Шины и задайте выбранные сигналы в маске блока. Отобразите значения Y и X.

Прежде, чем запустить модель, вызовите rosinit, чтобы соединиться с сетью ROS.

rosinit
Initializing ROS master on http://bat6320glnxa64:39221/.
Initializing global node /matlab_global_node_68011 with NodeURI http://bat6320glnxa64:34663/

Установите время остановки симуляции на Inf и запустите модель. Необходимо видеть xPosition Out, и отображения yPosition Out показывают соответствующие значения, опубликованные сети ROS.

Закройте сеть ROS.

rosshutdown
Shutting down global node /matlab_global_node_68011 with NodeURI http://bat6320glnxa64:34663/
Shutting down ROS master on http://bat6320glnxa64:39221/.