Plan History shows that the poses are not tried in expected order for collision detection

Observation

My plan history looks like this:
2
My workobject symmetry setting is a circular rotational symmetry around the x-axis with an attempt range of 20°. I’m curious about why the plan history shows that Viz attempted to reach the relaxed angle of -9° to -20° first before succeeding at angle 0°. I would have assumed that Viz starts at 0° and increases by ±1° in each iteration. Therefore, I expected only a single iteration to pick up the object.

Explanation

Mech-Viz evaluates whether a workobject is collision-free pickable in two phases:
Phase 1:

  • Generate all pick point variants from the symmetry and gripper settings
  • Calculate robot pick pose for all pick point variations
  • Check if the poses have a point cloud collision
  • Succeding poses (no collision) go into phase 2

Phase 2:

  • For all collision free robot poses check if the pose can be reached collision free for the complete path

Phase 1 can be executed very quickly, which is why the pick pose is evaluated for all pick point variations. When a collision is detected in phase 1 for a pick pose, this pose is immediately added to the failure list. Only for the poses that proceed to phase 2 is the entire pick path evaluated. In our example, the pick poses for -9° to -20° already result in collisions and are consequently written to the failure list. In phase 2, the pose of 0° relaxation is evaluated first and succeeds immediately, which is why no other poses are tested.