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