diff --git a/source/RobotAPI/interface/CMakeLists.txt b/source/RobotAPI/interface/CMakeLists.txt
index a026e17c6b4a4f036aa600c4b37d6f4e2aadd1c4..a7cc9ca79c5ecc5f99f294065709cc3daa0e2790 100644
--- a/source/RobotAPI/interface/CMakeLists.txt
+++ b/source/RobotAPI/interface/CMakeLists.txt
@@ -26,6 +26,7 @@ set(SLICE_FILES
     core/CartesianNaturalPositionControllerConfig.ice
     core/TopicTimingTest.ice
     core/FTSensorValue.ice
+    core/NameValueMap.ice
 
     selflocalisation/SelfLocalisationProcess.ice
 
diff --git a/source/RobotAPI/interface/core/NameValueMap.ice b/source/RobotAPI/interface/core/NameValueMap.ice
new file mode 100644
index 0000000000000000000000000000000000000000..b15090a586f47458bc3ed9a158a107dbfd258810
--- /dev/null
+++ b/source/RobotAPI/interface/core/NameValueMap.ice
@@ -0,0 +1,32 @@
+/**
+* This file is part of ArmarX.
+*
+* ArmarX is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as
+* published by the Free Software Foundation; either version 2 of
+* the License, or (at your option) any later version.
+*
+* ArmarX is distributed in the hope that it will be useful, but
+* WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*
+* @package    RobotAPI
+* @author     Christoph Pohl
+* @copyright  2020 Humanoids Group, H2T, KIT
+* @license    http://www.gnu.org/licenses/gpl-2.0.txt
+*             GNU General Public License
+*/
+
+#pragma once
+
+module armarx
+{
+    /**
+	* [NameValueMap] defined. This data container is mostly used to assign values to e.g. joints which are identified by name.
+	**/
+    dictionary<string, float> NameValueMap;
+}
\ No newline at end of file
diff --git a/source/RobotAPI/interface/objectpose/object_pose_types.ice b/source/RobotAPI/interface/objectpose/object_pose_types.ice
index 0e7d365c0880ac5b6ee5de5d4fe996868c549439..7ce071730ed3f35b8f2e526c6bf585d000af73f8 100644
--- a/source/RobotAPI/interface/objectpose/object_pose_types.ice
+++ b/source/RobotAPI/interface/objectpose/object_pose_types.ice
@@ -24,15 +24,12 @@
 #pragma once
 
 #include <RobotAPI/interface/core/PoseBase.ice>
+#include <RobotAPI/interface/core/NameValueMap.ice>
 #include <RobotAPI/interface/ArmarXObjects/ArmarXObjectsTypes.ice>
 
 
 module armarx
 {
-    // Originally defined in <RobotAPI/interface/units/KinematicUnitInterface.ice>
-    dictionary<string, float> NameValueMap;
-
-
     // A struct's name cannot cannot differ only in capitalization from its immediately enclosing module name.
     module objpose
     {
diff --git a/source/RobotAPI/interface/units/KinematicUnitInterface.ice b/source/RobotAPI/interface/units/KinematicUnitInterface.ice
index 85edf827c17242010d6747f383a5aaac6d7eccc8..5321b009b55f944df51ba9d2e0b826eacd15e903 100644
--- a/source/RobotAPI/interface/units/KinematicUnitInterface.ice
+++ b/source/RobotAPI/interface/units/KinematicUnitInterface.ice
@@ -29,6 +29,7 @@
 #include <ArmarXCore/interface/core/UserException.ice>
 #include <ArmarXCore/interface/core/BasicTypes.ice>
 
+#include <RobotAPI/interface/core/NameValueMap.ice>
 #include <RobotAPI/interface/skills/SkillObserverInterface.ice>
 
 module armarx
@@ -124,10 +125,7 @@ module armarx
     {
         Ice::StringSeq nodes;
     };
-	/**
-	* [NameValueMap] defined. This data container is mostly used to assign values to e.g. joints which are identified by name.
-	**/
-    dictionary<string, float> NameValueMap;
+
     /**
     * [NameControlModeMap] defined. This data container is mostly used to assign control modes to e.g. joints which are identified by name.
     **/