diff --git a/src/modules/ekf2/ekf2_main.cpp b/src/modules/ekf2/ekf2_main.cpp index e026f1baeb..b8d1c3c5d4 100644 --- a/src/modules/ekf2/ekf2_main.cpp +++ b/src/modules/ekf2/ekf2_main.cpp @@ -176,7 +176,6 @@ private: // process noise control::BlockParamFloat _gyro_bias_p_noise; control::BlockParamFloat _accel_bias_p_noise; - control::BlockParamFloat _gyro_scale_p_noise; control::BlockParamFloat _mage_p_noise; control::BlockParamFloat _magb_p_noise; control::BlockParamFloat _wind_vel_p_noise; @@ -275,7 +274,6 @@ Ekf2::Ekf2(): _accel_noise(this, "EKF2_ACC_NOISE", false, &_params->accel_noise), _gyro_bias_p_noise(this, "EKF2_GYR_B_NOISE", false, &_params->gyro_bias_p_noise), _accel_bias_p_noise(this, "EKF2_ACC_B_NOISE", false, &_params->accel_bias_p_noise), - _gyro_scale_p_noise(this, "EKF2_GYR_S_NOISE", false, &_params->gyro_scale_p_noise), _mage_p_noise(this, "EKF2_MAG_E_NOISE", false, &_params->mage_p_noise), _magb_p_noise(this, "EKF2_MAG_B_NOISE", false, &_params->magb_p_noise), _wind_vel_p_noise(this, "EKF2_WIND_NOISE", false, &_params->wind_vel_p_noise), diff --git a/src/modules/ekf2/ekf2_params.c b/src/modules/ekf2/ekf2_params.c index 98c96ba20d..aaa0785f88 100644 --- a/src/modules/ekf2/ekf2_params.c +++ b/src/modules/ekf2/ekf2_params.c @@ -211,7 +211,7 @@ PARAM_DEFINE_FLOAT(EKF2_REQ_VDRIFT, 0.5f); * @unit rad/s * @decimal 4 */ -PARAM_DEFINE_FLOAT(EKF2_GYR_NOISE, 6.0e-2f); +PARAM_DEFINE_FLOAT(EKF2_GYR_NOISE, 1.5e-2f); /** * Accelerometer noise for covariance prediction. @@ -222,39 +222,29 @@ PARAM_DEFINE_FLOAT(EKF2_GYR_NOISE, 6.0e-2f); * @unit m/s/s * @decimal 2 */ -PARAM_DEFINE_FLOAT(EKF2_ACC_NOISE, 0.25f); +PARAM_DEFINE_FLOAT(EKF2_ACC_NOISE, 3.5e-1f); /** - * Process noise for delta angle bias prediction. - * - * @group EKF2 - * @min 0.0 - * @max 0.0001 - * @unit rad/s - * @decimal 8 - */ -PARAM_DEFINE_FLOAT(EKF2_GYR_B_NOISE, 2.5e-6f); - -/** - * Process noise for delta velocity z bias prediction. - * - * @group EKF2 - * @min 0.0 - * @max 0.01 - * @unit m/s/s - * @decimal 7 - */ -PARAM_DEFINE_FLOAT(EKF2_ACC_B_NOISE, 3.0e-5f); - -/** - * Process noise for delta angle scale factor prediction. + * Process noise for IMU rate gyro bias prediction. * * @group EKF2 * @min 0.0 * @max 0.01 + * @unit rad/s**2 * @decimal 6 */ -PARAM_DEFINE_FLOAT(EKF2_GYR_S_NOISE, 3.0e-4f); +PARAM_DEFINE_FLOAT(EKF2_GYR_B_NOISE, 1.0e-3f); + +/** + * Process noise for IMU accelerometer bias prediction. + * + * @group EKF2 + * @min 0.0 + * @max 0.01 + * @unit m/s**3 + * @decimal 6 + */ +PARAM_DEFINE_FLOAT(EKF2_ACC_B_NOISE, 3.0e-3f); /** * Process noise for body magnetic field prediction. @@ -265,7 +255,7 @@ PARAM_DEFINE_FLOAT(EKF2_GYR_S_NOISE, 3.0e-4f); * @unit Gauss/s * @decimal 6 */ -PARAM_DEFINE_FLOAT(EKF2_MAG_B_NOISE, 5.0e-4f); +PARAM_DEFINE_FLOAT(EKF2_MAG_B_NOISE, 1.0e-4f); /** * Process noise for earth magnetic field prediction. @@ -276,7 +266,7 @@ PARAM_DEFINE_FLOAT(EKF2_MAG_B_NOISE, 5.0e-4f); * @unit Gauss/s * @decimal 6 */ -PARAM_DEFINE_FLOAT(EKF2_MAG_E_NOISE, 2.5e-3f); +PARAM_DEFINE_FLOAT(EKF2_MAG_E_NOISE, 1.0e-3f); /** * Process noise for wind velocity prediction. @@ -331,7 +321,7 @@ PARAM_DEFINE_FLOAT(EKF2_NOAID_NOISE, 10.0f); * @unit m * @decimal 2 */ -PARAM_DEFINE_FLOAT(EKF2_BARO_NOISE, 3.0f); +PARAM_DEFINE_FLOAT(EKF2_BARO_NOISE, 2.0f); /** * Measurement noise for magnetic heading fusion. @@ -419,8 +409,7 @@ PARAM_DEFINE_INT32(EKF2_DECL_TYPE, 7); * @value 0 Automatic * @value 1 Magnetic heading * @value 2 3-axis fusion - * @value 3 2-D projection - * @value 4 None + * @value 3 None */ PARAM_DEFINE_INT32(EKF2_MAG_TYPE, 0); @@ -466,15 +455,16 @@ PARAM_DEFINE_FLOAT(EKF2_GPS_V_GATE, 5.0f); PARAM_DEFINE_INT32(EKF2_REC_RPL, 0); /** - * Integer bitmask controlling which external aiding sources will be used. + * Integer bitmask controlling data fusion and aiding methods. * * Set bits in the following positions to enable: * 0 : Set to true to use GPS data if available * 1 : Set to true to use optical flow data if available + * 2 : Set to true to inhibit IMU bias estimation * * @group EKF2 * @min 0 - * @max 3 + * @max 15 */ PARAM_DEFINE_INT32(EKF2_AID_MASK, 1);