Cooperative Differential GPS

beren at beren at
Fri Mar 28 09:54:34 CET 2008

Great to see someone who is interested in this as well!

> Thanks for bringing this up, as this is is a topic that I am very much
> interested in. We are just starting to explore this area, but the AGPS
> capabilities of the Neo 1973 was one reason that we went ahead and bought
> this. However, I do not know what AGPS support means in real terms.
> My naive understanding of this is that a cooperative differential GPS needs
> no external support. One just sits at a base station, and averages GPS
> readings until one knows the position of the base station to an arbitrary
> level of accuracy. After that, the reception of realtime GPS signals at
> the base station provides information about random errors, which I
> understand are largely due to atmospheric fluctuations. Corrections for
> these are derived from the difference between the  well-known actual
> position of the base station, and the received realtime position. These can
> be broadcast through various means, e.g., an Internet DGPS server, and
> should be good for a few hundred km around the base station. The
> cooperative aspect of this comes in because of the benefits of multiple
> base stations.

Being a non-expert the following should be taken with caution:
What you describe here is - i think - refered to as poor man's DGPS because it 
would work with any cheap GPS receivers which only provide you with lat/lon 
coordinates. By just subtracting the lat/lon fluctuations of a known 
stationary GPS receiver nearby you do not gain any accuracy because you do 
not know exactly how the lat/lon was calculated and which errors influenced 
this calculation. As you said, the errors are due to atmospheric fluctuations 
but these vary wildly for each satellite in sight - that is why you need to 
have access to the raw data (ie pseudorange, carrier phase, doppler shift) 
per satellite. Consumer-grade GPS receivers will just use the pseudoranges 
from the satellites currently in sight and triangulate an estimated position. 
They don't tell you which satellites were used during this calculation and 
therefore you cannot gain any useful information for a receiver nearby.
It is very improbable that two GPS receivers see _and_ use exactly the same 
satellites at a given moment, even if they are separated by just a few 
meters. You can actually do this experiment yourself (as I've done) and see 
that the lat/lon readings of two receivers in close proximity do not 
correlate much.

However, with a stationary GPS receiver which provides you with the raw per 
satellite data you could extract the needed error information and publish it 
on some server. This could then in turn be used by a GPS receiver nearby (who 
also has to have access to the per satellite data) to calculate a much more 
precise location (errors might be as low as about a decimeter per kilometer 
distance to the reference GPS receiver).

The good news is, that the GPS chip in the Neo FreeRunner could deliver the 
raw data but I am not sure if the firmware allows you access to the RXM-RAW 
message type cited in the Protocol Specification of the Antaris ATR0635.

It would be great if someone could confirm that?!

I think there are a bunch of people (including myself) which would be 
interested in such a Cooperative Differential GPS project for the FreeRunner 
(not to mention the great benefit for all users of an actual working CDGPS 
infrastructure) but for a start we would have to answer the question above.

Best regards,

-- beren

More information about the community mailing list