-
Notifications
You must be signed in to change notification settings - Fork 984
Description
I would very much like to adjust PlanningSceneInterface::{add/remove}CollisionObjects
to use the new ApplyPlanningScene service such that it performs synchronous updates to the planning scene.
This is what most users expect and it is not even documented in the tutorials that this is not the case.
At the moment these methods wrap simple publish calls whereas the other methods in this class query the move_group via services.
Thus, the current behavior is (1) inconsistent, (2) not documented, and (3) makes people add arbitrary long sleep calls after the function call.
However, ApplyPlanningScene is a MoveGroupCapability that has to be added manually in each projects move_group.launch and the PlanningSceneInterface has been around quite long.
Thus, simply changing the implementation would break many use-cases.
As a downward-compatible workaround I propose to check whether the service exists and either (1) call the detected service or (2) print an appropriate warning telling the user to enable ApplyPlanningScene in their move_group and afterward continue with the current publish.
With ROS-m,n, or o we could eventually remove the publish then.