Ожидайте нового сообщения 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
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.