From 8e75c9580ca454ed6e8906615f277f05d3419a6e Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Sun, 15 Feb 2015 11:07:33 +0900 Subject: [PATCH] InertialNav: get_origin returns zero when no origin If the EKF has not yet set the origin return location of all zeros instead of uninitialised location --- libraries/AP_InertialNav/AP_InertialNav_NavEKF.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libraries/AP_InertialNav/AP_InertialNav_NavEKF.cpp b/libraries/AP_InertialNav/AP_InertialNav_NavEKF.cpp index 4156d0e5c9..91c2f3bdd6 100644 --- a/libraries/AP_InertialNav/AP_InertialNav_NavEKF.cpp +++ b/libraries/AP_InertialNav/AP_InertialNav_NavEKF.cpp @@ -57,7 +57,10 @@ nav_filter_status AP_InertialNav_NavEKF::get_filter_status() const struct Location AP_InertialNav_NavEKF::get_origin() const { if (_ahrs.have_inertial_nav()) { struct Location ret; - _ahrs_ekf.get_NavEKF().getOriginLLH(ret); + if (!_ahrs_ekf.get_NavEKF().getOriginLLH(ret)) { + // initialise location to all zeros if origin not yet set + memset(&ret, 0, sizeof(ret)); + } return ret; } return AP_InertialNav::get_origin();