diff --git a/src/examples/processor_tracker_landmark_apriltag.yaml b/src/examples/processor_tracker_landmark_apriltag.yaml
index ae9d373fbe94f9c3261fa77a8042545208f2e933..7dc97c7451f1f03560ae3eebba6f56d09592e891 100644
--- a/src/examples/processor_tracker_landmark_apriltag.yaml
+++ b/src/examples/processor_tracker_landmark_apriltag.yaml
@@ -25,6 +25,7 @@ noise:
     std_xy :          0.05 # m 
     std_z :           0.05 # m 
     std_rpy_degrees : 20   # degrees
+    std_pix:          2    # pixel error
     
 vote:
     voting active:              true
diff --git a/src/examples/test_apriltag.cpp b/src/examples/test_apriltag.cpp
index 4964ce4cd77943a5a863d3a09992ef6c9edcabfc..f4728ed9692976c26f1461be8e538afd78dd3bf2 100644
--- a/src/examples/test_apriltag.cpp
+++ b/src/examples/test_apriltag.cpp
@@ -69,10 +69,12 @@ int main(int argc, char *argv[])
 
     // set prior
     Eigen::Matrix6s covariance = Matrix6s::Identity();
-    Scalar stdev_m   = 0.00001;  // standard deviation on original translation
-    Scalar stdev_deg = 0.00001;  // standard deviation on original rotation
-    covariance.topLeftCorner(3,3)       =  stdev_m*stdev_m * covariance.topLeftCorner(3,3);
-    covariance.bottomRightCorner(3,3)   = (M_TORAD*stdev_deg)*(M_TORAD*stdev_deg) * covariance.bottomRightCorner(3,3);
+//    Scalar stdev_m   = 0.00001;  // standard deviation on original translation
+//    Scalar stdev_deg = 0.00001;  // standard deviation on original rotation
+    Scalar std_m   = 100;  // standard deviation on original translation
+    Scalar std_deg = 10;  // standard deviation on original rotation
+    covariance.topLeftCorner(3,3)       =  std_m*std_m * covariance.topLeftCorner(3,3);
+    covariance.bottomRightCorner(3,3)   = (M_TORAD*std_deg)*(M_TORAD*std_deg) * covariance.bottomRightCorner(3,3);
 
 //    FrameBasePtr F1 = problem->setPrior((Vector7s()<<0,0,0,0,0,0,1).finished(), covariance, 0.0, 0.1);
     FrameBasePtr F1 = problem->setPrior((Vector7s()<<0.08, 0, -0.75, 0, 0, 0, 1).finished(), covariance, 0.0, 0.1);
diff --git a/src/processors/processor_tracker_landmark_apriltag.cpp b/src/processors/processor_tracker_landmark_apriltag.cpp
index f6bd329178979acc00baa6cc823c928dfad5b295..a25157bf3a7fb35b7a9387068d1dcef410bae4d5 100644
--- a/src/processors/processor_tracker_landmark_apriltag.cpp
+++ b/src/processors/processor_tracker_landmark_apriltag.cpp
@@ -33,6 +33,7 @@ ProcessorTrackerLandmarkApriltag::ProcessorTrackerLandmarkApriltag( ProcessorPar
         std_xy_ (_params_tracker_landmark_apriltag->std_xy_ ),
         std_z_  (_params_tracker_landmark_apriltag->std_z_  ),
         std_rpy_(_params_tracker_landmark_apriltag->std_rpy_),
+        std_pix_(_params_tracker_landmark_apriltag->std_pix_),
         min_time_vote_(_params_tracker_landmark_apriltag->min_time_vote),
         min_features_for_keyframe_(_params_tracker_landmark_apriltag->min_features_for_keyframe)
 {
@@ -161,10 +162,9 @@ void ProcessorTrackerLandmarkApriltag::preProcess()
         pose << translation, R2q(c_M_t.linear()).coeffs();
 
         // compute the covariance
-//        Eigen::Matrix6s cov = getVarVec().asDiagonal() ;
-        double sig_q = 2;
-        std::vector<Scalar> k_vec = {cx_, cy_, fx_, fy_};
-        Eigen::Matrix6s cov = computeCovariance(translation, c_M_t.linear(), k_vec, tag_width, sig_q);
+        Eigen::Matrix6s cov = getVarVec().asDiagonal() ;  // fixed dummy covariance
+//        std::vector<Scalar> k_vec = {cx_, cy_, fx_, fy_};
+//        Eigen::Matrix6s cov = computeCovariance(translation, c_M_t.linear(), k_vec, tag_width, std_pix_);
 
         // add to detected features list
         detections_incoming_.push_back(std::make_shared<FeatureApriltag>(pose, cov, tag_id, *det));
@@ -324,15 +324,13 @@ Eigen::Matrix6s ProcessorTrackerLandmarkApriltag::computeCovariance(Eigen::Vecto
          0,  k_vec[3], k_vec[1],
          0,  0,  1;
 
-    // position of the 4 corners of the tag in its reference frame (which is in its middle
+    // position of the 4 corners of the tag in its reference frame (which is in its middle)
     Eigen::Vector3s p1; p1 <<  1,  1, 0; p1 = p1*tag_width/2; // top left
     Eigen::Vector3s p2; p2 << -1,  1, 0; p2 = p2*tag_width/2; // top right
     Eigen::Vector3s p3; p3 << -1, -1, 0; p3 = p3*tag_width/2; // bottom right
     Eigen::Vector3s p4; p4 <<  1, -1, 0; p4 = p4*tag_width/2; // bottom left
     std::vector<Eigen::Vector3s> pvec = {p1, p2, p3, p4};
 
-//    WOLF_TRACE(pvec);
-
     // Initialize jacobian matrices
     Eigen::Matrix<Scalar, 8, 6> J_u_TR = Eigen::Matrix<Scalar, 8, 6>::Zero();
     Eigen::Vector3s h;
diff --git a/src/processors/processor_tracker_landmark_apriltag.h b/src/processors/processor_tracker_landmark_apriltag.h
index ea4cccb681e07d9ddfaf8b7912af336e40f442b6..5df0cd650b0349cd2b4a64d2f86ecb027f202f13 100644
--- a/src/processors/processor_tracker_landmark_apriltag.h
+++ b/src/processors/processor_tracker_landmark_apriltag.h
@@ -38,6 +38,7 @@ struct ProcessorParamsTrackerLandmarkApriltag : public ProcessorParamsTrackerLan
     bool refine_pose_;
 
     Scalar std_xy_, std_z_, std_rpy_;
+    Scalar std_pix_;
     Scalar min_time_vote;
 };
 
@@ -130,6 +131,7 @@ class ProcessorTrackerLandmarkApriltag : public ProcessorTrackerLandmark
         apriltag_detector_t detector_;
         apriltag_family_t tag_family_;
         Scalar std_xy_, std_z_, std_rpy_;   ///< dummy std values for covariance computation
+        Scalar std_pix_;                    ///< pixel error to be propagated to a camera to tag transformation covariance
         Eigen::Affine3ds c_M_ac_;           ///< aprilCamera-to-camera transform
         double cx_, cy_, fx_, fy_;
 
diff --git a/src/yaml/processor_tracker_landmark_apriltag_yaml.cpp b/src/yaml/processor_tracker_landmark_apriltag_yaml.cpp
index aad5847e0fe264c4518a7a2c4ada6a9a3947fcb6..42913851a959ac4c8e15a3a57cb4f1f2f5794370 100644
--- a/src/yaml/processor_tracker_landmark_apriltag_yaml.cpp
+++ b/src/yaml/processor_tracker_landmark_apriltag_yaml.cpp
@@ -62,6 +62,7 @@ static ProcessorParamsBasePtr createProcessorParamsLandmarkApriltag(const std::s
         params->std_xy_                      = noise["std_xy"]                       .as<Scalar>();
         params->std_z_                       = noise["std_z"]                        .as<Scalar>();
         params->std_rpy_           = M_TORAD * noise["std_rpy_degrees"]              .as<Scalar>();
+        params->std_pix_                     = noise["std_pix"]                      .as<Scalar>();
 
         YAML::Node vote                     = config["vote"];
         params->voting_active               = vote["voting active"]                  .as<bool>();