Опубликовать сообщение по теме
Использование rospublisher
для создания издателя ROS для отправки сообщений через сеть ROS. Чтобы создать сообщения ROS, используйте rosmessage
. Отправляйте эти сообщения через издатель ROS с send
функция.
The Publisher
объект, созданный функцией, представляет издателя в сети ROS. Объект публикует определенный тип сообщения в данной теме. Когда Publisher
объект публикует сообщение в тему, все подписчики темы получают это сообщение. В одной теме может быть несколько издателей и подписчиков.
Примечание
В следующем релизе ROS Toolbox будет использовать структуры сообщений вместо объектов для сообщений ROS.
Чтобы использовать структуры сообщений, установите "DataFormat"
аргумент имя-значение в "struct"
. Для получения дополнительной информации см. раздел Структуры сообщений ROS.
Издатель получает тип сообщения темы из списка тем в мастере ROS. Когда MATLAB® глобальный узел публикует сообщения по этой теме, узлы ROS, которые подписаны на эту тему, получают эти сообщения. Если тема отсутствует в списке основных тем ROS, эта функция выводит сообщение об ошибке. Если основной список тем ROS уже содержит соответствующий раздел, мастер ROS добавляет глобальный узел MATLAB в список издателей для этого раздела. Чтобы увидеть список доступных имен тем, в командной строке MATLAB введите rostopic list
.
Можно создать Publisher
объект с использованием rospublisher
function, или вызовом 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
функция.
[
использует структуры сообщений вместо объектов. Для получения дополнительной информации смотрите Структуры сообщений ROSpub
,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",
определяет, фиксирует ли издатель логический элемент, value
)value
. Если издатель фиксирует, он сохраняет последнее отправленное сообщение и отправляет его всем новым подписчикам. По умолчанию IsLatching
включен.
[
использует структуры сообщений вместо объектов. Для получения дополнительной информации смотрите Структуры сообщений ROSpub
,msg
]
= ros.Publisher(___,"DataFormat","struct")
send | Опубликовать сообщение ROS в разделе |
rosmessage | Создание сообщений ROS |