diff --git a/ROMFS/px4fmu_common/init.d/rc.mc_apps b/ROMFS/px4fmu_common/init.d/rc.mc_apps index a28ff1bbe1..beb9891d2e 100644 --- a/ROMFS/px4fmu_common/init.d/rc.mc_apps +++ b/ROMFS/px4fmu_common/init.d/rc.mc_apps @@ -4,11 +4,21 @@ # att & pos estimator, att & pos control. # -# previously (2014) the system was relying on -# INAV, which defaults to 0 now. +# The system is defaulting to INAV_ENABLED = 1 +# but users can alternatively try the EKF-based +# filter by setting INAV_ENABLED = 0 if param compare INAV_ENABLED 1 then - attitude_estimator_q start + # The system is defaulting to EKF_ATT_ENABLED = 1 + # and uses the older EKF filter. However users can + # enable the new quaternion based complimentary + # filter by setting EKF_ATT_ENABLED = 0. + if param compare EKF_ATT_ENABLED 1 + then + attitude_estimator_ekf start + else + attitude_estimator_q start + fi position_estimator_inav start else ekf_att_pos_estimator start diff --git a/src/modules/attitude_estimator_ekf/attitude_estimator_ekf_params.c b/src/modules/attitude_estimator_ekf/attitude_estimator_ekf_params.c index fe480e12b7..e981c6eb74 100755 --- a/src/modules/attitude_estimator_ekf/attitude_estimator_ekf_params.c +++ b/src/modules/attitude_estimator_ekf/attitude_estimator_ekf_params.c @@ -94,6 +94,19 @@ PARAM_DEFINE_FLOAT(EKF_ATT_V4_R1, 10000.0f); */ PARAM_DEFINE_FLOAT(EKF_ATT_V4_R2, 100.0f); +/** + * EKF attitude estimator enabled + * + * If enabled, it uses the older EKF filter. + * However users can enable the new quaternion + * based complimentary filter by setting EKF_ATT_ENABLED = 0. + * + * @min 0 + * @max 1 + * @group Attitude EKF estimator + */ +PARAM_DEFINE_INT32(EKF_ATT_ENABLED, 1); + /* magnetic declination, in degrees */ PARAM_DEFINE_FLOAT(ATT_MAG_DECL, 0.0f); diff --git a/src/modules/position_estimator_inav/position_estimator_inav_params.c b/src/modules/position_estimator_inav/position_estimator_inav_params.c index aedb478faa..96b12f9e09 100644 --- a/src/modules/position_estimator_inav/position_estimator_inav_params.c +++ b/src/modules/position_estimator_inav/position_estimator_inav_params.c @@ -291,8 +291,8 @@ PARAM_DEFINE_INT32(CBRK_NO_VISION, 0); /** * INAV enabled * - * If set to 1, use INAV for position estimation - * the system uses the combined attitude / position + * If set to 1, use INAV for position estimation. + * Else the system uses the combined attitude / position * filter framework. * * @min 0