I have a grasp planner which can also reason about
moving obstacle objects out of the way, if needed. Given a pose of the
robot hand to grasp the goal object, it gets all the other colliding
objects, and then plans to move them away, so that the original grasp
can be executed.
In fact, I have already been doing this by calling CheckCollision over
and over until no collision occurs, each time adding the object
pointed to by report->plink1 to the vbodyexcluded argument to the next
CheckCollision. Then, when CheckCollision returns false, vbodyexcluded
gives you all the colliding bodies. But of course this takes a huge
amount of time.
at least add this into the oderave collision checker before making the option official. If option is set, then CollisionReport::vLinkColliding should be filled. contacts holds all points for all links.