外观
踩坑GitHub hku-mars/FAST_LIO10 个月前
FAST_LIO点云时间戳float32精度丢失致传播失效
本文由 AI 根据公开内容整理,可能有误,请以原文为准:Question about timing(GitHub hku-mars/FAST_LIO #431)
状态:有绕过办法
问题
FAST_LIO将点云时间存入PointType的curvature字段(float32),与IMU的double时间戳比较进行前后向传播。当激光雷达时钟为自epoch起的纳秒级大数时,打包进float32会产生严重舍入误差,导致点云无法正确传播且无报错提示。
环境
FAST_LIO算法框架,Ouster等输出纳秒级绝对时间戳的激光雷达,ROS环境
解决办法
- 确保Lidar消息的ROS Header时间戳严格等于该帧点云中最早点的采集时间。
- 将点云curvature字段的时间单位转换为微秒(us),且数值必须是相对于ROS Header时间戳的偏移量,而非绝对时间。
- 保证同一帧消息内的点云按时间升序排列,最后一个点具有最大时间戳。
- 避免直接将纳秒级绝对时间戳赋值给float32类型的curvature字段,防止精度溢出导致运动补偿静默失效。
讨论原作者:@nathanieltagg 等,版权归原作者所有。
来源
本页事实对应的公开页面,以原文为准。
- GitHub hku-mars/FAST_LIO #431:Question about timing访问 2026-10-27