From 4c668234bbf30df66a642756b44e7409dd7a6f46 Mon Sep 17 00:00:00 2001
From: Fabian Reister <fabian.reister@kit.edu>
Date: Tue, 11 May 2021 12:00:52 +0200
Subject: [PATCH] all segments with timestamp lookup

---
 .../armem_robot_state/server/common/Visu.cpp         | 12 +++++++-----
 .../armem_robot_state/server/description/Segment.cpp |  2 +-
 .../armem_robot_state/server/description/Segment.h   |  2 +-
 .../server/proprioception/Segment.cpp                |  2 +-
 .../server/proprioception/Segment.h                  |  2 +-
 5 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/source/RobotAPI/libraries/armem_robot_state/server/common/Visu.cpp b/source/RobotAPI/libraries/armem_robot_state/server/common/Visu.cpp
index 43af7dbcd..cdaa6d236 100644
--- a/source/RobotAPI/libraries/armem_robot_state/server/common/Visu.cpp
+++ b/source/RobotAPI/libraries/armem_robot_state/server/common/Visu.cpp
@@ -186,15 +186,17 @@ namespace armarx::armem::server::robot_state
 
                 if (p.enabled)
                 {
-                    // TIMING_START(Visu);
+                    TIMING_START(Visu);
 
                     // TODO(fabian.reister): use timestamp
 
+                    const auto timestamp = IceUtil::Time::now();
+
                     try
                     {
-                        const auto robotDescriptions = descriptionSegment.getRobotDescriptions();
-                        const auto globalRobotPoseMap = localizationSegment.getRobotGlobalPoses();
-                        const auto robotJointPositionMap = proprioceptionSegment.getRobotJointPositions();
+                        const auto robotDescriptions = descriptionSegment.getRobotDescriptions(timestamp);
+                        const auto globalRobotPoseMap = localizationSegment.getRobotGlobalPoses(timestamp);
+                        const auto robotJointPositionMap = proprioceptionSegment.getRobotJointPositions(timestamp);
 
 
                         // we need all 3 informations:
@@ -216,7 +218,7 @@ namespace armarx::armem::server::robot_state
                         ARMARX_DEBUG << "Done committing";
 
 
-                        // TIMING_END_STREAM(Visu, ARMARX_VERBOSE);
+                        TIMING_END_STREAM(Visu, ARMARX_VERBOSE);
 
                         // if (debugObserver)
                         // {
diff --git a/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.cpp b/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.cpp
index f00a970c1..011d37e33 100644
--- a/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.cpp
+++ b/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.cpp
@@ -105,7 +105,7 @@ namespace armarx::armem::server::robot_state::description
         storeRobotDescription(robotDescription);
     }
 
-    Segment::RobotDescriptionMap Segment::getRobotDescriptions() const
+    Segment::RobotDescriptionMap Segment::getRobotDescriptions(const armem::Time& timestamp) const
     {
 
         RobotDescriptionMap robotDescriptions;
diff --git a/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.h b/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.h
index 8bb9ec017..21bfd98fe 100644
--- a/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.h
+++ b/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.h
@@ -72,7 +72,7 @@ namespace armarx::armem::server::robot_state::description
         /// mapping "robot name" -> "robot description"
         using RobotDescriptionMap = std::unordered_map<std::string, robot::RobotDescription>;
 
-        RobotDescriptionMap getRobotDescriptions() const;
+        RobotDescriptionMap getRobotDescriptions(const armem::Time& timestamp) const;
 
     private:
 
diff --git a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.cpp b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.cpp
index 38fe69a91..500925f2d 100644
--- a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.cpp
+++ b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.cpp
@@ -89,7 +89,7 @@ namespace armarx::armem::server::robot_state::proprioception
         robotUnitProviderID.providerSegmentName = providerSegmentName;
     }
 
-    std::unordered_map<std::string, std::map<std::string, float>> Segment::getRobotJointPositions() const
+    std::unordered_map<std::string, std::map<std::string, float>> Segment::getRobotJointPositions(const armem::Time& timestamp) const
     {
         std::unordered_map<std::string, std::map<std::string, float>> jointMap;
 
diff --git a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.h b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.h
index 09bae1077..bc83a946b 100644
--- a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.h
+++ b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/Segment.h
@@ -68,7 +68,7 @@ namespace armarx::armem::server::robot_state::proprioception
 
         void init();
 
-        std::unordered_map<std::string, std::map<std::string, float>> getRobotJointPositions() const;
+        std::unordered_map<std::string, std::map<std::string, float>> getRobotJointPositions(const armem::Time& timestamp) const;
 
         const armem::MemoryID& getRobotUnitProviderID() const;
 
-- 
GitLab