diff --git a/src/frame_base.h b/src/frame_base.h
index d96a8fead8698b86a47fead5c94162141cf703df..51c60e82a4b8f466ccd824a31c3a3d136c9f9b59 100644
--- a/src/frame_base.h
+++ b/src/frame_base.h
@@ -137,6 +137,9 @@ class FrameBase : public NodeBase, public std::enable_shared_from_this<FrameBase
         CaptureBaseList getCapturesOf(const SensorBasePtr _sensor_ptr);
         void unlinkCapture(CaptureBasePtr _cap_ptr);
 
+        ConstraintBasePtr getConstraintOf(const ProcessorBasePtr _processor_ptr);
+        ConstraintBasePtr getConstraintOf(const ProcessorBasePtr _processor_ptr, const std::string& type);
+
         void getConstraintList(ConstraintBaseList& _ctr_list);
         virtual ConstraintBasePtr addConstrainedBy(ConstraintBasePtr _ctr_ptr);
         unsigned int getHits() const;
@@ -346,6 +349,25 @@ inline void FrameBase::unlinkCapture(CaptureBasePtr _cap_ptr)
     capture_list_.remove(_cap_ptr);
 }
 
+inline ConstraintBasePtr
+FrameBase::getConstraintOf(const ProcessorBasePtr _processor_ptr)
+{
+  for (const ConstraintBasePtr& constaint_ptr : getConstrainedByList())
+      if (constaint_ptr->getProcessor() == _processor_ptr)
+          return constaint_ptr;
+  return nullptr;
+}
+
+inline ConstraintBasePtr
+FrameBase::getConstraintOf(const ProcessorBasePtr _processor_ptr, const std::string& type)
+{
+  for (const ConstraintBasePtr& constaint_ptr : getConstrainedByList())
+      if (constaint_ptr->getProcessor() == _processor_ptr &&
+          constaint_ptr->getType() == type)
+          return constaint_ptr;
+  return nullptr;
+}
+
 inline void FrameBase::getConstraintList(ConstraintBaseList& _ctr_list)
 {
     for (auto c_ptr : getCaptureList())