From ee2cec5834b8748cc6c129e04a70aa7c1b01f461 Mon Sep 17 00:00:00 2001
From: Fabian Reister <fabian.reister@kit.edu>
Date: Sat, 10 Aug 2024 16:05:37 +0200
Subject: [PATCH] extending robot description and robot name helper for
 HandUnit

---
 .../libraries/RobotStatechartHelpers/RobotNameHelper.cpp    | 6 ++++++
 .../libraries/RobotStatechartHelpers/RobotNameHelper.h      | 2 ++
 .../libraries/armem_robot_state/aron/RobotDescription.xml   | 3 +++
 .../armem_robot_state/server/description/Segment.cpp        | 4 ++++
 4 files changed, 15 insertions(+)

diff --git a/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.cpp b/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.cpp
index 4f2d0c35f..cf5eb9b33 100644
--- a/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.cpp
+++ b/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.cpp
@@ -250,6 +250,12 @@ namespace armarx
         return select("HandControllerName");
     }
 
+    std::string Arm::getHandUnitName() const
+    {
+        ARMARX_TRACE;
+        return select("HandUnitName");
+    }
+
     std::string Arm::getHandRootNode() const
     {
         ARMARX_TRACE;
diff --git a/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.h b/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.h
index 76c9b283f..c1fa9b4d7 100644
--- a/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.h
+++ b/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.h
@@ -64,6 +64,8 @@ namespace armarx
 
         std::string getHandRootNode() const;
 
+        std::string getHandUnitName() const;
+
         std::string getHandModelPath() const;
 
         std::string getAbsoluteHandModelPath() const;
diff --git a/source/RobotAPI/libraries/armem_robot_state/aron/RobotDescription.xml b/source/RobotAPI/libraries/armem_robot_state/aron/RobotDescription.xml
index 38ce6ca35..3fb008da6 100644
--- a/source/RobotAPI/libraries/armem_robot_state/aron/RobotDescription.xml
+++ b/source/RobotAPI/libraries/armem_robot_state/aron/RobotDescription.xml
@@ -27,6 +27,9 @@
             <ObjectChild key='end_effector'>
                 <string />
             </ObjectChild>
+            <ObjectChild key='hand_unit'>
+                <string />
+            </ObjectChild>
             <!-- Legacy old memory -->
             <!-- <ObjectChild key='memory_hand_name'>
                 <string />
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 82dbd27c2..ef4c89379 100644
--- a/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.cpp
+++ b/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.cpp
@@ -189,6 +189,10 @@ namespace armarx::armem::server::robot_state::description
                     e.torso_kinematic_chain =
                         tryGet([&]() { return arm.getTorsoKinematicChain(); });
 
+                    e.hand_unit = 
+                        tryGet([&]() { return arm.getHandUnitName(); });
+
+
                     info.parts.emplace(side + "Arm", e);
                 }
             }
-- 
GitLab