gogps (march 2010)

30
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

Upload: eugenio-realini

Post on 13-Jul-2015

5.671 views

Category:

Technology


0 download

TRANSCRIPT

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

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

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

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

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

Real-time processingReal-time processing

Internet

3G

Base station(s)

NTRIP(RTCM 3.1)

USB goGPS

USB

Real-time positioning

Post-mission processingPost-mission processing

Internet

Base station(s)NTRIP(RTCM 3.1)

USB

goGPS

RINEX RINEX

Positioning

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

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

++=

+=

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

++=++=+

(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

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

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

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

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

Software/1Software/1

- developed in MATLAB environment

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

Software/2Software/2

Software/3Software/3

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

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

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 […]”

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

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

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

Porting goGPSPorting goGPS

Conversion from MATLAB to JAVA

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

goGPS libs

goGPS core Kalman filter

GUIgoGPS GUI

MATLAB JAVA→

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/

Hardware prototype/1Hardware prototype/1

goGPSNo positioning processorNo proprietary algorithms

Lower costGreater freedom

softwarehardware

goGPSSoftware-definedacquisition/trackingengine

Radio front-end

Hardware prototype/2Hardware prototype/2

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

Code & contactsCode & contacts

goGPS website:

http://www.gogps-project.org

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

[email protected]