From 199066e314b2a26a30dab53d5d32249f3e019339 Mon Sep 17 00:00:00 2001 From: Johannes Mey <johannes.mey@tu-dresden.de> Date: Fri, 1 Jul 2022 18:30:22 +0200 Subject: [PATCH] add delta update topic --- src/moveit_sorting_controller.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/moveit_sorting_controller.cpp b/src/moveit_sorting_controller.cpp index 793bed6..b475dfa 100644 --- a/src/moveit_sorting_controller.cpp +++ b/src/moveit_sorting_controller.cpp @@ -45,6 +45,8 @@ int main(int argc, char** argv) mqtt_connection->listen(commandTopic); auto other_cell_topic = getPrivateParameter<std::string>("other_cell", "/ceti_cell_2_placeworld/scene/update"); mqtt_connection->listen(other_cell_topic); + auto scene_observer_topic = getPrivateParameter<std::string>("scene_observer", "object_locator/scene/update"); + mqtt_connection->listen(scene_observer_topic); controller.addConnection(std::move(mqtt_connection)); controller.addCallback(other_cell_topic, [&controller](auto msg) { @@ -54,6 +56,13 @@ int main(int argc, char** argv) controller.initScene(scene, false); }); + controller.addCallback(scene_observer_topic, [&controller](auto msg) { + ROS_INFO_STREAM("Updating scene from observer."); + Scene scene; + scene.ParseFromString(msg); + controller.initScene(scene, true); + }); + ros::WallDuration(5).sleep(); // wait 5 secs to init scene (to give moveit time to load) controller.loadScene(getPrivateParameter<std::string>("scene", ros::package::getPath("ccf_immersive_sorting") + -- GitLab