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