GPS RTK Support for ROS 2 Jazzy – Any Recommended Wrappers or Drivers?

I’m working on integrating a GPS RTK system into a robot running ROS 2 Jazzy, and I’m looking for RTK GPS solutions that are specifically built for this ROS 2 Jazzy.

So far, I’ve come across some general GPS RTK-compatible packages, but I’m wondering if there are any officially maintained drivers, wrappers, or recommended devices that work seamlessly with ROS 2 Jazzy?

Septentrio has quite good ROS drivers. Recently they even stopped sending -20000000 instead of NaNs :smiley: But jokes aside, we use their driver heavily and it works very well.

Nice, Is it possible to fuse Septentrio GNSS data with other sensors’ data such as odometry, camera, IMU, and other data with EKF technique in ROS 2 Jazzy to provide better localization using Nav2 packages https://docs.nav2.org/? Given intermittent GPS availability (e.g., urban environments, tunnels), what you would use additional approaches for improving localization?

A lot of GPS devices can be setup to output NMEA messages for which there is the nmea_navsat_driver.

The robot_localization package works well for fusing this data.

Some form of SLAM is likely the approach to use when that is unavailable. Unless dead reckoning is suitable for the application in mind.

The gps_common package is a wrapper around GPSd. We’ve successfully used it with the ArduSimple RTK systems and a couple of other uBlox based RTK receivers.

There is also a dedicated ublox driver by kumar robotics that additionally supports stuff like moving base.
Regarding loss of signal, multi path etc. Kalman filters like robot_localization are helpful with that but only to a certain degree. Mostly because many GNSS receivers are too slow at recognising the degrading accuracy and thus updating the covariance matrix.