Extract XYZ coordinates from point cloud data
xyz = rosReadXYZ(
[x y z] coordinates from all points in the
PointCloud2 ROS or ROS 2 message,
pcloud, and returns them as an n-by-3 matrix
of n 3-D point coordinates. If the point cloud does not contain
the x, y, and z fields,
this function returns an error. Points that contain
preserved in the output.
pcloud— Point cloud
Point cloud, specified as a
structure for a
'sensor_msgs/PointCloud2' ROS or ROS 2
xyz— List of XYZ values from point cloud
List of XYZ values from point cloud, returned as a matrix. By default, this is a n-by-3 matrix.
PreserveStructureOnRead name-value pair argument
is set to
true, the points are returned as an
Point cloud data can be organized in either 1-D lists or in 2-D image styles. 2-D
image styles usually come from depth sensors or stereo cameras. The input
PointCloud2 object contains a
property that is either
Suppose you set the property to
pcloud.PreserveStructureOnRead = true;
Now calling any read functions (
rosReadField) preserves the organizational structure of the point cloud.
When you preserve the structure, the output matrices are of size
m is the height, n is the width, and
d is the number of return values for each point. Otherwise, all
points are returned as a x-by-d list. This
structure can be preserved only if the point cloud is organized.