Опубликовать сообщение по теме
Использование 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 |