Skip to content

RTK GNSS (GPS)

Real Time Kinematic (RTK) GNSS/GPS systems provide centimeter-level accuracy, allowing PX4 to be used in applications like precision surveying (where pinpoint accuracy is essential).

This feature requires QGroundControl running on a laptop/PC and a vehicle with a WiFi or Telemetry radio link to the ground station laptop.

INFO

Some RTK GNSS setups can provide yaw/heading information, as an alternative to the compass:

Supported Devices

PX4 supports the u-blox M8P, u-blox F9P and the Trimble MB-Two GPS, and products that incorporate them.

The RTK compatible devices below that are expected to work with PX4 (it omits discontined devices). The table indicates devices that also output yaw, and that can provide yaw when two on-vehicle units are used. It also highlights devices that connect via the CAN bus, and those which support PPK (Post-Processing Kinematic).

DeviceGPSCompassDroneCANGPS YawPPK
ARK RTK GPSF9PBMM150Dual F9P
ARK MOSAIC-X5 RTK GPSMosaic-X5IIS2MDCSeptentrio Dual Antenna
CUAV C-RTK GPSM8P/M8N
CUAV C-RTK2F9PDual F9P
CUAV C-RTK 9Ps GPSF9PRM3100Dual F9P
CUAV C-RTK2 PPK/RTK GNSSF9PRM3100
CubePilot Here+ RTK GPSM8PHMC5983
CubePilot Here3 CAN GNSS GPS (M8N)M8PICM20948
Drotek SIRIUS RTK GNSS ROVER (F9P)F9PRM3100Dual F9P
DATAGNSS GEM1305 RTK ReceiverTAU951M
Femtones MINI2 ReceiverFB672, FB6A0
Freefly RTK GPSF9PIST8310
Holybro H-RTK ZED-F9P RTK Rover (DroneCAN variant)F9PRM3100Dual F9P
Holybro H-RTK ZED-F9P RTK RoverF9PRM3100Dual F9P
Holybro H-RTK F9P UltralightF9PIST8310Dual F9P
Holybro H-RTK F9P Helical or BaseF9PIST8310Dual F9P
Holybro DroneCAN H-RTK F9P HelicalF9PBMM150Dual F9P
Holybro H-RTK F9P Rover LiteF9PIST8310
Holybro DroneCAN H-RTK F9P RoverF9PBMM150Dual F9P
Holybro H-RTK M8P GNSSM8PIST8310
Holybro H-RTK Unicore UM982 GPSUM982IST8310Unicore Dual Antenna
LOCOSYS Hawk R1MC-1612-V2b
LOCOSYS Hawk R2MC-1612-V2bIST8310
mRo u-blox ZED-F9 RTK L1/L2 GPSF9PDual F9P
RaccoonLab L1/L2 ZED-F9PF9PRM3100
RaccoonLab L1/L2 ZED-F9P with external antennaF9PRM3100
Septentrio AsteRx-m3 ProAsteRxSeptentrio Dual Antenna
Septentrio mosaic-gomosaic X5 / mosaic HSeptentrio Dual Antenna
SIRIUS RTK GNSS ROVER (F9P)F9PDual F9P
SparkFun GPS-RTK2 Board - ZED-F9PF9PDual F9P
Trimble MB-TwoF9P

Notes:

  • ✓ or a specific part number indicate that a features is supported, while ✘ or empty show that the feature is not supported. "?" indicates "unknown".
  • Where possible and relevant the part name is used (i.e. ✓ in the GPS column indicates that a GPS module is present but the part is not known).
  • Some RTK modules can only be used in a particular role (base or rover), while others can be used interchangeably.
  • The list may omit some discontinued hardware that is still supported. For example CubePilot Here+ RTK GPS is discontinued and may be removed from the list in a future release. Check earlier versions if a discontinued module is not mentioned here.

Positioning Setup/Configuration

RTK positioning requires a pair of RTK GNSS devices: a "base" for the ground station and a "rover" for the vehicle.

In addition you will need:

  • A laptop/PC with QGroundControl (QGroundControl for Android/iOS do not support RTK)
  • A vehicle with a WiFi or Telemetry radio link to the laptop.

INFO

QGroundControl with a base module can theoretically enable RTK GPS for multiple vehicles/rover modules. At time of writing this use case has not been tested.

Hardware Setup

Rover RTK Module (Vehicle)

The connection method and cables/connectors required depends on the selected RTK module (and on the flight controller).

Most are connected via the flight controller's GPS port, in the same way as any other GPS module. Some are connected to the CAN bus (i.e. using DroneCAN).

See documentation for the selected device, general GNSS Hardware/Configuration Setup, and DroneCAN for more information on wiring and configuration.

Base RTK Module (Ground)

Connect the base module to QGroundControl via USB. The base module must not be moved while it is being used.

TIP

Choose a position where the base module won't need to be moved, has a clear view of the sky, and is well separated from any buildings. Often it is helpful to elevate the base GPS, by using a tripod or mounting it on a roof.

Telemetry Radio/WiFi

The vehicle and ground control laptop must be connected via wifi or a radio telemetry link.

The link must use the MAVLink 2 protocol as it makes more efficient use of the channel. This should be set by default, but if not, follow the MAVLink2 configuration instructions below.

RTK Connection Process

The RTK GPS connection is essentially plug and play:

  1. Start QGroundControl and attach the base RTK GPS via USB to the ground station. The device is recognized automatically.

  2. Start the vehicle and make sure it is connected to QGroundControl.

    TIP

    QGroundControl displays an RTK GPS status icon in the top icon bar while an RTK GPS device is connected (in addition to the normal GPS status icon). The icon is red while RTK is being set up, and then changes to white once RTK GPS is active. You can click the icon to see the current state and RTK accuracy.

  3. QGroundControl then starts the RTK setup process (known as "Survey-In").

    Survey-In is a startup procedure to get an accurate position estimate of the base station. The process typically takes several minutes (it ends after reaching the minimum time and accuracy specified in the RTK settings).

    You can track the progress by clicking the RTK GPS status icon.

    survey-in

  4. Once Survey-in completes:

    • The RTK GPS icon changes to white and QGroundControl starts to stream position data to the vehicle:

      RTK streaming

    • Vehicle GPS switches to RTK mode. The new mode is displayed in the normal GPS status icon (3D RTK GPS Lock):

      RTK GPS Status

Configuring GPS as Yaw/Heading Source

GPS can be used as a source for yaw fusion when using a single device with two antenna where yaw output is supported by the device, or when using some RTK GPS Setups with Dual u-blox F9P. Using GPS as a heading source has the benefit that yaw calculations are not impacted by magnetic interference.

Both approaches work comparing the time taken for a GNSS signal to reach two separated antennas. The minimum distance between antenna depends on the device but is of the order of 50 cm (check manufacturer documentation).

The devices that can be used are listed in this way are listed in the GPS Yaw column of the table above, such as Septentrio AsteRx-m3 Pro, Holybro H-RTK Unicore UM982 GPS, and Trimble MB-Two. The links in the table take you to the device-specific PX4 configuration.

Generally when using a GNSS as a source of yaw information you will need to configure the following parameters:

ParameterSetting
GPS_YAW_OFFSETThe angle made by the baseline (the line between the two GPS antennas) relative to the vehicle x-axis (front/back axis, as shown here).
EKF2_GPS_CTRLSet bit position 3 "Dual antenna heading" to 1 (i.e. add 8 to the parameter value).

TIP

If using this feature, all other configuration should be setup up as normal (e.g. RTK Positioning).

Optional PX4 Configuration

The following settings may need to be changed (using QGroundControl).

RTK GPS settings

The RTK GPS settings are specified in the QGroundControl General Settings (SettingsView > General Settings > RTK GPS).

RTK GPS Setup

These settings define the minimum duration and minimum accuracy for completing the RTK GPS setup process (known as "Survey-In).

TIP

You can save and reuse a base position in order to save time: perform Survey-In once, select Use Specified Base Position and press Save Current Base Position to copy in the values for the last survey. The values will then persist across QGC reboots until they are changed.

MAVLink2

The MAVLink2 protocol must be used because it makes more efficient use of lower-bandwidth channels. This should be enabled by default on recent builds.

To ensure MAVLink2 is used:

Tuning

You may also need to tune some parameters as the default parameters are tuned assuming a GPS accuracy in the order of meters, not centimeters. For example, you can decrease EKF2_GPS_V_NOISE and EKF2_GPS_P_NOISE to 0.2.

Dual Receivers

A second GPS receiver can be used as a backup (either RTK or non RTK). See the EKF2 GPS Configuration section.

Further Information