RTKLIB

From OpenStreetMap Wiki
Jump to: navigation, search
RTKLIB
Screenshot of RTKLIB
Author: T. Takasu and other contributors.
Website: http://www.rtklib.com/
Version: 2.4.2 (2013-04-29)
License: BSD 2, GPL >=v3 for versions before and including 2.4.2b11
Platform: win ; linux ; android

Open source program package for GNSS positioning

RTKLIB is an open source GNSS toolkit for performing standard and precise positioning. Using GNSS raw data, it is possible to do realtime and post-processing to accurately determine a position, using either a base station, precise point positioning (PPP) or precise ephemerides and clock data. The software supports all major satellite constellations (GPS, GLONASS, Galileo, BeiDou, SBAS, QZSS) and major file exchange formats. The toolkit runs with a GUI on Windows and commandline tools on Linux.

With professional receivers and antennas, it is possible to achieve centimeter accuracy, while low-cost single frequency equipment can achieve decimeter accurary.[citation needed]


Realtime and post-processing modes

  • Single enables positioning as a normal GNSS receiver using supplied ephemerides and clock data from the satellites. If the SBAS data is available for this geographic region, it can be used to improve the rover's position (Single+SBAS)
  • Differential GPS/GNSS where positioning results from a rover and base station are used to improve the rover's position.
  • Real Time Kinematic (RTK)
    • Kinematic Raw data from a moving rover is combined with raw data from a static base station to improve the rover's position.
    • Static Similar to above, but the rover is stationary.
    • Moving-Baseline Similar to above, but the distance between the rover and base station is calculated irrespective of the base station's position.
    • Fixed Used for RTKLIB testing.
  • Precise Point Positioning (PPP)
    • PPP-Kinematic Raw data from a moving rover is combined with real time predicted or non-real time measured precise ephemerides and satellite clocks to improve the rover's position.
    • PPP-Static Similar to above, but the rover is stationary.
    • PPP-Fixed Used for RTKLIB testing.

Usage

Collecting traces

With the approriate GNSS antenna and receiver, it is possible to collect raw data on a windows or linux machine using RTKNAVI (or STRSVR). Open Input Streams (press the I in RTKNAVI), choose Serial type for the rover and in the configuration dialogs choose the correct COM port. Also under Cmd choose the correct initialization file for the receiver (found in the data subdirectory). Choose the correct format for the receiver. Close the dialog and open Log Streams (press the L), choose File as output for the rover and select the file destination. The raw data from the receiver should now be saved to file when pressing "Start".

Converting traces to RINEX-format

Before traces can be post-processed, they needs to be converted to the RINEX file format. This is done with RTKCONV or convbin, and the RINEX files are saved as .obs, .nav and possibly .sbs.

Post-processing traces

The RINEX files can be post-processed with RTKPOST or rnx2rtkp. The RINEX .obs-file from the rover is needed together with either

  • ephemerides and clock solutions (f.ex. from IGS[1] in .sp3 and .clk that can be downloaded using RTKGET
  • RINEX file from a nearby base station
    • Your own stationary receiver with raw data captured at the same time as the rover
    • EUREF network[2] in Europe
    • CORS[3][4] in the USA
    • NGRS[5] in Australia
    • RBMC[6] in Brazil
    • CACS[7] in Canada
    • RGP[8] in France
    • GREF[9] in Germany
    • Others[10]
  • Saved base station raw data collected with RTKLIB in real time.

Under Options:Settings1 choose the correct positioning mode, and in the tab Output choose NMEA under Solution Format. In the Positions tab either input the correct position of the base station or let RTKPOST use the position in the RINEX file.

The quality of the postprocessed RTK data strongly depends on the baseline length (distance between the base station and rover). The following figures show the static location variation for B=0.8 km and B=20.2 km Svtl-20131228.png Lake-20131222.png

Collecting base station data in real-time

First, apply for access to an NTRIP caster (see full list[11]) from the network you want access to:

NTRIP Casters
Name Country Caster address Application Form Reference Station locations
IGS-IP by BKG Germany [12] [13] international base stations
IGS-MGEX by BKG Germany [14] [15] international base stations using GPS, GLONASS, Galileo, QZSS
EUREF-IP by ASI Italy [16] [17] mostly European base stations
EUREF-IP by BKG Germany [18] [19] mostly European base stations
EUREF-IP by ROB Belgium [20] [21] mostly European base stations
RBMC by IBGE Brazil [22] [23] mostly Brazilian base stations
ASG by EUPOS Poland [24] [25] Polish base stations
Trignet by National Geospatial Information South Africa [26] [27] All of South Africa. Free of charge

Then, using the correct NTRIP caster, username and password, configure either RTKNAVI or STRSVR to collect the raw data in real time as RTCM 2 or 3 and save/log it to a file.

Set up your own base station and NTRIP caster

Using a hardware receiver, configure STRSVR to input the data from the serial port. As Output, choose NTRIP Server and configure the appropriate settings for your NTRIP caster. Under Conversion Option choose Conversion from <your binary format> to RTCM 3. For Message Types enter the appropriate types as listed in the RTKLIB Manual[28] p. 27 (f.ex. 1002(1), 1019(1)).

You also need to set up an NTRIP caster:

  • Lefebure NTRIP Caster[29] - Windows GUI, free
  • BKG Standard NTRIP Broadcaster v.0.1.5[30] - Linux commandline, free
  • BKG Professional Ntrip Broadcaster v.2.0.15[31] - €1000

Supported hardware

Receiver overview
Brand Device Supported frequencies Approximate price
SkyTraq S1315F Single frequency GPS €100[32]
NVS NV08C BINR Single frequency GPS and GLONASS €250[33][34]
U-blox LEA-6T Single frequency GPS $349[35] €295[36]
U-blox LEA-5T Single frequency GPS No longer available
U-blox LEA-4T Single frequency GPS No longer available
U-blox NEO-6T Single frequency GPS €140[37]
U-blox NEO-6P Single frequency GPS (also pseudoPPP) €140[38]
U-blox EVK-6P Single frequency GPS (also pseudoPPP)
U-blox EVK-7P Single frequency GPS (also pseudoPPP) 250,€+
Furuno GW-10 II/III Unknown Unknown
Hemisphere Eclipse Dual frequency GPS, GLONASS and Galileo From $1125[39]
Hemisphere Crescent Single frequency GPS Unknown
JAVAD Multiple receivers supporting GRIL/GREIS Multiple frequencies From $1500
NovAtel OEM4/V/6, OEM3, OEMStar and Superstar II Multiple frequencies Unknown


Of the supported hardware, the most affordable are the single frequency receivers. The dual frequency receivers are more expensive but have a higher accuracy.

Unofficially supported hardware

sirf2 (with pre-XTrack firmware) and sirf4 receivers support raw data messages (MID7, MID8 and MID28) out of the box. Some sirf3-based receivers were successfully patched to enable carrier phase in MID28. Keeping the long story short, ALL ublox receivers CAN provide GPS raw data output. Recent ublox6 with external flash and ublox7-based receivers can also provide glonass raw data (soon to be supported by rtklib). To enable RXM-RAW and RXM-SFRB output on antaris4 the following CUSTOM UBX message can be used

b5 62 09 01 09 00 14 6c 00 00 00 00 00 00 ff 92 f7

For ublox6 ROM6.02 use:

to enable RXM-RAW

b5 62 09 01 10 00 dc 0f 00 00 00 00 00 00 23 cc 21 00 00 00 02 10 27 0e

to enable RXM-SFRB

b5 62 09 01 10 00 08 11 00 00 00 00 00 00 0f cc 21 00 00 00 02 11 42 4d


For ublox6 ROM7.03 use:

to enable RXM-RAW

b5 62 09 01 10 00 c8 16 00 00 00 00 00 00 97 69 21 00 00 00 02 10 2b 22

to enable RXM-SFRB

b5 62 09 01 10 00 0c 19 00 00 00 00 00 00 83 69 21 00 00 00 02 11 5f f0


RTKLIB patch providing support for TRK-SFRB can be found here: http://forum.openstreetmap.org/viewtopic.php?pid=339782#p339782 The RXM-SFRBX message on ublox6/7 flash based receivers can be used for decoding GPS almanac/ephemerides and GLONASS ephemerides. It is not yet supported for decoding the GLONASS OBS data, but the work is going on.

Receiver overview
Brand Device Module ROM/Flash Ext. antenna antenna Imax/Vmax Frequency Approximate price Comment
sirf2 NL-209PU - Flash2.4.2 - - =1 Hz No longer available
sirf4 NL-442U - - - =1 Hz
sirf4 NL-443P - - - =1 Hz
U-blox4 - EM-500 ROM5.00 mMCX  ? >10 Hz No longer available
U-blox4 - NL-507ETTL ROM5.00 - - 10 Hz RAM patch
U-blox4 - NL-508EUSB ROM5.00 - - 10 Hz RAM patch
U-blox4 Wintec WBT-300 - ROM5.00 - - >10 Hz RAM patch. Supports RAW over Bluetooth.
U-blox4 Wintec WBT-201 - ROM5.00 - - >10 Hz RAM patch. Supports RAW over Bluetooth.
U-blox4 Wintec WSG-1000 - ROM5.00 int. uFL  ? >10 Hz RAM patch. Supports RAW over Bluetooth.
U-blox5 NL-402U NL-551EUSB EXT6.02 - - ~2 Hz No longer available Flash patch for LEA-5H[40] EXT_G50_602_LEA-5H.bdbfccefb9dbd8395dec7adece53c1f9
U-blox5 NL-403P NL-550ERS EXT6.02 - - ~2 Hz No longer available Flash patch for LEA-5H[41] EXT_G50_602_LEA-5H.bdbfccefb9dbd8395dec7adece53c1f9
U-blox5 NL-404P NL-550ERS EXT6.02 - - ~2 Hz No longer available Flash patch for LEA-5H[42] EXT_G50_602_LEA-5H.bdbfccefb9dbd8395dec7adece53c1f9
U-blox5 NL-422MP NL-550ERS EXT6.02 - - ~2 Hz No longer available Flash patch for LEA-5H[43] EXT_G50_602_LEA-5H.bdbfccefb9dbd8395dec7adece53c1f9
U-blox5 DFRduino LEA-5H EXT6.02 - - ~2 Hz No longer available Flash patch for LEA-5H[44] EXT_G50_602_LEA-5H.bdbfccefb9dbd8395dec7adece53c1f9
U-blox6 DFRduino LEA-6H EXT7.03 - - ~2 Hz Flash patch for LEA-6H
U-blox6 NL-602U NL-651EUSB ROM6.02 - - 10 Hz RAM patch
U-blox6 NL-602U NL-651EUSB EXT7.03 - - ~2 Hz Flash patch for LEA-6H
U-blox6 NL-603P NL-650ERS ROM6.02 - - 10 Hz RAM patch
U-blox6 NL-603P NL-650ERS EXT7.03 - - ~2 Hz Flash patch for LEA-6H
U-blox6 NL-604P NL-650ERS ROM6.02 - - 10 Hz RAM patch
U-blox6 NL-604P NL-650ERS EXT7.03 - - ~2 Hz Flash patch for LEA-6H
U-blox6 NL-622MP NL-650ERS ROM6.02 - - 10 Hz RAM patch
U-blox6 NL-622MP NL-650ERS EXT7.03 - - ~2 Hz Flash patch for LEA-6H
U-blox6 NL-622MP NL-650ERS EXT1.00 - - ~2 Hz Flash patch for LEA-6H. Can support RAW GLONASS, because of the low quality of its patch antenna (but with reduced C/No ratio)
U-blox6 Grove GPS E-1612 ROM7.03 uFL  ? >10 Hz $29.90[45] RAM patch
U-blox6 Xbee GPS NEO-6M ROM7.03 uFL  ? >10 Hz $31.50[46] RAM patch
U-blox6 - NL-660ERS EXT1.00 - - ~2 Hz Supports RAW GLONASS (using flash image for LEA-6N)
U-blox6 - NL-661EUSB EXT1.00 - - ~2 Hz Supports RAW GLONASS (using flash image for LEA-6N)
U-blox6 - NL-662ETTL EXT1.00 - - ~2 Hz Supports RAW GLONASS (using flash image for LEA-6N)
U-blox6 NL-663MP NL-661EUSB EXT1.00 - - ~2 Hz Supports RAW GLONASS (using flash image for LEA-6N)
U-blox6 NL-664MP NL-660ERS EXT1.00 - - ~2 Hz Supports RAW GLONASS (using flash image for LEA-6N)
U-blox6 NL-682MP NL-660ERS EXT1.00 - - ~2 Hz Supports RAW GLONASS (using flash image for LEA-6N)
U-blox7 EVK-7N NEO-7N EXT1.01 SMA  ? >10 Hz 200,€+[47] Supports RAW GLONASS. Can be also used with NEO-7P RAW firmware.
NVS Globalsat TR-600G NV08C-CSM V2.06+ SMA /3V 10 Hz ~140,€+ [48] Supports RAW GLONASS. Needs better STM32F103 firmware adaptation.

Supported file formats

  • RINEX 2.10-2.12, 3.00-3.02
  • RTCM 2.3, 3.1, 3.2
  • BINEX
  • NTRIP 1.0
  • NMEA 0183 (only output)
  • SP3-c
  • ANTEX 1.4
  • IONEX 1.0
  • NGS PCV
  • EMS 2.0

Source-code

The source code is hosted on github [49].

Mailing list

  • FOSS-GPS -- Open Source GPS-related discussion and support[50]

Research

  • T. Takasu and A. Yasuda (2008): Evaluation of RTK-GPS Performance with Low-cost Single-frequency GPS Receivers[51]
  • T. Takasu (2009): Evaluation of GPS L1 Antenna/Receivers[52]
  • T. Takasu (2009): Development of the low-cost RTK-GPS receiver with an open source program package RTKLIB[53]
  • W. Stempfhuber, M. Buchholz (2011): A Precise, Low-Cost RTK GNSS System For UAV Applications[54]
  • D. Grieneisen (2012): Real Time Kinematic GPS for Micro Aerial Vehicles[55]
  • B. Wiśniewski, K. Bruniecki, M. Moszyński (2013): Evaluation of RTKLIB's Positioning Accuracy Using low-cost GNSS Receiver and ASG-EUPOS.[56]
  • T. Takasu (2013): PPP Ambiguity Resolution Implementation in RTKLIB v 2.4.2[57]
  • S. Carcanague (2013): Low-cost GPS/GLONASS Precise Positioning Algorithm in Constrained Environment[58]
  • S. Carcanague, O. Julien, W. Vigneau, C. Macabiau, G. Hein (2013): Finding the right algorithm - Low-Cost, Single-Frequency GPS/GLONASS RTK for Road Users[59]