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