diff --git a/src/frame_base.h b/src/frame_base.h
index 408b6b0bc9f061fd3e6bb703bd829a88f80bef09..d96a8fead8698b86a47fead5c94162141cf703df 100644
--- a/src/frame_base.h
+++ b/src/frame_base.h
@@ -133,6 +133,8 @@ class FrameBase : public NodeBase, public std::enable_shared_from_this<FrameBase
         CaptureBaseList& getCaptureList();
         CaptureBasePtr addCapture(CaptureBasePtr _capt_ptr);
         CaptureBasePtr getCaptureOf(const SensorBasePtr _sensor_ptr);
+        CaptureBasePtr getCaptureOf(const SensorBasePtr _sensor_ptr, const std::string& type);
+        CaptureBaseList getCapturesOf(const SensorBasePtr _sensor_ptr);
         void unlinkCapture(CaptureBasePtr _cap_ptr);
 
         void getConstraintList(ConstraintBaseList& _ctr_list);
@@ -317,6 +319,27 @@ inline CaptureBasePtr FrameBase::getCaptureOf(const SensorBasePtr _sensor_ptr)
     return nullptr;
 }
 
+inline CaptureBasePtr
+FrameBase::getCaptureOf(const SensorBasePtr _sensor_ptr, const std::string& type)
+{
+  for (CaptureBasePtr capture_ptr : getCaptureList())
+      if (capture_ptr->getSensorPtr() == _sensor_ptr &&
+          capture_ptr->getType() == type)
+          return capture_ptr;
+  return nullptr;
+}
+
+inline CaptureBaseList FrameBase::getCapturesOf(const SensorBasePtr _sensor_ptr)
+{
+    CaptureBaseList captures;
+
+    for (CaptureBasePtr capture_ptr : getCaptureList())
+        if (capture_ptr->getSensorPtr() == _sensor_ptr)
+            captures.push_back(capture_ptr);
+
+    return captures;
+}
+
 inline void FrameBase::unlinkCapture(CaptureBasePtr _cap_ptr)
 {
     _cap_ptr->unlinkFromFrame();