After EKF failsafe, the drone just fell from 80 m

Hello team,
Hexa frame, x6+ motors
cube orange plus (4.5.7)
After EKF failsafe triggered, the drone was in Land mode and drifting a lot. Tried to control but at 80 m altitude it just dropped and crashed onto the ground. I checked the log, where the FC was getting continuous power. Suddenly, the battery current went to zero and motors fell from 1600 to 1200 PWM.
Can you help me with the log analysis.
Thanks in advance.

Hi, based on your parameters it looks like your altitude source is your GPS. Unfortunately the GPS altitude was quite unreliable here (see GPS altitude vs BARO altitude).

You have a very big “XKF4.SH” meaning EKF detect errors in altitude calculations.

Because of this poor gps altitude, you have some glitches in XKF1.PD (position down, ~altitude) During the glitch PD went very low (meaning the drone is very high, a bad reading) so ekf told the drone to descent fast → Crash

Most people use barometer for altitude source. You have a GPS issue, we can also see that by displaying Lat/Lng (some others glitches) and the very low satcount is responsible for this (NSat graph). Do your GPS have a clear view of the sky ? Have you concidered redoundancy on GPS ? Are you flying in GNSS denied environement ?

2 Likes

Hey, Thanks for the reply. I checked that parameter again, I had actually changed it because I was experiencing sudden altitude drops when flying at low altitude at high speeds. I’ll switch it back to barometer. I also think the issue was caused by a GPS glitch that threw off the altitude reading, making the drone think it had landed. The flight was under clear skies, and the custom GPS module was an M9N u-blox chip.

Yes, definetly at t=36, something clearly goes wrong: SatCount drops from a stable ~28 to <5 instantly, that looks like a GPS loss/glitch, spoofing, gps alimentation issue, … not normal noise.

Since GPS is critical, it’s worth adding GPS redundancy and enabling “Use Best” so it can auto-switch if one GPS fails. And yes barometer for altitude source is generally safer, unless you have a RTK ground unit or so like that to make your gps super precise in z

1 Like

AlexisMGL, little distinction, I think a sudden loss of sats would be caused by jamming not spoofing, what do you think?

because jamming makes the GPS module not able to detect sats, while spoofing is the module detecting sats which are not authentic which as far as I know wouldn’t cause satcount to drop, the module would just be receiving misleading data, and it wouldn’t necessarily be aware of it,

but ublox modules may be able to detect it since they have spoofing detection called UBX-NAV-STATUS,spoofDetState. It might be useful to monitor that to see whether spoofing was detected by the module but unfortunately monitoring that info hasn’t been implemented in Ardupilot.

1 Like