Repository Summary
Checkout URI | https://github.com/septentrio-gnss/septentrio_gnss_driver.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-06-06 |
Dev Status | MAINTAINED |
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 |
---|---|
septentrio_gnss_driver | 1.4.4 |
README
ROSaic = ROS + mosaic
Overview
This repository hosts drivers for ROS 1 (Melodic and Noetic) and ROS 2 (Foxy, Galactic, Humble, Iron, Rolling, and beyond) - written in C++ - that work with mosaic and AsteRx - two of Septentrio’s cutting-edge GNSS and GNSS/INS receiver families - and beyond. Both ROS 1 and ROS 2 are supported within one repository.
Main Features:
- Supports Septentrio’s single antenna GNSS, dual antenna GNSS and INS receivers
- Supports serial, TCP/IP and USB connections, the latter being compatible with both serial (RNDIS) and TCP/IP protocols
- Supports several ASCII (including key NMEA ones) messages and SBF (Septentrio Binary Format) blocks
- Reports status of AIM+ (Advanced Interference Mitigation including OSNMA) anti-jamming and anti-spoofing.
- Can publish
nav_msgs/Odometry
message for INS receivers - Can blend SBF blocks
PVTGeodetic
,PosCovGeodetic
,ChannelStatus
,MeasEpoch
,AttEuler
,AttCovEuler
,VelCovGeodetic
andDOP
in order to publishgps_common/GPSFix
andsensor_msgs/NavSatFix
messages - Supports optional axis convention conversion since Septentrio follows the NED convention, whereas ROS is ENU.
- Easy configuration of multiple RTK corrections simultaneously (via NTRIP, TCP/IP stream, or serial)
- Can play back PCAP capture logs for testing purposes
- Tested with the mosaic-X5, mosaic-H, AsteRx-m3 Pro+, AsteRx-SB Pro+ and the AsteRx-SBi3 Pro receiver
- Easy to add support for more log types
Please let the maintainers know of your success or failure in using the driver with other devices so we can update this page appropriately.
Usage
Important notes
Notes Before Usage
+ The driver assumes that our anonymous access to the Rx grants us full control rights. This should be the case by default, and can otherwise be changed with the `setDefaultAccessLevel` command. If user control is in place user credentials can be given by parameters `login.user` and `login.password`. + Note for serial connection: Make sure the user is part of the `dialout` group to have full access to the serial ports. If not, add it for example with `sudo adduser [username] dialout`. + Note for setting hw_flow_control: This is a string parameter, setting it to off without quotes leads to the fact that it is not read in correctly. + Note for setting ant_(aux1)_serial_nr: This is a string parameter, numeric only serial numbers should be put in quotes. If this is not done a warning will be issued and the driver tries to parse it as integer. + Note for usage of NTRIP via USB with virtual ethernet (RNDIS): RNDIS provides a virtual network connection only between the receiver and the PC. First outgoing network access via USB has to be activated, which is explained [here](https://www.youtube.com/watch?v=bUt8cL9Ue1Y). Next setup internet sharing under Linux by setting the connection of the virtual network interface (the name should be something like enx1a3202991545) to "Shared to other computers". + Once the build or binary installation is finished, adapt the `config/rover.yaml` file according to your needs or assemble a new one, examples for GNSS specific parameters `config/gnss.yaml` and INS `config/ins.yaml` are also available. Specify the communication parameters, the ROS messages to be published, the frequency at which the latter should happen etc.ROS 1: Launch the `launch/rover.launch` to use `rover.yaml` or add `param_file_name:=xxx` to use a custom config.
ROS 2: Launch as composition with `ros2 launch septentrio_gnss_driver rover.launch.py` to use `rover.yaml` or add `file_name:=xxx.yaml` to use a custom config. Alternatively launch as node with `ros2 launch septentrio_gnss_driver rover_node.launch.py` to use `rover_node.yaml` or add `file_name:=xxx.yaml` to use a custom config. Specify the communication parameters, the ROS messages to be published, the frequency at which the latter should happen etc. + Besides the aforementioned config file `rover.yaml` containing all parameters, specialized launch files for GNSS `config/gnss.yaml` and INS `config/ins.yaml` respectively contain only the relevant parameters in each case. - NOTE: Unless `configure_rx` is set to `false`, this driver will overwrite the previous values of the parameters, even if the value is left to zero in the "yaml" file. + The driver was developed and tested with firmware versions >= 4.10.0 for GNSS and >= 1.3.2 for INS. Receivers with older firmware versions are supported but some features may not be available. Known limitations are: * GNSS with firmware < 4.10.0 does not support IP over USB. * GNSS with firmware < 4.12.1 does not support OSNMA. * GNSS with firmware < 4.14 does not support PTP server clock. * INS with firmware <= 1.2.0 does not support velocity aiding. * INS with firmware <= 1.2.0 does not support setting of initial heading. * INS with firmware < 1.3.2 does not support NTP. * INS with firmware < 1.4 does not support OSNMA. * INS with firmware < 1.4.1 does not support improved VSM handling allowing for unknown variances. * INS does not support PTP server clock as of now. + Known issues: * UDP over USB: Blocks are sent twice on GNSS with firmware <= 4.12.1 and INS with firmware <= 1.4. For GNSS it is fixed in version 4.14 (released on June 15th 2023), for INS is fixed in 1.4.1 (released November 2023). + If `use_ros_axis_orientation` to `true` axis orientations are converted by the driver between NED (Septentrio: yaw = 0 is north, positive clockwise) and ENU (ROS: yaw = 0 is east, positive counterclockwise). There is no conversion when setting this parameter to `false` and the angles will be consistent with the web GUI in this case. :
``` # Example configuration Settings for the Rover Rx device: tcp://192.168.3.1:28784 serial: baudrate: 921600 hw_flow_control: "off" stream_device: tcp: ip_server: "" port: 0 udp: ip_server: "" port: 0 unicast_ip: "" configure_rx: true custom_commands_file: "" login: user: "" password: "" osnma: mode: "off" ntp_server: "" keep_open: true frame_id: gnss imu_frame_id: imu poi_frame_id: base_link vsm_frame_id: vsm aux1_frame_id: aux1 vehicle_frame_id: base_link insert_local_frame: false local_frame_id: odom File truncated at 100 lines [see the full file](https://github.com/septentrio-gnss/septentrio_gnss_driver/tree/master/README.md)
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/septentrio-gnss/septentrio_gnss_driver.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-06-06 |
Dev Status | MAINTAINED |
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 |
---|---|
septentrio_gnss_driver | 1.4.4 |
README
ROSaic = ROS + mosaic
Overview
This repository hosts drivers for ROS 1 (Melodic and Noetic) and ROS 2 (Foxy, Galactic, Humble, Iron, Rolling, and beyond) - written in C++ - that work with mosaic and AsteRx - two of Septentrio’s cutting-edge GNSS and GNSS/INS receiver families - and beyond. Both ROS 1 and ROS 2 are supported within one repository.
Main Features:
- Supports Septentrio’s single antenna GNSS, dual antenna GNSS and INS receivers
- Supports serial, TCP/IP and USB connections, the latter being compatible with both serial (RNDIS) and TCP/IP protocols
- Supports several ASCII (including key NMEA ones) messages and SBF (Septentrio Binary Format) blocks
- Reports status of AIM+ (Advanced Interference Mitigation including OSNMA) anti-jamming and anti-spoofing.
- Can publish
nav_msgs/Odometry
message for INS receivers - Can blend SBF blocks
PVTGeodetic
,PosCovGeodetic
,ChannelStatus
,MeasEpoch
,AttEuler
,AttCovEuler
,VelCovGeodetic
andDOP
in order to publishgps_common/GPSFix
andsensor_msgs/NavSatFix
messages - Supports optional axis convention conversion since Septentrio follows the NED convention, whereas ROS is ENU.
- Easy configuration of multiple RTK corrections simultaneously (via NTRIP, TCP/IP stream, or serial)
- Can play back PCAP capture logs for testing purposes
- Tested with the mosaic-X5, mosaic-H, AsteRx-m3 Pro+, AsteRx-SB Pro+ and the AsteRx-SBi3 Pro receiver
- Easy to add support for more log types
Please let the maintainers know of your success or failure in using the driver with other devices so we can update this page appropriately.
Usage
Important notes
Notes Before Usage
+ The driver assumes that our anonymous access to the Rx grants us full control rights. This should be the case by default, and can otherwise be changed with the `setDefaultAccessLevel` command. If user control is in place user credentials can be given by parameters `login.user` and `login.password`. + Note for serial connection: Make sure the user is part of the `dialout` group to have full access to the serial ports. If not, add it for example with `sudo adduser [username] dialout`. + Note for setting hw_flow_control: This is a string parameter, setting it to off without quotes leads to the fact that it is not read in correctly. + Note for setting ant_(aux1)_serial_nr: This is a string parameter, numeric only serial numbers should be put in quotes. If this is not done a warning will be issued and the driver tries to parse it as integer. + Note for usage of NTRIP via USB with virtual ethernet (RNDIS): RNDIS provides a virtual network connection only between the receiver and the PC. First outgoing network access via USB has to be activated, which is explained [here](https://www.youtube.com/watch?v=bUt8cL9Ue1Y). Next setup internet sharing under Linux by setting the connection of the virtual network interface (the name should be something like enx1a3202991545) to "Shared to other computers". + Once the build or binary installation is finished, adapt the `config/rover.yaml` file according to your needs or assemble a new one, examples for GNSS specific parameters `config/gnss.yaml` and INS `config/ins.yaml` are also available. Specify the communication parameters, the ROS messages to be published, the frequency at which the latter should happen etc.ROS 1: Launch the `launch/rover.launch` to use `rover.yaml` or add `param_file_name:=xxx` to use a custom config.
ROS 2: Launch as composition with `ros2 launch septentrio_gnss_driver rover.launch.py` to use `rover.yaml` or add `file_name:=xxx.yaml` to use a custom config. Alternatively launch as node with `ros2 launch septentrio_gnss_driver rover_node.launch.py` to use `rover_node.yaml` or add `file_name:=xxx.yaml` to use a custom config. Specify the communication parameters, the ROS messages to be published, the frequency at which the latter should happen etc. + Besides the aforementioned config file `rover.yaml` containing all parameters, specialized launch files for GNSS `config/gnss.yaml` and INS `config/ins.yaml` respectively contain only the relevant parameters in each case. - NOTE: Unless `configure_rx` is set to `false`, this driver will overwrite the previous values of the parameters, even if the value is left to zero in the "yaml" file. + The driver was developed and tested with firmware versions >= 4.10.0 for GNSS and >= 1.3.2 for INS. Receivers with older firmware versions are supported but some features may not be available. Known limitations are: * GNSS with firmware < 4.10.0 does not support IP over USB. * GNSS with firmware < 4.12.1 does not support OSNMA. * GNSS with firmware < 4.14 does not support PTP server clock. * INS with firmware <= 1.2.0 does not support velocity aiding. * INS with firmware <= 1.2.0 does not support setting of initial heading. * INS with firmware < 1.3.2 does not support NTP. * INS with firmware < 1.4 does not support OSNMA. * INS with firmware < 1.4.1 does not support improved VSM handling allowing for unknown variances. * INS does not support PTP server clock as of now. + Known issues: * UDP over USB: Blocks are sent twice on GNSS with firmware <= 4.12.1 and INS with firmware <= 1.4. For GNSS it is fixed in version 4.14 (released on June 15th 2023), for INS is fixed in 1.4.1 (released November 2023). + If `use_ros_axis_orientation` to `true` axis orientations are converted by the driver between NED (Septentrio: yaw = 0 is north, positive clockwise) and ENU (ROS: yaw = 0 is east, positive counterclockwise). There is no conversion when setting this parameter to `false` and the angles will be consistent with the web GUI in this case. :
``` # Example configuration Settings for the Rover Rx device: tcp://192.168.3.1:28784 serial: baudrate: 921600 hw_flow_control: "off" stream_device: tcp: ip_server: "" port: 0 udp: ip_server: "" port: 0 unicast_ip: "" configure_rx: true custom_commands_file: "" login: user: "" password: "" osnma: mode: "off" ntp_server: "" keep_open: true frame_id: gnss imu_frame_id: imu poi_frame_id: base_link vsm_frame_id: vsm aux1_frame_id: aux1 vehicle_frame_id: base_link insert_local_frame: false local_frame_id: odom File truncated at 100 lines [see the full file](https://github.com/septentrio-gnss/septentrio_gnss_driver/tree/master/README.md)
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/septentrio-gnss/septentrio_gnss_driver.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-06-06 |
Dev Status | MAINTAINED |
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 |
---|---|
septentrio_gnss_driver | 1.4.4 |
README
ROSaic = ROS + mosaic
Overview
This repository hosts drivers for ROS 1 (Melodic and Noetic) and ROS 2 (Foxy, Galactic, Humble, Iron, Rolling, and beyond) - written in C++ - that work with mosaic and AsteRx - two of Septentrio’s cutting-edge GNSS and GNSS/INS receiver families - and beyond. Both ROS 1 and ROS 2 are supported within one repository.
Main Features:
- Supports Septentrio’s single antenna GNSS, dual antenna GNSS and INS receivers
- Supports serial, TCP/IP and USB connections, the latter being compatible with both serial (RNDIS) and TCP/IP protocols
- Supports several ASCII (including key NMEA ones) messages and SBF (Septentrio Binary Format) blocks
- Reports status of AIM+ (Advanced Interference Mitigation including OSNMA) anti-jamming and anti-spoofing.
- Can publish
nav_msgs/Odometry
message for INS receivers - Can blend SBF blocks
PVTGeodetic
,PosCovGeodetic
,ChannelStatus
,MeasEpoch
,AttEuler
,AttCovEuler
,VelCovGeodetic
andDOP
in order to publishgps_common/GPSFix
andsensor_msgs/NavSatFix
messages - Supports optional axis convention conversion since Septentrio follows the NED convention, whereas ROS is ENU.
- Easy configuration of multiple RTK corrections simultaneously (via NTRIP, TCP/IP stream, or serial)
- Can play back PCAP capture logs for testing purposes
- Tested with the mosaic-X5, mosaic-H, AsteRx-m3 Pro+, AsteRx-SB Pro+ and the AsteRx-SBi3 Pro receiver
- Easy to add support for more log types
Please let the maintainers know of your success or failure in using the driver with other devices so we can update this page appropriately.
Usage
Important notes
Notes Before Usage
+ The driver assumes that our anonymous access to the Rx grants us full control rights. This should be the case by default, and can otherwise be changed with the `setDefaultAccessLevel` command. If user control is in place user credentials can be given by parameters `login.user` and `login.password`. + Note for serial connection: Make sure the user is part of the `dialout` group to have full access to the serial ports. If not, add it for example with `sudo adduser [username] dialout`. + Note for setting hw_flow_control: This is a string parameter, setting it to off without quotes leads to the fact that it is not read in correctly. + Note for setting ant_(aux1)_serial_nr: This is a string parameter, numeric only serial numbers should be put in quotes. If this is not done a warning will be issued and the driver tries to parse it as integer. + Note for usage of NTRIP via USB with virtual ethernet (RNDIS): RNDIS provides a virtual network connection only between the receiver and the PC. First outgoing network access via USB has to be activated, which is explained [here](https://www.youtube.com/watch?v=bUt8cL9Ue1Y). Next setup internet sharing under Linux by setting the connection of the virtual network interface (the name should be something like enx1a3202991545) to "Shared to other computers". + Once the build or binary installation is finished, adapt the `config/rover.yaml` file according to your needs or assemble a new one, examples for GNSS specific parameters `config/gnss.yaml` and INS `config/ins.yaml` are also available. Specify the communication parameters, the ROS messages to be published, the frequency at which the latter should happen etc.ROS 1: Launch the `launch/rover.launch` to use `rover.yaml` or add `param_file_name:=xxx` to use a custom config.
ROS 2: Launch as composition with `ros2 launch septentrio_gnss_driver rover.launch.py` to use `rover.yaml` or add `file_name:=xxx.yaml` to use a custom config. Alternatively launch as node with `ros2 launch septentrio_gnss_driver rover_node.launch.py` to use `rover_node.yaml` or add `file_name:=xxx.yaml` to use a custom config. Specify the communication parameters, the ROS messages to be published, the frequency at which the latter should happen etc. + Besides the aforementioned config file `rover.yaml` containing all parameters, specialized launch files for GNSS `config/gnss.yaml` and INS `config/ins.yaml` respectively contain only the relevant parameters in each case. - NOTE: Unless `configure_rx` is set to `false`, this driver will overwrite the previous values of the parameters, even if the value is left to zero in the "yaml" file. + The driver was developed and tested with firmware versions >= 4.10.0 for GNSS and >= 1.3.2 for INS. Receivers with older firmware versions are supported but some features may not be available. Known limitations are: * GNSS with firmware < 4.10.0 does not support IP over USB. * GNSS with firmware < 4.12.1 does not support OSNMA. * GNSS with firmware < 4.14 does not support PTP server clock. * INS with firmware <= 1.2.0 does not support velocity aiding. * INS with firmware <= 1.2.0 does not support setting of initial heading. * INS with firmware < 1.3.2 does not support NTP. * INS with firmware < 1.4 does not support OSNMA. * INS with firmware < 1.4.1 does not support improved VSM handling allowing for unknown variances. * INS does not support PTP server clock as of now. + Known issues: * UDP over USB: Blocks are sent twice on GNSS with firmware <= 4.12.1 and INS with firmware <= 1.4. For GNSS it is fixed in version 4.14 (released on June 15th 2023), for INS is fixed in 1.4.1 (released November 2023). + If `use_ros_axis_orientation` to `true` axis orientations are converted by the driver between NED (Septentrio: yaw = 0 is north, positive clockwise) and ENU (ROS: yaw = 0 is east, positive counterclockwise). There is no conversion when setting this parameter to `false` and the angles will be consistent with the web GUI in this case. :
``` # Example configuration Settings for the Rover Rx device: tcp://192.168.3.1:28784 serial: baudrate: 921600 hw_flow_control: "off" stream_device: tcp: ip_server: "" port: 0 udp: ip_server: "" port: 0 unicast_ip: "" configure_rx: true custom_commands_file: "" login: user: "" password: "" osnma: mode: "off" ntp_server: "" keep_open: true frame_id: gnss imu_frame_id: imu poi_frame_id: base_link vsm_frame_id: vsm aux1_frame_id: aux1 vehicle_frame_id: base_link insert_local_frame: false local_frame_id: odom File truncated at 100 lines [see the full file](https://github.com/septentrio-gnss/septentrio_gnss_driver/tree/master/README.md)
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/septentrio-gnss/septentrio_gnss_driver.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-06-06 |
Dev Status | MAINTAINED |
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 |
---|---|
septentrio_gnss_driver | 1.4.4 |
README
ROSaic = ROS + mosaic
Overview
This repository hosts drivers for ROS 1 (Melodic and Noetic) and ROS 2 (Foxy, Galactic, Humble, Iron, Rolling, and beyond) - written in C++ - that work with mosaic and AsteRx - two of Septentrio’s cutting-edge GNSS and GNSS/INS receiver families - and beyond. Both ROS 1 and ROS 2 are supported within one repository.
Main Features:
- Supports Septentrio’s single antenna GNSS, dual antenna GNSS and INS receivers
- Supports serial, TCP/IP and USB connections, the latter being compatible with both serial (RNDIS) and TCP/IP protocols
- Supports several ASCII (including key NMEA ones) messages and SBF (Septentrio Binary Format) blocks
- Reports status of AIM+ (Advanced Interference Mitigation including OSNMA) anti-jamming and anti-spoofing.
- Can publish
nav_msgs/Odometry
message for INS receivers - Can blend SBF blocks
PVTGeodetic
,PosCovGeodetic
,ChannelStatus
,MeasEpoch
,AttEuler
,AttCovEuler
,VelCovGeodetic
andDOP
in order to publishgps_common/GPSFix
andsensor_msgs/NavSatFix
messages - Supports optional axis convention conversion since Septentrio follows the NED convention, whereas ROS is ENU.
- Easy configuration of multiple RTK corrections simultaneously (via NTRIP, TCP/IP stream, or serial)
- Can play back PCAP capture logs for testing purposes
- Tested with the mosaic-X5, mosaic-H, AsteRx-m3 Pro+, AsteRx-SB Pro+ and the AsteRx-SBi3 Pro receiver
- Easy to add support for more log types
Please let the maintainers know of your success or failure in using the driver with other devices so we can update this page appropriately.
Usage
Important notes
Notes Before Usage
+ The driver assumes that our anonymous access to the Rx grants us full control rights. This should be the case by default, and can otherwise be changed with the `setDefaultAccessLevel` command. If user control is in place user credentials can be given by parameters `login.user` and `login.password`. + Note for serial connection: Make sure the user is part of the `dialout` group to have full access to the serial ports. If not, add it for example with `sudo adduser [username] dialout`. + Note for setting hw_flow_control: This is a string parameter, setting it to off without quotes leads to the fact that it is not read in correctly. + Note for setting ant_(aux1)_serial_nr: This is a string parameter, numeric only serial numbers should be put in quotes. If this is not done a warning will be issued and the driver tries to parse it as integer. + Note for usage of NTRIP via USB with virtual ethernet (RNDIS): RNDIS provides a virtual network connection only between the receiver and the PC. First outgoing network access via USB has to be activated, which is explained [here](https://www.youtube.com/watch?v=bUt8cL9Ue1Y). Next setup internet sharing under Linux by setting the connection of the virtual network interface (the name should be something like enx1a3202991545) to "Shared to other computers". + Once the build or binary installation is finished, adapt the `config/rover.yaml` file according to your needs or assemble a new one, examples for GNSS specific parameters `config/gnss.yaml` and INS `config/ins.yaml` are also available. Specify the communication parameters, the ROS messages to be published, the frequency at which the latter should happen etc.ROS 1: Launch the `launch/rover.launch` to use `rover.yaml` or add `param_file_name:=xxx` to use a custom config.
ROS 2: Launch as composition with `ros2 launch septentrio_gnss_driver rover.launch.py` to use `rover.yaml` or add `file_name:=xxx.yaml` to use a custom config. Alternatively launch as node with `ros2 launch septentrio_gnss_driver rover_node.launch.py` to use `rover_node.yaml` or add `file_name:=xxx.yaml` to use a custom config. Specify the communication parameters, the ROS messages to be published, the frequency at which the latter should happen etc. + Besides the aforementioned config file `rover.yaml` containing all parameters, specialized launch files for GNSS `config/gnss.yaml` and INS `config/ins.yaml` respectively contain only the relevant parameters in each case. - NOTE: Unless `configure_rx` is set to `false`, this driver will overwrite the previous values of the parameters, even if the value is left to zero in the "yaml" file. + The driver was developed and tested with firmware versions >= 4.10.0 for GNSS and >= 1.3.2 for INS. Receivers with older firmware versions are supported but some features may not be available. Known limitations are: * GNSS with firmware < 4.10.0 does not support IP over USB. * GNSS with firmware < 4.12.1 does not support OSNMA. * GNSS with firmware < 4.14 does not support PTP server clock. * INS with firmware <= 1.2.0 does not support velocity aiding. * INS with firmware <= 1.2.0 does not support setting of initial heading. * INS with firmware < 1.3.2 does not support NTP. * INS with firmware < 1.4 does not support OSNMA. * INS with firmware < 1.4.1 does not support improved VSM handling allowing for unknown variances. * INS does not support PTP server clock as of now. + Known issues: * UDP over USB: Blocks are sent twice on GNSS with firmware <= 4.12.1 and INS with firmware <= 1.4. For GNSS it is fixed in version 4.14 (released on June 15th 2023), for INS is fixed in 1.4.1 (released November 2023). + If `use_ros_axis_orientation` to `true` axis orientations are converted by the driver between NED (Septentrio: yaw = 0 is north, positive clockwise) and ENU (ROS: yaw = 0 is east, positive counterclockwise). There is no conversion when setting this parameter to `false` and the angles will be consistent with the web GUI in this case. :
``` # Example configuration Settings for the Rover Rx device: tcp://192.168.3.1:28784 serial: baudrate: 921600 hw_flow_control: "off" stream_device: tcp: ip_server: "" port: 0 udp: ip_server: "" port: 0 unicast_ip: "" configure_rx: true custom_commands_file: "" login: user: "" password: "" osnma: mode: "off" ntp_server: "" keep_open: true frame_id: gnss imu_frame_id: imu poi_frame_id: base_link vsm_frame_id: vsm aux1_frame_id: aux1 vehicle_frame_id: base_link insert_local_frame: false local_frame_id: odom File truncated at 100 lines [see the full file](https://github.com/septentrio-gnss/septentrio_gnss_driver/tree/master/README.md)
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/septentrio-gnss/septentrio_gnss_driver.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-06-06 |
Dev Status | MAINTAINED |
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 |
---|---|
septentrio_gnss_driver | 1.4.4 |
README
ROSaic = ROS + mosaic
Overview
This repository hosts drivers for ROS 1 (Melodic and Noetic) and ROS 2 (Foxy, Galactic, Humble, Iron, Rolling, and beyond) - written in C++ - that work with mosaic and AsteRx - two of Septentrio’s cutting-edge GNSS and GNSS/INS receiver families - and beyond. Both ROS 1 and ROS 2 are supported within one repository.
Main Features:
- Supports Septentrio’s single antenna GNSS, dual antenna GNSS and INS receivers
- Supports serial, TCP/IP and USB connections, the latter being compatible with both serial (RNDIS) and TCP/IP protocols
- Supports several ASCII (including key NMEA ones) messages and SBF (Septentrio Binary Format) blocks
- Reports status of AIM+ (Advanced Interference Mitigation including OSNMA) anti-jamming and anti-spoofing.
- Can publish
nav_msgs/Odometry
message for INS receivers - Can blend SBF blocks
PVTGeodetic
,PosCovGeodetic
,ChannelStatus
,MeasEpoch
,AttEuler
,AttCovEuler
,VelCovGeodetic
andDOP
in order to publishgps_common/GPSFix
andsensor_msgs/NavSatFix
messages - Supports optional axis convention conversion since Septentrio follows the NED convention, whereas ROS is ENU.
- Easy configuration of multiple RTK corrections simultaneously (via NTRIP, TCP/IP stream, or serial)
- Can play back PCAP capture logs for testing purposes
- Tested with the mosaic-X5, mosaic-H, AsteRx-m3 Pro+, AsteRx-SB Pro+ and the AsteRx-SBi3 Pro receiver
- Easy to add support for more log types
Please let the maintainers know of your success or failure in using the driver with other devices so we can update this page appropriately.
Usage
Important notes
Notes Before Usage
+ The driver assumes that our anonymous access to the Rx grants us full control rights. This should be the case by default, and can otherwise be changed with the `setDefaultAccessLevel` command. If user control is in place user credentials can be given by parameters `login.user` and `login.password`. + Note for serial connection: Make sure the user is part of the `dialout` group to have full access to the serial ports. If not, add it for example with `sudo adduser [username] dialout`. + Note for setting hw_flow_control: This is a string parameter, setting it to off without quotes leads to the fact that it is not read in correctly. + Note for setting ant_(aux1)_serial_nr: This is a string parameter, numeric only serial numbers should be put in quotes. If this is not done a warning will be issued and the driver tries to parse it as integer. + Note for usage of NTRIP via USB with virtual ethernet (RNDIS): RNDIS provides a virtual network connection only between the receiver and the PC. First outgoing network access via USB has to be activated, which is explained [here](https://www.youtube.com/watch?v=bUt8cL9Ue1Y). Next setup internet sharing under Linux by setting the connection of the virtual network interface (the name should be something like enx1a3202991545) to "Shared to other computers". + Once the build or binary installation is finished, adapt the `config/rover.yaml` file according to your needs or assemble a new one, examples for GNSS specific parameters `config/gnss.yaml` and INS `config/ins.yaml` are also available. Specify the communication parameters, the ROS messages to be published, the frequency at which the latter should happen etc.ROS 1: Launch the `launch/rover.launch` to use `rover.yaml` or add `param_file_name:=xxx` to use a custom config.
ROS 2: Launch as composition with `ros2 launch septentrio_gnss_driver rover.launch.py` to use `rover.yaml` or add `file_name:=xxx.yaml` to use a custom config. Alternatively launch as node with `ros2 launch septentrio_gnss_driver rover_node.launch.py` to use `rover_node.yaml` or add `file_name:=xxx.yaml` to use a custom config. Specify the communication parameters, the ROS messages to be published, the frequency at which the latter should happen etc. + Besides the aforementioned config file `rover.yaml` containing all parameters, specialized launch files for GNSS `config/gnss.yaml` and INS `config/ins.yaml` respectively contain only the relevant parameters in each case. - NOTE: Unless `configure_rx` is set to `false`, this driver will overwrite the previous values of the parameters, even if the value is left to zero in the "yaml" file. + The driver was developed and tested with firmware versions >= 4.10.0 for GNSS and >= 1.3.2 for INS. Receivers with older firmware versions are supported but some features may not be available. Known limitations are: * GNSS with firmware < 4.10.0 does not support IP over USB. * GNSS with firmware < 4.12.1 does not support OSNMA. * GNSS with firmware < 4.14 does not support PTP server clock. * INS with firmware <= 1.2.0 does not support velocity aiding. * INS with firmware <= 1.2.0 does not support setting of initial heading. * INS with firmware < 1.3.2 does not support NTP. * INS with firmware < 1.4 does not support OSNMA. * INS with firmware < 1.4.1 does not support improved VSM handling allowing for unknown variances. * INS does not support PTP server clock as of now. + Known issues: * UDP over USB: Blocks are sent twice on GNSS with firmware <= 4.12.1 and INS with firmware <= 1.4. For GNSS it is fixed in version 4.14 (released on June 15th 2023), for INS is fixed in 1.4.1 (released November 2023). + If `use_ros_axis_orientation` to `true` axis orientations are converted by the driver between NED (Septentrio: yaw = 0 is north, positive clockwise) and ENU (ROS: yaw = 0 is east, positive counterclockwise). There is no conversion when setting this parameter to `false` and the angles will be consistent with the web GUI in this case. :
``` # Example configuration Settings for the Rover Rx device: tcp://192.168.3.1:28784 serial: baudrate: 921600 hw_flow_control: "off" stream_device: tcp: ip_server: "" port: 0 udp: ip_server: "" port: 0 unicast_ip: "" configure_rx: true custom_commands_file: "" login: user: "" password: "" osnma: mode: "off" ntp_server: "" keep_open: true frame_id: gnss imu_frame_id: imu poi_frame_id: base_link vsm_frame_id: vsm aux1_frame_id: aux1 vehicle_frame_id: base_link insert_local_frame: false local_frame_id: odom File truncated at 100 lines [see the full file](https://github.com/septentrio-gnss/septentrio_gnss_driver/tree/master/README.md)
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/septentrio-gnss/septentrio_gnss_driver.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-06-06 |
Dev Status | MAINTAINED |
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 |
---|---|
septentrio_gnss_driver | 1.4.4 |
README
ROSaic = ROS + mosaic
Overview
This repository hosts drivers for ROS 1 (Melodic and Noetic) and ROS 2 (Foxy, Galactic, Humble, Iron, Rolling, and beyond) - written in C++ - that work with mosaic and AsteRx - two of Septentrio’s cutting-edge GNSS and GNSS/INS receiver families - and beyond. Both ROS 1 and ROS 2 are supported within one repository.
Main Features:
- Supports Septentrio’s single antenna GNSS, dual antenna GNSS and INS receivers
- Supports serial, TCP/IP and USB connections, the latter being compatible with both serial (RNDIS) and TCP/IP protocols
- Supports several ASCII (including key NMEA ones) messages and SBF (Septentrio Binary Format) blocks
- Reports status of AIM+ (Advanced Interference Mitigation including OSNMA) anti-jamming and anti-spoofing.
- Can publish
nav_msgs/Odometry
message for INS receivers - Can blend SBF blocks
PVTGeodetic
,PosCovGeodetic
,ChannelStatus
,MeasEpoch
,AttEuler
,AttCovEuler
,VelCovGeodetic
andDOP
in order to publishgps_common/GPSFix
andsensor_msgs/NavSatFix
messages - Supports optional axis convention conversion since Septentrio follows the NED convention, whereas ROS is ENU.
- Easy configuration of multiple RTK corrections simultaneously (via NTRIP, TCP/IP stream, or serial)
- Can play back PCAP capture logs for testing purposes
- Tested with the mosaic-X5, mosaic-H, AsteRx-m3 Pro+, AsteRx-SB Pro+ and the AsteRx-SBi3 Pro receiver
- Easy to add support for more log types
Please let the maintainers know of your success or failure in using the driver with other devices so we can update this page appropriately.
Usage
Important notes
Notes Before Usage
+ The driver assumes that our anonymous access to the Rx grants us full control rights. This should be the case by default, and can otherwise be changed with the `setDefaultAccessLevel` command. If user control is in place user credentials can be given by parameters `login.user` and `login.password`. + Note for serial connection: Make sure the user is part of the `dialout` group to have full access to the serial ports. If not, add it for example with `sudo adduser [username] dialout`. + Note for setting hw_flow_control: This is a string parameter, setting it to off without quotes leads to the fact that it is not read in correctly. + Note for setting ant_(aux1)_serial_nr: This is a string parameter, numeric only serial numbers should be put in quotes. If this is not done a warning will be issued and the driver tries to parse it as integer. + Note for usage of NTRIP via USB with virtual ethernet (RNDIS): RNDIS provides a virtual network connection only between the receiver and the PC. First outgoing network access via USB has to be activated, which is explained [here](https://www.youtube.com/watch?v=bUt8cL9Ue1Y). Next setup internet sharing under Linux by setting the connection of the virtual network interface (the name should be something like enx1a3202991545) to "Shared to other computers". + Once the build or binary installation is finished, adapt the `config/rover.yaml` file according to your needs or assemble a new one, examples for GNSS specific parameters `config/gnss.yaml` and INS `config/ins.yaml` are also available. Specify the communication parameters, the ROS messages to be published, the frequency at which the latter should happen etc.ROS 1: Launch the `launch/rover.launch` to use `rover.yaml` or add `param_file_name:=xxx` to use a custom config.
ROS 2: Launch as composition with `ros2 launch septentrio_gnss_driver rover.launch.py` to use `rover.yaml` or add `file_name:=xxx.yaml` to use a custom config. Alternatively launch as node with `ros2 launch septentrio_gnss_driver rover_node.launch.py` to use `rover_node.yaml` or add `file_name:=xxx.yaml` to use a custom config. Specify the communication parameters, the ROS messages to be published, the frequency at which the latter should happen etc. + Besides the aforementioned config file `rover.yaml` containing all parameters, specialized launch files for GNSS `config/gnss.yaml` and INS `config/ins.yaml` respectively contain only the relevant parameters in each case. - NOTE: Unless `configure_rx` is set to `false`, this driver will overwrite the previous values of the parameters, even if the value is left to zero in the "yaml" file. + The driver was developed and tested with firmware versions >= 4.10.0 for GNSS and >= 1.3.2 for INS. Receivers with older firmware versions are supported but some features may not be available. Known limitations are: * GNSS with firmware < 4.10.0 does not support IP over USB. * GNSS with firmware < 4.12.1 does not support OSNMA. * GNSS with firmware < 4.14 does not support PTP server clock. * INS with firmware <= 1.2.0 does not support velocity aiding. * INS with firmware <= 1.2.0 does not support setting of initial heading. * INS with firmware < 1.3.2 does not support NTP. * INS with firmware < 1.4 does not support OSNMA. * INS with firmware < 1.4.1 does not support improved VSM handling allowing for unknown variances. * INS does not support PTP server clock as of now. + Known issues: * UDP over USB: Blocks are sent twice on GNSS with firmware <= 4.12.1 and INS with firmware <= 1.4. For GNSS it is fixed in version 4.14 (released on June 15th 2023), for INS is fixed in 1.4.1 (released November 2023). + If `use_ros_axis_orientation` to `true` axis orientations are converted by the driver between NED (Septentrio: yaw = 0 is north, positive clockwise) and ENU (ROS: yaw = 0 is east, positive counterclockwise). There is no conversion when setting this parameter to `false` and the angles will be consistent with the web GUI in this case. :
``` # Example configuration Settings for the Rover Rx device: tcp://192.168.3.1:28784 serial: baudrate: 921600 hw_flow_control: "off" stream_device: tcp: ip_server: "" port: 0 udp: ip_server: "" port: 0 unicast_ip: "" configure_rx: true custom_commands_file: "" login: user: "" password: "" osnma: mode: "off" ntp_server: "" keep_open: true frame_id: gnss imu_frame_id: imu poi_frame_id: base_link vsm_frame_id: vsm aux1_frame_id: aux1 vehicle_frame_id: base_link insert_local_frame: false local_frame_id: odom File truncated at 100 lines [see the full file](https://github.com/septentrio-gnss/septentrio_gnss_driver/tree/master/README.md)
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/septentrio-gnss/septentrio_gnss_driver.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-06-06 |
Dev Status | MAINTAINED |
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 |
---|---|
septentrio_gnss_driver | 1.4.4 |
README
ROSaic = ROS + mosaic
Overview
This repository hosts drivers for ROS 1 (Melodic and Noetic) and ROS 2 (Foxy, Galactic, Humble, Iron, Rolling, and beyond) - written in C++ - that work with mosaic and AsteRx - two of Septentrio’s cutting-edge GNSS and GNSS/INS receiver families - and beyond. Both ROS 1 and ROS 2 are supported within one repository.
Main Features:
- Supports Septentrio’s single antenna GNSS, dual antenna GNSS and INS receivers
- Supports serial, TCP/IP and USB connections, the latter being compatible with both serial (RNDIS) and TCP/IP protocols
- Supports several ASCII (including key NMEA ones) messages and SBF (Septentrio Binary Format) blocks
- Reports status of AIM+ (Advanced Interference Mitigation including OSNMA) anti-jamming and anti-spoofing.
- Can publish
nav_msgs/Odometry
message for INS receivers - Can blend SBF blocks
PVTGeodetic
,PosCovGeodetic
,ChannelStatus
,MeasEpoch
,AttEuler
,AttCovEuler
,VelCovGeodetic
andDOP
in order to publishgps_common/GPSFix
andsensor_msgs/NavSatFix
messages - Supports optional axis convention conversion since Septentrio follows the NED convention, whereas ROS is ENU.
- Easy configuration of multiple RTK corrections simultaneously (via NTRIP, TCP/IP stream, or serial)
- Can play back PCAP capture logs for testing purposes
- Tested with the mosaic-X5, mosaic-H, AsteRx-m3 Pro+, AsteRx-SB Pro+ and the AsteRx-SBi3 Pro receiver
- Easy to add support for more log types
Please let the maintainers know of your success or failure in using the driver with other devices so we can update this page appropriately.
Usage
Important notes
Notes Before Usage
+ The driver assumes that our anonymous access to the Rx grants us full control rights. This should be the case by default, and can otherwise be changed with the `setDefaultAccessLevel` command. If user control is in place user credentials can be given by parameters `login.user` and `login.password`. + Note for serial connection: Make sure the user is part of the `dialout` group to have full access to the serial ports. If not, add it for example with `sudo adduser [username] dialout`. + Note for setting hw_flow_control: This is a string parameter, setting it to off without quotes leads to the fact that it is not read in correctly. + Note for setting ant_(aux1)_serial_nr: This is a string parameter, numeric only serial numbers should be put in quotes. If this is not done a warning will be issued and the driver tries to parse it as integer. + Note for usage of NTRIP via USB with virtual ethernet (RNDIS): RNDIS provides a virtual network connection only between the receiver and the PC. First outgoing network access via USB has to be activated, which is explained [here](https://www.youtube.com/watch?v=bUt8cL9Ue1Y). Next setup internet sharing under Linux by setting the connection of the virtual network interface (the name should be something like enx1a3202991545) to "Shared to other computers". + Once the build or binary installation is finished, adapt the `config/rover.yaml` file according to your needs or assemble a new one, examples for GNSS specific parameters `config/gnss.yaml` and INS `config/ins.yaml` are also available. Specify the communication parameters, the ROS messages to be published, the frequency at which the latter should happen etc.ROS 1: Launch the `launch/rover.launch` to use `rover.yaml` or add `param_file_name:=xxx` to use a custom config.
ROS 2: Launch as composition with `ros2 launch septentrio_gnss_driver rover.launch.py` to use `rover.yaml` or add `file_name:=xxx.yaml` to use a custom config. Alternatively launch as node with `ros2 launch septentrio_gnss_driver rover_node.launch.py` to use `rover_node.yaml` or add `file_name:=xxx.yaml` to use a custom config. Specify the communication parameters, the ROS messages to be published, the frequency at which the latter should happen etc. + Besides the aforementioned config file `rover.yaml` containing all parameters, specialized launch files for GNSS `config/gnss.yaml` and INS `config/ins.yaml` respectively contain only the relevant parameters in each case. - NOTE: Unless `configure_rx` is set to `false`, this driver will overwrite the previous values of the parameters, even if the value is left to zero in the "yaml" file. + The driver was developed and tested with firmware versions >= 4.10.0 for GNSS and >= 1.3.2 for INS. Receivers with older firmware versions are supported but some features may not be available. Known limitations are: * GNSS with firmware < 4.10.0 does not support IP over USB. * GNSS with firmware < 4.12.1 does not support OSNMA. * GNSS with firmware < 4.14 does not support PTP server clock. * INS with firmware <= 1.2.0 does not support velocity aiding. * INS with firmware <= 1.2.0 does not support setting of initial heading. * INS with firmware < 1.3.2 does not support NTP. * INS with firmware < 1.4 does not support OSNMA. * INS with firmware < 1.4.1 does not support improved VSM handling allowing for unknown variances. * INS does not support PTP server clock as of now. + Known issues: * UDP over USB: Blocks are sent twice on GNSS with firmware <= 4.12.1 and INS with firmware <= 1.4. For GNSS it is fixed in version 4.14 (released on June 15th 2023), for INS is fixed in 1.4.1 (released November 2023). + If `use_ros_axis_orientation` to `true` axis orientations are converted by the driver between NED (Septentrio: yaw = 0 is north, positive clockwise) and ENU (ROS: yaw = 0 is east, positive counterclockwise). There is no conversion when setting this parameter to `false` and the angles will be consistent with the web GUI in this case. :
``` # Example configuration Settings for the Rover Rx device: tcp://192.168.3.1:28784 serial: baudrate: 921600 hw_flow_control: "off" stream_device: tcp: ip_server: "" port: 0 udp: ip_server: "" port: 0 unicast_ip: "" configure_rx: true custom_commands_file: "" login: user: "" password: "" osnma: mode: "off" ntp_server: "" keep_open: true frame_id: gnss imu_frame_id: imu poi_frame_id: base_link vsm_frame_id: vsm aux1_frame_id: aux1 vehicle_frame_id: base_link insert_local_frame: false local_frame_id: odom File truncated at 100 lines [see the full file](https://github.com/septentrio-gnss/septentrio_gnss_driver/tree/master/README.md)