I have developed a GPS Tracking device it is working fine when the receiver is in motion, when it stationed in a position for couple of hours i get some drift for around 10-15meters. The receiver send different lat/lon every 30seconds, which makes it impossible for me to calculate the total IDEAL time of the tracker device.

Is there any GPS accuracy filter which can be implemented in my software to overcome this issue?

  • 2
    Read about the Kalman filter (and the "See also" links) ...
    – pmg
    Commented Jan 24, 2012 at 12:50
  • i tried to analyse this filter before. It seems to be complicated. Can you elaborate it for me
    – scribler
    Commented Jan 24, 2012 at 13:17
  • 1
    You can also try a moving average, probably with the number of terms changing with the speed (low speed many terms).
    – pmg
    Commented Jan 24, 2012 at 14:02
  • i tried averaging, ignoring data if there is small speed in knots and some more methods. still i get this drift issue.
    – scribler
    Commented Jan 25, 2012 at 4:22
  • 4
    GPS is only accurate to about 15 meters. It is just as inaccurate when you're moving, its just that you have no good way to measure that. Trying to correct for this error is pretty meaningless, there's nothing else available to calibrate to the true position. Averaging doesn't make sense, you don't know the bias. en.wikipedia.org/wiki/…
    – Hans Passant
    Commented Jan 29, 2012 at 13:52

3 Answers 3


I think what you are looking for is Differential Correction (Link1, Link2).

Generally speaking you would post-process your GPS data by comparing your location (at a particular timestamp) with the location of a known, surveyed GPS receiver base station. You would then adjust your GPS locations with the offset from the actual and measured coordinates of the GPS at the base station.

  • 3
    +1 Surpised the wikipedia link doesn't link to the CORS site. Commented May 22, 2012 at 21:46
  • @KirkKuykendall you could always edit Wikipedia. :-) Commented Apr 24, 2013 at 8:40

Perhaps looking into using WAAS/EGNOS support is useful. But to be honoust, you cannot (totally ) eliminate GPS from logging a less accurate position. It comes with the nature of the beast.

A second thing I would look at, in case the drift gets worse and worse over time you are standing still is to make sure your GPS lookup tables are accurate and maybe force a refresh of them every hour or so, that should be enough.


You need to include a 3-axis chip-based accelerometer such as what is used in cellphones. Then, in software, define a variable for GPS moving/not moving, based on inertial navigation techniques using the data from the accelerometer. When GPS is 'not moving', you should stop logging new positions automatically until a sustained movement is resumed.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.