Repo symbol

gps_umd repository

gps_msgs gps_tools gps_umd gpsd_client

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version ros2-devel
Last Updated 2026-08-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_msgs 3.1.1
gps_tools 3.1.1
gps_umd 3.1.1
gpsd_client 3.1.1

README

gps_umd

This package contains messages for representing data from GPS devices and algorithms for manipulating it. It uses GPSd as the underlying method of reading data from GPS receivers.

Build Status

Item Humble Jazzy Kilted Lyrical Rolling
Build status CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
gps_msgs Released Released Released Released Released
gps_tools Released Released Released Released Released
gpsd_client Released Released Released Released Released

GPSd Integration and Usage

By default, this package is built against the version of GPSd shipped with the Linux distribution the underlying ROS 2 software is built against. However, the gps_umd package supports building against arbitrary versions of GPSd and matching its behavior to the GPSd API version supplied by the library.

Depending on the GPS receiver, GPSd is capable of providing a great deal of information. By default, the package publishes a condensed version of this data as a gps_msgs/GPSFix message. Alternatively, the information may be published as a standard ROS 2 sensor_msgs/NavSatFix message. These messages provide the localization and error estimates that most robots need to operate in most conditions.

gps_umd can also publish the entire set of information provided by GPSd. These messages are in the gps_msgs package and published as GPSDRaw<MAJOR>v<MINOR> types, where <MAJOR> and <MINOR> correspond to the GPSd API version that provides the information. The table below lists the currently support set of GPSd and API versions the system is built and tested against.

GPSd generator

API GPSd revision Message Status
9.0 3.20 GPSDRaw9v0 GPSd API 9.0
9.1 e5279ef52 (unreleased) GPSDRaw9v1 GPSd API 9.1
10.0 3.21 GPSDRaw10v0 GPSd API 10.0
10.1 42f816d59 (unreleased) GPSDRaw10v1 GPSd API 10.1
11.0 3.22 GPSDRaw11v0 GPSd API 11.0
12.0 3.23.1 GPSDRaw12v0 GPSd API 12.0
13.0 264e808c6 (unreleased) GPSDRaw13v0 GPSd API 13.0
14.0 3.26.1 GPSDRaw14v0 GPSd API 14.0
16.0 3.27.3 GPSDRaw16v0 GPSd API 16.0
16.1 3.27.5 GPSDRaw16v1 GPSd API 16.1

Three GPSd API versions are not matched to a GPSd version. These GPSd versions are given as their commit hash instead. To add more version of the GPSd API, see: docs/adding-a-gpsd-api-version.md.

gpsd_client Parameters

The gpsd_client::GPSDClientComponent node accepts the following parameters. Some are used to configure GPSd, and others are used to work around quirks of GPSd with certain hardware. In general, gps_umd attempts to retain the behavior of GPSd as much as possible, and deviate only to match ROS 2 conventions and robot needs.

Parameter Type Default Description
host string localhost Hostname or address of the GPSd server to connect to.
port int 2947 TCP port of the GPSd server.
frame_id string gps frame_id set on the header of published GPSFix and NavSatFix messages.
publish_rate int 10 How often, in Hz, to poll GPSd and publish. Values <= 0 are rejected with a warning and fall back to 1 Hz.
use_gps_time bool true Stamp NavSatFix messages with the time reported by the GPS receiver instead of the current ROS time.
check_fix_by_variance bool false Discard fixes whose reported variances (epx/epy/epv) are not finite. GPSd reports a status of OK even when there is no current fix, as long as there was one previously; this rejects those stale results.
override_augmentation_source bool false When GPSd reports a DGPS fix, always report it as an SBAS fix, whether or not a satellite with an SBAS ID was used in the solution. Useful for receivers that apply SBAS corrections without listing the SBAS satellite in their skyview. Affects both NavSatFix and GPSFix status.
publish_gpsd_raw bool false Also publish a near-verbatim mirror of GPSd’s gps_data_t on gpsd_raw, in a message named after the libgps API this package was built against. Off by default: the message is much larger than GPSFix, and neither the publisher nor its parser is created unless this is set.
publish_gpsd_json bool false Publish every report GPSd sends on gpsd_json, as the raw JSON line. This contains much more than the information published on gpsd_raw, such as RTCM and SUBFRAME data. Only AIS information from GPSd is intentionally omitted.

These node defaults can be overriden by setting a parameter. The file gpsd_client/config/gpsd_client.yaml contains these parameters as well. The launch file gpsd_client-launch.py can load these YAML files for convenience.

Raw GPSd Details

With publish_gpsd_raw set, gpsd_client publishes everything GPSd reports on gpsd_raw, as close to verbatim as a ROS message allows. The type is named after the GPSd C API the package compiled against — gps_msgs/GPSDRaw<MAJOR>v<MINOR>. publish_gpsd_json adds gpsd_json, carrying every report as the raw JSON line generated by GPSd, including the RTCM and SUBFRAME information.

tools/generate_raw_msgs.py automatically converts the data structures in GPSd to these messages and their parsers.

These messages are complex due to the volume of information contained within them and how C structs and unions are mapped to ROS 2 message datatypes. There are also bugs and quirks in different GPSd versions that further complicate this translation. For more information, see the documentation in the following files.

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

```xml

File truncated at 100 lines see the full file

Repo symbol

gps_umd repository

gps_msgs gps_tools gps_umd gpsd_client

ROS Distro
jazzy

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version ros2-devel
Last Updated 2026-08-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_msgs 3.1.1
gps_tools 3.1.1
gps_umd 3.1.1
gpsd_client 3.1.1

README

gps_umd

This package contains messages for representing data from GPS devices and algorithms for manipulating it. It uses GPSd as the underlying method of reading data from GPS receivers.

Build Status

Item Humble Jazzy Kilted Lyrical Rolling
Build status CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
gps_msgs Released Released Released Released Released
gps_tools Released Released Released Released Released
gpsd_client Released Released Released Released Released

GPSd Integration and Usage

By default, this package is built against the version of GPSd shipped with the Linux distribution the underlying ROS 2 software is built against. However, the gps_umd package supports building against arbitrary versions of GPSd and matching its behavior to the GPSd API version supplied by the library.

Depending on the GPS receiver, GPSd is capable of providing a great deal of information. By default, the package publishes a condensed version of this data as a gps_msgs/GPSFix message. Alternatively, the information may be published as a standard ROS 2 sensor_msgs/NavSatFix message. These messages provide the localization and error estimates that most robots need to operate in most conditions.

gps_umd can also publish the entire set of information provided by GPSd. These messages are in the gps_msgs package and published as GPSDRaw<MAJOR>v<MINOR> types, where <MAJOR> and <MINOR> correspond to the GPSd API version that provides the information. The table below lists the currently support set of GPSd and API versions the system is built and tested against.

GPSd generator

API GPSd revision Message Status
9.0 3.20 GPSDRaw9v0 GPSd API 9.0
9.1 e5279ef52 (unreleased) GPSDRaw9v1 GPSd API 9.1
10.0 3.21 GPSDRaw10v0 GPSd API 10.0
10.1 42f816d59 (unreleased) GPSDRaw10v1 GPSd API 10.1
11.0 3.22 GPSDRaw11v0 GPSd API 11.0
12.0 3.23.1 GPSDRaw12v0 GPSd API 12.0
13.0 264e808c6 (unreleased) GPSDRaw13v0 GPSd API 13.0
14.0 3.26.1 GPSDRaw14v0 GPSd API 14.0
16.0 3.27.3 GPSDRaw16v0 GPSd API 16.0
16.1 3.27.5 GPSDRaw16v1 GPSd API 16.1

Three GPSd API versions are not matched to a GPSd version. These GPSd versions are given as their commit hash instead. To add more version of the GPSd API, see: docs/adding-a-gpsd-api-version.md.

gpsd_client Parameters

The gpsd_client::GPSDClientComponent node accepts the following parameters. Some are used to configure GPSd, and others are used to work around quirks of GPSd with certain hardware. In general, gps_umd attempts to retain the behavior of GPSd as much as possible, and deviate only to match ROS 2 conventions and robot needs.

Parameter Type Default Description
host string localhost Hostname or address of the GPSd server to connect to.
port int 2947 TCP port of the GPSd server.
frame_id string gps frame_id set on the header of published GPSFix and NavSatFix messages.
publish_rate int 10 How often, in Hz, to poll GPSd and publish. Values <= 0 are rejected with a warning and fall back to 1 Hz.
use_gps_time bool true Stamp NavSatFix messages with the time reported by the GPS receiver instead of the current ROS time.
check_fix_by_variance bool false Discard fixes whose reported variances (epx/epy/epv) are not finite. GPSd reports a status of OK even when there is no current fix, as long as there was one previously; this rejects those stale results.
override_augmentation_source bool false When GPSd reports a DGPS fix, always report it as an SBAS fix, whether or not a satellite with an SBAS ID was used in the solution. Useful for receivers that apply SBAS corrections without listing the SBAS satellite in their skyview. Affects both NavSatFix and GPSFix status.
publish_gpsd_raw bool false Also publish a near-verbatim mirror of GPSd’s gps_data_t on gpsd_raw, in a message named after the libgps API this package was built against. Off by default: the message is much larger than GPSFix, and neither the publisher nor its parser is created unless this is set.
publish_gpsd_json bool false Publish every report GPSd sends on gpsd_json, as the raw JSON line. This contains much more than the information published on gpsd_raw, such as RTCM and SUBFRAME data. Only AIS information from GPSd is intentionally omitted.

These node defaults can be overriden by setting a parameter. The file gpsd_client/config/gpsd_client.yaml contains these parameters as well. The launch file gpsd_client-launch.py can load these YAML files for convenience.

Raw GPSd Details

With publish_gpsd_raw set, gpsd_client publishes everything GPSd reports on gpsd_raw, as close to verbatim as a ROS message allows. The type is named after the GPSd C API the package compiled against — gps_msgs/GPSDRaw<MAJOR>v<MINOR>. publish_gpsd_json adds gpsd_json, carrying every report as the raw JSON line generated by GPSd, including the RTCM and SUBFRAME information.

tools/generate_raw_msgs.py automatically converts the data structures in GPSd to these messages and their parsers.

These messages are complex due to the volume of information contained within them and how C structs and unions are mapped to ROS 2 message datatypes. There are also bugs and quirks in different GPSd versions that further complicate this translation. For more information, see the documentation in the following files.

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

```xml

File truncated at 100 lines see the full file

Repo symbol

gps_umd repository

gps_msgs gps_tools gps_umd gpsd_client

ROS Distro
kilted

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version ros2-devel
Last Updated 2026-08-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_msgs 3.1.1
gps_tools 3.1.1
gps_umd 3.1.1
gpsd_client 3.1.1

README

gps_umd

This package contains messages for representing data from GPS devices and algorithms for manipulating it. It uses GPSd as the underlying method of reading data from GPS receivers.

Build Status

Item Humble Jazzy Kilted Lyrical Rolling
Build status CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
gps_msgs Released Released Released Released Released
gps_tools Released Released Released Released Released
gpsd_client Released Released Released Released Released

GPSd Integration and Usage

By default, this package is built against the version of GPSd shipped with the Linux distribution the underlying ROS 2 software is built against. However, the gps_umd package supports building against arbitrary versions of GPSd and matching its behavior to the GPSd API version supplied by the library.

Depending on the GPS receiver, GPSd is capable of providing a great deal of information. By default, the package publishes a condensed version of this data as a gps_msgs/GPSFix message. Alternatively, the information may be published as a standard ROS 2 sensor_msgs/NavSatFix message. These messages provide the localization and error estimates that most robots need to operate in most conditions.

gps_umd can also publish the entire set of information provided by GPSd. These messages are in the gps_msgs package and published as GPSDRaw<MAJOR>v<MINOR> types, where <MAJOR> and <MINOR> correspond to the GPSd API version that provides the information. The table below lists the currently support set of GPSd and API versions the system is built and tested against.

GPSd generator

API GPSd revision Message Status
9.0 3.20 GPSDRaw9v0 GPSd API 9.0
9.1 e5279ef52 (unreleased) GPSDRaw9v1 GPSd API 9.1
10.0 3.21 GPSDRaw10v0 GPSd API 10.0
10.1 42f816d59 (unreleased) GPSDRaw10v1 GPSd API 10.1
11.0 3.22 GPSDRaw11v0 GPSd API 11.0
12.0 3.23.1 GPSDRaw12v0 GPSd API 12.0
13.0 264e808c6 (unreleased) GPSDRaw13v0 GPSd API 13.0
14.0 3.26.1 GPSDRaw14v0 GPSd API 14.0
16.0 3.27.3 GPSDRaw16v0 GPSd API 16.0
16.1 3.27.5 GPSDRaw16v1 GPSd API 16.1

Three GPSd API versions are not matched to a GPSd version. These GPSd versions are given as their commit hash instead. To add more version of the GPSd API, see: docs/adding-a-gpsd-api-version.md.

gpsd_client Parameters

The gpsd_client::GPSDClientComponent node accepts the following parameters. Some are used to configure GPSd, and others are used to work around quirks of GPSd with certain hardware. In general, gps_umd attempts to retain the behavior of GPSd as much as possible, and deviate only to match ROS 2 conventions and robot needs.

Parameter Type Default Description
host string localhost Hostname or address of the GPSd server to connect to.
port int 2947 TCP port of the GPSd server.
frame_id string gps frame_id set on the header of published GPSFix and NavSatFix messages.
publish_rate int 10 How often, in Hz, to poll GPSd and publish. Values <= 0 are rejected with a warning and fall back to 1 Hz.
use_gps_time bool true Stamp NavSatFix messages with the time reported by the GPS receiver instead of the current ROS time.
check_fix_by_variance bool false Discard fixes whose reported variances (epx/epy/epv) are not finite. GPSd reports a status of OK even when there is no current fix, as long as there was one previously; this rejects those stale results.
override_augmentation_source bool false When GPSd reports a DGPS fix, always report it as an SBAS fix, whether or not a satellite with an SBAS ID was used in the solution. Useful for receivers that apply SBAS corrections without listing the SBAS satellite in their skyview. Affects both NavSatFix and GPSFix status.
publish_gpsd_raw bool false Also publish a near-verbatim mirror of GPSd’s gps_data_t on gpsd_raw, in a message named after the libgps API this package was built against. Off by default: the message is much larger than GPSFix, and neither the publisher nor its parser is created unless this is set.
publish_gpsd_json bool false Publish every report GPSd sends on gpsd_json, as the raw JSON line. This contains much more than the information published on gpsd_raw, such as RTCM and SUBFRAME data. Only AIS information from GPSd is intentionally omitted.

These node defaults can be overriden by setting a parameter. The file gpsd_client/config/gpsd_client.yaml contains these parameters as well. The launch file gpsd_client-launch.py can load these YAML files for convenience.

Raw GPSd Details

With publish_gpsd_raw set, gpsd_client publishes everything GPSd reports on gpsd_raw, as close to verbatim as a ROS message allows. The type is named after the GPSd C API the package compiled against — gps_msgs/GPSDRaw<MAJOR>v<MINOR>. publish_gpsd_json adds gpsd_json, carrying every report as the raw JSON line generated by GPSd, including the RTCM and SUBFRAME information.

tools/generate_raw_msgs.py automatically converts the data structures in GPSd to these messages and their parsers.

These messages are complex due to the volume of information contained within them and how C structs and unions are mapped to ROS 2 message datatypes. There are also bugs and quirks in different GPSd versions that further complicate this translation. For more information, see the documentation in the following files.

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

```xml

File truncated at 100 lines see the full file

Repo symbol

gps_umd repository

gps_msgs gps_tools gps_umd gpsd_client

ROS Distro
lyrical

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version ros2-devel
Last Updated 2026-08-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_msgs 3.1.1
gps_tools 3.1.1
gps_umd 3.1.1
gpsd_client 3.1.1

README

gps_umd

This package contains messages for representing data from GPS devices and algorithms for manipulating it. It uses GPSd as the underlying method of reading data from GPS receivers.

Build Status

Item Humble Jazzy Kilted Lyrical Rolling
Build status CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
gps_msgs Released Released Released Released Released
gps_tools Released Released Released Released Released
gpsd_client Released Released Released Released Released

GPSd Integration and Usage

By default, this package is built against the version of GPSd shipped with the Linux distribution the underlying ROS 2 software is built against. However, the gps_umd package supports building against arbitrary versions of GPSd and matching its behavior to the GPSd API version supplied by the library.

Depending on the GPS receiver, GPSd is capable of providing a great deal of information. By default, the package publishes a condensed version of this data as a gps_msgs/GPSFix message. Alternatively, the information may be published as a standard ROS 2 sensor_msgs/NavSatFix message. These messages provide the localization and error estimates that most robots need to operate in most conditions.

gps_umd can also publish the entire set of information provided by GPSd. These messages are in the gps_msgs package and published as GPSDRaw<MAJOR>v<MINOR> types, where <MAJOR> and <MINOR> correspond to the GPSd API version that provides the information. The table below lists the currently support set of GPSd and API versions the system is built and tested against.

GPSd generator

API GPSd revision Message Status
9.0 3.20 GPSDRaw9v0 GPSd API 9.0
9.1 e5279ef52 (unreleased) GPSDRaw9v1 GPSd API 9.1
10.0 3.21 GPSDRaw10v0 GPSd API 10.0
10.1 42f816d59 (unreleased) GPSDRaw10v1 GPSd API 10.1
11.0 3.22 GPSDRaw11v0 GPSd API 11.0
12.0 3.23.1 GPSDRaw12v0 GPSd API 12.0
13.0 264e808c6 (unreleased) GPSDRaw13v0 GPSd API 13.0
14.0 3.26.1 GPSDRaw14v0 GPSd API 14.0
16.0 3.27.3 GPSDRaw16v0 GPSd API 16.0
16.1 3.27.5 GPSDRaw16v1 GPSd API 16.1

Three GPSd API versions are not matched to a GPSd version. These GPSd versions are given as their commit hash instead. To add more version of the GPSd API, see: docs/adding-a-gpsd-api-version.md.

gpsd_client Parameters

The gpsd_client::GPSDClientComponent node accepts the following parameters. Some are used to configure GPSd, and others are used to work around quirks of GPSd with certain hardware. In general, gps_umd attempts to retain the behavior of GPSd as much as possible, and deviate only to match ROS 2 conventions and robot needs.

Parameter Type Default Description
host string localhost Hostname or address of the GPSd server to connect to.
port int 2947 TCP port of the GPSd server.
frame_id string gps frame_id set on the header of published GPSFix and NavSatFix messages.
publish_rate int 10 How often, in Hz, to poll GPSd and publish. Values <= 0 are rejected with a warning and fall back to 1 Hz.
use_gps_time bool true Stamp NavSatFix messages with the time reported by the GPS receiver instead of the current ROS time.
check_fix_by_variance bool false Discard fixes whose reported variances (epx/epy/epv) are not finite. GPSd reports a status of OK even when there is no current fix, as long as there was one previously; this rejects those stale results.
override_augmentation_source bool false When GPSd reports a DGPS fix, always report it as an SBAS fix, whether or not a satellite with an SBAS ID was used in the solution. Useful for receivers that apply SBAS corrections without listing the SBAS satellite in their skyview. Affects both NavSatFix and GPSFix status.
publish_gpsd_raw bool false Also publish a near-verbatim mirror of GPSd’s gps_data_t on gpsd_raw, in a message named after the libgps API this package was built against. Off by default: the message is much larger than GPSFix, and neither the publisher nor its parser is created unless this is set.
publish_gpsd_json bool false Publish every report GPSd sends on gpsd_json, as the raw JSON line. This contains much more than the information published on gpsd_raw, such as RTCM and SUBFRAME data. Only AIS information from GPSd is intentionally omitted.

These node defaults can be overriden by setting a parameter. The file gpsd_client/config/gpsd_client.yaml contains these parameters as well. The launch file gpsd_client-launch.py can load these YAML files for convenience.

Raw GPSd Details

With publish_gpsd_raw set, gpsd_client publishes everything GPSd reports on gpsd_raw, as close to verbatim as a ROS message allows. The type is named after the GPSd C API the package compiled against — gps_msgs/GPSDRaw<MAJOR>v<MINOR>. publish_gpsd_json adds gpsd_json, carrying every report as the raw JSON line generated by GPSd, including the RTCM and SUBFRAME information.

tools/generate_raw_msgs.py automatically converts the data structures in GPSd to these messages and their parsers.

These messages are complex due to the volume of information contained within them and how C structs and unions are mapped to ROS 2 message datatypes. There are also bugs and quirks in different GPSd versions that further complicate this translation. For more information, see the documentation in the following files.

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

```xml

File truncated at 100 lines see the full file

Repo symbol

gps_umd repository

gps_msgs gps_tools gps_umd gpsd_client

ROS Distro
rolling

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version ros2-devel
Last Updated 2026-08-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_msgs 3.1.1
gps_tools 3.1.1
gps_umd 3.1.1
gpsd_client 3.1.1

README

gps_umd

This package contains messages for representing data from GPS devices and algorithms for manipulating it. It uses GPSd as the underlying method of reading data from GPS receivers.

Build Status

Item Humble Jazzy Kilted Lyrical Rolling
Build status CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
gps_msgs Released Released Released Released Released
gps_tools Released Released Released Released Released
gpsd_client Released Released Released Released Released

GPSd Integration and Usage

By default, this package is built against the version of GPSd shipped with the Linux distribution the underlying ROS 2 software is built against. However, the gps_umd package supports building against arbitrary versions of GPSd and matching its behavior to the GPSd API version supplied by the library.

Depending on the GPS receiver, GPSd is capable of providing a great deal of information. By default, the package publishes a condensed version of this data as a gps_msgs/GPSFix message. Alternatively, the information may be published as a standard ROS 2 sensor_msgs/NavSatFix message. These messages provide the localization and error estimates that most robots need to operate in most conditions.

gps_umd can also publish the entire set of information provided by GPSd. These messages are in the gps_msgs package and published as GPSDRaw<MAJOR>v<MINOR> types, where <MAJOR> and <MINOR> correspond to the GPSd API version that provides the information. The table below lists the currently support set of GPSd and API versions the system is built and tested against.

GPSd generator

API GPSd revision Message Status
9.0 3.20 GPSDRaw9v0 GPSd API 9.0
9.1 e5279ef52 (unreleased) GPSDRaw9v1 GPSd API 9.1
10.0 3.21 GPSDRaw10v0 GPSd API 10.0
10.1 42f816d59 (unreleased) GPSDRaw10v1 GPSd API 10.1
11.0 3.22 GPSDRaw11v0 GPSd API 11.0
12.0 3.23.1 GPSDRaw12v0 GPSd API 12.0
13.0 264e808c6 (unreleased) GPSDRaw13v0 GPSd API 13.0
14.0 3.26.1 GPSDRaw14v0 GPSd API 14.0
16.0 3.27.3 GPSDRaw16v0 GPSd API 16.0
16.1 3.27.5 GPSDRaw16v1 GPSd API 16.1

Three GPSd API versions are not matched to a GPSd version. These GPSd versions are given as their commit hash instead. To add more version of the GPSd API, see: docs/adding-a-gpsd-api-version.md.

gpsd_client Parameters

The gpsd_client::GPSDClientComponent node accepts the following parameters. Some are used to configure GPSd, and others are used to work around quirks of GPSd with certain hardware. In general, gps_umd attempts to retain the behavior of GPSd as much as possible, and deviate only to match ROS 2 conventions and robot needs.

Parameter Type Default Description
host string localhost Hostname or address of the GPSd server to connect to.
port int 2947 TCP port of the GPSd server.
frame_id string gps frame_id set on the header of published GPSFix and NavSatFix messages.
publish_rate int 10 How often, in Hz, to poll GPSd and publish. Values <= 0 are rejected with a warning and fall back to 1 Hz.
use_gps_time bool true Stamp NavSatFix messages with the time reported by the GPS receiver instead of the current ROS time.
check_fix_by_variance bool false Discard fixes whose reported variances (epx/epy/epv) are not finite. GPSd reports a status of OK even when there is no current fix, as long as there was one previously; this rejects those stale results.
override_augmentation_source bool false When GPSd reports a DGPS fix, always report it as an SBAS fix, whether or not a satellite with an SBAS ID was used in the solution. Useful for receivers that apply SBAS corrections without listing the SBAS satellite in their skyview. Affects both NavSatFix and GPSFix status.
publish_gpsd_raw bool false Also publish a near-verbatim mirror of GPSd’s gps_data_t on gpsd_raw, in a message named after the libgps API this package was built against. Off by default: the message is much larger than GPSFix, and neither the publisher nor its parser is created unless this is set.
publish_gpsd_json bool false Publish every report GPSd sends on gpsd_json, as the raw JSON line. This contains much more than the information published on gpsd_raw, such as RTCM and SUBFRAME data. Only AIS information from GPSd is intentionally omitted.

These node defaults can be overriden by setting a parameter. The file gpsd_client/config/gpsd_client.yaml contains these parameters as well. The launch file gpsd_client-launch.py can load these YAML files for convenience.

Raw GPSd Details

With publish_gpsd_raw set, gpsd_client publishes everything GPSd reports on gpsd_raw, as close to verbatim as a ROS message allows. The type is named after the GPSd C API the package compiled against — gps_msgs/GPSDRaw<MAJOR>v<MINOR>. publish_gpsd_json adds gpsd_json, carrying every report as the raw JSON line generated by GPSd, including the RTCM and SUBFRAME information.

tools/generate_raw_msgs.py automatically converts the data structures in GPSd to these messages and their parsers.

These messages are complex due to the volume of information contained within them and how C structs and unions are mapped to ROS 2 message datatypes. There are also bugs and quirks in different GPSd versions that further complicate this translation. For more information, see the documentation in the following files.

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

```xml

File truncated at 100 lines see the full file

No version for distro ardent showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gps_umd repository

gps_msgs gps_tools gps_umd gpsd_client

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version ros2-devel
Last Updated 2026-08-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_msgs 3.1.1
gps_tools 3.1.1
gps_umd 3.1.1
gpsd_client 3.1.1

README

gps_umd

This package contains messages for representing data from GPS devices and algorithms for manipulating it. It uses GPSd as the underlying method of reading data from GPS receivers.

Build Status

Item Humble Jazzy Kilted Lyrical Rolling
Build status CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
gps_msgs Released Released Released Released Released
gps_tools Released Released Released Released Released
gpsd_client Released Released Released Released Released

GPSd Integration and Usage

By default, this package is built against the version of GPSd shipped with the Linux distribution the underlying ROS 2 software is built against. However, the gps_umd package supports building against arbitrary versions of GPSd and matching its behavior to the GPSd API version supplied by the library.

Depending on the GPS receiver, GPSd is capable of providing a great deal of information. By default, the package publishes a condensed version of this data as a gps_msgs/GPSFix message. Alternatively, the information may be published as a standard ROS 2 sensor_msgs/NavSatFix message. These messages provide the localization and error estimates that most robots need to operate in most conditions.

gps_umd can also publish the entire set of information provided by GPSd. These messages are in the gps_msgs package and published as GPSDRaw<MAJOR>v<MINOR> types, where <MAJOR> and <MINOR> correspond to the GPSd API version that provides the information. The table below lists the currently support set of GPSd and API versions the system is built and tested against.

GPSd generator

API GPSd revision Message Status
9.0 3.20 GPSDRaw9v0 GPSd API 9.0
9.1 e5279ef52 (unreleased) GPSDRaw9v1 GPSd API 9.1
10.0 3.21 GPSDRaw10v0 GPSd API 10.0
10.1 42f816d59 (unreleased) GPSDRaw10v1 GPSd API 10.1
11.0 3.22 GPSDRaw11v0 GPSd API 11.0
12.0 3.23.1 GPSDRaw12v0 GPSd API 12.0
13.0 264e808c6 (unreleased) GPSDRaw13v0 GPSd API 13.0
14.0 3.26.1 GPSDRaw14v0 GPSd API 14.0
16.0 3.27.3 GPSDRaw16v0 GPSd API 16.0
16.1 3.27.5 GPSDRaw16v1 GPSd API 16.1

Three GPSd API versions are not matched to a GPSd version. These GPSd versions are given as their commit hash instead. To add more version of the GPSd API, see: docs/adding-a-gpsd-api-version.md.

gpsd_client Parameters

The gpsd_client::GPSDClientComponent node accepts the following parameters. Some are used to configure GPSd, and others are used to work around quirks of GPSd with certain hardware. In general, gps_umd attempts to retain the behavior of GPSd as much as possible, and deviate only to match ROS 2 conventions and robot needs.

Parameter Type Default Description
host string localhost Hostname or address of the GPSd server to connect to.
port int 2947 TCP port of the GPSd server.
frame_id string gps frame_id set on the header of published GPSFix and NavSatFix messages.
publish_rate int 10 How often, in Hz, to poll GPSd and publish. Values <= 0 are rejected with a warning and fall back to 1 Hz.
use_gps_time bool true Stamp NavSatFix messages with the time reported by the GPS receiver instead of the current ROS time.
check_fix_by_variance bool false Discard fixes whose reported variances (epx/epy/epv) are not finite. GPSd reports a status of OK even when there is no current fix, as long as there was one previously; this rejects those stale results.
override_augmentation_source bool false When GPSd reports a DGPS fix, always report it as an SBAS fix, whether or not a satellite with an SBAS ID was used in the solution. Useful for receivers that apply SBAS corrections without listing the SBAS satellite in their skyview. Affects both NavSatFix and GPSFix status.
publish_gpsd_raw bool false Also publish a near-verbatim mirror of GPSd’s gps_data_t on gpsd_raw, in a message named after the libgps API this package was built against. Off by default: the message is much larger than GPSFix, and neither the publisher nor its parser is created unless this is set.
publish_gpsd_json bool false Publish every report GPSd sends on gpsd_json, as the raw JSON line. This contains much more than the information published on gpsd_raw, such as RTCM and SUBFRAME data. Only AIS information from GPSd is intentionally omitted.

These node defaults can be overriden by setting a parameter. The file gpsd_client/config/gpsd_client.yaml contains these parameters as well. The launch file gpsd_client-launch.py can load these YAML files for convenience.

Raw GPSd Details

With publish_gpsd_raw set, gpsd_client publishes everything GPSd reports on gpsd_raw, as close to verbatim as a ROS message allows. The type is named after the GPSd C API the package compiled against — gps_msgs/GPSDRaw<MAJOR>v<MINOR>. publish_gpsd_json adds gpsd_json, carrying every report as the raw JSON line generated by GPSd, including the RTCM and SUBFRAME information.

tools/generate_raw_msgs.py automatically converts the data structures in GPSd to these messages and their parsers.

These messages are complex due to the volume of information contained within them and how C structs and unions are mapped to ROS 2 message datatypes. There are also bugs and quirks in different GPSd versions that further complicate this translation. For more information, see the documentation in the following files.

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

```xml

File truncated at 100 lines see the full file

No version for distro bouncy showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gps_umd repository

gps_msgs gps_tools gps_umd gpsd_client

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version ros2-devel
Last Updated 2026-08-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_msgs 3.1.1
gps_tools 3.1.1
gps_umd 3.1.1
gpsd_client 3.1.1

README

gps_umd

This package contains messages for representing data from GPS devices and algorithms for manipulating it. It uses GPSd as the underlying method of reading data from GPS receivers.

Build Status

Item Humble Jazzy Kilted Lyrical Rolling
Build status CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
gps_msgs Released Released Released Released Released
gps_tools Released Released Released Released Released
gpsd_client Released Released Released Released Released

GPSd Integration and Usage

By default, this package is built against the version of GPSd shipped with the Linux distribution the underlying ROS 2 software is built against. However, the gps_umd package supports building against arbitrary versions of GPSd and matching its behavior to the GPSd API version supplied by the library.

Depending on the GPS receiver, GPSd is capable of providing a great deal of information. By default, the package publishes a condensed version of this data as a gps_msgs/GPSFix message. Alternatively, the information may be published as a standard ROS 2 sensor_msgs/NavSatFix message. These messages provide the localization and error estimates that most robots need to operate in most conditions.

gps_umd can also publish the entire set of information provided by GPSd. These messages are in the gps_msgs package and published as GPSDRaw<MAJOR>v<MINOR> types, where <MAJOR> and <MINOR> correspond to the GPSd API version that provides the information. The table below lists the currently support set of GPSd and API versions the system is built and tested against.

GPSd generator

API GPSd revision Message Status
9.0 3.20 GPSDRaw9v0 GPSd API 9.0
9.1 e5279ef52 (unreleased) GPSDRaw9v1 GPSd API 9.1
10.0 3.21 GPSDRaw10v0 GPSd API 10.0
10.1 42f816d59 (unreleased) GPSDRaw10v1 GPSd API 10.1
11.0 3.22 GPSDRaw11v0 GPSd API 11.0
12.0 3.23.1 GPSDRaw12v0 GPSd API 12.0
13.0 264e808c6 (unreleased) GPSDRaw13v0 GPSd API 13.0
14.0 3.26.1 GPSDRaw14v0 GPSd API 14.0
16.0 3.27.3 GPSDRaw16v0 GPSd API 16.0
16.1 3.27.5 GPSDRaw16v1 GPSd API 16.1

Three GPSd API versions are not matched to a GPSd version. These GPSd versions are given as their commit hash instead. To add more version of the GPSd API, see: docs/adding-a-gpsd-api-version.md.

gpsd_client Parameters

The gpsd_client::GPSDClientComponent node accepts the following parameters. Some are used to configure GPSd, and others are used to work around quirks of GPSd with certain hardware. In general, gps_umd attempts to retain the behavior of GPSd as much as possible, and deviate only to match ROS 2 conventions and robot needs.

Parameter Type Default Description
host string localhost Hostname or address of the GPSd server to connect to.
port int 2947 TCP port of the GPSd server.
frame_id string gps frame_id set on the header of published GPSFix and NavSatFix messages.
publish_rate int 10 How often, in Hz, to poll GPSd and publish. Values <= 0 are rejected with a warning and fall back to 1 Hz.
use_gps_time bool true Stamp NavSatFix messages with the time reported by the GPS receiver instead of the current ROS time.
check_fix_by_variance bool false Discard fixes whose reported variances (epx/epy/epv) are not finite. GPSd reports a status of OK even when there is no current fix, as long as there was one previously; this rejects those stale results.
override_augmentation_source bool false When GPSd reports a DGPS fix, always report it as an SBAS fix, whether or not a satellite with an SBAS ID was used in the solution. Useful for receivers that apply SBAS corrections without listing the SBAS satellite in their skyview. Affects both NavSatFix and GPSFix status.
publish_gpsd_raw bool false Also publish a near-verbatim mirror of GPSd’s gps_data_t on gpsd_raw, in a message named after the libgps API this package was built against. Off by default: the message is much larger than GPSFix, and neither the publisher nor its parser is created unless this is set.
publish_gpsd_json bool false Publish every report GPSd sends on gpsd_json, as the raw JSON line. This contains much more than the information published on gpsd_raw, such as RTCM and SUBFRAME data. Only AIS information from GPSd is intentionally omitted.

These node defaults can be overriden by setting a parameter. The file gpsd_client/config/gpsd_client.yaml contains these parameters as well. The launch file gpsd_client-launch.py can load these YAML files for convenience.

Raw GPSd Details

With publish_gpsd_raw set, gpsd_client publishes everything GPSd reports on gpsd_raw, as close to verbatim as a ROS message allows. The type is named after the GPSd C API the package compiled against — gps_msgs/GPSDRaw<MAJOR>v<MINOR>. publish_gpsd_json adds gpsd_json, carrying every report as the raw JSON line generated by GPSd, including the RTCM and SUBFRAME information.

tools/generate_raw_msgs.py automatically converts the data structures in GPSd to these messages and their parsers.

These messages are complex due to the volume of information contained within them and how C structs and unions are mapped to ROS 2 message datatypes. There are also bugs and quirks in different GPSd versions that further complicate this translation. For more information, see the documentation in the following files.

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

```xml

File truncated at 100 lines see the full file

No version for distro crystal showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gps_umd repository

gps_msgs gps_tools gps_umd gpsd_client

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version ros2-devel
Last Updated 2026-08-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_msgs 3.1.1
gps_tools 3.1.1
gps_umd 3.1.1
gpsd_client 3.1.1

README

gps_umd

This package contains messages for representing data from GPS devices and algorithms for manipulating it. It uses GPSd as the underlying method of reading data from GPS receivers.

Build Status

Item Humble Jazzy Kilted Lyrical Rolling
Build status CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
gps_msgs Released Released Released Released Released
gps_tools Released Released Released Released Released
gpsd_client Released Released Released Released Released

GPSd Integration and Usage

By default, this package is built against the version of GPSd shipped with the Linux distribution the underlying ROS 2 software is built against. However, the gps_umd package supports building against arbitrary versions of GPSd and matching its behavior to the GPSd API version supplied by the library.

Depending on the GPS receiver, GPSd is capable of providing a great deal of information. By default, the package publishes a condensed version of this data as a gps_msgs/GPSFix message. Alternatively, the information may be published as a standard ROS 2 sensor_msgs/NavSatFix message. These messages provide the localization and error estimates that most robots need to operate in most conditions.

gps_umd can also publish the entire set of information provided by GPSd. These messages are in the gps_msgs package and published as GPSDRaw<MAJOR>v<MINOR> types, where <MAJOR> and <MINOR> correspond to the GPSd API version that provides the information. The table below lists the currently support set of GPSd and API versions the system is built and tested against.

GPSd generator

API GPSd revision Message Status
9.0 3.20 GPSDRaw9v0 GPSd API 9.0
9.1 e5279ef52 (unreleased) GPSDRaw9v1 GPSd API 9.1
10.0 3.21 GPSDRaw10v0 GPSd API 10.0
10.1 42f816d59 (unreleased) GPSDRaw10v1 GPSd API 10.1
11.0 3.22 GPSDRaw11v0 GPSd API 11.0
12.0 3.23.1 GPSDRaw12v0 GPSd API 12.0
13.0 264e808c6 (unreleased) GPSDRaw13v0 GPSd API 13.0
14.0 3.26.1 GPSDRaw14v0 GPSd API 14.0
16.0 3.27.3 GPSDRaw16v0 GPSd API 16.0
16.1 3.27.5 GPSDRaw16v1 GPSd API 16.1

Three GPSd API versions are not matched to a GPSd version. These GPSd versions are given as their commit hash instead. To add more version of the GPSd API, see: docs/adding-a-gpsd-api-version.md.

gpsd_client Parameters

The gpsd_client::GPSDClientComponent node accepts the following parameters. Some are used to configure GPSd, and others are used to work around quirks of GPSd with certain hardware. In general, gps_umd attempts to retain the behavior of GPSd as much as possible, and deviate only to match ROS 2 conventions and robot needs.

Parameter Type Default Description
host string localhost Hostname or address of the GPSd server to connect to.
port int 2947 TCP port of the GPSd server.
frame_id string gps frame_id set on the header of published GPSFix and NavSatFix messages.
publish_rate int 10 How often, in Hz, to poll GPSd and publish. Values <= 0 are rejected with a warning and fall back to 1 Hz.
use_gps_time bool true Stamp NavSatFix messages with the time reported by the GPS receiver instead of the current ROS time.
check_fix_by_variance bool false Discard fixes whose reported variances (epx/epy/epv) are not finite. GPSd reports a status of OK even when there is no current fix, as long as there was one previously; this rejects those stale results.
override_augmentation_source bool false When GPSd reports a DGPS fix, always report it as an SBAS fix, whether or not a satellite with an SBAS ID was used in the solution. Useful for receivers that apply SBAS corrections without listing the SBAS satellite in their skyview. Affects both NavSatFix and GPSFix status.
publish_gpsd_raw bool false Also publish a near-verbatim mirror of GPSd’s gps_data_t on gpsd_raw, in a message named after the libgps API this package was built against. Off by default: the message is much larger than GPSFix, and neither the publisher nor its parser is created unless this is set.
publish_gpsd_json bool false Publish every report GPSd sends on gpsd_json, as the raw JSON line. This contains much more than the information published on gpsd_raw, such as RTCM and SUBFRAME data. Only AIS information from GPSd is intentionally omitted.

These node defaults can be overriden by setting a parameter. The file gpsd_client/config/gpsd_client.yaml contains these parameters as well. The launch file gpsd_client-launch.py can load these YAML files for convenience.

Raw GPSd Details

With publish_gpsd_raw set, gpsd_client publishes everything GPSd reports on gpsd_raw, as close to verbatim as a ROS message allows. The type is named after the GPSd C API the package compiled against — gps_msgs/GPSDRaw<MAJOR>v<MINOR>. publish_gpsd_json adds gpsd_json, carrying every report as the raw JSON line generated by GPSd, including the RTCM and SUBFRAME information.

tools/generate_raw_msgs.py automatically converts the data structures in GPSd to these messages and their parsers.

These messages are complex due to the volume of information contained within them and how C structs and unions are mapped to ROS 2 message datatypes. There are also bugs and quirks in different GPSd versions that further complicate this translation. For more information, see the documentation in the following files.

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

```xml

File truncated at 100 lines see the full file

No version for distro eloquent showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gps_umd repository

gps_msgs gps_tools gps_umd gpsd_client

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version ros2-devel
Last Updated 2026-08-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_msgs 3.1.1
gps_tools 3.1.1
gps_umd 3.1.1
gpsd_client 3.1.1

README

gps_umd

This package contains messages for representing data from GPS devices and algorithms for manipulating it. It uses GPSd as the underlying method of reading data from GPS receivers.

Build Status

Item Humble Jazzy Kilted Lyrical Rolling
Build status CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
gps_msgs Released Released Released Released Released
gps_tools Released Released Released Released Released
gpsd_client Released Released Released Released Released

GPSd Integration and Usage

By default, this package is built against the version of GPSd shipped with the Linux distribution the underlying ROS 2 software is built against. However, the gps_umd package supports building against arbitrary versions of GPSd and matching its behavior to the GPSd API version supplied by the library.

Depending on the GPS receiver, GPSd is capable of providing a great deal of information. By default, the package publishes a condensed version of this data as a gps_msgs/GPSFix message. Alternatively, the information may be published as a standard ROS 2 sensor_msgs/NavSatFix message. These messages provide the localization and error estimates that most robots need to operate in most conditions.

gps_umd can also publish the entire set of information provided by GPSd. These messages are in the gps_msgs package and published as GPSDRaw<MAJOR>v<MINOR> types, where <MAJOR> and <MINOR> correspond to the GPSd API version that provides the information. The table below lists the currently support set of GPSd and API versions the system is built and tested against.

GPSd generator

API GPSd revision Message Status
9.0 3.20 GPSDRaw9v0 GPSd API 9.0
9.1 e5279ef52 (unreleased) GPSDRaw9v1 GPSd API 9.1
10.0 3.21 GPSDRaw10v0 GPSd API 10.0
10.1 42f816d59 (unreleased) GPSDRaw10v1 GPSd API 10.1
11.0 3.22 GPSDRaw11v0 GPSd API 11.0
12.0 3.23.1 GPSDRaw12v0 GPSd API 12.0
13.0 264e808c6 (unreleased) GPSDRaw13v0 GPSd API 13.0
14.0 3.26.1 GPSDRaw14v0 GPSd API 14.0
16.0 3.27.3 GPSDRaw16v0 GPSd API 16.0
16.1 3.27.5 GPSDRaw16v1 GPSd API 16.1

Three GPSd API versions are not matched to a GPSd version. These GPSd versions are given as their commit hash instead. To add more version of the GPSd API, see: docs/adding-a-gpsd-api-version.md.

gpsd_client Parameters

The gpsd_client::GPSDClientComponent node accepts the following parameters. Some are used to configure GPSd, and others are used to work around quirks of GPSd with certain hardware. In general, gps_umd attempts to retain the behavior of GPSd as much as possible, and deviate only to match ROS 2 conventions and robot needs.

Parameter Type Default Description
host string localhost Hostname or address of the GPSd server to connect to.
port int 2947 TCP port of the GPSd server.
frame_id string gps frame_id set on the header of published GPSFix and NavSatFix messages.
publish_rate int 10 How often, in Hz, to poll GPSd and publish. Values <= 0 are rejected with a warning and fall back to 1 Hz.
use_gps_time bool true Stamp NavSatFix messages with the time reported by the GPS receiver instead of the current ROS time.
check_fix_by_variance bool false Discard fixes whose reported variances (epx/epy/epv) are not finite. GPSd reports a status of OK even when there is no current fix, as long as there was one previously; this rejects those stale results.
override_augmentation_source bool false When GPSd reports a DGPS fix, always report it as an SBAS fix, whether or not a satellite with an SBAS ID was used in the solution. Useful for receivers that apply SBAS corrections without listing the SBAS satellite in their skyview. Affects both NavSatFix and GPSFix status.
publish_gpsd_raw bool false Also publish a near-verbatim mirror of GPSd’s gps_data_t on gpsd_raw, in a message named after the libgps API this package was built against. Off by default: the message is much larger than GPSFix, and neither the publisher nor its parser is created unless this is set.
publish_gpsd_json bool false Publish every report GPSd sends on gpsd_json, as the raw JSON line. This contains much more than the information published on gpsd_raw, such as RTCM and SUBFRAME data. Only AIS information from GPSd is intentionally omitted.

These node defaults can be overriden by setting a parameter. The file gpsd_client/config/gpsd_client.yaml contains these parameters as well. The launch file gpsd_client-launch.py can load these YAML files for convenience.

Raw GPSd Details

With publish_gpsd_raw set, gpsd_client publishes everything GPSd reports on gpsd_raw, as close to verbatim as a ROS message allows. The type is named after the GPSd C API the package compiled against — gps_msgs/GPSDRaw<MAJOR>v<MINOR>. publish_gpsd_json adds gpsd_json, carrying every report as the raw JSON line generated by GPSd, including the RTCM and SUBFRAME information.

tools/generate_raw_msgs.py automatically converts the data structures in GPSd to these messages and their parsers.

These messages are complex due to the volume of information contained within them and how C structs and unions are mapped to ROS 2 message datatypes. There are also bugs and quirks in different GPSd versions that further complicate this translation. For more information, see the documentation in the following files.

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

```xml

File truncated at 100 lines see the full file

No version for distro dashing showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gps_umd repository

gps_msgs gps_tools gps_umd gpsd_client

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version ros2-devel
Last Updated 2026-08-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_msgs 3.1.1
gps_tools 3.1.1
gps_umd 3.1.1
gpsd_client 3.1.1

README

gps_umd

This package contains messages for representing data from GPS devices and algorithms for manipulating it. It uses GPSd as the underlying method of reading data from GPS receivers.

Build Status

Item Humble Jazzy Kilted Lyrical Rolling
Build status CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
gps_msgs Released Released Released Released Released
gps_tools Released Released Released Released Released
gpsd_client Released Released Released Released Released

GPSd Integration and Usage

By default, this package is built against the version of GPSd shipped with the Linux distribution the underlying ROS 2 software is built against. However, the gps_umd package supports building against arbitrary versions of GPSd and matching its behavior to the GPSd API version supplied by the library.

Depending on the GPS receiver, GPSd is capable of providing a great deal of information. By default, the package publishes a condensed version of this data as a gps_msgs/GPSFix message. Alternatively, the information may be published as a standard ROS 2 sensor_msgs/NavSatFix message. These messages provide the localization and error estimates that most robots need to operate in most conditions.

gps_umd can also publish the entire set of information provided by GPSd. These messages are in the gps_msgs package and published as GPSDRaw<MAJOR>v<MINOR> types, where <MAJOR> and <MINOR> correspond to the GPSd API version that provides the information. The table below lists the currently support set of GPSd and API versions the system is built and tested against.

GPSd generator

API GPSd revision Message Status
9.0 3.20 GPSDRaw9v0 GPSd API 9.0
9.1 e5279ef52 (unreleased) GPSDRaw9v1 GPSd API 9.1
10.0 3.21 GPSDRaw10v0 GPSd API 10.0
10.1 42f816d59 (unreleased) GPSDRaw10v1 GPSd API 10.1
11.0 3.22 GPSDRaw11v0 GPSd API 11.0
12.0 3.23.1 GPSDRaw12v0 GPSd API 12.0
13.0 264e808c6 (unreleased) GPSDRaw13v0 GPSd API 13.0
14.0 3.26.1 GPSDRaw14v0 GPSd API 14.0
16.0 3.27.3 GPSDRaw16v0 GPSd API 16.0
16.1 3.27.5 GPSDRaw16v1 GPSd API 16.1

Three GPSd API versions are not matched to a GPSd version. These GPSd versions are given as their commit hash instead. To add more version of the GPSd API, see: docs/adding-a-gpsd-api-version.md.

gpsd_client Parameters

The gpsd_client::GPSDClientComponent node accepts the following parameters. Some are used to configure GPSd, and others are used to work around quirks of GPSd with certain hardware. In general, gps_umd attempts to retain the behavior of GPSd as much as possible, and deviate only to match ROS 2 conventions and robot needs.

Parameter Type Default Description
host string localhost Hostname or address of the GPSd server to connect to.
port int 2947 TCP port of the GPSd server.
frame_id string gps frame_id set on the header of published GPSFix and NavSatFix messages.
publish_rate int 10 How often, in Hz, to poll GPSd and publish. Values <= 0 are rejected with a warning and fall back to 1 Hz.
use_gps_time bool true Stamp NavSatFix messages with the time reported by the GPS receiver instead of the current ROS time.
check_fix_by_variance bool false Discard fixes whose reported variances (epx/epy/epv) are not finite. GPSd reports a status of OK even when there is no current fix, as long as there was one previously; this rejects those stale results.
override_augmentation_source bool false When GPSd reports a DGPS fix, always report it as an SBAS fix, whether or not a satellite with an SBAS ID was used in the solution. Useful for receivers that apply SBAS corrections without listing the SBAS satellite in their skyview. Affects both NavSatFix and GPSFix status.
publish_gpsd_raw bool false Also publish a near-verbatim mirror of GPSd’s gps_data_t on gpsd_raw, in a message named after the libgps API this package was built against. Off by default: the message is much larger than GPSFix, and neither the publisher nor its parser is created unless this is set.
publish_gpsd_json bool false Publish every report GPSd sends on gpsd_json, as the raw JSON line. This contains much more than the information published on gpsd_raw, such as RTCM and SUBFRAME data. Only AIS information from GPSd is intentionally omitted.

These node defaults can be overriden by setting a parameter. The file gpsd_client/config/gpsd_client.yaml contains these parameters as well. The launch file gpsd_client-launch.py can load these YAML files for convenience.

Raw GPSd Details

With publish_gpsd_raw set, gpsd_client publishes everything GPSd reports on gpsd_raw, as close to verbatim as a ROS message allows. The type is named after the GPSd C API the package compiled against — gps_msgs/GPSDRaw<MAJOR>v<MINOR>. publish_gpsd_json adds gpsd_json, carrying every report as the raw JSON line generated by GPSd, including the RTCM and SUBFRAME information.

tools/generate_raw_msgs.py automatically converts the data structures in GPSd to these messages and their parsers.

These messages are complex due to the volume of information contained within them and how C structs and unions are mapped to ROS 2 message datatypes. There are also bugs and quirks in different GPSd versions that further complicate this translation. For more information, see the documentation in the following files.

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

```xml

File truncated at 100 lines see the full file

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gps_umd repository

gps_msgs gps_tools gps_umd gpsd_client

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version ros2-devel
Last Updated 2026-08-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_msgs 3.1.1
gps_tools 3.1.1
gps_umd 3.1.1
gpsd_client 3.1.1

README

gps_umd

This package contains messages for representing data from GPS devices and algorithms for manipulating it. It uses GPSd as the underlying method of reading data from GPS receivers.

Build Status

Item Humble Jazzy Kilted Lyrical Rolling
Build status CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
gps_msgs Released Released Released Released Released
gps_tools Released Released Released Released Released
gpsd_client Released Released Released Released Released

GPSd Integration and Usage

By default, this package is built against the version of GPSd shipped with the Linux distribution the underlying ROS 2 software is built against. However, the gps_umd package supports building against arbitrary versions of GPSd and matching its behavior to the GPSd API version supplied by the library.

Depending on the GPS receiver, GPSd is capable of providing a great deal of information. By default, the package publishes a condensed version of this data as a gps_msgs/GPSFix message. Alternatively, the information may be published as a standard ROS 2 sensor_msgs/NavSatFix message. These messages provide the localization and error estimates that most robots need to operate in most conditions.

gps_umd can also publish the entire set of information provided by GPSd. These messages are in the gps_msgs package and published as GPSDRaw<MAJOR>v<MINOR> types, where <MAJOR> and <MINOR> correspond to the GPSd API version that provides the information. The table below lists the currently support set of GPSd and API versions the system is built and tested against.

GPSd generator

API GPSd revision Message Status
9.0 3.20 GPSDRaw9v0 GPSd API 9.0
9.1 e5279ef52 (unreleased) GPSDRaw9v1 GPSd API 9.1
10.0 3.21 GPSDRaw10v0 GPSd API 10.0
10.1 42f816d59 (unreleased) GPSDRaw10v1 GPSd API 10.1
11.0 3.22 GPSDRaw11v0 GPSd API 11.0
12.0 3.23.1 GPSDRaw12v0 GPSd API 12.0
13.0 264e808c6 (unreleased) GPSDRaw13v0 GPSd API 13.0
14.0 3.26.1 GPSDRaw14v0 GPSd API 14.0
16.0 3.27.3 GPSDRaw16v0 GPSd API 16.0
16.1 3.27.5 GPSDRaw16v1 GPSd API 16.1

Three GPSd API versions are not matched to a GPSd version. These GPSd versions are given as their commit hash instead. To add more version of the GPSd API, see: docs/adding-a-gpsd-api-version.md.

gpsd_client Parameters

The gpsd_client::GPSDClientComponent node accepts the following parameters. Some are used to configure GPSd, and others are used to work around quirks of GPSd with certain hardware. In general, gps_umd attempts to retain the behavior of GPSd as much as possible, and deviate only to match ROS 2 conventions and robot needs.

Parameter Type Default Description
host string localhost Hostname or address of the GPSd server to connect to.
port int 2947 TCP port of the GPSd server.
frame_id string gps frame_id set on the header of published GPSFix and NavSatFix messages.
publish_rate int 10 How often, in Hz, to poll GPSd and publish. Values <= 0 are rejected with a warning and fall back to 1 Hz.
use_gps_time bool true Stamp NavSatFix messages with the time reported by the GPS receiver instead of the current ROS time.
check_fix_by_variance bool false Discard fixes whose reported variances (epx/epy/epv) are not finite. GPSd reports a status of OK even when there is no current fix, as long as there was one previously; this rejects those stale results.
override_augmentation_source bool false When GPSd reports a DGPS fix, always report it as an SBAS fix, whether or not a satellite with an SBAS ID was used in the solution. Useful for receivers that apply SBAS corrections without listing the SBAS satellite in their skyview. Affects both NavSatFix and GPSFix status.
publish_gpsd_raw bool false Also publish a near-verbatim mirror of GPSd’s gps_data_t on gpsd_raw, in a message named after the libgps API this package was built against. Off by default: the message is much larger than GPSFix, and neither the publisher nor its parser is created unless this is set.
publish_gpsd_json bool false Publish every report GPSd sends on gpsd_json, as the raw JSON line. This contains much more than the information published on gpsd_raw, such as RTCM and SUBFRAME data. Only AIS information from GPSd is intentionally omitted.

These node defaults can be overriden by setting a parameter. The file gpsd_client/config/gpsd_client.yaml contains these parameters as well. The launch file gpsd_client-launch.py can load these YAML files for convenience.

Raw GPSd Details

With publish_gpsd_raw set, gpsd_client publishes everything GPSd reports on gpsd_raw, as close to verbatim as a ROS message allows. The type is named after the GPSd C API the package compiled against — gps_msgs/GPSDRaw<MAJOR>v<MINOR>. publish_gpsd_json adds gpsd_json, carrying every report as the raw JSON line generated by GPSd, including the RTCM and SUBFRAME information.

tools/generate_raw_msgs.py automatically converts the data structures in GPSd to these messages and their parsers.

These messages are complex due to the volume of information contained within them and how C structs and unions are mapped to ROS 2 message datatypes. There are also bugs and quirks in different GPSd versions that further complicate this translation. For more information, see the documentation in the following files.

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

```xml

File truncated at 100 lines see the full file

No version for distro foxy showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gps_umd repository

gps_msgs gps_tools gps_umd gpsd_client

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version ros2-devel
Last Updated 2026-08-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_msgs 3.1.1
gps_tools 3.1.1
gps_umd 3.1.1
gpsd_client 3.1.1

README

gps_umd

This package contains messages for representing data from GPS devices and algorithms for manipulating it. It uses GPSd as the underlying method of reading data from GPS receivers.

Build Status

Item Humble Jazzy Kilted Lyrical Rolling
Build status CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
gps_msgs Released Released Released Released Released
gps_tools Released Released Released Released Released
gpsd_client Released Released Released Released Released

GPSd Integration and Usage

By default, this package is built against the version of GPSd shipped with the Linux distribution the underlying ROS 2 software is built against. However, the gps_umd package supports building against arbitrary versions of GPSd and matching its behavior to the GPSd API version supplied by the library.

Depending on the GPS receiver, GPSd is capable of providing a great deal of information. By default, the package publishes a condensed version of this data as a gps_msgs/GPSFix message. Alternatively, the information may be published as a standard ROS 2 sensor_msgs/NavSatFix message. These messages provide the localization and error estimates that most robots need to operate in most conditions.

gps_umd can also publish the entire set of information provided by GPSd. These messages are in the gps_msgs package and published as GPSDRaw<MAJOR>v<MINOR> types, where <MAJOR> and <MINOR> correspond to the GPSd API version that provides the information. The table below lists the currently support set of GPSd and API versions the system is built and tested against.

GPSd generator

API GPSd revision Message Status
9.0 3.20 GPSDRaw9v0 GPSd API 9.0
9.1 e5279ef52 (unreleased) GPSDRaw9v1 GPSd API 9.1
10.0 3.21 GPSDRaw10v0 GPSd API 10.0
10.1 42f816d59 (unreleased) GPSDRaw10v1 GPSd API 10.1
11.0 3.22 GPSDRaw11v0 GPSd API 11.0
12.0 3.23.1 GPSDRaw12v0 GPSd API 12.0
13.0 264e808c6 (unreleased) GPSDRaw13v0 GPSd API 13.0
14.0 3.26.1 GPSDRaw14v0 GPSd API 14.0
16.0 3.27.3 GPSDRaw16v0 GPSd API 16.0
16.1 3.27.5 GPSDRaw16v1 GPSd API 16.1

Three GPSd API versions are not matched to a GPSd version. These GPSd versions are given as their commit hash instead. To add more version of the GPSd API, see: docs/adding-a-gpsd-api-version.md.

gpsd_client Parameters

The gpsd_client::GPSDClientComponent node accepts the following parameters. Some are used to configure GPSd, and others are used to work around quirks of GPSd with certain hardware. In general, gps_umd attempts to retain the behavior of GPSd as much as possible, and deviate only to match ROS 2 conventions and robot needs.

Parameter Type Default Description
host string localhost Hostname or address of the GPSd server to connect to.
port int 2947 TCP port of the GPSd server.
frame_id string gps frame_id set on the header of published GPSFix and NavSatFix messages.
publish_rate int 10 How often, in Hz, to poll GPSd and publish. Values <= 0 are rejected with a warning and fall back to 1 Hz.
use_gps_time bool true Stamp NavSatFix messages with the time reported by the GPS receiver instead of the current ROS time.
check_fix_by_variance bool false Discard fixes whose reported variances (epx/epy/epv) are not finite. GPSd reports a status of OK even when there is no current fix, as long as there was one previously; this rejects those stale results.
override_augmentation_source bool false When GPSd reports a DGPS fix, always report it as an SBAS fix, whether or not a satellite with an SBAS ID was used in the solution. Useful for receivers that apply SBAS corrections without listing the SBAS satellite in their skyview. Affects both NavSatFix and GPSFix status.
publish_gpsd_raw bool false Also publish a near-verbatim mirror of GPSd’s gps_data_t on gpsd_raw, in a message named after the libgps API this package was built against. Off by default: the message is much larger than GPSFix, and neither the publisher nor its parser is created unless this is set.
publish_gpsd_json bool false Publish every report GPSd sends on gpsd_json, as the raw JSON line. This contains much more than the information published on gpsd_raw, such as RTCM and SUBFRAME data. Only AIS information from GPSd is intentionally omitted.

These node defaults can be overriden by setting a parameter. The file gpsd_client/config/gpsd_client.yaml contains these parameters as well. The launch file gpsd_client-launch.py can load these YAML files for convenience.

Raw GPSd Details

With publish_gpsd_raw set, gpsd_client publishes everything GPSd reports on gpsd_raw, as close to verbatim as a ROS message allows. The type is named after the GPSd C API the package compiled against — gps_msgs/GPSDRaw<MAJOR>v<MINOR>. publish_gpsd_json adds gpsd_json, carrying every report as the raw JSON line generated by GPSd, including the RTCM and SUBFRAME information.

tools/generate_raw_msgs.py automatically converts the data structures in GPSd to these messages and their parsers.

These messages are complex due to the volume of information contained within them and how C structs and unions are mapped to ROS 2 message datatypes. There are also bugs and quirks in different GPSd versions that further complicate this translation. For more information, see the documentation in the following files.

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

```xml

File truncated at 100 lines see the full file

Repo symbol

gps_umd repository

gps_msgs gps_tools gps_umd gpsd_client

ROS Distro
iron

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version ros2-devel
Last Updated 2026-08-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_msgs 3.1.1
gps_tools 3.1.1
gps_umd 3.1.1
gpsd_client 3.1.1

README

gps_umd

This package contains messages for representing data from GPS devices and algorithms for manipulating it. It uses GPSd as the underlying method of reading data from GPS receivers.

Build Status

Item Humble Jazzy Kilted Lyrical Rolling
Build status CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
CI
ROS2 Build Farm
gps_msgs Released Released Released Released Released
gps_tools Released Released Released Released Released
gpsd_client Released Released Released Released Released

GPSd Integration and Usage

By default, this package is built against the version of GPSd shipped with the Linux distribution the underlying ROS 2 software is built against. However, the gps_umd package supports building against arbitrary versions of GPSd and matching its behavior to the GPSd API version supplied by the library.

Depending on the GPS receiver, GPSd is capable of providing a great deal of information. By default, the package publishes a condensed version of this data as a gps_msgs/GPSFix message. Alternatively, the information may be published as a standard ROS 2 sensor_msgs/NavSatFix message. These messages provide the localization and error estimates that most robots need to operate in most conditions.

gps_umd can also publish the entire set of information provided by GPSd. These messages are in the gps_msgs package and published as GPSDRaw<MAJOR>v<MINOR> types, where <MAJOR> and <MINOR> correspond to the GPSd API version that provides the information. The table below lists the currently support set of GPSd and API versions the system is built and tested against.

GPSd generator

API GPSd revision Message Status
9.0 3.20 GPSDRaw9v0 GPSd API 9.0
9.1 e5279ef52 (unreleased) GPSDRaw9v1 GPSd API 9.1
10.0 3.21 GPSDRaw10v0 GPSd API 10.0
10.1 42f816d59 (unreleased) GPSDRaw10v1 GPSd API 10.1
11.0 3.22 GPSDRaw11v0 GPSd API 11.0
12.0 3.23.1 GPSDRaw12v0 GPSd API 12.0
13.0 264e808c6 (unreleased) GPSDRaw13v0 GPSd API 13.0
14.0 3.26.1 GPSDRaw14v0 GPSd API 14.0
16.0 3.27.3 GPSDRaw16v0 GPSd API 16.0
16.1 3.27.5 GPSDRaw16v1 GPSd API 16.1

Three GPSd API versions are not matched to a GPSd version. These GPSd versions are given as their commit hash instead. To add more version of the GPSd API, see: docs/adding-a-gpsd-api-version.md.

gpsd_client Parameters

The gpsd_client::GPSDClientComponent node accepts the following parameters. Some are used to configure GPSd, and others are used to work around quirks of GPSd with certain hardware. In general, gps_umd attempts to retain the behavior of GPSd as much as possible, and deviate only to match ROS 2 conventions and robot needs.

Parameter Type Default Description
host string localhost Hostname or address of the GPSd server to connect to.
port int 2947 TCP port of the GPSd server.
frame_id string gps frame_id set on the header of published GPSFix and NavSatFix messages.
publish_rate int 10 How often, in Hz, to poll GPSd and publish. Values <= 0 are rejected with a warning and fall back to 1 Hz.
use_gps_time bool true Stamp NavSatFix messages with the time reported by the GPS receiver instead of the current ROS time.
check_fix_by_variance bool false Discard fixes whose reported variances (epx/epy/epv) are not finite. GPSd reports a status of OK even when there is no current fix, as long as there was one previously; this rejects those stale results.
override_augmentation_source bool false When GPSd reports a DGPS fix, always report it as an SBAS fix, whether or not a satellite with an SBAS ID was used in the solution. Useful for receivers that apply SBAS corrections without listing the SBAS satellite in their skyview. Affects both NavSatFix and GPSFix status.
publish_gpsd_raw bool false Also publish a near-verbatim mirror of GPSd’s gps_data_t on gpsd_raw, in a message named after the libgps API this package was built against. Off by default: the message is much larger than GPSFix, and neither the publisher nor its parser is created unless this is set.
publish_gpsd_json bool false Publish every report GPSd sends on gpsd_json, as the raw JSON line. This contains much more than the information published on gpsd_raw, such as RTCM and SUBFRAME data. Only AIS information from GPSd is intentionally omitted.

These node defaults can be overriden by setting a parameter. The file gpsd_client/config/gpsd_client.yaml contains these parameters as well. The launch file gpsd_client-launch.py can load these YAML files for convenience.

Raw GPSd Details

With publish_gpsd_raw set, gpsd_client publishes everything GPSd reports on gpsd_raw, as close to verbatim as a ROS message allows. The type is named after the GPSd C API the package compiled against — gps_msgs/GPSDRaw<MAJOR>v<MINOR>. publish_gpsd_json adds gpsd_json, carrying every report as the raw JSON line generated by GPSd, including the RTCM and SUBFRAME information.

tools/generate_raw_msgs.py automatically converts the data structures in GPSd to these messages and their parsers.

These messages are complex due to the volume of information contained within them and how C structs and unions are mapped to ROS 2 message datatypes. There are also bugs and quirks in different GPSd versions that further complicate this translation. For more information, see the documentation in the following files.

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

```xml

File truncated at 100 lines see the full file

Repo symbol

gps_umd repository

gps_common gps_umd gpsd_client

ROS Distro
lunar

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version master
Last Updated 2024-05-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_common 0.3.4
gps_umd 0.3.4
gpsd_client 0.3.4

README

gps_umd Build Status

This package is a space to stage messages and common GPS-processing routines. The previous maintainer has not released these packages since ROS Indigo; this fork was created in order to fix them up and release them for ROS Jade and Kinetic.

One change of note is that in the version of libgps in Ubuntu 16.04, the STATUS_DGPS_FIX flag was removed, so the gpsd_client package will be unable to indicate whether DGPS was used in a fix or not.

Otherwise, the API is unchanged; see http://wiki.ros.org/gps_common .

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from GPSFix to NavSatFix //-->
       <remap from="/gps_fix_in"     to="/YOUR_GPSFIX_TOPIC"/>
       <remap from="/navsat_fix_out" to="/YOUR_NAVSATFIX_TOPIC"/>
  </node>

Only adjust the topic names after “to=” in each remap line.

Repo symbol

gps_umd repository

gps_common gps_umd gpsd_client

ROS Distro
jade

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version master
Last Updated 2024-05-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_common 0.3.4
gps_umd 0.3.4
gpsd_client 0.3.4

README

gps_umd Build Status

This package is a space to stage messages and common GPS-processing routines. The previous maintainer has not released these packages since ROS Indigo; this fork was created in order to fix them up and release them for ROS Jade and Kinetic.

One change of note is that in the version of libgps in Ubuntu 16.04, the STATUS_DGPS_FIX flag was removed, so the gpsd_client package will be unable to indicate whether DGPS was used in a fix or not.

Otherwise, the API is unchanged; see http://wiki.ros.org/gps_common .

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from GPSFix to NavSatFix //-->
       <remap from="/gps_fix_in"     to="/YOUR_GPSFIX_TOPIC"/>
       <remap from="/navsat_fix_out" to="/YOUR_NAVSATFIX_TOPIC"/>
  </node>

Only adjust the topic names after “to=” in each remap line.

Repo symbol

gps_umd repository

gps_common gps_umd gpsd_client

ROS Distro
indigo

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version master
Last Updated 2024-05-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_common 0.3.4
gps_umd 0.3.4
gpsd_client 0.3.4

README

gps_umd Build Status

This package is a space to stage messages and common GPS-processing routines. The previous maintainer has not released these packages since ROS Indigo; this fork was created in order to fix them up and release them for ROS Jade and Kinetic.

One change of note is that in the version of libgps in Ubuntu 16.04, the STATUS_DGPS_FIX flag was removed, so the gpsd_client package will be unable to indicate whether DGPS was used in a fix or not.

Otherwise, the API is unchanged; see http://wiki.ros.org/gps_common .

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from GPSFix to NavSatFix //-->
       <remap from="/gps_fix_in"     to="/YOUR_GPSFIX_TOPIC"/>
       <remap from="/navsat_fix_out" to="/YOUR_NAVSATFIX_TOPIC"/>
  </node>

Only adjust the topic names after “to=” in each remap line.

Repo symbol

gps_umd repository

gps_common gps_umd gpsd_client

ROS Distro
hydro

Repository Summary

Checkout URI https://github.com/ktossell/gps_umd.git
VCS Type git
VCS Version master
Last Updated 2014-06-20
Dev Status UNMAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_common 0.1.7
gps_umd 0.1.7
gpsd_client 0.1.7

README

No README found.
Repo symbol

gps_umd repository

gps_common gps_umd gpsd_client

ROS Distro
kinetic

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version master
Last Updated 2024-05-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_common 0.3.4
gps_umd 0.3.4
gpsd_client 0.3.4

README

gps_umd Build Status

This package is a space to stage messages and common GPS-processing routines. The previous maintainer has not released these packages since ROS Indigo; this fork was created in order to fix them up and release them for ROS Jade and Kinetic.

One change of note is that in the version of libgps in Ubuntu 16.04, the STATUS_DGPS_FIX flag was removed, so the gpsd_client package will be unable to indicate whether DGPS was used in a fix or not.

Otherwise, the API is unchanged; see http://wiki.ros.org/gps_common .

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from GPSFix to NavSatFix //-->
       <remap from="/gps_fix_in"     to="/YOUR_GPSFIX_TOPIC"/>
       <remap from="/navsat_fix_out" to="/YOUR_NAVSATFIX_TOPIC"/>
  </node>

Only adjust the topic names after “to=” in each remap line.

Repo symbol

gps_umd repository

gps_common gps_umd gpsd_client

ROS Distro
melodic

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version master
Last Updated 2024-05-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_common 0.3.4
gps_umd 0.3.4
gpsd_client 0.3.4

README

gps_umd Build Status

This package is a space to stage messages and common GPS-processing routines. The previous maintainer has not released these packages since ROS Indigo; this fork was created in order to fix them up and release them for ROS Jade and Kinetic.

One change of note is that in the version of libgps in Ubuntu 16.04, the STATUS_DGPS_FIX flag was removed, so the gpsd_client package will be unable to indicate whether DGPS was used in a fix or not.

Otherwise, the API is unchanged; see http://wiki.ros.org/gps_common .

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from GPSFix to NavSatFix //-->
       <remap from="/gps_fix_in"     to="/YOUR_GPSFIX_TOPIC"/>
       <remap from="/navsat_fix_out" to="/YOUR_NAVSATFIX_TOPIC"/>
  </node>

Only adjust the topic names after “to=” in each remap line.

Repo symbol

gps_umd repository

gps_common gps_umd gpsd_client

ROS Distro
noetic

Repository Summary

Checkout URI https://github.com/swri-robotics/gps_umd.git
VCS Type git
VCS Version master
Last Updated 2024-05-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gps_common 0.3.4
gps_umd 0.3.4
gpsd_client 0.3.4

README

gps_umd Build Status

This package is a space to stage messages and common GPS-processing routines. The previous maintainer has not released these packages since ROS Indigo; this fork was created in order to fix them up and release them for ROS Jade and Kinetic.

One change of note is that in the version of libgps in Ubuntu 16.04, the STATUS_DGPS_FIX flag was removed, so the gpsd_client package will be unable to indicate whether DGPS was used in a fix or not.

Otherwise, the API is unchanged; see http://wiki.ros.org/gps_common .

The node fix_translator converts sensor_msgs/NavSatFix messages to gps_common/GPSFix messages and vice versa. Usage examples:

Translate from NavSatFix to GPSFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from NavSatFix to GPSFix //-->
      <remap from="/navsat_fix_in"  to="/YOUR_NAVSATFIX_TOPIC"/>
      <remap from="/gps_fix_out"    to="/YOUR_GPSFIX_TOPIC"/>
  </node>

Translate from GPSFix to NavSatFix

  <node name="fix_translator" pkg="gps_common" type="fix_translator">
    <!-- Translate from GPSFix to NavSatFix //-->
       <remap from="/gps_fix_in"     to="/YOUR_GPSFIX_TOPIC"/>
       <remap from="/navsat_fix_out" to="/YOUR_NAVSATFIX_TOPIC"/>
  </node>

Only adjust the topic names after “to=” in each remap line.