gps and rtk gps - stanforduav.orgstanforduav.org/.../06/joubert-gps-and-rtk-gps.pdf · rtk gps...
TRANSCRIPT
a short overview of gps and rtk gps for uav enthusiasts
Centimeter-accurate 3D localization
May 2014 Niels Joubert, Swift Navigation & Stanford University
“where am I?” & why do we care fundamental problem in UAVs:
Seems necessary for interesting autonomy
Precise trajectory following in unconstrained, outdoor environments
Indoor systems rely on mocap, lidar, visual tracking
Precision Waypoint Flying
Precision Autonomous Takeoff and Landing
“where am I?”: GPS Localization fundamental problem in UAVs:
US NAVSTAR GPS: 28 active sats, 26,600km, 11h58 orbital period
1.575 Ghz (L1) 1.2276 Ghz (L2) 1.023Mhz DSSS CDMA, 50 bps
Russian GLONASS: 24 active sats, 19,100km, 11h15,
EU Galileo: 4 sats
Chinese Beido: 15 sats, mainly covers asia-pacific
Japanese QZSS: 4 sats primarily covering japan
Indian Regional Navigation System: none yet, operational by 2015
how does GPS work?Time of Flight ranging for Position, Velocity and Time calculation
time of flight ranging
time of flight ranging
time of flight ranging
time of flight ranging
Satellite time of flight rangingGiven:
a synchronized timer
known base locations
calculate the position of a receiver by
calculating a pseudo range to each satellite,
solve for the x, y, z and the unknown clock offset
This gives us a x,y,z position in a reference coordinate frame (ECEF). Convert to Lat Lon Alt using a reference ellipsoid.
q1: where are the satellitesCalculate from Keplerian Elements: 6 params to specify two-body problem.
This is an approximation!
Get from elsewhere or sats:
Almanac for all (valid: week)
Ephemeris for current (valid: 4h)
Takes 12.5 mins for full nav message to download
Ephemeris encoded redundantly:
~1min to download it!
q2: synchronizing time
Turns out we don’t need to agree ahead-of-time on an absolute time, we formulate the unknown clock offset between our timer and the sat timer as one of the unknowns
Solve for x, y, z, time
what is in the gps signal
Navigation Message (37,500 bits)
UTC Time, satellite health, ephemeris, almanacs
Very low data rate (50 bps)
Pseudo-Random-Number sequence of “chirps”
High rate (1.023Mhz) ranging code
Think of this as the foghorn’s melody playing over and over again
how is the GPS signal transmitted
Navigation Message (37,500 bits)
Encoded as a 50 bps message
Then encoded on a Pseudo-Random-Number Sequence at 1.023 Mhz: 1023 “chirp” sequence repeated, every bit encoded over 20 sets of chirps. (Direct Sequence SS)
!
!
PRN message modulates carrier frequency at 1.575Ghz
direct sequence spread spectrum
Take a low-rate digital signal (+1, -1 for 1 and 0 bits)
Multiply it by a high rate signal
Send 20 repetitions of the PRN digital signal for every bit
Why?
Multiply and add a local copy of the PRN code with the received signal. When properly aligned, all the individual chirps add together to amplify the signal.
Noise resistance!
sources of inaccuracies
Sat Position Errors
Gravitational effects, modeling inaccuracies
Straight line / constant speed assumptions broken:
atmospheric effects, multi-path reflections
Clock inaccuracies:
Crystal oscillators drift
All these affect the pseudorange accuracy
dilution of precision
Inaccuracies in pseudoranges are amplified by the geometric arrangement of constellation
“HDOP” < 5 is acceptable
mitigating inaccuracies
Calculate errors separately
Transmit these to GPS receivers
Satellite Based Augmentation System (WAAS)
Cellphone-based augmentation
here’s some questions I asked myselfWhy does GPS not work indoors?
Attenuation of signal through walls/roof: weakens signal beyond receiver sensitivity
How can all the satellites transmit on the same freq? different PRN codes - other sat just looks like noise (accidental bit flips)
How can GPS signals be 30db (0.001) below the noise floor? Why?
Practically: The “process gain” of DSSS encoding is 30 db (1032x) due to bit pattern. Theoretically: Shannon-Hartley Theorem
Why is GPS only 3-5 meter accurate? many sources of error, fundamentally, best we can do to align our local PRN copy with remote: 300m bit means we’re within 1%
Why is vertical accuracy so much worse? Geometry of the problem: errors are amplified in height more than x,y
rtk gps
Rather than track the PRN sequence at 1.023 Mhz
Every chirp is 300m long!
Track the phase of the carrier wave
Every cycle is 20cm long!
Problem:
There’s no “start” to the carrier wave (unlike the PRN code)
rtk gps: differential gps
Solution: Use two receivers, calculate the differences in observed carrier wave
Solves for a baseline vector between two receivers
Cancels out most sources of error in the process
One new unknown:
Time offset between the two receivers
Needs to be estimated
takeaways
GPS requires a very clear sky view - careful multi path!
GPS signals are really weak - careful RF interference!
GPS requires accurate sat position - wait for ephemeris
Dilution of Precision (“HDOP”) needs to be low
Visible constellation changes as you fly around, and over time - accuracy changes. Monitor it!
Longer term: best solution uses GPS as only 1 of many sensors (even true for RTK)
references
Understanding GPS, Kaplan et al