AP_NavEKF : Use synthetic sideslip fusion during GPS denied operation with airspeed

This commit is contained in:
Paul Riseborough 2014-03-13 17:10:34 +11:00 committed by Andrew Tridgell
parent 35811758d7
commit a24bfc1b8a
1 changed files with 4 additions and 4 deletions

View File

@ -739,10 +739,10 @@ void NavEKF::SelectBetaFusion()
// Determine if synthetic sidelsip data should be fused
// synthetic sidelip fusion only works for fixed wing aircraft and relies on the average sideslip being close to zero
// it requires a stable wind estimate for best results and should not be used for aerobatic flight
// we only fuse synthetic sideslip measurements if we are not using a compass, are not on the ground, enough time has
// lapsed since our last fusion and we have not fused magnetometer data on this time step or the immediate fusion
// flag is set
if (!use_compass() && !onGround && ((IMUmsec - BETAmsecPrev) >= _msecBetaAvg) && (!magFusePerformed || fuseMeNow)) {
// we fuse synthetic sideslip measurements if:
// (we are not using a compass OR (we are dead-reckoning position AND using airspeed)) AND not on the ground AND enough time has lapsed since our last fusion AND
// (we have not fused magnetometer data on this time step OR the immediate fusion flag is set)
if ((!use_compass() || (!posHealth && useAirspeed())) && !onGround && ((IMUmsec - BETAmsecPrev) >= _msecBetaAvg) && (!magFusePerformed || fuseMeNow)) {
FuseSideslip();
BETAmsecPrev = IMUmsec;
}