How can Ardupilot navigate with noisy GPS positions?

Hi all,

How does Ardupilot manage to navigate when GPS positions are noisy?

For example, say that the GPS unit reports a position at a given time, and a second later it reports a new position which is 25 meters away from the previously reported position, but the drone did not move 25 meters in reality.

How would Ardupilot decide what is the actual position of the drone?

Thank you.


ArduPilot use an EKF to estimate its position from multiple sensors and to mitigate the noise of each one.
In general case, the ekf will use the inertial sensors as main source of estimation and use the gps to correct noise and drift.
The gps is trust according to its noise and accuracy reporting.
If the gps is very glitchy, it is more probable that the ekf or the failsafe code will reject GPS measurements and trigger a landing procedure, as gps is mandatory for autonomous flight.

This is a very simplified explaination, I don’t think that we get more documents on the process than the code…