diff --git a/source/RobotAPI/libraries/core/CMakeLists.txt b/source/RobotAPI/libraries/core/CMakeLists.txt
index 9babf0b23f1eeae6bc2bc01e9238d93809c6c40c..206e492c5660dc1c4c50b8bdbeb069b8b35736aa 100644
--- a/source/RobotAPI/libraries/core/CMakeLists.txt
+++ b/source/RobotAPI/libraries/core/CMakeLists.txt
@@ -31,7 +31,9 @@ set(LIB_FILES
     RobotStatechartContext.cpp
     RobotPool.cpp
     checks/ConditionCheckMagnitudeChecks.cpp
+    observerfilters/OffsetFilter.cpp
     observerfilters/PoseAverageFilter.cpp
+    observerfilters/PoseMedianFilter.cpp
     observerfilters/PoseMedianOffsetFilter.cpp
     observerfilters/MedianDerivativeFilterV3.cpp
     RobotAPIObjectFactories.cpp
diff --git a/source/RobotAPI/libraries/core/FramedPose.cpp b/source/RobotAPI/libraries/core/FramedPose.cpp
index f8a2c3f48687c98c96b56d44cd574f07c5a5bae9..852477268e44969670b78789e31f1aae57848fac 100644
--- a/source/RobotAPI/libraries/core/FramedPose.cpp
+++ b/source/RobotAPI/libraries/core/FramedPose.cpp
@@ -26,11 +26,14 @@
 #include <RobotAPI/libraries/core/FramedPose.h>
 #include <RobotAPI/libraries/core/remoterobot/RemoteRobot.h>
 
+#include <ArmarXCore/core/logging/Logging.h>
 
 #include <VirtualRobot/Robot.h>
 #include <VirtualRobot/LinkedCoordinate.h>
 #include <VirtualRobot/VirtualRobot.h>
 #include <VirtualRobot/RobotConfig.h>
+
+
 using namespace Eigen;
 
 template class ::IceInternal::Handle<::armarx::FramedPose>;
diff --git a/source/RobotAPI/libraries/core/LinkedPose.cpp b/source/RobotAPI/libraries/core/LinkedPose.cpp
index 00391df0cba8d2a9b94cb368cdf16738c7e4c2c8..10b93907b5873f521378987329895c1a7033a960 100644
--- a/source/RobotAPI/libraries/core/LinkedPose.cpp
+++ b/source/RobotAPI/libraries/core/LinkedPose.cpp
@@ -290,4 +290,10 @@ namespace armarx
     }
 
 
+    void VariantType::suppressWarningUnusedVariableForLinkedPoseAndDirection()
+    {
+        ARMARX_DEBUG_S << VAROUT(LinkedPose);
+        ARMARX_DEBUG_S << VAROUT(LinkedDirection);
+    }
+
 }
diff --git a/source/RobotAPI/libraries/core/LinkedPose.h b/source/RobotAPI/libraries/core/LinkedPose.h
index c0cceefce563a026803846773fd805d522031186..def35d7f7fd3d23b19f301f7fd77aebdb2b7bbae 100644
--- a/source/RobotAPI/libraries/core/LinkedPose.h
+++ b/source/RobotAPI/libraries/core/LinkedPose.h
@@ -42,11 +42,7 @@ namespace armarx::VariantType
     // variant types
     const VariantTypeId LinkedPose = Variant::addTypeName("::armarx::LinkedPoseBase");
     const VariantTypeId LinkedDirection = Variant::addTypeName("::armarx::LinkedDirectionBase");
-    inline void suppressWarningUnusedVariableForLinkedPoseAndDirection()
-    {
-        ARMARX_DEBUG_S << VAROUT(LinkedPose);
-        ARMARX_DEBUG_S << VAROUT(LinkedDirection);
-    }
+    void suppressWarningUnusedVariableForLinkedPoseAndDirection();
 }
 
 namespace armarx
diff --git a/source/RobotAPI/libraries/core/checks/ConditionCheckMagnitudeChecks.h b/source/RobotAPI/libraries/core/checks/ConditionCheckMagnitudeChecks.h
index 1009903e4fb1ddb631f11482a459098452e15419..addca00cdc7e3487aac217a3b03ee488f2287253 100644
--- a/source/RobotAPI/libraries/core/checks/ConditionCheckMagnitudeChecks.h
+++ b/source/RobotAPI/libraries/core/checks/ConditionCheckMagnitudeChecks.h
@@ -23,11 +23,14 @@
  */
 #pragma once
 
+#include <ArmarXCore/core/logging/Logging.h>
 #include <ArmarXCore/core/system/ImportExport.h>
 #include <ArmarXCore/observers/ConditionCheck.h>
+
 #include <RobotAPI/libraries/core/FramedPose.h>
 #include <RobotAPI/libraries/core/LinkedPose.h>
 
+
 namespace armarx
 {
 
diff --git a/source/RobotAPI/libraries/core/observerfilters/MedianDerivativeFilterV3.cpp b/source/RobotAPI/libraries/core/observerfilters/MedianDerivativeFilterV3.cpp
index eaf21147840e8ec1c2e95fa7eedbb218f5518ed0..fbe93784ccb11229682a57d2c2d6ba7577c8adf8 100644
--- a/source/RobotAPI/libraries/core/observerfilters/MedianDerivativeFilterV3.cpp
+++ b/source/RobotAPI/libraries/core/observerfilters/MedianDerivativeFilterV3.cpp
@@ -23,6 +23,9 @@
  */
 #include "MedianDerivativeFilterV3.h"
 
+#include <ArmarXCore/core/logging/Logging.h>
+
+
 using namespace armarx;
 using namespace filters;
 
diff --git a/source/RobotAPI/libraries/core/observerfilters/OffsetFilter.cpp b/source/RobotAPI/libraries/core/observerfilters/OffsetFilter.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..d8a3246de16fa15282559204e96f45f516567d7c
--- /dev/null
+++ b/source/RobotAPI/libraries/core/observerfilters/OffsetFilter.cpp
@@ -0,0 +1,109 @@
+#include "OffsetFilter.h"
+
+#include <RobotAPI/libraries/core/FramedPose.h>
+
+#include <ArmarXCore/core/logging/Logging.h>
+#include <ArmarXCore/util/variants/eigen3/MatrixVariant.h>
+
+
+namespace armarx::filters
+{
+
+    OffsetFilter::OffsetFilter()
+    {
+        firstRun = true;
+        windowFilterSize = 1;
+    }
+
+
+    VariantBasePtr OffsetFilter::calculate(const Ice::Current&) const
+    {
+        std::unique_lock lock(historyMutex);
+
+        VariantPtr newVariant;
+
+        if (initialValue && dataHistory.size() > 0)
+        {
+            VariantTypeId type = dataHistory.begin()->second->getType();
+            VariantPtr currentValue = VariantPtr::dynamicCast(dataHistory.rbegin()->second);
+
+            if (currentValue->getType() != initialValue->getType())
+            {
+                ARMARX_ERROR_S << "Types in OffsetFilter are different: " << Variant::typeToString(currentValue->getType()) << " and " << Variant::typeToString(initialValue->getType());
+                return nullptr;
+            }
+
+            if (type == VariantType::Int)
+            {
+                int newValue = dataHistory.rbegin()->second->getInt() - initialValue->getInt();
+                newVariant = new Variant(newValue);
+            }
+            else if (type == VariantType::Float)
+            {
+                float newValue = dataHistory.rbegin()->second->getFloat() - initialValue->getFloat();
+                newVariant = new Variant(newValue);
+            }
+            else if (type == VariantType::Double)
+            {
+                double newValue = dataHistory.rbegin()->second->getDouble() - initialValue->getDouble();
+                newVariant = new Variant(newValue);
+            }
+            else if (type == VariantType::FramedDirection)
+            {
+                FramedDirectionPtr vec = FramedDirectionPtr::dynamicCast(currentValue->get<FramedDirection>());
+                FramedDirectionPtr intialVec = FramedDirectionPtr::dynamicCast(initialValue->get<FramedDirection>());
+                Eigen::Vector3f newValue =  vec->toEigen() - intialVec->toEigen();
+
+                newVariant = new Variant(new FramedDirection(newValue, vec->frame, vec->agent));
+            }
+            else if (type == VariantType::FramedPosition)
+            {
+                FramedPositionPtr pos = FramedPositionPtr::dynamicCast(currentValue->get<FramedPosition>());
+                FramedPositionPtr intialPos = FramedPositionPtr::dynamicCast(initialValue->get<FramedPosition>());
+                Eigen::Vector3f newValue =  pos->toEigen() - intialPos->toEigen();
+                newVariant = new Variant(new FramedPosition(newValue, pos->frame, pos->agent));
+            }
+            else if (type == VariantType::MatrixFloat)
+            {
+                MatrixFloatPtr matrix = MatrixFloatPtr::dynamicCast(currentValue->get<MatrixFloat>());
+                MatrixFloatPtr initialMatrix = MatrixFloatPtr::dynamicCast(initialValue->get<MatrixFloat>());
+                Eigen::MatrixXf newMatrix = matrix->toEigen() - initialMatrix->toEigen();
+                newVariant = new Variant(new MatrixFloat(newMatrix));
+            }
+        }
+
+        return newVariant;
+
+    }
+
+    ParameterTypeList OffsetFilter::getSupportedTypes(const Ice::Current&) const
+    {
+        ParameterTypeList result;
+        result.push_back(VariantType::Int);
+        result.push_back(VariantType::Float);
+        result.push_back(VariantType::Double);
+        result.push_back(VariantType::FramedDirection);
+        result.push_back(VariantType::FramedPosition);
+        result.push_back(VariantType::MatrixFloat);
+        return result;
+    }
+
+    void OffsetFilter::update(Ice::Long timestamp, const VariantBasePtr& value, const Ice::Current& c)
+    {
+        DatafieldFilter::update(timestamp, value, c);
+
+        if (firstRun)
+        {
+            std::unique_lock lock(historyMutex);
+
+            if (dataHistory.size() == 0)
+            {
+                return;
+            }
+
+            initialValue = VariantPtr::dynamicCast(dataHistory.begin()->second);
+            firstRun = false;
+        }
+    }
+
+}
diff --git a/source/RobotAPI/libraries/core/observerfilters/OffsetFilter.h b/source/RobotAPI/libraries/core/observerfilters/OffsetFilter.h
index 68b2cc80905a7747ab73c04f9d19c873b4e3fb77..4af1082d7fb7ac6fb8aeea67f1491d7f94d2f39d 100644
--- a/source/RobotAPI/libraries/core/observerfilters/OffsetFilter.h
+++ b/source/RobotAPI/libraries/core/observerfilters/OffsetFilter.h
@@ -23,9 +23,9 @@
 #pragma once
 
 #include <RobotAPI/interface/observers/ObserverFilters.h>
+
 #include <ArmarXCore/observers/filters/DatafieldFilter.h>
-#include <RobotAPI/libraries/core/FramedPose.h>
-#include <ArmarXCore/util/variants/eigen3/MatrixVariant.h>
+
 
 namespace armarx::filters
 {
@@ -43,109 +43,27 @@ namespace armarx::filters
         public DatafieldFilter
     {
     public:
-        OffsetFilter()
-        {
-            firstRun = true;
-            windowFilterSize = 1;
-        }
+
+        OffsetFilter();
 
 
         // DatafieldFilterBase interface
     public:
-        VariantBasePtr calculate(const Ice::Current& c = Ice::emptyCurrent) const override
-        {
-
-            std::unique_lock lock(historyMutex);
-
-            VariantPtr newVariant;
-
-            if (initialValue && dataHistory.size() > 0)
-            {
-                VariantTypeId type = dataHistory.begin()->second->getType();
-                VariantPtr currentValue = VariantPtr::dynamicCast(dataHistory.rbegin()->second);
-
-                if (currentValue->getType() != initialValue->getType())
-                {
-                    ARMARX_ERROR_S << "Types in OffsetFilter are different: " << Variant::typeToString(currentValue->getType()) << " and " << Variant::typeToString(initialValue->getType());
-                    return NULL;
-                }
-
-                if (type == VariantType::Int)
-                {
-                    int newValue = dataHistory.rbegin()->second->getInt() - initialValue->getInt();
-                    newVariant = new Variant(newValue);
-                }
-                else if (type == VariantType::Float)
-                {
-                    float newValue = dataHistory.rbegin()->second->getFloat() - initialValue->getFloat();
-                    newVariant = new Variant(newValue);
-                }
-                else if (type == VariantType::Double)
-                {
-                    double newValue = dataHistory.rbegin()->second->getDouble() - initialValue->getDouble();
-                    newVariant = new Variant(newValue);
-                }
-                else if (type == VariantType::FramedDirection)
-                {
-                    FramedDirectionPtr vec = FramedDirectionPtr::dynamicCast(currentValue->get<FramedDirection>());
-                    FramedDirectionPtr intialVec = FramedDirectionPtr::dynamicCast(initialValue->get<FramedDirection>());
-                    Eigen::Vector3f newValue =  vec->toEigen() - intialVec->toEigen();
-
-                    newVariant = new Variant(new FramedDirection(newValue, vec->frame, vec->agent));
-                }
-                else if (type == VariantType::FramedPosition)
-                {
-                    FramedPositionPtr pos = FramedPositionPtr::dynamicCast(currentValue->get<FramedPosition>());
-                    FramedPositionPtr intialPos = FramedPositionPtr::dynamicCast(initialValue->get<FramedPosition>());
-                    Eigen::Vector3f newValue =  pos->toEigen() - intialPos->toEigen();
-                    newVariant = new Variant(new FramedPosition(newValue, pos->frame, pos->agent));
-                }
-                else if (type == VariantType::MatrixFloat)
-                {
-                    MatrixFloatPtr matrix = MatrixFloatPtr::dynamicCast(currentValue->get<MatrixFloat>());
-                    MatrixFloatPtr initialMatrix = MatrixFloatPtr::dynamicCast(initialValue->get<MatrixFloat>());
-                    Eigen::MatrixXf newMatrix = matrix->toEigen() - initialMatrix->toEigen();
-                    newVariant = new Variant(new MatrixFloat(newMatrix));
-                }
-            }
-
-            return newVariant;
-
-        }
-        ParameterTypeList getSupportedTypes(const Ice::Current&) const override
-        {
-            ParameterTypeList result;
-            result.push_back(VariantType::Int);
-            result.push_back(VariantType::Float);
-            result.push_back(VariantType::Double);
-            result.push_back(VariantType::FramedDirection);
-            result.push_back(VariantType::FramedPosition);
-            result.push_back(VariantType::MatrixFloat);
-            return result;
-        }
+
+        VariantBasePtr calculate(const Ice::Current& = Ice::emptyCurrent) const override;
+
+        ParameterTypeList getSupportedTypes(const Ice::Current&) const override;
+
+
     private:
         bool firstRun;
         VariantPtr initialValue;
 
+
         // DatafieldFilterBase interface
     public:
-        void update(Ice::Long timestamp, const VariantBasePtr& value, const Ice::Current& c) override
-        {
-            DatafieldFilter::update(timestamp, value, c);
-
-            if (firstRun)
-            {
-                std::unique_lock lock(historyMutex);
-
-                if (dataHistory.size() == 0)
-                {
-                    return;
-                }
-
-                initialValue = VariantPtr::dynamicCast(dataHistory.begin()->second);
-                firstRun = false;
-            }
-        }
+        void update(Ice::Long timestamp, const VariantBasePtr& value, const Ice::Current& c) override;
+
     };
 }
 
diff --git a/source/RobotAPI/libraries/core/observerfilters/PoseAverageFilter.cpp b/source/RobotAPI/libraries/core/observerfilters/PoseAverageFilter.cpp
index aa3b14347927cbbcd068f0164f2c92b86012fabd..e0d61134cfb5e85319d9a45af55418cf9f1a9a07 100644
--- a/source/RobotAPI/libraries/core/observerfilters/PoseAverageFilter.cpp
+++ b/source/RobotAPI/libraries/core/observerfilters/PoseAverageFilter.cpp
@@ -23,6 +23,9 @@
  */
 #include "PoseAverageFilter.h"
 
+#include <ArmarXCore/core/logging/Logging.h>
+
+
 namespace armarx::filters
 {
 
diff --git a/source/RobotAPI/libraries/core/observerfilters/PoseMedianFilter.cpp b/source/RobotAPI/libraries/core/observerfilters/PoseMedianFilter.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..72c6e8e8e798c43046f14c3dbcabc73233ab9a0d
--- /dev/null
+++ b/source/RobotAPI/libraries/core/observerfilters/PoseMedianFilter.cpp
@@ -0,0 +1,112 @@
+#include "PoseMedianFilter.h"
+
+#include <RobotAPI/libraries/core/FramedPose.h>
+#include <RobotAPI/interface/core/PoseBase.h>
+
+#include <ArmarXCore/core/logging/Logging.h>
+
+
+namespace armarx::filters
+{
+
+    PoseMedianFilter::PoseMedianFilter(int windowSize)
+    {
+        this->windowFilterSize = windowSize;
+    }
+
+
+    VariantBasePtr PoseMedianFilter::calculate(const Ice::Current& c) const
+    {
+        std::unique_lock lock(historyMutex);
+
+        if (dataHistory.size() == 0)
+        {
+            return nullptr;
+        }
+
+        VariantTypeId type = dataHistory.begin()->second->getType();
+
+        if (type == VariantType::Vector3
+            or type == VariantType::FramedDirection
+            or type == VariantType::FramedPosition)
+        {
+            Eigen::Vector3f vec;
+            vec.setZero();
+            std::string frame = "";
+            std::string agent = "";
+            VariantPtr var = VariantPtr::dynamicCast(dataHistory.begin()->second);
+
+            if (type == VariantType::FramedDirection)
+            {
+                FramedDirectionPtr p = var->get<FramedDirection>();
+                frame = p->frame;
+                agent = p->agent;
+            }
+            else if (type == VariantType::FramedPosition)
+            {
+                FramedPositionPtr p = var->get<FramedPosition>();
+                frame = p->frame;
+                agent = p->agent;
+            }
+
+            for (int i = 0; i < 3; ++i)
+            {
+                std::vector<double> values;
+
+                for (auto v : dataHistory)
+                {
+                    VariantPtr v2 = VariantPtr::dynamicCast(v.second);
+                    values.push_back(v2->get<Vector3>()->toEigen()[i]);
+                }
+
+                std::sort(values.begin(), values.end());
+                vec[i] = values.at(values.size() / 2);
+            }
+
+            if (type == VariantType::Vector3)
+            {
+                Vector3Ptr vecVar = new Vector3(vec);
+                return new Variant(vecVar);
+            }
+            else if (type == VariantType::FramedDirection)
+            {
+
+                FramedDirectionPtr vecVar = new FramedDirection(vec, frame, agent);
+                return new Variant(vecVar);
+            }
+            else if (type == VariantType::FramedPosition)
+            {
+                FramedPositionPtr vecVar = new FramedPosition(vec, frame, agent);
+                return new Variant(vecVar);
+            }
+            else
+            {
+                ARMARX_WARNING_S << "Implementation missing here";
+                return nullptr;
+            }
+        }
+        else if (type == VariantType::Double)
+        {
+            //                    auto values = SortVariants<double>(dataHistory);
+            //                    return new Variant(values.at(values.size()/2));
+        }
+        else if (type == VariantType::Int)
+        {
+            //                    auto values = SortVariants<int>(dataHistory);
+            //                    return new Variant(values.at(values.size()/2));
+        }
+
+        return MedianFilter::calculate(c);
+    }
+
+
+    ParameterTypeList PoseMedianFilter::getSupportedTypes(const Ice::Current& c) const
+    {
+        ParameterTypeList result = MedianFilter::getSupportedTypes(c);
+        result.push_back(VariantType::Vector3);
+        result.push_back(VariantType::FramedDirection);
+        result.push_back(VariantType::FramedPosition);
+        return result;
+    }
+
+}
diff --git a/source/RobotAPI/libraries/core/observerfilters/PoseMedianFilter.h b/source/RobotAPI/libraries/core/observerfilters/PoseMedianFilter.h
index 33bbed17812e9c8d06336da6ce37ca9b7e73703e..bc03128714c8685f07b45b09e1e41996437e697f 100644
--- a/source/RobotAPI/libraries/core/observerfilters/PoseMedianFilter.h
+++ b/source/RobotAPI/libraries/core/observerfilters/PoseMedianFilter.h
@@ -23,9 +23,10 @@
  */
 #pragma once
 
+#include <RobotAPI/interface/core/FramedPoseBase.h>
+
 #include <ArmarXCore/observers/filters/MedianFilter.h>
-#include <RobotAPI/libraries/core/FramedPose.h>
-#include <RobotAPI/interface/core/PoseBase.h>
+
 
 namespace armarx::filters
 {
@@ -41,108 +42,17 @@ namespace armarx::filters
         public MedianFilter
     {
     public:
-        PoseMedianFilter(int windowSize = 11)
-        {
-            this->windowFilterSize = windowSize;
-        }
+        PoseMedianFilter(int windowSize = 11);
 
         // DatafieldFilterBase interface
     public:
-        VariantBasePtr calculate(const Ice::Current& c) const override
-        {
-            std::unique_lock lock(historyMutex);
-
-            if (dataHistory.size() == 0)
-            {
-                return NULL;
-            }
-
-            VariantTypeId type = dataHistory.begin()->second->getType();
-
-            if ((type == VariantType::Vector3) || (type == VariantType::FramedDirection) || (type == VariantType::FramedPosition))
-            {
-
-                Eigen::Vector3f vec;
-                vec.setZero();
-                std::string frame = "";
-                std::string agent = "";
-                VariantPtr var = VariantPtr::dynamicCast(dataHistory.begin()->second);
-
-                if (type == VariantType::FramedDirection)
-                {
-                    FramedDirectionPtr p = var->get<FramedDirection>();
-                    frame = p->frame;
-                    agent = p->agent;
-                }
-                else if (type == VariantType::FramedPosition)
-                {
-                    FramedPositionPtr p = var->get<FramedPosition>();
-                    frame = p->frame;
-                    agent = p->agent;
-                }
-
-                for (int i = 0; i < 3; ++i)
-                {
-                    std::vector<double> values;
-
-                    for (auto v : dataHistory)
-                    {
-                        VariantPtr v2 = VariantPtr::dynamicCast(v.second);
-                        values.push_back(v2->get<Vector3>()->toEigen()[i]);
-                    }
-
-                    std::sort(values.begin(), values.end());
-                    vec[i] = values.at(values.size() / 2);
-                }
-
-                if (type == VariantType::Vector3)
-                {
-                    Vector3Ptr vecVar = new Vector3(vec);
-                    return new Variant(vecVar);
-                }
-                else if (type == VariantType::FramedDirection)
-                {
-
-                    FramedDirectionPtr vecVar = new FramedDirection(vec, frame, agent);
-                    return new Variant(vecVar);
-                }
-                else if (type == VariantType::FramedPosition)
-                {
-                    FramedPositionPtr vecVar = new FramedPosition(vec, frame, agent);
-                    return new Variant(vecVar);
-                }
-                else
-                {
-                    ARMARX_WARNING_S << "Implementation missing here";
-                    return NULL;
-                }
-            }
-            else if (type == VariantType::Double)
-            {
-                //                    auto values = SortVariants<double>(dataHistory);
-                //                    return new Variant(values.at(values.size()/2));
-            }
-            else if (type == VariantType::Int)
-            {
-                //                    auto values = SortVariants<int>(dataHistory);
-                //                    return new Variant(values.at(values.size()/2));
-            }
-
-            return MedianFilter::calculate(c);
-        }
+        VariantBasePtr calculate(const Ice::Current& c) const override;
 
         /**
          * @brief This filter supports: Vector3, FramedDirection, FramedPosition
          * @return List of VariantTypes
          */
-        ParameterTypeList getSupportedTypes(const Ice::Current& c) const override
-        {
-            ParameterTypeList result = MedianFilter::getSupportedTypes(c);
-            result.push_back(VariantType::Vector3);
-            result.push_back(VariantType::FramedDirection);
-            result.push_back(VariantType::FramedPosition);
-            return result;
-        }
+        ParameterTypeList getSupportedTypes(const Ice::Current& c) const override;
 
     };
 
diff --git a/source/RobotAPI/libraries/core/observerfilters/PoseMedianOffsetFilter.cpp b/source/RobotAPI/libraries/core/observerfilters/PoseMedianOffsetFilter.cpp
index e4d4a1444065ad83bbc681fa83832bca5ccabb29..3fffba8a157154642b2f7548ed055346b86fb5ef 100644
--- a/source/RobotAPI/libraries/core/observerfilters/PoseMedianOffsetFilter.cpp
+++ b/source/RobotAPI/libraries/core/observerfilters/PoseMedianOffsetFilter.cpp
@@ -23,6 +23,8 @@
  */
 #include "PoseMedianOffsetFilter.h"
 
+#include <ArmarXCore/core/logging/Logging.h>
+
 using namespace armarx;
 using namespace filters;
 
diff --git a/source/RobotAPI/libraries/core/remoterobot/RemoteRobotNode.cpp b/source/RobotAPI/libraries/core/remoterobot/RemoteRobotNode.cpp
index 3452cb93862066c3409e35004a2b8f26ed8eca90..1b002dc20e5d631dec870f4f935c2a1a19e5cc36 100644
--- a/source/RobotAPI/libraries/core/remoterobot/RemoteRobotNode.cpp
+++ b/source/RobotAPI/libraries/core/remoterobot/RemoteRobotNode.cpp
@@ -27,8 +27,10 @@
 
 #include <RobotAPI/libraries/core/FramedPose.h>
 
+#include <ArmarXCore/core/logging/Logging.h>
 #include <ArmarXCore/interface/core/BasicTypes.h>
 
+
 namespace armarx
 {