moveit_task_constructor icon indicating copy to clipboard operation
moveit_task_constructor copied to clipboard

PlanningScene diffs in solutions are not correct non-ForwardPropagator stages

Open v4hn opened this issue 2 years ago • 0 comments

Copy from https://github.com/ros-planning/moveit_task_constructor/issues/349#issuecomment-1086571488 :

While this task does find a trajectory that intersects the octomap during the final part of the grasp while avoiding it during the initial freespace motion, when we go to execute the motion the MoveIt Trajectory Execution Manager halts the motion before the approach move is performed because it detects that we're about to go into collision with the octomap. Shouldn't the planning scene diffs associated with each subtrajectory make this set of collisions permissible by modifying the planning scene's Allowed Collision Matrix before the motion is executed?

This is a bug in solution extraction. Extracting the planning scene diffs happens by taking the diff of the end scene, but that only works when the end scene is a diff on top of the start scene (in forward propagators). The missing part for you is that in backward stages, the planning scene change should be extracted as the inverted scene diff of the start scene (as this was generated as a diff over the end scene). But generally Connecting and Generator-type stages can yield solutions with unrelated planning scene interface states as well, so we actually need a method to generate a full diff from two decoupled PlanningScenes to use here.

v4hn avatar Apr 02 '22 07:04 v4hn