PointCloud2

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

Описание

The 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

Преобразуйте 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