GPS error receiving data
Hi,
I am running ROS noetic on a Odroid N2+ board. a board with a main CPU based on big.Little architecture which integrates a quad-core ARM Cortex-A73 CPU cluster and a dual core Cortex-A53 cluster with a Mali-G52 GPU.
Im using a GPS GARMIN 18XPC, with an RS232-USB adapter, to read data from it.
Also, I am using both: nmeanavsat and gpsumd ROS packages
When i read data with the comand:
rosrun nmea_navsat_driver nmea_serial_driver _port:=/dev/ttyUSB0 _baud:=38400
The topic /fix is empty. But when i use
rosrun nmea_navsat_driver nmea_serial_driver _port:=/dev/ttyUSB0 _baud:=19200
I got and instanteneous meesage with this output:
[WARN] [1631765620.672708]: Received a sentence with an invalid checksum. Sentence was: '\x12\x14\x15\x14\x15'
[WARN] [1631765620.678080]: Received a sentence with an invalid checksum. Sentence was: '\x02\t\x1a\x02\t\x13\t\x02\x02'
[WARN] [1631765620.682416]: Received a sentence with an invalid checksum. Sentence was: '\x13'
[WARN] [1631765620.688410]: Received a sentence with an invalid checksum. Sentence was: '\x02\t\x12\x02\t\x13\x19\t\t\t\t\t\x12\t\x02'
[WARN] [1631765620.699708]: Received a sentence with an invalid checksum. Sentence was: '\x12\t\x13'
[WARN] [1631765620.705498]: Received a sentence with an invalid checksum. Sentence was: '\x12\t\x13\t\x04'
[WARN] [1631765620.711216]: Received a sentence with an invalid checksum. Sentence was: '\x12\x14\x15\x14\x05\x15\t\x02'
[WARN] [1631765620.715642]: Received a sentence with an invalid checksum. Sentence was: '\x02\x19\x0c\x0c\t\x1a\x02\t\x13'
[WARN] [1631765620.721294]: Received a sentence with an invalid checksum. Sentence was: '\x13\t\r\x19\x13\t\x13\x13'
and topic /fix is still empty.
I also used gtkterm to evaluate the port and I received this "binary Xff " characters. BUt when i tried gtkterm on the pc, it shows coherent mesages.
¿Can you recomend me a solution? . .
Additional info:
My Env Variables:
- ROS_VERSION=1
- ROSPYTHONVERSION=3
- ROSPACKAGEPATH=/home/odroid/catkin_ws/src:/opt/ros/noetic/share
- ROSLISPPACKAGEDIRECTORIES=/home/odroid/catkin_ws/devel/share/common-lisp
- ROSETCDIR=/opt/ros/noetic/etc/ros
- ROSMASTERURI=http://localhost:11311
- ROS_ROOT=/opt/ros/noetic/share/ros
- ROS_DISTRO=noetic
Asked by Johart24 on 2021-09-15 23:19:00 UTC
Answers
In the documentation https://wiki.nps.edu/display/RC/Garmin+GPS18x says that "To interpret the fix message you need to know that it is a message of type NavSatFix."
You look at the structure: http://docs.ros.org/en/api/sensor_msgs/html/msg/NavSatFix.html
So I suggest you look on ways to read NavSatFix messages in ROS, there is a question that might help you as well #q288031
Asked by osilva on 2021-09-17 06:53:14 UTC
Comments
@Johart24 More fundamentally, you need to look at the Garmin documentation and then configure the baud rate correctly. Don't guess.
Asked by Mike Scheutzow on 2021-09-18 08:30:16 UTC
I am not guessing. Right Baud Rate is 19200. It woks on my laptop, using Putty or Gtkterm, but not in the SBC.
Asked by Johart24 on 2021-09-18 10:55:14 UTC
Comments
It was the SERIAL-USB cable. I recomend to use FTDI or PROLIFIC standard in order to get more secure results. I changed the cable and all works fine
Asked by Johart24 on 2022-03-11 18:44:49 UTC