Ожидайте нового сообщения ROS
Соединитесь с сетью ROS. Настройте демонстрационную сеть ROS. '/scan' тема публикуется в сети.
rosinit
Initializing ROS master on http://bat6306glnxa64:41219/. Initializing global node /matlab_global_node_51763 with NodeURI http://bat6306glnxa64:40473/
exampleHelperROSCreateSampleNetwork
Создайте подписчика для '/scan' тема. Ожидайте подписчика, чтобы указать с ведущим устройством.
sub = rossubscriber('/scan');
pause(1);Получите данные от подписчика как сообщение ROS. Задайте 10 вторых тайм-аутов.
msg2 = receive(sub,10)
msg2 =
ROS LaserScan message with properties:
MessageType: 'sensor_msgs/LaserScan'
Header: [1x1 Header]
AngleMin: -0.5216
AngleMax: 0.5243
AngleIncrement: 0.0016
TimeIncrement: 0
ScanTime: 0.0330
RangeMin: 0.4500
RangeMax: 10
Ranges: [640x1 single]
Intensities: [0x1 single]
Use showdetails to show the contents of the message
Закройте сеть ROS.
rosshutdown
Shutting down global node /matlab_global_node_51763 with NodeURI http://bat6306glnxa64:40473/ Shutting down ROS master on http://bat6306glnxa64:41219/.
Настройте издателя и подписчика, чтобы отправить и получить сообщение в сети ROS.
Соединитесь с сетью ROS.
rosinit
Initializing ROS master on http://bat6306glnxa64:44253/. Initializing global node /matlab_global_node_62417 with NodeURI http://bat6306glnxa64:45489/
Создайте издателя с определенной темой и типом сообщения. Можно также возвратить сообщение по умолчанию, чтобы отправить использование этого издателя.
[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'
MessageType: 'geometry_msgs/Point'
LatestMessage: [1x1 Point]
BufferSize: 1
NewMessageFcn: []
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_62417 with NodeURI http://bat6306glnxa64:45489/ Shutting down ROS master on http://bat6306glnxa64:44253/.
Выборка загрузки сообщения ROS включая сообщение облака точек ROS, ptcloud.
exampleHelperROSLoadMessages
Считайте 'x' имя поля, доступное на сообщении облака точек.
x = readField(ptcloud,'x');sub — Подписчик ROSSubscriber указатель на объектПодписчик ROS, заданный как Subscriber указатель на объект. Можно создать подписчика, использующего rossubscriber.
timeout — Тайм-аут для получения сообщенияТайм-аут для получения сообщения, заданного как скаляр в секундах.
msg — Сообщение ROSMessage указатель на объектСообщение ROS, возвращенное как Message указатель на объект.
rosmessage | rospublisher | rossubscriber | rostopic | send
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.