From bd7bf21475c06e87d3f8381efb9df4e5d46cc9ec Mon Sep 17 00:00:00 2001 From: priseborough Date: Mon, 18 Jul 2016 23:25:56 +1000 Subject: [PATCH] AP_NavEKF2: Speed improve switch-over to backup magnetometer When switching over to a back up magnetometer, ensure that the earth field estimate are reset. other wise mag earth field estimates due to the previous failed mag could cause data from the new mag to be rejected. --- libraries/AP_NavEKF2/AP_NavEKF2_Measurements.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libraries/AP_NavEKF2/AP_NavEKF2_Measurements.cpp b/libraries/AP_NavEKF2/AP_NavEKF2_Measurements.cpp index 520d55d4ea..f027206e77 100644 --- a/libraries/AP_NavEKF2/AP_NavEKF2_Measurements.cpp +++ b/libraries/AP_NavEKF2/AP_NavEKF2_Measurements.cpp @@ -185,7 +185,13 @@ void NavEKF2_core::readMagData() stateStruct.body_magfield.zero(); // clear the measurement buffer storedMag.reset(); - } + // clear the data waiting flag so that we do not use any data pending from the previous sensor + magDataToFuse = false; + // request a reset of the magnetic field states + magStateResetRequest = true; + // declare the field unlearned so that the reset request will be obeyed + magFieldLearned = false; + } } }