ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

gpsd_client with GLONASS and GPS?

asked 2017-11-28 02:27:31 -0500

johan gravatar image

updated 2017-11-30 02:48:36 -0500

I'm using the gpsd_client on kinetic with a GNSS receiver that uses both GPS and GLONASS and outputs a joint GNSS solution (GPS+GLONASS).

First of all, is the gpsd_client compatible with GLONASS, i.e., will it take in information about GLONASS satellites and display it in a relevant way? Perhaps related to this topic I seem to have some problems with the variables the topic /extended_fix:

  • satellites_used it around 8, indicating only GPS satellites
  • satellites_used_prn is only zeros, though the length is updated after satellites_used
  • satellites_visible is 24, which to me sounds like too many satellites even if both GPS and GLONASS is tracked.
  • position_covariance consists of zeros (however, for the topic /fix there are values that are updated)

I understand that the gpsd_client only displays the information from the gpsd. This means that part of my question is clearly about the function of the gpsd (and should be asked elsewhere): can the gpsd read NMEA messages from a joint GNSS solution (e.g. GPS+GLONASS, which is what you typically have in a modern GNSS receiver), i.e., read NMEA messages starting with GN.

The ROS part of my question is: can the gpsd_client work/display a joint GPS+GLONASS positioning solution together with correct information in the topic extended_fix and fix? I assume that the values for longitude, latitude, and height will be correct (i.e., the gpsd_client doesn’t care if it is a single GNSS solution or a multi-GNSS solution), assuming that the gpsd can decode the NMEA messages from a multi-GNSS positioning solution. It appears as if the gpsd_client at least can display data from a single GNSS, since the message sensor_msgs/NavSatStatus (included in topic fix) has a flag for which GNSS that is used. However, for the topic extended_fix, it is unclear if the satellite information is displayed correctly. Part of my question is therefore if the satellite_visible* variables can display information about satellites from several GNSS at the same time?

edit retag flag offensive close merge delete


gps vs glonass: Sounds more like a gpsd question, not ROS. gpsd_client will use whatever gpsd tells it to use. Compare the output with e.g. the cgps client program.

Humpelstilzchen gravatar image Humpelstilzchen  ( 2017-11-29 02:05:04 -0500 )edit

Also the position is calculated by your gps receiver, not gpsd. And what I've read so far the receivers will always use only one of gps, glonass, galileo, ... whatever is currently available and not any of them combined.

Humpelstilzchen gravatar image Humpelstilzchen  ( 2017-11-29 02:07:33 -0500 )edit

I’m glad that you have commented, but from your comments it appears as if you have not really read or understood my question. Perhaps I was a bit unclear. I will try to rephrase the question.

johan gravatar image johan  ( 2017-11-30 02:46:28 -0500 )edit

1 Answer

Sort by » oldest newest most voted

answered 2017-11-29 12:17:24 -0500

Humpelstilzchen gravatar image

Focusing only on the GPS vs GLONASS part, there are a few things to note:

  1. A GNSS receiver usually do output its calculated position with all additional information in the NMEA format which is agnostic of the satellite system used.

  2. The entire position with all additional information is calculated on the GNSS receiver, not in gpsd. The gpsd service does forward this to any application requesting this information.

  3. gpsd_client is 'just' a client program of gpsd. It will happily convert anything to a ros message whatever gpsd tells it to.

  4. What I've read so far many receivers will always use only one of gps, glonass, galileo, ... whatever is currently available and not any of them combined with some sort of priority. They try GPS first, if GPS does not work they try GLONASS and so on. So you should check the documentation of your GNSSS module if it does support multiple systems at the same time.

So any value in the /fix message from gpsd_client comes more or less directly from your GNSS receiver. It is the decision of the receiver if GLONASS is used. If in doubt about values like satellites visible compare the value with a known gpsd client program like cgps.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2017-11-28 02:27:31 -0500

Seen: 801 times

Last updated: Nov 30 '17