Search code examples
drake

Self collisions using IrisInConfigurationSpace


I'm using Drake's IrisInConfiguration space with default options to create a collision-free HPolyhedron for my robot. When sampling the resulting polyhedron using hpoly.UniformSample, I notice that the robot does a good job avoiding collision with other geometries in the scene, but on rare occasions it collides with itself.

You can see the forces created by self-collision in the first image, as well as the collision geometries in the second image.

Is this due to options.num_collision_infeasible_samples being too small or might there be some misconfiguration elsewhere that prevents Iris from checking collisions between these two links?

self collision collision geometry


Solution

  • IrisInConfigurationSpace can use collision filter groups... you might want to confirm that whatever is making that render is using the same collision filter groups as Iris. (but if you haven't set any filters, then they should be using the same by default).

    Otherwise, I do think that increasing num_collision_infeasible_samples would be the right solution.

    I've been thinking about having a method to refine the regions based on any new counter-examples that might be discover after the original call to IrisInConfigurationSpace. Precisely because if you do happen upon a counter-example, it would be useful to be able to remove it.