Wednesday 10 January 2018

Low cost GNSS RTK systems

By Giovanni Carrera, 12/01/2018

Introduction

Usually satellite navigation receivers are called GPS, but those that receive also other constellations of satellites, like the Russian GLONASS, the Chinese BeiDou, the European GALILEO are called GNSS (Global Navigation Satellite System).
The RTK (Real Time Kinematic) technique is used to obtain instantaneous and very precise position measurements with GNSS satellite systems. It uses measurements on the phase of the carriers transmitted by the satellites and only particular satellite receivers are able to perform carrier phase tracking. The accuracy of these receivers is centimeter and even millimeter, depending on the quality of the receiver and its antenna. These receivers, essentially created for topographic use, are able to receive two or three carriers and cost several thousand euros, but some companies, such as the Swiss U-Blox, since some years have been producing low-cost receivers capable of performing phase measurements. The problem was given by the processing software, still very expensive. The Japanese engineer Tomoji Takasu gave a big contribution making its RTKlib programs open source. In the meantime, electronic technologies have produced increasingly powerful microcontrollers, allowing RTK processing to be performed directly in the receiver itself, reaching an accuracy of a few centimeters without the use of a PC.
In addition to traditional applications such as GIS (Geographic Information System), these RTK receivers are particularly suitable for controlling UGV (Unmanned Ground Vehicle) or UAV (Unmanned Aerial Vehicle) aircraft such as agricultural tractors and drones.
And it is precisely to these systems that this treatment is addressed, given the vastness and complexity of the topics, I will not argue in detail on the operating principle of GNSS systems of which I propose a bibliography.

Satellite systems

The first prototype of GPS satellite was put into orbit in February 1978 and since 1995 the system has reached full operational capability (FOC) for civil and military applications.
Other systems have been added to US GPS, such as the Russian GLONASS, the Chinese BeiDou and the European GALILEO. Satellite systems have also been developed to increase the accuracy of a stand-alone receiver. These systems use geostationary satellites and a network of ground stations to perform long-term differential corrections. The results are lower than the DGPS because the system operates on a larger area, but the user has the enormous advantage of improving the accuracy and reliability of the measurements without using sophisticated and expensive equipment.
Modern satellite receivers are able to receive satellites of different constellations and also receive SBAS satellites such as the American WAAS (Wide Area Augmentation System) and the European EGNOS (European Geostationary Navigation Overlay Service). The frequency of the carriers of the various systems are different and the antenna must also be suitable for receiving the various frequencies. The antenna, for precision measurements, must be of good quality and greatly affect the measurements. To avoid it being disturbed by multi beam reflections, it is good to fix it on a metal plate at least 10 cm in diameter and grounded.

 The differential receiver in code and phase

For special applications, differential GNSS (DGNSS) is used. It uses two receivers: a receiver in a fixed station or base and one in a mobile or rover station. The rover receiver will be different from a normal receiver as it will have to perform data correction based on the information coming from the base station.
The base station transmits differential corrections in raw or RTCM format to the rover. These stations must be close enough (<10 km) to get the best accuracy, for longer distances the accuracy decreases because the receivers see a different geometry of the satellites.
The base station transmits raw / RTCM data via radio link made with WiFi, Bluetooth or a radio modem, depending on the distances to be covered. If the area is covered by cellular networks, data can be transmitted via GSM or GPRS or via the internet.


The common satellite receivers measure the satellite-antenna distance by working on the code (code range). The bits of the PRN code (Pseudo-Random Noise) are generated with a frequency of 1.023 MHz, which corresponds to a wavelength l = 293.1 m, which is the spatial length of each bit. The correlation measurement of the codes generated by the satellite and the receiver takes place within 1% of l, which leads to an accuracy of about 3-5 m, considering also the other errors of the system. A DGPS system with coded receivers has better accuracy but that hardly drops below one meter. The PRN code repeats periodically every millisecond, so the distance measurement will have an ambiguity equal to that period, i.e. about 300 km. Since this ambiguity is very large, it is easy to eliminate it because one can presume to know the distance with an approximation of at least 100 km.

For very precise positioning, receivers that work also on the carrier phase tracking are needed. Phase measurements are much more accurate because they use the carrier waves and its fractions, the wavelengths are about 19 cm for the L1 and 24 cm for the L2. Taking into account that it is possible to measure displacements of the order of the degree, the accuracy becomes of the order of the millimeter, not taking into account other disturbances.
In this case, the distance measurement is calculated by determining the number of carrier cycles between the satellite and the receiver antenna, then multiplying this number by the wavelength.
Calculating the number of whole cycles is a complicated process called "ambiguity resolution". It requires at least 6-7 satellites with good geometry and the solution of ambiguity requires a few tens of seconds.
The rover determines its position using algorithms that incorporate the resolution of the ambiguity and the differential correction. The accuracy of the position of the rover depends, among other things, on its distance from the base station, called the "baseline", the accuracy of the differential corrections and the quality of the satellite observations of the base station. In order to have a good absolute precision, necessary for topographic uses, it is necessary to know the position of the base station, otherwise one works with relative positioning.

 
RTK measurements and post-processing

If we are interested in precise position measurements in real time, we need a RTK system. The rover receiver must be equipped with an additional powerful processor to be able to calculate the phase ambiguity solution. In addition, the rover must receive the correction data in real time. These systems are more complex and require a radio system with sufficient capability to cover the area in which it is to operate. RTK receivers have a higher cost than phase-controlled receivers precisely because more computing power is required. With the latter it is not necessary to have a PC except to view the results of RTK solutions or save the measurements. But if we use an external computer, we can use cheaper receivers.
If we do not want to know the correct position in real time, we can work in post-processing. In this case the system does not require the transmission of correction data. The base station and the rover must be equipped with a small computer with a data-logger function and a monitoring system. Alternatively, a small serial data logger can be used. In a second time the two files are processed, acquired by the stations in the same period of time, and the precise positions of the rover can be calculated. Post-processing usually leads to more accurate measurements as more computing power is available.

Differences between raw and RTCM data

As mentioned, the rover to process the correct position in real time must receive the measurements in phase for correction from the base station. Usually there are two types of messages, both in binary:
·        data in raw format;
·        data in RTCM format.
The first is proprietary, i.e. it is developed by the receiver module manufacturer. This means that modules of the same family must be used for the two stations. The raw format is the most complete and therefore leads to greater accuracy. As a disadvantage it has a larger amount of data to transmit and could cause problems on the communication system due to the higher bandwidth required.
The RTCM (Radio Technical Commission for Maritime Services) format is of the standard type, the latest versions are 3.x and have better data compression and message integrity than versions 2. You can also use different receivers or even data coming from a regional network station, the important thing is to check if the versions are the same. As a disadvantage it has a lower accuracy.
There is also a third format, the RINEX (Receiver Independent Exchange Format). It too is standard, the latest versions are 3.x. It is in ascii format, therefore not very compact. Only the most expensive receivers also have this output format. It is widely used by post-processing programs such as RTKPost by RTKLib. In this case, you need to acquire raw data on files and then convert them to RINEX with RTKconv. The base-rover transmission system is no longer necessary, but the stations must be equipped with data-loggers. Of course with this system, which is what I've been using up to now, we do not have the data in real time but we can reach a higher accuracy than RTK receivers.

 
Use of fixed station networks

In some regions there are highly accurate GNSS networks, which make measurements available in real time. One of these systems is NTRIP (Networked Transport of RTCM via Internet Protocol), this protocol is implemented in RTKlib. For Europe, see http://www.euref-ip.net. In Italy there are a number of stations but not all of them use this protocol.
In this case, just the rover receiver is connected to a smartphone or tablet with a sim card and the RTKlib app. The accuracy is much lower than the two stations and depends on the distance of the reference station used for the correction. This system works only if the mobile has field and if there are NTRIP stations nearby.

 GNSS receivers for RTK systems

Today there are several receivers on the market at relatively low costs. The cheaper ones make only phase measurements and transmit them to a PC or tablet with the RTKlib program of the Japanese Tomoji Takasu installed, open source, which has become widespread because it is free and also very valid. One of these programs, RTKpost, can process data in raw or Rinex format in post-processing. One thing to ascertain, before purchasing the GNSS receiver in phase, is to verify that it is in the list of receivers compatible with RTKlib.


Here are some GNSS phase, low-cost and RTKlib compatible receivers:
Just a few Ublox modules are capable to operate on the phase, the latest models are the NEO M8T and NEO M8P, the first provides only raw data while the second is of the RTK type and costs about three times. These modules are also used by many companies to realize RTK systems.

Particularly interesting is the NavSpark NS-RAW card, which contains a SkyTraq Venus822A chip with raw outputs and also a LEON3 Sparc-V8 32-bit microcontroller with an IEEE-754 64bit Floating Point Unit clocked at 100MHz. The software is developed through the IDE of Arduino with the addition of the "Arduino NavSpark Boards by SkyTraq" program inserted through the "Card Manager". This powerful processor has a Flash Memory of 1024KB and 212KB of RAM. The power supply is via the USB port with a low-dropout regulator (LDO) that supplies the 3.3V to the card. The satellite antenna connects with a U.FL connector.

Here are some low-cost boards of GNSS RTK receivers:

These are just examples that I have selected, especially considering the price. There are also other receivers, such as the Piksi RTK system, created by the American Swift Navigation, which has significantly higher costs, now has a new dual-frequency Multi GNSSe version, which costs around $ 600 per receiver.

M8P receivers do not need computers because they are able to process RTK. The M8P-2 model can operate as a base and as a rover, the M8P-0 only as a rover.
The Swiss company Ublox also sells the C94-M8P evaluation kit which, at a cost of about $ 650, includes the two boards, based on the M8P module, complete with GNSS antennas and 433 MHz radio modem.

Also very interesting is the REACH RTK kit which, at a price of € 614, offers a pair of RTK receivers complete with antennas. They communicate with each other via WiFi, so for short distances they do not require the use of radio modems. The accuracy in static measurements, declared by Emlid, is remarkable: 5mm + 1ppm horizontally and twice vertically, and little more in kinematic measurements.

The RTK system tested

The NavSpark card I chose fits the SkyTraq S2525F8-GL-RTK module, which is an RTK receiver based on the Venus8 chip set, with a high quality price ratio that provides a centimeter position. The cheaper version provides an RTK measurement per second. For convenience, I used for the prototype the evaluation board NavSpark S2525F8-GL-RTK EVB that mounts two TTL / USB adapters, based on the CP2102 chip, for connection to the PC during setup and configuration. Of course you need to load the Windows driver. This chip it's also compatible with some android apps.
As default, the NMEA output of the rover has a baud rate of 115200 b / s, while the base broadcasts in SkyTraq Raw Data format with a baud rate of 57600 b / s.
The following figure shows the board, which is about 90x90 mm in size and the antenna used in my tests.
I used a low-cost multi-band GPS / GALILEO, BEIDOU, GLONASS antenna. It is an active antenna with a gain of 25-27 dB powered by 3.3 V, 10 mA (supplied by the receiver).
Its dimensions are 49x46x16 mm, the connector is SMA and the coaxial cable RG174 is 3 m long.
To avoid it being disturbed by multi beam reflections, it is good to fix it on a metal plate at least 10 cm in diameter and grounded. The components of each receiver are as follows:
description
manufacturer
Evaluation board for S2525F8-GL-RTK
NavSpark
TRI-BAND ACTIVE ANTENNA (SMA)
NavSpark


Radio-modems and limits imposed by current regulations

Many nations have very restrictive rules on radio communication systems that limit the frequency bands and transmitter power.
With these limits it is possible to transmit a low bandwidth signal, limited to a few kHz and with sight ranges of a few kilometers. The rules on the 2.4 GHz band are less restrictive, where it is possible to use up to 100 mW without any authorization for LAN networks on a private area.
That's why I chose a 2.4 GHz XBee Pro S1 system from Digi International, configured as follows:
description
manufacturer
code
RF TXRX MODULE 802.15.4 RP-SMA
Digi International
XBP24-ASI-001
ANTENNA 2.4GHZ DIPOLE 1/4WAVE
Digi International
A24-HASM-450
BOARD XBEE EXPLORER REGULATED
SparkFun Electronics
WRL-11373
The first item is a serial data transceiver up to 250 kpbs and with 18 dBm (63 mW) of maximum output power and a receiver sensitivity of -100 dBm. It is powered at 3.3 V and has an inverted SMA antenna connector (RP-SMA). To complete each device you need an omnidirectional stylus antenna with RP-SMA female and 90 ° foldable adapter and an adapter with a 5V to 3.3V LDO power supply. The following figures show the look of the various elements of each of the two devices that make up the radio link.

For the Xbee module of the base station I have set the power High (3), that is an output power at level 3, equal to 16 dBm (40 mW) and not Highest (4). With this power you can reach a range of about 400 meters without obstacles.
Soon I will write a post where I will describe in detail the settings of these modules.

The configuration programs of the RTK receivers

These programs must be downloaded:
GNSS_Viewer.zip from http://navspark.mybigcommerce.com
This program is used to configure the receivers and to display RTK measurements from the rover.
There is another GNSS_Viewer-NmeaPlayer.zip program that does not configure the receiver but displays RTK measurements and also those previously saved in NMEA format.
The pdf manuals of these programs are also available. An essential document for configuring the circuit boards is: Getting_Started_with_S2525F8-BD-RTK-EVB.pdf.
The NMEA format is standard, but latitude and longitude have  7 decimal digits compared to 4 of a normal receiver that could not give the sub-centimeter resolution that would have measurements on the carrier phase.

Static and dynamic tests with a very short base line

In the preliminary tests, I used a very short base line: I connected the port 1 (Tx1 on J8) of the base with the port 2 (Rx2 on J3) of the rover and also the grounds of the two boards, as shown in the following figure.
The two receivers were powered by two USB cables connected to a single PC.
The system quickly went into RTK solution. The fixed point recording gave very good results, probably due to the good geometry and a certain number of satellites. The RTK solution reached on the whole test is of the FIX type (Q = 4), therefore very good, as shown in the following figure.
The results are also confirmed by the CEP95 (circle radius containing 95% of the measurements) which is only 12 mm. The cloud of points is more crushed on the x because my house prevented to see some satellites (low) to the north.
For the NMEA parse and for the data elaborations I wrote several programs in Matlab. To convert the latitude and longitude into UTM coordinates I used the wgs2utm.m function of Alexandre Schimel.
For a first kinematic test I made a rail with an aluminum profile on which ran the rover antenna fixed to a wooden sled, forced to follow the rail by two side skids. The sled was dragged with a rope, trying to make the speed quite regular.
The following figure shows the straight path from south to north. The line was drawn between the two average points calculated with the fixed point measurements. The most southerly point was not reached during the test for mechanical cause.
The points are not equidistant because the rope was pulled manually. The results of the tests are very good, even taking into account that the site was not optimal as satellite visibility.
Obviously I also did measurements on longer distances, which will be described in my other posts.

Bibliography and reference sites


1) “An introduction to GNSS”, https://www.novatel.com/an-introduction-to-gnss/

2) “Trimble GPS Tutorial”, www.trimble.com/gps_tutorial

3) “Global Positioning System Overview", Peter H. Dana, www.colorado.edu/geography/gcraft/notes/gps.

4) “The Global Positioning System”, www.gps.gov/systems/gps/

5) “NEO-M8P u-blox M8 High Precision GNSS Modules Data Sheet”, UBX-15016656, R06, 16-May-2017.

6) “C94-M8P u-blox RTK Application Board Package User Guide”, UBX-15031066, R07, 07-Jul-2017.

7) “Presentazione del Servizio GNSS e principi di funzionamento”, Domenico Sguerso, DICAT, Università degli Studi di Genova.

8) “Getting Started with S2525F8‐BD‐RTK EVB or S2525F8‐GL‐RTK EVB”, NavSpark

9) “HM-TRLR-S Series 100mW LoRa Transceiver”, HOPE MICROELECTRONICS CO.

10) “Limitations of the RTCM raw measurement format”, Rtklibexplorer , posted on January 30, 2017.

11) “RINEX, The Receiver Independent Exchange Format, Version 3.00”, Werner Gurtner Astronomical Institute University of Bern, Lou Estey UNAVCO Boulder, Co.November 28, 2007.

12) “ELENCO DELLE INTERFACCE PER GLI APPARATI RADIOELETTRICI dal n. 1 al n. 66”, http://www.gazzettaufficiale.it.

13) “Fixed point measurements for post-processing programs testing “, Prof. Giovanni Carrera, 20/02/2013

14) http://www.rtklib.com

15) http://docs.emlid.com

16) https://www.egnos-portal.eu

17) https://emlid.com/shop/reach-rtk-kit/