Опубликуйте сообщение ROS к теме
Настройте издателя и подписчика, чтобы отправить и получить сообщение в сети ROS.
Соединитесь с сетью ROS.
rosinit
Launching ROS Core... Done in 0.68979 seconds. Initializing ROS master on http://192.168.0.10:54625. Initializing global node /matlab_global_node_93073 with NodeURI http://bat6312glnxa64:38453/
Создайте издателя с определенной темой и типом сообщения. Можно также возвратить сообщение по умолчанию, чтобы отправить использование этого издателя.
[pub,msg] = rospublisher('position','geometry_msgs/Point');
Измените сообщение прежде, чем отправить его по сети.
msg.X = 1; msg.Y = 2; send(pub,msg);
Создайте подписчика и ожидайте последнего сообщения. Проверьте, что сообщение является тем, которое вы отправили.
sub = rossubscriber('position')
sub = Subscriber with properties: TopicName: '/position' LatestMessage: [0x1 Point] MessageType: 'geometry_msgs/Point' BufferSize: 1 NewMessageFcn: [] DataFormat: 'object'
pause(1); sub.LatestMessage
ans = ROS Point message with properties: MessageType: 'geometry_msgs/Point' X: 1 Y: 2 Z: 0 Use showdetails to show the contents of the message
Закройте сеть ROS.
rosshutdown
Shutting down global node /matlab_global_node_93073 with NodeURI http://bat6312glnxa64:38453/ Shutting down ROS master on http://192.168.0.10:54625.
pub
— Издатель ROSPublisher
указатель на объектИздатель ROS в виде Publisher
указатель на объект. Можно создать объектное использование rospublisher
.
msg
— Сообщение ROSMessage
указатель на объект | структураСообщение ROS в виде Message
указатель на объект или структура. Можно создать объектное использование rosmessage
.
Примечание
В будущем релизе ROS Toolbox будет использовать структуры сообщения вместо объектов для сообщений ROS.
Чтобы использовать структуры сообщения теперь, установите "DataFormat"
аргумент значения имени к "struct"
. Для получения дополнительной информации смотрите, что ROS передает Структуры.
Изменение поведения в будущем релизе
Можно теперь создать сообщения как структуры с полями, совпадающими со свойствами объекта сообщения. Используя структуры обычно улучшает производительность создания, обновления и использования сообщений ROS, но поля сообщения больше не подтверждаются, когда установлено. Типы сообщений и значения соответствующего поля от структур подтверждены, когда отправлено по сети.
Чтобы использовать сообщения ROS в качестве структур, используйте "DataFormat"
аргумент значения имени при создании издателей, подписчиков или других объектов ROS. Любые сообщения, сгенерированные от этих объектов, используют структуры.
pub = rospublisher("/scan","sensor_msgs/LaserScan","DataFormat","struct") msg = rosmessage(pub)
Можно также создать сообщения как структуры непосредственно, но убедиться, что задали формат данных как "struct"
для издателя, подписчика или другого ROS возражает также. Объекты ROS все еще используют объекты сообщения по умолчанию.
msg = rosmessage("/scan","sensor_msgs/LaserScan","DataFormat","struct") ... pub = rospublisher("/scan","sensor_msgs/LaserScan","DataFormat","struct")
В будущем релизе сообщения ROS будут использовать структуры по умолчанию, и объекты сообщения ROS будут удалены.
Для получения дополнительной информации смотрите, Улучшают Производительность ROS Используя Структуры сообщения.
Указания и ограничения по применению:
Поддерживаемый только для struct
сообщения.
receive
| rosmessage
| rostopic
| rossubscriber
| rospublisher
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.