Top Banner
goGPS goGPS open source software for low-cost open source software for low-cost RTK positioning RTK positioning Eugenio Realini Eugenio Realini Osaka City University, Japan Osaka City University, Japan March 2010 March 2010
30

goGPS (March 2010)

Jul 13, 2015

Download

Technology

Eugenio Realini
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: goGPS (March 2010)

goGPSgoGPSopen source software for low-cost open source software for low-cost RTK positioningRTK positioning

Eugenio RealiniEugenio RealiniOsaka City University, JapanOsaka City University, Japan

March 2010March 2010

Page 2: goGPS (March 2010)

goGPS backgroundgoGPS background

Geomatics LaboratoryGeomatics LaboratoryPolytechnic of MilanPolytechnic of Milan

Como CampusComo Campus

Aim: enhancing the accuracy of low- cost GPS devices by means of RTK positioning, Kalman filtering, DTM aid, [...]

Used to teach students about GPS 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

Page 3: goGPS (March 2010)

Media CenterMedia CenterOsaka City UniversityOsaka City University

September 2009: I came to Osaka City University as post-doc fellow, hosted by Prof. Raghavan

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

goGPS backgroundgoGPS background

Page 4: goGPS (March 2010)

goGPS todaygoGPS today

Polytechnic of MilanPolytechnic of Milanhttp://www.polimi.ithttp://www.polimi.it

Osaka City UniversityOsaka City Universityhttp://www.osaka-cu.ac.jphttp://www.osaka-cu.ac.jp

OSGEO JPOSGEO JPhttp://www.osgeo.jphttp://www.osgeo.jp

Galileian PlusGalileian Plushttp://www.galileianplus.ithttp://www.galileianplus.it

CrymsCrymshttp://www.cryms.comhttp://www.cryms.com

goGPS

JSPSJSPShttp://www.jsps.go.jphttp://www.jsps.go.jp

Applied Tech.Applied Tech.http://www.apptec.co.jphttp://www.apptec.co.jp

Page 5: goGPS (March 2010)

goGPS nichegoGPS niche

15-30 cm 3-5 m2-3 cm

RTK DGPS Stand-alone

goGPSL1 RTK positioning

< 1 m

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

Page 6: goGPS (March 2010)

Real-time processingReal-time processing

Internet

3G

Base station(s)

NTRIP(RTCM 3.1)

USB goGPS

USB

Real-time positioning

Page 7: goGPS (March 2010)

Post-mission processingPost-mission processing

Internet

Base station(s)NTRIP(RTCM 3.1)

USB

goGPS

RINEX RINEX

Positioning

Page 8: goGPS (March 2010)

Kalman filterKalman 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

To implement it, it is needed to define:

state variables

observations

dynamic model

Page 9: goGPS (March 2010)

In goGPS state variables can be divided in two groups:

parameters describing the receiver motion(position, velocity, acceleration, etc.)

phase ambiguities(double differences)

Master m Rover r

Pivot p

rx rx

x

y

z

p32rm

p1rm

r

r

r

r

r

r

N

N

zz

yy

xx

˙

˙

˙

=tX

goGPS state variables can be divided in two groups:

State variablesState variables

Page 10: goGPS (March 2010)

++=

+=

fasepsrm

psrm

psrm

codicepsrm

psrm

ν(t)λN (t)ρ(t)λΦ

ν(t)ρ(t)P

++=

+=

fasepsrm

psrm

psrm

codicepsrm

psrm

ν(t)λN (t)ρ(t)λΦ

ν(t)ρ(t)P

geometric distance, function of xr, yr, zr

(xm, ym, zm known a priori)

linearization

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

- ionosphere error- troposphere error- satellite and receiver clock errors

phase ambiguity for the satellite 's'

deleted or negligible

code

phase

Observation equationsObservation equations

Kalman filter

Page 11: goGPS (March 2010)

++=++=+

(t)ε(t)x01)(tx(t)x(t)x1)(tx

rxrr

rrr

˙˙˙˙

=+

=+

(t)N1)(tN

(t)N1)(tN

p32rm

p32rm

p1rm

p1rm

model error

ambiguities are never fixed:goGPS keeps a float solution

which evolves with theKalman filter

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

“dynamics” of phase ambiguities

Dynamic modelDynamic model

Page 12: goGPS (March 2010)

Phase ambiguitiesPhase ambiguities

- Float estimate (never fixed)

- Estimated for initialization, new satellites and cycle-slips detection by:

* comparing code and phase ranges:

OR

* least squares estimate (weighted on SNR):

[P rmps

⋮PrmpS

rmps

⋮rm

pS]=[

Xs Y

s Zs 0 ⋯ 0

⋮ ⋮ ⋮ ⋮ ⋱ ⋮XS Y

S ZS 0 ⋯ 0

Xs Y

s Zs − ⋯ 0

⋮ ⋮ ⋮ ⋮ ⋱ ⋮XS Y

S ZS 0 ⋯ −

][ XYZN s

⋮N S

][rmpsT rm

psI rmps

⋮rmpST rm

pS I rmpS

rmpsT rm

ps−I rmps

⋮rmpST rm

pS− I rmpS]

N rmps=

Prmps−rm

ps

Page 13: goGPS (March 2010)

In order to improve the heigth positioning quality, an additional observation from a DTM is introduced:

≈ 30 cm

Tile search

Detection of the 4 nearest vertices Interpolation

DTM loading time was optimized by subdividing the DTM in buffered tiles.

A DTM obtained from a LiDAR DSM 2m x 2m produced by Lombardy Region (Italy) was used during tests.

DTMrrrDTM v)z,y,h(xh +=

DTM observationDTM observation

approx.position

KF

Page 14: goGPS (March 2010)

Constrained motionConstrained 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):

new state variable:

c0

c1

c2

(X0,Y0,Z0)

(X1,Y1,Z1)(X2,Y2,Z2) (X3,Y3,Z3)

c

p32rm

p1rm

r

r

N

N

cc

˙

=tX

Page 15: goGPS (March 2010)

3 0

3 5

4 0

4 5

5 0

3 03 5

4 04 5

5 0

2

4

6

8

1 0

C / N 0 s a t e l l i t e 2 [ d B H z ]C / N 0 s a t e l l i t e 1 [ d B H z ]

RM

SE

[m

]

3

4

5

6

7

8

9

3 0

4 0

5 0

6 0

2 04 0

6 08 0

0

1 0 0

2 0 0

3 0 0

4 0 0

5 0 0

C / N 0 [ d B H z ]E l e v a t i o n [ d e g ]

Wei

ghtA weight function was defined

to take into account the satellites signal-to-noise ratio and elevation.

Observation weightingObservation weighting

Page 16: goGPS (March 2010)

Software/1Software/1

- developed in MATLAB environment

- 1 Hz data acquisition rate by means of “Instrument Control” toolbox (standard TCP-IP and USB)

Page 17: goGPS (March 2010)

Software/2Software/2

Page 18: goGPS (March 2010)

Software/3Software/3

Page 19: goGPS (March 2010)

goGPS – ublox comparisongoGPS – 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

Page 20: goGPS (March 2010)

goGPS – ublox comparisongoGPS – ublox comparison

goGPS solutionAEK-4TEVK-5T- RTK (VRS)- constant velocity dyn. model- observations weighted on SNR

u-blox solutionAEK-4TEVK-5T- stand-alone- automotive dynamic model

Page 21: goGPS (March 2010)

goGPS – ublox comparisongoGPS – ublox comparison

goGPS solutionAEK-4TEVK-5T- RTK (VRS)- constant velocity dyn. model- observations weighted on SNR

u-blox solutionAEK-4TEVK-5T- stand-alone- automotive dynamic model

LEA-5T firmware < 6.02 bug?

“The field local time in RXM-RAW hadinsufficient resolution with FW6.0causing a submillisecond mismatchbetween local time and pseudorangemeasurements. This limitation ofFW6.0 has been fixed with FW6.02 […]”

Page 22: goGPS (March 2010)

Accuracy testAccuracy test

goGPS(cutoff = 30°)

ebonTek(ANTARIS4)

mean 0.78 mstd 0.47 mRMSE 0.91 m

mean 4.03 mstd 1.70 mRMSE 4.37 m

Leica GS20(mod. “Max Accuracy”)

mean 0.30 mstd 0.15 mRMSE 0.34 m

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

Page 23: goGPS (March 2010)

Future developments (positioning)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

Page 24: goGPS (March 2010)

Future developments (sw / hw)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

Page 25: goGPS (March 2010)

Porting goGPSPorting goGPS

Conversion from MATLAB to JAVA

- positioning func.- input/output- GPS formats- (...)

goGPS libs

goGPS core Kalman filter

GUIgoGPS GUI

MATLAB JAVA→

Page 26: goGPS (March 2010)

goGPS as a servicegoGPS as a service

goGPS will provide GPS data processing as a web processing service (WPS) to obtain accurate positioning from raw GPS observations

ZOO Server providinggoGPS as WPS

Rovers just acquiringraw data

raw observations

accurate positioning

http://www.zoo-project.org/

Page 27: goGPS (March 2010)

Hardware prototype/1Hardware prototype/1

goGPSNo positioning processorNo proprietary algorithms

Lower costGreater freedom

Page 28: goGPS (March 2010)

softwarehardware

goGPSSoftware-definedacquisition/trackingengine

Radio front-end

Hardware prototype/2Hardware prototype/2

Page 29: goGPS (March 2010)

ConclusionsConclusions

- 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

Page 30: goGPS (March 2010)

Code & contactsCode & contacts

goGPS website:

http://www.gogps-project.org

ありがとうございましたありがとうございました

[email protected]