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