For the complete documentation index, see llms.txt. This page is also available as Markdown.

Robotics RTK Setup: ROS 2 NTRIP & Robot Platforms

RTK setup guides for robots: how RTKdata NTRIP corrections reach a robot through a GNSS receiver, a driver and an NTRIP client, plus the Unitree Go2 EDU.

A robotics RTK setup with RTKdata connects an NTRIP client on the robot computer, in the GNSS receiver or on the ground station to the RTKdata host for your region on port 2101, with the mountpoint AUTO and your RTK credentials. The client sends the robot's position to RTKdata as NMEA GGA, and the RTCM corrections that come back go to the RTK GNSS receiver on the robot, which computes the RTK position.

This page collects what RTK corrections for robots and unmanned ground vehicles (UGVs) have in common: where the NTRIP client can run, the connection values, why RTKdata needs the robot's position, how many data streams a fleet needs, which mountpoint fits the robot's maps and what to check when a robot does not reach RTK Fixed. The guides below add the details for the ROS 2 NTRIP client, the Unitree Go2 EDU, Clearpath robots with OutdoorNav, Fixposition and Xsens sensors with a built-in NTRIP client, MAVProxy on ArduPilot companion computers and the ground stations of ArduPilot and PX4 vehicles.

RTKdata connection settings for every robot setup on this page:

Region
Hostname (preferred)
IP fallback
Port

North America

rtk.rtkdata.com

13.56.117.10

2101

Europe

eu.rtkdata.com

3.73.41.96

2101

Australia

aus.rtkdata.com

54.206.56.130

2101

Field
Value

Host

rtk.rtkdata.com (North America), eu.rtkdata.com (Europe) or aus.rtkdata.com (Australia). Choose the server closest to where the robot works.

Host (IP fallback)

13.56.117.10 (North America), 3.73.41.96 (Europe), 54.206.56.130 (Australia). Only if the robot software or its network cannot resolve the hostname.

Port

2101

Mountpoint

AUTO in capital letters. Alternatives: AUTO_ITRF2020, AUTO_ITRF2014, AUTO_WGS84

Username

From RTK Credentials in your account dashboard. It starts with rtk and is not your website login.

Password

From RTK Credentials, not your website password

NMEA GGA

Required. The robot's position has to reach the caster, otherwise the login succeeds but no corrections arrive.

All three servers share the same base station network; the difference is routing latency. Full reference: NTRIP Server Settings.

Don't have an RTKdata.com account yet? Start 30-day Free Trial or View Pricing

What does a robotics RTK setup with RTKdata need?

A robotics RTK setup with RTKdata needs an RTK GNSS receiver and antenna on the robot, an NTRIP client that sends GGA, a path for the corrections into the receiver, internet with outbound TCP on port 2101, RTK credentials, one data stream per robot that is connected at the same time and RTKdata coverage where the robot works.

  • RTK GNSS receiver and antenna on the robot, with a clear view of the sky

  • An NTRIP client that sends the robot's position as NMEA GGA: on the robot computer (for example the ROS 2 package ntrip_client), in the receiver, or on the ground station of an ArduPilot or PX4 vehicle

  • A path for the corrections into the receiver: a GNSS driver that accepts RTCM on a topic, the receiver's own NTRIP client, or the telemetry link from the ground station

  • Internet with outbound TCP on port 2101 for the device that runs the NTRIP client

  • RTKdata account with active RTK credentials (username starts with rtk)

  • One data stream per robot that is connected at the same time

  • RTKdata coverage at your site: check the Coverage Map before you deploy

How do RTK corrections reach a robot?

RTK corrections reach a robot through an NTRIP client that sends the position of the robot's RTK GNSS receiver to RTKdata as NMEA GGA, receives the RTCM corrections in return and passes them to the receiver; that client runs on the robot computer, in the receiver itself or on the ground station of an autopilot vehicle.

  1. NTRIP client on the robot computer. A program on the robot's own computer connects to RTKdata, for example the ROS 2 package ntrip_client. It forwards the receiver's NMEA sentences, including GGA, from the nmea topic to RTKdata (with drivers that publish no NMEA, it can build a GGA sentence from the fix topic instead) and publishes the RTCM corrections on its rtcm topic. It does not write to the receiver itself: a GNSS driver that subscribes to that topic writes the corrections into the receiver. See the ROS 2 NTRIP Client guide, and the Unitree Go2 EDU guide for this setup on a robot platform.

  2. NTRIP client in the GNSS receiver. Some receivers have an NTRIP client of their own, for example the Septentrio mosaic-X5. The receiver then needs its own internet connection, for example through the Ethernet port on boards that have one, sends its position to RTKdata itself and receives the corrections directly, and the robot computer only reads the position. On ROS 2, the Septentrio driver can write these NTRIP settings into the receiver, as shown in the Septentrio tab of the ROS 2 NTRIP Client guide.

  3. NTRIP client on the ground station. ArduPilot and PX4 vehicles can get the corrections from their ground control station: Mission Planner for ArduPilot vehicles, including rovers, and QGroundControl for PX4 vehicles connect to RTKdata over the ground station's internet and forward the corrections to the vehicle over the telemetry link.

In all three setups, the receiver's position has to reach the caster as NMEA GGA. RTKdata then sends RTCM 3.2 corrections with the MSM4 messages 1074, 1084, 1094, 1114, 1124 and 1134 and the message 1005, and the GNSS receiver computes the RTK solution. The NTRIP client and the robot software only carry the data. Check in the receiver documentation that it accepts RTCM 3 MSM4 messages as input. RTCM 1230 (GLONASS code-phase biases) comes from the base station, and most RTKdata base stations do not send it. Without it, a receiver from another manufacturer than the base station cannot fully resolve the GLONASS ambiguities, so GLONASS does not contribute to the fix. GPS, Galileo and BeiDou are not affected.

Which setup fits your robot?

Setup
Choose it when
Keep in mind

NTRIP client on the robot computer

The robot runs ROS 2, its computer has internet, and its GNSS driver accepts RTCM on a topic

Give ntrip_client exactly one GGA source, preferably the receiver's own NMEA on nmea, and start it after the driver reports a position

NTRIP client in the GNSS receiver

The receiver has an NTRIP client of its own and can get internet itself, for example over Ethernet

Set the receiver's GGA output to a 1 second interval; on Fixposition and Xsens XVN sensors, set Position to Automatic. The robot computer only reads the position

NTRIP client on the ground station

The vehicle runs ArduPilot or PX4 and stays connected to Mission Planner or QGroundControl

Corrections reach the vehicle only while the ground station runs with internet and the telemetry link is up. Mission Planner reports the vehicle's planned home location, not its live position

NTRIP client on the vehicle's companion computer

The vehicle runs ArduPilot and carries a Linux computer with internet, for example over LTE

MAVProxy sends the vehicle's live position as GGA and connects only after a GPS 3D fix

Which robots and robot software have an RTKdata guide?

RTKdata has setup guides for the Unitree Go2 EDU, for ROS 2 robots, which get their RTK corrections through the ROS 2 package ntrip_client or the receiver's own NTRIP client, for Clearpath robots with OutdoorNav and for Fixposition and Xsens sensors, which use the NTRIP client built into the sensor, and for ArduPilot and PX4 vehicles, which get them through their ground control stations or, on ArduPilot, through MAVProxy on a companion computer.

Robot or software
Where the NTRIP client runs
What you add
Guide

Unitree Go2 EDU

ntrip_client on a Linux computer with ROS 2 Humble or Jazzy, or the NTRIP client of the receiver

External RTK GNSS receiver and antenna, internet for the device that runs the NTRIP client

Clearpath Husky A300 and Jackal with OutdoorNav

NTRIP client in the XVN (Xsens Vision Navigator, the Fixposition Vision-RTK 2), set in the XVN UI

Internet for the robot through its Peplink router (Wi-Fi WAN or SIM)

Fixposition Vision-RTK 2, Xsens Vision Navigator (XVN), PBx-A1

NTRIP client built into the sensor, set in its web interface

Internet for the sensor over Ethernet

Any ROS 2 robot

ntrip_client on the robot computer (ROS 2 Humble or Jazzy)

An RTK GNSS receiver whose ROS 2 driver accepts RTCM on a topic, internet on the robot computer

ArduPilot rovers

Mission Planner on a Windows ground station

An RTK-capable GNSS receiver on the rover, a telemetry link, internet on the ground station

ArduPilot rovers and boats with a companion computer

MAVProxy with its ntrip module on a Linux computer on the vehicle

An RTK-capable GNSS receiver, a serial or USB link to the flight controller, internet on the vehicle

PX4 vehicles

QGroundControl on the ground station

An RTK-capable GNSS receiver on the vehicle, a telemetry link, internet on the ground station

Not every GNSS driver accepts RTCM on a topic; the ROS 2 NTRIP Client guide lists which drivers do and sits under NTRIP Clients & Field Software because it applies to any ROS 2 robot. If your robot is not listed, the values on this page are the same for any NTRIP client. NTRIP & GGA Essentials explains what the caster expects from the device, and GNSS Rovers & Receivers lists the receiver guides, including receivers with their own NTRIP client.

Which connection settings do robots use with RTKdata?

Robots use the same RTKdata NTRIP settings as every other device: the host for your region (rtk.rtkdata.com for North America, eu.rtkdata.com for Europe, aus.rtkdata.com for Australia), port 2101, the mountpoint AUTO in capital letters, the NTRIP username and password from RTK Credentials, and NMEA GGA sent to the caster.

Each robot software names these fields differently. This is where the values go:

Robot software
Host
Port
Mountpoint
Username and password

Parameter host

Parameter port

Parameter mountpoint

Parameters username and password, with authenticate set to true

Mission Planner, SETUP > Optional Hardware > RTK/GPS Inject, NTRIP

One URL: http://user:pass@host:port/mountpoint, for example http://rtkUSERNAME:PASSWORD@eu.rtkdata.com:2101/AUTO

In the same URL

In the same URL

user:pass in the same URL

QGroundControl, Application Settings > NTRIP / RTK

Host address

Server port

Mount Point

Username, Password

Clearpath OutdoorNav, XVN UI, Configuration > GNSS, Source NTRIP client (auto)

Host

Port

Mountpoint

User, Password; set Position to Automatic so the XVN sends its position

Fixposition Vision-RTK 2 / XVN, web interface, Configuration > GNSS, Source NTRIP client (auto)

Host

Port

Mountpoint

User, Password; set Position to Automatic so the sensor sends its position

MAVProxy (ArduPilot), ntrip module at the MAV> prompt

ntrip set caster

ntrip set port

ntrip set mountpoint

ntrip set username and ntrip set password, the password in double quotes

Hostname or IP address. Where the robot software has its own port field or parameter (ntrip_client, QGroundControl), enter only the hostname of the server closest to the robot's work area, without http:// and without :2101. Mission Planner is the exception: it takes one URL that starts with http:// and includes the port, as its connection dialog shows ("Enter url (eg http://user:pass@host:port/mount)"). Use the IP fallback only if the robot software or its network cannot resolve the hostname; some embedded systems cannot.

Network. The network the NTRIP client uses, such as site Wi-Fi, a company network, a VPN or mobile data, has to allow outbound TCP on port 2101. Firewalls, VPNs and some mobile carriers can block this port. Port 2101 needs no TLS: leave Use TLS encryption off in QGroundControl.

Credentials. The username starts with rtk and is not your website login. Enter the username and password without a space at the start or end. One set of credentials allows one connection at a time, so every robot that is connected at the same time needs its own data stream, see data streams for a robot fleet.

Why does a robot have to send its position as GGA?

A robot has to send its receiver's position to RTKdata as NMEA GGA because the RTKdata AUTO mountpoint selects the nearest reference station from that position; without GGA the login succeeds, but RTKdata sends no corrections.

  • How AUTO uses the position. When the NTRIP client connects and sends the receiver's approximate position, the caster identifies the nearest reference station and starts streaming corrections from it. As the robot moves and keeps sending GGA, the caster can switch to a closer station. See NTRIP & GGA Essentials.

  • Rate. Send GGA once per second (1 Hz) where the software lets you set the interval, as recommended in NTRIP & GGA Essentials.

  • ROS 2. ntrip_client creates no position of its own: it sends what arrives on its nmea and fix topics, at the rate of the GNSS driver, so set the rate at the driver or the receiver. Feed one of the two topics, preferably nmea with the receiver's own GGA, not both. The ROS 2 NTRIP Client guide shows the GGA source for each driver.

  • Ground stations. Mission Planner sends GGA when Send NTRIP GGA? (VRS/Smart) is ticked on the RTK/GPS Inject page, which is the default. It reports the vehicle's planned home location about every 30 seconds, not its live position, and sends nothing while that location is not set (latitude and longitude 0), so connect only after the vehicle has a GPS 3D lock and its home location is at the work site. Because this position does not follow the robot, AUTO gets no updated position for a handoff while the robot moves. For QGroundControl, see the troubleshooting table in the QGroundControl guide if the vehicle connects but does not reach a fix.

  • Receivers with their own NTRIP client. Turn on the receiver's GGA output to the caster at a 1 second interval rather than an automatic mode, for example NMEA GGA in the NTRIP client settings of the Septentrio mosaic-X5. In automatic mode, a Septentrio receiver sends GGA only when the caster requests it. On Fixposition Vision-RTK 2 and Xsens XVN sensors, set Position to Automatic in the NTRIP settings; there it selects the position source, see Fixposition Vision-RTK 2.

  • Position first. Start the NTRIP connection once the receiver has a position of its own, outdoors under open sky.

How many data streams does a robot fleet need?

A robot fleet needs one RTKdata data stream for each robot that is connected at the same time, because one set of NTRIP credentials allows one connection at a time.

  • Same credentials on two robots at once. The robots disconnect each other continuously, neither holds a session long enough to converge, and the fix status keeps cycling between FIX, FLOAT and SINGLE. It looks like an unstable network, not like an account problem.

  • Robots used one after another can share one set of credentials.

  • Everything that is logged in counts, for example an NTRIP client left running on a development computer, or a base station that fetches its own position over NTRIP.

  • Adding streams. Add or remove data streams at any time from your account dashboard; an added stream is active immediately. Depending on how the account was provisioned, each stream has its own credentials, or one set of credentials allows several simultaneous connections.

  • Fleets. For volume licensing across many robots, see Enterprise & Volume.

Quick check: switch off or disconnect every robot except one. If the remaining robot connects and holds a stable fix straight away, the cause was a credential conflict, not the correction network.

Details: Account & Credentials.

Which RTKdata mountpoint fits a robot's maps and waypoints?

Use the RTKdata mountpoint AUTO when the robot's maps and waypoints are in your regional datum or were recorded with RTKdata on AUTO, and use AUTO_WGS84 or AUTO_ITRF2020 when they are in WGS 84; keep one mountpoint for the whole project.

Mountpoint
Delivers
Use it on a robot when

AUTO

Recommended. Your region's datum, see the full table in Coordinate Systems & Datums

Maps and waypoints are in the regional datum or were recorded on AUTO

AUTO_ITRF2020

ITRF2020 at the current epoch

Maps and waypoints are in WGS 84 or ITRF2020

AUTO_ITRF2014

ITRF2014 at the current epoch

The project requires ITRF2014

AUTO_WGS84

WGS84(G2139) at the mid-year epoch

Maps and waypoints are in WGS 84

Datum with AUTO: AUTO delivers the regional datum for your position, for example NAD83(2011) in the USA, NAD83(CSRS)v7 in Canada, ETRS89 (realization ETRF2000) in Europe and GDA2020 in Australia. Regions the table does not list get WGS84(G2139) at the mid-year epoch. ROS 2 NavSatFix messages are specified using the WGS 84 reference ellipsoid and have no datum field, so they do not show that a position on AUTO is in the regional datum; see the mountpoint section of the ROS 2 NTRIP Client guide.

  • Capital letters. Mountpoint names are case sensitive: AUTO, not auto.

  • One mountpoint per project. Maps recorded on AUTO and waypoints from a global mountpoint sit in different frames and do not line up.

  • Datum offset. A consistent 50 cm to 1 m offset against local survey control or a map is almost always a datum mismatch, not an accuracy problem. See Why Your Coordinates May Be Offset.

  • Moving robots. On longer routes, AUTO can hand off to a closer station as the robot moves, based on the updated position, except with Mission Planner, which reports the home location.

  • Heights. RTKdata delivers ellipsoidal heights. For heights above sea level, apply a geoid model. See Understanding Heights.

  • Heading. An RTK position does not include the robot's orientation. For GPS navigation with robot_localization, the Nav2 documentation states that "measuring absolute orientation is mandatory" and names IMUs with magnetometers, dual GPS systems or matching techniques over a known map as sources.

Why does a robot connect but never reach RTK Fixed?

Most often RTKdata has not received the robot's position as NMEA GGA yet, so the login succeeds but no corrections arrive; the other common causes are a mountpoint that is not AUTO in capital letters, a GNSS driver that does not write the corrections into the receiver, the same credentials on a second device and a blocked view of the sky.

What you see
Likely cause
What to do

Login rejected

The website login was used instead of the RTK credentials, a typo, or a space at the start or end

Enter the username (starts with rtk) and the password from RTK Credentials

No connection to the server

The hostname does not resolve, the host is not in the format your software expects, or outbound TCP on port 2101 is blocked

Check the host format in the connection settings, try the IP fallback for your region and allow outbound TCP on port 2101

Logged in, but no correction data

No GGA reaches RTKdata, or the mountpoint is not AUTO in capital letters

Check the GGA source: the nmea topic of ntrip_client, the GGA checkbox on the RTK/GPS Inject page and the home location in Mission Planner, or the GGA output of a receiver with its own NTRIP client. Then check the mountpoint

Corrections arrive, but the receiver never reaches RTK Fixed

No GNSS driver writes the corrections into the receiver, the receiver does not take RTCM 3 MSM4 messages as input, or the sky is blocked

With ROS 2, check that the driver subscribes to the RTCM topic, see the ROS 2 NTRIP Client guide. Check the receiver's RTCM input in its documentation, move the robot to open sky and check the site on the Coverage Map

Fix status keeps cycling between FIX, FLOAT and SINGLE

A second robot or device uses the same credentials at the same time

One data stream per robot that is connected at the same time, see data streams for a robot fleet

Constant offset of 50 cm to 1 m against maps, waypoints or survey control

The mountpoint delivers another datum than the maps and waypoints use

Use one datum for mountpoint, maps and waypoints, see Why Your Coordinates May Be Offset

Heights differ from benchmarks by 10 to 50+ m

RTKdata delivers ellipsoidal heights, and no geoid model is applied

Apply a geoid model, see Understanding Heights

For the full checklist, see Fix NTRIP Connection Issues.

Frequently asked questions

Can a robot without its own NTRIP client use RTKdata?

Yes. A robot without its own NTRIP client can use RTKdata if a computer on the robot runs an NTRIP client that sends the receiver's position as GGA and hands the corrections to the receiver, for example the ROS 2 package ntrip_client with a GNSS driver that accepts RTCM on a topic, or if the GNSS receiver has its own NTRIP client and internet connection. ArduPilot and PX4 vehicles can also get the corrections from Mission Planner or QGroundControl on the ground station. What the robot needs in every case is an RTK-capable GNSS receiver; the robot platform itself does not need NTRIP support.

Does a robot need a local base station with RTKdata?

No. A local base station is not required: RTKdata streams the corrections over NTRIP from the nearest reference station in its network directly to the robot's receiver, which works as a rover. If you run a base station of your own that logs in to RTKdata with the same credentials, for example to fetch its own position, it occupies the connection; take it off the network or give it its own data stream. Check that your site is covered on the Coverage Map.

Does the Unitree Go2 have built-in RTK?

No. Unitree's Go2 specifications list a 4G module with GPS for the PRO, X and EDU models and no RTK. To use RTKdata corrections on a Go2 EDU, you add an external RTK GNSS receiver with its own antenna and an NTRIP client, for example the ROS 2 package ntrip_client on a Linux companion computer, or a receiver with its own NTRIP client. The Unitree Go2 EDU guide covers which models can take an external receiver, where the GNSS software runs, power and internet.

Quick reference

  1. Put an RTK GNSS receiver and antenna on the robot, with a clear view of the sky.

  2. Choose where the NTRIP client runs: on the robot computer (ROS 2 ntrip_client with a GNSS driver that accepts RTCM on a topic), in the receiver, or on the ground station (Mission Planner, QGroundControl).

  3. Enter the host for your region, port 2101, AUTO and your RTK credentials, in Mission Planner as one URL that starts with http://; use the IP fallback only if the hostname cannot be resolved.

  4. Send the receiver's position to RTKdata as GGA, once per second where the software lets you set the rate; with ROS 2, the receiver's own GGA on the nmea topic (fix only for drivers without NMEA output), not both.

  5. Check the RTK status at the receiver, not only the login.

  6. Give every robot that is connected at the same time its own data stream, and keep maps, waypoints and mountpoint in the same datum.

Last updated

Was this helpful?