What would be the most time-efficient Flexible Collision Library (FCL) Design to voxelize a mesh?

asked 2019-01-03 08:31:42 -0500

Gpipe gravatar image

Hi and thanks in advance for helping me!

I have a robot as a mesh and I want to find out exactly which voxel of my voxelmap are in collision with my robot. My main problem is that I need a very fast way (<1s) to check which voxel of my voxelmap(~1.000.000 voxel) are in collision. I am using the flexible collision library (FCL) and I'm unable to use octopmap for this problem. My idea is to represent the whole workspace as a box and collide it with my mesh, if there is a collision I subdivide the workspace box into 8 smaller boxes and collide those with my mesh and so on until I have reached the resolution of my voxels. As I have never used the FCL-library before I don't know if I will be able to satisfy my runtime goals nor if my design is feasible at all.

Can someone with more experience tell me if my design choice is good or if there is an much easier way to achieve a faster solution?

edit retag flag offensive close merge delete


I'm unable to use octopmap for this problem

the approach you describe further on in your question would be almost exactly what an octomap would do, so can you explain why using octomaps is not an option for you?

FCL supports octomaps with its OcTree shape.

gvdhoorn gravatar image gvdhoorn  ( 2019-01-03 08:35:11 -0500 )edit

To my understanding octomap would do the inverse of my approach, and I would need an octomap at full resolution (voxel size) to test all voxel for collision. I also don't think that FCL would provide me exactly which Voxel are in collision with the mesh.

Gpipe gravatar image Gpipe  ( 2019-01-03 09:13:13 -0500 )edit