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

RGBD Field of View and mesh intersection surface

asked 2015-08-16 14:38:53 -0500

Randa gravatar image

updated 2015-08-17 15:33:49 -0500

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 flag offensive close merge delete

Comments

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

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

3 Answers

Sort by ยป oldest newest most voted
0

answered 2015-08-17 03:36:19 -0500

NEngelhard gravatar image

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?

edit flag offensive delete link more

Comments

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

Randa gravatar image Randa  ( 2015-08-17 04:12:09 -0500 )edit
0

answered 2015-08-18 03:02:12 -0500

Tarek gravatar image
edit flag offensive delete link more
0

answered 2015-08-17 03:40:13 -0500

updated 2015-08-18 01:14:37 -0500

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.

edit flag offensive delete link more

Comments

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

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

See update above.

Stefan Kohlbrecher gravatar image Stefan Kohlbrecher  ( 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 ?

Tarek gravatar image Tarek  ( 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 ;)

Stefan Kohlbrecher gravatar image Stefan Kohlbrecher  ( 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.

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

Thanks Stefan and Tarek for the suggestions

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

Question Tools

1 follower

Stats

Asked: 2015-08-16 14:38:53 -0500

Seen: 875 times

Last updated: Aug 18 '15