|
|
|
@ -1110,7 +1110,9 @@ void Ekf2::Run()
@@ -1110,7 +1110,9 @@ void Ekf2::Run()
|
|
|
|
|
// velocity measurement error from ev_data or parameters
|
|
|
|
|
float param_evv_noise_var = sq(_param_ekf2_evv_noise.get()); |
|
|
|
|
|
|
|
|
|
if (!_param_ekf2_ev_noise_md.get() && PX4_ISFINITE(_ev_odom.pose_covariance[_ev_odom.COVARIANCE_MATRIX_VX_VARIANCE])) { |
|
|
|
|
if (!_param_ekf2_ev_noise_md.get() && PX4_ISFINITE(_ev_odom.pose_covariance[_ev_odom.COVARIANCE_MATRIX_VX_VARIANCE]) |
|
|
|
|
&& PX4_ISFINITE(_ev_odom.pose_covariance[_ev_odom.COVARIANCE_MATRIX_VY_VARIANCE]) |
|
|
|
|
&& PX4_ISFINITE(_ev_odom.pose_covariance[_ev_odom.COVARIANCE_MATRIX_VZ_VARIANCE])) { |
|
|
|
|
ev_data.velVar(0) = fmaxf(param_evv_noise_var, _ev_odom.pose_covariance[_ev_odom.COVARIANCE_MATRIX_VX_VARIANCE]); |
|
|
|
|
ev_data.velVar(1) = fmaxf(param_evv_noise_var, _ev_odom.pose_covariance[_ev_odom.COVARIANCE_MATRIX_VY_VARIANCE]); |
|
|
|
|
ev_data.velVar(2) = fmaxf(param_evv_noise_var, _ev_odom.pose_covariance[_ev_odom.COVARIANCE_MATRIX_VZ_VARIANCE]); |
|
|
|
@ -1129,13 +1131,15 @@ void Ekf2::Run()
@@ -1129,13 +1131,15 @@ void Ekf2::Run()
|
|
|
|
|
float param_evp_noise_var = sq(_param_ekf2_evp_noise.get()); |
|
|
|
|
|
|
|
|
|
// position measurement error from ev_data or parameters
|
|
|
|
|
if (!_param_ekf2_ev_noise_md.get() && PX4_ISFINITE(_ev_odom.pose_covariance[_ev_odom.COVARIANCE_MATRIX_X_VARIANCE])) { |
|
|
|
|
if (!_param_ekf2_ev_noise_md.get() && PX4_ISFINITE(_ev_odom.pose_covariance[_ev_odom.COVARIANCE_MATRIX_X_VARIANCE]) |
|
|
|
|
&& PX4_ISFINITE(_ev_odom.pose_covariance[_ev_odom.COVARIANCE_MATRIX_Y_VARIANCE]) |
|
|
|
|
&& PX4_ISFINITE(_ev_odom.pose_covariance[_ev_odom.COVARIANCE_MATRIX_Z_VARIANCE])) { |
|
|
|
|
ev_data.posVar(0) = fmaxf(param_evp_noise_var, _ev_odom.pose_covariance[_ev_odom.COVARIANCE_MATRIX_X_VARIANCE]); |
|
|
|
|
ev_data.posVar(1) = fmaxf(param_evp_noise_var, _ev_odom.pose_covariance[_ev_odom.COVARIANCE_MATRIX_Y_VARIANCE]); |
|
|
|
|
ev_data.posVar(2) = fmaxf(param_evp_noise_var, _ev_odom.pose_covariance[_ev_odom.COVARIANCE_MATRIX_Z_VARIANCE]); |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
ev_data.posVar.setAll(_param_ekf2_evp_noise.get()); |
|
|
|
|
ev_data.posVar.setAll(param_evp_noise_var); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|