High Accuracy Positioning using Carrier-phases with the Barcelona, - - PowerPoint PPT Presentation

high accuracy positioning using carrier phases with the
SMART_READER_LITE
LIVE PREVIEW

High Accuracy Positioning using Carrier-phases with the Barcelona, - - PowerPoint PPT Presentation

gAGE research group of Astronomy and Geomatics High Accuracy Positioning using Carrier-phases with the Barcelona, Spain Open Source GPSTk Software Salazar D., Hernandez-Pajares M., Juan J.M. and Sanz J. gAGE/UPC, Barcelona, Spain 1 4 th ESA


slide-1
SLIDE 1

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

High Accuracy Positioning using Carrier-phases with the Open Source GPSTk Software

Salazar D., Hernandez-Pajares M., Juan J.M. and Sanz J. gAGE/UPC, Barcelona, Spain

1

slide-2
SLIDE 2

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Contents

  • GPSTk overview
  • Some current features
  • GNSS Data Structures
  • Some processing examples
  • Conclusions and future work

2

slide-3
SLIDE 3

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

GPSTk overview

  • GPSTk is:

– A library to write GNSS software – Includes example applications.

  • GPSTk is Free Software (LGPL):

– Both non-commercial and – commercial applications.

3

slide-4
SLIDE 4

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

GPSTk overview

  • Written in ISO-standard C++ (portable).
  • Operative System portability:

– Works in Windows, Linux, Mac OSX, AIX, Solaris, etc.

  • Hardware portability:

– Big and (very) small systems, both 32 and 64 bits.

4

slide-5
SLIDE 5

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

GPSTk portability

GUMSTIX Miniature computer NOKIA Internet Tablets

5

slide-6
SLIDE 6

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

GPSTk overview

  • It was initiated at the Advanced Research

Laboratories at Texas University (ARL:UT)

  • Now it has several official developers

around the world.

  • Project website:

http://www.gpstk.org

6

slide-7
SLIDE 7

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Some current features

  • Time conversions.
  • RINEX files reading/writing:

– Observation – Ephemeris – Meteorological

  • Ephemeris computation:

– Broadcast – SP3.

7

slide-8
SLIDE 8

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Some current features

  • Mathematical tools: Matrices, vectors,

interpolation, numeric integration, LMS, W-LMS, Kalman filter, etc.

  • Application development support:

– Exceptions handling. – Command line framework.

8

slide-9
SLIDE 9

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Some current features

  • Several tropospheric models: Saastamoinen,

Goad-Goodman, New Brunswick, etc.

  • Classes for precise modeling: Phase centers,

Wind-up, gravitational delay, etc.

  • Tidal models:

– Solid tides – Ocean loading – Pole tides

9

slide-10
SLIDE 10

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

GNSS Data Structures

  • GNSS Data Structures (GDS) were designed

to help in GNSS data processing.

  • They address GNSS data management

problems.

10

slide-11
SLIDE 11

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

GNSS Data Structures

  • Almost all GNSS data may be identified (or

indexed) by: – Source: Receiver logging data. – Satellite: GPS, GALILEO, GLONASS... – Epoch: Time the data belongs to. – Type: C1, P1, L2, etc, and other types. Key point: Key point: Save Meta-Information: Save Meta-Information: Save Save 4 indexes 4 indexes to identify to identify each piece of data each piece of data

11

slide-12
SLIDE 12

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

GNSS Data Structures

  • Source: Implemented as class SourceID.
  • Satellite: Implemented as class SatID.

– Several systems: GPS, Galileo, Glonass...

  • Epoch: Implemented as class DayTime.
  • Type: Implemented as class TypeID.

– Includes basic observations: C1, P1, etc. – Other “types”: Relativity, tropo, etc. – You can create new types as needed!!!.

12

slide-13
SLIDE 13

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Some conceptual GDS examples

13

slide-14
SLIDE 14

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Example: Rinex observation data for a given epoch

14

slide-15
SLIDE 15

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Real numerical values are down here... Implicit Index

15

slide-16
SLIDE 16

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Real numerical values are down here... Source Epoch Type Sat Implicit Index

15

slide-17
SLIDE 17

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Example: Pseudorange model equation

16

slide-18
SLIDE 18

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Epoch is implicit: Equation values are valid for a given epoch

17

slide-19
SLIDE 19

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

GNSS Data Structures

  • Almost all GNSS data may be identified (or

indexed) by: – Source: Receiver logging data. – Satellite: GPS, GALILEO, GLONASS... – Epoch: Time the data belongs to. – Type: C1, P1, L2, etc, and other types. Key point: Key point: Save Meta-Information: Save Meta-Information: Save Save 4 indexes 4 indexes to identify to identify each piece of data each piece of data

18

slide-20
SLIDE 20

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Implementation

  • GDS have two parts:

Header: Common information Body: Specific information

“trunk” of tree “branches” of tree

19

slide-21
SLIDE 21

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Implementation

  • GDS provide several methods to ease
  • handling. For instance:

Keep only C1 observable in GDS:

gpsData.keepOnlyTypeID(TypeID::C1)

20

slide-22
SLIDE 22

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Implementation

  • GDS provide several methods to ease
  • handling. For instance:

Keep only C1 observable in GDS:

gpsData.keepOnlyTypeID(TypeID::C1) GDS Method Type to keep

21

slide-23
SLIDE 23

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Implementation

  • GDS provide several methods to ease
  • handling. For instance:

Access GDS in a matrix-like fashion:

gpsData.body(TypeID::LI)(sat14)

22

slide-24
SLIDE 24

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Implementation

  • GDS provide several methods to ease
  • handling. For instance:

Access GDS in a matrix-like fashion:

gpsData.body(TypeID::LI)(sat14) GDS “Branches” Satellite Type

22

slide-25
SLIDE 25

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Processing paradigm

  • Operator “>>” is overloaded:

We redefine it in C++ to make data “flow” from one processing step to the next

23

slide-26
SLIDE 26

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Processing paradigm

Example: Declare object “rinexFile” to take data out of Rinex observation file:

RinexObsStream rinexFile("ebre0300.02o");

24

slide-27
SLIDE 27

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Processing paradigm

Example: Declare object “rinexFile” to take data out of Rinex observation file:

RinexObsStream rinexFile("ebre0300.02o");

Class to handle Rinex Obs files Object name Rinex file name

24

slide-28
SLIDE 28

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Processing paradigm

Example: Declare object “gpsData”. This is a GDS:

gnssRinex gpsData;

25

slide-29
SLIDE 29

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Processing paradigm

Example: Declare object “gpsData”. This is a GDS:

gnssRinex gpsData;

GDS Class Object name

25

slide-30
SLIDE 30

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Processing paradigm

Example: Combine everything and take one epoch of data out of Rinex file into GDS:

RinexObsStream rinexFile("ebre0300.02o"); gnssRinex gpsData; rinexFile >> gpsData;

26

slide-31
SLIDE 31

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Processing paradigm

Example: Combine everything and take one epoch of data out of Rinex file into GDS:

RinexObsStream rinexFile("ebre0300.02o"); gnssRinex gpsData; rinexFile >> gpsData;

Processing line

26

slide-32
SLIDE 32

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Processing paradigm

Example: Combine everything and take one epoch of data out of Rinex file into GDS:

RinexObsStream rinexFile("ebre0300.02o"); gnssRinex gpsData; rinexFile >> gpsData;

“Flow” operator Processing line

26

slide-33
SLIDE 33

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Processing paradigm

  • Main Idea: GNSS data processing becomes

like an “assembly line”. – The GDS “flows” from one “workstation” to the next, like a car in factory. – And like the car, the GDS changes along the processing line.

  • For the developer, the GDS is like a “white

box” holding all the information needed, and properly indexed.

27

slide-34
SLIDE 34

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Processing code-based GPS data with the GPSTk and GDS: Some examples

28

slide-35
SLIDE 35

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

C1 code observable + least-mean squares solver: Plain standard GPS processing

29

slide-36
SLIDE 36

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

C1 + LMS

  • Get data out of Rinex file, one epoch at a

time – Get data into GDS (gpsData) – Do it until Rinex file ends.

30

slide-37
SLIDE 37

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

C1 + LMS

while ( rinexFile >> gpsData ) { }

  • Get data out of Rinex file, one epoch at a

time – Get data into GDS (gpsData) – Do it until Rinex file ends.

30

slide-38
SLIDE 38

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

C1 + LMS

while ( rinexFile >> gpsData ) { }

  • Get data into modeling object gpsModel

– GpsModel was previously initialized:

  • Ephemeris, tropospheric model,

Klobuchar ionospheric model, etc. – Initialization phase is not shown here.

31

slide-39
SLIDE 39

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

C1 + LMS

while ( rinexFile >> gpsData ) { gpsData >> gpsModel }

  • Get data into modeling object gpsModel

– GpsModel was previously initialized:

  • Ephemeris, tropospheric model,

Klobuchar ionospheric model, etc. – Initialization phase is not shown here.

31

slide-40
SLIDE 40

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

C1 + LMS

while ( rinexFile >> gpsData ) { gpsData >> gpsModel }

  • Resulting GDS with original data and modeled

data gets into solver object lmsSolver – lmsSolver is from SolverLMS class. – lmsSolver was previously initialized. – Initialization phase is not shown here.

32

slide-41
SLIDE 41

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

C1 + LMS

while ( rinexFile >> gpsData ) { gpsData >> gpsModel >> lmsSolver; }

  • Resulting GDS with original data and modeled

data gets into solver object lmsSolver – lmsSolver is from SolverLMS class. – lmsSolver was previously initialized. – Initialization phase is not shown here.

32

slide-42
SLIDE 42

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

C1 + LMS

while ( rinexFile >> gpsData ) { gpsData >> gpsModel >> lmsSolver; }

  • Resulting GDS with original data and modeled

data gets into solver object lmsSolver – lmsSolver is from SolverLMS class. – lmsSolver was previously initialized. – Initialization phase is not shown here.

Processing line

32

slide-43
SLIDE 43

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

C1 + LMS

while ( rinexFile >> gpsData ) { gpsData >> gpsModel >> lmsSolver; }

  • All GNSS data processing is done!!!

– Print results to the screen. – C++ cout object is used to print to screen. – Solution is inside lmsSolver: Ask for type.

33

slide-44
SLIDE 44

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

C1 + LMS

while ( rinexFile >> gpsData ) { gpsData >> gpsModel >> lmsSolver; cout << lmsSolver.getSolution(TypeID::dx) << '' ''; cout << lmsSolver.getSolution(TypeID::dy) << '' ''; cout << lmsSolver.getSolution(TypeID::dz) << endl; }

  • All GNSS data processing is done!!!

– Print results to the screen. – C++ cout object is used to print to screen. – Solution is inside lmsSolver: Ask for type.

33

slide-45
SLIDE 45

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

C1 + LMS + ENU

while ( rinexFile >> gpsData ) { gpsData >> gpsModel >> baseChange >> enuSolver; cout << enuSolver.getSolution(TypeID::dLat) << '' ''; cout << enuSolver.getSolution(TypeID::dLon) << '' ''; cout << enuSolver.getSolution(TypeID::dUp) << endl; }

  • To get solution in a East-North-Up frame:

– Insert a XYZ2NEU object (baseChange). – Use a SolverLMS object properly tuned. – Solution is in enuSolver: Ask for right type.

34

slide-46
SLIDE 46

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PC (ionosphere free) code + smoothing with LC + weighted least-mean squares solver + East-North-Up (ENU) system

35

slide-47
SLIDE 47

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Smoothed-PC + WMS + ENU

while ( rinexFile >> gpsData ) { gpsData >> }

  • First, get combinations we will need:

– PC and LC (ionosphere-free). – LI (ionospheric combination). – MW (Melbourne-Wübbena)

  • Look for corresponding classes in GPSTk API

36

slide-48
SLIDE 48

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Smoothed-PC + WMS + ENU

while ( rinexFile >> gpsData ) { gpsData >> getPC >> getLC >> getLI >> getMW }

  • First, get combinations we will need:

– PC and LC (ionosphere-free). – LI (ionospheric combination). – MW (Melbourne-Wübbena)

  • Look for corresponding classes in GPSTk API

36

slide-49
SLIDE 49

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Smoothed-PC + WMS + ENU

while ( rinexFile >> gpsData ) { gpsData >> getPC >> getLC >> getLI >> getMW }

  • Then, detect and mark cycle-slips:

– Two different and complementary methods are used.

  • Everything is in a single processing line.

37

slide-50
SLIDE 50

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Smoothed-PC + WMS + ENU

while ( rinexFile >> gpsData ) { gpsData >> getPC >> getLC >> getLI >> getMW

>> markCSLI >> markCSMW

}

  • Then, detect and mark cycle-slips:

– Two different and complementary methods are used.

  • Everything is in a single processing line.

38

slide-51
SLIDE 51

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Smoothed-PC + WMS + ENU

while ( rinexFile >> gpsData ) { gpsData >> getPC >> getLC >> getLI >> getMW

>> markCSLI >> markCSMW

}

  • Smooth code with phase

39

slide-52
SLIDE 52

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Smoothed-PC + WMS + ENU

while ( rinexFile >> gpsData ) { gpsData >> getPC >> getLC >> getLI >> getMW

>> markCSLI >> markCSMW >> smoothPC

}

  • Smooth code with phase

40

slide-53
SLIDE 53

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Smoothed-PC + WMS + ENU

while ( rinexFile >> gpsData ) { gpsData >> getPC >> getLC >> getLI >> getMW

>> markCSLI >> markCSMW >> smoothPC >> gpsModel

}

  • Smooth code with phase
  • Apply model

41

slide-54
SLIDE 54

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Smoothed-PC + WMS + ENU

while ( rinexFile >> gpsData ) { gpsData >> getPC >> getLC >> getLI >> getMW

>> markCSLI >> markCSMW >> smoothPC >> gpsModel >> getWeights

}

  • Smooth code with phase
  • Apply model
  • Compute weights

42

slide-55
SLIDE 55

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Smoothed-PC + WMS + ENU

while ( rinexFile >> gpsData ) { gpsData >> getPC >> getLC >> getLI >> getMW

>> markCSLI >> markCSMW >> smoothPC >> gpsModel >> getWeights >> baseChange >> wmsSolver;

}

  • Smooth code with phase
  • Apply model
  • Compute weights
  • Change base and solve with a WMS solver

42

slide-56
SLIDE 56

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Smoothed-PC + WMS + ENU

while ( rinexFile >> gpsData ) { gpsData >> getPC >> getLC >> getLI >> getMW

>> markCSLI >> markCSMW >> smoothPC >> gpsModel >> getWeights >> baseChange >> wmsSolver;

}

  • All GNSS data processing is done!!!

– Print results to the screen. – Solution is inside wmsSolver: Ask for type.

  • Everything is in a single processing line.

43

slide-57
SLIDE 57

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Differential GPS + C1 code observable + weighted least-mean squares + East-North-Up (ENU) system

44

slide-58
SLIDE 58

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

C1 + DGPS + WMS + ENU

while ( rinexFile >> gpsData ) { gpsDataRef >> synchro >> refModel; }

  • First, process reference station data:

– synchro is a Synchronize class object. – It is in charge of synchronizing reference and rover data streams. – Initialization is not shown here. Consult API.

45

slide-59
SLIDE 59

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

C1 + DGPS + WMS + ENU

while ( rinexFile >> gpsData ) { gpsDataRef >> synchro >> refModel; delta.setRefData( gpsDataRef.body ); }

  • Then, indicate the reference data:

– delta is a DeltaOp class object. – It computes single diffences using common satellites. – You must tell it which is the reference data.

46

slide-60
SLIDE 60

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

C1 + DGPS + WMS + ENU

while ( rinexFile >> gpsData ) { gpsDataRef >> synchro >> refModel; delta.setRefData( gpsDataRef.body ); gpsData >> gpsModel >> getWeights >> delta >> baseChange >> wmsSolver; }

  • Finally, process rover receiver data:

– You must insert delta object into processing line to compute single differences.

47

slide-61
SLIDE 61

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

C1 + DGPS + WMS + ENU

while ( rinexFile >> gpsData ) { gpsDataRef >> synchro >> refModel; delta.setRefData( gpsDataRef.body ); gpsData >> gpsModel >> getWeights >> delta >> baseChange >> wmsSolver; }

  • All GNSS data processing is done!!!

– Print results to the screen. – Solution is inside wmsSolver: Ask for type.

48

slide-62
SLIDE 62

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Code-based results (as expected)

49

slide-63
SLIDE 63

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Processing phase-based GPS data with the GPSTk and GDS: Some examples of Precise Point Positioning (PPP)

50

slide-64
SLIDE 64

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP (static, forward mode)

correctObservables.setExtraBiases(tides);

51

Set “correcting” object with tide information. It also includes RX antenna phase center and eccentricity

slide-65
SLIDE 65

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP (static, forward mode)

correctObservables.setExtraBiases(tides); gpsData >> basicGPSModel

51

Compute basic components of model

slide-66
SLIDE 66

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP (static, forward mode)

correctObservables.setExtraBiases(tides); gpsData >> basicGPSModel >> removeEclipsedSatellites

51

Remove satellites in eclipse

slide-67
SLIDE 67

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP (static, forward mode)

correctObservables.setExtraBiases(tides); gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay

51

Compute gravitational delay

slide-68
SLIDE 68

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP (static, forward mode)

correctObservables.setExtraBiases(tides); gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter

51

Compute the effect of satellite phase centers

slide-69
SLIDE 69

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP (static, forward mode)

correctObservables.setExtraBiases(tides); gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables

51

Correct observables from tides, RX phase center, etc

slide-70
SLIDE 70

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP (static, forward mode)

correctObservables.setExtraBiases(tides); gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables >> windUp

51

Compute wind-up effect

slide-71
SLIDE 71

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP (static, forward mode)

correctObservables.setExtraBiases(tides); gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables >> windUp >> computeTropo

51

Compute tropospheric effect (Niell model)

slide-72
SLIDE 72

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP (static, forward mode)

correctObservables.setExtraBiases(tides); gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables >> windUp >> computeTropo >> computeLinearCombinations

51

Compute common linear combinations: PC, LC, LI, ...

slide-73
SLIDE 73

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP (static, forward mode)

correctObservables.setExtraBiases(tides); gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables >> windUp >> computeTropo >> computeLinearCombinations >> markCSLI >> markCSMW

51

Marck cycle slips: Two complementary algorithms

slide-74
SLIDE 74

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP (static, forward mode)

correctObservables.setExtraBiases(tides); gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables >> windUp >> computeTropo >> computeLinearCombinations >> markCSLI >> markCSMW >> computePrefitResiduals

51

Compute prefit residuals

slide-75
SLIDE 75

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP (static, forward mode)

correctObservables.setExtraBiases(tides); gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables >> windUp >> computeTropo >> computeLinearCombinations >> markCSLI >> markCSMW >> computePrefitResiduals >> decimateData

51

Decimate data if epoch is not a multiple of 900 seconds

slide-76
SLIDE 76

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP (static, forward mode)

correctObservables.setExtraBiases(tides); gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables >> windUp >> computeTropo >> computeLinearCombinations >> markCSLI >> markCSMW >> computePrefitResiduals >> decimateData >> baseChange

51

Change from ECEF to ENU reference frame

slide-77
SLIDE 77

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP (static, forward mode)

correctObservables.setExtraBiases(tides); gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables >> windUp >> computeTropo >> computeLinearCombinations >> markCSLI >> markCSMW >> computePrefitResiduals >> decimateData >> baseChange >> pppSolver;

51

Solve equations with a properly adjusted Kalman filter

slide-78
SLIDE 78

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP (static, forward mode)

correctObservables.setExtraBiases(tides); gpsData >> basicGPSModel >> removeEclipsedSatellites >> gravitationalDelay >> computeSatellitePhaseCenter >> correctObservables >> windUp >> computeTropo >> computeLinearCombinations >> markCSLI >> markCSMW >> computePrefitResiduals >> decimateData >> baseChange >> pppSolver;

51

All this processing is repeated for each epoch

slide-79
SLIDE 79

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP: ONSA 2005/08/12, static, forward

52

slide-80
SLIDE 80

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP (kinematic, forward mode)

WhiteNoiseModel newCoordinatesModel(100.0); pppSolver.setCoordinatesModel(&newCoordinatesModel); correctObservables.setExtraBiases(tides); gpsData >> basicGPSModel >> removeEclipsedSatellites ... ... >> pppSolver;

53

slide-81
SLIDE 81

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP:ONSA 2005/08/12, kinematic, forward

54

slide-82
SLIDE 82

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP (static, forward-backward)

SolverPPPFB fbpppSolver.ReProcess(4); ... correctObservables.setExtraBiases(tides); gpsData >> basicGPSModel >> removeEclipsedSatellites ... ... >> fbpppSolver; ... while ( fbpppSolver.LastProcess(gpsData) ) { cout << fbpppSolver.getSolution(TypeID::dLat) << '' ''; cout << fbpppSolver.getSolution(TypeID::dLon) << '' ''; cout << fbpppSolver.getSolution(TypeID::dH) << '' ''; }

55

slide-83
SLIDE 83

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

PPP: ONSA 2005/08/12, static, fw/back

56

slide-84
SLIDE 84

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Conclusions and future work

  • GPSTk is already a solid base to work upon,

saving tedious work to the researcher.

  • GDS are providing a powerful (yet flexible and

easy to use) processing framework.

  • PPP results using GDS are in agreement with
  • ther GNSS processing software.
  • There are several areas for improvement:

– RINEX version 3 handling. – IONEX files processing. – Robust outlier detection classes. – More sophisticated models. – Other GNSS processing strategies (RTK).

57

slide-85
SLIDE 85

4th ESA Workshop on Satellite Navigation User Equipment Technologies. NAVITEC 2008.

gAGE research group of Astronomy and Geomatics

Barcelona, Spain

Thanks for your attention and time!

Dagoberto.Jose.Salazar@upc.edu

58