Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Invalid NMEA sentences and RTCM write error #332

Open
taskbjorn opened this issue May 21, 2024 · 2 comments
Open

Invalid NMEA sentences and RTCM write error #332

taskbjorn opened this issue May 21, 2024 · 2 comments
Assignees
Labels
Active This issue is active and should not be marked stale bug Something isn't working

Comments

@taskbjorn
Copy link

Describe the bug
On my setup, NMEA sentences published by the GQ7 are occasionally empty or do not pass the checksum. This usually happens after some time (ranging from minutes to hours, but happens more often with high NMEA data rates), the NTRIP client log shows either of these two blocks of warnings, relating to:

  • A missing checksum
[ntrip_ros.py-9] [WARN] [1716296096.106033426] [ntrip_client]: Received invalid NMEA sentence. Sentence should have a "*" character to seperate the checksum, but we could not find it.
[ntrip_ros.py-9] [WARN] [1716296096.107601044] [ntrip_client]: Sentence: !�6h
[ntrip_ros.py-9] [WARN] [1716296096.108954746] [ntrip_client]: Invalid NMEA sentence, not sending to server
  • An invalid checksum
[ntrip_ros.py-9] [WARN] [1716296096.108954746] [ntrip_client]: Invalid NMEA sentence, not sending to server
[ntrip_ros.py-9] [WARN] [1716296867.293565107] [ntrip_client]: Found packet, but checksums didn't match
[ntrip_ros.py-9] [WARN] [1716296867.294513096] [ntrip_client]: Expected Checksum: 0x25B607
[ntrip_ros.py-9] [WARN] [1716296867.295463915] [ntrip_client]: Actual Checksum: 0x28B382

Some time after the first warnings appear, I can read a truncated error message from the microstrain_inertial_driver_node regarding a SIGHUP signal being received by the MIP SDK, and immediately after the following error message is flooded to the console:

[microstrain_inertial_driver_node-8] [ERROR] [1716317808.192041445] [gnss_ins]: Failed to write RTCM to device

From there onwards, the node is unable to process RTCM data and does not recover.

To Reproduce
Steps to reproduce the behavior:

  1. Run the microstrain_inertial_driver_node lifecycle node from the microstrain_inertial_driver package.
  2. Run the ntrip_ros.py node from the ntrip_client package.
  3. Wait for some time (a few minutes to a few hours).
  4. Observe the ntrip_ros log for NMEA warnings.
  5. Observe the microstrain_inertial_driver_node for RTCM write errors.

Expected behavior
I did not expect to read empty or corrupted NMEA sentences from the GQ7 AUX port. I also did not expect the ROS node to stop receiving RTCM data altogether with no attempt to recover.

Environment:

  • OS: Ubuntu 22.04
  • Architecture: x86_64
  • ROS Version: Humble Hawksbill
  • Version: 4.2.0
  • Sensor: 3DM-GQ7

Modifications
No modifications to source code, using the latest package ros-humble-microstrain-inertial-driver from the ROS Humble Hawksbill distribution.

Launch Parameters
See attached params.yml file.

Additional context
I am connecting to the GQ7 via two USB to DB9 cables, going from two USB 2.0 ports of my Linux machine running both ROS nodes to the MAIN and AUX ports of my GQ7. When ntrip_interface_enableand nmea_message_config are disabled , the sensor works perfectly.

I have tried the following:

  1. Switching to different ports did not make a difference.
  2. Changing baudrates on the MAIN and AUX ports did not make a difference.
  3. Removing all published NMEA sentences but one (gnss1_nmea_gga_data_rate) reduced the rate at which warnings appear, but did not eliminate the issue.
@taskbjorn taskbjorn added the bug Something isn't working label May 21, 2024
@github-actions github-actions bot added the New This issue is new, and should not be marked as stale label May 21, 2024
@robbiefish robbiefish added Active This issue is active and should not be marked stale and removed New This issue is new, and should not be marked as stale labels Jun 3, 2024
@robbiefish robbiefish self-assigned this Jun 3, 2024
@robbiefish
Copy link

Hi @taskbjorn,

I am taking a look at this now, but am currently unable to reproduce this.

I will note that these logs

[ntrip_ros.py-9] [WARN] [1716296096.108954746] [ntrip_client]: Invalid NMEA sentence, not sending to server
[ntrip_ros.py-9] [WARN] [1716296867.293565107] [ntrip_client]: Found packet, but checksums didn't match
[ntrip_ros.py-9] [WARN] [1716296867.294513096] [ntrip_client]: Expected Checksum: 0x25B607
[ntrip_ros.py-9] [WARN] [1716296867.295463915] [ntrip_client]: Actual Checksum: 0x28B382

Are not very well formed, but are saying that we received an Invalid NMEA sentence, and then, we received an RTCM message from the NTRIP caster that has an invalid checksum.

This makes me suspicious that this problem could be with the NTRIP caster. Can you provide any information about the caster you are using? Obviously not the username and password, but other information would be helpful. If you are uncomfortable sharing that information on Github, please feel free to reach out to me via email

@taskbjorn
Copy link
Author

Thank you for looking into this @robbiefish - I have sent you an email with more details on my NTRIP caster, but feel free to come back here if troubleshooting moves away from the NTRIP caster itself and if the conversation can be helpful to other users.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Active This issue is active and should not be marked stale bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants