|
|
@ -232,7 +232,7 @@ void NavEKF2_core::SelectMagFusion() |
|
|
|
// start performance timer
|
|
|
|
// start performance timer
|
|
|
|
hal.util->perf_begin(_perf_FuseMagnetometer); |
|
|
|
hal.util->perf_begin(_perf_FuseMagnetometer); |
|
|
|
|
|
|
|
|
|
|
|
// clear the flag that lets other processes know that the expensive magnetometer fusion operation has been perfomred on that time step
|
|
|
|
// clear the flag that lets other processes know that the expensive magnetometer fusion operation has been performed on that time step
|
|
|
|
// used for load levelling
|
|
|
|
// used for load levelling
|
|
|
|
magFusePerformed = false; |
|
|
|
magFusePerformed = false; |
|
|
|
|
|
|
|
|
|
|
@ -717,7 +717,7 @@ void NavEKF2_core::FuseMagnetometer() |
|
|
|
ConstrainVariances(); |
|
|
|
ConstrainVariances(); |
|
|
|
|
|
|
|
|
|
|
|
// update the states
|
|
|
|
// update the states
|
|
|
|
// zero the attitude error state - by definition it is assumed to be zero before each observaton fusion
|
|
|
|
// zero the attitude error state - by definition it is assumed to be zero before each observation fusion
|
|
|
|
stateStruct.angErr.zero(); |
|
|
|
stateStruct.angErr.zero(); |
|
|
|
|
|
|
|
|
|
|
|
// correct the state vector
|
|
|
|
// correct the state vector
|
|
|
@ -821,7 +821,7 @@ void NavEKF2_core::fuseEulerYaw() |
|
|
|
measured_yaw = predicted_yaw; |
|
|
|
measured_yaw = predicted_yaw; |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
// calculate observaton jacobian when we are observing a rotation in a 312 sequence
|
|
|
|
// calculate observation jacobian when we are observing a rotation in a 312 sequence
|
|
|
|
float t2 = q0*q0; |
|
|
|
float t2 = q0*q0; |
|
|
|
float t3 = q1*q1; |
|
|
|
float t3 = q1*q1; |
|
|
|
float t4 = q2*q2; |
|
|
|
float t4 = q2*q2; |
|
|
@ -964,7 +964,7 @@ void NavEKF2_core::fuseEulerYaw() |
|
|
|
ForceSymmetry(); |
|
|
|
ForceSymmetry(); |
|
|
|
ConstrainVariances(); |
|
|
|
ConstrainVariances(); |
|
|
|
|
|
|
|
|
|
|
|
// zero the attitude error state - by definition it is assumed to be zero before each observaton fusion
|
|
|
|
// zero the attitude error state - by definition it is assumed to be zero before each observation fusion
|
|
|
|
stateStruct.angErr.zero(); |
|
|
|
stateStruct.angErr.zero(); |
|
|
|
|
|
|
|
|
|
|
|
// correct the state vector
|
|
|
|
// correct the state vector
|
|
|
@ -1094,7 +1094,7 @@ void NavEKF2_core::FuseDeclination(float declErr) |
|
|
|
ForceSymmetry(); |
|
|
|
ForceSymmetry(); |
|
|
|
ConstrainVariances(); |
|
|
|
ConstrainVariances(); |
|
|
|
|
|
|
|
|
|
|
|
// zero the attitude error state - by definition it is assumed to be zero before each observaton fusion
|
|
|
|
// zero the attitude error state - by definition it is assumed to be zero before each observation fusion
|
|
|
|
stateStruct.angErr.zero(); |
|
|
|
stateStruct.angErr.zero(); |
|
|
|
|
|
|
|
|
|
|
|
// correct the state vector
|
|
|
|
// correct the state vector
|
|
|
|