![]() |
ublox_dgnss repositorygps ublox ubx gps-location gps-data ros2 high-precision ntripcaster dgnss ntripclient ntrip_client_node ublox_dgnss ublox_dgnss_node ublox_nav_sat_fix_hp_node ublox_ubx_interfaces ublox_ubx_msgs |
Repository Summary
Description | This usb based ROS2 driver is focused on UBLOX UBX messaging, for ZED-X20P, ZED-F9P and ZED-F9R devices. High precision data is available as well as moving base station configurations. |
Checkout URI | https://github.com/aussierobots/ublox_dgnss.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-15 |
Dev Status | MAINTAINED |
Released | RELEASED |
Tags | gps ublox ubx gps-location gps-data ros2 high-precision ntripcaster dgnss ntripclient |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
ntrip_client_node | 0.6.1 |
ublox_dgnss | 0.6.1 |
ublox_dgnss_node | 0.6.1 |
ublox_nav_sat_fix_hp_node | 0.6.1 |
ublox_ubx_interfaces | 0.6.1 |
ublox_ubx_msgs | 0.6.1 |
README
Presently have an issue with the apt packages which we are tring to resolve. Works if you build locally.
ublox-dgnss
This usb based driver is focused on UBLOX UBX messaging, for a DGNSS rover and base station. High precision data is available.
A moving base station configuration has been added. This package also supports a fixed base station and moving rover use case.
RTCM messages can be delivered externally. Alternately the ntrip_client_node can be utilised to retrieve RTCM messages from a castor to publish /ntrip_client/rtcm
messages which will be received by the ublox_dgnss_node.
Work has started on SPARTN support - basic commands are available to enable it on the device and to confirm that the messages are being used (when delivered to the device).
This driver supports multiple u-blox device families including ZED-F9P, ZED-F9R, and X20P connected via USB, under Ubuntu 22.04/24.04. The driver uses libusb api 1.0 and automatically adapts to different USB architectures (CDC-ACM for F9 family, Vendor-Specific for X20P).
This release works with Rolling, Kilted, Jazzy and Humble.
You may need to create a udev rule as follows:
/etc/udev/rules.d/99-ublox-gnss.rules
# UBLOX ZED-F9P/F9R (CDC-ACM)
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a9", MODE="0666", GROUP="plugdev"
# UBLOX ZED-X20P (CDC-ACM) - SUPPORTED
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01ab", MODE="0666", GROUP="plugdev"
# UBLOX X20P UART1 (Vendor-Specific) - NOT SUPPORTED
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="050c", MODE="0666", GROUP="plugdev"
# UBLOX X20P UART2 (Vendor-Specific) - NOT SUPPORTED
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="050d", MODE="0666", GROUP="plugdev"
This driver follows the UBX standards used for the ZED-X20P/F9P/F9R as documented in the X20P intergration manual and X20P interface description. Earlier manual versions are available on the u-blox website.
It implements a subset of the specification related to achieving high precision output as a rover and base station. U-center can be used to alter settings. Any configuration parameter changed by this driver, will be applied only in RAM. Upon a restart (hot, cold or warm) or after a hot plug usb attach event, the configuration stored in the driver will be sent to the device.
ZED-X20P support
The UBLOX ZED-X20P has only just been released. There are some differences between the F9P and X20P. On the whole the UBX messages are the same specification but there are some like /ubx_rxm_rtcm
that have been deprecated, on the device, in the manual, in favor of the newer /ubx_rxm_cor
.
⚠️ Important: X20P Interface Limitations
The X20P device presents multiple USB interfaces:
- ✅ Main Interface (0x01ab): Fully supported with F9P/F9R compatibility
- ❌ UART1 Interface (0x050c): Not currently supported
- ❌ UART2 Interface (0x050d): Not currently supported
Use only the main X20P interface (0x01ab) for full functionality. See GitHub Issue #48 for technical details.
Two new launch files with 25 HZ output have been added specific for the X20P main interface:
ros2 launch ublox_dgnss ublox_x20p_rover_hpposllh.launch.py
ros2 launch ublox_dgnss ublox_x20p_rover_hpposllh_navsatfix.launch.py
otherwise all other launch files have been modified such that adding -- DEVICE_FAMILY:=x20p
will enable the launch file and UBLOX NODE to connect to a ZED-X20P main interface. If not added the launch files default to the f9p device family.
Start commands
There are multiple ways to start the node. Its been built using composition. An executable is provider. An example follows which turns off NMEA output at startup.
ros2 run ublox_dgnss_node ublox_dgnss_node --ros-args -p CFG_USBOUTPROT_NMEA:=False
Parameters can be set at launch and some examples are provided to launch high precision pos ecef | llh |
ros2 launch ublox_dgnss ublox_rover_hpposecef.launch.py
ros2 launch ublox_dgnss ublox_rover_hpposllh.launch.py
Services
Four services are provided to reset odo, cold start, warm start and hot start.
ros2 service call /ublox_dgnss/reset_odo ublox_ubx_interfaces/srv/ResetODO
ros2 service call /ublox_dgnss/cold_start ublox_ubx_interfaces/srv/ColdStart '{reset_type: 1}'
ros2 service call /ublox_dgnss/warm_start ublox_ubx_interfaces/srv/WarmStart '{reset_type: 1}'
ros2 service call /ublox_dgnss/hot_start ublox_ubx_interfaces/srv/HotStart '{reset_type: 1}'
Parameters
File truncated at 100 lines see the full file
CONTRIBUTING
![]() |
ublox_dgnss repositorygps ublox ubx gps-location gps-data ros2 high-precision ntripcaster dgnss ntripclient ntrip_client_node ublox_dgnss ublox_dgnss_node ublox_nav_sat_fix_hp_node ublox_ubx_interfaces ublox_ubx_msgs |
Repository Summary
Description | This usb based ROS2 driver is focused on UBLOX UBX messaging, for ZED-X20P, ZED-F9P and ZED-F9R devices. High precision data is available as well as moving base station configurations. |
Checkout URI | https://github.com/aussierobots/ublox_dgnss.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-15 |
Dev Status | MAINTAINED |
Released | RELEASED |
Tags | gps ublox ubx gps-location gps-data ros2 high-precision ntripcaster dgnss ntripclient |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
ntrip_client_node | 0.6.1 |
ublox_dgnss | 0.6.1 |
ublox_dgnss_node | 0.6.1 |
ublox_nav_sat_fix_hp_node | 0.6.1 |
ublox_ubx_interfaces | 0.6.1 |
ublox_ubx_msgs | 0.6.1 |
README
Presently have an issue with the apt packages which we are tring to resolve. Works if you build locally.
ublox-dgnss
This usb based driver is focused on UBLOX UBX messaging, for a DGNSS rover and base station. High precision data is available.
A moving base station configuration has been added. This package also supports a fixed base station and moving rover use case.
RTCM messages can be delivered externally. Alternately the ntrip_client_node can be utilised to retrieve RTCM messages from a castor to publish /ntrip_client/rtcm
messages which will be received by the ublox_dgnss_node.
Work has started on SPARTN support - basic commands are available to enable it on the device and to confirm that the messages are being used (when delivered to the device).
This driver supports multiple u-blox device families including ZED-F9P, ZED-F9R, and X20P connected via USB, under Ubuntu 22.04/24.04. The driver uses libusb api 1.0 and automatically adapts to different USB architectures (CDC-ACM for F9 family, Vendor-Specific for X20P).
This release works with Rolling, Kilted, Jazzy and Humble.
You may need to create a udev rule as follows:
/etc/udev/rules.d/99-ublox-gnss.rules
# UBLOX ZED-F9P/F9R (CDC-ACM)
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a9", MODE="0666", GROUP="plugdev"
# UBLOX ZED-X20P (CDC-ACM) - SUPPORTED
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01ab", MODE="0666", GROUP="plugdev"
# UBLOX X20P UART1 (Vendor-Specific) - NOT SUPPORTED
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="050c", MODE="0666", GROUP="plugdev"
# UBLOX X20P UART2 (Vendor-Specific) - NOT SUPPORTED
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="050d", MODE="0666", GROUP="plugdev"
This driver follows the UBX standards used for the ZED-X20P/F9P/F9R as documented in the X20P intergration manual and X20P interface description. Earlier manual versions are available on the u-blox website.
It implements a subset of the specification related to achieving high precision output as a rover and base station. U-center can be used to alter settings. Any configuration parameter changed by this driver, will be applied only in RAM. Upon a restart (hot, cold or warm) or after a hot plug usb attach event, the configuration stored in the driver will be sent to the device.
ZED-X20P support
The UBLOX ZED-X20P has only just been released. There are some differences between the F9P and X20P. On the whole the UBX messages are the same specification but there are some like /ubx_rxm_rtcm
that have been deprecated, on the device, in the manual, in favor of the newer /ubx_rxm_cor
.
⚠️ Important: X20P Interface Limitations
The X20P device presents multiple USB interfaces:
- ✅ Main Interface (0x01ab): Fully supported with F9P/F9R compatibility
- ❌ UART1 Interface (0x050c): Not currently supported
- ❌ UART2 Interface (0x050d): Not currently supported
Use only the main X20P interface (0x01ab) for full functionality. See GitHub Issue #48 for technical details.
Two new launch files with 25 HZ output have been added specific for the X20P main interface:
ros2 launch ublox_dgnss ublox_x20p_rover_hpposllh.launch.py
ros2 launch ublox_dgnss ublox_x20p_rover_hpposllh_navsatfix.launch.py
otherwise all other launch files have been modified such that adding -- DEVICE_FAMILY:=x20p
will enable the launch file and UBLOX NODE to connect to a ZED-X20P main interface. If not added the launch files default to the f9p device family.
Start commands
There are multiple ways to start the node. Its been built using composition. An executable is provider. An example follows which turns off NMEA output at startup.
ros2 run ublox_dgnss_node ublox_dgnss_node --ros-args -p CFG_USBOUTPROT_NMEA:=False
Parameters can be set at launch and some examples are provided to launch high precision pos ecef | llh |
ros2 launch ublox_dgnss ublox_rover_hpposecef.launch.py
ros2 launch ublox_dgnss ublox_rover_hpposllh.launch.py
Services
Four services are provided to reset odo, cold start, warm start and hot start.
ros2 service call /ublox_dgnss/reset_odo ublox_ubx_interfaces/srv/ResetODO
ros2 service call /ublox_dgnss/cold_start ublox_ubx_interfaces/srv/ColdStart '{reset_type: 1}'
ros2 service call /ublox_dgnss/warm_start ublox_ubx_interfaces/srv/WarmStart '{reset_type: 1}'
ros2 service call /ublox_dgnss/hot_start ublox_ubx_interfaces/srv/HotStart '{reset_type: 1}'
Parameters
File truncated at 100 lines see the full file
CONTRIBUTING
![]() |
ublox_dgnss repositorygps ublox ubx gps-location gps-data ros2 high-precision ntripcaster dgnss ntripclient ntrip_client_node ublox_dgnss ublox_dgnss_node ublox_nav_sat_fix_hp_node ublox_ubx_interfaces ublox_ubx_msgs |
Repository Summary
Description | This usb based ROS2 driver is focused on UBLOX UBX messaging, for ZED-X20P, ZED-F9P and ZED-F9R devices. High precision data is available as well as moving base station configurations. |
Checkout URI | https://github.com/aussierobots/ublox_dgnss.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-15 |
Dev Status | MAINTAINED |
Released | RELEASED |
Tags | gps ublox ubx gps-location gps-data ros2 high-precision ntripcaster dgnss ntripclient |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
ntrip_client_node | 0.6.1 |
ublox_dgnss | 0.6.1 |
ublox_dgnss_node | 0.6.1 |
ublox_nav_sat_fix_hp_node | 0.6.1 |
ublox_ubx_interfaces | 0.6.1 |
ublox_ubx_msgs | 0.6.1 |
README
Presently have an issue with the apt packages which we are tring to resolve. Works if you build locally.
ublox-dgnss
This usb based driver is focused on UBLOX UBX messaging, for a DGNSS rover and base station. High precision data is available.
A moving base station configuration has been added. This package also supports a fixed base station and moving rover use case.
RTCM messages can be delivered externally. Alternately the ntrip_client_node can be utilised to retrieve RTCM messages from a castor to publish /ntrip_client/rtcm
messages which will be received by the ublox_dgnss_node.
Work has started on SPARTN support - basic commands are available to enable it on the device and to confirm that the messages are being used (when delivered to the device).
This driver supports multiple u-blox device families including ZED-F9P, ZED-F9R, and X20P connected via USB, under Ubuntu 22.04/24.04. The driver uses libusb api 1.0 and automatically adapts to different USB architectures (CDC-ACM for F9 family, Vendor-Specific for X20P).
This release works with Rolling, Kilted, Jazzy and Humble.
You may need to create a udev rule as follows:
/etc/udev/rules.d/99-ublox-gnss.rules
# UBLOX ZED-F9P/F9R (CDC-ACM)
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a9", MODE="0666", GROUP="plugdev"
# UBLOX ZED-X20P (CDC-ACM) - SUPPORTED
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01ab", MODE="0666", GROUP="plugdev"
# UBLOX X20P UART1 (Vendor-Specific) - NOT SUPPORTED
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="050c", MODE="0666", GROUP="plugdev"
# UBLOX X20P UART2 (Vendor-Specific) - NOT SUPPORTED
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="050d", MODE="0666", GROUP="plugdev"
This driver follows the UBX standards used for the ZED-X20P/F9P/F9R as documented in the X20P intergration manual and X20P interface description. Earlier manual versions are available on the u-blox website.
It implements a subset of the specification related to achieving high precision output as a rover and base station. U-center can be used to alter settings. Any configuration parameter changed by this driver, will be applied only in RAM. Upon a restart (hot, cold or warm) or after a hot plug usb attach event, the configuration stored in the driver will be sent to the device.
ZED-X20P support
The UBLOX ZED-X20P has only just been released. There are some differences between the F9P and X20P. On the whole the UBX messages are the same specification but there are some like /ubx_rxm_rtcm
that have been deprecated, on the device, in the manual, in favor of the newer /ubx_rxm_cor
.
⚠️ Important: X20P Interface Limitations
The X20P device presents multiple USB interfaces:
- ✅ Main Interface (0x01ab): Fully supported with F9P/F9R compatibility
- ❌ UART1 Interface (0x050c): Not currently supported
- ❌ UART2 Interface (0x050d): Not currently supported
Use only the main X20P interface (0x01ab) for full functionality. See GitHub Issue #48 for technical details.
Two new launch files with 25 HZ output have been added specific for the X20P main interface:
ros2 launch ublox_dgnss ublox_x20p_rover_hpposllh.launch.py
ros2 launch ublox_dgnss ublox_x20p_rover_hpposllh_navsatfix.launch.py
otherwise all other launch files have been modified such that adding -- DEVICE_FAMILY:=x20p
will enable the launch file and UBLOX NODE to connect to a ZED-X20P main interface. If not added the launch files default to the f9p device family.
Start commands
There are multiple ways to start the node. Its been built using composition. An executable is provider. An example follows which turns off NMEA output at startup.
ros2 run ublox_dgnss_node ublox_dgnss_node --ros-args -p CFG_USBOUTPROT_NMEA:=False
Parameters can be set at launch and some examples are provided to launch high precision pos ecef | llh |
ros2 launch ublox_dgnss ublox_rover_hpposecef.launch.py
ros2 launch ublox_dgnss ublox_rover_hpposllh.launch.py
Services
Four services are provided to reset odo, cold start, warm start and hot start.
ros2 service call /ublox_dgnss/reset_odo ublox_ubx_interfaces/srv/ResetODO
ros2 service call /ublox_dgnss/cold_start ublox_ubx_interfaces/srv/ColdStart '{reset_type: 1}'
ros2 service call /ublox_dgnss/warm_start ublox_ubx_interfaces/srv/WarmStart '{reset_type: 1}'
ros2 service call /ublox_dgnss/hot_start ublox_ubx_interfaces/srv/HotStart '{reset_type: 1}'
Parameters
File truncated at 100 lines see the full file
CONTRIBUTING
![]() |
ublox_dgnss repositorygps ublox ubx gps-location gps-data ros2 high-precision ntripcaster dgnss ntripclient ntrip_client_node ublox_dgnss ublox_dgnss_node ublox_nav_sat_fix_hp_node ublox_ubx_interfaces ublox_ubx_msgs |
Repository Summary
Description | This usb based ROS2 driver is focused on UBLOX UBX messaging, for ZED-X20P, ZED-F9P and ZED-F9R devices. High precision data is available as well as moving base station configurations. |
Checkout URI | https://github.com/aussierobots/ublox_dgnss.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-15 |
Dev Status | MAINTAINED |
Released | RELEASED |
Tags | gps ublox ubx gps-location gps-data ros2 high-precision ntripcaster dgnss ntripclient |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
ntrip_client_node | 0.6.1 |
ublox_dgnss | 0.6.1 |
ublox_dgnss_node | 0.6.1 |
ublox_nav_sat_fix_hp_node | 0.6.1 |
ublox_ubx_interfaces | 0.6.1 |
ublox_ubx_msgs | 0.6.1 |
README
Presently have an issue with the apt packages which we are tring to resolve. Works if you build locally.
ublox-dgnss
This usb based driver is focused on UBLOX UBX messaging, for a DGNSS rover and base station. High precision data is available.
A moving base station configuration has been added. This package also supports a fixed base station and moving rover use case.
RTCM messages can be delivered externally. Alternately the ntrip_client_node can be utilised to retrieve RTCM messages from a castor to publish /ntrip_client/rtcm
messages which will be received by the ublox_dgnss_node.
Work has started on SPARTN support - basic commands are available to enable it on the device and to confirm that the messages are being used (when delivered to the device).
This driver supports multiple u-blox device families including ZED-F9P, ZED-F9R, and X20P connected via USB, under Ubuntu 22.04/24.04. The driver uses libusb api 1.0 and automatically adapts to different USB architectures (CDC-ACM for F9 family, Vendor-Specific for X20P).
This release works with Rolling, Kilted, Jazzy and Humble.
You may need to create a udev rule as follows:
/etc/udev/rules.d/99-ublox-gnss.rules
# UBLOX ZED-F9P/F9R (CDC-ACM)
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a9", MODE="0666", GROUP="plugdev"
# UBLOX ZED-X20P (CDC-ACM) - SUPPORTED
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01ab", MODE="0666", GROUP="plugdev"
# UBLOX X20P UART1 (Vendor-Specific) - NOT SUPPORTED
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="050c", MODE="0666", GROUP="plugdev"
# UBLOX X20P UART2 (Vendor-Specific) - NOT SUPPORTED
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="050d", MODE="0666", GROUP="plugdev"
This driver follows the UBX standards used for the ZED-X20P/F9P/F9R as documented in the X20P intergration manual and X20P interface description. Earlier manual versions are available on the u-blox website.
It implements a subset of the specification related to achieving high precision output as a rover and base station. U-center can be used to alter settings. Any configuration parameter changed by this driver, will be applied only in RAM. Upon a restart (hot, cold or warm) or after a hot plug usb attach event, the configuration stored in the driver will be sent to the device.
ZED-X20P support
The UBLOX ZED-X20P has only just been released. There are some differences between the F9P and X20P. On the whole the UBX messages are the same specification but there are some like /ubx_rxm_rtcm
that have been deprecated, on the device, in the manual, in favor of the newer /ubx_rxm_cor
.
⚠️ Important: X20P Interface Limitations
The X20P device presents multiple USB interfaces:
- ✅ Main Interface (0x01ab): Fully supported with F9P/F9R compatibility
- ❌ UART1 Interface (0x050c): Not currently supported
- ❌ UART2 Interface (0x050d): Not currently supported
Use only the main X20P interface (0x01ab) for full functionality. See GitHub Issue #48 for technical details.
Two new launch files with 25 HZ output have been added specific for the X20P main interface:
ros2 launch ublox_dgnss ublox_x20p_rover_hpposllh.launch.py
ros2 launch ublox_dgnss ublox_x20p_rover_hpposllh_navsatfix.launch.py
otherwise all other launch files have been modified such that adding -- DEVICE_FAMILY:=x20p
will enable the launch file and UBLOX NODE to connect to a ZED-X20P main interface. If not added the launch files default to the f9p device family.
Start commands
There are multiple ways to start the node. Its been built using composition. An executable is provider. An example follows which turns off NMEA output at startup.
ros2 run ublox_dgnss_node ublox_dgnss_node --ros-args -p CFG_USBOUTPROT_NMEA:=False
Parameters can be set at launch and some examples are provided to launch high precision pos ecef | llh |
ros2 launch ublox_dgnss ublox_rover_hpposecef.launch.py
ros2 launch ublox_dgnss ublox_rover_hpposllh.launch.py
Services
Four services are provided to reset odo, cold start, warm start and hot start.
ros2 service call /ublox_dgnss/reset_odo ublox_ubx_interfaces/srv/ResetODO
ros2 service call /ublox_dgnss/cold_start ublox_ubx_interfaces/srv/ColdStart '{reset_type: 1}'
ros2 service call /ublox_dgnss/warm_start ublox_ubx_interfaces/srv/WarmStart '{reset_type: 1}'
ros2 service call /ublox_dgnss/hot_start ublox_ubx_interfaces/srv/HotStart '{reset_type: 1}'
Parameters
File truncated at 100 lines see the full file
CONTRIBUTING
![]() |
ublox_dgnss repositorygps ublox ubx gps-location gps-data ros2 high-precision ntripcaster dgnss ntripclient |
![]() |
ublox_dgnss repositorygps ublox ubx gps-location gps-data ros2 high-precision ntripcaster dgnss ntripclient ntrip_client_node ublox_dgnss ublox_dgnss_node ublox_nav_sat_fix_hp_node ublox_ubx_interfaces ublox_ubx_msgs |
Repository Summary
Description | This usb based ROS2 driver is focused on UBLOX UBX messaging, for ZED-X20P, ZED-F9P and ZED-F9R devices. High precision data is available as well as moving base station configurations. |
Checkout URI | https://github.com/aussierobots/ublox_dgnss.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-15 |
Dev Status | MAINTAINED |
Released | RELEASED |
Tags | gps ublox ubx gps-location gps-data ros2 high-precision ntripcaster dgnss ntripclient |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
ntrip_client_node | 0.6.1 |
ublox_dgnss | 0.6.1 |
ublox_dgnss_node | 0.6.1 |
ublox_nav_sat_fix_hp_node | 0.6.1 |
ublox_ubx_interfaces | 0.6.1 |
ublox_ubx_msgs | 0.6.1 |
README
Presently have an issue with the apt packages which we are tring to resolve. Works if you build locally.
ublox-dgnss
This usb based driver is focused on UBLOX UBX messaging, for a DGNSS rover and base station. High precision data is available.
A moving base station configuration has been added. This package also supports a fixed base station and moving rover use case.
RTCM messages can be delivered externally. Alternately the ntrip_client_node can be utilised to retrieve RTCM messages from a castor to publish /ntrip_client/rtcm
messages which will be received by the ublox_dgnss_node.
Work has started on SPARTN support - basic commands are available to enable it on the device and to confirm that the messages are being used (when delivered to the device).
This driver supports multiple u-blox device families including ZED-F9P, ZED-F9R, and X20P connected via USB, under Ubuntu 22.04/24.04. The driver uses libusb api 1.0 and automatically adapts to different USB architectures (CDC-ACM for F9 family, Vendor-Specific for X20P).
This release works with Rolling, Kilted, Jazzy and Humble.
You may need to create a udev rule as follows:
/etc/udev/rules.d/99-ublox-gnss.rules
# UBLOX ZED-F9P/F9R (CDC-ACM)
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a9", MODE="0666", GROUP="plugdev"
# UBLOX ZED-X20P (CDC-ACM) - SUPPORTED
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01ab", MODE="0666", GROUP="plugdev"
# UBLOX X20P UART1 (Vendor-Specific) - NOT SUPPORTED
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="050c", MODE="0666", GROUP="plugdev"
# UBLOX X20P UART2 (Vendor-Specific) - NOT SUPPORTED
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="050d", MODE="0666", GROUP="plugdev"
This driver follows the UBX standards used for the ZED-X20P/F9P/F9R as documented in the X20P intergration manual and X20P interface description. Earlier manual versions are available on the u-blox website.
It implements a subset of the specification related to achieving high precision output as a rover and base station. U-center can be used to alter settings. Any configuration parameter changed by this driver, will be applied only in RAM. Upon a restart (hot, cold or warm) or after a hot plug usb attach event, the configuration stored in the driver will be sent to the device.
ZED-X20P support
The UBLOX ZED-X20P has only just been released. There are some differences between the F9P and X20P. On the whole the UBX messages are the same specification but there are some like /ubx_rxm_rtcm
that have been deprecated, on the device, in the manual, in favor of the newer /ubx_rxm_cor
.
⚠️ Important: X20P Interface Limitations
The X20P device presents multiple USB interfaces:
- ✅ Main Interface (0x01ab): Fully supported with F9P/F9R compatibility
- ❌ UART1 Interface (0x050c): Not currently supported
- ❌ UART2 Interface (0x050d): Not currently supported
Use only the main X20P interface (0x01ab) for full functionality. See GitHub Issue #48 for technical details.
Two new launch files with 25 HZ output have been added specific for the X20P main interface:
ros2 launch ublox_dgnss ublox_x20p_rover_hpposllh.launch.py
ros2 launch ublox_dgnss ublox_x20p_rover_hpposllh_navsatfix.launch.py
otherwise all other launch files have been modified such that adding -- DEVICE_FAMILY:=x20p
will enable the launch file and UBLOX NODE to connect to a ZED-X20P main interface. If not added the launch files default to the f9p device family.
Start commands
There are multiple ways to start the node. Its been built using composition. An executable is provider. An example follows which turns off NMEA output at startup.
ros2 run ublox_dgnss_node ublox_dgnss_node --ros-args -p CFG_USBOUTPROT_NMEA:=False
Parameters can be set at launch and some examples are provided to launch high precision pos ecef | llh |
ros2 launch ublox_dgnss ublox_rover_hpposecef.launch.py
ros2 launch ublox_dgnss ublox_rover_hpposllh.launch.py
Services
Four services are provided to reset odo, cold start, warm start and hot start.
ros2 service call /ublox_dgnss/reset_odo ublox_ubx_interfaces/srv/ResetODO
ros2 service call /ublox_dgnss/cold_start ublox_ubx_interfaces/srv/ColdStart '{reset_type: 1}'
ros2 service call /ublox_dgnss/warm_start ublox_ubx_interfaces/srv/WarmStart '{reset_type: 1}'
ros2 service call /ublox_dgnss/hot_start ublox_ubx_interfaces/srv/HotStart '{reset_type: 1}'
Parameters
File truncated at 100 lines see the full file
CONTRIBUTING
![]() |
ublox_dgnss repositorygps ublox ubx gps-location gps-data ros2 high-precision ntripcaster dgnss ntripclient ntrip_client_node ublox_dgnss ublox_dgnss_node ublox_nav_sat_fix_hp_node ublox_ubx_interfaces ublox_ubx_msgs |
Repository Summary
Description | This usb based ROS2 driver is focused on UBLOX UBX messaging, for ZED-X20P, ZED-F9P and ZED-F9R devices. High precision data is available as well as moving base station configurations. |
Checkout URI | https://github.com/aussierobots/ublox_dgnss.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-15 |
Dev Status | MAINTAINED |
Released | RELEASED |
Tags | gps ublox ubx gps-location gps-data ros2 high-precision ntripcaster dgnss ntripclient |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
ntrip_client_node | 0.6.1 |
ublox_dgnss | 0.6.1 |
ublox_dgnss_node | 0.6.1 |
ublox_nav_sat_fix_hp_node | 0.6.1 |
ublox_ubx_interfaces | 0.6.1 |
ublox_ubx_msgs | 0.6.1 |
README
Presently have an issue with the apt packages which we are tring to resolve. Works if you build locally.
ublox-dgnss
This usb based driver is focused on UBLOX UBX messaging, for a DGNSS rover and base station. High precision data is available.
A moving base station configuration has been added. This package also supports a fixed base station and moving rover use case.
RTCM messages can be delivered externally. Alternately the ntrip_client_node can be utilised to retrieve RTCM messages from a castor to publish /ntrip_client/rtcm
messages which will be received by the ublox_dgnss_node.
Work has started on SPARTN support - basic commands are available to enable it on the device and to confirm that the messages are being used (when delivered to the device).
This driver supports multiple u-blox device families including ZED-F9P, ZED-F9R, and X20P connected via USB, under Ubuntu 22.04/24.04. The driver uses libusb api 1.0 and automatically adapts to different USB architectures (CDC-ACM for F9 family, Vendor-Specific for X20P).
This release works with Rolling, Kilted, Jazzy and Humble.
You may need to create a udev rule as follows:
/etc/udev/rules.d/99-ublox-gnss.rules
# UBLOX ZED-F9P/F9R (CDC-ACM)
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a9", MODE="0666", GROUP="plugdev"
# UBLOX ZED-X20P (CDC-ACM) - SUPPORTED
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01ab", MODE="0666", GROUP="plugdev"
# UBLOX X20P UART1 (Vendor-Specific) - NOT SUPPORTED
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="050c", MODE="0666", GROUP="plugdev"
# UBLOX X20P UART2 (Vendor-Specific) - NOT SUPPORTED
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="050d", MODE="0666", GROUP="plugdev"
This driver follows the UBX standards used for the ZED-X20P/F9P/F9R as documented in the X20P intergration manual and X20P interface description. Earlier manual versions are available on the u-blox website.
It implements a subset of the specification related to achieving high precision output as a rover and base station. U-center can be used to alter settings. Any configuration parameter changed by this driver, will be applied only in RAM. Upon a restart (hot, cold or warm) or after a hot plug usb attach event, the configuration stored in the driver will be sent to the device.
ZED-X20P support
The UBLOX ZED-X20P has only just been released. There are some differences between the F9P and X20P. On the whole the UBX messages are the same specification but there are some like /ubx_rxm_rtcm
that have been deprecated, on the device, in the manual, in favor of the newer /ubx_rxm_cor
.
⚠️ Important: X20P Interface Limitations
The X20P device presents multiple USB interfaces:
- ✅ Main Interface (0x01ab): Fully supported with F9P/F9R compatibility
- ❌ UART1 Interface (0x050c): Not currently supported
- ❌ UART2 Interface (0x050d): Not currently supported
Use only the main X20P interface (0x01ab) for full functionality. See GitHub Issue #48 for technical details.
Two new launch files with 25 HZ output have been added specific for the X20P main interface:
ros2 launch ublox_dgnss ublox_x20p_rover_hpposllh.launch.py
ros2 launch ublox_dgnss ublox_x20p_rover_hpposllh_navsatfix.launch.py
otherwise all other launch files have been modified such that adding -- DEVICE_FAMILY:=x20p
will enable the launch file and UBLOX NODE to connect to a ZED-X20P main interface. If not added the launch files default to the f9p device family.
Start commands
There are multiple ways to start the node. Its been built using composition. An executable is provider. An example follows which turns off NMEA output at startup.
ros2 run ublox_dgnss_node ublox_dgnss_node --ros-args -p CFG_USBOUTPROT_NMEA:=False
Parameters can be set at launch and some examples are provided to launch high precision pos ecef | llh |
ros2 launch ublox_dgnss ublox_rover_hpposecef.launch.py
ros2 launch ublox_dgnss ublox_rover_hpposllh.launch.py
Services
Four services are provided to reset odo, cold start, warm start and hot start.
ros2 service call /ublox_dgnss/reset_odo ublox_ubx_interfaces/srv/ResetODO
ros2 service call /ublox_dgnss/cold_start ublox_ubx_interfaces/srv/ColdStart '{reset_type: 1}'
ros2 service call /ublox_dgnss/warm_start ublox_ubx_interfaces/srv/WarmStart '{reset_type: 1}'
ros2 service call /ublox_dgnss/hot_start ublox_ubx_interfaces/srv/HotStart '{reset_type: 1}'
Parameters
File truncated at 100 lines see the full file
CONTRIBUTING
![]() |
ublox_dgnss repositorygps ublox ubx gps-location gps-data ros2 high-precision ntripcaster dgnss ntripclient |
![]() |
ublox_dgnss repositorygps ublox ubx gps-location gps-data ros2 high-precision ntripcaster dgnss ntripclient |