What is GNSS?

GPS, or GNSS (global navigation satellite system) to give it it’s generic name, is a now ubiquitous system for finding your location using information from a constellation of satellites. The systems in orbit are:

  • GPS: United States of America
  • Gallileo: European Union
  • GLONASS: Russian
  • BeiDou: China

They each have a similar level of accuracy with publicly broadcast data of 0.3m – 5m, this accuracy varies based on the type of antenna you are using as well as your environment. For example, in a canyon or built up area with lots of tall buildings, you typically get a lower accuracy. Atmospheric issues can also degrade your received position further.

Can We Do Better?

There are ways to gain a more accurate positions however, these techniques are referred to as GNSS enhancement, and at the Robotics Hacky Racers event we will be using real-time kinematics. We will set up a GNSS base station that will broadcast correction data for those at the event, and anyone else nearby too, using rtk2go.com and an NTRIP caster running on a WiFi network at the event.

Please Note: You will need a compatible GNSS receiver to use this data. We have only tested using the u-Blox based SparkFun receivers, others are available however. Some receivers that don’t support RTK are still able to use correction data for a DGPS lock of around 50cm, if you want the full benefit ensure compatibility before the event.

The website rtk2go.com is a great resource for publicly available NTRIP casters, if you’re lucky you may have one nearby. They have an effective range of around 10km however so luck is definitely an aspect. A list of all the available stations can be found here: http://monitor.use-snip.com/?hostUrl=rtk2go.com&port=2101

Otherwise, if they’re in the UK they can use the “NEAR England” mount point which will try and use the nearest station:

On the day, we’ll be streaming to rtk2go for access via the internet, or via the same protocol on a local caster hosted on a Raspberry Pi. The connection details for which will be shared at the event. This will ensure that even if there are issues with the internet connection to rtk2go.com, we will still be able to share correction data.

There are a lot of variables involved, however in testing when near to the base station we have been able to see an accuracy of ~10mm when using an RTK Fixed solution. If the correction data isn’t applied to the rover fast enough, we can see this drop to a RTK Float solution, this still provides accuracy within a few cm however.

If you have any further questions, please get in touch via the contact page, or over on our Facebook group.

ESP32 Example

An example of getting data from rtk2go (which we can publish to on the day) on an ESP/Arduino with wifi can be found here: https://github.com/sparkfun/SparkFun_u-blox_GNSS_Arduino_Library/blob/main/examples/ZED-F9P/Example15_NTRIPClient/Example15_NTRIPClient.ino

Another option is to use an NTRIP client running on a Raspberry Pi or similar, if your GNSS receiver has the ability however I’d recommend going the ESP32 route.