Skip to end of metadata
Go to start of metadata

ROS provides a number of packages that can be used to convert GNSS solution data from the industry-standard NMEA 0183 representation into ROS-standard GNSS messages. Some of them are reviewed below.

nmea_navsat_driver

First, install the package. For example, on Ubuntu the package can be installed as follows (assuming ROS Indigo):

sudo apt-get install ros-indigo-nmea-navsat-driver

Then start the node:

roscore &
rosrun nmea_navsat_driver nmea_serial_driver _port:=/dev/serial/by-id/usb-Zubax_Robotics_Zubax_GNSS_34FFD305435730343944224300000000-if00

The long path can also be replaced with just TTY name, e.g. /dev/ttyACM0. Having started the node, open a second terminal and you’ll see the data:

$ rostopic echo /fix
header:
seq: 14
stamp:
secs: 1450103910
nsecs: 61619043
frame_id: /gps
status:
status: 0
service: 1
latitude: 00.6046158333
longitude: 00.7155701667
altitude: 228.17
position_covariance: [1.2544000000000002, 0.0, 0.0, 0.0, 1.2544000000000002, 0.0, 0.0, 0.0, 5.017600000000001]
position_covariance_type: 1
---

gpsd_client

This package requires that the system has a running gpsd installation. Read this article to see how to use gpsd with Zubax GNSS: Using Zubax GNSS with gpsd.

Having gpsd configured and running, install the ROS package gpsd_client and try it:

$ roscore &
$ rosrun gpsd_client gpsd_client &
$ rostopic echo /fix
header:
seq: 205
stamp:
secs: 1450104688
nsecs: 839999914
frame_id: ''
status:
status: 0
service: 1
latitude: 00.604582
longitude: 00.715618833
altitude: 231.312
position_covariance: [8.121, 0.0, 0.0, 0.0, 10.554, 0.0, 0.0, 0.0, 43.7]
position_covariance_type: 2
---
...