exponenta event banner

PointCloud2

Сообщения облака точек доступа

Описание

PointCloud2 объект является реализацией sensor_msgs/PointCloud2 вид сообщения в ROS. Объект содержит метаинформацию о сообщении и данные облака точек. Для доступа к фактическим данным используйте readXYZ для получения координат точки и readRGB чтобы получить информацию о цвете, если она доступна.

Создание

Описание

пример

ptcloud = rosmessage('sensor_msgs/PointCloud2') создает пустой PointCloud2 объект. Для задания данных облака точек используйте ptcloud.Data собственность. Вы также можете получать сообщения данных облака точек из сети ROS с помощью rossubscriber.

Свойства

развернуть все

Это свойство доступно только для чтения.

Сохранение формы матрицы облака точек, указанной как false или true. Когда свойство true, выходные данные из readXYZ и readRGB возвращаются в виде матриц вместо векторов.

Это свойство доступно только для чтения.

Тип сообщения ROS, возвращаемый в виде символьного вектора.

Типы данных: char

Это свойство доступно только для чтения.

Сообщение заголовка ROS, возвращенное как Header объект. Это сообщение заголовка содержит MessageType, последовательность (Seq), отметка времени (Stamp), и FrameId.

Высота облака точек в пикселях, заданная как целое число.

Ширина облака точек в пикселях, заданная как целое число.

Последовательность байтов изображения, указанная как true или false.

  • true - Большая эндиевая последовательность. Сохраняет самый значительный байт в наименьшем адресе.

  • false - Малая эндиевая последовательность. Хранит наименьший значащий байт в наименьшем адресе.

Длина точки в байтах, заданная как целое число.

Полная длина строки в байтах, заданная как целое число. Длина строки равна PointStep свойство, умноженное на Width собственность.

Данные облака точек, указанные как uint8 массив. Для доступа к данным используйте функции объекта.

Функции объекта

readAllFieldNamesПолучение всех доступных имен полей из облака точек ROS
readFieldСчитывание данных облака точек на основе имени поля
readRGBИзвлечение значений RGB из данных облака точек
readXYZИзвлечение координат XYZ из данных облака точек
scatter3Отображение облака точек на графике рассеяния
showdetailsПросмотр всего содержимого сообщения ROS

Примеры

свернуть все

Доступ и визуализация данных внутри сообщения облака точек.

Создайте образец сообщений ROS и проверьте изображение облака точек. ptcloud является образцом ROS PointCloud2 объект сообщения.

exampleHelperROSLoadMessages
ptcloud
ptcloud = 
  ROS PointCloud2 message with properties:

    PreserveStructureOnRead: 0
                MessageType: 'sensor_msgs/PointCloud2'
                     Header: [1x1 Header]
                     Fields: [4x1 PointField]
                     Height: 480
                      Width: 640
                IsBigendian: 0
                  PointStep: 32
                    RowStep: 20480
                       Data: [9830400x1 uint8]
                    IsDense: 0

  Use showdetails to show the contents of the message

Получение информации RGB и координат xyz из облака точек с помощью readXYZ и readRGB.

xyz = readXYZ(ptcloud);
rgb = readRGB(ptcloud);

Отображение облака точек на рисунке с помощью scatter3.

scatter3(ptcloud)

Figure contains an axes. The axes with title Point Cloud contains an object of type scatter.

Преобразование сообщения ROS Toolbox™ облака точек в систему компьютерного зрения Toolbox™ pointCloud объект.

Загрузить примеры сообщений.

exampleHelperROSLoadMessages

Преобразовать a ptcloud сообщение в pointCloud объект.

pcobj = pointCloud(readXYZ(ptcloud),'Color',uint8(255*readRGB(ptcloud)))
pcobj = 
  pointCloud with properties:

     Location: [307200x3 single]
        Count: 307200
      XLimits: [-1.8147 1.1945]
      YLimits: [-1.3714 0.8812]
      ZLimits: [1.4190 3.3410]
        Color: [307200x3 uint8]
       Normal: []
    Intensity: []

Представлен в R2019b