ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

It appears that changing

ur10_planning_scene_monitor -> startSceneMonitor();

to

ur10_planning_scene_monitor -> startSceneMonitor("/move_group/monitored_planning_scene");

as well as adding a 2 second delay between

update_planning_scene_service_client.call(apply_scene_msg)

and

planning_scene_monitor::LockedPlanningSceneRO lscene(ur10_planning_scene_monitor);

allows me to reliably get an lscene that contains the collision object.

This seems counter to what the tutorial mentions about service call being synchronous (blocks until diff is applied). Though it may refer to blocking until the diff is applied only to move_group's PlanningSceneMonitor, and not every listening PlanningSceneMonitor (in which case I'm not sure what the point of that would be...)

It appears that changing

ur10_planning_scene_monitor -> startSceneMonitor();

to

ur10_planning_scene_monitor -> startSceneMonitor("/move_group/monitored_planning_scene");

as well as adding a 2 second delay between

update_planning_scene_service_client.call(apply_scene_msg)

and

planning_scene_monitor::LockedPlanningSceneRO lscene(ur10_planning_scene_monitor);

allows me to reliably get an lscene that contains the collision object.

This seems counter to what the tutorial mentions about service call being synchronous (blocks until diff is applied). Though it may refer to blocking until the diff is applied only to move_group's PlanningSceneMonitor, and not every listening PlanningSceneMonitor (in which case I'm not sure what the point of that would be...)

It appears that changing

ur10_planning_scene_monitor -> startSceneMonitor();

to

ur10_planning_scene_monitor -> startSceneMonitor("/move_group/monitored_planning_scene");

as well as adding a 2 second delay between

update_planning_scene_service_client.call(apply_scene_msg)

and

planning_scene_monitor::LockedPlanningSceneRO lscene(ur10_planning_scene_monitor);

allows me to reliably get an lscene that contains the collision object.

This seems counter to what the tutorial mentions about service call being synchronous (blocks until diff is applied). Though it may refer to blocking until the diff is applied only to move_group's PlanningSceneMonitor, and not every listening PlanningSceneMonitor

The Q&A for this behavior can be found here: https://answers.ros.org/question/352721/applying-scene-changes-through-service-call-does-not-block-until-changes-are-applied/