From 7e7cfcf3dd41380502d91487522a69fbc587e3f7 Mon Sep 17 00:00:00 2001
From: Fabian Reister <fabian.reister@kit.edu>
Date: Thu, 5 Dec 2024 22:21:20 +0100
Subject: [PATCH 1/4] cleaning up headers in skills framework

---
 .../libraries/skills/core/CMakeLists.txt      |   4 -
 .../libraries/skills/core/ProviderID.h        |   3 -
 .../libraries/skills/core/ProviderInfo.h      |  12 +-
 .../RobotAPI/libraries/skills/core/Skill.cpp  |  42 +++++++
 source/RobotAPI/libraries/skills/core/Skill.h |  54 ++------
 .../skills/core/SkillDescription.cpp          |   9 ++
 .../libraries/skills/core/SkillDescription.h  |  10 +-
 .../skills/core/SkillExecutionID.cpp          |  19 +++
 .../libraries/skills/core/SkillExecutionID.h  |  28 +----
 .../skills/core/SkillExecutionRequest.h       |  14 +--
 .../libraries/skills/core/SkillID.cpp         |  26 ++++
 .../RobotAPI/libraries/skills/core/SkillID.h  |  29 +----
 .../skills/core/SkillParameterization.cpp     |   8 --
 .../skills/core/SkillParameterization.h       |  14 ---
 .../skills/core/SkillPreparationInput.cpp     |   8 --
 .../skills/core/SkillPreparationInput.h       |  15 ---
 .../skills/core/SkillStatusUpdate.cpp         |  98 +++++++++++++++
 .../libraries/skills/core/SkillStatusUpdate.h | 115 +++---------------
 .../libraries/skills/core/error/Exception.cpp |  31 +++++
 .../libraries/skills/core/error/Exception.h   |  31 ++---
 .../skills/provider/SimplePeriodicSkill.cpp   |   1 +
 .../provider/SimplePeriodicSpecializedSkill.h |   1 +
 .../provider/SkillProviderComponentPlugin.h   |  15 +--
 .../blueprints/SkillWithContextBlueprint.h    |   4 +-
 .../detail/SkillImplementationWrapper.cpp     |   2 +
 .../detail/SkillImplementationWrapper.h       |   8 +-
 26 files changed, 293 insertions(+), 308 deletions(-)
 delete mode 100644 source/RobotAPI/libraries/skills/core/SkillParameterization.cpp
 delete mode 100644 source/RobotAPI/libraries/skills/core/SkillParameterization.h
 delete mode 100644 source/RobotAPI/libraries/skills/core/SkillPreparationInput.cpp
 delete mode 100644 source/RobotAPI/libraries/skills/core/SkillPreparationInput.h

diff --git a/source/RobotAPI/libraries/skills/core/CMakeLists.txt b/source/RobotAPI/libraries/skills/core/CMakeLists.txt
index f757e4b5d..7e5a56deb 100644
--- a/source/RobotAPI/libraries/skills/core/CMakeLists.txt
+++ b/source/RobotAPI/libraries/skills/core/CMakeLists.txt
@@ -23,8 +23,6 @@ armarx_add_library(
         SkillExecutionRequest.cpp
         SkillStatusUpdate.cpp
         SkillExecutionID.cpp
-        SkillPreparationInput.cpp
-        SkillParameterization.cpp
         Skill.cpp
         SkillProxy.cpp
         SkillDescription.cpp
@@ -36,8 +34,6 @@ armarx_add_library(
         SkillExecutionRequest.h
         SkillStatusUpdate.h
         SkillExecutionID.h
-        SkillPreparationInput.h
-        SkillParameterization.h
         Skill.h
         SkillProxy.h
         SkillDescription.h
diff --git a/source/RobotAPI/libraries/skills/core/ProviderID.h b/source/RobotAPI/libraries/skills/core/ProviderID.h
index 5687f6491..d7710d96e 100644
--- a/source/RobotAPI/libraries/skills/core/ProviderID.h
+++ b/source/RobotAPI/libraries/skills/core/ProviderID.h
@@ -1,10 +1,7 @@
 #pragma once
 
-#include <string>
-#include <vector>
 
 #include <RobotAPI/interface/skills/SkillManagerInterface.h>
-#include <RobotAPI/libraries/aron/core/data/variant/container/Dict.h>
 
 namespace armarx
 {
diff --git a/source/RobotAPI/libraries/skills/core/ProviderInfo.h b/source/RobotAPI/libraries/skills/core/ProviderInfo.h
index 438a2cf9d..b4a9c0470 100644
--- a/source/RobotAPI/libraries/skills/core/ProviderInfo.h
+++ b/source/RobotAPI/libraries/skills/core/ProviderInfo.h
@@ -1,16 +1,8 @@
 #pragma once
 
-#include <string>
-#include <vector>
 
-#include <SimoxUtility/algorithm/string.h>
-
-#include <RobotAPI/interface/skills/SkillManagerInterface.h>
-
-#include "ProviderID.h"
-#include "SkillDescription.h"
-#include "SkillID.h"
-#include "error/Exception.h"
+#include <RobotAPI/libraries/skills/core/ProviderID.h>
+#include <RobotAPI/libraries/skills/core/SkillDescription.h>
 
 namespace armarx
 {
diff --git a/source/RobotAPI/libraries/skills/core/Skill.cpp b/source/RobotAPI/libraries/skills/core/Skill.cpp
index cf6c57f98..3a279a8b8 100644
--- a/source/RobotAPI/libraries/skills/core/Skill.cpp
+++ b/source/RobotAPI/libraries/skills/core/Skill.cpp
@@ -1,4 +1,5 @@
 #include "Skill.h"
+#include <ArmarXCore/core/time/Metronome.h>
 
 #include <RobotAPI/libraries/skills/core/error/Exception.h>
 
@@ -450,5 +451,46 @@ namespace armarx
                              << "'. Please overwrite this method.";
             return {.status = TerminatedSkillStatus::Succeeded, .data = nullptr};
         }
+
+        void
+        Skill::setProviderId(const skills::ProviderID& pid)
+        {
+            description.skillId.providerId = pid;
+        }
+
+        void
+        Skill::setCallback(const CallbackT& callback)
+        {
+            this->callback = callback;
+        }
+
+        void
+        Skill::setManager(const manager::dti::SkillManagerInterfacePrx& manager)
+        {
+            this->manager = manager;
+        }
+
+        void
+        Skill::setExecutorName(const std::string& executorName)
+        {
+            this->executorName = executorName;
+        }
+
+        SkillDescription
+        Skill::getSkillDescription() const
+        {
+            return description;
+        }
+
+        SkillID
+        Skill::getSkillId() const
+        {
+            return description.skillId;
+        }
+
+        Skill::~Skill()
+        {
+            //ARMARX_IMPORTANT << "DESTROY SKILL " << getSkillId();
+        }
     } // namespace skills
 } // namespace armarx
diff --git a/source/RobotAPI/libraries/skills/core/Skill.h b/source/RobotAPI/libraries/skills/core/Skill.h
index d9edf529c..9be478628 100644
--- a/source/RobotAPI/libraries/skills/core/Skill.h
+++ b/source/RobotAPI/libraries/skills/core/Skill.h
@@ -4,17 +4,12 @@
 #include <mutex>
 #include <thread>
 
-#include <ArmarXCore/core/logging/Logging.h>
-#include <ArmarXCore/core/time/DateTime.h>
-#include <ArmarXCore/core/time/Metronome.h>
+#include <ArmarXCore/core/time/Frequency.h>
 
-#include <RobotAPI/interface/skills/SkillManagerInterface.h>
-#include <RobotAPI/libraries/aron/core/data/variant/All.h>
+#include <RobotAPI/libraries/skills/core/SkillDescription.h>
+#include <RobotAPI/libraries/skills/core/SkillProxy.h>
+#include <RobotAPI/libraries/skills/core/SkillStatusUpdate.h>
 
-#include "SkillDescription.h"
-#include "SkillID.h"
-#include "SkillProxy.h"
-#include "SkillStatusUpdate.h"
 
 namespace armarx
 {
@@ -61,50 +56,23 @@ namespace armarx
             Skill(const SkillDescription&);
 
             /// Virtual destructor of a skill
-            virtual ~Skill()
-            {
-                //ARMARX_IMPORTANT << "DESTROY SKILL " << getSkillId();
-            }
+            virtual ~Skill();
 
             /// Get the id of the skill
-            SkillID
-            getSkillId() const
-            {
-                return description.skillId;
-            }
+            SkillID getSkillId() const;
 
             /// Get the description of a skill
-            SkillDescription
-            getSkillDescription() const
-            {
-                return description;
-            }
+            SkillDescription getSkillDescription() const;
 
             /// Set the provider id of the description of the skill.
             /// This method is called when creating a skill in a skill provider
-            void
-            setProviderId(const skills::ProviderID& pid)
-            {
-                description.skillId.providerId = pid;
-            }
+            void setProviderId(const skills::ProviderID& pid);
 
-            void
-            setCallback(const CallbackT& callback)
-            {
-                this->callback = callback;
-            }
+            void setCallback(const CallbackT& callback);
 
-            void
-            setManager(const manager::dti::SkillManagerInterfacePrx& manager)
-            {
-                this->manager = manager;
-            }
+            void setManager(const manager::dti::SkillManagerInterfacePrx& manager);
 
-            void
-            setExecutorName(const std::string& executorName)
-            {
-                this->executorName = executorName;
-            }
+            void setExecutorName(const std::string& executorName);
 
             /// Prepare a skill once. This method is called in a loop as long as it returns RUNNING
             /// If the loop does not terminate with SUCCEDED the skill execution is failed.
diff --git a/source/RobotAPI/libraries/skills/core/SkillDescription.cpp b/source/RobotAPI/libraries/skills/core/SkillDescription.cpp
index 2fa37b33c..c7d5222e4 100644
--- a/source/RobotAPI/libraries/skills/core/SkillDescription.cpp
+++ b/source/RobotAPI/libraries/skills/core/SkillDescription.cpp
@@ -65,5 +65,14 @@ namespace armarx
                 .parametersType = armarx::aron::type::Object::FromAronObjectDTO(i.parametersType),
                 .resultType = armarx::aron::type::Object::FromAronObjectDTO(i.resultType)};
         }
+
+        bool
+        SkillDescription::operator==(const SkillDescription& other) const
+        {
+            return this->skillId == other.skillId && this->description == other.description &&
+                   this->rootProfileDefaults == other.rootProfileDefaults &&
+                   this->timeout == other.timeout && this->parametersType == other.parametersType &&
+                   this->resultType == other.resultType;
+        }
     } // namespace skills
 } // namespace armarx
diff --git a/source/RobotAPI/libraries/skills/core/SkillDescription.h b/source/RobotAPI/libraries/skills/core/SkillDescription.h
index f65ba3f45..a6f33333f 100644
--- a/source/RobotAPI/libraries/skills/core/SkillDescription.h
+++ b/source/RobotAPI/libraries/skills/core/SkillDescription.h
@@ -30,15 +30,7 @@ namespace armarx
                                             const std::optional<ProviderID>& = std::nullopt);
             static SkillDescription FromIce(const manager::dto::SkillDescription& i);
 
-            bool
-            operator==(const SkillDescription& other) const
-            {
-                return this->skillId == other.skillId && this->description == other.description &&
-                       this->rootProfileDefaults == other.rootProfileDefaults &&
-                       this->timeout == other.timeout &&
-                       this->parametersType == other.parametersType &&
-                       this->resultType == other.resultType;
-            }
+            bool operator==(const SkillDescription& other) const;
         };
 
         template <class T>
diff --git a/source/RobotAPI/libraries/skills/core/SkillExecutionID.cpp b/source/RobotAPI/libraries/skills/core/SkillExecutionID.cpp
index 2bf5f3235..b93ef522c 100644
--- a/source/RobotAPI/libraries/skills/core/SkillExecutionID.cpp
+++ b/source/RobotAPI/libraries/skills/core/SkillExecutionID.cpp
@@ -1,5 +1,7 @@
 #include "SkillExecutionID.h"
 
+#include <ArmarXCore/core/time/ice_conversions.h>
+
 namespace armarx
 {
     namespace skills
@@ -51,5 +53,22 @@ namespace armarx
                    executionStartedTime.toDateTimeString() + EXIT_SEPARATOR;
         }
 
+        bool
+        SkillExecutionID::operator<=(const SkillExecutionID& other) const
+        {
+            return this->executionStartedTime <= other.executionStartedTime;
+        }
+
+        bool
+        SkillExecutionID::operator<(const SkillExecutionID& other) const
+        {
+            return this->executionStartedTime < other.executionStartedTime;
+        }
+
+        bool
+        SkillExecutionID::operator==(const SkillExecutionID& other) const
+        {
+            return this->toString() == other.toString();
+        }
     } // namespace skills
 } // namespace armarx
diff --git a/source/RobotAPI/libraries/skills/core/SkillExecutionID.h b/source/RobotAPI/libraries/skills/core/SkillExecutionID.h
index 39f3bc008..7a7d5e9e1 100644
--- a/source/RobotAPI/libraries/skills/core/SkillExecutionID.h
+++ b/source/RobotAPI/libraries/skills/core/SkillExecutionID.h
@@ -1,16 +1,12 @@
 #pragma once
 
 #include <string>
-#include <vector>
 
 #include <ArmarXCore/core/time/DateTime.h>
-#include <ArmarXCore/core/time/ice_conversions.h>
 
 #include <RobotAPI/interface/skills/SkillProviderInterface.h>
 #include <RobotAPI/libraries/aron/core/data/variant/container/Dict.h>
-
-#include "SkillID.h"
-#include "SkillParameterization.h"
+#include <RobotAPI/libraries/skills/core/SkillID.h>
 
 namespace armarx
 {
@@ -27,23 +23,11 @@ namespace armarx
             static const constexpr char* EXIT_SEPARATOR = "]";
             static const constexpr char* SEPARATOR = "@";
 
-            bool
-            operator==(const SkillExecutionID& other) const
-            {
-                return this->toString() == other.toString();
-            }
-
-            bool
-            operator<(const SkillExecutionID& other) const
-            {
-                return this->executionStartedTime < other.executionStartedTime;
-            }
-
-            bool
-            operator<=(const SkillExecutionID& other) const
-            {
-                return this->executionStartedTime <= other.executionStartedTime;
-            }
+            bool operator==(const SkillExecutionID& other) const;
+
+            bool operator<(const SkillExecutionID& other) const;
+
+            bool operator<=(const SkillExecutionID& other) const;
 
             skills::manager::dto::SkillExecutionID toManagerIce() const;
 
diff --git a/source/RobotAPI/libraries/skills/core/SkillExecutionRequest.h b/source/RobotAPI/libraries/skills/core/SkillExecutionRequest.h
index d1f5bbcdd..453291831 100644
--- a/source/RobotAPI/libraries/skills/core/SkillExecutionRequest.h
+++ b/source/RobotAPI/libraries/skills/core/SkillExecutionRequest.h
@@ -1,18 +1,10 @@
 #pragma once
 
-#include <string>
-#include <vector>
-
-#include <SimoxUtility/algorithm/string.h>
-
-#include <ArmarXCore/core/time/DateTime.h>
-#include <ArmarXCore/core/time/ice_conversions.h>
-
 #include <RobotAPI/interface/skills/SkillManagerInterface.h>
+#include <RobotAPI/interface/skills/SkillProviderInterface.h>
 #include <RobotAPI/libraries/aron/core/data/variant/container/Dict.h>
-
-#include "SkillID.h"
-#include "error/Exception.h"
+#include <RobotAPI/libraries/skills/core/ProviderID.h>
+#include <RobotAPI/libraries/skills/core/SkillID.h>
 
 namespace armarx
 {
diff --git a/source/RobotAPI/libraries/skills/core/SkillID.cpp b/source/RobotAPI/libraries/skills/core/SkillID.cpp
index 2bf5cb559..87fa6cd75 100644
--- a/source/RobotAPI/libraries/skills/core/SkillID.cpp
+++ b/source/RobotAPI/libraries/skills/core/SkillID.cpp
@@ -1,5 +1,9 @@
 #include "SkillID.h"
 
+#include <optional>
+
+#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
+
 namespace armarx
 {
     namespace skills
@@ -69,6 +73,28 @@ namespace armarx
             }
             return NAME_SEPARATOR + skillName;
         }
+
+        bool
+        SkillID::isFullySpecified() const
+        {
+            return isSkillSpecified() and isProviderSpecified();
+        }
+
+        bool
+        SkillID::isSkillSpecified() const
+        {
+            return not skillName.empty();
+        }
+
+        bool
+        SkillID::isProviderSpecified() const
+        {
+            if (not providerId.has_value())
+            {
+                return false;
+            }
+            return not providerId->providerName.empty();
+        }
     } // namespace skills
 
     std::ostream&
diff --git a/source/RobotAPI/libraries/skills/core/SkillID.h b/source/RobotAPI/libraries/skills/core/SkillID.h
index 8bf5eb0f3..1de4e5fc7 100644
--- a/source/RobotAPI/libraries/skills/core/SkillID.h
+++ b/source/RobotAPI/libraries/skills/core/SkillID.h
@@ -1,8 +1,7 @@
 #pragma once
 
 #include <string>
-
-#include <SimoxUtility/algorithm/string.h>
+#include <optional>
 
 #include <RobotAPI/interface/skills/SkillManagerInterface.h>
 
@@ -23,27 +22,11 @@ namespace armarx
             bool operator<(const SkillID& other) const;
             bool operator<=(const SkillID& other) const;
 
-            bool
-            isFullySpecified() const
-            {
-                return isSkillSpecified() and isProviderSpecified();
-            }
-
-            bool
-            isSkillSpecified() const
-            {
-                return not skillName.empty();
-            }
-
-            bool
-            isProviderSpecified() const
-            {
-                if (not providerId.has_value())
-                {
-                    return false;
-                }
-                return not providerId->providerName.empty();
-            }
+            bool isFullySpecified() const;
+
+            bool isSkillSpecified() const;
+
+            bool isProviderSpecified() const;
 
             manager::dto::SkillID toManagerIce() const;
             provider::dto::SkillID toProviderIce() const;
diff --git a/source/RobotAPI/libraries/skills/core/SkillParameterization.cpp b/source/RobotAPI/libraries/skills/core/SkillParameterization.cpp
deleted file mode 100644
index d0ec681e2..000000000
--- a/source/RobotAPI/libraries/skills/core/SkillParameterization.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "SkillParameterization.h"
-
-namespace armarx
-{
-    namespace skills
-    {
-    }
-} // namespace armarx
diff --git a/source/RobotAPI/libraries/skills/core/SkillParameterization.h b/source/RobotAPI/libraries/skills/core/SkillParameterization.h
deleted file mode 100644
index 9b54b3fff..000000000
--- a/source/RobotAPI/libraries/skills/core/SkillParameterization.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#pragma once
-
-#include <string>
-#include <vector>
-
-#include <RobotAPI/interface/skills/SkillProviderInterface.h>
-#include <RobotAPI/libraries/aron/core/data/variant/container/Dict.h>
-
-namespace armarx
-{
-    namespace skills
-    {
-    } // namespace skills
-} // namespace armarx
diff --git a/source/RobotAPI/libraries/skills/core/SkillPreparationInput.cpp b/source/RobotAPI/libraries/skills/core/SkillPreparationInput.cpp
deleted file mode 100644
index d0ec681e2..000000000
--- a/source/RobotAPI/libraries/skills/core/SkillPreparationInput.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "SkillParameterization.h"
-
-namespace armarx
-{
-    namespace skills
-    {
-    }
-} // namespace armarx
diff --git a/source/RobotAPI/libraries/skills/core/SkillPreparationInput.h b/source/RobotAPI/libraries/skills/core/SkillPreparationInput.h
deleted file mode 100644
index b5cc2bb20..000000000
--- a/source/RobotAPI/libraries/skills/core/SkillPreparationInput.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#pragma once
-
-#include <string>
-#include <vector>
-
-#include <RobotAPI/interface/skills/SkillProviderInterface.h>
-#include <RobotAPI/libraries/aron/core/data/variant/container/Dict.h>
-
-namespace armarx
-{
-    namespace skills
-    {
-
-    } // namespace skills
-} // namespace armarx
diff --git a/source/RobotAPI/libraries/skills/core/SkillStatusUpdate.cpp b/source/RobotAPI/libraries/skills/core/SkillStatusUpdate.cpp
index 8e5ade186..2f57db394 100644
--- a/source/RobotAPI/libraries/skills/core/SkillStatusUpdate.cpp
+++ b/source/RobotAPI/libraries/skills/core/SkillStatusUpdate.cpp
@@ -406,5 +406,103 @@ namespace armarx
             return ret;
         }
 
+        bool
+        SkillStatusUpdate::operator<(const SkillStatusUpdate& o) const
+        {
+            if (!hasBeenConstructed() and o.hasBeenConstructed())
+            {
+                return true;
+            }
+            if (!hasBeenInitialized() and o.hasBeenInitialized())
+            {
+                return true;
+            }
+            if (!hasBeenPrepared() and o.hasBeenPrepared())
+            {
+                return true;
+            }
+            if (!hasBeenRunning() and o.hasBeenRunning())
+            {
+                return true;
+            }
+            if (!hasBeenTerminated() and o.hasBeenTerminated())
+            {
+                return true;
+            }
+            return false;
+        }
+
+        bool
+        SkillStatusUpdate::operator<=(const SkillStatusUpdate& o) const
+        {
+            if (status == o.status)
+            {
+                return true;
+            }
+            return *this < o;
+        }
+
+        bool
+        SkillStatusUpdate::hasBeenConstructed() const
+        {
+            return status != SkillStatus::Constructing;
+        }
+
+        bool
+        SkillStatusUpdate::hasBeenInitialized() const
+        {
+            return status != SkillStatus::Initializing && hasBeenConstructed();
+        }
+
+        bool
+        SkillStatusUpdate::hasBeenPrepared() const
+        {
+            return status != SkillStatus::Preparing && hasBeenInitialized();
+        }
+
+        bool
+        SkillStatusUpdate::hasBeenRunning() const
+        {
+            return status != SkillStatus::Running || hasBeenPrepared();
+        }
+
+        bool
+        SkillStatusUpdate::hasBeenTerminated() const
+        {
+            return status == SkillStatus::Succeeded || status == SkillStatus::Failed ||
+                   status == SkillStatus::Aborted;
+        }
+
+        bool
+        SkillStatusUpdate::hasBeenSucceeded() const
+        {
+            return status == SkillStatus::Succeeded;
+        }
+
+        bool
+        ActiveOrTerminatedSkillStatusUpdate::hasBeenTerminated() const
+        {
+            return status == ActiveOrTerminatedSkillStatus::Succeeded ||
+                   status == ActiveOrTerminatedSkillStatus::Failed ||
+                   status == ActiveOrTerminatedSkillStatus::Aborted;
+        }
+
+        bool
+        ActiveOrTerminatedSkillStatusUpdate::hasBeenSucceeded() const
+        {
+            return status == ActiveOrTerminatedSkillStatus::Succeeded;
+        }
+
+        bool
+        TerminatedSkillStatusUpdate::hasBeenTerminated() const
+        {
+            return true;
+        }
+
+        bool
+        TerminatedSkillStatusUpdate::hasBeenSucceeded() const
+        {
+            return status == TerminatedSkillStatus::Succeeded;
+        }
     } // namespace skills
 } // namespace armarx
diff --git a/source/RobotAPI/libraries/skills/core/SkillStatusUpdate.h b/source/RobotAPI/libraries/skills/core/SkillStatusUpdate.h
index f6318d5c1..4ce5cba6a 100644
--- a/source/RobotAPI/libraries/skills/core/SkillStatusUpdate.h
+++ b/source/RobotAPI/libraries/skills/core/SkillStatusUpdate.h
@@ -75,17 +75,9 @@ namespace armarx
         {
             TerminatedSkillStatus status = TerminatedSkillStatus::Failed;
 
-            bool
-            hasBeenTerminated() const
-            {
-                return true;
-            }
-
-            bool
-            hasBeenSucceeded() const
-            {
-              return status == TerminatedSkillStatus::Succeeded;
-            }
+            bool hasBeenTerminated() const;
+
+            bool hasBeenSucceeded() const;
 
             manager::dto::SkillStatusUpdate toManagerIce() const;
 
@@ -104,19 +96,9 @@ namespace armarx
         {
             ActiveOrTerminatedSkillStatus status = ActiveOrTerminatedSkillStatus::Failed;
 
-            bool
-            hasBeenTerminated() const
-            {
-                return status == ActiveOrTerminatedSkillStatus::Succeeded ||
-                       status == ActiveOrTerminatedSkillStatus::Failed ||
-                       status == ActiveOrTerminatedSkillStatus::Aborted;
-            }
+            bool hasBeenTerminated() const;
 
-            bool
-            hasBeenSucceeded() const
-            {
-              return status == ActiveOrTerminatedSkillStatus::Succeeded;
-            }
+            bool hasBeenSucceeded() const;
 
             manager::dto::SkillStatusUpdate toManagerIce() const;
 
@@ -135,78 +117,21 @@ namespace armarx
         {
             SkillStatus status = SkillStatus::Constructing;
 
-            bool
-            operator<(const SkillStatusUpdate& o) const
-            {
-                if (!hasBeenConstructed() and o.hasBeenConstructed())
-                {
-                    return true;
-                }
-                if (!hasBeenInitialized() and o.hasBeenInitialized())
-                {
-                    return true;
-                }
-                if (!hasBeenPrepared() and o.hasBeenPrepared())
-                {
-                    return true;
-                }
-                if (!hasBeenRunning() and o.hasBeenRunning())
-                {
-                    return true;
-                }
-                if (!hasBeenTerminated() and o.hasBeenTerminated())
-                {
-                    return true;
-                }
-                return false;
-            }
-
-            bool
-            operator<=(const SkillStatusUpdate& o) const
-            {
-                if (status == o.status)
-                {
-                    return true;
-                }
-                return *this < o;
-            }
-
-            bool
-            hasBeenConstructed() const
-            {
-                return status != SkillStatus::Constructing;
-            }
-
-            bool
-            hasBeenInitialized() const
-            {
-                return status != SkillStatus::Initializing && hasBeenConstructed();
-            }
-
-            bool
-            hasBeenPrepared() const
-            {
-                return status != SkillStatus::Preparing && hasBeenInitialized();
-            }
-
-            bool
-            hasBeenRunning() const
-            {
-                return status != SkillStatus::Running || hasBeenPrepared();
-            }
-
-            bool
-            hasBeenTerminated() const
-            {
-                return status == SkillStatus::Succeeded || status == SkillStatus::Failed ||
-                       status == SkillStatus::Aborted;
-            }
-
-            bool
-            hasBeenSucceeded() const
-            {
-              return status == SkillStatus::Succeeded;
-            }
+            bool operator<(const SkillStatusUpdate& o) const;
+
+            bool operator<=(const SkillStatusUpdate& o) const;
+
+            bool hasBeenConstructed() const;
+
+            bool hasBeenInitialized() const;
+
+            bool hasBeenPrepared() const;
+
+            bool hasBeenRunning() const;
+
+            bool hasBeenTerminated() const;
+
+            bool hasBeenSucceeded() const;
 
             manager::dto::SkillStatusUpdate toManagerIce() const;
 
diff --git a/source/RobotAPI/libraries/skills/core/error/Exception.cpp b/source/RobotAPI/libraries/skills/core/error/Exception.cpp
index 32521fede..c2668867d 100644
--- a/source/RobotAPI/libraries/skills/core/error/Exception.cpp
+++ b/source/RobotAPI/libraries/skills/core/error/Exception.cpp
@@ -1,2 +1,33 @@
 
 #include "Exception.h"
+
+armarx::skills::error::SkillException::SkillException(const std::string& prettymethod,
+                                                      const std::string& reason) :
+    LocalException(prettymethod + ": " + reason + ".")
+{
+}
+
+armarx::skills::error::SkillNotFoundException::SkillNotFoundException(
+    const std::string& prettymethod,
+    const std::string& reason) :
+    SkillException(prettymethod, reason)
+{
+}
+
+armarx::skills::error::SkillAbortedException::SkillAbortedException(const std::string& prettymethod,
+                                                                    const std::string& reason) :
+    SkillException(prettymethod, reason)
+{
+}
+
+armarx::skills::error::SkillFailedException::SkillFailedException(const std::string& prettymethod,
+                                                                  const std::string& reason) :
+    SkillException(prettymethod, reason)
+{
+}
+
+armarx::skills::error::NotImplementedYetException::NotImplementedYetException(
+    const std::string& prettymethod) :
+    SkillException(prettymethod, "This method is not yet implemented!")
+{
+}
diff --git a/source/RobotAPI/libraries/skills/core/error/Exception.h b/source/RobotAPI/libraries/skills/core/error/Exception.h
index d9107d821..66e72e418 100644
--- a/source/RobotAPI/libraries/skills/core/error/Exception.h
+++ b/source/RobotAPI/libraries/skills/core/error/Exception.h
@@ -23,12 +23,10 @@
 
 #pragma once
 
-// STD/STL
+
 #include <string>
 
-// ArmarX
-#include <ArmarXCore/core/exceptions/Exception.h>
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
+#include <ArmarXCore/core/exceptions/LocalException.h>
 
 namespace armarx::skills::error
 {
@@ -40,10 +38,7 @@ namespace armarx::skills::error
     public:
         SkillException() = delete;
 
-        SkillException(const std::string& prettymethod, const std::string& reason) :
-            LocalException(prettymethod + ": " + reason + ".")
-        {
-        }
+        SkillException(const std::string& prettymethod, const std::string& reason);
     };
 
     /**
@@ -54,10 +49,7 @@ namespace armarx::skills::error
     public:
         SkillNotFoundException() = delete;
 
-        SkillNotFoundException(const std::string& prettymethod, const std::string& reason) :
-            SkillException(prettymethod, reason)
-        {
-        }
+        SkillNotFoundException(const std::string& prettymethod, const std::string& reason);
     };
 
     class SkillAbortedException : public SkillException
@@ -65,10 +57,7 @@ namespace armarx::skills::error
     public:
         SkillAbortedException() = delete;
 
-        SkillAbortedException(const std::string& prettymethod, const std::string& reason) :
-            SkillException(prettymethod, reason)
-        {
-        }
+        SkillAbortedException(const std::string& prettymethod, const std::string& reason);
     };
 
     class SkillFailedException : public SkillException
@@ -76,10 +65,7 @@ namespace armarx::skills::error
     public:
         SkillFailedException() = delete;
 
-        SkillFailedException(const std::string& prettymethod, const std::string& reason) :
-            SkillException(prettymethod, reason)
-        {
-        }
+        SkillFailedException(const std::string& prettymethod, const std::string& reason);
     };
 
     /**
@@ -90,9 +76,6 @@ namespace armarx::skills::error
     public:
         NotImplementedYetException() = delete;
 
-        NotImplementedYetException(const std::string& prettymethod) :
-            SkillException(prettymethod, "This method is not yet implemented!")
-        {
-        }
+        NotImplementedYetException(const std::string& prettymethod);
     };
 } // namespace armarx::skills::error
diff --git a/source/RobotAPI/libraries/skills/provider/SimplePeriodicSkill.cpp b/source/RobotAPI/libraries/skills/provider/SimplePeriodicSkill.cpp
index db3c05d51..68b1fb7e1 100644
--- a/source/RobotAPI/libraries/skills/provider/SimplePeriodicSkill.cpp
+++ b/source/RobotAPI/libraries/skills/provider/SimplePeriodicSkill.cpp
@@ -1,4 +1,5 @@
 #include "SimplePeriodicSkill.h"
+#include <ArmarXCore/core/time/Metronome.h>
 
 #include <RobotAPI/libraries/skills/core/error/Exception.h>
 
diff --git a/source/RobotAPI/libraries/skills/provider/SimplePeriodicSpecializedSkill.h b/source/RobotAPI/libraries/skills/provider/SimplePeriodicSpecializedSkill.h
index c0f8b7ebd..37d1e6084 100644
--- a/source/RobotAPI/libraries/skills/provider/SimplePeriodicSpecializedSkill.h
+++ b/source/RobotAPI/libraries/skills/provider/SimplePeriodicSpecializedSkill.h
@@ -1,5 +1,6 @@
 #pragma once
 
+#include <ArmarXCore/core/time/Metronome.h>
 #include <RobotAPI/libraries/skills/core/error/Exception.h>
 #include "PeriodicSkill.h"
 #include "SimpleSpecializedSkill.h"
diff --git a/source/RobotAPI/libraries/skills/provider/SkillProviderComponentPlugin.h b/source/RobotAPI/libraries/skills/provider/SkillProviderComponentPlugin.h
index 858ee511d..21e0d6d97 100644
--- a/source/RobotAPI/libraries/skills/provider/SkillProviderComponentPlugin.h
+++ b/source/RobotAPI/libraries/skills/provider/SkillProviderComponentPlugin.h
@@ -1,11 +1,7 @@
 #pragma once
 
 #include <experimental/memory>
-#include <functional>
-#include <queue>
 #include <shared_mutex>
-#include <thread>
-#include <type_traits>
 
 #include <ArmarXCore/core/ComponentPlugin.h>
 #include <ArmarXCore/core/ManagedIceObject.h>
@@ -14,20 +10,13 @@
 #include <RobotAPI/interface/skills/SkillManagerInterface.h>
 #include <RobotAPI/libraries/aron/core/data/variant/container/Dict.h>
 
-// Include all types of skills
 #include <RobotAPI/libraries/skills/core/Skill.h>
 #include <RobotAPI/libraries/skills/core/SkillExecutionRequest.h>
-#include <RobotAPI/libraries/skills/core/SkillPreparationInput.h>
 
-#include "LambdaSkill.h"
-#include "PeriodicSkill.h"
-#include "PeriodicSpecializedSkill.h"
-#include "SkillFactory.h"
-#include "SpecializedSkill.h"
-
-// Helper wrapper for execution
 #include "detail/SkillImplementationWrapper.h"
 
+#include "LambdaSkill.h"
+
 namespace armarx
 {
     class SkillProviderComponentPluginUser; // forward declaration
diff --git a/source/RobotAPI/libraries/skills/provider/blueprints/SkillWithContextBlueprint.h b/source/RobotAPI/libraries/skills/provider/blueprints/SkillWithContextBlueprint.h
index db852e076..6a6802204 100644
--- a/source/RobotAPI/libraries/skills/provider/blueprints/SkillWithContextBlueprint.h
+++ b/source/RobotAPI/libraries/skills/provider/blueprints/SkillWithContextBlueprint.h
@@ -22,6 +22,8 @@
 
 #pragma once
 
+#include <atomic>
+
 #include <RobotAPI/libraries/skills/provider/SkillFactory.h>
 
 namespace armarx
@@ -79,4 +81,4 @@ namespace armarx
             ContextT context_;
         };
     } // namespace skills
-} // namespace armarx
\ No newline at end of file
+} // namespace armarx
diff --git a/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.cpp b/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.cpp
index 0e1515343..35fc69ddd 100644
--- a/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.cpp
+++ b/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.cpp
@@ -4,6 +4,8 @@
 #include <RobotAPI/libraries/aron/core/data/variant/container/Dict.h>
 
 #include <RobotAPI/libraries/skills/core/aron/SkillErrorResult.aron.generated.h>
+
+
 namespace armarx
 {
     namespace skills::detail
diff --git a/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.h b/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.h
index 935fa227b..8b3f51277 100644
--- a/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.h
+++ b/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.h
@@ -1,12 +1,10 @@
 #pragma once
 
 #include <experimental/memory>
-#include <shared_mutex>
+#include <mutex>
 
-#include <RobotAPI/interface/skills/SkillManagerInterface.h>
-#include <RobotAPI/libraries/skills/core/Skill.h>
-#include <RobotAPI/libraries/skills/core/SkillDescription.h>
-#include <RobotAPI/libraries/skills/core/SkillPreparationInput.h>
+#include <RobotAPI/interface/skills/SkillProviderInterface.h>
+#include <RobotAPI/libraries/aron/core/data/variant/container/Dict.h>
 #include <RobotAPI/libraries/skills/core/SkillStatusUpdate.h>
 #include <RobotAPI/libraries/skills/provider/SkillFactory.h>
 
-- 
GitLab


From a1517faee395c203e9c2ba5a82fb5a59a2378d3a Mon Sep 17 00:00:00 2001
From: Fabian Reister <fabian.reister@kit.edu>
Date: Thu, 5 Dec 2024 22:39:44 +0100
Subject: [PATCH 2/4] aron header cleanup

---
 .../skills/SkillProviderExample/Callback.cpp  |   1 +
 .../converter/json/NLohmannJSONConverter.h    |  25 +----
 .../aron/converter/opencv/OpenCVConverter.h   |  10 +-
 .../aron/converter/pcl/PCLConverter.h         |   4 -
 .../converter/stdstl/StdVectorConverter.h     |   5 -
 .../RobotAPI/libraries/aron/core/Descriptor.h |   7 --
 .../libraries/aron/core/Exception.cpp         | 104 ++++++++++++++++++
 .../RobotAPI/libraries/aron/core/Exception.h  |  92 +++-------------
 source/RobotAPI/libraries/aron/core/Path.h    |   1 -
 .../libraries/aron/core/aron_conversions.h    |   2 -
 source/RobotAPI/libraries/aron/core/rw.h      |   7 --
 .../aron/core/type/variant/Factory.h          |   6 +-
 .../aron/core/type/variant/Variant.cpp        |  34 +++++-
 .../aron/core/type/variant/Variant.h          |  44 ++------
 .../aron/core/type/variant/container/Dict.h   |   1 -
 .../aron/core/type/variant/container/Pair.h   |   1 -
 .../aron/core/type/variant/container/Tuple.h  |   1 -
 .../core/type/variant/detail/AnyVariant.h     |   4 -
 .../type/variant/detail/ContainerVariant.h    |   4 -
 .../core/type/variant/detail/DtoVariant.h     |   5 -
 .../core/type/variant/detail/EnumVariant.h    |   2 -
 .../core/type/variant/detail/NDArrayVariant.h |   2 -
 .../type/variant/detail/PrimitiveVariant.h    |   6 -
 .../type/variant/detail/SpecializedVariant.h  |   7 --
 .../aron/core/type/variant/ndarray/Image.h    |   1 -
 .../aron/core/type/variant/ndarray/NDArray.h  |   1 -
 .../aron/core/type/visitor/Visitor.h          |   4 -
 27 files changed, 169 insertions(+), 212 deletions(-)

diff --git a/source/RobotAPI/components/skills/SkillProviderExample/Callback.cpp b/source/RobotAPI/components/skills/SkillProviderExample/Callback.cpp
index 6dcea52a5..4b3e23d3e 100644
--- a/source/RobotAPI/components/skills/SkillProviderExample/Callback.cpp
+++ b/source/RobotAPI/components/skills/SkillProviderExample/Callback.cpp
@@ -1,5 +1,6 @@
 
 #include "Callback.h"
+#include "RobotAPI/libraries/aron/core/data/variant/primitive/String.h"
 
 namespace armarx::skills::provider
 {
diff --git a/source/RobotAPI/libraries/aron/converter/json/NLohmannJSONConverter.h b/source/RobotAPI/libraries/aron/converter/json/NLohmannJSONConverter.h
index 1e9044cb3..2f4f97e8c 100644
--- a/source/RobotAPI/libraries/aron/converter/json/NLohmannJSONConverter.h
+++ b/source/RobotAPI/libraries/aron/converter/json/NLohmannJSONConverter.h
@@ -1,28 +1,11 @@
 #pragma once
 
-// STD/STL
-#include <memory>
-#include <numeric>
-#include <string>
-
-// Memory
-#include <RobotAPI/libraries/aron/core/data/converter/nlohmannJSON/NlohmannJSONConverter.h>
-#include <RobotAPI/libraries/aron/core/data/converter/variant/VariantConverter.h>
-#include <RobotAPI/libraries/aron/core/data/rw/reader/nlohmannJSON/NlohmannJSONReader.h>
-#include <RobotAPI/libraries/aron/core/data/rw/reader/variant/VariantReader.h>
-#include <RobotAPI/libraries/aron/core/data/rw/writer/nlohmannJSON/NlohmannJSONWriter.h>
-#include <RobotAPI/libraries/aron/core/data/rw/writer/variant/VariantWriter.h>
-#include <RobotAPI/libraries/aron/core/data/variant/All.h>
-#include <RobotAPI/libraries/aron/core/type/converter/nlohmannJSON/NlohmannJSONConverter.h>
-#include <RobotAPI/libraries/aron/core/type/converter/variant/VariantConverter.h>
-#include <RobotAPI/libraries/aron/core/type/rw/reader/nlohmannJSON/NlohmannJSONReader.h>
-#include <RobotAPI/libraries/aron/core/type/rw/reader/variant/VariantReader.h>
-#include <RobotAPI/libraries/aron/core/type/rw/writer/nlohmannJSON/NlohmannJSONWriter.h>
-#include <RobotAPI/libraries/aron/core/type/rw/writer/variant/VariantWriter.h>
-
-// JSON
 #include <SimoxUtility/json/json.hpp>
 
+#include <RobotAPI/libraries/aron/core/Path.h>
+#include <RobotAPI/libraries/aron/core/data/variant/forward_declarations.h>
+#include <RobotAPI/libraries/aron/core/type/variant/forward_declarations.h>
+
 namespace armarx::aron::data::converter
 {
     class AronNlohmannJSONConverter
diff --git a/source/RobotAPI/libraries/aron/converter/opencv/OpenCVConverter.h b/source/RobotAPI/libraries/aron/converter/opencv/OpenCVConverter.h
index 9b3dcc79c..a43b01819 100644
--- a/source/RobotAPI/libraries/aron/converter/opencv/OpenCVConverter.h
+++ b/source/RobotAPI/libraries/aron/converter/opencv/OpenCVConverter.h
@@ -20,18 +20,14 @@
 
 #pragma once
 
-// STD/STL
-#include <memory>
-#include <string>
-
-// OpenCV
 #include <opencv2/core/core.hpp>
 
-// ArmarX
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
+#include <RobotAPI/libraries/aron/core/Path.h>
 #include <RobotAPI/interface/aron.h>
-#include <RobotAPI/libraries/aron/core/data/variant/complex/NDArray.h>
+
+#include <RobotAPI/libraries/aron/core/data/variant/forward_declarations.h>
 
 namespace armarx::aron::data::converter
 {
diff --git a/source/RobotAPI/libraries/aron/converter/pcl/PCLConverter.h b/source/RobotAPI/libraries/aron/converter/pcl/PCLConverter.h
index 77498aaf8..eae562bf4 100644
--- a/source/RobotAPI/libraries/aron/converter/pcl/PCLConverter.h
+++ b/source/RobotAPI/libraries/aron/converter/pcl/PCLConverter.h
@@ -20,16 +20,12 @@
 
 #pragma once
 
-// STD/STL
-#include <memory>
 #include <numeric>
 #include <string>
 
-// Eigen
 #include <pcl/point_cloud.h>
 #include <pcl/point_types.h>
 
-// ArmarX
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
 #include <RobotAPI/interface/aron.h>
diff --git a/source/RobotAPI/libraries/aron/converter/stdstl/StdVectorConverter.h b/source/RobotAPI/libraries/aron/converter/stdstl/StdVectorConverter.h
index 2bc52d046..9ed4eb1c3 100644
--- a/source/RobotAPI/libraries/aron/converter/stdstl/StdVectorConverter.h
+++ b/source/RobotAPI/libraries/aron/converter/stdstl/StdVectorConverter.h
@@ -21,12 +21,7 @@
 
 #pragma once
 
-// STD/STL
-#include <memory>
-#include <numeric>
-#include <string>
 
-// ArmarX
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
 #include <RobotAPI/interface/aron.h>
diff --git a/source/RobotAPI/libraries/aron/core/Descriptor.h b/source/RobotAPI/libraries/aron/core/Descriptor.h
index 5b386f583..e2228b3b5 100644
--- a/source/RobotAPI/libraries/aron/core/Descriptor.h
+++ b/source/RobotAPI/libraries/aron/core/Descriptor.h
@@ -23,17 +23,10 @@
 
 #pragma once
 
-// STD/STL
-#include <memory>
-#include <typeindex>
 #include <typeinfo>
 #include <map>
 #include <string>
 
-// Simox
-#include <SimoxUtility/algorithm/string.h>
-
-// ArmarX
 #include <RobotAPI/interface/aron.h>
 
 namespace armarx::aron::conversion::util
diff --git a/source/RobotAPI/libraries/aron/core/Exception.cpp b/source/RobotAPI/libraries/aron/core/Exception.cpp
index c27cbdfd5..7b11ca07c 100644
--- a/source/RobotAPI/libraries/aron/core/Exception.cpp
+++ b/source/RobotAPI/libraries/aron/core/Exception.cpp
@@ -22,3 +22,107 @@
  */
 
 #include "Exception.h"
+
+armarx::aron::error::AronException::AronException(const std::string& prettymethod,
+                                                  const std::string& reason) :
+    LocalException(prettymethod + ": " + reason + ".")
+{
+}
+
+armarx::aron::error::AronException::AronException(const std::string& prettymethod,
+                                                  const std::string& reason,
+                                                  const Path& path) :
+    LocalException(prettymethod + ": " + reason + ". The path was: " + path.toString())
+{
+}
+
+armarx::aron::error::AronException&
+armarx::aron::error::AronException::operator()(const std::string& additionalMessage)
+{
+    auto currentReason = getReason();
+    if (not additionalMessage.empty())
+    {
+        setReason(currentReason + ". Additional Message: " + additionalMessage);
+    }
+    return *this;
+}
+
+armarx::aron::error::AronEOFException::AronEOFException(const std::string& prettymethod) :
+    AronException(prettymethod,
+                  "REACHED THE END OF A NON VOID METHOD. PERHAPS YOU FORGOT TO ADD A VALUE "
+                  "TO SOME SWITCH-CASE STATEMEMT?.")
+{
+}
+
+armarx::aron::error::NotImplementedYetException::NotImplementedYetException(
+    const std::string& prettymethod) :
+    AronException(prettymethod, "This method is not yet implemented!")
+{
+}
+
+armarx::aron::error::AronNotValidException::AronNotValidException(
+    const std::string& prettymethod,
+    const std::string& reason,
+    const data::dto::GenericDataPtr& data) :
+    AronException(prettymethod, reason + ". The ice_id of the data was: " + data->ice_id())
+{
+}
+
+armarx::aron::error::AronNotValidException::AronNotValidException(
+    const std::string& prettymethod,
+    const std::string& reason,
+    const data::dto::GenericDataPtr& data,
+    const Path& path) :
+    AronException(prettymethod, reason + ". The ice_id of the data was: " + data->ice_id(), path)
+{
+}
+
+armarx::aron::error::AronNotValidException::AronNotValidException(
+    const std::string& prettymethod,
+    const std::string& reason,
+    const type::dto::GenericTypePtr& type) :
+    AronException(prettymethod, reason + ". The ice_id of the type was: " + type->ice_id())
+{
+}
+
+armarx::aron::error::AronNotValidException::AronNotValidException(
+    const std::string& prettymethod,
+    const std::string& reason,
+    const type::dto::GenericTypePtr& type,
+    const Path& path) :
+    AronException(prettymethod, reason + ". The ice_id of the type was: " + type->ice_id(), path)
+{
+}
+
+armarx::aron::error::ValueNotValidException::ValueNotValidException(const std::string& prettymethod,
+                                                                    const std::string& reason,
+                                                                    const std::string& input) :
+    AronException(prettymethod, reason + ". Got: " + input)
+{
+}
+
+armarx::aron::error::ValueNotValidException::ValueNotValidException(const std::string& prettymethod,
+                                                                    const std::string& reason,
+                                                                    const std::string& input,
+                                                                    const Path& path) :
+    AronException(prettymethod, reason + ". Got: " + input, path)
+{
+}
+
+armarx::aron::error::ValueNotValidException::ValueNotValidException(
+    const std::string& prettymethod,
+    const std::string& reason,
+    const std::string& input,
+    const std::string& expectation) :
+    AronException(prettymethod, reason + ". Got: " + input + ". Expected: " + expectation)
+{
+}
+
+armarx::aron::error::ValueNotValidException::ValueNotValidException(const std::string& prettymethod,
+                                                                    const std::string& reason,
+                                                                    const std::string& input,
+                                                                    const std::string& expectation,
+                                                                    const Path& path) :
+    AronException(prettymethod, reason + ". Got: " + input + ". Expected: " + expectation, path)
+{
+}
diff --git a/source/RobotAPI/libraries/aron/core/Exception.h b/source/RobotAPI/libraries/aron/core/Exception.h
index 49e7ad444..ef0d2fa2e 100644
--- a/source/RobotAPI/libraries/aron/core/Exception.h
+++ b/source/RobotAPI/libraries/aron/core/Exception.h
@@ -23,15 +23,8 @@
 
 #pragma once
 
-// STD/STL
-
-// ArmarX
-#include <ArmarXCore/core/exceptions/Exception.h>
-#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
-#include <ArmarXCore/core/logging/Logging.h>
-
-#include <RobotAPI/interface/aron.h>
-#include <RobotAPI/libraries/aron/core/Descriptor.h>
+#include <ArmarXCore/core/exceptions/LocalException.h>
+#include <RobotAPI/interface/aron/Aron.h>
 #include <RobotAPI/libraries/aron/core/Path.h>
 
 namespace armarx::aron::error
@@ -44,29 +37,12 @@ namespace armarx::aron::error
     public:
         AronException() = delete;
 
-        AronException(const std::string& prettymethod, const std::string& reason) :
-            LocalException(prettymethod + ": " + reason + ".")
-        {
-        }
+        AronException(const std::string& prettymethod, const std::string& reason);
 
-        AronException(const std::string& prettymethod,
-                      const std::string& reason,
-                      const Path& path) :
-            LocalException(prettymethod + ": " + reason + ". The path was: " + path.toString())
-        {
-        }
+        AronException(const std::string& prettymethod, const std::string& reason, const Path& path);
 
         /// call operator to append a message to the exception. Used by ARMARX_CHECK_AND_THROW
-        AronException&
-        operator()(const std::string& additionalMessage = "")
-        {
-            auto currentReason = getReason();
-            if (not additionalMessage.empty())
-            {
-                setReason(currentReason + ". Additional Message: " + additionalMessage);
-            }
-            return *this;
-        }
+        AronException& operator()(const std::string& additionalMessage = "");
     };
 
     class AronEOFException : public AronException
@@ -74,12 +50,7 @@ namespace armarx::aron::error
     public:
         AronEOFException() = delete;
 
-        AronEOFException(const std::string& prettymethod) :
-            AronException(prettymethod,
-                          "REACHED THE END OF A NON VOID METHOD. PERHAPS YOU FORGOT TO ADD A VALUE "
-                          "TO SOME SWITCH-CASE STATEMEMT?.")
-        {
-        }
+        AronEOFException(const std::string& prettymethod);
     };
 
     /**
@@ -90,10 +61,7 @@ namespace armarx::aron::error
     public:
         NotImplementedYetException() = delete;
 
-        NotImplementedYetException(const std::string& prettymethod) :
-            AronException(prettymethod, "This method is not yet implemented!")
-        {
-        }
+        NotImplementedYetException(const std::string& prettymethod);
     };
 
     /**
@@ -106,37 +74,21 @@ namespace armarx::aron::error
 
         AronNotValidException(const std::string& prettymethod,
                               const std::string& reason,
-                              const data::dto::GenericDataPtr& data) :
-            AronException(prettymethod, reason + ". The ice_id of the data was: " + data->ice_id())
-        {
-        }
+                              const data::dto::GenericDataPtr& data);
 
         AronNotValidException(const std::string& prettymethod,
                               const std::string& reason,
                               const data::dto::GenericDataPtr& data,
-                              const Path& path) :
-            AronException(prettymethod,
-                          reason + ". The ice_id of the data was: " + data->ice_id(),
-                          path)
-        {
-        }
+                              const Path& path);
 
         AronNotValidException(const std::string& prettymethod,
                               const std::string& reason,
-                              const type::dto::GenericTypePtr& type) :
-            AronException(prettymethod, reason + ". The ice_id of the type was: " + type->ice_id())
-        {
-        }
+                              const type::dto::GenericTypePtr& type);
 
         AronNotValidException(const std::string& prettymethod,
                               const std::string& reason,
                               const type::dto::GenericTypePtr& type,
-                              const Path& path) :
-            AronException(prettymethod,
-                          reason + ". The ice_id of the type was: " + type->ice_id(),
-                          path)
-        {
-        }
+                              const Path& path);
     };
 
     /**
@@ -149,36 +101,22 @@ namespace armarx::aron::error
 
         ValueNotValidException(const std::string& prettymethod,
                                const std::string& reason,
-                               const std::string& input) :
-            AronException(prettymethod, reason + ". Got: " + input)
-        {
-        }
+                               const std::string& input);
 
         ValueNotValidException(const std::string& prettymethod,
                                const std::string& reason,
                                const std::string& input,
-                               const Path& path) :
-            AronException(prettymethod, reason + ". Got: " + input, path)
-        {
-        }
+                               const Path& path);
 
         ValueNotValidException(const std::string& prettymethod,
                                const std::string& reason,
                                const std::string& input,
-                               const std::string& expectation) :
-            AronException(prettymethod, reason + ". Got: " + input + ". Expected: " + expectation)
-        {
-        }
+                               const std::string& expectation);
 
         ValueNotValidException(const std::string& prettymethod,
                                const std::string& reason,
                                const std::string& input,
                                const std::string& expectation,
-                               const Path& path) :
-            AronException(prettymethod,
-                          reason + ". Got: " + input + ". Expected: " + expectation,
-                          path)
-        {
-        }
+                               const Path& path);
     };
 } // namespace armarx::aron::error
diff --git a/source/RobotAPI/libraries/aron/core/Path.h b/source/RobotAPI/libraries/aron/core/Path.h
index 888327fd9..b39ef1c46 100644
--- a/source/RobotAPI/libraries/aron/core/Path.h
+++ b/source/RobotAPI/libraries/aron/core/Path.h
@@ -23,7 +23,6 @@
 
 #pragma once
 
-// STD/STL
 #include <string>
 #include <vector>
 
diff --git a/source/RobotAPI/libraries/aron/core/aron_conversions.h b/source/RobotAPI/libraries/aron/core/aron_conversions.h
index 30f2e949b..cbd97326e 100644
--- a/source/RobotAPI/libraries/aron/core/aron_conversions.h
+++ b/source/RobotAPI/libraries/aron/core/aron_conversions.h
@@ -7,8 +7,6 @@
 #include <vector>
 #include <algorithm>
 
-#include "Path.h"
-
 namespace armarx::aron
 {
 
diff --git a/source/RobotAPI/libraries/aron/core/rw.h b/source/RobotAPI/libraries/aron/core/rw.h
index 7f0f69b55..02673b3e8 100644
--- a/source/RobotAPI/libraries/aron/core/rw.h
+++ b/source/RobotAPI/libraries/aron/core/rw.h
@@ -1,14 +1,7 @@
 #pragma once
 
-#include <map>
-#include <memory>
-#include <optional>
-#include <vector>
-
 #include "aron_conversions.h"
 #include "codegeneration/cpp/AronGeneratedClass.h"
-#include "data/rw/Reader.h"
-#include "data/rw/Writer.h"
 
 namespace armarx::aron
 {
diff --git a/source/RobotAPI/libraries/aron/core/type/variant/Factory.h b/source/RobotAPI/libraries/aron/core/type/variant/Factory.h
index 520004578..678e3ac70 100644
--- a/source/RobotAPI/libraries/aron/core/type/variant/Factory.h
+++ b/source/RobotAPI/libraries/aron/core/type/variant/Factory.h
@@ -23,13 +23,11 @@
 
 #pragma once
 
-// STD/STL
 #include <memory>
-#include <unordered_map>
 
-// ArmarX
-#include <RobotAPI/libraries/aron/core/type/variant/Variant.h>
+#include <RobotAPI/libraries/aron/core/Path.h>
 #include <RobotAPI/libraries/aron/core/Descriptor.h>
+#include <RobotAPI/libraries/aron/core/type/variant/forward_declarations.h>
 
 namespace armarx::aron::type
 {
diff --git a/source/RobotAPI/libraries/aron/core/type/variant/Variant.cpp b/source/RobotAPI/libraries/aron/core/type/variant/Variant.cpp
index f496b4f3f..dc90127ad 100644
--- a/source/RobotAPI/libraries/aron/core/type/variant/Variant.cpp
+++ b/source/RobotAPI/libraries/aron/core/type/variant/Variant.cpp
@@ -40,6 +40,38 @@ namespace armarx::aron::type
     {
         return FACTORY->create(a, path);
     }
-}
 
+    Variant::Variant(const type::Descriptor& descriptor, const Path& path) :
+        descriptor(descriptor), path(path)
+    {
+    }
+
+    bool
+    Variant::operator==(const VariantPtr& other) const
+    {
+        if (!other)
+        {
+            return false;
+        }
+
+        return *this == *other;
+    }
+
+    type::Descriptor
+    Variant::getDescriptor() const
+    {
+        return descriptor;
+    }
 
+    Path
+    Variant::getPath() const
+    {
+        return path;
+    }
+
+    std::string
+    Variant::pathToString() const
+    {
+        return path.toString();
+    }
+} // namespace armarx::aron::type
diff --git a/source/RobotAPI/libraries/aron/core/type/variant/Variant.h b/source/RobotAPI/libraries/aron/core/type/variant/Variant.h
index 6a1e2afa3..37c65e353 100644
--- a/source/RobotAPI/libraries/aron/core/type/variant/Variant.h
+++ b/source/RobotAPI/libraries/aron/core/type/variant/Variant.h
@@ -23,16 +23,10 @@
 
 #pragma once
 
-// STD/STL
-#include <map>
 #include <memory>
 #include <string>
 #include <vector>
 
-// Simox
-// #include <SimoxUtility/algorithm/string.h>
-
-// ArmarX
 #include <RobotAPI/interface/aron.h>
 #include <RobotAPI/libraries/aron/core/Descriptor.h>
 #include <RobotAPI/libraries/aron/core/Exception.h>
@@ -63,49 +57,25 @@ namespace armarx::aron::type
 
     public:
         // constructors
-        Variant(const type::Descriptor& descriptor, const Path& path = Path()) :
-            descriptor(descriptor), path(path)
-        {
-        }
+        Variant(const type::Descriptor& descriptor, const Path& path = Path());
 
         virtual ~Variant() = default;
 
         // operators
         virtual bool operator==(const Variant& other) const = 0;
 
-        bool
-        operator==(const VariantPtr& other) const
-        {
-            if (!other)
-            {
-                return false;
-            }
-
-            return *this == *other;
-        }
+        bool operator==(const VariantPtr& other) const;
 
         // static methods
         /// create a variant object from an dto object
         static VariantPtr FromAronDTO(const type::dto::GenericType&, const Path& = Path());
 
         // public methods
-        type::Descriptor
-        getDescriptor() const
-        {
-            return descriptor;
-        }
-
-        Path
-        getPath() const
-        {
-            return path;
-        }
-
-        std::string
-        pathToString() const
-        {
-            return path.toString();
-        }
+        type::Descriptor getDescriptor() const;
+
+        Path getPath() const;
+
+        std::string pathToString() const;
 
         // virtual methods
         /// naviate absolute
diff --git a/source/RobotAPI/libraries/aron/core/type/variant/container/Dict.h b/source/RobotAPI/libraries/aron/core/type/variant/container/Dict.h
index 9ae860df5..4b8e4dcb6 100644
--- a/source/RobotAPI/libraries/aron/core/type/variant/container/Dict.h
+++ b/source/RobotAPI/libraries/aron/core/type/variant/container/Dict.h
@@ -24,7 +24,6 @@
 #pragma once
 
 // STD/STL
-#include <map>
 #include <string>
 
 // Base Class
diff --git a/source/RobotAPI/libraries/aron/core/type/variant/container/Pair.h b/source/RobotAPI/libraries/aron/core/type/variant/container/Pair.h
index ce88e8d2e..394cf9977 100644
--- a/source/RobotAPI/libraries/aron/core/type/variant/container/Pair.h
+++ b/source/RobotAPI/libraries/aron/core/type/variant/container/Pair.h
@@ -24,7 +24,6 @@
 #pragma once
 
 // STD/STL
-#include <map>
 #include <string>
 
 // Base Class
diff --git a/source/RobotAPI/libraries/aron/core/type/variant/container/Tuple.h b/source/RobotAPI/libraries/aron/core/type/variant/container/Tuple.h
index e382cc526..b608dce7d 100644
--- a/source/RobotAPI/libraries/aron/core/type/variant/container/Tuple.h
+++ b/source/RobotAPI/libraries/aron/core/type/variant/container/Tuple.h
@@ -24,7 +24,6 @@
 #pragma once
 
 // STD/STL
-#include <map>
 #include <string>
 
 // Base Class
diff --git a/source/RobotAPI/libraries/aron/core/type/variant/detail/AnyVariant.h b/source/RobotAPI/libraries/aron/core/type/variant/detail/AnyVariant.h
index 70c9c0896..eb9be13f2 100644
--- a/source/RobotAPI/libraries/aron/core/type/variant/detail/AnyVariant.h
+++ b/source/RobotAPI/libraries/aron/core/type/variant/detail/AnyVariant.h
@@ -23,10 +23,6 @@
 
 #pragma once
 
-// STD/STL
-#include <memory>
-#include <string>
-#include <unordered_map>
 
 // Base class
 #include "SpecializedVariant.h"
diff --git a/source/RobotAPI/libraries/aron/core/type/variant/detail/ContainerVariant.h b/source/RobotAPI/libraries/aron/core/type/variant/detail/ContainerVariant.h
index 2673250f8..5e61cfac4 100644
--- a/source/RobotAPI/libraries/aron/core/type/variant/detail/ContainerVariant.h
+++ b/source/RobotAPI/libraries/aron/core/type/variant/detail/ContainerVariant.h
@@ -23,10 +23,6 @@
 
 #pragma once
 
-// STD/STL
-#include <memory>
-#include <string>
-#include <unordered_map>
 
 // Base class
 #include "SpecializedVariant.h"
diff --git a/source/RobotAPI/libraries/aron/core/type/variant/detail/DtoVariant.h b/source/RobotAPI/libraries/aron/core/type/variant/detail/DtoVariant.h
index 2fb240349..da38cbed4 100644
--- a/source/RobotAPI/libraries/aron/core/type/variant/detail/DtoVariant.h
+++ b/source/RobotAPI/libraries/aron/core/type/variant/detail/DtoVariant.h
@@ -23,11 +23,6 @@
 
 #pragma once
 
-// STD/STL
-#include <memory>
-#include <string>
-#include <unordered_map>
-
 // Base class
 #include "SpecializedVariant.h"
 
diff --git a/source/RobotAPI/libraries/aron/core/type/variant/detail/EnumVariant.h b/source/RobotAPI/libraries/aron/core/type/variant/detail/EnumVariant.h
index 84b1bf782..402565db0 100644
--- a/source/RobotAPI/libraries/aron/core/type/variant/detail/EnumVariant.h
+++ b/source/RobotAPI/libraries/aron/core/type/variant/detail/EnumVariant.h
@@ -24,9 +24,7 @@
 #pragma once
 
 // STD/STL
-#include <memory>
 #include <string>
-#include <unordered_map>
 
 // Base class
 #include "SpecializedVariant.h"
diff --git a/source/RobotAPI/libraries/aron/core/type/variant/detail/NDArrayVariant.h b/source/RobotAPI/libraries/aron/core/type/variant/detail/NDArrayVariant.h
index 168db8b10..0c707c8de 100644
--- a/source/RobotAPI/libraries/aron/core/type/variant/detail/NDArrayVariant.h
+++ b/source/RobotAPI/libraries/aron/core/type/variant/detail/NDArrayVariant.h
@@ -24,9 +24,7 @@
 #pragma once
 
 // STD/STL
-#include <memory>
 #include <string>
-#include <unordered_map>
 
 // Base class
 #include "SpecializedVariant.h"
diff --git a/source/RobotAPI/libraries/aron/core/type/variant/detail/PrimitiveVariant.h b/source/RobotAPI/libraries/aron/core/type/variant/detail/PrimitiveVariant.h
index 24dd9171d..ecc86f798 100644
--- a/source/RobotAPI/libraries/aron/core/type/variant/detail/PrimitiveVariant.h
+++ b/source/RobotAPI/libraries/aron/core/type/variant/detail/PrimitiveVariant.h
@@ -23,15 +23,9 @@
 
 #pragma once
 
-// STD/STL
-#include <memory>
-#include <string>
-#include <unordered_map>
 
-// Base class
 #include "SpecializedVariant.h"
 
-// ArmarX
 
 namespace armarx::aron::type::detail
 {
diff --git a/source/RobotAPI/libraries/aron/core/type/variant/detail/SpecializedVariant.h b/source/RobotAPI/libraries/aron/core/type/variant/detail/SpecializedVariant.h
index a984daed2..ca11b3c25 100644
--- a/source/RobotAPI/libraries/aron/core/type/variant/detail/SpecializedVariant.h
+++ b/source/RobotAPI/libraries/aron/core/type/variant/detail/SpecializedVariant.h
@@ -23,17 +23,10 @@
 
 #pragma once
 
-// STD/STL
 #include <memory>
-#include <optional>
-#include <string>
-#include <unordered_map>
 
-// Base class
 #include "../Variant.h"
 
-// ArmarX
-
 namespace armarx::aron::type::detail
 {
     template <typename AronTypeT, typename DerivedT>
diff --git a/source/RobotAPI/libraries/aron/core/type/variant/ndarray/Image.h b/source/RobotAPI/libraries/aron/core/type/variant/ndarray/Image.h
index 941687c48..e796bab87 100644
--- a/source/RobotAPI/libraries/aron/core/type/variant/ndarray/Image.h
+++ b/source/RobotAPI/libraries/aron/core/type/variant/ndarray/Image.h
@@ -24,7 +24,6 @@
 #pragma once
 
 // STD / STL
-#include <memory>
 #include <string>
 
 // Base Class
diff --git a/source/RobotAPI/libraries/aron/core/type/variant/ndarray/NDArray.h b/source/RobotAPI/libraries/aron/core/type/variant/ndarray/NDArray.h
index b8df436d1..a217a4339 100644
--- a/source/RobotAPI/libraries/aron/core/type/variant/ndarray/NDArray.h
+++ b/source/RobotAPI/libraries/aron/core/type/variant/ndarray/NDArray.h
@@ -24,7 +24,6 @@
 #pragma once
 
 // STD/STL
-#include <map>
 #include <string>
 
 // Base class
diff --git a/source/RobotAPI/libraries/aron/core/type/visitor/Visitor.h b/source/RobotAPI/libraries/aron/core/type/visitor/Visitor.h
index 9dfe2057d..e8368a7dc 100644
--- a/source/RobotAPI/libraries/aron/core/type/visitor/Visitor.h
+++ b/source/RobotAPI/libraries/aron/core/type/visitor/Visitor.h
@@ -23,10 +23,6 @@
 
 #pragma once
 
-#include <map>
-#include <string>
-#include <vector>
-
 #include "../../Descriptor.h"
 #include "../../Exception.h"
 
-- 
GitLab


From 9225dfe300756cd9a8138fdda50a3da833bbb672 Mon Sep 17 00:00:00 2001
From: Fabian Reister <fabian.reister@kit.edu>
Date: Thu, 5 Dec 2024 23:10:21 +0100
Subject: [PATCH 3/4] fixing build by adding headers in other libs

---
 .../ExampleMemoryClient/ExampleMemoryClient.cpp       |  1 +
 .../aronTreeWidget/widgets/EditMatrixWidget.h         |  1 +
 .../aronTreeWidget/widgets/IntEnumWidget.cpp          |  1 +
 .../aronTreeWidget/widgets/QuaternionWidget.cpp       |  2 ++
 .../aronTreeWidget/widgets/QuaternionWidget.h         |  7 +++++--
 .../armem/client/util/MemoryToDebugObserver.cpp       |  1 +
 .../libraries/armem/server/ltm/EntityInstance.cpp     |  3 +--
 .../libraries/armem/server/ltm/EntitySnapshot.cpp     |  4 ----
 .../libraries/armem/server/ltm/detail/MemoryBase.h    |  1 +
 .../armem/server/ltm/detail/mixins/util/mongodb.cpp   |  1 +
 .../armem/server/ltm/processors/Processors.cpp        |  1 +
 .../client/KnownGraspCandidateReader.cpp              |  6 ++----
 source/RobotAPI/libraries/armem_gui/MemoryViewer.cpp  |  1 +
 .../libraries/armem_gui/disk/ControlWidget.cpp        |  2 ++
 .../libraries/armem_locations/client/Reader.cpp       |  2 ++
 .../articulated_object/ArticulatedObjectWriter.cpp    |  1 +
 .../client/articulated_object/Reader.cpp              |  4 ++--
 .../armem_robot_state/server/common/Visu.cpp          |  1 +
 source/RobotAPI/libraries/aron/common/rw/eigen.h      |  6 +++++-
 .../aron/converter/opencv/OpenCVConverter.cpp         |  6 +++---
 source/RobotAPI/libraries/aron/core/Path.cpp          |  1 +
 source/RobotAPI/libraries/aron/core/data/rw/Writer.h  |  2 +-
 .../NlohmannJSONReaderWithoutTypeCheck.cpp            | 11 +++--------
 .../aron/core/data/rw/writer/variant/VariantWriter.h  |  4 ----
 .../libraries/aron/core/data/variant/Factory.cpp      |  1 +
 .../aron/core/data/variant/complex/NDArray.cpp        |  1 +
 .../aron/core/data/variant/container/Dict.cpp         |  1 +
 .../core/data/variant/detail/SpecializedVariant.h     |  3 +--
 .../aron/core/data/variant/primitive/Bool.cpp         |  1 +
 .../aron/core/data/variant/primitive/Double.cpp       |  1 +
 .../aron/core/data/variant/primitive/Float.cpp        |  1 +
 .../aron/core/data/variant/primitive/Int.cpp          |  1 +
 .../aron/core/data/variant/primitive/Long.cpp         |  1 +
 .../aron/core/data/variant/primitive/String.cpp       |  1 +
 source/RobotAPI/libraries/aron/core/type/rw/Reader.h  |  2 +-
 source/RobotAPI/libraries/aron/core/type/rw/Writer.h  |  1 +
 .../libraries/aron/core/type/variant/Factory.cpp      |  1 +
 .../core/type/variant/detail/SpecializedVariant.h     |  3 +++
 .../libraries/aron/filter/data/WhitelistFilter.h      |  1 +
 source/RobotAPI/libraries/aron/similarity/cosine.cpp  |  1 +
 .../aron/similarity/data/image/NDArraySimilarity.cpp  |  1 +
 .../libraries/aron/similarity/data/image/chernoff.cpp |  1 +
 .../libraries/aron/similarity/data/image/mse.cpp      |  1 +
 .../PropertyDefinitionVisitors.cpp                    |  5 ++++-
 .../aron_component_config/VariantHelperFactory.cpp    |  5 ++++-
 source/RobotAPI/libraries/skills/core/SkillProxy.h    |  1 +
 .../aron_tree_widget/widgets/EditMatrixWidget.h       |  1 +
 .../aron_tree_widget/widgets/IntEnumWidget.cpp        |  3 ++-
 .../aron_tree_widget/widgets/QuaternionWidget.cpp     |  2 ++
 .../aron_tree_widget/widgets/QuaternionWidget.h       |  7 +++++--
 .../executions/SkillExecutionTreeWidget.cpp           |  1 +
 .../skills_gui/memory/SkillManagerWrapper.cpp         |  2 ++
 52 files changed, 82 insertions(+), 39 deletions(-)

diff --git a/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.cpp b/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.cpp
index 7fea318b5..f4854b20d 100644
--- a/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.cpp
+++ b/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.cpp
@@ -31,6 +31,7 @@
 #include <opencv2/imgproc.hpp>
 #include <opencv2/opencv.hpp>
 
+#include <SimoxUtility/algorithm/string/string_tools.h>
 #include <SimoxUtility/color/cmaps.h>
 #include <SimoxUtility/math/pose/pose.h>
 
diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/EditMatrixWidget.h b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/EditMatrixWidget.h
index 1fdaaa963..7ba61b702 100644
--- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/EditMatrixWidget.h
+++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/EditMatrixWidget.h
@@ -6,6 +6,7 @@
 #include <QObject>
 #include <QTreeWidgetItem>
 #include <QVBoxLayout>
+#include <SimoxUtility/algorithm/string/string_conversion.h>
 
 #include "RobotAPI/libraries/aron/core/type/variant/ndarray/Matrix.h"
 
diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/IntEnumWidget.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/IntEnumWidget.cpp
index bfe1be2bf..768d907b7 100644
--- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/IntEnumWidget.cpp
+++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/IntEnumWidget.cpp
@@ -1,6 +1,7 @@
 #include "IntEnumWidget.h"
 
 #include <QHBoxLayout>
+#include <SimoxUtility/algorithm/string/string_conversion.h>
 
 #include "RobotAPI/libraries/aron/core/type/variant/All.h"
 
diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/QuaternionWidget.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/QuaternionWidget.cpp
index b1d6fa3b9..7ba00d9da 100644
--- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/QuaternionWidget.cpp
+++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/QuaternionWidget.cpp
@@ -3,6 +3,8 @@
 #include <QHBoxLayout>
 #include <QLabel>
 #include <QLineEdit>
+#include <RobotAPI/interface/aron/Aron.h>
+#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
 #include "../../ColorPalettes.h"
 #include "NDArrayHelper.h"
diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/QuaternionWidget.h b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/QuaternionWidget.h
index d55d2bba3..e1fca223e 100644
--- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/QuaternionWidget.h
+++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/aronTreeWidget/widgets/QuaternionWidget.h
@@ -1,11 +1,14 @@
 #pragma once
+
+#include <cmath>
 #include <vector>
 
 #include <QLineEdit>
 #include <QObject>
 #include <QVBoxLayout>
-
-#include "RobotAPI/libraries/aron/core/type/variant/ndarray/Matrix.h"
+#include <SimoxUtility/algorithm/string/string_conversion.h>
+#include <SimoxUtility/error/SimoxError.h>
+#include <RobotAPI/interface/aron/Aron.h>
 
 #include "CustomWidget.h"
 
diff --git a/source/RobotAPI/libraries/armem/client/util/MemoryToDebugObserver.cpp b/source/RobotAPI/libraries/armem/client/util/MemoryToDebugObserver.cpp
index 89e2cf20c..ecad82410 100644
--- a/source/RobotAPI/libraries/armem/client/util/MemoryToDebugObserver.cpp
+++ b/source/RobotAPI/libraries/armem/client/util/MemoryToDebugObserver.cpp
@@ -21,6 +21,7 @@
  */
 
 #include "MemoryToDebugObserver.h"
+#include <SimoxUtility/algorithm/string/string_tools.h>
 
 #include <RobotAPI/libraries/armem/core/error/mns.h>
 #include <RobotAPI/libraries/armem/core/json_conversions.h>
diff --git a/source/RobotAPI/libraries/armem/server/ltm/EntityInstance.cpp b/source/RobotAPI/libraries/armem/server/ltm/EntityInstance.cpp
index b0302a5ce..ce8932e54 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/EntityInstance.cpp
+++ b/source/RobotAPI/libraries/armem/server/ltm/EntityInstance.cpp
@@ -2,8 +2,7 @@
 #include "EntityInstance.h"
 
 // STD / STL
-#include <fstream>
-#include <iostream>
+#include <SimoxUtility/algorithm/string/string_tools.h>
 
 // ArmarX
 #include <ArmarXCore/core/logging/Logging.h>
diff --git a/source/RobotAPI/libraries/armem/server/ltm/EntitySnapshot.cpp b/source/RobotAPI/libraries/armem/server/ltm/EntitySnapshot.cpp
index 2f9746973..175840a0c 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/EntitySnapshot.cpp
+++ b/source/RobotAPI/libraries/armem/server/ltm/EntitySnapshot.cpp
@@ -1,10 +1,6 @@
 // Header
 #include "EntitySnapshot.h"
 
-// STD / STL
-#include <fstream>
-#include <iostream>
-
 // ArmarX
 #include <ArmarXCore/core/logging/Logging.h>
 #include <ArmarXCore/core/time/TimeUtil.h>
diff --git a/source/RobotAPI/libraries/armem/server/ltm/detail/MemoryBase.h b/source/RobotAPI/libraries/armem/server/ltm/detail/MemoryBase.h
index 3450eaaf7..708926591 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/detail/MemoryBase.h
+++ b/source/RobotAPI/libraries/armem/server/ltm/detail/MemoryBase.h
@@ -13,6 +13,7 @@
 #include <ArmarXCore/core/Component.h>
 #include <ArmarXCore/core/logging/LoggingUtil.h>
 #include <ArmarXCore/core/time.h>
+#include <ArmarXCore/interface/core/UserException.h>
 
 #include <RobotAPI/libraries/armem/core/MemoryID.h>
 #include <RobotAPI/libraries/armem/core/operations.h>
diff --git a/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/util/mongodb.cpp b/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/util/mongodb.cpp
index e1024a0f6..08d4b7a51 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/util/mongodb.cpp
+++ b/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/util/mongodb.cpp
@@ -1,6 +1,7 @@
 #include "mongodb.h"
 
 // Simox
+#include <SimoxUtility/algorithm/string/string_tools.h>
 #include <SimoxUtility/json.h>
 
 #include <RobotAPI/libraries/armem/core/error.h>
diff --git a/source/RobotAPI/libraries/armem/server/ltm/processors/Processors.cpp b/source/RobotAPI/libraries/armem/server/ltm/processors/Processors.cpp
index 00568c75b..83413578f 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/processors/Processors.cpp
+++ b/source/RobotAPI/libraries/armem/server/ltm/processors/Processors.cpp
@@ -1,6 +1,7 @@
 #include "Processors.h"
 
 #include <ArmarXCore/core/logging/Logging.h>
+#include <ArmarXCore/interface/core/UserException.h>
 
 #include "converter/data/image/exr/ExrConverter.h"
 #include "converter/data/image/png/PngConverter.h"
diff --git a/source/RobotAPI/libraries/armem_grasping/client/KnownGraspCandidateReader.cpp b/source/RobotAPI/libraries/armem_grasping/client/KnownGraspCandidateReader.cpp
index ab4750e34..9cf9edee2 100644
--- a/source/RobotAPI/libraries/armem_grasping/client/KnownGraspCandidateReader.cpp
+++ b/source/RobotAPI/libraries/armem_grasping/client/KnownGraspCandidateReader.cpp
@@ -1,8 +1,9 @@
 #include "KnownGraspCandidateReader.h"
 
-#include <mutex>
 #include <optional>
 
+#include <SimoxUtility/algorithm/string/string_tools.h>
+
 #include <ArmarXCore/core/PackagePath.h>
 #include <ArmarXCore/core/logging/Logging.h>
 
@@ -13,9 +14,6 @@
 #include <RobotAPI/libraries/armem/util/util.h>
 #include <RobotAPI/libraries/armem_objects/aron/Attachment.aron.generated.h>
 #include <RobotAPI/libraries/armem_objects/aron_conversions.h>
-// #include <RobotAPI/libraries/armem_robot_state/aron/Robot.aron.generated.h>
-// #include <RobotAPI/libraries/armem_robot_state/aron_conversions.h>
-// #include <RobotAPI/libraries/armem_robot_state/robot_conversions.h>
 #include <RobotAPI/libraries/aron/common/aron_conversions.h>
 
 namespace armarx::armem::grasping::known_grasps
diff --git a/source/RobotAPI/libraries/armem_gui/MemoryViewer.cpp b/source/RobotAPI/libraries/armem_gui/MemoryViewer.cpp
index bfa97db1e..fc6c74049 100644
--- a/source/RobotAPI/libraries/armem_gui/MemoryViewer.cpp
+++ b/source/RobotAPI/libraries/armem_gui/MemoryViewer.cpp
@@ -15,6 +15,7 @@
 #include <Ice/Exception.h>
 
 #include <SimoxUtility/algorithm/get_map_keys_values.h>
+#include <SimoxUtility/algorithm/string/string_tools.h>
 
 #include <ArmarXCore/core/ManagedIceObject.h>
 #include <ArmarXCore/core/ice_conversions/ice_conversions_templates.h>
diff --git a/source/RobotAPI/libraries/armem_gui/disk/ControlWidget.cpp b/source/RobotAPI/libraries/armem_gui/disk/ControlWidget.cpp
index 868c315ad..0b7b737f0 100644
--- a/source/RobotAPI/libraries/armem_gui/disk/ControlWidget.cpp
+++ b/source/RobotAPI/libraries/armem_gui/disk/ControlWidget.cpp
@@ -8,6 +8,8 @@
 #include <QPushButton>
 #include <QSpacerItem>
 
+#include <SimoxUtility/algorithm/string/string_tools.h>
+
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
 #include <RobotAPI/libraries/armem/server/ltm/Memory.h>
diff --git a/source/RobotAPI/libraries/armem_locations/client/Reader.cpp b/source/RobotAPI/libraries/armem_locations/client/Reader.cpp
index 13cc8ff5a..a9bb3a1b1 100644
--- a/source/RobotAPI/libraries/armem_locations/client/Reader.cpp
+++ b/source/RobotAPI/libraries/armem_locations/client/Reader.cpp
@@ -1,5 +1,7 @@
 #include "Reader.h"
 
+#include <SimoxUtility/algorithm/string/string_tools.h>
+
 #include <RobotAPI/libraries/armem/client/query/Builder.h>
 #include <RobotAPI/libraries/armem/core/Time.h>
 #include <RobotAPI/libraries/armem/core/error.h>
diff --git a/source/RobotAPI/libraries/armem_objects/client/articulated_object/ArticulatedObjectWriter.cpp b/source/RobotAPI/libraries/armem_objects/client/articulated_object/ArticulatedObjectWriter.cpp
index 0085fd3fa..764cbdcc8 100644
--- a/source/RobotAPI/libraries/armem_objects/client/articulated_object/ArticulatedObjectWriter.cpp
+++ b/source/RobotAPI/libraries/armem_objects/client/articulated_object/ArticulatedObjectWriter.cpp
@@ -4,6 +4,7 @@
 #include <Eigen/Geometry>
 
 #include <VirtualRobot/Robot.h>
+#include <SimoxUtility/algorithm/string/string_tools.h>
 
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 #include <ArmarXCore/core/logging/Logging.h>
diff --git a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp
index ac4011124..55a101582 100644
--- a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp
+++ b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp
@@ -1,15 +1,15 @@
 #include "Reader.h"
 
-#include <mutex>
 #include <optional>
 
 #include <Eigen/Geometry>
 
+#include <SimoxUtility/algorithm/string/string_tools.h>
+
 #include <ArmarXCore/core/PackagePath.h>
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 #include <ArmarXCore/core/logging/Logging.h>
 
-#include "RobotAPI/libraries/armem/core/Commit.h"
 #include <RobotAPI/libraries/ArmarXObjects/ObjectInfo.h>
 #include <RobotAPI/libraries/ArmarXObjects/ObjectPose.h>
 #include <RobotAPI/libraries/ArmarXObjects/aron/ObjectPose.aron.generated.h>
diff --git a/source/RobotAPI/libraries/armem_robot_state/server/common/Visu.cpp b/source/RobotAPI/libraries/armem_robot_state/server/common/Visu.cpp
index 532676cb5..8a6af7701 100644
--- a/source/RobotAPI/libraries/armem_robot_state/server/common/Visu.cpp
+++ b/source/RobotAPI/libraries/armem_robot_state/server/common/Visu.cpp
@@ -7,6 +7,7 @@
 #include <Eigen/Geometry>
 
 #include <SimoxUtility/algorithm/get_map_keys_values.h>
+#include <SimoxUtility/algorithm/string/string_tools.h>
 #include <SimoxUtility/math/pose.h>
 #include <SimoxUtility/math/rescale.h>
 #include <VirtualRobot/XML/RobotIO.h>
diff --git a/source/RobotAPI/libraries/aron/common/rw/eigen.h b/source/RobotAPI/libraries/aron/common/rw/eigen.h
index fee5d0f9f..848c5e36c 100644
--- a/source/RobotAPI/libraries/aron/common/rw/eigen.h
+++ b/source/RobotAPI/libraries/aron/common/rw/eigen.h
@@ -1,12 +1,16 @@
 #pragma once
 
+#include <Eigen/Core>
+#include <Eigen/Geometry> // for Quaternion
+
+#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
+
 #include <RobotAPI/libraries/aron/codegeneration_util/TypeName.h>
 #include <RobotAPI/libraries/aron/core/Exception.h>
 #include <RobotAPI/libraries/aron/core/data/rw/Reader.h>
 #include <RobotAPI/libraries/aron/core/data/rw/Writer.h>
 #include <RobotAPI/libraries/aron/core/type/rw/Writer.h>
 
-#include "../aron_conversions/eigen.h"
 
 namespace armarx
 {
diff --git a/source/RobotAPI/libraries/aron/converter/opencv/OpenCVConverter.cpp b/source/RobotAPI/libraries/aron/converter/opencv/OpenCVConverter.cpp
index 957003a9e..5ba8c77e0 100644
--- a/source/RobotAPI/libraries/aron/converter/opencv/OpenCVConverter.cpp
+++ b/source/RobotAPI/libraries/aron/converter/opencv/OpenCVConverter.cpp
@@ -21,11 +21,11 @@
  *             GNU General Public License
  */
 
-// STD/STL
+#include "OpenCVConverter.h"
+
 #include <numeric>
 
-// Header
-#include "OpenCVConverter.h"
+#include "RobotAPI/libraries/aron/core/data/variant/complex/NDArray.h"
 
 namespace armarx::aron::data::converter
 {
diff --git a/source/RobotAPI/libraries/aron/core/Path.cpp b/source/RobotAPI/libraries/aron/core/Path.cpp
index c80e00f53..ac91613dd 100644
--- a/source/RobotAPI/libraries/aron/core/Path.cpp
+++ b/source/RobotAPI/libraries/aron/core/Path.cpp
@@ -23,6 +23,7 @@
 
 // Header
 #include "Path.h"
+#include <SimoxUtility/algorithm/string/string_tools.h>
 
 // ArmarX
 #include <RobotAPI/libraries/aron/core/Exception.h>
diff --git a/source/RobotAPI/libraries/aron/core/data/rw/Writer.h b/source/RobotAPI/libraries/aron/core/data/rw/Writer.h
index 0195adddd..c5b063f3a 100644
--- a/source/RobotAPI/libraries/aron/core/data/rw/Writer.h
+++ b/source/RobotAPI/libraries/aron/core/data/rw/Writer.h
@@ -21,12 +21,12 @@
 #pragma once
 
 // STD/STL
-#include <memory>
 #include <string>
 #include <optional>
 
 // ArmarX
 #include <RobotAPI/interface/aron.h>
+#include <RobotAPI/libraries/aron/core/Descriptor.h>
 #include <RobotAPI/libraries/aron/core/Exception.h>
 
 // Known types
diff --git a/source/RobotAPI/libraries/aron/core/data/rw/reader/nlohmannJSON/NlohmannJSONReaderWithoutTypeCheck.cpp b/source/RobotAPI/libraries/aron/core/data/rw/reader/nlohmannJSON/NlohmannJSONReaderWithoutTypeCheck.cpp
index 2e864ad7a..e6289f74d 100644
--- a/source/RobotAPI/libraries/aron/core/data/rw/reader/nlohmannJSON/NlohmannJSONReaderWithoutTypeCheck.cpp
+++ b/source/RobotAPI/libraries/aron/core/data/rw/reader/nlohmannJSON/NlohmannJSONReaderWithoutTypeCheck.cpp
@@ -18,26 +18,21 @@
 *             GNU General Public License
 */
 
-// STD/STL
+#include "NlohmannJSONReaderWithoutTypeCheck.h"
+
 #include <cmath>
 #include <cstdint>
 #include <cstring>
-#include <memory>
-#include <numeric>
 
 #include <SimoxUtility/algorithm/get_map_keys_values.h>
 
 #include "ArmarXCore/core/logging/Logging.h"
+#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
-// Header
-#include "NlohmannJSONReaderWithoutTypeCheck.h"
-
-// ArmarX
 #include <RobotAPI/interface/aron/Aron.h>
 #include <RobotAPI/libraries/aron/core/Exception.h>
 #include <RobotAPI/libraries/aron/core/data/visitor/nlohmannJSON/NlohmannJSONVisitor.h>
 
-#include "../../json/Data.h"
 
 
 namespace armarx::aron::data::reader
diff --git a/source/RobotAPI/libraries/aron/core/data/rw/writer/variant/VariantWriter.h b/source/RobotAPI/libraries/aron/core/data/rw/writer/variant/VariantWriter.h
index 0be0b3489..c2ee59680 100644
--- a/source/RobotAPI/libraries/aron/core/data/rw/writer/variant/VariantWriter.h
+++ b/source/RobotAPI/libraries/aron/core/data/rw/writer/variant/VariantWriter.h
@@ -20,10 +20,6 @@
 
 #pragma once
 
-// STD/STL
-#include <memory>
-#include <stack>
-
 // BaseClass
 #include <RobotAPI/libraries/aron/core/data/rw/Writer.h>
 
diff --git a/source/RobotAPI/libraries/aron/core/data/variant/Factory.cpp b/source/RobotAPI/libraries/aron/core/data/variant/Factory.cpp
index c03b3c37f..5619e10ad 100644
--- a/source/RobotAPI/libraries/aron/core/data/variant/Factory.cpp
+++ b/source/RobotAPI/libraries/aron/core/data/variant/Factory.cpp
@@ -25,6 +25,7 @@
 
 // Header
 #include "Factory.h"
+#include <ArmarXCore/core/logging/Logging.h>
 
 // ArmarX
 #include <RobotAPI/libraries/aron/core/data/variant/All.h>
diff --git a/source/RobotAPI/libraries/aron/core/data/variant/complex/NDArray.cpp b/source/RobotAPI/libraries/aron/core/data/variant/complex/NDArray.cpp
index 38de3e292..8bf1da973 100644
--- a/source/RobotAPI/libraries/aron/core/data/variant/complex/NDArray.cpp
+++ b/source/RobotAPI/libraries/aron/core/data/variant/complex/NDArray.cpp
@@ -26,6 +26,7 @@
 
 // Simox
 #include <SimoxUtility/algorithm/string.h>
+#include <ArmarXCore/util/CPPUtility/trace.h>
 
 // ArmarX
 #include <RobotAPI/libraries/aron/core/data/variant/Factory.h>
diff --git a/source/RobotAPI/libraries/aron/core/data/variant/container/Dict.cpp b/source/RobotAPI/libraries/aron/core/data/variant/container/Dict.cpp
index 19dd673bd..a348570cd 100644
--- a/source/RobotAPI/libraries/aron/core/data/variant/container/Dict.cpp
+++ b/source/RobotAPI/libraries/aron/core/data/variant/container/Dict.cpp
@@ -27,6 +27,7 @@
 // ArmarX
 #include <SimoxUtility/algorithm/string/string_conversion.h>
 
+#include <ArmarXCore/core/logging/Logging.h>
 #include <ArmarXCore/util/CPPUtility/trace.h>
 
 #include <RobotAPI/libraries/aron/core/data/variant/Factory.h>
diff --git a/source/RobotAPI/libraries/aron/core/data/variant/detail/SpecializedVariant.h b/source/RobotAPI/libraries/aron/core/data/variant/detail/SpecializedVariant.h
index 031d58ae1..d2e396559 100644
--- a/source/RobotAPI/libraries/aron/core/data/variant/detail/SpecializedVariant.h
+++ b/source/RobotAPI/libraries/aron/core/data/variant/detail/SpecializedVariant.h
@@ -25,13 +25,12 @@
 
 // STD/STL
 #include <memory>
-#include <string>
-#include <unordered_map>
 
 // Base class
 #include "../Variant.h"
 
 // ArmarX
+#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
 namespace armarx::aron::data::detail
 {
diff --git a/source/RobotAPI/libraries/aron/core/data/variant/primitive/Bool.cpp b/source/RobotAPI/libraries/aron/core/data/variant/primitive/Bool.cpp
index ed29f88c3..618be3850 100644
--- a/source/RobotAPI/libraries/aron/core/data/variant/primitive/Bool.cpp
+++ b/source/RobotAPI/libraries/aron/core/data/variant/primitive/Bool.cpp
@@ -22,6 +22,7 @@
  */
 
 #include "Bool.h"
+#include <ArmarXCore/util/CPPUtility/trace.h>
 
 namespace armarx::aron::data
 {
diff --git a/source/RobotAPI/libraries/aron/core/data/variant/primitive/Double.cpp b/source/RobotAPI/libraries/aron/core/data/variant/primitive/Double.cpp
index 66b23d4e1..c118ea66d 100644
--- a/source/RobotAPI/libraries/aron/core/data/variant/primitive/Double.cpp
+++ b/source/RobotAPI/libraries/aron/core/data/variant/primitive/Double.cpp
@@ -23,6 +23,7 @@
 
 // Header
 #include "Double.h"
+#include <ArmarXCore/util/CPPUtility/trace.h>
 
 // ArmarX
 #include "Float.h"
diff --git a/source/RobotAPI/libraries/aron/core/data/variant/primitive/Float.cpp b/source/RobotAPI/libraries/aron/core/data/variant/primitive/Float.cpp
index 26d08b4b5..6ebe3a5a4 100644
--- a/source/RobotAPI/libraries/aron/core/data/variant/primitive/Float.cpp
+++ b/source/RobotAPI/libraries/aron/core/data/variant/primitive/Float.cpp
@@ -22,6 +22,7 @@
  */
 
 #include "Float.h"
+#include <ArmarXCore/util/CPPUtility/trace.h>
 
 namespace armarx::aron::data
 {
diff --git a/source/RobotAPI/libraries/aron/core/data/variant/primitive/Int.cpp b/source/RobotAPI/libraries/aron/core/data/variant/primitive/Int.cpp
index 870cbcd22..18bb4ed52 100644
--- a/source/RobotAPI/libraries/aron/core/data/variant/primitive/Int.cpp
+++ b/source/RobotAPI/libraries/aron/core/data/variant/primitive/Int.cpp
@@ -22,6 +22,7 @@
  */
 
 #include "Int.h"
+#include <ArmarXCore/util/CPPUtility/trace.h>
 
 #include <RobotAPI/libraries/aron/core/data/variant/Factory.h>
 #include <RobotAPI/libraries/aron/core/type/variant/primitive/Int.h>
diff --git a/source/RobotAPI/libraries/aron/core/data/variant/primitive/Long.cpp b/source/RobotAPI/libraries/aron/core/data/variant/primitive/Long.cpp
index 2f62027e1..4fc08e880 100644
--- a/source/RobotAPI/libraries/aron/core/data/variant/primitive/Long.cpp
+++ b/source/RobotAPI/libraries/aron/core/data/variant/primitive/Long.cpp
@@ -23,6 +23,7 @@
 
 // Header
 #include "Long.h"
+#include <ArmarXCore/util/CPPUtility/trace.h>
 
 // ArmarX
 #include "Int.h"
diff --git a/source/RobotAPI/libraries/aron/core/data/variant/primitive/String.cpp b/source/RobotAPI/libraries/aron/core/data/variant/primitive/String.cpp
index 9f765ed20..675a15cba 100644
--- a/source/RobotAPI/libraries/aron/core/data/variant/primitive/String.cpp
+++ b/source/RobotAPI/libraries/aron/core/data/variant/primitive/String.cpp
@@ -22,6 +22,7 @@
  */
 
 #include "String.h"
+#include <ArmarXCore/util/CPPUtility/trace.h>
 
 namespace armarx::aron::data
 {
diff --git a/source/RobotAPI/libraries/aron/core/type/rw/Reader.h b/source/RobotAPI/libraries/aron/core/type/rw/Reader.h
index 9b9b5cf97..bde013b6a 100644
--- a/source/RobotAPI/libraries/aron/core/type/rw/Reader.h
+++ b/source/RobotAPI/libraries/aron/core/type/rw/Reader.h
@@ -21,12 +21,12 @@
 #pragma once
 
 // STD/STL
-#include <memory>
 #include <optional>
 #include <string>
 
 // ArmarX
 #include <RobotAPI/interface/aron.h>
+#include <RobotAPI/libraries/aron/core/Descriptor.h>
 #include <RobotAPI/libraries/aron/core/Exception.h>
 
 namespace armarx::aron::type
diff --git a/source/RobotAPI/libraries/aron/core/type/rw/Writer.h b/source/RobotAPI/libraries/aron/core/type/rw/Writer.h
index 27bcfcd0d..5fef12f11 100644
--- a/source/RobotAPI/libraries/aron/core/type/rw/Writer.h
+++ b/source/RobotAPI/libraries/aron/core/type/rw/Writer.h
@@ -27,6 +27,7 @@
 
 // ArmarX
 #include <RobotAPI/interface/aron.h>
+#include <RobotAPI/libraries/aron/core/Descriptor.h>
 #include <RobotAPI/libraries/aron/core/Exception.h>
 
 namespace armarx::aron::type
diff --git a/source/RobotAPI/libraries/aron/core/type/variant/Factory.cpp b/source/RobotAPI/libraries/aron/core/type/variant/Factory.cpp
index 21ba5cd09..3c32ade9f 100644
--- a/source/RobotAPI/libraries/aron/core/type/variant/Factory.cpp
+++ b/source/RobotAPI/libraries/aron/core/type/variant/Factory.cpp
@@ -25,6 +25,7 @@
 
 // Header
 #include "Factory.h"
+#include <ArmarXCore/core/logging/Logging.h>
 
 // ArmarX
 #include <RobotAPI/libraries/aron/core/type/variant/All.h>
diff --git a/source/RobotAPI/libraries/aron/core/type/variant/detail/SpecializedVariant.h b/source/RobotAPI/libraries/aron/core/type/variant/detail/SpecializedVariant.h
index ca11b3c25..fdc1bcf17 100644
--- a/source/RobotAPI/libraries/aron/core/type/variant/detail/SpecializedVariant.h
+++ b/source/RobotAPI/libraries/aron/core/type/variant/detail/SpecializedVariant.h
@@ -25,8 +25,11 @@
 
 #include <memory>
 
+#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
+
 #include "../Variant.h"
 
+
 namespace armarx::aron::type::detail
 {
     template <typename AronTypeT, typename DerivedT>
diff --git a/source/RobotAPI/libraries/aron/filter/data/WhitelistFilter.h b/source/RobotAPI/libraries/aron/filter/data/WhitelistFilter.h
index aa43790e0..88a8c1f3b 100644
--- a/source/RobotAPI/libraries/aron/filter/data/WhitelistFilter.h
+++ b/source/RobotAPI/libraries/aron/filter/data/WhitelistFilter.h
@@ -24,6 +24,7 @@
 #include <algorithm>
 #include <map>
 #include <vector>
+#include <SimoxUtility/algorithm/string/string_tools.h>
 
 #include <RobotAPI/libraries/aron/core/data/variant/All.h>
 #include <RobotAPI/libraries/aron/core/data/visitor/variant/VariantVisitor.h>
diff --git a/source/RobotAPI/libraries/aron/similarity/cosine.cpp b/source/RobotAPI/libraries/aron/similarity/cosine.cpp
index 396ea6613..ac9e22cf0 100644
--- a/source/RobotAPI/libraries/aron/similarity/cosine.cpp
+++ b/source/RobotAPI/libraries/aron/similarity/cosine.cpp
@@ -1,6 +1,7 @@
 #include "cosine.h"
 
 #include <SimoxUtility/algorithm/string.h>
+#include <ArmarXCore/core/logging/Logging.h>
 #include <cmath>
 
 namespace armarx::aron::similarity
diff --git a/source/RobotAPI/libraries/aron/similarity/data/image/NDArraySimilarity.cpp b/source/RobotAPI/libraries/aron/similarity/data/image/NDArraySimilarity.cpp
index 5fb38a7f8..467c9f1da 100644
--- a/source/RobotAPI/libraries/aron/similarity/data/image/NDArraySimilarity.cpp
+++ b/source/RobotAPI/libraries/aron/similarity/data/image/NDArraySimilarity.cpp
@@ -1,6 +1,7 @@
 #include "NDArraySimilarity.h"
 
 #include <cmath>
+#include <ArmarXCore/core/logging/Logging.h>
 #include "mse.h"
 #include "mae.h"
 #include "chernoff.h"
diff --git a/source/RobotAPI/libraries/aron/similarity/data/image/chernoff.cpp b/source/RobotAPI/libraries/aron/similarity/data/image/chernoff.cpp
index 0b4d26bc8..f91feb06a 100644
--- a/source/RobotAPI/libraries/aron/similarity/data/image/chernoff.cpp
+++ b/source/RobotAPI/libraries/aron/similarity/data/image/chernoff.cpp
@@ -3,6 +3,7 @@
 #include <cmath>
 #include <Eigen/Core>
 #include <Eigen/Eigenvalues>
+#include <ArmarXCore/core/logging/Logging.h>
 
 namespace armarx::aron::similarity::chernoff
 {
diff --git a/source/RobotAPI/libraries/aron/similarity/data/image/mse.cpp b/source/RobotAPI/libraries/aron/similarity/data/image/mse.cpp
index cb9dcf9d3..052cccff3 100644
--- a/source/RobotAPI/libraries/aron/similarity/data/image/mse.cpp
+++ b/source/RobotAPI/libraries/aron/similarity/data/image/mse.cpp
@@ -1,6 +1,7 @@
 #include "mse.h"
 
 #include <SimoxUtility/algorithm/string.h>
+#include <ArmarXCore/core/logging/Logging.h>
 #include <cmath>
 
 namespace armarx::aron::similarity
diff --git a/source/RobotAPI/libraries/aron_component_config/PropertyDefinitionVisitors.cpp b/source/RobotAPI/libraries/aron_component_config/PropertyDefinitionVisitors.cpp
index 9ed625949..7541f1ce6 100644
--- a/source/RobotAPI/libraries/aron_component_config/PropertyDefinitionVisitors.cpp
+++ b/source/RobotAPI/libraries/aron_component_config/PropertyDefinitionVisitors.cpp
@@ -22,6 +22,9 @@
 
 #include "PropertyDefinitionVisitors.h"
 
+#include <SimoxUtility/algorithm/string/string_conversion_eigen.h>
+#include <SimoxUtility/algorithm/string/string_tools.h>
+
 #include <ArmarXCore/core/application/properties/PropertyDefinition.h>
 #include <ArmarXCore/core/application/properties/PropertyDefinitionContainer.h>
 #include <ArmarXCore/core/application/properties/PropertyUser.h>
@@ -467,4 +470,4 @@ namespace armarx::aron::component_config
     }
 } // namespace armarx::aron::component_config
 
-#undef INPUT_GUARD
\ No newline at end of file
+#undef INPUT_GUARD
diff --git a/source/RobotAPI/libraries/aron_component_config/VariantHelperFactory.cpp b/source/RobotAPI/libraries/aron_component_config/VariantHelperFactory.cpp
index 10e021861..797f755ea 100644
--- a/source/RobotAPI/libraries/aron_component_config/VariantHelperFactory.cpp
+++ b/source/RobotAPI/libraries/aron_component_config/VariantHelperFactory.cpp
@@ -22,8 +22,11 @@
 
 #include "VariantHelperFactory.h"
 
+#include <SimoxUtility/algorithm/string/string_conversion.h>
+
 #include <ArmarXCore/core/application/properties/Property.h>
 #include <ArmarXCore/core/application/properties/PropertyDefinitionContainer.h>
+#include <ArmarXCore/interface/core/UserException.h>
 
 #include <RobotAPI/libraries/aron/core/data/variant/All.h>
 
@@ -222,4 +225,4 @@ namespace armarx::aron::component_config::products
     template struct products::VariantHelper<type::Descriptor::FLOAT>;
     template struct products::VariantHelper<type::Descriptor::DOUBLE>;
     template struct products::VariantHelper<type::Descriptor::INT_ENUM>;
-} // namespace armarx::aron::component_config::products
\ No newline at end of file
+} // namespace armarx::aron::component_config::products
diff --git a/source/RobotAPI/libraries/skills/core/SkillProxy.h b/source/RobotAPI/libraries/skills/core/SkillProxy.h
index e20ca01a0..d91dc2ae6 100644
--- a/source/RobotAPI/libraries/skills/core/SkillProxy.h
+++ b/source/RobotAPI/libraries/skills/core/SkillProxy.h
@@ -1,5 +1,6 @@
 #pragma once
 
+#include <ArmarXCore/core/logging/Logging.h>
 #include <RobotAPI/libraries/skills/core/SkillDescription.h>
 #include <RobotAPI/libraries/skills/core/SkillStatusUpdate.h>
 
diff --git a/source/RobotAPI/libraries/skills_gui/aron_tree_widget/widgets/EditMatrixWidget.h b/source/RobotAPI/libraries/skills_gui/aron_tree_widget/widgets/EditMatrixWidget.h
index 9d0c8cbfb..e179a8593 100644
--- a/source/RobotAPI/libraries/skills_gui/aron_tree_widget/widgets/EditMatrixWidget.h
+++ b/source/RobotAPI/libraries/skills_gui/aron_tree_widget/widgets/EditMatrixWidget.h
@@ -6,6 +6,7 @@
 #include <QObject>
 #include <QTreeWidgetItem>
 #include <QVBoxLayout>
+#include <SimoxUtility/algorithm/string/string_conversion.h>
 
 #include "RobotAPI/libraries/aron/core/type/variant/ndarray/Matrix.h"
 
diff --git a/source/RobotAPI/libraries/skills_gui/aron_tree_widget/widgets/IntEnumWidget.cpp b/source/RobotAPI/libraries/skills_gui/aron_tree_widget/widgets/IntEnumWidget.cpp
index bbbee283d..458aa39b9 100644
--- a/source/RobotAPI/libraries/skills_gui/aron_tree_widget/widgets/IntEnumWidget.cpp
+++ b/source/RobotAPI/libraries/skills_gui/aron_tree_widget/widgets/IntEnumWidget.cpp
@@ -2,7 +2,8 @@
 
 #include <QHBoxLayout>
 
-#include "RobotAPI/libraries/aron/core/type/variant/All.h"
+#include <SimoxUtility/algorithm/string/string_conversion.h>
+#include <SimoxUtility/error/SimoxError.h>
 
 #include "../ColorPalettes.h"
 #include "../visitors/AronTreeWidgetConverter.h"
diff --git a/source/RobotAPI/libraries/skills_gui/aron_tree_widget/widgets/QuaternionWidget.cpp b/source/RobotAPI/libraries/skills_gui/aron_tree_widget/widgets/QuaternionWidget.cpp
index e8a48aa71..f6d123b76 100644
--- a/source/RobotAPI/libraries/skills_gui/aron_tree_widget/widgets/QuaternionWidget.cpp
+++ b/source/RobotAPI/libraries/skills_gui/aron_tree_widget/widgets/QuaternionWidget.cpp
@@ -7,6 +7,8 @@
 #include "../ColorPalettes.h"
 #include "NDArrayHelper.h"
 
+#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
+
 namespace armarx::skills::gui
 {
 
diff --git a/source/RobotAPI/libraries/skills_gui/aron_tree_widget/widgets/QuaternionWidget.h b/source/RobotAPI/libraries/skills_gui/aron_tree_widget/widgets/QuaternionWidget.h
index f743e3acf..c256f0a22 100644
--- a/source/RobotAPI/libraries/skills_gui/aron_tree_widget/widgets/QuaternionWidget.h
+++ b/source/RobotAPI/libraries/skills_gui/aron_tree_widget/widgets/QuaternionWidget.h
@@ -1,11 +1,14 @@
 #pragma once
+
+#include <cmath>
 #include <vector>
 
 #include <QLineEdit>
 #include <QObject>
 #include <QVBoxLayout>
-
-#include "RobotAPI/libraries/aron/core/type/variant/ndarray/Matrix.h"
+#include <SimoxUtility/algorithm/string/string_conversion.h>
+#include <SimoxUtility/error/SimoxError.h>
+#include <RobotAPI/interface/aron/Aron.h>
 
 #include "CustomWidget.h"
 
diff --git a/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidget.cpp b/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidget.cpp
index 780c2bb72..87a254728 100644
--- a/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidget.cpp
+++ b/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidget.cpp
@@ -4,6 +4,7 @@
 
 #include <QMenu>
 #include <QTreeWidgetItem>
+#include <ArmarXCore/core/logging/Logging.h>
 
 #include "SkillExecutionTreeWidgetItem.h"
 
diff --git a/source/RobotAPI/libraries/skills_gui/memory/SkillManagerWrapper.cpp b/source/RobotAPI/libraries/skills_gui/memory/SkillManagerWrapper.cpp
index 4ff646277..cc72d4565 100644
--- a/source/RobotAPI/libraries/skills_gui/memory/SkillManagerWrapper.cpp
+++ b/source/RobotAPI/libraries/skills_gui/memory/SkillManagerWrapper.cpp
@@ -1,6 +1,8 @@
 #include "SkillManagerWrapper.h"
 
 #include <mutex>
+#include <SimoxUtility/algorithm/string/string_tools.h>
+#include <ArmarXCore/core/logging/Logging.h>
 
 #include "RobotAPI/libraries/skills/core/SkillExecutionRequest.h"
 
-- 
GitLab


From e8b6643c3f990cd21bb741951d6e0b4857fc7334 Mon Sep 17 00:00:00 2001
From: Fabian Reister <fabian.reister@kit.edu>
Date: Fri, 6 Dec 2024 08:19:03 +0100
Subject: [PATCH 4/4] removing includes

---
 source/RobotAPI/libraries/armem/client/Reader.h                | 1 -
 source/RobotAPI/libraries/armem/client/util/SimpleWriterBase.h | 2 --
 2 files changed, 3 deletions(-)

diff --git a/source/RobotAPI/libraries/armem/client/Reader.h b/source/RobotAPI/libraries/armem/client/Reader.h
index d476b25ef..cffe940bc 100644
--- a/source/RobotAPI/libraries/armem/client/Reader.h
+++ b/source/RobotAPI/libraries/armem/client/Reader.h
@@ -2,7 +2,6 @@
 
 
 // STD/STL
-#include <mutex>
 #include <optional>
 #include <vector>
 
diff --git a/source/RobotAPI/libraries/armem/client/util/SimpleWriterBase.h b/source/RobotAPI/libraries/armem/client/util/SimpleWriterBase.h
index 4950280b3..167255485 100644
--- a/source/RobotAPI/libraries/armem/client/util/SimpleWriterBase.h
+++ b/source/RobotAPI/libraries/armem/client/util/SimpleWriterBase.h
@@ -21,8 +21,6 @@
 
 #pragma once
 
-#include <mutex>
-
 #include <ArmarXCore/core/application/properties/PropertyDefinitionContainer.h>
 
 #include <RobotAPI/libraries/armem/client/Writer.h>
-- 
GitLab