Считайте облако точек

Извлеките облако точек из сообщения ROS PointCloud2

  • Библиотека:
  • Robotics System Toolbox / ROS

Описание

Блок Read Point Cloud извлекает облако точек из сообщения PointCloud2 ROS. Можно выбрать параметры сообщения ROS темы, активной в живой сети ROS, или задать параметры сообщения отдельно. Сообщения ROS заданы как невиртуальная шина. Используйте блок Subscribe, чтобы получить сообщение от сети ROS и ввести сообщение к блоку Read Point Cloud.

Примечание

При чтении сообщений облака точек ROS из сети свойство Data сообщения может превысить максимальный набор длины массива в Simulink®. Чтобы увеличить максимальную длину массива, нажмите Tools> Manage Array Lengths> Robot Operating System, выберите массив Data и увеличьте размер на основе числа точек в облаке точек.

Порты

Входной параметр

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

ROS сообщение PointCloud2, заданное как невиртуальная шина. Можно использовать блок Subscribe, чтобы получить сообщение от сети ROS.

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

Вывод

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

x, y и координаты z данных об облаке точек, вывод или как N-by-3 матрица или как h-by-w-by-3 многомерный массив. N является числом точек. h и w являются высотой и шириной изображения в пикселях. Чтобы получить x, y и координаты z как многомерный массив, устанавливают флажок Preserve point cloud structure в параметрах маски блока.

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

Значения RGB для каждой точки данных об облаке точек, вывод или как N-by-3 матрица или как h-by-w-by-3 многомерный массив. N является числом точек. h и w являются высотой и шириной изображения в пикселях. Значения RGB соответствуют красной, зеленой, и синей интенсивности цвета с областью значений [0 1].To, получают значения RGB как многомерный массив, устанавливают флажок Preserve point cloud structure в параметрах маски блока.

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

Значения интенсивности для каждой точки данных об облаке точек, вывод или как массив или как h-by-w матрица. h и w являются высотой и шириной изображения в пикселях. Чтобы получить значения интенсивности как матрицу, установите флажок Preserve point cloud structure в параметрах маски блока.

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

Код ошибки для преобразования изображений, возвращенного как скаляр. Значения кода ошибки:

  • 0 – Успешно преобразованный сообщение облака точек.

  • 1 – Размерности входящего облака точек превышают предельный набор в Maximum point cloud size.

  • 2 – Один из массивов переменной длины во входящем сообщении был усеченным. Смотрите Размеры Управления Массивов в Simulink ROS, чтобы увеличить максимальную длину массива.

  • 3X, Y или поле Z сообщения облака точек отсутствуют.

  • 4 - облако точек не содержит данных о цвете RGB. Вы, должно быть, переключили Show RGB output port к на получить эту ошибку.

  • 5 - облако точек не содержит данных об интенсивности. Вы, должно быть, переключили Show Intensity output port к на получить эту ошибку.

  • 6X, Y или поле Z сообщения облака точек не имеют правильного типа данных (float32).

  • Поле 7 - The RGB сообщения облака точек не имеет правильного типа данных (float32).

  • Поле 8 - The Intensity сообщения облака точек не имеет правильного типа данных (float32).

Для определенных кодов ошибок данные являются усеченными или заполненными со значениями NaN, где это необходимо.

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

Параметры

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

Максимальный размер изображения облака точек, заданный как двухэлементный вектор [height width].

Нажмите Configure using ROS ..., чтобы установить этот параметр автоматически с помощью активной темы в сети ROS. Вы должны быть соединены с сетью ROS.

Когда этот флажок устанавливается, форма вывода данных облака для XYZ, RGB, и Intensity сохраняется. Выходные параметры поддерживают структуру оригинального изображения. Поэтому XYZ и RGB выводятся как многомерные массивы, и Intensity выводится как матрица.

Установите этот флажок, чтобы получить значения RGB для каждой точки сообщения облака точек от порта RGB. Данными о RGB должно снабдить сообщение.

Установите этот флажок, чтобы получить значения интенсивности для каждой точки сообщения облака точек от порта Intensity. Данными об интенсивности должно снабдить сообщение.

Установите этот флажок к ошибкам монитора с портом ErrorCode.

Установите этот флажок к сигналам размера выходной переменной. Сигналы переменного размера должны только использоваться, если размер изображения, как ожидают, будет изменяться в зависимости от времени. Для получения дополнительной информации об измеренных сигналах переменной, смотрите Основы Сигнала Переменного Размера (Simulink).

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Введенный в R2017b