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:
"$ros2 launch nmea_navsat_driver nmea_serial_driver.launch.py" outputs:
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:
- baud rate
- port name
- 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:
- Your device outputs invalid data containing non-ASCII characters, and therefore is not producing valid NMEA sentences. (Unlikely.)
- Your serial port's baud rate is not set the same as your device, which is causing the serial port to produce garbage data.
- This is a transient error that only occurs when the serial port first connects, in which case it can be ignored.