Robotics StackExchange | Archived questions

nmea_navsat_driver ROS package and Emlid Reach GPS units

Hey everyone,

I'm having an issue that seems to only show up in a particular stack of software. First off, here's a link to a related post I've made: https://answers.ros.org/question/290071/nmea_navsat_driver-fix-topic-hangs-indefinitely/. This is the same general problem, but since then I've narrowed it down enough to feel like it warranted another post.

I'm encountering an issue that I'm wondering if anyone else has noticed or could sanity check for me. It seems that I can't echo or subscribe to the /fix topic only when I upgrade my GPS's software. I've posted this to the GPS's forums but haven't heard anything yet (https://community.emlid.com/t/reachview-2-11-and-ros-topics/11152).

Setup:

Issue:

When I run the nmeanavsatdriver's serial node, I can see the /fix topic with "rostopic list," and I can see it's being published by the serial node with "rostopic info /fix," but when I try to echo the messages or subscribe to them in another node, it hangs up indefinitely.

Workaround:

Oddly, if I downgrade Emlid's ReachView application to version 2.10 or lower, this problem resolves itself and I'm able to echo and subscribe to the /fix topic. If I upgrade to 2.11+, the issue comes right back.

Conclusion:

Uhh, I'm not really sure where this problem lives. I mostly wanted to see if anyone has encountered this, or if someone would be bored enough to try and replicate the issue. Also, I want to note that I'm a bit tied to the old Ubuntu and ROS versions because the robot we're using came with them and their firmware is a little too tied to ROS upgrade without breaking stuff.

Asked by popenc on 2018-09-13 08:46:04 UTC

Comments

I can see the /fix topic with "rostopic list," and I can see it's being published by the serial node with "rostopic info /fix,"

Note: rostopic info /fix shows you there is a publisher for that topic, not that anything is being published to it.

The rest of your description makes it ..

Asked by gvdhoorn on 2018-09-13 13:46:58 UTC

.. sound like nothing is being published.

If you want to be sure, edit the source code of nmea_sat_driver to output a log msg (ROS_INFO(..)) each time it actually publishes something to fix.

Asked by gvdhoorn on 2018-09-13 13:47:43 UTC

Btw, I see that you also posted ros-drivers/nmea_navsat_driver#53.

Cross-posting like that is considered bad form. Could I ask you to please not do that?

Asked by gvdhoorn on 2018-09-13 13:48:46 UTC

Sorry, I didn't realize it was bad form. I closed it over there. About the nothing being published, I can see data coming in if I print it to the terminal, just not when using with ROS. I'll try what you suggested.

Asked by popenc on 2018-09-13 14:12:37 UTC

About the nothing being published, I can see data coming in if I print it to the terminal

that is nice, but doesn't help us. If the format of the data output by the unit is changed because of the firmware upgrade, the ROS node could become incompatible. That could lead it to not publish. ..

Asked by gvdhoorn on 2018-09-13 14:13:38 UTC

.. that is what we're trying to establish here.

I've just checked and the driver is Python only, so changing it should be trivial. Just clone it in your workspace and edit the files. Then build and source.

Asked by gvdhoorn on 2018-09-13 14:14:19 UTC

Ok, that makes sense. I'll just close this for now, and put an answer up if I find one.

Asked by popenc on 2018-09-13 14:18:39 UTC

I don't think this needs to be closed: it's a perfectly valid ROS Answers question.

Please try instrumenting the driver and please report back with any results.

This way future readers may also benefit from this question.

Asked by gvdhoorn on 2018-09-13 14:59:20 UTC

Hi @popenc, Any update on this issue? Did you find an answer?

Asked by gustavo.velascoh on 2020-07-23 10:23:46 UTC

Answers