Autonomous navigation and mapping in robotics making a push in using GPS technology, which is very popular in military and mobile device applications. Based on systems available on the market, there is a ton of GPS modules that can be hard to figure out what you need for your project, and this article is written to get you on the right track in choosing the best GPS module.
In general terms, you can embed a GPS module in a robotic platform when you need the ability to determine its position, or the ability to create a map in a determined space.
Based on these two ways of using GPS module, I find the most used GPS receivers for robotic applications combined with tutorials for practical applications.
What is a GPS?
The GPS (Global Positioning System) has the role to provide exact coordinates of the current location. Widely used in devices such as smartphones, tablets, or GPS navigation devices, the GPS system can be accessible almost everywhere on Earth, and usually it is used in robotic applications for localization and mapping.
A robot can be localized easily using a GPS system that returns the coordinates and a map, or in other way for example, to build a map of a room or at your house.
With a long list of GPS modules available on the market these days, it could be a nightmare to choose one that fit on your project. Based on specifications like accuracy, update rate, or number of channels, you can take the best decision on what system is best for you.
A robot can receive GPS signals via a serial port wired to a GPS system, via Bluetooth from a GPS system, or from a mobile device like a smartphone with a GPS system incorporated.
How Does GPS Work?
Back in time, the first GPS system was used by the U.S. Department of Defense for military navigation, and since then the system has become so popular that it is used in almost all mobile devices and in any autonomous mobile robot with navigation system.
These systems are designed to stay connected anywhere on the planet to at least four GPS satellites. Each of the satellites sends to the GPS system information about its position and the current time at regular intervals. After signals are received by the GPS receiver, the device calculates the distance to each satellite in part based on the time spend for a message to arrive and taking in consideration that the signal travel at the speed of light.
Applying the process called trilateration, the GPS system can pinpoint the location on a map.
Trilateration
Depending on the size, power, update rate, or accuracy, you have to choose the best GPS system for your robot. To make the work easier, in the following I focused and explain some of the most important features of a GPS system.
Accuracy
The accuracy of a GPS system is influenced by factors such as weather, satellite geometry, clock inaccuracies, clarity of reception, the multipath effect caused in general by the reflection of satellite signals on objects, the time of day, and the type of equipment you are using. The accuracy of a GPS system can vary between +/- few centimeters to +/- few meters. The GPS receivers with an accuracy measured in centimeters are really expensive and very rare.
The accuracy can be increased and errors minimize by using Differential Global Positioning System (DGPS) engineered to provide more accurate data for location, or by using the information from more satellites.
Update Rate
In general, the update rate of a basic GPS module is 1Hz, which means that the device recalculates and reports its position every second. Depending how fast the robot is moving, the ‘Update Rate’ of a GPS receiver can become more and more important. For example, a drone is much faster than a robot used in agriculture. The conclusion is simple, fast robots may require faster update rates to keep the path.
Power Requirements
An increased update rate involves a higher power consumption. Adding an extra antenna, the power consumption is greater, which requires attention to the choice of energy source for a robot.
Number of Channels
This feature refers to the number of GPS satellites in view at any given time, and depending on the number of channels active at a given time, your GPS receiver can save power and keep the signal on. After the signal is received, the GPS receiver will close the connection to extra blocks of channels to save power. Any module with more than 12 channels is good for tracking.
Dimension
For pocket-size robots are very important to embed small modules. Considering the GPS received available on the market at this time, the size could not be a big problem even for small devices.
GPS Sensors and Tutorials
Navigatron V2 – I2C
Navigatron V2 – I2C
Navigatron V2 is an open-source GPS module Arduino compatible that allow users to access GPS data using the I2C protocol. It is very simple to use, and in some conditions has the accuracy less than 3 meters.
Features:
- Update rate: 10 Hz;
- Supply voltage:3.3V-5V;
- Low power consumption: 48mA @ acquisition, 37mA @ tracking;
- Dimension:33mm x 23mm x 8mm;
- Position accuracy: < 3m;
- Number of channels: 66;
Tutorial:
- Making an autonomous boat using a Raspberry Pi – from this tutorial you can learn how to build an autonomous robot using the credit size single board computer called Raspberry Pi and the Navigatron V2 – I2C GPS receiver. The goal of this project is to build an autonomous boat capable of crossing the Atlantic;
LS20031
LS20031
The LS20031 GPS receiver is a low-cost complete solution for your robotic applications, a device that include the receiver and an embedded antenna.
It has up to 66 channels and updates the navigation data every second. It performances including the sensitivity are compatible with requirements of advanced applications like car navigation.
Features:
- Update rate: 10 Hz;
- Supply voltage:3.3V- 4.2 V;
- Low power consumption: 41mA;
- Number of channels: 66;
Tutorials:
- LS20031 GPS Assembly Guide – a guide to learn how to interface the sensor with an Arduino board and start making a test by detecting the position;
- Getting Started With The LS20031 GPS Receiver – another tutorial that uses at maximum the features of the LS20031. This tutorial teach you how to interface the sensor with a microcontroller board, how to use basic libraries and how to display the data received by the GPS module;
- Geo Data Logger: Arduino+GPS+SD+Accelerometer to log, time-stamp, and geo-tag sensor data – comprehensive tutorial from where you can learn how to interface the Arduino and the LS20031 GPS sensor. The final project is a robot that measure the road conditions;
- Connect your LS20031 GPS receiver to Google Earth via PC – Google Earth is a powerful virtual globe and map that can be used in robotic applications. In this tutorial you can find all the steps to connect the LS20031 sensor to a PC and interface it to the Google Earth;
EM-406a SiRFIII GPS
EM-406a SiRFIII GPS
Based on SiRF StarIII chipset, the EM-406a is a small GPS receiver with a built-in voltage regulation, antenna, and up to 20 channels available to receive the satellites signal.
Features:
- Supply voltage: 4.5-6.5V;
- Low power consumption: 44mA;
- Dimension: 30mm x 30mm x 10.5mm;
- Position accuracy: ~10m (and 5m with WAAS);
- Number of channels: 20;
Tutorials:
- Basic Positioning -simple tutorial how to interface the sensor and display the GPS data received;
- Interface to a GPS Module or Receiver – from this tutorial you can learn how to give to a robot the ability to determine its position. This process include the wiring and programming the GPS receiver;
- GlobalSat EM 406 GPS Module – simple example how to interface and programming the EM-406 GPS module in order to display the longitude and latitude received from the satellites;
Adafruit MTK3339
Adafruit MTK3339
MTK3339 is a low power consumption and high-sensitivity GPS receiver with up to 66 channels and ability to track up to 22 satellites.
Even it can do up to 10 position updates every second, it has an incredible low power consumption of only 20 mA, which is far away one of the lowest value for a GPS receiver.
It can be powered with 3.3-5VDC power source and has a 5V level for safe inputs.
Features:
- Update rate: 1 to 10 Hz;
- Supply voltage:3.0V-5V;
- Low power consumption: 25mA @ tracking, 20 mA @ navigation;
- Dimension: 15mm x 15mm x 4mm;
- Position accuracy: 1.8 m;
- Number of channels: 66;
Tutorials:
- Adafruit Ultimate GPS – from this tutorial you can learn how the module works, how to interface and how to programming the sensor;
- Adafruit Ultimate GPS on the Raspberry Pi – another tutorial from Adafruit from where you can learn how to interface the MTK3339 receiver with Raspberry Pi and display the data received by the GPS module;
Parallax PMB-688
Parallax PMB-688
The PMB-688 GPS receiver is based on SiRFstarIII chipset and it is a good choice for robotics navigation.
Features:
- Update rate:10 Hz;
- Supply voltage: 3.3V – 5V;
- Low power consumption: 65mA;
- Dimension: 39mm x 33mm x 9mm;
- Position accuracy: ~5m;
- Number of channels: 20;
Tutorial:
- Connecting a Parallax GPS module to the Arduino – tutorial how to connect the PMB-688 receiver to an Arduino board and display data received;
Venus GPS with SMA Connector
Venus GPS with SMA Connector
This is a tiny and powerful GPS receiver based on the Venus638FLPx GPS Receiver. It has an update rate of 20Hz and an accuracy of 2.5 meters.
Features:
- Update rate:20 Hz;
- Supply voltage: 2.7-3.3V;
- Dimension: 10mm x 10mm x 1.3mm;
- Position accuracy: 2.5 m;
Tutorials:
- Sparkfun Venus GPS and Arduino – in this tutorial you can find the programming lines to display with Arduino the data received by the GPS module;
- Sparkfun Venus GPS with SMA Connector Module – another Arduino program to display GPS data;
Phidgets USB GPS
Phidgets USB GPS
With a position accuracy of 2.5 meters, the Phidget GPS is designed to provide a wide range of information including the longitude and latitude of the robot, as well as altitude, heading, velocity, time and date.
Features:
- Update rate: 10 Hz;
- Supply voltage:4.4V-5.3V;
- Low power consumption: 50mA;
- Position accuracy: 2.5m;
Tutorial:
- 1040_0 – PhidgetGPS – in this article you can find a lot of script in different programming languages to display the information received;
GS407 Helical GPS
GS407 Helical GPS
The GS407 sensor is known as a fast tracking satellite GPS receiver with up to 50 channels and an update rate of 4Hz.
Features:
- Update rate: 4 Hz;
- Supply voltage: 3.3V;
- Low power consumption: 75mA;
Tutorial:
- Tutorial: Programming your uBlox GPS module – in this tutorial you can learn how to interface and programming the uBlox GPS module in case that you use this sensor in a drone;
.NET Gadgeteer
.NET Gadgeteer
.NET Gadgeteer is a complete GPS kit based on U-Blox Neo-6M GPS module and includes an antenna connected via a U.FI connector.
Features:
- Update rate: max 5Hz;
Tutorials:
- GPS Module – simple program to display the coordinates from the sensor;
- Getting Started with the .NET Gadgeteer – Part 1: Background, Setup, and Hello World – a lot of tips&trick and information to get started with the .NET Gadgeteer GPS module;
- .Net Gadgeteer: GPS Module – C# code to display the values received from the sensor;
- GPS Module for .NET Gadgeteer by Seeed Studio – another C# code to coordinate the GPS module with Bing Maps;
SKM53
SKM53
With 66 channels and up to 22 tracking satellites in the same time, the SKM53 GPS Module Starter Kit is a special piece for your robot designed to be safer.
The kit offer high performance even in poor visibility conditions, and this is not a surprise since it is based on the MediaTek 3329 single-chip architecture.
Features:
- Supply voltage: 5V;
- Dimension: 18.2mm x 18.2mm x 4mm;
- Number of channels: 66;
Tutorials:
- Tutorial on Using SKM53 GPS with Arduino – comprehensive guide to display GPS module data interfaced with Arduino board;
- SKM53 GPS Starter Kit, SKGPS-53 – from interfacing to programming, in this tutorial you can find a lot of information about how to display all the information from GPS module can be displayed;
Resources
MTK3339 GPS BoosterPack/Breakout Test Successful
Easy GPS Tester
GPS Visualizer: Do-It-Yourself Mapping
GPS Utility Standard
GPS Coordinate Converter, Maps and Info