RTK GPS Correction (Fixed Baseline)

It is possible to increase the normal position reporting accuracy of the GPS using RTK (Real Time Kinematics). Normal GPS accuracy is 3-5 meters using the Ublox M8N generation of GPS. If your global region has SBAS (Satelite Based Augmentation Service) with geo-synchronous satellites reporting the general propagation conditions and corrections to the GPS, then accuracy can improve to the 1 meter range. But centimeter accuracy ranges can be obtained by using Real Time Kinematics correctional data with the newer F9P generation of GPSes.

Propagation and timing corrections (RTCM data) for each satellite can be fed to the vehicle’s RTK GPS in several ways:

  1. from a local RTK base station connected to the GCS, which is also connected to the vehicle (via MAVLink)

  2. by forwarding RTCM correction data from an NTRIP server via the internet-connected GCS, which is also connected to the vehicle (via MAVLink)

  3. wirelessly from a local RTK base station directly to the vehicle GPS’s secondary UART port

Method 1

../_images/rtk.jpg

Both Mission Planner and QGC allow the connection of an external RTK Base GPS via USB. The correction data is passed from the Base unit through the GCS program to the vehicle’s MAVLink connection to the GCS, providing the vehicle’s RTK GPS with correction data to enable its position reporting to become more accurate.

Key to the success of this method requires that the RTK Base station’s position be precisely known or determined. Usually, this requires that the GCS command the RTK Base GPS to “survey-in” itself. The GPS takes many measurements determining its mean location, applying interim corrections, and continues to refine its location deviations until the measurements are within a set threshold of error (usually a few meters) for a given time period (usually 60 seconds). The GPS then uses that as its location and start outputting the correction data to the GCS for forwarding to the vehicle’s GPS.

It is possible to program the RTK Base’s exact location directly into it if it is known using the UBlox programming tool or Mission Planner if that location has been previously “surveyed-in”.

Setup

Vehicle: normal setup for serial GPS (GPS1_TYPE = 1) or DroneCAN GPS (GPS1_TYPE = 9)

Attach RTK GPS via USB to PC running Mission Planner or QGC.

You first must “survey-in” the GPS, in Mission Planner.

../_images/mp_rtk_connect.jpg

After the GPS is attached to the PC, start Mission Planner, enter the COM port to which it is attached and press “Connect”. The “Link Status” should start showing data being input and the satellite constellations locked will be shown with green indicators.

../_images/mp_rtk_valid.jpg

Then press the “RESTART” button (#1 in the picture) to start the “survey-in” process using the SurveyIn Acc(m) and Time(s). Ublox recommends a SurveyIn ACC of 5m or less. 2m is commonly used. In #2. in the picture the survey status progress can be monitored until a “Position is Valid” is obtained.

Once the position is obtained, you can save it in a list for future use, if the Base is placed at that exact location in the future, to avoid another survey procedure. To use an existing position, first ensure that the GPS attached to the Mission Planner PC is indeed in that exact location, then press the “USE” button for that location in the list. RTK updates to the vehicle will begin immediately.

Once RTK data is being processed by the vehicle’s GPS, its status will change to “RTK float” and then to “RTK fixed” in the GCS HUD indicating that it is ready for use. “RTK float” means that it is using correction data, but has not moved to the highest precision mode yet.

Method 2

../_images/rtk_b.jpg

There are internet-based services that can provide correction data from bases linked to that service. They provide the correction data over the internet via the NTRIP protocol. Mission Planner and QGC can connect to these servers and forward the data via MAVLink connection to the vehicle.

If the service has a Base station providing real-time correction data within 100 Km or so of the vehicle’s location, then it will usually be satisfactory. For every 10 Km away from the vehicle that the source is located, the inaccuracy limits will increase ~ 1-1.5cm. Some services provide interpolated data for any location within their network of stations and this can sometimes be successfully used if a station is further than 100km away from the vehicle location.

Some of these services are free and some are fee-based.

Setup

First, be sure that the vehicle is connected to the GCS and has a GPS 3D lock. Then on the GCS:

../_images/NTRIP.jpg
  1. Select “NTRIP” from the dropdown box and press “Connect”. A dialog box (#2.) will appear to enter the login information for an NTRIP server.

  2. The login is usually of the form:

http://username:password@host:port/mount

where the “host” is the NTRIP server URL, the port as designated by the service (usually 2101 for RTCM3.1 data streams), and the mount point will be the service’s designation of the station that you want to use (the closest one to your location), usually something like “P807_RTCM” or “Evermount234”, whatever the service names them.

If the connection occurs, data will start appearing in the Link Status box at the top and be sent to the connected vehicle’s RTK GPS.

Method 3

../_images/rtk_a.jpg

It is possible to program the GPS used as a Fixed Base, to automatically begin to survey-in itself upon power up and start sending RTCM correction data out its UART2 port once completed. By attaching a transparent RF modem, either radio-based or WIFI, you can directly transmit the correction data to the vehicle’s UART2 port.

This requires configuring the Base RTK GPS with the UBlox configuration tool. See Sparkfun’s tutorial for more information.

Setup

See blog post on setup

Note

some RTK GPSes are already configured for dedicated BASE operation with automatic “survey-in” being done every power up. The base model of the Blicube GRTK system is an example.

RTCM Message Parsing

Note

these options are needed only in very special situations. They are not needed for normal use cases.

Normally, only a single source of RTCM messages is provided to the autopilot and the RTCM messages are NOT fully parsed, only extracting the normally required information to be forwarded to the GPS for RTK corrections.If multiple sources of correction data are received by the autopilot, full parsing of the RTCM messages is done automatically and all RTCN message data sent to the GPS to provide multiple correction sources to be applied to the GPS position. This “full parsing” of RTCM messages also provides additional logged data which may be helpful in diagnosing RTK problems even with a single RTCM data source. Setting GPS_DRV_OPTIONS bit 6 high, will enable this extended parsing and logging for diagnosing RTK issues by a skilled development team member from the log.

In some cases, specialized custom GPS commands using the RTCM message framework may be used in some systems and full parsing may result in problems with the GPS. Setting bit 7 of GPS_DRV_OPTIONS disables the automatic full parsing with multiple RTCM data sources being sent to the autopilot if this is causing a problem

Acknowledgment

Thanks to Qiotek for providing the autopilot and GPSes used for this article.