Skip to content

make PlanningSceneInterface add/remove CollisionObjects synchronously #38

@v4hn

Description

@v4hn

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    assignedsomeone is/should be currently working on thisenhancementsimple improvementsThis issue can likely be resolved in less than a day

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions