exponenta event banner

Чтение облака точек

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

  • Библиотека:
  • Панель инструментов ROS/ROS

  • Read Point Cloud block

Описание

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

Примечание

При чтении сообщений облака точек ROS из сети Data свойство сообщения может превышать максимальную длину массива, установленную в Simulink ®. Чтобы увеличить максимальную длину массива, щелкните Инструменты > Управление длиной массива > Операционная система робота, выберите массив данных и увеличьте размер в зависимости от количества точек в облаке точек.

Порты

Вход

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

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

Типы данных: 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].Чтобы получить значения RGB как многомерный массив, выберите Preserve point cloud structure в параметрах маски блока.

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

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

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

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

  • 0 - Сообщение облака точек успешно преобразовано.

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

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

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

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

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

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

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

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

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

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

Параметры

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

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

Щелкните Настроить с помощью ROS... для автоматического задания этого параметра с использованием активной темы в сети ROS. Вы должны быть подключены к сети ROS.

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

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

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

Установите этот флажок, чтобы отслеживать ошибки с помощью ErrorCode порт.

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

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