0
goGPS
open source software for low-cost
RTK positioning
Eugenio Realini
Osaka City University, Japan


                   ...
goGPS background


                        Aim: enhancing the accuracy of low-
                             cost GPS devic...
goGPS background


September 2009:
  I came to Osaka City University as
  post-doc fellow, hosted by Prof.        Media Ce...
goGPS today




            Cryms
     http://www.cryms.com
                                                    Applied Te...
goGPS niche

 ~ US $ 30000    ~ US $ 3000          ~ US $ 100




2-3 cm           15-30 cm                3-5 m

   RTK  ...
Real-time processing



                                 Base station(s)
                                                 ...
Post-mission processing




                                  Base station(s)
                                            ...
Kalman filter


It is the core of the
software.

It updates the position
of the receiver in real-
time on the basis of:

•...
State variables

    In goGPS state variables can be divided in two groups:
goGPS state variables can be divided in two gr...
Observation equations

goGPS is based on double difference observations with
respect to a master base station:

- ionosphe...
Dynamic model


 dynamics of the receiver (e.g. constant velocity)

 x r (t + 1) = x r (t) +   ˙
                        ...
Phase ambiguities

- Float estimate (never fixed)

- Estimated for initialization, new satellites and cycle-slips detectio...
DTM observation

     In order to improve the heigth positioning quality, an
     additional observation from a DTM is int...
Constrained motion


If the rover is moving along a path that is known a priori
(e.g. road, railway, …) a linear constrain...
Observation weighting

                                                                                                   ...
Software/1

- developed in MATLAB environment

- 1 Hz data acquisition rate by means of
“Instrument Control” toolbox (stan...
Software/2
Software/3
goGPS – ublox comparison


Receiver: u-blox AEK-4T
   goGPS solution
   - RTK (VRS)
   - constant velocity dyn. model
   -...
goGPS – ublox comparison




goGPS solution
AEK-4T
EVK-5T
- RTK (VRS)
- constant velocity dyn. model
- observations weight...
goGPS – ublox comparison

      goGPS solution
      AEK-4T
      EVK-5T
      - RTK (VRS)
      - constant velocity dyn. ...
Accuracy test


Devices:
- Leica GPS1200
- Leica GS20
- eBonTek eGPS 597
- ev. kit u-blox + goGPS




                    ...
Future developments (positioning)


1) network-constrained navigation (with complex intersections)

2) adaptive Kalman fil...
Future developments (sw / hw)


1) Establishing a collaborative platform (versioning system,
   bug tracker, mailing list,...
Porting goGPS


Conversion from MATLAB to JAVA


                  goGPS GUI               GUI

                  goGPS co...
goGPS as a service

    goGPS will provide GPS data processing as a web
    processing service (WPS) to obtain accurate po...
Hardware prototype/1




No positioning processor    Lower cost        goGPS
No proprietary algorithms   Greater freedom
Hardware prototype/2

   hardware           software




                  Software-defined       goGPS
Radio front-end   ...
Conclusions


- goGPS L1 RTK positioning enhances the accuracy of low-cost
GPS receivers (and low-cost antennas) to sub-me...
Code & contacts



      goGPS website:
http://www.gogps-project.org


 ありがとうございました
     support@gogps-project.org
Upcoming SlideShare
Loading in...5
×

goGPS (March 2010)

5,678

Published on

goGPS state-of-the-art on March 2010
http://www.gogps-project.org

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,678
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
149
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "goGPS (March 2010)"

  1. 1. goGPS open source software for low-cost RTK positioning Eugenio Realini Osaka City University, Japan March 2010
  2. 2. goGPS background Aim: enhancing the accuracy of low- cost GPS devices by means of RTK positioning, Kalman filtering, DTM aid, [...] Geomatics Laboratory Polytechnic of Milan Used to teach students about GPS Como Campus positioning through Kalman filter in Navigation Laboratory course 2007 – 2009: developed through 3 Master theses and 1 Ph.D. thesis August 2009: goGPS v0.1pre-alpha MATLAB code was published as open source
  3. 3. goGPS background September 2009: I came to Osaka City University as post-doc fellow, hosted by Prof. Media Center Raghavan Osaka City University October 2009: goGPS was presented at international FOSS4G2009 Sydney November 2009: goGPS was presented at local FOSS4G Osaka and FOSS4G Tokyo February 2010: goGPS v0.1alpha MATLAB code was published as open source
  4. 4. goGPS today Cryms http://www.cryms.com Applied Tech. goGPS http://www.apptec.co.jp OSGEO JP Polytechnic of Milan http://www.osgeo.jp http://www.polimi.it Galileian Plus Osaka City University http://www.galileianplus.it http://www.osaka-cu.ac.jp JSPS http://www.jsps.go.jp
  5. 5. goGPS niche ~ US $ 30000 ~ US $ 3000 ~ US $ 100 2-3 cm 15-30 cm 3-5 m RTK DGPS Stand-alone <1m goGPS L1 RTK positioning
  6. 6. Real-time processing Base station(s) NT RIP (RT CM 3.1 ) 3G Internet USB goGPS USB Real-time positioning
  7. 7. Post-mission processing Base station(s) NT RIP USB (RT CM 3.1 ) RINEX RINEX Internet goGPS Positioning
  8. 8. Kalman filter It is the core of the software. It updates the position of the receiver in real- time on the basis of: • new measurements • the state of the system at the previous epoch state variables To implement it, it is needed to define: observations dynamic model
  9. 9. State variables In goGPS state variables can be divided in two groups: goGPS state variables can be divided in two groups:  xr   ˙   xr   ⋮    parameters describing  yr  ˙ the receiver motion z xr xr  yr  ˙   (position, velocity, Xt =  ⋮  acceleration, etc.) y  zr  x    zr  ˙    ⋮  Pivot p  Np1   rm  phase ambiguities  ⋮    (double differences)  Np32  rm Master m Rover r
  10. 10. Observation equations goGPS is based on double difference observations with respect to a master base station: - ionosphere error - troposphere error deleted or negligible - satellite and receiver clock errors  Prm (t) = ρps (t)  ps rm + ν codice code   λΦps (t) = ρps (t) + λNps (t) + ν fase  rm rm rm phase linearization geometric distance, phase ambiguity function of xr, yr, zr for the satellite 's' (xm, ym, zm known a Kalman filter priori)
  11. 11. Dynamic model dynamics of the receiver (e.g. constant velocity)  x r (t + 1) = x r (t) + ˙ x r (t) ˙  x r (t + 1) = 0 + x r (t) + ε xr (t) ˙ ˙ model error “dynamics” of phase ambiguities  Np1 (t + 1) = Np1 (t) rm rm ambiguities are never fixed:  goGPS keeps a float solution  ⋮ which evolves with the  Np32 (t + 1) = Np32 (t) Kalman filter  rm rm
  12. 12. Phase ambiguities - Float estimate (never fixed) - Estimated for initialization, new satellites and cycle-slips detection by: ps ps P rm − rm ps * comparing code and phase ranges: N =  rm  OR * least squares estimate (weighted on SNR): [ ][ ][ ] [ ] sX s P ps Y s 0 ⋯ 0 ps ps  rmT rm I rm  ps rm Z X ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ Y⋮ ⋮ pS P rm = SX S Y S Z 0 ⋯ 0 pS pS pS Z  rm T rm  I rm  sX − ⋯ 0 N s s ps   rm Y s Z ps ps ps rm T rm −I rm  ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ S 0 ⋯ − N S S pS  rm X Y S Z pS pS pS rm T rm − I rm 
  13. 13. DTM observation In order to improve the heigth positioning quality, an additional observation from a DTM is introduced: A DTM obtained from a hDTM = h(x r , y r , zr ) + v DTM LiDAR DSM 2m x 2m produced by Lombardy Region (Italy) was used σv ≈ 30 cm during tests. DTM loading time was optimized by subdividing the DTM in buffered tiles. approx. Tile Detection of the 4 Interpolation KF position search nearest vertices
  14. 14. Constrained motion If the rover is moving along a path that is known a priori (e.g. road, railway, …) a linear constraint can be introduced, making the motion mono-dimensional The constraint is modeled as 3D interconnected segments and the motion is described by a curvilinear coordinate (c):  cr  (X2,Y2,Z2) (X3,Y3,Z3)  ˙  (X1,Y1,Z1)  cr  c2 c new state  ⋮  c1 variable: X t =   (X0,Y0,Z0) p1  Nrm  c0  ⋮      Nrm  p32 
  15. 15. Observation weighting 9 8 10 8 7 R M S E [m ] 6 6 4 5 30 2 35 4 30 35 40 40 45 45 3 50 50 C / N 0 s a t e llit e 2 [ d B H z ] C / N 0 s a t e llit e 1 [ d B H z ] 500 400 A weight function was defined 300 W e ig h t to take into account the 200 satellites signal-to-noise ratio 100 30 and elevation. 0 40 20 40 50 60 80 60 C /N 0 [d B H z ] E le va tio n [ d e g ]
  16. 16. Software/1 - developed in MATLAB environment - 1 Hz data acquisition rate by means of “Instrument Control” toolbox (standard TCP-IP and USB)
  17. 17. Software/2
  18. 18. Software/3
  19. 19. goGPS – ublox comparison Receiver: u-blox AEK-4T goGPS solution - RTK (VRS) - constant velocity dyn. model - observations weighted on SNR u-blox solution - stand-alone - pedestrian dynamic model
  20. 20. goGPS – ublox comparison goGPS solution AEK-4T EVK-5T - RTK (VRS) - constant velocity dyn. model - observations weighted on SNR u-blox solution AEK-4T EVK-5T - stand-alone - automotive dynamic model
  21. 21. goGPS – ublox comparison goGPS solution AEK-4T EVK-5T - RTK (VRS) - constant velocity dyn. model - observations weighted on SNR u-blox solution AEK-4T EVK-5T - stand-alone - automotive dynamic model LEA-5T firmware < 6.02 bug? “The field local time in RXM-RAW had insufficient resolution with FW6.0 causing a submillisecond mismatch between local time and pseudorange measurements. This limitation of FW6.0 has been fixed with FW6.02 […]”
  22. 22. Accuracy test Devices: - Leica GPS1200 - Leica GS20 - eBonTek eGPS 597 - ev. kit u-blox + goGPS goGPS Leica GS20 ebonTek (cutoff = 30°) (mod. “Max Accuracy”) (ANTARIS4) mean 0.78 m mean 0.30 m mean 4.03 m std 0.47 m std 0.15 m std 1.70 m RMSE 0.91 m RMSE 0.34 m RMSE 4.37 m
  23. 23. Future developments (positioning) 1) network-constrained navigation (with complex intersections) 2) adaptive Kalman filtering 3) improved cycle slips management 4) static solution 5) SBAS integration 6) GLONASS / GALILEO integration 7) odometer integration
  24. 24. Future developments (sw / hw) 1) Establishing a collaborative platform (versioning system, bug tracker, mailing list, forum, …) to coordinate goGPS as a true open source project (i.e. not just publishing code) 2) Porting goGPS from MATLAB to a widespread language 3) Provide goGPS accurate positioning as a web service 4) Hardware prototype
  25. 25. Porting goGPS Conversion from MATLAB to JAVA goGPS GUI GUI goGPS core Kalman filter MATLAB → JAVA - positioning func. goGPS libs - input/output - GPS formats - (...)
  26. 26. goGPS as a service goGPS will provide GPS data processing as a web processing service (WPS) to obtain accurate positioning from raw GPS observations accurate positioning raw observations ZOO Server providing Rovers just acquiring goGPS as WPS raw data http://www.zoo-project.org/
  27. 27. Hardware prototype/1 No positioning processor Lower cost goGPS No proprietary algorithms Greater freedom
  28. 28. Hardware prototype/2 hardware software Software-defined goGPS Radio front-end acquisition/tracking engine
  29. 29. Conclusions - goGPS L1 RTK positioning enhances the accuracy of low-cost GPS receivers (and low-cost antennas) to sub-meter level - goGPS is going to be converted to JAVA, managed as a collaborative open source project - goGPS processing will be provided as web service (e.g. WPS on ZOO platform) - goGPS MATLAB code is and will be publicly available to help collaborative research on low-cost GPS positioning
  30. 30. Code & contacts goGPS website: http://www.gogps-project.org ありがとうございました support@gogps-project.org
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×