How RTK GPS Works | The Guide To Sub Inch Accuracy
For any robots here at the drone dojo, we are using GPS to help aid in the autonomous missions. For the most part, these $30 GPS modules get the job done, but there are some applications where the positioning isn’t precise enough. So what is RTK GPS? It is leveling up the precision of our robot’s positioning.
A conventional GPS may get plus or minus 5-9m of accuracy, or ~15-27ft. If you’re flying a drone out in an open field to collect survey data, this may be fine. But what if you’re landing a drone in someone’s backyard to deliver a taco?
Or perhaps you have a precision ag requirement on an autonomous ardurover. The accuracy of the conventional GPS just won’t get the job done.
RTK GPS is capable of MUCH more precise positioning. If you do it right, we’re talking below an inch of accuracy. So what is RTK GPS and how is it different than conventional GPS?
To understand RTK GPS, we must first understand conventional GPS.
How Normal GPS Works
We have a GPS receiver on our robot, where all the signals from all available satellites is accepted. The signal inputs are fused into a final calculation of where the GPS receiver is.
The red circle in the above picture represents where the GPS receiver may report the location of the rover. You’ll notice that this can greatly diverge from the actual position of the robot, but there is just no way to fix this error with the conventional GPS setup.
How RTK GPS Works
In normal GPS setups, there is only one GPS module.
In RTK GPS setups, there are two GPS modules. One is called BASE, and the other is called ROVER. The former is secured at a fixed location, and the latter is free to move around on a robot.
Let’s start with the base station.
The first step is to select a fixed location for the base module, then survey in a very precise reading of where the GPS is actually located. There are many tools to perform the task of surveying in the actual GPS coordinate of the base station, one is called MissionPlanner.
Once we know the location of the base module, we can start getting readings from the satellites.
You’ll notice the reported location of the GPS receiver is quite different than the actual location. This is a familiar problem we see with conventional GPS.
However, now that we know the actual position of the receiver, as well as the reported position, we can actually account for this error and make adjustments based off of it.
Now let’s add the RTK rover to the picture. Once again, the yellow dot is the reported location of the rover. Typically, we wouldn’t be able to adjust for this. But now that we have our base station, we can.
The base RTK station transmits the known error to the RTK rover module, and the error is accounted for. This provides a MUCH more accurate reading of where the robot actually is.
Now we can get that sub inch level accuracy that is a requirement for many types of autonomous robotic applications.
Different Types of GPS Signal
The image above is a good estimate of what various GPS statuses mean in terms of accuracy.
This is the weakest GPS signal, and most conventional modules will start at this level. Here, the accuracy will waver between 5 to 8 meters.
This signal is slightly stronger than 3D Fix, and you’re getting pretty good reception here. The accuracy will be about 3-5 meters. This GPS status is achievable without an RTK GPS setup.
Now we are getting into GPS states that are only achievable with RTK. Here, RTK Float is a signal that can achieve 1 to 2 meter accuracy. It is the weaker of the two RTK signals.
RTK Fixed is the desired GPS state if you have an RTK GPS setup. Here, accuracy is normally in the .1 to .5 meter range, though really good signal with high satellite counts can get that down to the centimeter level of accuracy.
UBlox MN8 Vs UBlox F9P
Care should be given to the type of UBlox GPS chip that is in your GPS setup. If RTK is the goal, then M8N based boards should be avoided like the plague. While they may be technically capable of RTK Fixed, they tend to receive the RTK float signal.
Many RTK products advertise as RTK GPS modules, but incorporate the M8N chip into the design. So it may be cheaper, but your trading a few meters of accuracy for those few saved dollards.
An example is the Here3 GPS receiver, which uses the M8N UBlox chip, even though it advertises as an RTK solution. It is a good GPS receiver and is a fine solution for conventioanl GPS setups, but better RTK results are achievable with other products.
Our favorite at the Dojo is the ArduSimple simpleRTK2B carrier board for the F9P UBlox chip, with the ANN-MB dual band antenna. It is easy to use, and plays well with the ArduPilot world. Additionally, it is only marginally more expensive than the Here3 module mentioned earlier.
RTK in ArduPilot
With the right hardware, RTK is an easy feat to achieve in the ArduPilot world. That means we can use the same RTK hardware set up for any type of vehicle supported in ArduPilot. For example, copters, rovers, boats, planes etc.
If you want to learn how to build your own drone or rover so you can have your own RTK robot with sub inch level accuracy, read this guide for drones and this guide for rovers.