ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A answers.ros.org

# RGBD Field of View and mesh intersection surface

I'm trying to get the intersection surface area between an RGBD sensor FOV and a mesh model since I want to use these surfaces to fasten the development of reconstruction algorithm and then use the algorithm and apply it in Gazebo simulation

It is similar to the intersection surface of two models as it is shown in the following image link: image link , but instead of the sphere, I have the FOV (Quadrahedron shape) and instead of the cube model, I have another model shape

The blue part of the cube surface shown in the third part of the image is the intersection surface needed to be found

is there a function in PCL or other libraries that can find the intersection surface between a RGBD camera FOV and a mesh model? Could someone point me towards any related things?

edit retag close merge delete

Can you illustrate this in a diagram ? What do you mean ?

( 2015-08-17 07:13:19 -0500 )edit

Sort by ยป oldest newest most voted

How do you define an intersection between a pointcloud and a mesh? A mesh is just a set of points without any structure so the only way to define an intersection would to check which points of the pointcloud are also corners of your mesh that's most probably not what you want.

Could you maybe add an image to show what you mean?

more

I missed explaining the problem .. I edited my question, I want to use a tool that can find the intersection surface between the FOV of an RGBD camera and a CAD model without using RGBD pointcloud

( 2015-08-17 04:12:09 -0500 )edit
more

Without delving into math too much, as points in a point cloud do not have a length or area, it is impossible to compute an intersection with a mesh. It sounds like what you want is getting all points of a point cloud that are less than a certain epsilon distance away from the surface of a mesh. I'm not sure there is a implementation available that directly allows for this, but the point-to-plane metric commonly employed when performing ICP is very similar, so having a look at PCL's registration module might be worth a shot.

/edit: After your clarification, it sounds like pcl frustum_culling might be useful. As a polygon mesh in PCL internally uses a point cloud for it's vertices, you should be able to get the vertices inside the Kinect camera frustum by using the frustum culling filter.

more

I missed explaining the problem .. I edited my question, I want to use a tool that can find the intersection surface between the FOV of an RGBD camera and a CAD model without using RGBD pointcloud

( 2015-08-17 04:14:30 -0500 )edit

See update above.

( 2015-08-18 01:14:50 -0500 )edit

Stefan, does pcl's frustum culling filter all the points inside the frustum volume regardless of their visibility ? Or does it take into consideration any occlusion, and keep only the directly visible points ?

( 2015-08-18 10:56:20 -0500 )edit

It only uses points, and points do not obstruct each other as they are infinitesimally small. What you can do of course is render the scene from the view point of your Kinect and then process the resulting image in some way. Plus side is that this is super fast as GPUs do that all the time ;)

( 2015-08-19 04:16:57 -0500 )edit

That's a big tricky then. I know gazebo does something similar, I don't know exactly how. I think they get an image rendered from the view point and construct the point cloud. It would be better to utilise an existing tool or library, rather than re-creating this functionality.

( 2015-08-20 00:45:31 -0500 )edit

Thanks Stefan and Tarek for the suggestions

( 2015-08-21 07:38:20 -0500 )edit

## Stats

Seen: 832 times

Last updated: Aug 18 '15