* avoid gnss-based altitude reset in DR-mode

* add hysteresis for re-enabling fusion
* disable lat/lon/vel fusion on gnss_hgt_fault
This commit is contained in:
Marco Hauswirth
2025-10-03 10:11:41 +02:00
committed by Marco Hauswirth
parent 86f2fdfd7d
commit 3712af8b7f
4 changed files with 59 additions and 17 deletions
+4 -1
View File
@@ -581,6 +581,8 @@ private:
estimator_aid_source2d_s _aid_src_gnss_pos{};
estimator_aid_source3d_s _aid_src_gnss_vel{};
uint64_t _gnss_hgt_hysteresis_time{0};
# if defined(CONFIG_EKF2_GNSS_YAW)
estimator_aid_source1d_s _aid_src_gnss_yaw {};
# endif // CONFIG_EKF2_GNSS_YAW
@@ -885,7 +887,8 @@ private:
void resetHorizontalPositionToGnss(estimator_aid_source2d_s &aid_src);
void controlGnssHeightFusion(const gnssSample &gps_sample);
void stopGpsHgtFusion();
void stopGpsHgtFusion(estimator_aid_source1d_s *aid_src=nullptr);
bool isGnssHgtResetAllowed();
# if defined(CONFIG_EKF2_GNSS_YAW)
void controlGnssYawFusion(const gnssSample &gps_sample);