liosam 速腾RoboSense 32线激光雷达数据适配,timestamp位数不够

首先是时间,RS的点云的时间是绝对时间,所以不能用加法。

自定义一个sensor类型KJW,随便什么名,我后来改为RS32了,因为是robosense32线

修改过后,scan start和end差距过大,六十多秒。

这里的timestamp要double转float,这里有个古老知识要复习,float是32位,有23位是数字,为什么只有8位一样?

首先,float 是 32位, 其中有23位用于存放尾数, 带有一个固定隐含位… 所以float的有24个二进制有效位位数.

其次,2^24共有8个十进制位. 所以有些编译器 float的有效数字位是 8位 , 有些有效数字位是 7位.(注意不是小数的位数, 是有效数字位)

而double有15~16位有效数字。

所以,timestamp用float是装不下的,所以需要把lio-sam的数据结构改double,从需求看,整数秒有10位,多出5位比毫秒还低,足够用了。

然后直接改VelodynePointXYZIRT的time数据类型为double就好了

不一定要修改这个,只是因为using PointXYZIRT = VelodynePointXYZIRT;

自己定义一个

最后就是回到问题原点,这里不要再加float转换了,不然白改。

别忘了yaml也一起改了,N_SCAN:32,Horizon_SCAN:1800

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值