diff --git a/source/RobotAPI/components/ObjectPoseObserver/ObjectPose.cpp b/source/RobotAPI/components/ObjectPoseObserver/ObjectPose.cpp
index af808d1de3634821a761e2ae4bb3183aa1e2bcfd..6ca0338ce6c4c8edae44bb3248d9d4e8b1ea6c03 100644
--- a/source/RobotAPI/components/ObjectPoseObserver/ObjectPose.cpp
+++ b/source/RobotAPI/components/ObjectPoseObserver/ObjectPose.cpp
@@ -7,6 +7,7 @@
 
 #include <RobotAPI/libraries/core/Pose.h>
 #include <RobotAPI/libraries/core/FramedPose.h>
+#include <RobotAPI/libraries/ArmarXObjects/ice_conversions.h>
 
 #include "ice_conversions.h"
 
@@ -45,7 +46,7 @@ namespace armarx::objpose
     {
         providerName = ice.providerName;
         objectType = ice.objectType;
-        objectID = { ice.objectID.dataset, ice.objectID.className, ice.objectID.instanceName };
+        armarx::fromIce(ice.objectID, objectID);
 
         objectPoseRobot = armarx::objpose::toEigen(ice.objectPoseRobot);
         objectPoseGlobal = armarx::objpose::toEigen(ice.objectPoseGlobal);
@@ -72,7 +73,7 @@ namespace armarx::objpose
     {
         ice.providerName = providerName;
         ice.objectType = objectType;
-        ice.objectID = { objectID.dataset(), objectID.className(), objectID.instanceName() };
+        armarx::toIce(ice.objectID, objectID);
 
         ice.objectPoseRobot = new Pose(objectPoseRobot);
         ice.objectPoseGlobal = new Pose(objectPoseGlobal);
@@ -92,8 +93,7 @@ namespace armarx::objpose
     {
         providerName = provided.providerName;
         objectType = provided.objectType;
-
-        objectID = { provided.objectID.dataset, provided.objectID.className, provided.objectID.instanceName };
+        armarx::fromIce(provided.objectID, objectID);
 
         objectPoseOriginal = armarx::objpose::toEigen(provided.objectPose);
         objectPoseOriginalFrame = provided.objectPoseFrame;
diff --git a/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.cpp b/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.cpp
index cfb470f8f5ccddb59e64bba6fc4627a343824aa1..892094431698411a2ad66189986a7fa0f2cbb6ef 100644
--- a/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.cpp
+++ b/source/RobotAPI/components/ObjectPoseObserver/ObjectPoseObserver.cpp
@@ -32,6 +32,7 @@
 
 #include <RobotAPI/libraries/core/Pose.h>
 #include <RobotAPI/libraries/core/FramedPose.h>
+#include <RobotAPI/libraries/ArmarXObjects/ice_conversions.h>
 
 #include "ice_conversions.h"
 
diff --git a/source/RobotAPI/components/ObjectPoseObserver/plugins/RequestedObjects.cpp b/source/RobotAPI/components/ObjectPoseObserver/plugins/RequestedObjects.cpp
index 5d0929830a01473e7625573596bf5b779ebf4f1e..42dba6bc80bcff3e024afcbdb9156d726202c1dc 100644
--- a/source/RobotAPI/components/ObjectPoseObserver/plugins/RequestedObjects.cpp
+++ b/source/RobotAPI/components/ObjectPoseObserver/plugins/RequestedObjects.cpp
@@ -3,6 +3,8 @@
 #include <ArmarXCore/core/time/TimeUtil.h>
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
+#include <RobotAPI/libraries/ArmarXObjects/ice_conversions.h>
+
 
 namespace armarx::objpose
 {
@@ -10,15 +12,9 @@ namespace armarx::objpose
     {
     }
 
-    void RequestedObjects::requestObjects(const std::vector<armarx::objpose::ObjectID>& objectIDs, long relativeTimeOutMS)
+    void RequestedObjects::requestObjects(const std::vector<armarx::data::ObjectID>& objectIDs, long relativeTimeOutMS)
     {
-        std::vector<armarx::ObjectID> ids;
-        ids.reserve(objectIDs.size());
-        for (const auto& id : objectIDs)
-        {
-            ids.emplace_back(id.dataset, id.className, id.instanceName);
-        }
-        requestObjects(ids, relativeTimeOutMS);
+        requestObjects(fromIce(objectIDs), relativeTimeOutMS);
     }
 
     void RequestedObjects::requestObjects(const std::vector<armarx::ObjectID>& objectIDs, long relativeTimeOutMS)
diff --git a/source/RobotAPI/components/ObjectPoseObserver/plugins/RequestedObjects.h b/source/RobotAPI/components/ObjectPoseObserver/plugins/RequestedObjects.h
index 06d040c344b2034d408471a28f403a30869a8ce8..eebaf7af21e54ee9995d68940390c4cae48176f8 100644
--- a/source/RobotAPI/components/ObjectPoseObserver/plugins/RequestedObjects.h
+++ b/source/RobotAPI/components/ObjectPoseObserver/plugins/RequestedObjects.h
@@ -36,7 +36,7 @@ namespace armarx::objpose
 
         RequestedObjects();
 
-        void requestObjects(const std::vector<armarx::objpose::ObjectID>& objectIDs, long relativeTimeOutMS);
+        void requestObjects(const std::vector<armarx::data::ObjectID>& objectIDs, long relativeTimeOutMS);
         void requestObjects(const std::vector<armarx::ObjectID>& objectIDs, long relativeTimeOutMS);
         void requestObjects(const std::vector<armarx::ObjectID>& objectIDs, IceUtil::Time relativeTimeout);
 
diff --git a/source/RobotAPI/components/ObjectPoseProviderExample/ObjectPoseProviderExample.cpp b/source/RobotAPI/components/ObjectPoseProviderExample/ObjectPoseProviderExample.cpp
index 5ad0c747350751ed89c6f4e636822f86a9552220..95a51a1fe0c0f7c90c463364a1320ee58fa0c5dc 100644
--- a/source/RobotAPI/components/ObjectPoseProviderExample/ObjectPoseProviderExample.cpp
+++ b/source/RobotAPI/components/ObjectPoseProviderExample/ObjectPoseProviderExample.cpp
@@ -28,6 +28,7 @@
 
 #include <RobotAPI/libraries/core/Pose.h>
 #include <RobotAPI/libraries/core/FramedPose.h>
+#include <RobotAPI/libraries/ArmarXObjects/ice_conversions.h>
 #include <RobotAPI/components/ObjectPoseObserver/ice_conversions.h>
 
 
@@ -69,7 +70,7 @@ namespace armarx
             std::vector<ObjectInfo> objects = objectFinder.findAllObjectsOfDataset("KIT");
             for (const auto& obj : objects)
             {
-                providerInfo.supportedObjects.push_back(objpose::ObjectID{obj.id().dataset(), obj.id().className(), obj.id().instanceName()});
+                providerInfo.supportedObjects.push_back(armarx::toIce(obj.id()));
             }
         }
     }
diff --git a/source/RobotAPI/gui-plugins/ObjectPoseGui/ObjectPoseGuiWidgetController.cpp b/source/RobotAPI/gui-plugins/ObjectPoseGui/ObjectPoseGuiWidgetController.cpp
index 495ad1972e1ed17eac4fc76d2cab26c2db82ad28..828d0fb5b2d1ea32a288bbd6c2fd6ed00ba2bc47 100644
--- a/source/RobotAPI/gui-plugins/ObjectPoseGui/ObjectPoseGuiWidgetController.cpp
+++ b/source/RobotAPI/gui-plugins/ObjectPoseGui/ObjectPoseGuiWidgetController.cpp
@@ -320,7 +320,7 @@ namespace armarx
                 {
                     std::string providerName = classItem->text(1).toStdString();
                     objpose::observer::RequestObjectsInput& requests = requestsPerProvider[providerName];
-                    objpose::ObjectID& id = requests.request.objectIDs.emplace_back();
+                    data::ObjectID& id = requests.request.objectIDs.emplace_back();
                     id.dataset = datasetItem->text(0).toStdString();
                     id.className = classItem->text(0).toStdString();
                 }