nmea_serial_driver not working

asked 2021-02-16 08:59:33 -0500

liambroek gravatar image

updated 2021-03-25 04:19:16 -0500

Tom Moore gravatar image

I'm using ROS melodic on ubuntu 18. I am trying to use the nmea_navsat_driver with a sim808 GPS. I have followed the package tutorial, and when I run the node with

rosrun nmea_navsat_driver nmea_serial_driver _port:=/dev/ttyUSB0 _baud:=38400

and I get the following issues:

(I put the error messages in quotation marks because they would get edited out)

" [WARN] [1613486823.289509]: Skipped reading a line from the serial device because it could not be decoded as an ASCII string. The bytes were b'\x00\xff\x07\x0e\xf5&x\x00\x08tZ\xd4\xa5\x12\x00\xff\x07\x0e\xf7\x00\x00\x00\x08tZ\xfe\x07\x0f[\x00\x08t\xc0\x81\xa5' "

which repeats, along with:

" [WARN] [1613487189.345580]: Received a sentence with an invalid checksum. Sentence was: '' "

which will also repeat. I have tried using multiple different baud rates. I'm quite certain that the USB0 port is correct. I aim to use this to publish data for the robot localization package. Could someone please help me obtain the correct data or give suggestions for a way around this?

What I did notice is that when I hold the switch in on the sim808 and the network lights turn off, I get the same error messages.

edit retag flag offensive close merge delete

Comments

Any chance the baud rate is not as expected? The bytes don't look ASCII, so maybe try a bunch of other baud rates like 57600, 19200, 9600, etc.? If you have a logic analyzer handy (even a super cheap one), or an oscilloscope (super cheap is totally fine also), they can be helpful in this type of a situation to try to determine which side of the connection is the source of the problem.

Morgan gravatar image Morgan  ( 2021-02-18 23:51:16 -0500 )edit