|
|
@ -597,7 +597,7 @@ void NavEKF3_core::updateFilterStatus(void) |
|
|
|
filterStatus.flags.initalized = filterStatus.flags.initalized || healthy(); |
|
|
|
filterStatus.flags.initalized = filterStatus.flags.initalized || healthy(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void NavEKF3_core::runYawEstimator() |
|
|
|
void NavEKF3_core::runYawEstimatorPrediction() |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (yawEstimator != nullptr && frontend->_fusionModeGPS <= 1) { |
|
|
|
if (yawEstimator != nullptr && frontend->_fusionModeGPS <= 1) { |
|
|
|
float trueAirspeed; |
|
|
|
float trueAirspeed; |
|
|
@ -612,7 +612,12 @@ void NavEKF3_core::runYawEstimator() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
yawEstimator->update(imuDataDelayed.delAng, imuDataDelayed.delVel, imuDataDelayed.delAngDT, imuDataDelayed.delVelDT, EKFGSF_run_filterbank, trueAirspeed); |
|
|
|
yawEstimator->update(imuDataDelayed.delAng, imuDataDelayed.delVel, imuDataDelayed.delAngDT, imuDataDelayed.delVelDT, EKFGSF_run_filterbank, trueAirspeed); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void NavEKF3_core::runYawEstimatorCorrection() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (yawEstimator != nullptr && frontend->_fusionModeGPS <= 1) { |
|
|
|
if (gpsDataToFuse) { |
|
|
|
if (gpsDataToFuse) { |
|
|
|
Vector2f gpsVelNE = Vector2f(gpsDataDelayed.vel.x, gpsDataDelayed.vel.y); |
|
|
|
Vector2f gpsVelNE = Vector2f(gpsDataDelayed.vel.x, gpsDataDelayed.vel.y); |
|
|
|
float gpsVelAcc = fmaxf(gpsSpdAccuracy, frontend->_gpsHorizVelNoise); |
|
|
|
float gpsVelAcc = fmaxf(gpsSpdAccuracy, frontend->_gpsHorizVelNoise); |
|
|
@ -624,7 +629,6 @@ void NavEKF3_core::runYawEstimator() |
|
|
|
EKFGSF_resetMainFilterYaw(); |
|
|
|
EKFGSF_resetMainFilterYaw(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// request a reset the yaw to the GSF estimate
|
|
|
|
// request a reset the yaw to the GSF estimate
|
|
|
|