自动驾驶中的时间同步方式有哪些?

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

作者丨iGear@知乎

来源丨https://www.zhihu.com/question/542773778/answer/2570907013

编辑丨计算机视觉life

自动驾驶中,哪些功能和模块需要进行时间同步,如何进行时间同步?

作者:iGear

为什么需要时间同步:

在自动驾驶中,需要用到很多传感器的数据(Lidar,Camera,GPS/IMU),如果计算单元接收到的各传感器的消息时间不统一,则会造成例如障碍物识别不准等问题。

时间同步包含哪些内容:

自动驾驶中,时间同步可以分为几部分的内容:统一时钟源,硬件同步,软件同步。其中硬件时间同步主要针对相机。

Part1统一时钟源

0e1b7358e6cde4db59b8f7eb0be545b9.png

图片来源:见水印,来自于 @喝苦咖啡的小阿飞在自动驾驶领域,如何实现激光雷达和相机的时间同步呢?下的回答

假设各传感器都有自己的内部时钟,但由于每个时钟的钟漂不一样,导致各时钟之间存在时间差,所以需要统一各传感器的时间源。

一般采用GPS时间作为统一时间源,通过GPS给各个传感器提供基准时间,各传感器根据提供的基准时间校准各自的时钟时间。

各传感器根据已经校准后的各自时间为各自独立采集的数据加上时间戳信息,来做到所有传感器时间戳同步。

统一时钟源的常见方式有两种,一种是基于GPS的“PPS+NMEA”,另一种是基于以太网的IEEE 1588(或IEEE 802.1AS)时钟同步协议

1PPS+NMEA

GPS能够从卫星获得高精度的时钟信号,因此通常作为整个系统的时钟源。常规的GPS单元都支持输出精确到毫秒的秒脉冲信号PPS和包含年月日时分秒信息的NMEA指令,通过PPS和NMEA的组合就能够实现对激光雷达或主机的毫秒级时钟同步。具体可参考:时间同步,自动驾驶里的花好月圆

PPS+NMEA的优点是协议简单,容易实现;缺点是必须基于RS232。多个设备之间实现同步比较困难。

2PTP(IEEE 1588或IEEE 802.1AS)

PTP(Precision Time Protocol,1588 V2)是基于以太网的高精度时钟同步协议,能够实现以太网中多个从节点(各种传感器)与主节点(主机)之间的亚微秒级时钟同步,前提是所有节点之间都通过以太网互联,交换机支持PTP协议,并且每个节点都支持PTP协议。

与PTP同时出现的还有一种NTP,即网络时间协议,不同的是PTP是在硬件级实现的,NTP是在应用层级别实现的。

Part2硬件同步

7b2dd3fdf2446e4a116d6200d762b882.png

图片来源:见水印,来自于@喝苦咖啡的小阿飞 在自动驾驶领域,如何实现激光雷达和相机的时间同步呢?下的回答

由于每种传感器的采样频率不一致,如lidar通常为10Hz,camera通常为25/30Hz,不同传感器之间的数据传输还存在一定的延迟,那么可以通过寻找相邻时间戳的方法找到最近邻帧,但如果两个时间戳相差较大,且传感器或障碍物又在运动,那么最终会得到较大的同步误差。这个情况可以采用硬件同步触发的方法来缓解查找时间戳造成的误差现象。引用@喝苦咖啡的小阿飞在自动驾驶领域,如何实现激光雷达和相机的时间同步呢?下的回答

那如何实现硬件同步呢?也就是在激光雷达和相机的时间源都统一到GPS时间后,如何保证他们同步触发采集呢?方式是以PPS信号为触发信号,实现激光雷达和相机均在PPS信号上升沿的时候采集数据,且打上各自时钟的时间戳。由于PPS的频率只有1Hz,所以通常需要一个设备把PPS信号转发为任意频率、但是跟PPS信号同相位的方波,这样就可以控制相机的采集频率了。

用外部信号触发相机比较好理解,那如何保证激光雷达在PPS信号上升沿的时候采集数据呢?激光雷达制造商想出了一个相位锁定功能,也就是输入PPS,但PPS上升沿到来时,激光雷达的激光束恰好旋转到一定的角度。

于是乎,我们设置激光雷达的相位锁定角度为相机视野中央,如果相机视野朝着车辆正前方,激光雷达的坐标系也是朝着车辆正前方的话,相位锁定角度应该是0度。那么问题就这样解决了,每当激光雷达的激光束旋转到0度位置,也就是相机视野正中央,PPS上升沿刚好到来,相机也因此触发,就这样就实现了激光雷达和相机的同步采集。

但是,由于激光雷达和相机采集数据的方式不同,我们只能近似地保证激光雷达和相机的同步采集。如下图所示,激光雷达的激光束不断地360度旋转,假设帧率为10Hz的话,那么一帧点云中采集时刻最早的一个点和采集时刻最晚的一个点时间相差100ms。而相机就不同了,相机是瞬间曝光的,因此图像里面所有像素点的采集时刻都是一样的。这就导致了我们只能近似地保证激光雷达和相机的同步采集。具体方法就是当激光束旋转到相机视野中央的时候,触发相机,这样就保证了相机视野内的点云采集时间是跟图像采集时间是近似的。为什么说是近似的呢?对于相机视野中央的那些点云,它们的采集时间是跟图像采集时间一致的,但是对于相机视野边缘的那些点云,它们的采集时间就跟图像采集时间要有一定的时间偏差了,根据相机视野的大小和点云采集帧率的不同,时间偏差可能会有5ms~20ms左右。

另外还涉及到点云分帧的概念,详情参考激光雷达与相机时间同步问题的低成本完整解决方案 以及相机的曝光读出概念,详情参考激光雷达与相机标定的时间戳同步问题

3893b9e2e1aa8af50414a0ee8335ac0f.png图片来源:来自于CSDN打工人小谢的文章


 
 
下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值