激光雷达与相机触发

1. 介绍

用于自动驾驶的激光雷达必须支持与主机或其他传感器的时钟同步,同步精度通常要达到毫秒级。常见的同步技术有两种,一种是基于GPS的“PPS+NMEA”,另一种是基于以太网的IEEE 1588(或IEEE 802.1AS)时钟同步协议。

GPS能够从卫星获得高精度的时钟信号,因此通常作为整个系统的时钟源。常规的GPS单元都支持输出精确到毫秒的秒脉冲信号PPS和包含年月日时分秒信息的NMEA指令,通过PPS和NMEA的组合就能够实现对激光雷达或主机的毫秒级时钟同步。只要激光雷达支持基于RS232接口的PPS+NMEA时钟同步输入信号,就可以实现毫秒级的时钟同步。

PPS+NMEA的优点是协议简单,容易实现;缺点是必须基于RS232。多个设备之间实现同步比较困难。IEEE 1588(或IEEE 802.1AS)就成了最好的选择,1588是基于以太网的高精度时钟同步协议,能够实现以太网中多个从节点(各种传感器)与主节点(主机)之间的亚微秒级时钟同步,前提是所有节点之间都通过以太网互联,并且每个节点都支持1588协议。

如果激光雷达支持1588协议,就可以使用如下的架构实现时钟同步:

  1. 主机通过PPS+NMEA实现与GPS的时钟同步;
  2. 激光雷达等其他节点通过1588协议实现与主机的时钟同步;

激光雷达输出的数据中,除了每个点的(x,y,z)坐标之外,还有一个重要的字段就是时间戳。相对于相机,激光雷达是一个慢速扫描设备,每一帧点云中的不同点的时间戳是不一样的,以每秒10帧的激光雷达为例,每帧点云耗时100毫秒,每帧点云中的第一个点和最后一个点之间相差约100毫秒。扫描高速运动的物体时,原始点云是“变形”的,类似于用普通相机(非全局快门)在高铁上拍摄景物时都是歪的一样,必须利用点云中的时间戳对点云进行校正才能恢复被扫描物体的本来面貌。

激光雷达与主机或GPS实现高精度的时钟同步之后,就会基于这个时钟为每个激光点生成一个时间戳,有了这个时间戳,很多工作开展起来就方便多了,例如多传感器的融合等等。

相机的时钟同步要麻烦一些,常规相机(除非是定制的)都不支持与主机或其他传感器的时钟同步。解决方法是测量相机的平均延时d,然后以在主机上获取到图像帧时的主机时刻t减去这个延时(t-d)作为该帧图像的时间戳,用这个时间戳去找最匹配的点云。以帧率为25fps的相机为例,与任意帧率的激光雷达同步匹配的结果是,最大偏差≤20ms。这种方法的缺点很明显:相机图像的延时是不稳定的,尤其是通过以太网传输、需要编码/解码的相机。因此比较理想的方法是选择支持IEEE 1588(或IEEE 802.1AS)时钟同步协议的相机,确保相机的时钟与主机完全同步。然后为每一帧图像都增加一个时间戳,并确保在主机上能够读取到这个时间戳,这样就可以避免编码/解码、以及传输延时引入的同步误差。

通过上述方法能够将雷达和相机的同步精度控制在小于等于20ms的水平,对于慢速场景基本够了。如果要求更高的同步精度,就必须在雷达和相机的帧率和帧同步上下功夫了。通常激光雷达内含机械部件,帧率和帧同步都是不可控的,只有在相机上想办法。

简单的办法是选择更高帧率的相机,相机帧率从25fps增加到50fps时,最大同步偏差从≤20ms提升到≤10ms。

更彻底的解决方法是选择可以触发拍摄的相机(必须是硬件线控),根据激光雷达的帧周期同步触发相机的拍摄,实现雷达和相机的完全帧同步,实现完全的毫秒级同步。

2.方法

一般方案是用雷达触发摄像曝光。但是由于雷达一帧扫描周期挺长的一般是100ms左右,载具快速移动或目标的运动会导致点云很大的运动误差。而摄像头曝光几乎可以看成是瞬时完成的,运动误差可以忽略不计。因此即便完成了硬同步,还需要解决点云运动误差(包括载具引起的运动误差和目标运动引起的运动误差)的问题。此外,还需要解决联合标定的问题,才能开始进行数据融合。

  1. 买hesai pandora,省时省力,只是费钱;
  2. 找个能外部触发曝光的摄像头,自己弄个单片机对雷达报文进行解析,到了设定角度就产生触发电平信号,触发摄像头曝光,这种方案时间误差相对比较小。
  3. 用pc对摄像头采集的图像打上时戳t1,对雷达组好帧的数据也标记时戳t2,然后把雷达帧按照载具的运动轨迹推算到图像采集的时刻t1上去。说实话这种方法也不很靠谱,会受到传感器传输时延,操作系统调度时间,还有载具航位推算误差这些误差因素影响,另外设计起来也挺麻烦的。
  4. 提高摄像头帧率,然后在pc上对每一帧标记时戳,并缓存。对雷达组好帧的数据也标记时戳t1,然后在摄像头缓存序列中找到离t1最近的图像I,基本可以认为这帧图像I和t1时刻的点云数据之间是同步的,一般低速场景是够用了。

参考资料

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值