receive

Ожидайте нового сообщения ROS

Описание

пример

msg = receive(sub) ожидает MATLAB®, чтобы получить сообщение темы от заданного подписчика, sub, и возвращает его как msg.

msg = receive(sub,timeout) задает в timeout номер секунд, чтобы ожидать сообщения. Если сообщение не получено в пределе тайм-аута, программное обеспечение производит ошибку.

Примеры

свернуть все

Соединитесь с сетью ROS. Настройте демонстрационную сеть ROS. '/scan' тема публикуется в сети.

rosinit
Launching ROS Core...
................................Done in 1.1674 seconds.
Initializing ROS master on http://192.168.0.10:53810.
Initializing global node /matlab_global_node_30783 with NodeURI http://bat1072001glnxa64:36363/
exampleHelperROSCreateSampleNetwork

Создайте подписчика для '/scan' тема. Ожидайте подписчика, чтобы указать с ведущим устройством.

sub = rossubscriber('/scan');
pause(1);

Получите данные от подписчика как сообщение ROS. Задайте 10 вторых тайм-аутов.

msg2 = receive(sub,10)
msg2 = 
  ROS LaserScan message with properties:

       MessageType: 'sensor_msgs/LaserScan'
            Header: [1x1 Header]
          AngleMin: -0.5216
          AngleMax: 0.5243
    AngleIncrement: 0.0016
     TimeIncrement: 0
          ScanTime: 0.0330
          RangeMin: 0.4500
          RangeMax: 10
            Ranges: [640x1 single]
       Intensities: [0x1 single]

  Use showdetails to show the contents of the message

Завершите работу таймеров, используемых демонстрационной сетью.

exampleHelperROSShutDownSampleNetwork

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

rosshutdown
Shutting down global node /matlab_global_node_30783 with NodeURI http://bat1072001glnxa64:36363/
Shutting down ROS master on http://192.168.0.10:53810.
..........

Входные параметры

свернуть все

Подписчик ROS в виде Subscriber указатель на объект. Можно создать подписчика, использующего rossubscriber.

Тайм-аут для получения сообщения в виде скаляра в секундах.

Выходные аргументы

свернуть все

Сообщение ROS, возвращенное как Message указатель на объект.

Введенный в R2019b