ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

An organized point cloud is just a point cloud where some information about the sensor that captured the "depth image" is given. E.g. for a kinect with a resolution of 640 x 480 pixels, the properties of an organized point cloud would be set to

width: 640
height 480
isOrganized = true.

All captured 3D points are stored as a vector that contains

point(0,0), point(1,0), ..., point(638, 0), point(639,0),
point(0,1), point(1,1), ..., point(638, 1), point(639,1),
...
point(0,479), point(1,479), ..., point(638, 479), point(639,479)

The important bit is that all measured points have to be stored in the point cloud. As soon as some (invalid, ...) points are filtered, the cloud is no longer organized.

So if you have a laser that e.g. provides 1.000 points per line and scans 500 lines per "picture" (?), you'd just push_back the data points into the point cloud in the order which they were acquired (starting with the first one of the first line, ending with the last on eof the last line). Then set width to 1.000, height to 500, and voila!

Disclaimer: I haven't worked with lasers much, so apologies for the poor terminology! The above of course only makes sense when there's no motion in the scene during the time all lines are captured...

An organized point cloud is just a point cloud where some information about the sensor that captured the "depth image" is given. E.g. for a kinect with a resolution of 640 x 480 pixels, the properties of an organized point cloud would be set to

width: 640
height 480
isOrganized = true.

All captured Internally, the point cloud stores all 3D points are stored as in a vector that contains

point(0,0), point(1,0), ..., point(638, 0), point(639,0),
point(0,1), point(1,1), ..., point(638, 1), point(639,1),
...
point(0,479), point(1,479), ..., point(638, 479), point(639,479)

The important bit is that all measured points have to be stored in the point cloud. As soon as some (invalid, ...) points are filtered, the cloud is no longer organized.

So if you have a laser that e.g. provides 1.000 points per line and scans 500 lines per "picture" (?), you'd just push_back the data points into the point cloud in the order which they were acquired (starting with the first one of the first line, ending with the last on eof the last line). Then set width to 1.000, height to 500, and voila!

Disclaimer: I haven't worked with lasers much, so apologies for the poor terminology! The above of course only makes sense when there's no motion in the scene during the time all lines are captured...