Post on 19-Jul-2020
Introduction of RTKLIB
Yize Zhang
Tokyo University of Marine Science and Technology
Contents
1. Introduction of RTKLIB
2. GNSS Positioning Theory &
Example of using RTKLIB
1 RTKLIB
• Open source program package for standard and precise positioning with GNSS (global navigation satellite system).
• Developed by Mr. Tomoji Takasu at TUMSAT.
• Since 2006, latest version is ver. 2.4.3 b31.
• API(Application Programming Interface)+APs (application programs).
1 Features of RTKLIB
(1) It supports multi-GNSS satellites:
GPS, GLONASS, Galileo, QZSS, BeiDou and SBAS (no IRNSS/Navic)
(2) It supports various positioning modes with GNSS for both real-time- and post-processing:
Single, DGPS/DGNSS, Kinematic, Static, Moving-Baseline, Fixed,
PPP-Kinematic, PPP-Static and PPP-Fixed
(3) It supports many standard formats/protocols and receivers:
RINEX 2/3,RTCM 2/3, BINEX, NTRIP 1.0, NMEA 0183, SP3, CLK, ANTEX, IONEX,NGS PCV and EMS ...
NovAtel, u-blox, SkyTraq, JAVAD, Septentrio, NVS, Hemisphere ...
1 Features of RTKLIB
(4) It supports real-time communication via:
Serial, TCP/IP, NTRIP, and file streams.
(5) It provides many library functions and APIs
(6) It provides many GUIs and CUI(command-line user interface) APs:
1 Package of RTKLIB
1 RTKLIB version and download
http://www.rtklib.com/ https://github.com/tomojitakasu/
1 Download RTKLIB
https://github.com/tomojitakasu/RTKLIB_bin/tree/rtklib_2.4.3
1 Launch RTKLIB
1 RTKLIB GUIs
RTKPLOT RTKNAVI
RTKPOST RTKCONVNTRIP BROWSER
RTKGET
• http://www.rtklib.com/prog/manual_2.4.2.pdf
1 RTKLIB Manual
Contents
1. Introduction of RTKLIB
2. GNSS Positioning Theory
& Example of using RTKLIB
SPP
DGNSS
PPP
RTK
2 GNSS Positioning
2 GNSS Observation and Errors
2 GNSS Positioning based on code and carrier phase
2 GNSS Observation and Errors
Subirana J. Sanz, Juan Zornoza J.M. and Hernández-
Pajares M. GNSS Data Processing: Volumn I:
Fundamentals and Algorithms. ESA communications,
Netherlands, 2013
2 GNSS Observation and Errors
Teunissen P J G , Montenbruck O . Springer Handbook
of Global Navigation Satellite Systems [J]. 2017,
10.1007/978-3-319-42928-1.
Contents
1. Introduction of RTKLIB
2. GNSS Positioning Theory
& Example of using RTKLIB
SPP
DGNSS
PPP
RTK
2.1.1 GNSS Pseudo-range Observation Equation
fff P2
jjj
f
jj εf
ITδtcδtcρP +−+−−+= j
rela
Pseudo-range observation
Clock relativity correction
Geometric distance from satellite to receiver(X, Y, Z)
Receiver clock
Satellite clock
Troposphere correction
Ionosphere correction
Noise and other modeled
corrections
2.1.1 GNSS Observation Data (RINEX format)
ftp://igs.org/pub/data/format/rinex303.pdf
2.1.1 GNSS Observation Data (RINEX format)
ftp://igs.org/pub/data/format/rinex303.pdf
2.1.1 GNSS Navigation Data(RINEX format)
ftp://igs.org/pub/data/format/rinex303.pdf
2.1.1 SPP(Single Point Positioning)
−−−
−−−
=
−−
−−
δtc
dz
dy
dx
1ρ
zz
ρ
yy
ρ
xx
1ρ
zz
ρ
yy
ρ
xx
DρP
DρP
0
n
0
0
n
0
0
n
0
0
1
0
0
1
0
0
1
0
nnn
111
dzρ
zzdy
ρ
yydx
ρ
xxρρ
0
sat
0
0
sat
0
0
sat
00
−+
−+
−+=
Define:
Then:
𝐷 =𝑐 ⋅ 𝛿𝑡𝑠 + 𝛥𝑟𝑒𝑙𝑎 − 𝑇 +𝐼
𝑓2
y G x
2.1.1 Solving GNSS Equations
Then GNSS Equation can be simplified as:
where y is the OMC(observation minus correction),G is the design matrix, x is the estimated parameter, ɛ is observation noise, R is observation covariance matrix.
2.1.1 Solving GNSS Equations: Least Square
Least square is to best-fit the condition of:
Following this condition, the Normal Equation of least square is:
or
So the least square solution is:
P is the covariance matrix of the estimated parameter
yxGVWVV −== =ˆ)vwv(minmin
1
2
iii wheren
i
T
WyGxWGGTT ˆ)( = yRGxGRG
1T1T ˆ)( −− =
11T
1T11T
)(
)(ˆ−−
−−−
=
=
GRGP
yRGGRGx
2.1.1 Solving GNSS Equations: Kalman Filter
11-
ˆ1
-
ˆ
11k
1
ˆˆ
−−−
−−
−
−
+=
=
− kkk
kk
kkQΦPΦP
xΦxT
xx
-
ˆˆ -
ˆ-ˆˆ
k kkk
kkkkkk
xx PGKIP
xGyKxx
=
+= −−
1T-
ˆ
T-
ˆ
−
+= kkkkk kkRGPGGPK xx
Predict:
Estimate:
2.1.1 Solving GNSS Equations: LS vs. KF
2.1.1 DOP
Covariance matrix of SPP is:
Define:𝑃𝐷𝑂𝑃 = 𝑝11 + 𝑝22 + 𝑝33
𝐻𝐷𝑂𝑃 = 𝑝11 + 𝑝22V𝐷𝑂𝑃 = 𝑝33
𝐺𝐷𝑂𝑃 = 𝑝11 + 𝑝22 + 𝑝33 +𝑝44
𝑷 = (𝑮𝑻𝑹−𝟏𝑮)−𝟏
𝑷 =
𝒑𝟏𝟏 ⋯ 𝒑𝟏𝟒⋮ ⋱ ⋮
𝒑𝟒𝟏 ⋯ 𝒑𝟒𝟒
2.1.2 Convert data to RINEX using RTKCONV
2.1.2 Data quality check using RTKLIB
You can input all the other types of navigation files (*.p; *.nav; *.n;*.c;*.g)
2.1.2 Data quality check using RTKLIB
Sat Visibility SkyPlot
2.1.2 Data quality check using RTKLIB
SNR/MP/EleDOP/SatNum
2.1.3 Example of SPP using RTKLIBDefault setting of RTKLIB
2.1.3 RTKPLOT of SPP
2.1.3 RTKPLOT OPTIONS
2.1.3 Example of SPP using RTKLIB: GPS+Galileo
Contents
1. Introduction of RTKLIB
2. GNSS Positioning Theory
& Example of using RTKLIB
SPP
DGNSS
PPP
RTK
2.2.1 DGNSS(Differential GNSS)
For one common satellite observed by base station and rover station at frequency f:
After station differencing:
𝑃𝑟 = 𝜌𝑟 + 𝑐 ⋅ 𝛿𝑡𝑟 − 𝑐 ⋅ 𝛿𝑡s − 𝑟𝑒𝑙𝑟 + 𝑇 −𝐼
𝑓2+ 휀𝑟
𝑃𝑏 = 𝜌𝑏 + 𝑐 ⋅ 𝛿𝑡𝑏 − 𝑐 ⋅ 𝛿𝑡s − 𝑟𝑒𝑙𝑟 + 𝑇 −𝐼
𝑓2+ 휀𝑏
𝑃𝑏𝑟 = 𝜌𝑟 − 𝜌𝑏 + 𝑐 ⋅ 𝛿𝑡𝑏𝑟 + 휀𝑏𝑟
By Least Square or Kalman Filter, we can get the coordinate difference of these two stations. If the coordinate of base station is known, then the position of rover station can be get:
𝑃𝑜𝑠𝑟 = 𝑃𝑜𝑠𝑏 +𝑑𝑃𝑜𝑠𝑏𝑟
2.2.1 Benefit of DGNSS
For short baseline, DGNSS would remove errors from satellite and atmosphere, including satellite orbit, clock, relativity, ionosphere, troposphere error.
However, DGNSS can’t remove errors from receivers, will enlarge pseudo-
range observation noise by 2 times.
2.2.2 Example of DGNSS using RTKLIB
2.2.2 Example of DGNSS using RTKLIB
STD improve from [0.62, 0.62,1.95]m to [0.22, 0.23, 0.97]m
Contents
1. Introduction of RTKLIB
2. GNSS Positioning Theory
& Example of using RTKLIB
SPP
DGNSS
PPP
RTK
2.3.1 GNSS Carrier Phase Observation Equation
fff P2
jjj
f
jj εf
ITδtcδtcρP +−+−−+= j
rela
Carrier Phase observation
Clock relativity correction
Geometric distance from satellite to receiver(X, Y, Z)
Receiver clock
Satellite clock
Troposphere correction
Ionosphere correction
Noise and other modeled
corrections
relaf
jj j j j j j j
f f,L f,L f f f L2
IL ρ c δt c δt Δ T λ N λ W ε
f= + − − + + + + +
Ambiguity including satellite and receiver bias
Phase windup
2.3.1 PPP(Precise Point Positioning)
−−−
−−−
−−−
−−−
=
−−
−−
−−
−−
n
1
w
n
0
n
0
0
n
0
0
n
0
n
0
n
0
0
n
0
0
n
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
Lnnn
Pnnn
1L11
1P11
B
B
dZTD
δtc
dz
dy
dx
10M1ρ
zz
ρ
yy
ρ
xx
00M1ρ
zz
ρ
yy
ρ
xx
01M1ρ
zz
ρ
yy
ρ
xx
00M1ρ
zz
ρ
yy
ρ
xx
DρL
DρP
DρL
DρP
wet
wet
wet
wet
Similar as SPP, we can establish PPP model by combining pseudo-range and carrier phase observation:
Troposphere residual after model correction and carrier phase ambiguity is estimated together with receiver coordinate and receiver clock.
2.3.1 PPP(Precise Point Positioning)
Each errors must be corrected carefully.
(1) Satellite clock and coordinate are from IGS final products(.sp3, .clk);
(2) Satellite and receiver Phase Center Offset(PCO) and Phase Center Variation(PCV) should be corrected by IGS antenna model(.atx);
(3) Ionosphere error usually removed after Ionosphere-Free combination, or estimated as a random walk parameter;
(4) Troposphere residual after model correction and carrier phase ambiguity should be estimated together with coordinate and receiver clock.
(5) Earth solid tide and ocean tide error must be corrected.
2.3.1 PPP: IGS products
http://www.igs.org/products
2.3.1 PPP: IGS products
http://acc.igs.org/
2.3.1 PPP: IGS products
http://kb.igs.org/hc/en-us/article_attachments/203088448/UsingIGSProductsVer21_cor.pdf
https://kb.igs.org/hc/en-us/articles/201096516-IGS-Formats
2.3.1 PPP using Final Orbits and Clocks
http://acc.igs.org/
2.3.2 Example of PPP using RTKLIB
2.3.2 Example of Static PPP using RTKLIB
2.3.2 Example of Static PPP using RTKLIB
2.3.2 Example of Kinematic PPP using RTKLIB
Contents
1. Introduction of RTKLIB
2. GNSS Positioning Theory
& Example of using RTKLIB
SPP
DGNSS
PPP
RTK
2.4.1 RTK(Real Time Kinematic)
For one common satellite observed by base station and rover station at frequency f:
After station differencing:
𝐿𝑟 = 𝜌𝑟 + 𝑐 ⋅ 𝛿𝑡𝑟 − 𝑐 ⋅ 𝛿𝑡s − 𝑟𝑒𝑙𝑟 + 𝑇 +𝐼
𝑓2+ 𝜆𝑓 ⋅ 𝑁r + 𝜆𝑓 ⋅ B𝑟 − 𝜆𝑓 ⋅ 𝐵
𝑠 + 𝜆𝑓 ⋅ 𝑊 + 휀𝑟
𝐿𝑏 = 𝜌𝑏 + 𝑐 ⋅ 𝛿𝑡𝑏 − 𝑐 ⋅ 𝛿𝑡s − 𝑟𝑒𝑙𝑟 + 𝑇 +𝐼
𝑓2+ 𝜆𝑓 ⋅ 𝑁𝑏 + 𝜆𝑓 ⋅ B𝑏 − 𝜆𝑓 ⋅ 𝐵
𝑠 + 𝜆𝑓 ⋅ 𝑊 + 휀𝑏
𝐿𝑏𝑟 = 𝜌𝑟 −𝜌𝑏 +𝑐 ⋅ 𝛿𝑡𝑏𝑟 +𝜆𝑓⋅ 𝑁𝑏r + 𝜆𝑓 ⋅ B𝑏𝑟 + 휀𝑏𝑟
After satellite differencing:
𝐿𝑏𝑟𝑖𝑗
= 𝜌𝑟𝑖𝑗−𝜌𝑏
𝑖𝑗+𝜆𝑓 ⋅ 𝑁𝑏𝑟
𝑖𝑗+ 휀𝑏𝑟
𝑖𝑗
2.4.1 Integer Least Square(ILS)
By Least Square or Kalman Filter, we can get the float solution of coordinate difference and float ambiguity.
The float solution of ambiguity can be fixed to integer using LAMBDA(Least-squares AMBiguity Decorrelation Adjustment).
2.4.1 Integer Least Square(ILS)
After ambiguity is fixed, the float coordinate solution will updated as:
The covariance an also updated as:
2.4.2 Example of RTK using RTKLIB
2.4.2 Example of RTK using RTKLIB
2.4.2 Example of RTK using RTKLIB
2.4.2 Example of RTK using RTKLIB
2.4.2 If we set SNR Mask
Fix rate will improve from 92.7% to 96.8%
Contents
1. Introduction of RTKLIB
2. GNSS Positioning Theory
& Example of using RTKLIB
SPP
DGNSS
PPP
RTK
RTKNAVI
• RTKPOST is for post processing of GNSS data
• For real-time users, RTKNAVI is usually used.
2.5 RTKNAVI
2.5 RTKNAVI
2.5 RTKNAVI
2.5 RTKNAVI
Same as RTKPOST
2.5 RTKNAVI
2.5 RTKNAVI
3 Other software: Modified RTKCONV v2.4.3 p01
3 Other software
https://onedrive.live.com/?authkey=%21AJql2JkZaRwVhAM&id=CA40E2337C7D7327%2112977&cid=CA40E2337C7D7327
3 Modified RTKCONV v2.4.3 p01
3 Modified RTKPOST v2.4.3 p01
3 Net_Diff
⚫Functions:
✓1. SPP/PPP/RTK/DGNSS/PPP-AR/PPP-RTK
✓2 GPS/Glonass/Galileo/BeiDou/QZSS/IRNSS
✓3 Single, dual, triple-frequency
✓4 Data download
✓5 Observation and positioning analysis
✓6 Ntrip receiving, data conversion
✓7 Orbit simulation
⚫https://github.com/YizeZhang/Net_Diff
Thank you!