RTKLib - GPS / GLONASS centimeter accuracy in post-processing
Hello!
Unfortunately, I did not find references to Habré's wonderful library for handling raw measurements - RTKLib . In this regard, I ventured to write a little about how to use it to get centimeters in relative navigation. The goal is simple - to draw public attention. ')
I myself just recently started working with this library and was amazed at its possibilities for mere mortals. There is a lot of information on practical examples on the Internet, but I wanted to try it myself - and this is the result. So, the process in general form is as follows:
Suppose we have two GLONASS / GPS receivers from which we can get raw measurements. They are called raw because they are the primary material for processing - pseudo-range, Doppler, phase measurements ... Using the STRSVR utility from the RTKLib library, we need to record two data streams - one from the base station, which will stand still, and the second - from the rover, which we plan to move. It is advisable to start recording from the base in advance, 10-15 minutes before recording the rover.
In my case, the base was on the roof of the building, and with the rover went outside. I used two laptops for recording.
1) We configure Input - Serial to both laptops, it is a stream from the GNSS receiver.
2) Output - File, this will be our raw measurement file.
3) Start up the database on the record - Start and slowly go to the open area.
For a small demonstration, I printed out an A4 sheet with the letter H, which I wanted to circle around the antenna, more precisely with a base for mounting on a tripod. Antenna TW3440 produced by the Canadian company Tallysman with a custom underlying surface of 30x30 cm.
4) We settle down on the pavement, put the rover on the record and try to circle the letter slowly. Although on the rover is the frequency of issuance of 5Hz, it is better to do everything carefully.
5) At the end of the stroke, turn off and go see what happens.
6) We dump both files on one computer and proceed to processing.
7) First, you need to get standard RINEX files from raw data. This will help us RTKCONV:
8) Specify the path to the file with raw data, as well as the folder where the program will put RINEX, the raw data format, in my case it’s NVS BINR and in the settings we put the GPS and GLO checkboxes, the rest can be left alone.
9) Click Convert and get the files for the rover and then for the base, it is better to place them in the appropriate Base and Rover folders.
10) Further, the most interesting - post-processing. Open the RTKPOST utility.
11) Click Options, Settings tab 1, in the mode setting we specify Kinematic to handle relative measurements. We put a tick GPS and GLO, you can then play around with the settings.
12) Output tab - you can set the output format, for example NMEA.
13) An important point is the Positions tab, here you need to specify the coordinates of the base station, either take them from the header, or by averaging over the recording period. The more accurately we know the coordinates of the base, the more accurately the absolute coordinates of the rover will be. For example, we specify the RINEX Header Position - take from the file header.
14) Click OK and go to the main window, there in the Rover field specify the path to the RINEX file of the rover, well, for the base, the path to the corresponding file. Click Execute and wait for the result. After processing, we can see the result by clicking on the Plot.
15) At the bottom of the figure you can see that solutions with centimeter accuracy were obtained 97.3%, the rest is a floating solution, the accuracy of which is much worse.
That's all for now.
If anyone is interested, I can write how to implement the RTK mode.
It would also be nice to know your opinion: in which not obvious applications can solutions be used with centimeter navigation?