diff --git a/source/RobotAPI/components/ObjectPoseObserver/ObjectPose.cpp b/source/RobotAPI/components/ObjectPoseObserver/ObjectPose.cpp
index 19bb9d5aac9be101f1c532279977f58a262eab72..b7017bbd9ec9424d665648f49a5a9830e936b437 100644
--- a/source/RobotAPI/components/ObjectPoseObserver/ObjectPose.cpp
+++ b/source/RobotAPI/components/ObjectPoseObserver/ObjectPose.cpp
@@ -14,25 +14,6 @@
 
 namespace armarx::objpose
 {
-    Eigen::Vector3f toEigen(const Vector3BasePtr pose)
-    {
-        auto cast = Vector3Ptr::dynamicCast(pose);
-        ARMARX_CHECK_NOT_NULL(cast);
-        return cast->toEigen();
-    }
-    Eigen::Matrix3f toEigen(const QuaternionBasePtr pose)
-    {
-        auto cast = QuaternionPtr::dynamicCast(pose);
-        ARMARX_CHECK_NOT_NULL(cast);
-        return cast->toEigen();
-    }
-    Eigen::Matrix4f toEigen(const PoseBasePtr pose)
-    {
-        auto cast = PosePtr::dynamicCast(pose);
-        ARMARX_CHECK_NOT_NULL(cast);
-        return cast->toEigen();
-    }
-
     ObjectPose::ObjectPose()
     {
     }
@@ -48,13 +29,13 @@ namespace armarx::objpose
         objectType = ice.objectType;
         armarx::fromIce(ice.objectID, objectID);
 
-        objectPoseRobot = armarx::objpose::toEigen(ice.objectPoseRobot);
-        objectPoseGlobal = armarx::objpose::toEigen(ice.objectPoseGlobal);
-        objectPoseOriginal = armarx::objpose::toEigen(ice.objectPoseOriginal);
+        objectPoseRobot = ::armarx::toEigen(ice.objectPoseRobot);
+        objectPoseGlobal = ::armarx::toEigen(ice.objectPoseGlobal);
+        objectPoseOriginal = ::armarx::toEigen(ice.objectPoseOriginal);
         objectPoseOriginalFrame = ice.objectPoseOriginalFrame;
 
         robotConfig = ice.robotConfig;
-        robotPose = armarx::objpose::toEigen(ice.robotPose);
+        robotPose = ::armarx::toEigen(ice.robotPose);
 
         objpose::fromIce(ice.attachment, this->attachment);
 
@@ -99,7 +80,7 @@ namespace armarx::objpose
         objectType = provided.objectType;
         armarx::fromIce(provided.objectID, objectID);
 
-        objectPoseOriginal = armarx::objpose::toEigen(provided.objectPose);
+        objectPoseOriginal = ::armarx::toEigen(provided.objectPose);
         objectPoseOriginalFrame = provided.objectPoseFrame;
 
         armarx::FramedPose framed(objectPoseOriginal, objectPoseOriginalFrame, robot->getName());
@@ -147,7 +128,7 @@ namespace armarx
     {
         attachment.agentName = ice.agentName;
         attachment.frameName = ice.frameName;
-        attachment.poseInFrame = toEigen(ice.poseInFrame);
+        attachment.poseInFrame = ::armarx::toEigen(ice.poseInFrame);
     }
 
     void objpose::fromIce(const data::ObjectAttachmentInfoPtr& ice, std::optional<ObjectAttachmentInfo>& attachment)
diff --git a/source/RobotAPI/components/ObjectPoseObserver/ice_conversions.cpp b/source/RobotAPI/components/ObjectPoseObserver/ice_conversions.cpp
index 0f520c8fcc12391e7b47474248043dbafac0d73b..f1c158aad7be78f2e6dda5740925bf0a6a416230 100644
--- a/source/RobotAPI/components/ObjectPoseObserver/ice_conversions.cpp
+++ b/source/RobotAPI/components/ObjectPoseObserver/ice_conversions.cpp
@@ -11,29 +11,10 @@
 #include <RobotAPI/libraries/core/Pose.h>
 #include <RobotAPI/libraries/core/FramedPose.h>
 
+#include <RobotAPI/libraries/ArmarXObjects/ice_conversions.h>
 
 namespace armarx
 {
-
-    Eigen::Vector3f toEigen(const Vector3BasePtr pose)
-    {
-        auto cast = Vector3Ptr::dynamicCast(pose);
-        ARMARX_CHECK_NOT_NULL(cast);
-        return cast->toEigen();
-    }
-    Eigen::Matrix3f toEigen(const QuaternionBasePtr pose)
-    {
-        auto cast = QuaternionPtr::dynamicCast(pose);
-        ARMARX_CHECK_NOT_NULL(cast);
-        return cast->toEigen();
-    }
-    Eigen::Matrix4f toEigen(const PoseBasePtr pose)
-    {
-        auto cast = PosePtr::dynamicCast(pose);
-        ARMARX_CHECK_NOT_NULL(cast);
-        return cast->toEigen();
-    }
-
     const simox::meta::EnumNames<objpose::ObjectTypeEnum> objpose::ObjectTypeEnumNames =
     {
         { objpose::ObjectTypeEnum::AnyObject, "AnyObject" },
@@ -41,7 +22,6 @@ namespace armarx
         { objpose::ObjectTypeEnum::UnknownObject, "UnknownObject" }
     };
 
-
     objpose::AABB objpose::toIce(const simox::AxisAlignedBoundingBox& aabb)
     {
         objpose::AABB ice;
@@ -50,7 +30,6 @@ namespace armarx
         return ice;
     }
 
-
     void objpose::fromIce(const Box& box, simox::OrientedBoxf& oobb)
     {
         try
@@ -112,11 +91,4 @@ namespace armarx
         toIce(box, oobb);
         return box;
     }
-
-
 }
-
-
-
-
-
diff --git a/source/RobotAPI/components/ObjectPoseObserver/plugins/RequestedObjects.cpp b/source/RobotAPI/components/ObjectPoseObserver/plugins/RequestedObjects.cpp
index 42dba6bc80bcff3e024afcbdb9156d726202c1dc..036e0530c19328397c13f6a1e4b6975047cfd71b 100644
--- a/source/RobotAPI/components/ObjectPoseObserver/plugins/RequestedObjects.cpp
+++ b/source/RobotAPI/components/ObjectPoseObserver/plugins/RequestedObjects.cpp
@@ -5,7 +5,6 @@
 
 #include <RobotAPI/libraries/ArmarXObjects/ice_conversions.h>
 
-
 namespace armarx::objpose
 {
     RequestedObjects::RequestedObjects()
@@ -14,7 +13,7 @@ namespace armarx::objpose
 
     void RequestedObjects::requestObjects(const std::vector<armarx::data::ObjectID>& objectIDs, long relativeTimeOutMS)
     {
-        requestObjects(fromIce(objectIDs), relativeTimeOutMS);
+        requestObjects(::armarx::fromIce(objectIDs), relativeTimeOutMS);
     }
 
     void RequestedObjects::requestObjects(const std::vector<armarx::ObjectID>& objectIDs, long relativeTimeOutMS)
diff --git a/source/RobotAPI/libraries/ArmarXObjects/CMakeLists.txt b/source/RobotAPI/libraries/ArmarXObjects/CMakeLists.txt
index 2c03da5f9f66c4479ad23a82e66d40220d971289..247e6420c2d06a562f12be38f41697bcc3e81b99 100644
--- a/source/RobotAPI/libraries/ArmarXObjects/CMakeLists.txt
+++ b/source/RobotAPI/libraries/ArmarXObjects/CMakeLists.txt
@@ -4,7 +4,7 @@ armarx_component_set_name("${LIB_NAME}")
 armarx_set_target("Library: ${LIB_NAME}")
 
 set(LIBS
-    ArmarXCoreInterfaces ArmarXCore
+    RobotAPICore
 )
 
 set(LIB_FILES
diff --git a/source/RobotAPI/libraries/ArmarXObjects/ice_conversions.cpp b/source/RobotAPI/libraries/ArmarXObjects/ice_conversions.cpp
index 7dd31ad9379e40a716869631b72ae3a6a7fb99a4..f58e298086eb4e161fedc7730782f863e733e2eb 100644
--- a/source/RobotAPI/libraries/ArmarXObjects/ice_conversions.cpp
+++ b/source/RobotAPI/libraries/ArmarXObjects/ice_conversions.cpp
@@ -1,5 +1,7 @@
-#include "ice_conversions.h"
+#include <RobotAPI/libraries/core/Pose.h>
+#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
+#include "ice_conversions.h"
 
 namespace armarx
 {
@@ -66,3 +68,25 @@ armarx::data::ObjectIDSeq armarx::toIce(const std::vector<ObjectID>& ids)
     toIce(ice, ids);
     return ice;
 }
+
+namespace armarx
+{
+    Eigen::Vector3f toEigen(const Vector3BasePtr& pose)
+    {
+        auto cast = Vector3Ptr::dynamicCast(pose);
+        ARMARX_CHECK_NOT_NULL(cast);
+        return cast->toEigen();
+    }
+    Eigen::Matrix3f toEigen(const QuaternionBasePtr& pose)
+    {
+        auto cast = QuaternionPtr::dynamicCast(pose);
+        ARMARX_CHECK_NOT_NULL(cast);
+        return cast->toEigen();
+    }
+    Eigen::Matrix4f toEigen(const PoseBasePtr& pose)
+    {
+        auto cast = PosePtr::dynamicCast(pose);
+        ARMARX_CHECK_NOT_NULL(cast);
+        return cast->toEigen();
+    }
+}
diff --git a/source/RobotAPI/libraries/ArmarXObjects/ice_conversions.h b/source/RobotAPI/libraries/ArmarXObjects/ice_conversions.h
index e17f37e35e1ff217d3fe8baab719ccaefe2d88b6..935cc8fb4dce882717210666f8798a77160f5ecb 100644
--- a/source/RobotAPI/libraries/ArmarXObjects/ice_conversions.h
+++ b/source/RobotAPI/libraries/ArmarXObjects/ice_conversions.h
@@ -1,6 +1,9 @@
 #pragma once
 
+#include <Eigen/Dense>
+
 #include <RobotAPI/interface/ArmarXObjects/ArmarXObjectsTypes.h>
+#include <RobotAPI/interface/core/PoseBase.h>
 
 #include "ObjectID.h"
 
@@ -26,3 +29,10 @@ namespace armarx
     data::ObjectIDSeq toIce(const std::vector<ObjectID>& ids);
 
 }
+
+namespace armarx
+{
+    Eigen::Vector3f toEigen(const Vector3BasePtr& pose);
+    Eigen::Matrix3f toEigen(const QuaternionBasePtr& pose);
+    Eigen::Matrix4f toEigen(const PoseBasePtr& pose);
+}