Let's try to tell a little about how satellite navigation works.

Let's try to tell a little about how satellite navigation works.
To determine coordinates, we use the measurement of the distance to the satellites(1), their coordinates(2) and knowing that these distances converge at one point, we can calculate the position.
   1. How satellite coordinates are determined: a satellite flies in space at an altitude of 20000 kilometers where there is no air and its trajectory can be pre-calculated.
These calculations are done on the ground and every day new information is loaded into the satellite.
This information (ephemeris) contains a formula that can be used to calculate the position of the satellite at any given time. 
But the satellite is actually affected by the gravity of the moon, the sun, the planets, and so on
Therefore, the real position differs by a few meters. These measurements are carried out constantly and the next day on the Internet you can download a refined formula of motion (accurate ephemeris).
  2. Distance is determined by the delay of the radio signal (accuracy meters) and measuring the phase of the carrier (accuracy millimeters).
A large error is introduced by the atmosphere because it affects the speed and path of the radio signal. It's like looking at a coin from a boat, in deep water it looks like the coin is changing position.
This error can be corrected by using satellite signals at different frequencies (multi-frequency receivers).
 But still, the most modern multi-frequency multi-system receivers will have an absolute position error of about 2 meters. 
  But we need centimeters or better millimeters.
These centimeters can be obtained the next day using long (8-24 hours) observations on several frequencies (usually using 30 second GPS observations on L1 and L2 frequencies).
  These measurements are simply a list of the distances to each satellite at each moment. This is called "raw data" or RAW format. 
The manufacturers of the devices make them up themselves, but there are standard protocols into which they are converted - RINEX (you can just open the file with notepad and see what data your device produces) or the standard streaming protocol RTCM3.
 How can we achieve centimeter accuracy in real time (RTK)?
 If we install a second instrument with phase measurements (importantly) of the satellite distances, we will fully compensate for all uncertainties using the triangle method.
 Even using phase measurements at the same frequency, we will reliably (1 cm) determine the coordinates (relative to the stationary receiver).
 The greater the distance between the instruments, the greater the difference in the state of the atmosphere above them.
 This gives an error of 1 mm for every kilometer of distance.
 So how do we transfer this information between the stationary receiver and the mobile receiver?
 If the instruments are from the same manufacturer, it is possible to transmit data in line of sight via a radio modem.
 Usually the devices support the standard protocol RTCM3, then you can connect devices of different manufacturers.
 If the area is covered by mobile internet, you can use it.
The problem is that cell phones and modems have a changing Internet address (dynamic IP address). Therefore, you need an intermediate computer with a permanent Internet address (static IP), or better, your own domain name (e.g. rtknavi.com), which allows you not to change the address even if the region changes.
  This computer hosts a program called NTRIP Caster, which connects bases (fixed receivers) and rovers (mobile receivers).
  The standard protocol for transmitting NMEA coordinates does not contain information about distances to satellites, but contains information about coordinates, speed, quality of coordinate determination and information about signal strength of each satellite.
  When the rover is turned on, the autonomous coordinates are determined and can be transmitted in NMEA format to the NTRIP Caster to analyze and calculate the nearest stationary receiver to transmit data to it.
 Further in the information from the rover can be observed its movement and the quality status of the accuracy of the solution:
autonomous solution - accuracy in meters - usually the path and position on the map are displayed in red color.
  floating solution - there is a process of selection of unknown coefficients to get an accurate solution (indicates that the rover is receiving correction data) - accuracy to meters-though you can see 0.2-0.3 meters on the instrument - usually displayed in yellow color
  fixed solution-accuracy of 1cm plus 1cm per 10 kilometers to a stationary receiver-usually displayed in green.
  With long distance or poor signal (forest, mountains, city, bad antenna) you may never get a fixed solution.
  For RTK implementation, make sure your base and rover can transmit and receive RAW data or support RTCM3 protocol. There should be a good antenna that provides signal levels above 35 dBHz.
Use the RTKLib library to analyze the data and connect to our NTRIP Caster.
In future articles we will look more specifically at instrument setup and connection procedures.