diff --git a/src/processor/processor_bundle_adjustment.cpp b/src/processor/processor_bundle_adjustment.cpp
index 627296b8bae01036c90c69a98436e9125b05fc7f..d70e7e7dc79f9aed9c88d099657412f102ce7355 100644
--- a/src/processor/processor_bundle_adjustment.cpp
+++ b/src/processor/processor_bundle_adjustment.cpp
@@ -62,7 +62,8 @@ void ProcessorBundleAdjustment::configure(SensorBasePtr _sensor)
 {
     //TODO: Implement if needed
 	//Initialize camera sensor pointer
-	camera = std::static_pointer_cast<SensorCamera>(_sensor);
+	camera = std::dynamic_pointer_cast<SensorCamera>(_sensor);
+    assert(camera != nullptr && "Sensor is not of type Camera");
 
 }
 
diff --git a/src/processor/processor_tracker_feature_image.cpp b/src/processor/processor_tracker_feature_image.cpp
index 8d8149ba240a2c0ac76eea576289a82c3b4612d7..2f8d8195ca8046ac74f0412c9ad2f84bb37f5483 100644
--- a/src/processor/processor_tracker_feature_image.cpp
+++ b/src/processor/processor_tracker_feature_image.cpp
@@ -44,7 +44,8 @@ ProcessorTrackerFeatureImage::~ProcessorTrackerFeatureImage()
 
 void ProcessorTrackerFeatureImage::configure(SensorBasePtr _sensor)
 {
-    SensorCameraPtr camera = std::static_pointer_cast<SensorCamera>(_sensor);
+    SensorCameraPtr camera = std::dynamic_pointer_cast<SensorCamera>(_sensor);
+    assert(camera != nullptr && "Sensor is not of type Camera");
 
     image_.width_ = camera->getImgWidth();
     image_.height_ = camera->getImgHeight();
diff --git a/src/processor/processor_tracker_feature_trifocal.cpp b/src/processor/processor_tracker_feature_trifocal.cpp
index d170ec5313c9d16d7511c60242707720d8e70cdf..b67609dc4020ac861dce2f7a445602273c9364b6 100644
--- a/src/processor/processor_tracker_feature_trifocal.cpp
+++ b/src/processor/processor_tracker_feature_trifocal.cpp
@@ -448,6 +448,8 @@ void ProcessorTrackerFeatureTrifocal::setParams(const ProcessorParamsTrackerFeat
 
 void ProcessorTrackerFeatureTrifocal::configure(SensorBasePtr _sensor)
 {
+    SensorCameraPtr camera = std::dynamic_pointer_cast<SensorCamera>(_sensor);
+    assert(camera != nullptr && "Sensor is not of type Camera");
     _sensor->setNoiseStd(Vector2d::Ones() * params_tracker_feature_trifocal_->pixel_noise_std);
 }
 
diff --git a/src/processor/processor_tracker_landmark_image.cpp b/src/processor/processor_tracker_landmark_image.cpp
index 841d501c8ca9a62c5adec7dbdd1e808c8a7607f7..a0024e3ef668aeb353cd52f582e010a0e7143816 100644
--- a/src/processor/processor_tracker_landmark_image.cpp
+++ b/src/processor/processor_tracker_landmark_image.cpp
@@ -58,6 +58,10 @@ ProcessorTrackerLandmarkImage::~ProcessorTrackerLandmarkImage()
 
 void ProcessorTrackerLandmarkImage::configure(SensorBasePtr _sensor)
 {
+
+    auto sensor = std::dynamic_pointer_cast<SensorCamera>(_sensor);
+    assert(sensor != nullptr && "Sensor is not of type Camera");
+
     SensorCameraPtr camera(std::static_pointer_cast<SensorCamera>(_sensor));
     image_.width_ = camera->getImgWidth();
     image_.height_ = camera->getImgHeight();