diff --git a/libraries/AP_InertialNav/AP_InertialNav_NavEKF.cpp b/libraries/AP_InertialNav/AP_InertialNav_NavEKF.cpp index 5efbe6368d..5d9109cf73 100644 --- a/libraries/AP_InertialNav/AP_InertialNav_NavEKF.cpp +++ b/libraries/AP_InertialNav/AP_InertialNav_NavEKF.cpp @@ -120,6 +120,20 @@ float AP_InertialNav_NavEKF::get_altitude() const return _relpos_cm.z; } +/** + * getHgtAboveGnd - get latest height above ground level estimate in cm and a validity flag + * + * @return + */ +bool AP_InertialNav_NavEKF::get_hagl(float height) const +{ + // true when estimate is valid + bool valid = _ahrs_ekf.get_NavEKF().getHAGL(height); + // convert height from m to cm + height *= 100.0f; + return valid; +} + /** * get_velocity_z - returns the current climbrate. * diff --git a/libraries/AP_InertialNav/AP_InertialNav_NavEKF.h b/libraries/AP_InertialNav/AP_InertialNav_NavEKF.h index fd1c5ff05e..d18b342ffd 100644 --- a/libraries/AP_InertialNav/AP_InertialNav_NavEKF.h +++ b/libraries/AP_InertialNav/AP_InertialNav_NavEKF.h @@ -88,6 +88,12 @@ public: */ float get_altitude() const; + /** + * getHgtAboveGnd - get latest altitude estimate above ground level in centimetres and validity flag + * @return + */ + bool get_hagl(float hagl) const; + /** * get_velocity_z - returns the current climbrate. *