diff --git a/source/RobotAPI/interface/objectpose/object_pose_types.ice b/source/RobotAPI/interface/objectpose/object_pose_types.ice
index 385da35e387d04b21aaea7e4845b073f9c977ee4..eb23d767e8c64892e9000eec890ef545ac8127d2 100644
--- a/source/RobotAPI/interface/objectpose/object_pose_types.ice
+++ b/source/RobotAPI/interface/objectpose/object_pose_types.ice
@@ -64,6 +64,8 @@ module armarx
                 string providerName;
                 /// Known or unknown object.
                 ObjectTypeEnum objectType = AnyObject;
+                /// Whether object is static. Static objects don't decay.
+                bool isStatic = false;
 
                 /// The object ID, i.e. dataset and name.
                 armarx::data::ObjectID objectID;
@@ -92,6 +94,8 @@ module armarx
                 string providerName;
                 /// Known or unknown object.
                 ObjectTypeEnum objectType = AnyObject;
+                /// Whether object is static. Static objects don't decay.
+                bool isStatic = false;
 
                 /// The object ID, i.e. dataset and name.
                 armarx::data::ObjectID objectID;
diff --git a/source/RobotAPI/libraries/ArmarXObjects/ObjectPose.cpp b/source/RobotAPI/libraries/ArmarXObjects/ObjectPose.cpp
index 171da9c1a660b8257b2abc3f1b1f05ff6c0deb98..b37f432ef60adbca9307f61598bdfc5d05e18eea 100644
--- a/source/RobotAPI/libraries/ArmarXObjects/ObjectPose.cpp
+++ b/source/RobotAPI/libraries/ArmarXObjects/ObjectPose.cpp
@@ -29,6 +29,7 @@ namespace armarx::objpose
     {
         providerName = ice.providerName;
         objectType = ice.objectType;
+        isStatic = ice.isStatic;
         armarx::fromIce(ice.objectID, objectID);
 
         objectPoseRobot = ::armarx::fromIce(ice.objectPoseRobot);
@@ -58,6 +59,7 @@ namespace armarx::objpose
     {
         ice.providerName = providerName;
         ice.objectType = objectType;
+        ice.isStatic = isStatic;
         armarx::toIce(ice.objectID, objectID);
 
         ice.objectPoseRobot = new Pose(objectPoseRobot);
@@ -80,6 +82,7 @@ namespace armarx::objpose
     {
         providerName = provided.providerName;
         objectType = provided.objectType;
+        isStatic = provided.isStatic;
         armarx::fromIce(provided.objectID, objectID);
 
         objectPoseOriginal = ::armarx::fromIce(provided.objectPose);
diff --git a/source/RobotAPI/libraries/ArmarXObjects/ObjectPose.h b/source/RobotAPI/libraries/ArmarXObjects/ObjectPose.h
index 023d6351f3bcf2533188e0df197b7f8e61806388..754c1a1b178c9b88a600b466cb73c5c10a617c5a 100644
--- a/source/RobotAPI/libraries/ArmarXObjects/ObjectPose.h
+++ b/source/RobotAPI/libraries/ArmarXObjects/ObjectPose.h
@@ -1,6 +1,9 @@
 #pragma once
 
 #include <optional>
+#include <map>
+#include <vector>
+
 
 #include <Eigen/Core>
 
@@ -47,6 +50,8 @@ namespace armarx::objpose
         std::string providerName;
         /// Known or unknown object.
         ObjectTypeEnum objectType = AnyObject;
+        /// Whether object is static. Static objects don't decay.
+        bool isStatic = false;
 
         /// The object ID, i.e. dataset, class name and instance name.
         armarx::ObjectID objectID;
@@ -90,6 +95,7 @@ namespace armarx::objpose
         void updateAttached(VirtualRobot::RobotPtr agent);
     };
     using ObjectPoseSeq = std::vector<ObjectPose>;
+    using ObjectPoseMap = std::map<ObjectID, ObjectPose>;
 
 
     void fromIce(const data::ObjectAttachmentInfo& ice, ObjectAttachmentInfo& attachment);
diff --git a/source/RobotAPI/libraries/ArmarXObjects/aron/ObjectPose.xml b/source/RobotAPI/libraries/ArmarXObjects/aron/ObjectPose.xml
index e9701dc24c9a891449c9025a514322eaa615b52f..cc1a3a0467dba42f8bb87a89069b72d8e85e1189 100644
--- a/source/RobotAPI/libraries/ArmarXObjects/aron/ObjectPose.xml
+++ b/source/RobotAPI/libraries/ArmarXObjects/aron/ObjectPose.xml
@@ -38,6 +38,10 @@ ARON DTO of armarx::objpose::ObjectPose.
                 <armarx::objpose::arondto::ObjectType />
             </ObjectChild>
 
+            <ObjectChild key='isStatic'>
+                <bool />
+            </ObjectChild>
+
             <ObjectChild key='objectID'>
                 <armarx::arondto::ObjectID />
             </ObjectChild>
diff --git a/source/RobotAPI/libraries/ArmarXObjects/aron_conversions/objpose.cpp b/source/RobotAPI/libraries/ArmarXObjects/aron_conversions/objpose.cpp
index 77880a524910eba68ac33c76a463f8eda228eafe..26f07a947f311676af0a746156b2ac0fb255b417 100644
--- a/source/RobotAPI/libraries/ArmarXObjects/aron_conversions/objpose.cpp
+++ b/source/RobotAPI/libraries/ArmarXObjects/aron_conversions/objpose.cpp
@@ -61,8 +61,8 @@ void armarx::objpose::toAron(arondto::ObjectType& dto, const ObjectTypeEnum& bo)
 void armarx::objpose::fromAron(const arondto::ObjectPose& dto, ObjectPose& bo)
 {
     bo.providerName = dto.providerName;
-
     fromAron(dto.objectType, bo.objectType);
+    bo.isStatic = dto.isStatic;
     fromAron(dto.objectID, bo.objectID);
 
     bo.objectPoseRobot = dto.objectPoseRobot;
@@ -102,8 +102,8 @@ void armarx::objpose::fromAron(const arondto::ObjectPose& dto, ObjectPose& bo)
 void armarx::objpose::toAron(arondto::ObjectPose& dto, const ObjectPose& bo)
 {
     dto.providerName = bo.providerName;
-
     toAron(dto.objectType, bo.objectType);
+    dto.isStatic = bo.isStatic;
     toAron(dto.objectID, bo.objectID);
 
     dto.objectPoseRobot = bo.objectPoseRobot;