From 0b0fbb28a3362b8c9c10bb5d6ceda34b3f091b49 Mon Sep 17 00:00:00 2001
From: Fabian Reister <fabian.reister@kit.edu>
Date: Thu, 27 May 2021 08:16:17 +0200
Subject: [PATCH] VirtualRobotReader: synchronizing robot when new robot is
 requested

---
 .../armem_robot_state/client/common/VirtualRobotReader.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/source/RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.cpp b/source/RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.cpp
index 97633b788..a1fbd970f 100644
--- a/source/RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.cpp
+++ b/source/RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.cpp
@@ -6,6 +6,7 @@
 #include <VirtualRobot/XML/RobotIO.h>
 
 #include "ArmarXCore/core/PackagePath.h"
+#include "ArmarXCore/core/logging/Logging.h"
 #include "ArmarXCore/core/system/ArmarXDataPath.h"
 #include "ArmarXCore/core/system/cmake/CMakePackageFinder.h"
 
@@ -41,6 +42,7 @@ namespace armarx::armem::robot_state
         const auto robotState = queryState(robotDescription, timestamp);
         if (not robotState)
         {
+            ARMARX_WARNING << "Querying robot state failed!";
             return false;
         }
 
@@ -65,8 +67,11 @@ namespace armarx::armem::robot_state
         const std::string xmlFilename = ArmarXDataPath::resolvePath(description->xml.serialize().path);
         ARMARX_INFO << "Loading (virtual) robot '" << description->name << "' from XML file '" << xmlFilename << "'";
 
-        return VirtualRobot::RobotIO::loadRobot(xmlFilename, loadMode);
+        auto robot = VirtualRobot::RobotIO::loadRobot(xmlFilename, loadMode);
 
+        synchronizeRobot(*robot, timestamp);
+
+        return robot;
     }
 
 
-- 
GitLab