时间同步方法和装置与流程

文档序号:17323733发布日期:2019-04-05 21:40阅读:289来源:国知局
时间同步方法和装置与流程

本发明涉及导航技术领域,特别是涉及一种时间同步方法和装置。



背景技术:

在自动驾驶领域,激光雷达(lidar)和摄像头(camera)常见的两种传感器。

在自动驾驶技术中,lidar可以通过激光扫描到障碍物,生成点云数据,该点云数据具有时间戳。camera可以对障碍物进行拍摄生成图像,车辆的嵌入式系统可以从camera采集到其拍摄的图像数据,并为其添加时间戳。但是,由于嵌入式系统的实时性较差,很难实现亚毫秒等精细级别的精准定时,因此导致嵌入式系统对图像数据添加的时间戳不够精准,并非是camera对图像的准确曝光时间。

那么camera的图像数据与lidar的点云数据之间就会存在时间戳的误差,而误差会导致预标定数据错误甚至无法进行标定,也会给后面实际的融合和控制等各个环节带来不便。



技术实现要素:

本发明提供了一种时间同步方法和装置,以解决相关技术中无法对摄像头的曝光时间进行精准控制的问题。

为了解决上述问题,根据本发明的一个方面,本发明公开了一种时间同步方法,包括:

接收推荐定位信息gprmc数据包;

确定所述gprmc数据包的接收时间;根据所述接收时间以及pps信号的触发时间,计算第一时间戳;

若接收到pps信号,则控制摄像头曝光;

接收所述摄像头拍摄的图像数据;

将所述第一时间戳与所述图像数据合成,生成具有第一时间戳的图像数据。

所述确定所述gprmc数据包的接收时间,包括:

在接收到所述gprmc数据包之后,对所述gprmc数据包进行解析,得到时间帧;

对所述时间帧进行解析,得到世界协调时间utc时间戳;

将所述utc时间戳确定为所述gprmc数据包的接收时间。

可选地,所述将所述第一时间戳与所述图像数据合成,生成具有第一时间戳的图像数据之前,所述方法还包括:

提取所述第一时间戳的秒级别以下的时间戳;

所述将所述第一时间戳与所述图像数据合成,生成具有第一时间戳的图像数据,包括:

将所述秒级别以下的时间戳与所述图像数据合成,生成具有第一时间戳的图像数据。

可选地,所述将所述第一时间戳与所述图像数据合成,生成具有第一时间戳的图像数据之后,所述方法还包括:

确定激光雷达的点云数据队列,其中,所述点云数据队列包括多个点云数据,每个点云数据具有第二时间戳;

确定所述摄像头对应的图像数据队列,其中,所述图像数据队列包括多帧所述图像数据,每帧所述图像数据具有第一时间戳;

针对所述点云数据队列中的每个第二目标时间戳,在所述图像数据队列中查找与所述第二目标时间戳时间最接近的第一目标时间戳;

确定所述第一目标时间戳在所述图像数据队列中所处的第一位置;

确定所述第二目标时间戳在所述点云数据队列中所处的第二位置;

建立所述点云数据队列的所述第二位置与所述图像数据队列的所述第一位置之间的对应关系。

可选地,所述建立所述点云数据队列的所述第二位置与所述图像数据队列的所述第一位置之间的对应关系之后,所述方法还包括:

保存所述对应关系;

所述建立所述点云数据队列的所述第二位置与所述图像数据队列的所述第一位置之间的对应关系,包括:按照预设周期建立所述点云数据队列的所述第二位置与所述图像数据队列的所述第一位置之间的对应关系;

根据最近一次建立的对应关系对保存的所述对应关系进行更新。

可选地,所述建立所述点云数据队列的所述第二位置与所述图像数据队列的所述第一位置之间的对应关系之后,所述方法还包括:

确定所述点云数据队列中待同步的目标点云数据以及所述目标点云数据在所述点云数据队列中所处的第二目标位置;

在所述对应关系中查找与所述第二目标位置对应的第一目标位置;

从所述图像数据队列提取位于所述第一目标位置的目标图像数据;

将所述目标点云数据和所述目标图像数据,确定为具有相同时间戳的数据。

根据本发明的另一方面,本发明还公开了一种时间同步装置,包括:

第一接收模块,用于接收推荐定位信息gprmc数据包;

第一确定模块,用于确定所述gprmc数据包的接收时间;

同步模块,用于根据所述接收时间以及pps信号的触发时间,计算第一时间戳;

控制模块,用于若接收到pps信号,则控制摄像头曝光;

第二接收模块,用于接收所述摄像头拍摄的图像数据;

生成模块,用于将所述第一时间戳与所述图像数据合成,生成具有第一时间戳的图像数据。

可选地,所述第一确定模块包括:

第一解析子模块,用于在接收到所述gprmc数据包之后,对所述gprmc数据包进行解析,得到时间帧;

第二解析子模块,用于对所述时间帧进行解析,得到世界协调时间utc时间戳;

确定子模块,用于将所述utc时间戳确定为所述gprmc数据包的接收时间。

可选地,所述装置还包括:

第一提取模块,用于提取所述第一时间戳的秒级别以下的时间戳;

所述生成模块,还用于将所述秒级别以下的时间戳与所述图像数据合成,生成具有第一时间戳的图像数据。

可选地,所述装置还包括:

第二确定模块,用于确定激光雷达的点云数据队列,其中,所述点云数据队列包括多个点云数据,每个点云数据具有第二时间戳;

第三确定模块,用于确定所述摄像头对应的图像数据队列,其中,所述图像数据队列包括多帧所述图像数据,每帧所述图像数据具有第一时间戳;

第一查找模块,用于针对所述点云数据队列中的每个第二目标时间戳,在所述图像数据队列中查找与所述第二目标时间戳时间最接近的第一目标时间戳;

第四确定模块,用于确定所述第一目标时间戳在所述图像数据队列中所处的第一位置;

第五确定模块,用于确定所述第二目标时间戳在所述点云数据队列中所处的第二位置;

关联模块,用于建立所述点云数据队列的所述第二位置与所述图像数据队列的所述第一位置之间的对应关系。

可选地,所述装置还包括:

保存模块,用于保存所述关联模块建立的所述对应关系;

所述关联模块,还用于按照预设周期建立所述点云数据队列的所述第二位置与所述图像数据队列的所述第一位置之间的对应关系;

更新模块,用于根据所述关联模块最近一次建立的对应关系对保存的所述对应关系进行更新。

可选地,所述装置还包括:

第六确定模块,用于确定所述点云数据队列中待同步的目标点云数据以及所述目标点云数据在所述点云数据队列中所处的第二目标位置;

第二查找模块,用于在所述对应关系中查找与所述第二目标位置对应的第一目标位置;

第二提取模块,用于从所述图像数据队列提取位于所述第一目标位置的目标图像数据;

第七确定模块,用于将所述目标点云数据和所述目标图像数据,确定为具有相同时间戳的数据。

根据本发明的再一方面,本发明还公开了一种终端,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的时间同步程序,所述时间同步程序被所述处理器执行时实现如上述任一项所述的时间同步方法的步骤。

根据本发明的又一方面,本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有时间同步程序,所述时间同步程序被处理器执行时实现如上述任一项所述的时间同步方法中的步骤。

与现有技术相比,本发明包括以下优点:

本发明实施例的方法在接收到gprmc数据包之后,可以根据gprmc数据包的接收时间以及pps信号的触发时间来计算第一时间戳,以及利用pps信号控制摄像头曝光,并将第一时间戳作为摄像头曝光拍摄的图像的时间戳信息,使得拍摄的图像的时间戳即为该图像的拍摄时间,实现了对摄像头的曝光时间的精准控制,且拍摄的图像数据具有精准的时间戳。

附图说明

图1是本发明的一种时间同步方法实施例的步骤流程图;

图2是本发明的另一种时间同步方法实施例的步骤流程图;

图3是本发明的又一种时间同步方法实施例的步骤流程图;

图4是本发明的一种时间同步装置实施例的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

参照图1,示出了本发明的一种时间同步方法实施例的步骤流程图,该方法可以应用于主机,具体可以包括如下步骤:

步骤101,接收gprmc数据包;

其中,gps(globalpositioningsystem,全球定位系统)可以向激光雷达发送gprmc(推荐定位信息)数据包;

本发明实施例的主机可以从激光雷达处接收gprmc数据包,或者,本发明实施例的主机也可以直接从gps接收gprmc数据包。

本发明对于主机接收到的gprmc数据包来自哪个对象并不具体限制。

步骤102,确定所述gprmc数据包的接收时间;

其中,在接收到gprmc数据包之后,就可以确定该gprmc数据包的接收时间。

其中,步骤102的执行时机为步骤101执行结束后立即触发。

可选地,在一个实施例中,在执行步骤102时,可以在接收到所述gprmc数据包之后,对所述gprmc数据包进行解析,得到时间帧;然后,对所述时间帧进行解析,得到utc(coordinateduniversaltime,世界协调时间)时间戳;最后,将所述utc时间戳确定为所述gprmc数据包的接收时间。

具体而言,由于gprmc数据包可以包括utc时间戳、定位、经纬度等等信息,因此,可以对接收到的gprc数据包进行解析,从而得到时间帧,其中,时间帧也是数据包形式,因此,还需要对时间帧进行解析,从而提取到时间帧中的utc时间戳,这里的utc时间戳即为该gprmc数据包的接收时间。

例如步骤101的gprmc数据包的接收时间(即这里的utc时间戳)为t1,那么对接收到的gprmc数据包进行解析的触发时机即为t1结束时,即gprmc数据包接收完毕,即触发对gprmc数据包的解析,从而得到utc时间戳。

这样,本发明实施例可以通过对gps的gprmc数据包进行解析来提取utc时间戳信息,该utc时间戳通常为秒级,精度高的设备可以做到毫秒级,因此,该utc时间戳是秒级别精准的。

此外,gps还可以向激光雷达发送pps信号(pulsepersecond,秒脉冲信号);因此,本发明实施例的主机可以从激光雷达处接收pps信号,或者,本发明实施例的主机也可以直接从gps接收pps信号。

本发明对于主机接收到的pps信号来自哪个对象并不具体限制。

所以,如图1所示,在步骤101之后,即gprmc数据包接收完毕之后,则本发明实施例的主机可以在一秒内等待接收pps信号的触发。

步骤103,根据所述接收时间以及pps信号的触发时间,计算第一时间戳;

所谓pps信号的触发时间,即接收到pps信号的时间。

具体而言,如果主机接收到pps信号(即pps信号被触发),则立即对步骤102得到的接收时间进行增加一秒的操作,例如对utc时间戳增加一秒,从而得到第一时间戳。其中,pps信号每秒发送一次。

步骤104,若接收到pps信号,则控制摄像头曝光;

此外,如果主机接收到pps信号,还会立即触发主机控制摄像头进行曝光,从而摄像头可以进行曝光拍照。

其中,步骤103和步骤104的执行时机一致,都是在接收到pps信号后立即触发。而该pps信号是在步骤101之后接收到的首个pps信号。具体而言,可以在步骤101之后,在一秒内等待接收pps信号,如果接收到pps信号,则触发步骤103和步骤104的执行。

具体而言,可以在步骤101之后的一秒内等待接收pps信号,若接收到pps信号,则可以以pps信号的边沿来作为步骤103和步骤104的触发时机。

虽然本发明实施例的方法可以从gps的gprmc数据包中提取utc时间戳,但是utc时间戳的精度只能达到秒级(例如utc时间为10:34:21,十点三十四分二十一秒),且主机接收到utc时间戳也会有延时,因此不够准确,那么为了准确控制摄像头的曝光时间,可以借助于精度更高(可以到纳秒级,并且没有累积误差)的pps信号的边沿来标识utc的整秒时刻,其中,gps的pps信号可以一整秒钟发送一个,则接收到pps信号的边沿的时间为10:34:22:00:00:00:00。那么对utc时间增加1秒后,第一时间戳的时间为10:34:22:00:00:00:00。

而由于gps的信号是与基准时钟对齐的,经过如上操作得到的第一时间戳与pps信号的整秒时刻看齐,因此,第一时间戳是与基准时钟对齐的。并且,摄像头曝光的时间即为第一时间戳的时间,所以,本发明实施例的方法能够准确的对摄像头的曝光时间进行控制,并控制其曝光时间与基准时钟对齐。

这样,本发明实施例可以通过对gps的gprmc数据包进行解析来提取utc时间戳信息,再通过pps信号边沿校准,可以得到较高精度的亚毫秒级的基准时间,便于准确的控制摄像头的曝光时间。

另外,需要说明的是,gprmc数据包和pps信号是两个相互独立的信号。

步骤105,接收所述摄像头拍摄的图像数据;

其中,主机可以接收来自摄像头的经过步骤104之后拍摄的图像数据。

步骤106,将所述第一时间戳与所述图像数据合成,生成具有第一时间戳的图像数据。

其中,可以将第一时间戳添加到图像数据,生成具有第一时间戳的图像数据。

本发明实施例的方法在接收到gprmc数据包之后,可以根据gprmc数据包的接收时间以及pps信号的触发时间来计算第一时间戳,以及利用pps信号控制摄像头曝光,并将第一时间戳作为摄像头曝光拍摄的图像的时间戳信息,使得拍摄的图像的时间戳即为该图像的拍摄时间,实现了对摄像头的曝光时间的精准控制,且拍摄的图像数据具有精准的时间戳,也便于后续的雷达信号与图像信号的时间对齐。

可选地,在步骤106之前,根据本发明实施例的方法还可以包括:

提取所述第一时间戳的秒级别以下的时间戳。

其中,可以对第一时间戳进行拆分,得到分钟级别以上(包括分钟)的时间戳(例如包括年、月、日、时、分)以及秒级别以下(包括秒)的时间戳(例如包括秒、毫秒)。

那么在执行步骤106时,则可以将所述秒级别以下的时间戳与所述图像数据合成,生成具有第一时间戳的图像数据。

由于激光雷达的点云数据的时间戳与gps的gprmc数据包的时间戳在分钟级别以上是对齐的,即与基准时钟是一致的,但是在秒级别以下是存在误差的。而摄像头拍摄的图像数据的第一时间戳又是基于gprmc数据包的时间戳而生成,因此,激光雷达的点云数据的时间戳与摄像头拍摄的图像数据的时间戳在分钟级别以上是对齐的,但是在秒级别以下也是存在误差的,所以,为了提升对时间戳对齐的处理效率,可以对第一时间戳提取秒级别以下的时间戳,从而使得摄像头拍摄的图像的时间戳为秒级别以下,那么后续只需对激光雷达的点云数据的时间戳与摄像头的图像数据的时间戳进行秒级别以下的对齐处理,无需对已经对齐的分钟级别以上的时间戳进行处理,提升系统性能,减少资源占用。

可选地,在步骤106之后,参照图2,根据本发明实施例的方法还可以包括:

步骤107,确定激光雷达的点云数据队列;

其中,激光雷达可以包括发射机和接收器;发射机用于发射激光,遇到障碍物后折返;接收器接收返回的激光,根据返回时间计算距离,利用障碍物轮廓绘制点云图,得到点云数据。每次接收到的点云数据可以存储在队列中,这里称作点云数据队列,该队列可以存储的数据包数量是预先设定的,与硬件资源有关,本发明这里不再赘述。这里,例如该点云数据队列可以存储的数据包数量为8个。

其中,所述点云数据队列包括多个点云数据(即多个点云数据包),每个点云数据具有第二时间戳;激光雷达在生成点云数据包时会对其添加时间戳,这里为了与图像数据的时间戳区分,称作第二时间戳。

本发明实施例的主机每接收到激光雷达的一个点云数据包,就可以将其入队列,存储在上述点云数据队列中,该点云数据队列存储的点云数据包的数量小于或等于8个。

步骤108,确定所述摄像头对应的图像数据队列;

经过上述步骤106,每生成一个具有第一时间戳的图像数据,就可以将其存储在队列中,这里称作图像数据队列,该队列可以存储的数据包数量是预先设定的,与硬件资源有关,本发明这里不再赘述。这里,例如该点云数据队列可以存储的数据包数量为10个。

那么每执行一次图1实施例的方法,本发明实施例的主机就可以将生成的一个具有第一时间戳的图像数据加入到图像数据队列中,那么经过图1方法实施例的多次执行,就可以使得图像数据队列包括多帧所述图像数据,每帧所述图像数据具有第一时间戳。

需要说明的是,由于本发明实施例的方法主要目的是将激光雷达的点云数据的时间戳与摄像头拍摄的图像数据的时间戳对齐,其中,激光雷达的点云数据的时间戳是与基准时钟对齐(一致)的,因此,需要对点云数据队列中的每个点云数据的时间戳在图像数据队列中找到与之对应的时间戳,所以,图像数据队列可以容纳的数据包的数量(这里为10个)需要大于或等于点云数据队列可以容纳的数据包的数量(这里为8个)。

步骤109,针对所述点云数据队列中的每个第二目标时间戳,在所述图像数据队列中查找与所述第二目标时间戳时间最接近的第一目标时间戳;

也就是说,本发明实施例的方法需要对点云数据队列中的每个第二时间戳在图像数据队列中都查找到与之时间最接近的第一时间戳。

在查找时间最接近的第一目标时间戳时,可以通过对图像数据队列中的每个第一时间戳进行遍历的方式,对遍历到的每个第一时间戳,都计算该第一时间戳与第二目标时间戳之间的差值的绝对值,最小的绝对值对应的第一时间戳即为该第二目标时间戳对应的第一目标时间戳。

可选地,在一个实施例中,在确定最小的绝对值对应的第一目标时间戳时,还可以将上述两个队列中的时间戳都转换为二进制数据,然后对第二目标时间戳的二进制数据从高位到低位依次遍历图像数据队列中的每个第一时间戳的二进制数据,从而查找到与该第二目标时间戳时间最接近的第一目标时间戳。

举例来说,例如图像数据队列的index0至index9位置的第一时间戳依次为:[1225,1228,1231,1234,1237,1240,1243,1247,1248,1249];

点云数据队列中处于index0位置的第二目标时间戳为1234;

1234的二进制数据为0001001000110100;

图像数据队列中的上述第一时间戳也均转换为二进制数据,转换结果之类不再赘述。

从高位向低位遍历,在图像数据队列的10组二进制数据的最高四位中查找与1234的最高四位0001相同(如果没有相同的,则确定差值的绝对值最小的)的第一时间戳,这里10组二进制数据的最高四位均为0001;

因此,继续在图像数据队列的10组二进制数据的第二高四位中查找与1234的第二高四位0010相同(如果没有相同的,则确定差值的绝对值最小的)的第一时间戳,这里10组二进制数据的第二高四位均为0010;

因此,继续在图像数据队列的10组二进制数据的第三高四位中查找与1234的第三高四位0011相同(如果没有相同的,则确定差值的绝对值最小的)的第一时间戳,这里可以确定出10组二进制数据中只有“1231,1234,1237”这三组数据的二进制数据的第三高四位为0010;

因此,继续在图像数据队列的1231,1234,1237的三组二进制数据的最低四位中查找与1234的最低四位0100相同(如果没有相同的,则确定差值的绝对值最小的)的第一时间戳,那么这里可以确定图像数据队列中的1234的最低四位也与第二目标时间戳的最低四位0100相同,所以,本发明实施例的方法在图像数据队列中查找到了与点云数据队列中的第二目标时间戳1234差值的绝对值最小的第一目标时间戳1234。

这里只是以点云数据队列中的一个第二目标时间戳1234为例进行了说明。针对点云数据队列中的其他第二时间戳,同样采用类似第二目标时间戳1234的方法,来在在图像数据队列中查找与该第二目标时间戳时间最接近的第一目标时间戳。

由于点云数据队列包括多个点云数据,且每个点云数据具有第二时间戳,因此,可以从点云数据队列的index=0至index=7处依次确认每一个位置的第二时间戳对应的时间最接近的图像数据的第一时间戳。

步骤110,确定所述第一目标时间戳在所述图像数据队列中所处的第一位置;

参照上述图像数据队列的index0至index9位置的第一时间戳依次为:[1225,1228,1231,1234,1237,1240,1243,1247,1248,1249],因此,本例可以确定第一目标时间戳1234在图像数据队列中所处的第一位置为index3。

步骤111,确定所述第二目标时间戳在所述点云数据队列中所处的第二位置;

这里可以确定第二目标时间戳1234在点云数据队列中所处的第二位置为开始位置,index0。

步骤112,建立所述点云数据队列的所述第二位置与所述图像数据队列的所述第一位置之间的对应关系。

其中,可以建立点云数据队列的index0与图像数据队列的index3之间的对应关系。

由于需要对点云数据队列中的每个点云数据的第二时间戳执行步骤109~步骤112,因此,最终可以使得点云数据队列中的每个第二位置都具有在图像数据队列中对应的第一位置,实现时间同步。

例如最终步骤112形成的对应关系w包括:

lidarindex0对应cameraindex3;

lidarindex1对应cameraindex5;

lidarindex2对应cameraindex7;……。

其中,lidarindex表示点云(时间)数据队列中存储数据的位置,cameraindex表示图像(时间)数据队列中存储数据的位置。

这样,本发明实施例通过精准的控制摄像头拍摄的图像数据的时间,使得拍摄的图像数据具有精准的第一时间戳,而激光雷达通过扫描障碍物而生成的点云数据又具有高精度精准的第二时间戳,那么通过对点云数据队列中每个第二目标时间戳,在图像数据队列的多个第一时间戳中查找与第二目标时间戳时间最接近的第一目标时间戳,并建立这第一目标时间戳和第二时间戳在各自队列中所处的两个位置之间的对应关系,使得点云数据队列中每个第二位置都具有在图像数据队列中对应的第一位置,从而可以将具有对应关系的第一位置和第二位置所分别对应的图像数据和点云数据进行时间戳的对齐,使得对齐的图像数据和点云数据之间不存在时间戳的误差。其中,点云数据的第二时间戳是与基准时间对齐的,这里,可以使得时间戳对齐的图像数据和点云数据体现的是自动驾驶过程中采集的同一对象的数据,便于后续融合和控制。

可选地,在步骤112之后,根据本发明实施例的方法还可以包括:

保存步骤112建立的所述对应关系。

其中,由于生成步骤112的所述对应关系需要占用较多的运算资源,因此,当系统的运算资源不足的情况下,图2实施例的方法只需要在每次主机上电后执行一次即可,那么在建立了上述对应关系后,本发明实施例的方法可以对其进行保存。因为,该对应关系在主机的系统硬件确定后,每次上电启动后相对时间不会有很大差别,即点云数据队列和图像数据队列虽然存储的数据更新了,但是更新后的数据的时间戳仍旧会满足本次上电后确定的上述对应关系,所以,可以上电后生成该对应关系并保存,方便下次直接调用该对应关系。

这样,本发明实施例在建立点云数据队列的各个第二位置与所述图像数据队列的各个第一位置之间的对应关系之后,可以将该对应关系保存,从而在运算资源不足的情况下,避免对上述对应关系的重新计算确定,减少系统卡顿。

可选地,在一个实施例中,在执行步骤112时,可以按照预设周期建立所述点云数据队列的所述第二位置与所述图像数据队列的所述第一位置之间的对应关系。

也就是说,在运算资源充足以及硬件资源满足运算条件的情况下,本发明实施例不仅会在系统上电时执行图2所示的方法来建立上述对应关系,而是可以周期性的建立所述点云数据队列的各个第二位置与所述图像数据队列的各个第一位置之间的对应关系。因为,考虑到网络延迟等因素,会存在点云数据丢包的情况,从而导致激光雷达的两个运行周期间点云数据的时间戳不一致,造成系统上电时生成的对应关系不满足时间最接近的条件。所以,可以按照预设周期重新建立上述对应关系,使得时间戳对应机制可以周期运行,损失一定的实时特性,但是点云数据的时间戳与图像数据的时间戳的对应队列在经过预设周期后能够重新执行时间戳比较,从而生成新的对应关系,确保所使用的对应关系是准确的。

可选地,在另一个实施例中,在执行步骤112时,还可以在检测到点云数据重传或丢包的情况下,建立所述点云数据队列的所述第二位置与所述图像数据队列的所述第一位置之间的对应关系。

这样,当发生点云数据丢包后,本发明实施例的方法为了避免使用系统上电时生成的存在误差的对应关系,可以重新建立该对应关系,即重新执行图2方法实施例的步骤,生成新的对应关系。

可选地,根据本发明实施例的方法还可以包括:根据最近一次建立的对应关系对保存的所述对应关系进行更新。

不论是在发生了点云数据重传或丢包,还是系统按照预设周期重新建立上述对应关系,本发明实施例的方法都可以将本地保存的上述对应关系进行更新,更新为最近一次重新建立的对应关系,从而确保点云数据和图像数据的高精度数据融合所使用的对应关系是准确的。

可选地,在步骤112之后,根据本发明实施例的方法还可以包括:首先,确定所述点云数据队列中待同步的目标点云数据以及所述目标点云数据在所述点云数据队列中所处的第二目标位置;然后,在所述对应关系中查找与所述第二目标位置对应的第一目标位置;接着,从所述图像数据队列提取位于所述第一目标位置的目标图像数据;最后,将所述目标点云数据和所述目标图像数据,确定为具有相同时间戳的数据。

具体而言,在自动驾驶系统中,激光雷达扫描汽车周围的障碍物生成的点云数据存储在点云数据队列中,摄像头拍摄的汽车周围的图像数据存储在图像数据队列中,那么为了准确的确定汽车周围的障碍物的信息,需要对点云数据和图像数据进行同步,即在两个队列中查找处于同一时间点的数据。由于本发明实施例的上述方法已经建立了两个队列之间的具有相同时间戳的位置对应关系,因此,只需要确定待同步的目标点云数据在点云数据队列中所处的第二目标位置,并在上述对应关系中查找该第二目标位置在图像数据队列中对应的第一目标位置,然后,从图像数据队列中提取处于第一目标位置的目标图像数据,该目标图像数据即为与目标点云数据具有相同时间戳的数据,即它们为一组需要同步的数据。

这样,本发明实施例可以根据建立的上述对应关系,以lidar的点云数据为基准,迅速地在图像数据队列中查找相应的一帧图像数据,实现了点云数据和图像数据融合前的精准数据同步。

下面参照图3所示的一个具体实例,来对本发明上述各个实施例所述的时间同步方法进行简要阐述,具体可以包括如下步骤:

在本实施例中主机的硬件方案采用fpga(fieldprogrammablegatearray,现场可编程门阵列),fpga仅为实现载体,实现本发明实施例的方法的主机硬件并不限于fpga,还可以是其他硬件,这里不再赘述。

步骤301,生成gprmc队列;

其中,主机接收到激光雷达发送的gpmr数据包之后,可以将其存储在先进先出存储器,从而生成gpmrc队列。

步骤302,对出队列的一个gprmc数据包进行接收;

每当需要处理一个gprmc数据包时,则可以对从gprmc队列出队的一个gprmc数据包进行接收。

在步骤302之后,即对出队列的gprmc数据包接收完毕之后,则触发步骤303和步骤304的执行。

步骤303,检测pps信号;

其中,在步骤302之后,可以在一秒内检测pps信号。

步骤304,对grpmc数据包进行时间数据解析,得到utc时间戳;

其中,可以对接收到gprmc数据包进行解析,得到时间帧;然后,对所述时间帧进行解析,得到utc时间戳。

若接收到pps信号,则触发步骤305;

若接收到pps信号,则触发步骤306;

步骤305,对camera曝光控制;

其中,如果接收到pps信号的上升沿,则控制摄像头进行曝光拍摄。

步骤306,对utc时间戳增加1秒,得到最新utc时间戳;

其中,如果接收到pps信号的上升沿,则对解析得到的utc时间戳增加1秒,从而得到最新的utc时间戳,该最新utc时间戳是高精度校准后的时间戳。

步骤307,从camera接收图像数据;

可以从摄像头接收其曝光后拍摄的图像数据。

步骤308,将最新utc时间戳转换为unix时间戳;

其中,可以将utc时间戳转换为unix时间戳,原因在于unix时间戳便于时间的比较和计算,且利于和linux系统交互。

步骤309,对unix时间戳拆分,得到秒级别以下时间戳;

其中,可以将unix时间戳拆分得到分钟级别以上(包括分钟)的时间戳(例如包括年、月、日、时、分)以及秒级别以下(包括秒)的时间戳(例如包括秒、毫秒),这里需要使用的是秒级别以下时间戳。

步骤310,生成带时间戳的图像数据队列。

其中,可以根据步骤307接收到的图像数据和步骤309拆分得到的秒级别以下时间戳,来生成带时间戳的图像数据,并将该图像数据存入先进先出队列,从而生成图像数据队列,该图像数据队列存储有带时间戳的图像数据,该时间戳为步骤309的秒级别以下时间戳。

其中,步骤301~步骤309以及生成带时间戳的图像数据的多次执行,则可以不断的向图像数据队列写入已生成的待时间戳的图像数据。

这样,本发明实施例结合gps的gprmc数据包的utc时间戳(秒级别)和gps的pps信号(纳秒级别),从而可以生成基于gps基准的高精度曝光时间戳(即最新utc时间戳),并在该最新utc时间戳的时间点控制摄像头曝光,并对曝光生成的图像数据添加该最新utc时间戳,使得摄像头曝光时间得到高精度的准确控制。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

与上述本发明实施例所提供的方法相对应,参照图4,示出了本发明一种时间同步装置实施例的结构框图,具体可以包括如下模块:

第一接收模块401,用于接收gprmc数据包;

第一确定模块402,用于确定所述gprmc数据包的接收时间;

同步模块403,用于根据所述接收时间以及pps信号的触发时间,计算第一时间戳;

控制模块404,用于若接收到pps信号,则控制摄像头曝光;

第二接收模块405,用于接收所述摄像头拍摄的图像数据;

生成模块406,用于将所述第一时间戳与所述图像数据合成,生成具有第一时间戳的图像数据。

可选地,所述第一确定模块402包括:

第一解析子模块,用于在接收到所述gprmc数据包之后,对所述gprmc数据包进行解析,得到时间帧;

第二解析子模块,用于对所述时间帧进行解析,得到utc时间戳;

确定子模块,用于将所述utc时间戳确定为所述gprmc数据包的接收时间。

可选地,所述装置还包括:

第一提取模块,用于提取所述第一时间戳的秒级别以下的时间戳;

所述生成模块,还用于将所述秒级别以下的时间戳与所述图像数据合成,生成具有第一时间戳的图像数据。

可选地,所述装置还包括:

第二确定模块,用于确定激光雷达的点云数据队列,其中,所述点云数据队列包括多个点云数据,每个点云数据具有第二时间戳;

第三确定模块,用于确定所述摄像头对应的图像数据队列,其中,所述图像数据队列包括多帧所述图像数据,每帧所述图像数据具有第一时间戳;

第一查找模块,用于针对所述点云数据队列中的每个第二目标时间戳,在所述图像数据队列中查找与所述第二目标时间戳时间最接近的第一目标时间戳;

第四确定模块,用于确定所述第一目标时间戳在所述图像数据队列中所处的第一位置;

第五确定模块,用于确定所述第二目标时间戳在所述点云数据队列中所处的第二位置;

关联模块,用于建立所述点云数据队列的所述第二位置与所述图像数据队列的所述第一位置之间的对应关系。

可选地,所述装置还包括:

保存模块,用于保存所述关联模块建立的所述对应关系;

所述关联模块,还用于按照预设周期建立所述点云数据队列的所述第二位置与所述图像数据队列的所述第一位置之间的对应关系;

更新模块,用于根据所述关联模块最近一次建立的对应关系对保存的所述对应关系进行更新。

可选地,所述装置还包括:

第六确定模块,用于确定所述点云数据队列中待同步的目标点云数据以及所述目标点云数据在所述点云数据队列中所处的第二目标位置;

第二查找模块,用于在所述对应关系中查找与所述第二目标位置对应的第一目标位置;

第二提取模块,用于从所述图像数据队列提取位于所述第一目标位置的目标图像数据;

第七确定模块,用于将所述目标点云数据和所述目标图像数据,确定为具有相同时间戳的数据。

本发明实施例的装置在接收到gprmc数据包之后,可以根据gprmc数据包的接收时间以及pps信号的触发时间来计算第一时间戳,以及利用pps信号控制摄像头曝光,并将第一时间戳作为摄像头曝光拍摄的图像的时间戳信息,使得拍摄的图像的时间戳即为该图像的拍摄时间,实现了对摄像头的曝光时间的精准控制,且拍摄的图像数据具有精准的时间戳。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

根据本发明的一个实施例,还提供了一种终端。

该终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的时间同步程序,所述时间同步程序被所述处理器执行时实现如上述任意一个实施例所述的时间同步方法的步骤。

根据本发明的一个实施例,还提供了一种计算机可读存储介质。

该计算机可读存储介质上存储有时间同步程序,所述时间同步程序被处理器执行时实现如述任意一个实施例所述的时间同步方法中的步骤。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种时间同步方法和一种时间同步装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1