diff --git a/libraries/AP_NavEKF3/AP_NavEKF3.cpp b/libraries/AP_NavEKF3/AP_NavEKF3.cpp index 1ef4c99c61..37babf9049 100644 --- a/libraries/AP_NavEKF3/AP_NavEKF3.cpp +++ b/libraries/AP_NavEKF3/AP_NavEKF3.cpp @@ -2015,3 +2015,12 @@ bool NavEKF3::isVibrationAffected(int8_t instance) const } return false; } + +// get a yaw estimator instance +const EKFGSF_yaw *NavEKF3::get_yawEstimator(void) const +{ + if (core) { + return core[primary].get_yawEstimator(); + } + return nullptr; +} diff --git a/libraries/AP_NavEKF3/AP_NavEKF3.h b/libraries/AP_NavEKF3/AP_NavEKF3.h index f2cadbb1d3..bd17b0f1ce 100644 --- a/libraries/AP_NavEKF3/AP_NavEKF3.h +++ b/libraries/AP_NavEKF3/AP_NavEKF3.h @@ -27,6 +27,7 @@ #include class NavEKF3_core; +class EKFGSF_yaw; class NavEKF3 { friend class NavEKF3_core; @@ -358,6 +359,9 @@ public: // if instance < 0, the primary instance will be used bool isVibrationAffected(int8_t instance) const; + // get a yaw estimator instance + const EKFGSF_yaw *get_yawEstimator(void) const; + private: uint8_t num_cores; // number of allocated cores uint8_t primary; // current primary core diff --git a/libraries/AP_NavEKF3/AP_NavEKF3_core.h b/libraries/AP_NavEKF3/AP_NavEKF3_core.h index 7bad36922f..8d79b4c763 100644 --- a/libraries/AP_NavEKF3/AP_NavEKF3_core.h +++ b/libraries/AP_NavEKF3/AP_NavEKF3_core.h @@ -421,6 +421,9 @@ public: // returns true when the state estimates are significantly degraded by vibration bool isVibrationAffected() const { return badIMUdata; } + // get a yaw estimator instance + const EKFGSF_yaw *get_yawEstimator(void) const { return yawEstimator; } + private: EKFGSF_yaw *yawEstimator; AP_DAL &dal;