livox_ros_driver
livox_ros_driver copied to clipboard
Set GPRMC synchronization time error code: -1.
-
平台:Nvidia Jetson Xavier
-
激光雷达:Livox Mid100
-
GPS模块:U-blox 6
-
问题:使用GPS时间同步失败,debug发现RMC的packet读取有问题,不能准确读取到GPRMC的信息。举例如下:
rmc:$GPGGA,085630.00,4000.00291,N,11619.62728,E,2,07,1.92,93.4,M,-8.8,M,,0000*70 $GPGSA,A,3,06,07,02,20,50,15,13,,,,,,3.32,1.92,2.70*0D Set GPRMC synchronization time error code: -1. Set GPRMC synchronization time error code: -1. Set GPRMC synchronization time error code: -1.其中rmc输出为ReceiveSyncTimeCallback函数的参数,理论上应该为每次pps的GPRMC值。怀疑common代码下的串口解析有问题。 -
其他信息:利用串口工具读取的GPS信息正常。 在Windows平台使用Livox SDK同步采集正常。
抱歉,Livox Mid100 不支持该功能
抱歉,Livox Mid100 不支持该功能
@Livox-SDK 请您说明白“不支持”的是什么功能。正如之前说的,在windows平台使用gps同步mid100是成功的,这个明显只是livox_ros_driver中代码的bug或者使用的时候配置的问题,而不是一句简单的“不支持”。mid100其实就是三个同步的mid40,要是mid100不支持gps同步,那意思是mid40也不支持了?
希望回复issue的时候能说明清楚。
通过把这个repo的TimeSync模块替换成Livox-SDK中的synchro模块,解决的GPS的bug问题。如果后续有遇到GPS解码失败的问题,可以参考https://github.com/meng-zha/livox_ros_driver
meng-zha,
不好意思,给您造成了困惑!
livox ros driver 中 GPS 协议解包部分,是一个 GPS 协议的解包框架,只要满足 GPS 协议格式(即‘$’开头,‘*’结尾,同时满足校验),都可以正确解析处理,例如:$GPGGA,$GPRMC,$GPGSV等等,都能被成功解析;
您的报错,应该是非 $GPRMC 格式的数据导致的,在设置回调之前,判断下是否是“$GPRMC”字符开始,再次增加过滤;
如果是这样,即使出现报错,也不影响实际的时间同步;
