One of the most important skills for autonomous use-cases in outdoor robots is Global Positioning System (GPS) Waypoint Navigation. GPS Waypoint Navigation refers to the ability to give a robot a collection of GPS waypoints (i.e., a set of latitude/longitude coordinates) and have the robot traverse independently from its present location to each of the defined waypoints. Not colliding with obstacles along the way is also desirable.
Important Aspects of GPS Navigation
Localization and navigation are the two most important aspects of GPS waypoint navigation. Localization is the process of estimating a robot's position using the robot's sensors (such as the UGV wheel encoders, IMU data, and GPS readings). The navigation system is in charge of sending wheel velocity commands to the UGV so that it may move to the target location in this case being a GPS coordinate.
MYBOTSHOP GPS Navigation Package
The MYBOTSHOP GPS package utilizes some of a collection of ROS packages as well as several python libraries to enable any robot to move from one target location to another. Although a few packages are available open-source for the GPS navigation, none of them work out of the box and requires extensive tuning of parameters. The tuning of parameters is not limited to the GPS package but also involves tuning the navigation package (i.e. the movebase/movebase flex) package. Needless to say, one can build their own navigation package and bypass the tuning, however, they may lose the intricate perks of the avoidance collision and pre-configured path planners.
Today we will discuss some of the intricacies of the GPS navigation package in light of the MYBOTSHOP GPS package. Starting off, we will enumerate the required and optional hardware as well as the software. Next, we will discuss some of the required configurations and finally, we will illustrate working of the GPS navigation package.
Hardware Requirements
-
Un-manned ground vehicle (UGV) | Un-manned aerial vehicle (UAV)
-
Global positiong system (GPS) device
-
Inertial measurement unit (IMU)
- Recommended GPS: EMLID REACH RS2
Optional Hardware Requirements
-
LiDAR
-
Camera
- Recommended LiDAR: OUSTER
![]() |
![]() |
|
---|
Software Requirements
-
Ubuntu 18.04 (Tested with this version)
-
ROS-melodic (Tested with this version)
MYBOTSHOP GPS Navigation Package Demo
In this demo, we initially record the GPS coordinates of using a logitech controller for a very short distance. After collecting the GPS coordinates, we run the autonomous GPS navigation package.
Recording the GPS Coordinates

Execution Autonomous GPS Navigation

MYBOTSHOP GPS Configuration
The first and foremost important step before starting the configuration is ensuring that your robot control drivers are set properly and can be operated without any issue. Once
IMU Calibration

IMU calibration is especially important for out door navigation as it cannot locally orient itself using typical location markers which are available for indoor navigation. The GPS coordinates only provide the latitude and longtitude coordinates for the position of the robot. The orientation is calculated using the IMU and works via magnetic calibration. It is similar to how we draw an in the air with our mobilephones for calibrating the compass. It is recommended to calibrate the robot's IMU each time the robot is power-cycled to ensure it moves in the correct direction.
GPS Accuracy
The GPS hardware significantly matters when performing the point to point navigation. Utilizing a normal GPS has very low accuracy and causes jumps in the position of the robot which messes with its internal localization parameters. To counter this, a percision GPS like the Recommended GPS: EMLID REACH RS2 may be used, however, it still requires some configuration to enable it to provides its iconic 4 mm accuracy. To enable the EMLID REACH RS2 percision, select the EMLID REACH RS2 in the GPS & 3D Slam Documentation.
Note, that if you do not enable the percision mode, the EMLID acts like a normal GPS with large inaccuracies. Also, while the robot is moving the GPS provides accuracies in cm instead of mm as it requires some time to triangulate its exact positon. One thing to keep in mind is that currently, with the loss of GPS, the robot follows its normal recovery behavior if enabled which is to keep rotating about its current position.
Localization Package
The localization package is very important and requires custom parameters to run with the GPS. These parameters are pre-tuned with the MYBOTSHOP GPS package. If you wish to tune the parameters for your robot yourself, you may refer to the detailed documentation of the robot_localization package.
Movebase Package
In move-base it is critical to configure the size of your robot, the frame-id, the costmaps, and the planners. Details on these parameters are available in the GPS & 3D Slam Documentation.
At times jerky motion may be experienced by the robot for which you may create a custom package which takes the command velocites and smoothes them or utilize the open-source package of yocs.
MYBOTSHOP GPS SLAM Documentation
A comprehensive overview is available for the MBOTSHOP GPS |package in the GPS & 3D Slam Documentation.
Note:
Please email at support@mybotshop.de in case you find any incorrect statements, facts, typos, or if you think some additional information should be added.