MoveIt GetPositionIK Service avoid_collisions

asked 2017-10-19 13:31:49 -0500

Ethan gravatar image

I'm using the MoveIt ROS API to request an IK solution for a 6-DOF arm with a custom gripper attached, in an attempt to pick up a small object. This inevitably brings the grasper links into close proximity with the table. The response I'm getting from the service is odd, for several reasons.

If I set the avoid_collisions field of the GetPositionIK request to True, the service returns an error - not an error code relating to collisions (e.g. -10 or -12), but an error indicating that there simply isn't an IK solution to that end-effector pose (-31, see http://docs.ros.org/jade/api/moveit_m... ).

If I set the avoid_collisions field of the GetPositionIK request to False, the service returns an IK solution. This is not a viable workaround, as I'm actually assessing multiple grasps for validity, and there are likely to be actually-colliding candidate grasps that need eliminating.

If I set the avoid_collisions field to True and remove the table from the planning scene, it returns an IK solution.

So, is the service returning the wrong error code (-31 instead of e.g. -12)? Or does avoid_collisions not do what it says on the tin?

Many thanks in advance for any advice you can give.

edit retag flag offensive close merge delete