Even though GPS makes it possible for us to easily navigate around the planet in almost any vehicle we’d like, whether that’s a passenger vehicle, airplane, or cargo ship, it’s not really suitable for applications that require sub-meter accuracy. For that, some specialized hardware is needed, and [GreatScott!] shows us how to do it using a small robot as a platform.
The key to extremely accurate GPS signals in this case is using a receiver that supports real-time kinematic positioning (RTK). This type of system relies on a base station with a known position communicating with local mobile receivers to increase the precision of those mobile receivers by comparing the phase angle of the received signals. Of course these modules are much more expensive than the average standard GPS receiver, but for this kind of accuracy there is always a cost.
After getting a baseline accuracy of around two meters with a standard GPS receiver, [GreatScott!] installs the RTK GPS mobile receiver on a tracked robotic platform and a base station on a fence post. With the RTK system running, the limiting factor in accuracy became the robot’s steering system, as its turning radius and steering algorithms weren’t up to the task of hitting centimeter-sized targets out of the box.
But, as a proof-of-concept, it goes to show how accurate GPS can be as long as the right hardware is used, and for practical applications is good enough to mow a lawn with a robot or even do some amateur land surveying.

How about this?
Set up a fixed GPS receiver on the property. Log GPS data over days or weeks, average all the data, and call the resulting, composite, value your “reference” location value. After that, take every GPS live reading and subtract the reference value, to generate a stream of error-correction values.
Next, set up a radio link (Meshtastic?) and transmit the time-stamped error correction stream to the robot. Every time the robot makes a GPS measurement, subtract the received error correction value.
It would be interesting to see to what extent the robot’s positional accuracy improves.
I was thinking I’m same thing, if the distance is short enough. ESP-NOW could work.
The usual method is to have a receiver at a known (surveyed) location. It can then calculate the difference between the pseudo range (time of flight) data from each SV and what is expected. These differential updates are then transmitted to another receiver. Many/most GPS receivers can accept this data.
No RTK required.
Great news, that is already a thing! It’s called Differential GPS, and there are companies and services that provide local correction, but you could absolutely build your own. Unfortunately, accuracy when one receiver is in motion is rarely better than 1-2 meters so not good enough for this type of work.
Part of the problem is it can only correct for signal “errors” and not errors within the receiver itself. My understanding is that RTK receivers are expensive in part because you have two receivers with identical signal paths and both are built to detect phase differences on the order of 10-50 pico seconds to get single-digit cm accuracy. For comparison, my cheap ($100) GPS gear can get below 10 nano seconds but that is still ~3 meters worst case.
IMHO a better answer with lawn bots is a fusion of systems that compliment each other. GPS provides bulk / approximate positioning at large area and something else (UWB, photogrammetry, etc.) provides high accuracy position within a smaller (backyard) area.
Maybe an ultrasonic ranging system measuring the distance to a couple of reference points? Using sound, means that you don’t need picosecond accuracy.
There are also free NTRIP services offered by folks like NASA or State governments that broadcast data for RTK (RTCM) over the Internet that is usable if you are within 25mi of a base station.
This is a good idea and is very similar to Differential GPS. You don’t even need your own fixed receiver, DGPS data is available from a number of commercial and Government organizations. Standard DGPS (Differential GPS) yields 0.3 to 1.0 meter accuracy. RTK typically gives you 1-2 cm accuracy.
As I understand it the big difference between kinematic GPS and various flavors of regular GPS is that kinematic GPS uses the phase of the GPS carrier (L1 carrier wavelength 19cm for example) while regular GPS correlates the pseudorandom chips at a bandwidth of 2 MHz (wavelength 150m).
The challenge of kinematic GPS is that the phase repeats every 19cm so you have to know your position to within 10cm to avoid ambiguity. Once you lock on you can continue to track your position unambiguously hence the name kinematic.
This is why radio isotopic clocks are still used in engineering survey when city planning is involved. The stations are allowed to “settle” for a minimum of 24 hours and are referenced to the existing surveyed grid simultaneously with a resulting accuracy in the 100ths.
This is DGPS, and has existed for decades.
RTK as described in this article is basically DGPS on steroids, and the purpose of that fencepost receiver is to be the very reference/base station you’re describing here.
Thank you for “DGPS on steroids”, I had the impression that RTK was DGPS, but I missed the “steroids” (phase stuff), your comment should be higher here.
The error is always changing based on several factors, including atmospheric conditions. There is no specific “offset” that remains stable.
This is how survey rtk gps systems work. You setup a base station that is always fixed and does not move. It broadcasts is shifting position error on a radio or WiFi or Bluetooth out to another identical gps setup that is an rover and that unit back corrects the error out of its position.
RTK GPS doesn’t just send the total offset, it monitors the time differences for each satellite separately. If you just subtract the offset from the final, calculated location, you get errors if the satellite visibility between receivers differs.
There’s a survey mark around here.
Motorola in the 80s manufactured the “Mini-Ranger” for ship navigation within harbors. It used microwave (C-band) transponder beacons at fixed locations on shore, and a transceiver on the boat. It measured time of flight to the fixed beacons to compute the ship location. Motorola claimed a precision of a few centimeters. In practice, it could do +/-1 meter at 10 km, and had a range out to 30 km. Mindblowing at the time.
Omega was useless on the harbour scale, even LORAN was too imprecise for harbor and channel nav. Visual aids were often blocked by fog and still were quite imprecise. NavStar was still too immature, and GPS wasn’t around yet. For that few-year window in the 80s, the Mini-Ranger enabled precision navigation.
It would be almost trivial to reproduce that now, and down to millimeters. And no satellites required.
Would you have a few minutes to sketch out how you would reproduce that system with what is available tody?
The easy way is just to buy some Qorvo DWave modules, and get 10 cm resolution out of the box. Or use COTS LiDAR modules. Or homebrew your own with a ToF chip like TI’s TDC7201. Or repurpose some 24 GHz automotive radar modules. Or hack some 60 GHz wideband transceivers. Or homebrew X-band FMCW radar. But it might be fun to see what you can do with just C-band WiFi hardware and a bit of FPGA glue. So many options.
Thank you.
The thing he most likely left out is the tilt of vehicle. Since the vehicle isn’t level the whole time, the position shifts slightly. That’s why its not completely accurate at the end.
source: Used to be a software engineer at a company doing this about 15 years ago.
Topcon? I spent 3 years installing rtk positioning and blade control on bull dozers and the number of times the customer setup the base station tilted was frustrating.
Why wasn’t the base station auto levelling? I know some are and a field install is never going to be perfect.
There are already several robotic mowers tha utilize RTK GPS for centimeter level accuracy. Lymow OnePlus, Husqvarna’s IQ series and others. DFRobot sells an RTK master slave kit for $169. https://www.dfrobot.com/product-2970.html GNSS-RTK High Precis..
Product ID: KIT0198-US
Cool! Now add an arm with an extruder at the end and call it a large format 3d printer!
If it knows how it moves with accuracy, it only needs position once, then dead-reconning can figure out location from the movement logs.
That assumes no wheel slip. This is not a trivial ask even in good conditions, let alone grass.
Sensor fusion really helps there. Even a little bit of cue of “I moved” vs “I didn’t move” vs “I moved, but it doesn’t correlate to my expectations” can make any dead-reconing system far slower to drift. And you can often get enough relevant cue from even stupid stuff, like a low-res camera pointed at the ground (giant traced optical mouse!), or sometimes even a couple of those cheap sonar rangefinders pointed in different directions in the horizontal plane.
This is helpful, yes, but in practice it’s not enough by itself. External references of done kind are necessary when of they are all processed on board. Slow moving equipment tends to drift the most in my experience.
Assembling a kit is worth of an article on HAD …
Anyway you can play with this using cheap modules from AliExpress and RTKLIB software. Be warned it’s a deep rabbit hole, in no time you are buying professional GNSS antennas and climbing the roof to get an unobstructed view of the sky.
Or bemoaning the inherent limitations of meatsacks, because you discovered why proper laser 3d environmental mapping is not eye-safe…
If youre already relying on a base station, Skip GPS entirely and go with UWB RTLS. You get ~10cm cm level position accuracy and 50-100X faster updates than GPS with a Quoro (Decawave) DWM1000 .
All those shouting about Differential GPS have missed the point. RTK is an advanced in technology DGPS gives you roughly 1 metre accuracy. RTK 1 centimeter. That’s a 100 tines improvement. 1 metre on a lawnmower is levelling your wife’s flowerbeds or running over a hosepipe. 1 centimeters is the ability for a local robot to negotiate without secondary systems like buried wired, ultrasonics or dead reckoning.
Its the difference between a black powder musket and an automatic rifle.
Terrain mapping. It’s not like it’s changing a great deal.