Repository Summary
Checkout URI | https://github.com/LORD-MicroStrain/ntrip_client.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2024-12-18 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
ntrip_client | 1.4.0 |
README
ROS NTRIP Client
Description
ROS node that will communicate with an NTRP caster to receive RTCM connections and publish them on a ROS topic. Also works with virtual NTRIP servers by subscribing to NMEA messages and sending them to the NTRIP server
Important Branches
There are two important branches that you may want to checkout:
- ros – Contains ROS1 implementation for this node.
- ros2 – Contains ROS2 implementation for this node.
Build Instructions
Building from source
-
Install ROS2 and create a workspace: Installing and Configuring Your ROS2 Environment
-
Move the entire ntrip_client folder to the your_workspace/src directory.
-
Install rosdeps for this package:
rosdep install --from-paths ~/your_workspace/src --ignore-src -r -y
-
Build your workspace:
cd ~/your_workspace
colcon build
source ~/your_workspace/install/setup.bash
The source command may need to be run in each terminal prior to launching a ROS node.
Connect to a NTRIP caster or server
This is useful if you have access to an NTRIP caster or server that you want to connect to over the internet.
ros2 launch ntrip_client ntrip_client_launch.py
Optional launch parameters:
- host: Hostname or IP address of the NTRIP server to connect to.
-
port: Port to connect to on the server. Default:
2101
- mountpoint: Mountpoint to connect to on the NTRIP server.
-
ntrip_version: Value to use for the
Ntrip-Version
header in the initial HTTP request to the caster. -
authenticate: Whether to authenticate with the server, or send an unauthenticated request. If set to true,
username
, andpassword
must be supplied. -
username: Username to use when authenticating with the NTRIP server. Only used if
authenticate
is true -
password: Password to use when authenticating with the NTRIP server. Only used if
authenticate
is true - ssl: Whether to connect with SSL. cert, key, and ca_cert options will only take effect if this is true
- cert: If the NTRIP caster is configured to use cert based authentication, you can use this option to specify the client certificate
- key: If the NTRIP caster is configured to use cert based authentication, you can use this option to specify the private key
- ca_cert: If the NTRIP caster uses self signed certs, or you need to use a different CA chain, this option can be used to specify a CA file
-
rtcm_message_packege: Changes the type of ROS RTCM message published by this node. Defaults to
mavros_msgs
, but also supportsrtcm_msgs
Connect to a NTRIP “device”
This is useful if you do not have an internet connection, but do have an NTRIP “device” that you want to receive connections from, such as the MicroStrain 3DM-RTK.
ros2 launch ntrip_client ntrip_serial_device_launch.py
Optional launch parameters:
- port: Serial port that the device is connected on.
- baudrate: Baudrate to connect to the serial port at. Default 115200
-
rtcm_message_packege: Changes the type of ROS RTCM message published by this node. Defaults to
mavros_msgs
, but also supportsrtcm_msgs
Topics
This node currently only has three topics of interest:
-
/rtcm: This node will publish the RTCM corrections received from the server to this topic as RTCM messages. These messages can be consumed by nodes such as the microstrain_inertial_driver
-
NOTE: The type of message can be switched between
mavros_msgs/RTCM
andrtcm_msgs/Message
using thertcm_message_package
parameter
-
NOTE: The type of message can be switched between
- /nmea: This node will subscribe on this topic and receive NMEA sentence messages which it will forward to the NTRIP server. This is always needed when using a virtual NTRIP server or an NTRIP device
-
/fix: This serves the same exact purpose as
/nmea
, but facilitates receiving global position that is not in NMEA format
License
ntrip_client is released under the MIT License - see the LICENSE
file in the source distribution.
Copyright (c) 2024, MicroStrain by HBK
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/LORD-MicroStrain/ntrip_client.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2024-12-18 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
ntrip_client | 1.4.0 |
README
ROS NTRIP Client
Description
ROS node that will communicate with an NTRP caster to receive RTCM connections and publish them on a ROS topic. Also works with virtual NTRIP servers by subscribing to NMEA messages and sending them to the NTRIP server
Important Branches
There are two important branches that you may want to checkout:
- ros – Contains ROS1 implementation for this node.
- ros2 – Contains ROS2 implementation for this node.
Build Instructions
Building from source
-
Install ROS2 and create a workspace: Installing and Configuring Your ROS2 Environment
-
Move the entire ntrip_client folder to the your_workspace/src directory.
-
Install rosdeps for this package:
rosdep install --from-paths ~/your_workspace/src --ignore-src -r -y
-
Build your workspace:
cd ~/your_workspace
colcon build
source ~/your_workspace/install/setup.bash
The source command may need to be run in each terminal prior to launching a ROS node.
Connect to a NTRIP caster or server
This is useful if you have access to an NTRIP caster or server that you want to connect to over the internet.
ros2 launch ntrip_client ntrip_client_launch.py
Optional launch parameters:
- host: Hostname or IP address of the NTRIP server to connect to.
-
port: Port to connect to on the server. Default:
2101
- mountpoint: Mountpoint to connect to on the NTRIP server.
-
ntrip_version: Value to use for the
Ntrip-Version
header in the initial HTTP request to the caster. -
authenticate: Whether to authenticate with the server, or send an unauthenticated request. If set to true,
username
, andpassword
must be supplied. -
username: Username to use when authenticating with the NTRIP server. Only used if
authenticate
is true -
password: Password to use when authenticating with the NTRIP server. Only used if
authenticate
is true - ssl: Whether to connect with SSL. cert, key, and ca_cert options will only take effect if this is true
- cert: If the NTRIP caster is configured to use cert based authentication, you can use this option to specify the client certificate
- key: If the NTRIP caster is configured to use cert based authentication, you can use this option to specify the private key
- ca_cert: If the NTRIP caster uses self signed certs, or you need to use a different CA chain, this option can be used to specify a CA file
-
rtcm_message_packege: Changes the type of ROS RTCM message published by this node. Defaults to
mavros_msgs
, but also supportsrtcm_msgs
Connect to a NTRIP “device”
This is useful if you do not have an internet connection, but do have an NTRIP “device” that you want to receive connections from, such as the MicroStrain 3DM-RTK.
ros2 launch ntrip_client ntrip_serial_device_launch.py
Optional launch parameters:
- port: Serial port that the device is connected on.
- baudrate: Baudrate to connect to the serial port at. Default 115200
-
rtcm_message_packege: Changes the type of ROS RTCM message published by this node. Defaults to
mavros_msgs
, but also supportsrtcm_msgs
Topics
This node currently only has three topics of interest:
-
/rtcm: This node will publish the RTCM corrections received from the server to this topic as RTCM messages. These messages can be consumed by nodes such as the microstrain_inertial_driver
-
NOTE: The type of message can be switched between
mavros_msgs/RTCM
andrtcm_msgs/Message
using thertcm_message_package
parameter
-
NOTE: The type of message can be switched between
- /nmea: This node will subscribe on this topic and receive NMEA sentence messages which it will forward to the NTRIP server. This is always needed when using a virtual NTRIP server or an NTRIP device
-
/fix: This serves the same exact purpose as
/nmea
, but facilitates receiving global position that is not in NMEA format
License
ntrip_client is released under the MIT License - see the LICENSE
file in the source distribution.
Copyright (c) 2024, MicroStrain by HBK
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/LORD-MicroStrain/ntrip_client.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2024-12-18 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
ntrip_client | 1.4.0 |
README
ROS NTRIP Client
Description
ROS node that will communicate with an NTRP caster to receive RTCM connections and publish them on a ROS topic. Also works with virtual NTRIP servers by subscribing to NMEA messages and sending them to the NTRIP server
Important Branches
There are two important branches that you may want to checkout:
- ros – Contains ROS1 implementation for this node.
- ros2 – Contains ROS2 implementation for this node.
Build Instructions
Building from source
-
Install ROS2 and create a workspace: Installing and Configuring Your ROS2 Environment
-
Move the entire ntrip_client folder to the your_workspace/src directory.
-
Install rosdeps for this package:
rosdep install --from-paths ~/your_workspace/src --ignore-src -r -y
-
Build your workspace:
cd ~/your_workspace
colcon build
source ~/your_workspace/install/setup.bash
The source command may need to be run in each terminal prior to launching a ROS node.
Connect to a NTRIP caster or server
This is useful if you have access to an NTRIP caster or server that you want to connect to over the internet.
ros2 launch ntrip_client ntrip_client_launch.py
Optional launch parameters:
- host: Hostname or IP address of the NTRIP server to connect to.
-
port: Port to connect to on the server. Default:
2101
- mountpoint: Mountpoint to connect to on the NTRIP server.
-
ntrip_version: Value to use for the
Ntrip-Version
header in the initial HTTP request to the caster. -
authenticate: Whether to authenticate with the server, or send an unauthenticated request. If set to true,
username
, andpassword
must be supplied. -
username: Username to use when authenticating with the NTRIP server. Only used if
authenticate
is true -
password: Password to use when authenticating with the NTRIP server. Only used if
authenticate
is true - ssl: Whether to connect with SSL. cert, key, and ca_cert options will only take effect if this is true
- cert: If the NTRIP caster is configured to use cert based authentication, you can use this option to specify the client certificate
- key: If the NTRIP caster is configured to use cert based authentication, you can use this option to specify the private key
- ca_cert: If the NTRIP caster uses self signed certs, or you need to use a different CA chain, this option can be used to specify a CA file
-
rtcm_message_packege: Changes the type of ROS RTCM message published by this node. Defaults to
mavros_msgs
, but also supportsrtcm_msgs
Connect to a NTRIP “device”
This is useful if you do not have an internet connection, but do have an NTRIP “device” that you want to receive connections from, such as the MicroStrain 3DM-RTK.
ros2 launch ntrip_client ntrip_serial_device_launch.py
Optional launch parameters:
- port: Serial port that the device is connected on.
- baudrate: Baudrate to connect to the serial port at. Default 115200
-
rtcm_message_packege: Changes the type of ROS RTCM message published by this node. Defaults to
mavros_msgs
, but also supportsrtcm_msgs
Topics
This node currently only has three topics of interest:
-
/rtcm: This node will publish the RTCM corrections received from the server to this topic as RTCM messages. These messages can be consumed by nodes such as the microstrain_inertial_driver
-
NOTE: The type of message can be switched between
mavros_msgs/RTCM
andrtcm_msgs/Message
using thertcm_message_package
parameter
-
NOTE: The type of message can be switched between
- /nmea: This node will subscribe on this topic and receive NMEA sentence messages which it will forward to the NTRIP server. This is always needed when using a virtual NTRIP server or an NTRIP device
-
/fix: This serves the same exact purpose as
/nmea
, but facilitates receiving global position that is not in NMEA format
License
ntrip_client is released under the MIT License - see the LICENSE
file in the source distribution.
Copyright (c) 2024, MicroStrain by HBK
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/LORD-MicroStrain/ntrip_client.git |
VCS Type | git |
VCS Version | ros |
Last Updated | 2024-12-18 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
ntrip_client | 1.4.0 |
README
ROS NTRIP Client
Description
ROS node that will communicate with an NTRIP caster to receive RTCM connections and publish them on a ROS topic. Also works with network/VRS mountpoints by subscribing to NMEA messages and sending them to the NTRIP server
Important Branches
There are two important branches that you may want to checkout:
- ros – Contains ROS1 implementation for this node.
- ros2 – Contains ROS2 implementation for this node.
Build Instructions
Building from source
-
Install ROS and create a workspace: Installing and Configuring Your ROS Environment
-
Move the entire ntrip_client folder to the your_workspace/src directory.
-
Install rosdeps for this package:
rosdep install --from-paths ~/your_workspace/src --ignore-src -r -y
-
Build your workspace:
cd ~/your_workspace
catkin_make
source ~/your_workspace/devel/setup.bash
The source command may need to be run in each terminal prior to launching a ROS node.
Launch the node and publish data
The following command will launch the node. Keep in mind each instance needs to be run in a separate terminal.
roslaunch ntrip_client ntrip_client.launch
Optional launch parameters:
- host: Hostname or IP address of the NTRIP server to connect to.
-
port: Port to connect to on the server. Default:
2101
- mountpoint: Mountpoint to connect to on the NTRIP server.
-
ntrip_version: Value to use for the
Ntrip-Version
header in the initial HTTP request to the caster. -
authenticate: Whether to authenticate with the server, or send an unauthenticated request. If set to true,
username
, andpassword
must be supplied. -
username: Username to use when authenticating with the NTRIP server. Only used if
authenticate
is true -
password: Password to use when authenticating with the NTRIP server. Only used if
authenticate
is true - ssl: Whether to connect with SSL. cert, key, and ca_cert options will only take effect if this is true
- cert: If the NTRIP caster is configured to use cert based authentication, you can use this option to specify the client certificate
- key: If the NTRIP caster is configured to use cert based authentication, you can use this option to specify the private key
- ca_cert: If the NTRIP caster uses self signed certs, or you need to use a different CA chain, this option can be used to specify a CA file
-
rtcm_message_packege: Changes the type of ROS RTCM message published by this node. Defaults to
mavros_msgs
, but also supportsrtcm_msgs
Topics
This node currently only has two topics of interest:
-
/rtcm: This node will publish the RTCM corrections received from the server to this topic as RTCM messages. These messages can be consumed by nodes such as the microstrain_inertial_driver
-
NOTE: The type of message can be switched between
mavros_msgs/RTCM
andrtcm_msgs/Message
using thertcm_message_package
parameter
-
NOTE: The type of message can be switched between
- /nmea: This node will subscribe on this topic and receive NMEA sentence messages which it will forward to the NTRIP server. This is only needed when using a virtual NTRIP server
Docker Integration
VSCode
The easiest way to use docker while still using an IDE is to use VSCode as an IDE. Follow the steps below to develop on this repo in a docker container
- Install the following dependencies:
- Open VSCode and install the following plugins:
- Open this directory in a container by following this guide
Make
If you are comfortable working from the command line, the Makefile in the .devcontainer directory
can be used to build a development image, and run a shell inside the docker image. Follow the steps below to setup your environment to use the Makefile
- Install the following dependencies:
- Make
- Docker
-
qemu-user-static (for multiarch builds)
- Run the following command to register the qemu binaries with docker:
docker run --rm --privileged multiarch/qemu-user-static:register
- Run the following command to register the qemu binaries with docker:
The Makefile
exposes the following tasks. They can all be run from the .devcontainer
directory:
-
make build-shell
- Builds the docker image and starts a shell session in the image allowing the user to develop and build the ROS project using common commands such ascatkin_make
-
make clean
- Cleans up after the above two tasks
License
ntrip_client is released under the MIT License - see the LICENSE
file in the source distribution.
Copyright (c) 2021, Parker Hannifin Corp.
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/LORD-MicroStrain/ntrip_client.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2024-12-18 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
ntrip_client | 1.4.0 |
README
ROS NTRIP Client
Description
ROS node that will communicate with an NTRP caster to receive RTCM connections and publish them on a ROS topic. Also works with virtual NTRIP servers by subscribing to NMEA messages and sending them to the NTRIP server
Important Branches
There are two important branches that you may want to checkout:
- ros – Contains ROS1 implementation for this node.
- ros2 – Contains ROS2 implementation for this node.
Build Instructions
Building from source
-
Install ROS2 and create a workspace: Installing and Configuring Your ROS2 Environment
-
Move the entire ntrip_client folder to the your_workspace/src directory.
-
Install rosdeps for this package:
rosdep install --from-paths ~/your_workspace/src --ignore-src -r -y
-
Build your workspace:
cd ~/your_workspace
colcon build
source ~/your_workspace/install/setup.bash
The source command may need to be run in each terminal prior to launching a ROS node.
Connect to a NTRIP caster or server
This is useful if you have access to an NTRIP caster or server that you want to connect to over the internet.
ros2 launch ntrip_client ntrip_client_launch.py
Optional launch parameters:
- host: Hostname or IP address of the NTRIP server to connect to.
-
port: Port to connect to on the server. Default:
2101
- mountpoint: Mountpoint to connect to on the NTRIP server.
-
ntrip_version: Value to use for the
Ntrip-Version
header in the initial HTTP request to the caster. -
authenticate: Whether to authenticate with the server, or send an unauthenticated request. If set to true,
username
, andpassword
must be supplied. -
username: Username to use when authenticating with the NTRIP server. Only used if
authenticate
is true -
password: Password to use when authenticating with the NTRIP server. Only used if
authenticate
is true - ssl: Whether to connect with SSL. cert, key, and ca_cert options will only take effect if this is true
- cert: If the NTRIP caster is configured to use cert based authentication, you can use this option to specify the client certificate
- key: If the NTRIP caster is configured to use cert based authentication, you can use this option to specify the private key
- ca_cert: If the NTRIP caster uses self signed certs, or you need to use a different CA chain, this option can be used to specify a CA file
-
rtcm_message_packege: Changes the type of ROS RTCM message published by this node. Defaults to
mavros_msgs
, but also supportsrtcm_msgs
Connect to a NTRIP “device”
This is useful if you do not have an internet connection, but do have an NTRIP “device” that you want to receive connections from, such as the MicroStrain 3DM-RTK.
ros2 launch ntrip_client ntrip_serial_device_launch.py
Optional launch parameters:
- port: Serial port that the device is connected on.
- baudrate: Baudrate to connect to the serial port at. Default 115200
-
rtcm_message_packege: Changes the type of ROS RTCM message published by this node. Defaults to
mavros_msgs
, but also supportsrtcm_msgs
Topics
This node currently only has three topics of interest:
-
/rtcm: This node will publish the RTCM corrections received from the server to this topic as RTCM messages. These messages can be consumed by nodes such as the microstrain_inertial_driver
-
NOTE: The type of message can be switched between
mavros_msgs/RTCM
andrtcm_msgs/Message
using thertcm_message_package
parameter
-
NOTE: The type of message can be switched between
- /nmea: This node will subscribe on this topic and receive NMEA sentence messages which it will forward to the NTRIP server. This is always needed when using a virtual NTRIP server or an NTRIP device
-
/fix: This serves the same exact purpose as
/nmea
, but facilitates receiving global position that is not in NMEA format
License
ntrip_client is released under the MIT License - see the LICENSE
file in the source distribution.
Copyright (c) 2024, MicroStrain by HBK
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/LORD-MicroStrain/ntrip_client.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2024-12-18 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
ntrip_client | 1.4.0 |
README
ROS NTRIP Client
Description
ROS node that will communicate with an NTRP caster to receive RTCM connections and publish them on a ROS topic. Also works with virtual NTRIP servers by subscribing to NMEA messages and sending them to the NTRIP server
Important Branches
There are two important branches that you may want to checkout:
- ros – Contains ROS1 implementation for this node.
- ros2 – Contains ROS2 implementation for this node.
Build Instructions
Building from source
-
Install ROS2 and create a workspace: Installing and Configuring Your ROS2 Environment
-
Move the entire ntrip_client folder to the your_workspace/src directory.
-
Install rosdeps for this package:
rosdep install --from-paths ~/your_workspace/src --ignore-src -r -y
-
Build your workspace:
cd ~/your_workspace
colcon build
source ~/your_workspace/install/setup.bash
The source command may need to be run in each terminal prior to launching a ROS node.
Connect to a NTRIP caster or server
This is useful if you have access to an NTRIP caster or server that you want to connect to over the internet.
ros2 launch ntrip_client ntrip_client_launch.py
Optional launch parameters:
- host: Hostname or IP address of the NTRIP server to connect to.
-
port: Port to connect to on the server. Default:
2101
- mountpoint: Mountpoint to connect to on the NTRIP server.
-
ntrip_version: Value to use for the
Ntrip-Version
header in the initial HTTP request to the caster. -
authenticate: Whether to authenticate with the server, or send an unauthenticated request. If set to true,
username
, andpassword
must be supplied. -
username: Username to use when authenticating with the NTRIP server. Only used if
authenticate
is true -
password: Password to use when authenticating with the NTRIP server. Only used if
authenticate
is true - ssl: Whether to connect with SSL. cert, key, and ca_cert options will only take effect if this is true
- cert: If the NTRIP caster is configured to use cert based authentication, you can use this option to specify the client certificate
- key: If the NTRIP caster is configured to use cert based authentication, you can use this option to specify the private key
- ca_cert: If the NTRIP caster uses self signed certs, or you need to use a different CA chain, this option can be used to specify a CA file
-
rtcm_message_packege: Changes the type of ROS RTCM message published by this node. Defaults to
mavros_msgs
, but also supportsrtcm_msgs
Connect to a NTRIP “device”
This is useful if you do not have an internet connection, but do have an NTRIP “device” that you want to receive connections from, such as the MicroStrain 3DM-RTK.
ros2 launch ntrip_client ntrip_serial_device_launch.py
Optional launch parameters:
- port: Serial port that the device is connected on.
- baudrate: Baudrate to connect to the serial port at. Default 115200
-
rtcm_message_packege: Changes the type of ROS RTCM message published by this node. Defaults to
mavros_msgs
, but also supportsrtcm_msgs
Topics
This node currently only has three topics of interest:
-
/rtcm: This node will publish the RTCM corrections received from the server to this topic as RTCM messages. These messages can be consumed by nodes such as the microstrain_inertial_driver
-
NOTE: The type of message can be switched between
mavros_msgs/RTCM
andrtcm_msgs/Message
using thertcm_message_package
parameter
-
NOTE: The type of message can be switched between
- /nmea: This node will subscribe on this topic and receive NMEA sentence messages which it will forward to the NTRIP server. This is always needed when using a virtual NTRIP server or an NTRIP device
-
/fix: This serves the same exact purpose as
/nmea
, but facilitates receiving global position that is not in NMEA format
License
ntrip_client is released under the MIT License - see the LICENSE
file in the source distribution.
Copyright (c) 2024, MicroStrain by HBK
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/LORD-MicroStrain/ntrip_client.git |
VCS Type | git |
VCS Version | ros2 |
Last Updated | 2024-12-18 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
ntrip_client | 1.4.0 |
README
ROS NTRIP Client
Description
ROS node that will communicate with an NTRP caster to receive RTCM connections and publish them on a ROS topic. Also works with virtual NTRIP servers by subscribing to NMEA messages and sending them to the NTRIP server
Important Branches
There are two important branches that you may want to checkout:
- ros – Contains ROS1 implementation for this node.
- ros2 – Contains ROS2 implementation for this node.
Build Instructions
Building from source
-
Install ROS2 and create a workspace: Installing and Configuring Your ROS2 Environment
-
Move the entire ntrip_client folder to the your_workspace/src directory.
-
Install rosdeps for this package:
rosdep install --from-paths ~/your_workspace/src --ignore-src -r -y
-
Build your workspace:
cd ~/your_workspace
colcon build
source ~/your_workspace/install/setup.bash
The source command may need to be run in each terminal prior to launching a ROS node.
Connect to a NTRIP caster or server
This is useful if you have access to an NTRIP caster or server that you want to connect to over the internet.
ros2 launch ntrip_client ntrip_client_launch.py
Optional launch parameters:
- host: Hostname or IP address of the NTRIP server to connect to.
-
port: Port to connect to on the server. Default:
2101
- mountpoint: Mountpoint to connect to on the NTRIP server.
-
ntrip_version: Value to use for the
Ntrip-Version
header in the initial HTTP request to the caster. -
authenticate: Whether to authenticate with the server, or send an unauthenticated request. If set to true,
username
, andpassword
must be supplied. -
username: Username to use when authenticating with the NTRIP server. Only used if
authenticate
is true -
password: Password to use when authenticating with the NTRIP server. Only used if
authenticate
is true - ssl: Whether to connect with SSL. cert, key, and ca_cert options will only take effect if this is true
- cert: If the NTRIP caster is configured to use cert based authentication, you can use this option to specify the client certificate
- key: If the NTRIP caster is configured to use cert based authentication, you can use this option to specify the private key
- ca_cert: If the NTRIP caster uses self signed certs, or you need to use a different CA chain, this option can be used to specify a CA file
-
rtcm_message_packege: Changes the type of ROS RTCM message published by this node. Defaults to
mavros_msgs
, but also supportsrtcm_msgs
Connect to a NTRIP “device”
This is useful if you do not have an internet connection, but do have an NTRIP “device” that you want to receive connections from, such as the MicroStrain 3DM-RTK.
ros2 launch ntrip_client ntrip_serial_device_launch.py
Optional launch parameters:
- port: Serial port that the device is connected on.
- baudrate: Baudrate to connect to the serial port at. Default 115200
-
rtcm_message_packege: Changes the type of ROS RTCM message published by this node. Defaults to
mavros_msgs
, but also supportsrtcm_msgs
Topics
This node currently only has three topics of interest:
-
/rtcm: This node will publish the RTCM corrections received from the server to this topic as RTCM messages. These messages can be consumed by nodes such as the microstrain_inertial_driver
-
NOTE: The type of message can be switched between
mavros_msgs/RTCM
andrtcm_msgs/Message
using thertcm_message_package
parameter
-
NOTE: The type of message can be switched between
- /nmea: This node will subscribe on this topic and receive NMEA sentence messages which it will forward to the NTRIP server. This is always needed when using a virtual NTRIP server or an NTRIP device
-
/fix: This serves the same exact purpose as
/nmea
, but facilitates receiving global position that is not in NMEA format
License
ntrip_client is released under the MIT License - see the LICENSE
file in the source distribution.
Copyright (c) 2024, MicroStrain by HBK
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/LORD-MicroStrain/ntrip_client.git |
VCS Type | git |
VCS Version | ros |
Last Updated | 2024-12-18 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
ntrip_client | 1.4.0 |
README
ROS NTRIP Client
Description
ROS node that will communicate with an NTRIP caster to receive RTCM connections and publish them on a ROS topic. Also works with network/VRS mountpoints by subscribing to NMEA messages and sending them to the NTRIP server
Important Branches
There are two important branches that you may want to checkout:
- ros – Contains ROS1 implementation for this node.
- ros2 – Contains ROS2 implementation for this node.
Build Instructions
Building from source
-
Install ROS and create a workspace: Installing and Configuring Your ROS Environment
-
Move the entire ntrip_client folder to the your_workspace/src directory.
-
Install rosdeps for this package:
rosdep install --from-paths ~/your_workspace/src --ignore-src -r -y
-
Build your workspace:
cd ~/your_workspace
catkin_make
source ~/your_workspace/devel/setup.bash
The source command may need to be run in each terminal prior to launching a ROS node.
Launch the node and publish data
The following command will launch the node. Keep in mind each instance needs to be run in a separate terminal.
roslaunch ntrip_client ntrip_client.launch
Optional launch parameters:
- host: Hostname or IP address of the NTRIP server to connect to.
-
port: Port to connect to on the server. Default:
2101
- mountpoint: Mountpoint to connect to on the NTRIP server.
-
ntrip_version: Value to use for the
Ntrip-Version
header in the initial HTTP request to the caster. -
authenticate: Whether to authenticate with the server, or send an unauthenticated request. If set to true,
username
, andpassword
must be supplied. -
username: Username to use when authenticating with the NTRIP server. Only used if
authenticate
is true -
password: Password to use when authenticating with the NTRIP server. Only used if
authenticate
is true - ssl: Whether to connect with SSL. cert, key, and ca_cert options will only take effect if this is true
- cert: If the NTRIP caster is configured to use cert based authentication, you can use this option to specify the client certificate
- key: If the NTRIP caster is configured to use cert based authentication, you can use this option to specify the private key
- ca_cert: If the NTRIP caster uses self signed certs, or you need to use a different CA chain, this option can be used to specify a CA file
-
rtcm_message_packege: Changes the type of ROS RTCM message published by this node. Defaults to
mavros_msgs
, but also supportsrtcm_msgs
Topics
This node currently only has two topics of interest:
-
/rtcm: This node will publish the RTCM corrections received from the server to this topic as RTCM messages. These messages can be consumed by nodes such as the microstrain_inertial_driver
-
NOTE: The type of message can be switched between
mavros_msgs/RTCM
andrtcm_msgs/Message
using thertcm_message_package
parameter
-
NOTE: The type of message can be switched between
- /nmea: This node will subscribe on this topic and receive NMEA sentence messages which it will forward to the NTRIP server. This is only needed when using a virtual NTRIP server
Docker Integration
VSCode
The easiest way to use docker while still using an IDE is to use VSCode as an IDE. Follow the steps below to develop on this repo in a docker container
- Install the following dependencies:
- Open VSCode and install the following plugins:
- Open this directory in a container by following this guide
Make
If you are comfortable working from the command line, the Makefile in the .devcontainer directory
can be used to build a development image, and run a shell inside the docker image. Follow the steps below to setup your environment to use the Makefile
- Install the following dependencies:
- Make
- Docker
-
qemu-user-static (for multiarch builds)
- Run the following command to register the qemu binaries with docker:
docker run --rm --privileged multiarch/qemu-user-static:register
- Run the following command to register the qemu binaries with docker:
The Makefile
exposes the following tasks. They can all be run from the .devcontainer
directory:
-
make build-shell
- Builds the docker image and starts a shell session in the image allowing the user to develop and build the ROS project using common commands such ascatkin_make
-
make clean
- Cleans up after the above two tasks
License
ntrip_client is released under the MIT License - see the LICENSE
file in the source distribution.
Copyright (c) 2021, Parker Hannifin Corp.