exponenta event banner

rosReadXYZ

Извлечение координат XYZ из данных облака точек

Описание

xyz = rosReadXYZ(pcloud) извлекает [x y z] координаты из всех точек в PointCloud2 сообщение АФК или АФК 2, pcloudи возвращает их в виде матрицы n-на-3 с координатами n 3-D точек. Если облако точек не содержит полей x, y и z, эта функция возвращает ошибку. Точки, содержащие NaN сохраняются в выходных данных.

xyz = rosReadXYZ(pcloud,"PreserveStructureOnRead",true) сохраняет организационную структуру облака точек, возвращенного в xyz выход. Дополнительные сведения см. в разделе Сохранение структуры облака точек.

Входные аргументы

свернуть все

Облако точек, указанное как PointCloud2 структура сообщения для 'sensor_msgs/PointCloud2' Сообщение ROS или ROS 2.

Выходные аргументы

свернуть все

Список значений XYZ из облака точек, возвращаемый в виде матрицы. По умолчанию это матрица n-by-3.

Если PreserveStructureOnRead аргумент пары имя-значение имеет значение trueточки возвращаются в виде матрицы h-by-w-by-3.

Совет

Данные облака точек можно упорядочить в 1-D списках или в 2-D стилях изображений. Стили изображений 2-D обычно создаются датчиками глубины или стереокамерами. Вход PointCloud2 объект содержит PreserveStructureOnRead свойство, которое является true или false (по умолчанию). Предположим, что свойство имеет значение true.

pcloud.PreserveStructureOnRead = true;

Теперь вызов любых функций чтения (rosReadXYZ, rosReadRGB, или rosReadField) сохраняет организационную структуру облака точек. При сохранении структуры выходные матрицы имеют размер m-by-n-by-d, где m - высота, n - ширина, а d - количество возвращаемых значений для каждой точки. В противном случае все точки возвращаются в виде списка x-by-d. Эту структуру можно сохранить, только если организовано облако точек.

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

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

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