[FOSS-GPS] High accuracy positioning with low cost GPS devices: a FOSS project

Martin Vermeer martin.vermeer at tkk.fi
Sun Jan 4 06:40:24 EST 2009

On Wed, Dec 24, 2008 at 10:35:10AM -0800, John Morris wrote:
> > Do you have any ideas or suggestions on how to detect cycle slips 
> > to improve your solution?
> I'll give my opinion - but there are many others who have a better
> background than me.
> To detect and correct cycle slips, you have to already know your location
> with a high degree of precision - say half a wavelength or better. Only then
> can you detect and correct a cycle slip.

This is somewhat true if you try to detect cycle slips the simplistic way -- by solving for the integer ambiguity as a real number and then fixing it to the nearest integer. You need to use double differences for this as for those, the ambiguities are estmable and not mixed up with clock unknowns in receiver and satellie. And you have to know the iono and tropo corrections, e.g., that they are small due to short basfeline.

There are however ways at solving the integers also if you only have a rough position, using a search strategy. You test all possible positions within your uncertainty area, and see which one produces the best near-integer ambiguities. Then you check if the "best" is clearly better than the "second best", and if it is you declare ambiguities resolved.

This requires minimum five satellites. More for longer baselines. Four for a consistent solution given ambiguity values, and more for the redundancy to eliminate the "wrong" ambiguities.

The are tricks for making the search process in the resolution space more efficient, like the LAMBDA method (Teunissen).


The above again is assuming that you are interested in ambiguity resolution, not just detection and elimination of cycle slips from the data even without knowning your own position (which however is typically what we're after). For that we can construct triple differences (between rover and base station, between satellite pairs, and between successive observation epochs). These will be small and smooth in time, and a cycle slip will stand out as an outlier.

This works for a stationary receiver. If you are moving, the triple diffs will become un-smooth, and then as you write an inertial sensor may help you to correct for this. All this can be mechanized for real time use (and usually is) in a Kalman or similar filter, like a Monte Carlo particle filter.

Hope this helps


More information about the FOSS-GPS mailing list