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

Revision history [back]

RangeImagePlanar is generating a range image view of a point cloud, not a mesh. As such, it does not use the concept of faces between vertices/points. For every pixel of the RangeImage, the closest point found in the cloud is taken. So if your cloud is somewhat sparse, you'll get RangeImage points that would be hidden by surfaces on a mesh model of the same scene.

A quick fix for this would be upsampling your input cloud so it is more dense or rendering your RangeImage with a lower resolution. Both approaches ideally lead to a "close point" always being found for a RangeImage pixel, reducing the issue you're observing.

As mentioned previously in a earlier Q/A, I'm not aware of a ready-made solution in ROS that otherwise extracts visible mesh surfaces, but given this is a core functionality of GPUs since 20 years it certainly should be doable. The main difficulty appears to be deciding on the libraries/approach for doing it.