[OSM-talk] GPS receiver orientation
lauri.hahne at gmail.com
Sat Jul 26 15:25:34 BST 2008
That's not how it works. That wouldn't even work as the satellites
move all the time too.
Why it usually requires you to be stationary when getting the first
fix is because you need the ephemeride for each satellite which takes
up to 30 s of continous signal per satellite after your receiver has
found the satellite. In addition - when you move - the frequencies of
the satellites change all the time (due to the doppler effect) and
your receiver has harder time to find them because they can be in
"slots" which your receiver already consider checked and empty.
The actualy position estimation is done by pseudo-ranging. The
solution has four unknowns (x, y, z, and clock bias b). Receivers
usually start by assuming something reasonable, such as [x,y,z,b] =
[0,0,0,70ms] and the internal clock is set to time get from
satellites. Then the bias is the travel time of the signal from
satellites. It is notable that it's more convenient to represent bias
as meters so you'll get b = 70 ms * c.
Then you'll calculate the distances from your assumed position (now
[0,0,0] in ECEF) to the satellites which you're listening (the
position of the satellites is known from ephemeride) and add the bias
Then you just apply some magic (linear algebra, usually LMS) and
you'll get a correction vector for your position and bias which you
simply add to your original values to get a new estimate. Then you
repeat this ad infinitum to get updated position estimate.
I've been told by a guy who works in gps r&d that cosumer grade gps
units usually do this iteration every 50 ms.
If somebody got interested, please do email me, and I'll post you the
precise formulae for the calculation.
2008/7/26 Christopher Woods <christof at infinitus.co.uk>:
>> On Jul 26, 2008, at 13:37 , Franc Carter wrote:
>> > My entirely annecdotal experience has been that my TomTom 910 takes
>> > longer to get a fix when I am moving than stationary. I have an
>> > external aerial, so the movement should be the main determinent
>> The same for me with my Hamlet GPS receiver. I've seen that
>> if I'm moving it could be unable to get a fix indefinitely
>> (tested up to 30 minutes), while stopping and turning it off
>> and then on usually works less than a couple of minutes.
> Is that not how GPS works? Give it a nice stable basis to get its initial
> fix on, so it can accurately detect and compare the positions of all the
> sats it can see - and then it bases any readings from movement using
> differential comparison with the baseline from the initial reading... At
> least, that's how I've always considered my GPS receivers to operate (using
> less power and processor cycles to boot). Maybe there's an occasional
> re-poll for an absolute lock and reference, but surely if the receiver was
> recalculating its exact position every second, it'd be out of juice within a
> few minutes?
> I've always noticed my bluetooth GPS receivers (SiRF chipsets, formerly a
> Qstarz BT-Q880 and currently a Navman B10) take much longer to establish a
> lock when I'm already driving in the car. But then, I suppose it's obvious
> that it'd take longer while a vehicle or person is in motion (and not in a
> linear direction either). Or am I barking up the wrong tree?
> talk mailing list
> talk at openstreetmap.org
More information about the talk