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