记录使用lio-sam的踩过的坑
TF_REPEATED_DATA ignoring data with redundant timestamp for frame base_link_lio at time 1682322962.340000 according to authority unknown_publisher
数据
某公司提供的数据包,里面有很多话题,包括 /minibus/front/lslidar_packets /minibus/rear/lslidar_packets /imu等,里面还有tf
坐标系的转换关系。
代码
某公司提供的雷神转pointcloud2的代码1
,自己写的mergePoints的代码2
,lio-sam源码3
问题描述
同时调用起代码1
2
3
,发现lio-sam显示的端建的图一直在漂,但是把拼接后的点云数据录包存下来,播放录下来的包,就不会飘。
开始一直从代码角度找问题,寻找错误所在。
最开始的错误是一个警告,具体提示错误为:[ WARN] [1698718203.580279449]: TF_REPEATED_DATA ignoring data with redundant timestamp for frame base_link_lio at time 1682322962.340000 according to authority unknown_publisher
,后来搜索这个警告,如图所示:
之后搜索上图中的警告,然后参考链接: link,再用命令roswtf
定位问题,如下图所示,图中说一个base_link_lio
被reparenting
了两次,接下来开始从tf角度解决问题。
解决问题
也就是说tf发布重复了,之后一点点找是谁多发了tf,先找的是自己写的代码1
,再找的是驱动代码2
中的tf发布,发现驱动也没有发布tf,都从broadcast中去找问题。最后怀疑是数据中发布的tf,然后还真是数据的问题。
最终采用命令rosbag play xiamengang_Truck3_918_20230830160116_sunny_zhongzai_2.bag --topic /minibus/front/lslidar_packets /minibus/rear/lslidar_packets /imu
,就实现了功能所需,可以不用录包,直接播放数据包中的部分话题,即可实现建图和定位。