Подпишитесь на сообщения по теме
Используйте 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 |