Livox_mapping 中tf的timestamp不更新/错误更新

文章讲述了作者在使用Livox_mapping进行路径规划时遇到的odom与maptf无法更新的问题,原因是Livox_mapping中时间戳发布错误导致。通过将关键时间变量从float改为double类型,解决了这个问题,最终导航显示恢复正常。
摘要由CSDN通过智能技术生成

项目场景:

笔者在使用Livox_mapping的点云地图做路径规划时,启动move_base发现odom(camera_init) 与map之间的tf无法正常更新,但tf_tree却显示两者之间正常连接。


问题描述

1. move_base报错,找不到 transform from frame [aft_mapped] to frame [map]

Extrapolation Error looking up robot pose: Lookup would require extrapolation 2.254647634s into the past.  Requested time 1693479424.000000000 but the earliest data is at time 1693479426.254647732, when looking up transform from frame [aft_mapped] to frame [map]

发现是aft_mapped和map没有即使更新,往前查Livox_mapping的原因。

2. Livox_mapping warning :  时间戳重复

 TF_REPEATED_DATA ignoring data with redundant timestamp for frame aft_mapped at time 1693537024.000000 according to authority unknown_publisher

 


原因分析:

根本原因是Livox_mapping中发布tf [aft_mapped] to frame [camera_init] 时时间戳更新错误,一直打的同一个时间戳。

在代码中每个timestamp调试后发现:

laserCloudCornerLast2 在赋值时前后出现了错误。

 

laserCloudCornerLast2 定义为float,在赋值出现了精度损失

 


解决方案:

// float timeLaserCloudCornerLast = 0;
// float timeLaserCloudSurfLast = 0;
// float timeLaserCloudFullRes = 0;
double timeLaserCloudCornerLast = 0;
double timeLaserCloudSurfLast = 0;
double timeLaserCloudFullRes = 0;

把float换成double

最后用Livox HAP 导航显示正常:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值