Подпишитесь на сообщения по теме
Используйте rossubscriber
создать подписчика ROS для получения сообщений в сети ROS. Чтобы отправить сообщения, используйте rospublisher
. Чтобы ожидать нового сообщения ROS, используйте receive
функционируйте со своим созданным подписчиком.
Subscriber
объект создается rossubscriber
функция представляет подписчика в сети ROS. Subscriber
объект подписывается на доступную тему или на тему, которую он создает. Эта тема имеет связанный тип сообщения. Издатели могут отправить сообщения по сети что Subscriber
объект получает.
Примечание
В будущем релизе ROS Toolbox будет использовать структуры сообщения вместо объектов для сообщений ROS.
Чтобы использовать структуры сообщения теперь, установите "DataFormat"
аргумент значения имени к "struct"
. Для получения дополнительной информации смотрите, что ROS передает Структуры.
Можно создать Subscriber
объект при помощи rossubscriber
функция, или путем вызова ros.Subscriber
:
rossubscriber
работает только с глобальным использованием узла rosinit
. Это не требует указателя объекта узла в качестве аргумента.
ros.Subscriber
работает с дополнительными узлами, которые создаются с помощью ros.Node
. Это требует указателя объекта узла в качестве первого аргумента.
подписывается на тему с данным sub
= rossubscriber(topicname
)TopicName
Тема.The должна уже существовать в ведущем списке тем ROS с установленным типом сообщения. Когда узлы ROS публикуют сообщения по той теме, MATLAB® получает те сообщения через этого подписчика.
подписывается на тему, которая имеет указанное имя, sub
= rossubscriber(topicname
,msgtype
)TopicName
, и тип, MessageType
. Если список тем на ведущем устройстве ROS не включает тему с тем указанным именем и типом, это добавляется к списку тем. Используйте этот синтаксис, чтобы избежать ошибок при подписке на тему, прежде чем издатель добавил тему в список тем на ведущем устройстве ROS.
задает функцию обратного вызова, sub
= rossubscriber(topicname
,callback
)callback
, это запускается, когда указатель на объект подписчика получает сообщение темы. Используйте этот синтаксис, чтобы избежать, чтобы блокирование получило функцию. callback
функция может быть одним указателем на функцию или массивом ячеек. Первым элементом массива ячеек должен быть указатель на функцию или строка, содержащая имя функции. Остающимися элементами массива ячеек могут быть произвольные пользовательские данные, которые передаются функции обратного вызова.
задает функцию обратного вызова и подписывается на тему, которая имеет указанное имя, sub
= rossubscriber(topicname
, msgtype
,callback
)TopicName
, и тип, MessageType
.
предоставляет дополнительные возможности, заданные одним или несколькими sub
= rossubscriber(___,Name,Value)Name,Value
парные аргументы с помощью любого из аргументов от предыдущих синтаксисов. Name
имя свойства и Value
соответствующее значение.
использование передает структуры вместо объектов. Для получения дополнительной информации смотрите, что ROS передает Структурыsub
= rossubscriber(___,"DataFormat","struct")
sub = ros.Subscriber(
подписывается на тему с именем, node
,topicname
)TopicName
. node
ros.Node
указатель на объект, к которому присоединяет этот издатель.
sub = ros.Subscriber(
задает тип сообщения, node
,topicname
,msgtype
)MessageType
, из темы. Если тема с тем же именем существует с различным типом сообщения, MATLAB создает новую тему с данным типом сообщения.
sub = ros.Subscriber(
задает функцию обратного вызова и дополнительные данные, чтобы запуститься, когда объект подписчика получает сообщение темы. Смотрите node
,topicname
,callback
)NewMessageFcn
для получения дополнительной информации о функции обратного вызова.
sub = ros.Subscriber(
задает название темы, тип сообщения и функцию обратного вызова для подписчика.node
,topicname
,type
,callback
)
sub = ros.Subscriber(___,"BufferSize",
задает размер очереди в value
)BufferSize
для входящих сообщений. Можно использовать любую комбинацию предыдущих входных параметров с этим синтаксисом.
использование передает структуры вместо объектов. Для получения дополнительной информации смотрите, что ROS передает Структурыsub
= ros.Subscriber(___,"DataFormat","struct")
receive | Ожидайте нового сообщения ROS |
rosmessage | Создайте сообщения ROS |