ros-drivers/nmea_navsat_driver

ROS2 Humble, Missing fields in the NEMA message, 'utf-8'

brjthomas opened this issue · 4 comments

[nmea_serial_driver-1] [WARN] [1698857840.799632234] [nmea_navsat_driver]: Value error, likely due to missing fields in the NMEA message. Error was: 'utf-8' codec can't decode byte 0xd9 in position 5: invalid continuation byte. Please report this issue at github.com/ros-drivers/nmea_navsat_driver, including a bag file with the NMEA sentences that caused it.

Running "$ros2 topic echo /fix" gives:

Screenshot from 2023-11-01 14-34-25

"$ros2 launch nmea_navsat_driver nmea_serial_driver.launch.py" outputs:

Screenshot from 2023-11-01 14-44-52

For reference I am using the GlobalSat BU-353-S4 USB GPS Receiver. https://www.amazon.ca/GlobalSat-BU-353-S4-Receiver-Black-Improved-New/dp/B098L799NH?th=1

In my case, I used "ros2 run nmea_navsat_driver nmea_serial_driver" not a launch file. So, It worked well
and you have to check baudrate and port ttyUSB0~

In my case:

  1. baud rate
  2. port name
  3. frame_id

0xd9 is not a valid character value for ASCII (or even UTF-8). NMEA sentences may only contain ASCII characters. If you're getting this byte from your device, it means one of three things:

  1. Your device outputs invalid data containing non-ASCII characters, and therefore is not producing valid NMEA sentences. (Unlikely.)
  2. Your serial port's baud rate is not set the same as your device, which is causing the serial port to produce garbage data.
  3. This is a transient error that only occurs when the serial port first connects, in which case it can be ignored.