diff --git a/scenarios/ArMemObjectMemory/config/ObjectPoseProviderExample.cfg b/scenarios/ArMemObjectMemory/config/ObjectPoseProviderExample.cfg
index 45075e6114eae82fe89f50317c0bced824c96b46..76fbf317102eb56ab01bfd0037544c69f85c6c27 100644
--- a/scenarios/ArMemObjectMemory/config/ObjectPoseProviderExample.cfg
+++ b/scenarios/ArMemObjectMemory/config/ObjectPoseProviderExample.cfg
@@ -135,6 +135,15 @@
 # ArmarX.ObjectPoseProviderExample.Objects = KIT/Amicelli, KIT/YellowSaltCylinder
 
 
+# ArmarX.ObjectPoseProviderExample.SingleShot:  If true, publishes only one snapshot.
+#  Attributes:
+#  - Default:            false
+#  - Case sensitivity:   yes
+#  - Required:           no
+#  - Possible values: {0, 1, false, no, true, yes}
+# ArmarX.ObjectPoseProviderExample.SingleShot = false
+
+
 # ArmarX.ObjectPoseProviderExample.tpc.pub.DebugObserver:  Name of the `DebugObserver` topic to publish data to.
 #  Attributes:
 #  - Default:            DebugObserver
diff --git a/source/RobotAPI/components/ObjectPoseProviderExample/ObjectPoseProviderExample.cpp b/source/RobotAPI/components/ObjectPoseProviderExample/ObjectPoseProviderExample.cpp
index c0ef77b2f4b728d245c446b9782336843157d9e6..a87d465a301b423defc89260a52cb15164bcd37d 100644
--- a/source/RobotAPI/components/ObjectPoseProviderExample/ObjectPoseProviderExample.cpp
+++ b/source/RobotAPI/components/ObjectPoseProviderExample/ObjectPoseProviderExample.cpp
@@ -42,6 +42,8 @@ namespace armarx
         defs->optional(initialObjectIDs, "Objects", "Object IDs of objects to be tracked.")
         .map(simox::alg::join(initialObjectIDs, ", "), initialObjectIDs);
 
+        defs->optional(singleShot, "SingleShot", "If true, publishes only one snapshot.");
+
         return defs;
     }
 
@@ -172,6 +174,11 @@ namespace armarx
             ARMARX_VERBOSE << "Reporting " << poses.size() << " object poses";
             objectPoseTopic->reportObjectPoses(getName(), poses);
 
+            if (singleShot)
+            {
+                break;
+            }
+
             cycle.waitForCycleDuration();
         }
     }
diff --git a/source/RobotAPI/components/ObjectPoseProviderExample/ObjectPoseProviderExample.h b/source/RobotAPI/components/ObjectPoseProviderExample/ObjectPoseProviderExample.h
index 7ed814eb06c219f3280f1d5d4e9473ef56344fb0..8de0dac4589f9ab3333becd9a464a0ef236231f5 100644
--- a/source/RobotAPI/components/ObjectPoseProviderExample/ObjectPoseProviderExample.h
+++ b/source/RobotAPI/components/ObjectPoseProviderExample/ObjectPoseProviderExample.h
@@ -102,6 +102,8 @@ namespace armarx
 
         armarx::ObjectFinder objectFinder;
         std::vector<std::string> initialObjectIDs = { "KIT/Amicelli", "KIT/YellowSaltCylinder" };
+        bool singleShot = false;
+
 
         armarx::SimpleRunningTask<>::pointer_type poseEstimationTask;