关于Velodyne LiDAR的时间同步.doc

上传人:白大夫 文档编号:3387863 上传时间:2019-08-20 格式:DOC 页数:5 大小:21KB
返回 下载 相关 举报
关于Velodyne LiDAR的时间同步.doc_第1页
第1页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《关于Velodyne LiDAR的时间同步.doc》由会员分享,可在线阅读,更多相关《关于Velodyne LiDAR的时间同步.doc(5页珍藏版)》请在三一文库上搜索。

1、关于Velodyne LiDAR的时间同步时间不同步的危害 如果一辆无人车上,装了很多传感器,如果各个传感器的时间是孤立的,比如传感器甲在自身时钟的T0时刻,发现有个目标出现;于此同时,传感器乙也看到这个目标,但传感器乙会根据自身时钟,认为当前是T1时刻,于是,当数据融合时,系统会错乱,到底是哪个时刻,出现的目标?如果对两个传感器的时钟都加以采信,如果这个目标是个移动的目标,那么, 系统会看到两个目标,也就是会出现“鬼影”。如果是众多时钟相互独立的传感器,他们的协同工作将是一团糟。时间同步的解决办法 毫秒级同步: 多采用NTP服务的方式,一般服务器和电脑就是这么同步的。纳秒级同步:多采用统一时

2、钟源的方式,而统一时钟源中,又多用GNSS时间对齐。(或者可以直接用GNSS接收机对齐时间)如果你的电脑,或者你的智能手表,想获取当前准确的时间,只要对公网上的某个NTP服务器,发出一个基于UDP的ntp request,远程的NTP服务器,就能给你返回一个含时间reply,这个时间经过客户端对网络时延的评估修正,被计算出来,它就是你所需要的时间。这适用于对时间精度不那么敏感的用户。如果你需要非常精确的同步(比如无人车,毫秒级的时间失步将是灾难性的),那么NTP显然不能满足需求,这时候,你就需要考虑采用统一时钟源的方式。统一的时钟源设备统一的时钟源设备在通讯机场和电力行业中,应用非常之广泛,特

3、别是光传输和4G基站,她们对时间同步的要求丝毫不亚于无人车传感器,甚至有过之而无不及,因此,我们可以参考下她们怎么做的。她们一般采用统一时钟源设备(一般几U高,安装在机架上),该设备由GPS / COMPASS / GLONASS / GALILEO提供授时。她的特点:内部有一个非常精准的主时钟(晶体振荡器),并且会用GNSS时钟信号不停的“驯服”该主时钟。在驯服晶振过程中能够不断“学习”晶振的运行特性,并将这些参数存入板载存储器中。当外部时间基准出现异常或不可用时,它能自动切换到内部守时状态,并依据板载存储器中的参数对晶体振荡器特性进行补偿,使守时电路继续提供高可靠性的时间信息输出,同时避免

4、了因晶体振荡器老化造成的频偏对守时指标的影响。目前绝大部分的无人车团队,相比已经成熟的通讯和电力行业而言,多采用GNSS接收机或惯导直接输出的PPS和GPRMCGPGGA信号来修正各个传感器的时间,特别是激光雷达的时间,这会有个问题,就是使得GNSS信号不好的时候,时间有反复跳变,半个小时可能有上百毫秒之巨。(原因是传感器本身的时间晶振无法做到很精确的内部守时,当然部分接收机也有类似时时钟同步设备的功能,丢失信号后,也会用内部系统模拟输出,但精度上,对比几十万一台的专业时钟设备,还是有不小的差距)PPS和GPRMC我们看一个典型的满足Velodyne要求的时钟信号:PPS信号的呈现五花八门,有

5、上升沿有效的,有下降沿有效的,有3.3V的5V的,也有-3.3V和-5V的,占空比多大的都有。Velodyne激光雷达对PPS的要求:默认低电平,拉高高电平时,上升沿有效,+3.3v或+5v均可,脉宽要控制在10微秒-200毫秒之间,也就是占空比要在80%以上;第二条线是输出GPRMC信号,这条线,要满足RS232电平标准。(如果你的设备输出UART电平,可以用一块MX232或者7404芯片转一下)。GPRMC信号要跟在PPS信号后面,也是一秒一个,很多GNSS默认是0.2秒一个,要注意修改,另外,GPRMC信号的末尾离下一个PPS的上升沿,至少要隔开300毫秒。我们一般这样建议,一个PPS上

6、升沿后,过300毫秒,开始输出GPRMC信号,这个是比较理想的。不知道你注意到没有,GPRMC的NMEA语句,仅仅精确到秒(以pre-2.3版本为例)$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A所以VelodyneLiDAR是怎么同步时间的激光雷达内部有两个时钟:(Timer 1和Timer II)Timer I:我们称之为微秒定时器,它的范围是0-999,999微秒Timer II: 我们称之为整秒定时器,它的范围是0-3599秒在未收到任何外来同步信号的时候,这两个timer正常工作,为激光雷达提供

7、系统时间。当PPS信号到来之后,若该PPS是合法有效的PPS(即PPS被锁定),那么,PPS上升沿,会去置零微秒定时器。当合法有效的GPRMC信号到来的时候,系统抽取GPRMC信号中的时间,换算成整秒,并将Timer II的时间重新赋值,赋值成GPRMC中的整秒时间。以上就是激光雷达的时间同步过程。你发现没有:激光雷达不能表达整小时以上的时间,也就是说,激光雷达只知道现在是几分几秒几毫秒几微秒,但是不知道现在是几月几号几点钟。所以,激光雷达被授予的,不是标准的UTC时间戳。我们称之为TOH时间(Top of Hour)数据包中的展现以VLP-16为例,如果你用tcpdump,那么数据包中有四个

8、时间戳,可不能搞混淆了:时间戳1 - 数据包接收时间戳这是接收系统(不是激光雷达)的时间戳,对于激光雷达而言,是然并卵的存在。时间戳2 - 位置数据包中NMEA语句,(UDP 8308, 如果你没有改端口的话)这个是最近一个收到的GPRMC下发的时间,你可以用来参考是否收到GPRMC信号。时间戳3 - 还是位置数据包中的时间戳:这个就是激光雷达自己的TOH时间,不过这个TOH时间出现在这里,仅仅表达的是当前位置数据包组包时的时间。最有用的,是时间戳4 - 主数据包时间戳:它直接参与点云XYZ坐标的计算,指代的第一个Block第一束激光的发射时,激光雷达自身的TOH时间,其他激光发射时间,要依据

9、手册中的时序表,添加固定的offset。(还记得TOH时间是怎么被同步的么?)控制页面中关于时间同步的一些按钮首先,是否要求GNSS接收机指示有效,因为在NMEA语句中,有一个字段是指示GNSS是否有效的,通常是等待卫星的锁定。如果选择ON,那么,GNSS必须确定有效,才能锁定PPS,如果选择OFF,那么,无论是否有效,PPS都会被锁定。就是这个字段,A表示有效,V表示无效,通常V是表示卫星未锁定。其次,PPS是否要求延时lock,意思是,收到了多少个电平合格的PPS后,才认为PPS被lock? 默认OFF,就使用2个,也就是第三个有效的pps后,开始锁定。如果你选择ON,你可以自己选择,从0

10、-65535个都行。不过没人会选那么大的值,一般3-5个之后就行。GPS Qualifier表示的是GPRMC信号是否有效,如果选择ON,则那个NMEA语句中,“V/A”字段会起效,只有当字段为A的时候,整秒定时器才会去跟随GPRMC指示时间。如果选择OFF,那么,无论如何都会去跟,并不关心那个“V/A”字段。Python抽取时间进行分析如何从pcap数据包中抽取时间,并加以一定的分析,Python是个好工具,墙裂推荐之这里不再赘述,常用的几个库socket,dpkg,matplotlib,numpy,pandas等,节选一点供简单参考:举个例子,如果你想对比是不是发生了时间跳变的现象,只需要把数据包中相应的时间戳拉出来,做个对比,就一目了然:好啦,就讲这么多,希望对大家平常的开发工作有所帮助。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1