diff --git a/source/RobotAPI/libraries/armem_robot_state/CMakeLists.txt b/source/RobotAPI/libraries/armem_robot_state/CMakeLists.txt
index 2eead70ac6845aedad5d4f1e5c69e9c0d8522347..6484c97ca0695848fc92dcb34008fc5b1d7c70f9 100644
--- a/source/RobotAPI/libraries/armem_robot_state/CMakeLists.txt
+++ b/source/RobotAPI/libraries/armem_robot_state/CMakeLists.txt
@@ -43,6 +43,7 @@ armarx_add_library(
 
 
         ./aron_conversions.h
+        ./utils.h
     SOURCES
         ./common/localization/TransformHelper.cpp
 
@@ -64,6 +65,8 @@ armarx_add_library(
         ./server/description/Segment.cpp
 
         ./aron_conversions.cpp
+        ./utils.cpp
+
 )
 
 
diff --git a/source/RobotAPI/libraries/armem_robot_state/utils.cpp b/source/RobotAPI/libraries/armem_robot_state/utils.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..9f4b84fdfbee87a4ca768837aa41039f1970115e
--- /dev/null
+++ b/source/RobotAPI/libraries/armem_robot_state/utils.cpp
@@ -0,0 +1,11 @@
+#include "utils.h"
+
+namespace armarx::armem::robot_state
+{
+    armarx::armem::MemoryID makeMemoryID(const robot::RobotDescription& desc)
+    {
+        return MemoryID("RobotState/Description")
+               .withProviderSegmentName(desc.name)
+               .withEntityName("description");
+    }
+}
\ No newline at end of file
diff --git a/source/RobotAPI/libraries/armem_robot_state/utils.h b/source/RobotAPI/libraries/armem_robot_state/utils.h
new file mode 100644
index 0000000000000000000000000000000000000000..239e0ddb2d1b99a513ed97a3e1b8fb63122a4c70
--- /dev/null
+++ b/source/RobotAPI/libraries/armem_robot_state/utils.h
@@ -0,0 +1,10 @@
+#pragma once
+
+#include "RobotAPI/libraries/armem/core/MemoryID.h"
+#include "RobotAPI/libraries/armem_robot/types.h"
+
+namespace armarx::armem::robot_state
+{
+    armarx::armem::MemoryID makeMemoryID(const robot::RobotDescription& desc);
+}
+