Skip to main content
Version: 1.0.2

RTK Correction

Hardware​

The default correction data is received over a cellular or Wi-Fi connection.

Info

The AutomatePro offers an optional L-band RTK correction data receiver, which receives correction data from L-Band satellites. This allows the RTK GNSS to function without a cellular connection and provides correction redundancy. For more information, contact Lemvos.

ROS API​

Node: automatepro_ntrip_client/automatepro_spartn_client

Publishers​

TopicTypeDescription
/sensor/gnss/correctionrtcm_msgs/msg/MessageRTCM or SPARTN correction data.

Parameters​

NTRIP Client​

ParameterTypeValuesRuntime R/WDescription
use_httpsbooltrue/falsereadUses HTTPS when set to true.
hoststringreadNTRIP server hostname.
portint2101/2102readNTRIP server port.
mountpointstringreadMountpoint to connect to.
fix_topicstring/sensor/gnss/position/fixreadTopic whose position is sent to a VRS caster.
records_per_connectionint10 (1-10000)readRecords received before the connection is renewed to refresh the position sent to the caster.
reconnect_backoff_sdouble1.0 (0.1-60.0)readDelay in seconds after a failed connection attempt.

The NTRIP client reads its login from NTRIP_USERNAME and NTRIP_PASSWORD in /opt/automatepro/.env, not from parameters.

SPARTN Client​

ParameterTypeValuesRuntime R/WDescription
use_httpsbooltrue/falsereadUses HTTPS when set to true.
hoststringreadNTRIP server hostname.
portint2101/2102readNTRIP server port.
mountpointstringreadMountpoint to connect to.
usernamestringreadLogin user name.
passwordstringreadLogin password.
gga_intervalint10readInterval, in seconds, for sending GGA position sentences to the caster. 0 sends none.

Both clients read their parameters when they start; the NTRIP client also rejects ros2 param set. Restart the core driver to apply a change.

RTK Correction Services​

RTK (Real-Time Kinematic) correction service is a technique used to enhance the precision of position data derived from satellite-based positioning systems such as GPS, GLONASS, Galileo, and BeiDou. RTK achieves centimeter-level accuracy by using corrections transmitted from a network of ground-based reference stations to a receiver in real time. AutomatePro supports RTCM and SPARTN correction data over the NTRIP protocol.

If you already have login credentials for the NTRIP caster you want to use, proceed with configuring parameters as shown below. If you would like to set up a new one, follow the instructions below.

info

The following services have been tested with AutomatePro. If you use a different service provider, you may need to configure it according to that provider's instructions.

Here are the suggested free and paid correction services:

u-blox PointPerfect (Paid)​

u-blox correction data uses SPARTN format, which is more efficient than RTCM. More details can be found here. Before proceeding to the next step, you should have a hostname, mountpoint, username, and password.

The configuration file is:

/opt/automatepro/config/ros/spartn_params.yaml
automatepro_spartn_client:
ros__parameters:
use_https: false
host: "ppntrip.services.u-blox.com"
port: 2101 # [http: 2101, https: 2102]
mountpoint: "EU" # [Europe: EU, United States: US, Australia: AU, Korea: KR]
username: "username" # Your USERNAME
password: "password" # Your PASSWORD
gga_interval: 10

The SPARTN client sends the position receiver's NMEA output to the caster, so keep publish.nmea: true in gnss_position_params.yaml, the packaged default.

RTK2go (Free)​

RTK2go is a community NTRIP caster that provides free RTK correction service. To use it, select a mountpoint near your location. You can find the list of available mountpoints here. Click on view-all to view mountpoints on the map.

Once you have the mountpoint you would like to connect to, add that to the config file as shown below.

The configuration file is:

/opt/automatepro/config/ros/ntrip_params.yaml
automatepro_ntrip_client:
ros__parameters:
use_https: false
host: rtk2go.com
port: 2101
mountpoint: Prittlbach # Add your mountpoint here

The NTRIP client reads its credentials from /opt/automatepro/.env, not from the parameter file. Set them there:

NTRIP_USERNAME=noname
NTRIP_PASSWORD=password

The correction clients are disabled by default. Enable the client you configured in /opt/automatepro/.env:

ROS_DRIVER_GNSS_RTK_CORRECTION_SPARTN=1
ROS_DRIVER_GNSS_RTK_CORRECTION_NTRIP=1

Set only the one you use.

Important

Restart the automatepro-core-driver Docker container after changing the configuration. Configuration changes are applied only after the container restarts.

sudo systemctl restart automatepro-core-driver