从零开始学自动驾驶(4)——传感器时间同步

对应任佬tag6.0

首先时间同步包括两个部分:

(1)保证时钟源一致

问题:传感器的时钟源有钟漂,即使开始是进行了各传感器时间辍对齐,随着运行一段时间之后,之前对齐的结果仍然会出现偏离。

解决办法:把硬件的时钟源统一,常见做法是做一个脉冲发生器,所有的传感器都有该脉冲触发,每次触发都对自身时钟源进行矫正,这样可以消除累积误差。

(2)获取同一时刻的信息

问题:硬件同步以后,由于各传感器的采集时刻不是相同的,例如:在KITTI数据集中,雷达和imu都是10HZ,但是雷达每次采集时间较imu都要慢几十毫秒

解决办法:当我们想获得雷达从那几时刻的车体角速度和加速度信息时,就要对雷达前后时刻imu信息,通过插值计算出一个等效值,保护获取信息时刻相同。

程序同步方法设计

我们在ReadData函数里添加这段功能,即读取数据之后进行数据同步


 我们为了代码的简洁,依旧对代码进行了封装,下面来看具体实现,我们以imu时间同步为例

imu时间同步模块

数据在容器中是按照时间前后排列的,每个容器相当于构建了一条时间线,索引可以帮助我们快速定位数据的位置,用雷达与其他传感器的时间辍进行定位,找到imu数据在雷达前后两帧数据,然后做插值即可。。


 

 一些问题


这部分最后不应该删除数据,因为很可能成为下一帧雷达的前一时刻的数据信息


 

两个break换成return false是否更加合适

break: 使得跳出当前循环,还会继续运行下面代码

return false: 直接终止整个程序的运行,并不会继续运行下面代码

似乎是比较合适的,因为后面的工作已经没有意义了


 做了简单测试

return false 与 break区别

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值