ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
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...)
2 | No.2 Revision |
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...)
3 | No.3 Revision |
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/