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

Revision history [back]

I think you are looking for concatenatePointCloud.

Or, you may be able to just do: combined = cloudA + cloudB, as shown in this tutorial.

I think you are looking for concatenatePointCloud.

Or, you may be able to just do: combined = cloudA + cloudB, as shown in this tutorial.

Edit:
The tutorial referenced above also shows how to merge to point clouds with different fields, using concatenateFields. The restriction here is that the two point clouds must contain the same number of points.

As far as octomapping, the main focus of that entire package is to address the concerns of fusing 3D data (e.g. point clouds) in a space- and performance-efficient way. The approach is described well in this paper. Basically, they recursively divide the environment into smaller subdivisions, which allows them to "grow" the map as new data is added. They also store probabalistic data rather than explicit data points, to allow them to efficiently merge multiple sensor readings for the same "point" and ignore false/transient readings.

Merging raw point clouds is faster than octomapping, but can quickly run into memory and performance limitations, as all sensor data is maintained. Other approaches exist to address these issues for particular use-cases, such as voxels, 2.5D surface mapping, etc. Many of these are also given a brief overview in the octomapping paper listed above.