CN110943796B - 时间戳对齐方法、装置、存储介质及设备 - Google Patents
时间戳对齐方法、装置、存储介质及设备 Download PDFInfo
- Publication number
- CN110943796B CN110943796B CN201911136517.2A CN201911136517A CN110943796B CN 110943796 B CN110943796 B CN 110943796B CN 201911136517 A CN201911136517 A CN 201911136517A CN 110943796 B CN110943796 B CN 110943796B
- Authority
- CN
- China
- Prior art keywords
- data
- timestamp
- queue
- tail
- pointer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0685—Clock or time synchronisation in a node; Intranode synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了时间戳对齐方法、装置、存储介质及设备。该方法包括:确定第一数据源对应的第一数据队列中待对齐的第一时间戳;在第二数据源对应的第二数据队列中,采用预设顺序查询与所述第一时间戳对应的满足预设对齐条件的目标时间戳,其中,所述第二数据队列采用先进先出的环形队列数据结构进行存储;返回所述目标时间戳对应的数据。本发明实施例通过采用上述技术方案,在进行时间戳查询时,可以减少等待时间,进而提高时间戳对齐效率。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及时间戳对齐方法、装置、存储介质及设备。
背景技术
随着传感器技术的不断发展,集成多个传感器的智能设备所具备的功能也越来越丰富。智能设备上的部分传感器具有时间上的相关性,在使用时需要对齐时间戳,以保证数据是来源于同一物理时间或者可以近似地认为来源于同一物理时间。典型的机器人系统,如无人机系统,具有云台、双目摄像头、惯性测量单元(Inertial measurement unit,IMU)以及磁力计等传感器。在进行无人机运动规划的过程中,需要双目视觉的数据和IMU的数据在同一(或近似同一)时间戳下,才能够将双目探测到的障碍物的数据和飞机的姿态对应起来,将障碍物正确地填充到全局的地图中。如果数据时间戳不对应或对齐不及时,则会发生障碍物在空间中位置不正确的现象,严重的可能导致飞机坠毁。
目前,时间戳对齐方案的效率较低,时效性差,需要改进。
发明内容
本发明实施例提供了时间戳对齐方法、装置、存储介质及设备,可以优化现有的时间戳对齐方案。
第一方面,本发明实施例提供了一种时间戳对齐方法,包括:
确定第一数据源对应的第一数据队列中待对齐的第一时间戳;
在第二数据源对应的第二数据队列中,采用预设顺序查询与所述第一时间戳对应的满足预设对齐条件的目标时间戳,其中,所述第二数据队列采用先进先出的环形队列数据结构进行存储;
返回所述目标时间戳对应的数据。
第二方面,本发明实施例提供了一种时间戳对齐装置,包括:
第一时间戳确定模块,用于确定第一数据源对应的第一数据队列中待对齐的第一时间戳;
时间戳查询模块,用于在第二数据源对应的第二数据队列中,采用预设顺序查询与所述第一时间戳对应的满足预设对齐条件的目标时间戳,其中,所述第二数据队列采用先进先出的环形队列数据结构进行存储;
数据返回模块,用于返回所述目标时间戳对应的数据。
第三方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的时间戳对齐方法。
第四方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例提供的时间戳对齐方法。
本发明实施例中提供的时间戳对齐方案,确定第一数据源对应的第一数据队列中待对齐的第一时间戳,在第二数据源对应的第二数据队列中,采用预设顺序查询与第一时间戳对应的满足预设对齐条件的目标时间戳,其中,第二数据队列采用先进先出的环形队列数据结构进行存储,返回目标时间戳对应的数据。通过采用上述技术方案,需要进行对齐时间戳查询的数据队列采用先进先出的环形队列数据结构进行存储,当存入新的采集数据时,原有数据不需要依次改变存储位置,提高存储效率,因此,在进行时间戳查询时,可以减少等待时间,进而提高时间戳对齐效率。
附图说明
图1为本发明实施例提供的一种时间戳对齐方法的流程示意图;
图2为本发明实施例提供的一种环形队列数据结构的示意图;
图3为本发明实施例提供的又一种时间戳对齐方法的流程示意图;
图4为本发明实施例提供的一种时间戳对齐装置的结构框图;
图5为本发明实施例提供的一种计算机设备的结构框图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
图1为本发明实施例提供的一种时间戳对齐方法的流程示意图,该方法可以由时间戳对齐装置执行,其中该装置可由软件和/或硬件实现,一般可集成在计算机设备中。如图1所示,该方法包括:
步骤101、确定第一数据源对应的第一数据队列中待对齐的第一时间戳。
示例性的,本申请实施例中的计算机设备可包括集成有至少两个传感器的智能设备,如无人机等。本申请实施例对传感器的具体类型不做限定,可视计算机设备所具备的功能而定。以无人机为例,可包括云台、双目摄像头、IMU以及磁力计等传感器。
第一数据源可以对应于计算机设备中的任意一个传感器采集的数据,第一数据源产生的数据被存储在第一数据队列中,第一时间戳可以是第一数据队列中的任意一个时间戳,可以由用户指定或有计算机设备自动确定,对于第一时间戳来说,需要从其他数据源中查找与其对齐的时间戳的数据。第一数据队列一般存储于计算机设备的缓冲区。
步骤102、在第二数据源对应的第二数据队列中,采用预设顺序查询与所述第一时间戳对应的满足预设对齐条件的目标时间戳,其中,所述第二数据队列采用先进先出的环形队列数据结构进行存储。
第二数据源可以对应于计算机设备中的任意一个或多个与第一数据源不同的传感器采集的数据,也就是说第二数据源可以包括一个或多个数据源。第二数据源产生的数据被存储在第二数据队列中。第二数据队列一般存储于计算机设备的缓冲区。
以无人机为例,无人机工作过程中,双目摄像头和IMU分别采集相应的数据,在进行无人机运动规划时,需要将双目摄像头采集的双目视觉数据和IMU采集的数据进行对齐,假设当前需要以双目视觉数据为准,将IMU数据与之对齐,那么第一数据源为双目摄像头,第二数据源为IMU。
相关技术中,数据源对应的数据存储队列一般为线状队列,若达到存储上限,则需要删除首位的数据,然后后面的数据依次向前移动一个存储位置,再将新的数据存储至末位,存储效率低,在进行时间戳对齐时,需要等待整个数据存储过程完成后,才开始查询,进而影响时间戳对齐效率。
本申请实施例中,第二数据队列采用先进先出的环形队列数据结构进行存储,这样,若第二数据队列已达到存储上限,当第二数据源产生新的采集数据时,第二数据队列中原有数据不需要依次改变存储位置,新数据会直接覆盖时间最久的数据,可提高存储效率,针对第一时间戳对第二数据队列进行查询时,无需等待第二数据队列中的数据改变存储位置,可以更加及时地进行查询,进而提升时间戳对齐效率。
可选的,第一数据队列可以使用数组进行构建,也可以使用链表等数据结构进行构建。对于大型缓冲来说,可以使用链表;对于小型缓冲,可以使用数组,更加方便快捷。
可选的,第一数据队列也可采用先进先出的环形队列数据结构进行存储。
示例性的,预设顺序可以是从前至后的顺序,可以是从中间位置分别向前或向后的顺序,也可以是倒序。可选的,预设顺序为倒序,这样设置的好处在于,一般在需要进行时间戳对齐时,所需的数据为最新的数据,这样能够进一步提高找到所需时间戳的速度,提升时间戳对齐效率。
示例性的,预设对齐条件可根据实际情况设置,例如可以是第二数据队列中与第一时间戳最接近的时间戳。
步骤103、返回所述目标时间戳对应的数据。
示例性的,在查找到与第一时间戳对齐的目标时间戳后,返回目标时间戳对应的数据,以便于计算机设备采用对齐后的至少两个传感器的数据进行相关操作,如进行无人机运动规划。
本发明实施例中提供的时间戳对齐方法,确定第一数据源对应的第一数据队列中待对齐的第一时间戳,在第二数据源对应的第二数据队列中,采用预设顺序查询与第一时间戳对应的满足预设对齐条件的目标时间戳,其中,第二数据队列采用先进先出的环形队列数据结构进行存储,返回目标时间戳对应的数据。通过采用上述技术方案,需要进行对齐时间戳查询的数据队列采用先进先出的环形队列数据结构进行存储,当存入新的采集数据时,原有数据不需要依次改变存储位置,提高存储效率,因此,在进行时间戳查询时,可以减少等待时间,进而提高时间戳对齐效率。
在一些实施例中,在所述确定第一数据源对应的第一数据队列中待对齐的第一时间戳之前,还包括:针对第二数据源创建初始数据队列,其中,所述初始数据队列包含第一数量的元素,用于存储数据的元素的数量为第二数量,所述第二数量小于所述第一数量,队首指针指向队首元素,队尾指针指向队尾元素的下一个元素;获取第二数据源对应的当前采集的第一数据,将所述第一数据存入所述初始数据队列中,并修改所述队尾指针的位置,得到所述第二数据源对应的当前的第二数据队列。这样设置的好处在于,在队列中设置空白位置,可以快速区分出队首和队尾。
在一些实施例中,在当前的第二数据队列中已存储有第二数量的元素时,将当前采集的第二数据存入当前的第二数据队列中,并取出当前队首元素对应的第三数据,修改所述队首指针和所述队尾指针的位置。这样设置的好处在于,当第二数据队列已存储满时,可以先将新采集的数据存储到空白位置,然后再取出队首元素中的数据,进一步提升存储效率。
示例性的,给定队列大小为N(第二数量),创建N+1(第一数量)个元素的数组,可记为A。初始化队首指针head和队尾指针tail,队首指针指向队首元素,队尾指针指向队尾的下一个元素。对于推进(push)操作,也即需要存入新的采集数据时,在A[tail]处写入数据,并将tail加1,也即tail=tail+1,如果tail等于N+1,则令tail等于0。对于弹出(pop)操作,也即需要取出已存储的数据时,令head=head+1,如果head等于N+1,则令head等于0。在需要计算队列大小时,如果tail>=head,size(队列大小)=tail–head;否则,size=N–(head–tail)+1。图2为本发明实施例提供的一种环形队列数据结构的示意图,如图2所示,队首指针head指向队首元素,队尾指针tail指向队尾元素,当前已存储了8个元素的数据,也即当前的队列大小为8。
在一些实施例中,该方法还可包括:在第一线程针对所述队首指针或所述队尾指针进行第一操作时,禁止第二线程针对所述队首指针和所述队尾指针进行第一操作,其中,所述第一操作包括读取位置和修改位置。在第三线程针对当前的第二数据队列中的第一元素进行读取操作时,禁止第四线程针对所述第一元素进行写入操作。在第五线程针对当前的第二数据队列中的第二元素进行写入操作时,禁止第六线程针对所述第二元素进行读取操作和写入操作。
对于计算机设备来说,存在多个线程同时读写某一数据缓冲的情况,例如,一个线程在写缓冲,另一个或多个在读缓冲,为了支持并发读写,需要对同时读写的部分加锁。相关技术中,会将整个缓冲区全部锁住,这样会浪费大量的等待时间。
本发明实施例中,利用数据库行锁的实现方式,在环形队列数据结构基础上,对每个元素加读写锁,对队首指针和队尾指针(以下简称头尾指针)加互斥锁,从而支持并发读写,且减少等待时间,提高并发读写的效率。
具体的,每次读取或修改头尾指针时,先锁互斥锁,读取或修改完再释放互斥锁,也即,当第一线程在读取队首指针位置或读取队尾指针位置时,禁止第二线程(也即其他任意的线程)读取和修改队首指针位置和读取队尾指针位置,当第一线程在修改队首指针位置或读取队尾指针位置时,禁止第二线程(也即其他任意的线程)读取和修改队首指针位置和读取队尾指针位置。这样,可以避免两个以上线程同时读取或修改头尾指针,导致队列大小计算不准确或发生冲突。
每次读取元素时,先锁该元素的读锁,读取完释放读锁。也即,在第三线程针对当前的第二数据队列中的第一元素进行读取操作时,禁止第四线程(也即其他任意的线程)针对所述第一元素进行写入操作。这样,针对当前元素,避免在当前线程进行读取时,因其他线程对该元素进行修改而导致的读取数据不准确,另外,其他线程可以正常针对队列中的其他元素进行读取或写入,提高并发读写效率。
每次写元素时,先锁该元素的写锁,写完释放写锁。也即,在第五线程针对当前的第二数据队列中的第二元素进行写入操作时,禁止第六线程(也即其他任意的线程)针对所述第二元素进行读取操作和写入操作。这样,针对当前元素,避免在当前线程进行写入时,因其他线程对该元素进行读取或写入而导致的读取数据不准确或写入操作发生冲突,另外,其他线程可以正常针对队列中的其他元素进行读取或写入,提高并发读写效率。
在一些实施例中,所述预设顺序为倒序。采用倒序查询与所述第一时间戳对应的满足预设对齐条件的目标时间戳,包括:当所述第一时间戳晚于所述第二数据队列中的队尾时间戳时,若所述第一时间戳与所述队尾时间戳的第一间隔小于预设时间阈值,则确定所述队尾时间戳为目标时间戳;当所述第一时间戳位于相邻的第二时间戳和第三时间戳之间时,若所述第一时间戳与所述第二时间戳的第二间隔小于所述第一时间戳与所述第三时间戳的第三间隔,则确定所述第二时间戳为目标时间戳;当所述第一时间戳早于所述第二数据队列中的队首时间戳时,若所述第一时间戳与所述队首时间戳的第四间隔小于所述预设时间阈值,则确定所述队首时间戳为目标时间戳。这样设置的好处在于,能够快速准确地确定与第一时间戳对齐的目标时间戳。其中,预设时间阈值是与应用相关的时间差容忍度,不同场景可以设置不同的预设时间阈值。可选的,若所述第一时间戳与所述队尾时间戳的第一间隔大于或等于预设时间阈值,可返回失败。可选的,若所述第一时间戳与所述队首时间戳的第四间隔大于或等于所述预设时间阈值。
示例性的,存储到缓冲队列中的数据一定是时间序列递增的,所以给定一个时间戳tp(第一时间戳)和一个数据缓冲队列(第二数据队列),假设第二数据队列中存储的数据时间戳是t1至tN,可以执行以下搜索算法:
(1)如果tp>tN,且tp-tN<T,则返回tN,否则返回失败;
(2)如果tp>=t1,且tp<=tN,则倒序搜索,如果tp-ti–1<ti-tp,则返回ti-1,否则返回ti;
(3)如果tp<t1,如果t1–tp<T,则返回t1,否则返回失败;
其中T为预设时间阈值,返回的时间戳为目标时间戳。
图3为本发明实施例提供的又一种时间戳对齐方法的流程示意图,如图所示,该方法包括:
步骤301、为每个数据源创建对应的环形队列数据结构的数据队列。
步骤302、将每个数据源的数据独立写入对应的数据队列中,并为每个数据元素添加对应的时间戳。
其中,在写入数据的过程中,遵循上文所述的先进先出规则,以及采用上文所述的支持并发读写的读写锁和互斥锁控制策略。
步骤303、确定第一数据源对应的第一数据队列中待对齐的第一时间戳。
步骤304、在其他数据源对应的数据队列中倒序线性搜索与第一时间戳对应的满足预设对齐条件的目标时间戳。
步骤305、返回目标时间戳对应的数据。
本发明实施例提供的时间戳对齐方法,针对每个数据源创建环形队列数据结构的数据队列,再将每个数据源的数据独立写入对应的数据队列中,存储效率高,且支持高效率的并发读写操作,在搜索目标时间戳时,采用倒序方式快速搜索目标时间戳,从整体上有效提升了时间戳对齐效率。
图4为本发明实施例提供的一种时间戳对齐装置的结构框图,该装置可由软件和/或硬件实现,一般可集成在计算机设备中,可通过执行时间戳对齐方法来进行时间戳对齐。如图4所示,该装置包括:
第一时间戳确定模块401,用于确定第一数据源对应的第一数据队列中待对齐的第一时间戳;
时间戳查询模块402,用于在第二数据源对应的第二数据队列中,采用预设顺序查询与所述第一时间戳对应的满足预设对齐条件的目标时间戳,其中,所述第二数据队列采用先进先出的环形队列数据结构进行存储;
数据返回模块403,用于返回所述目标时间戳对应的数据。
本发明实施例中提供的时间戳对齐装置,确定第一数据源对应的第一数据队列中待对齐的第一时间戳,在第二数据源对应的第二数据队列中,采用预设顺序查询与第一时间戳对应的满足预设对齐条件的目标时间戳,其中,第二数据队列采用先进先出的环形队列数据结构进行存储,返回目标时间戳对应的数据。通过采用上述技术方案,需要进行对齐时间戳查询的数据队列采用先进先出的环形队列数据结构进行存储,当存入新的采集数据时,原有数据不需要依次改变存储位置,提高存储效率,因此,在进行时间戳查询时,可以减少等待时间,进而提高时间戳对齐效率。
可选的,该装置还包括:
队列创建模块,用于在所述确定第一数据源对应的第一数据队列中待对齐的第一时间戳之前,针对第二数据源创建初始数据队列,其中,所述初始数据队列包含第一数量的元素,用于存储数据的元素的数量为第二数量,所述第二数量小于所述第一数量,队首指针指向队首元素,队尾指针指向队尾元素的下一个元素;
数据写入模块,用于获取第二数据源对应的当前采集的第一数据,将所述第一数据存入所述初始数据队列中,并修改所述队尾指针的位置,得到所述第二数据源对应的当前的第二数据队列。
可选的,所述数据写入模块还用于:
在当前的第二数据队列中已存储有第二数量的元素时,将当前采集的第二数据存入当前的第二数据队列中,并取出当前队首元素对应的第三数据,修改所述队首指针和所述队尾指针的位置。
可选的,所述数据写入模块还用于:
在第一线程针对所述队首指针或所述队尾指针进行第一操作时,禁止第二线程针对所述队首指针和所述队尾指针进行第一操作,其中,所述第一操作包括读取位置和修改位置;
在第三线程针对当前的第二数据队列中的第一元素进行读取操作时,禁止第四线程针对所述第一元素进行写入操作;
在第五线程针对当前的第二数据队列中的第二元素进行写入操作时,禁止第六线程针对所述第二元素进行读取操作和写入操作。
可选的,所述环形队列数据结构基于数组或链表构建。
可选的,所述预设顺序为倒序。
可选的,采用倒序查询与所述第一时间戳对应的满足预设对齐条件的目标时间戳,包括:
当所述第一时间戳晚于所述第二数据队列中的队尾时间戳时,若所述第一时间戳与所述队尾时间戳的第一间隔小于预设时间阈值,则确定所述队尾时间戳为目标时间戳;
当所述第一时间戳位于相邻的第二时间戳和第三时间戳之间时,若所述第一时间戳与所述第二时间戳的第二间隔小于所述第一时间戳与所述第三时间戳的第三间隔,则确定所述第二时间戳为目标时间戳;
当所述第一时间戳早于所述第二数据队列中的队首时间戳时,若所述第一时间戳与所述队首时间戳的第四间隔小于所述预设时间阈值,则确定所述队首时间戳为目标时间戳。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行时间戳对齐方法,该方法包括:
确定第一数据源对应的第一数据队列中待对齐的第一时间戳;
在第二数据源对应的第二数据队列中,采用预设顺序查询与所述第一时间戳对应的满足预设对齐条件的目标时间戳,其中,所述第二数据队列采用先进先出的环形队列数据结构进行存储;
返回所述目标时间戳对应的数据。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的时间戳对齐操作,还可以执行本发明任意实施例所提供的时间戳对齐方法中的相关操作。
本发明实施例提供了一种计算机设备,该计算机设备中可集成本发明实施例提供的时间戳对齐装置。图5为本发明实施例提供的一种计算机设备的结构框图。计算机设备500可以包括:存储器501,处理器502及存储在存储器501上并可在处理器运行的计算机程序,所述处理器502执行所述计算机程序时实现如本发明实施例所述的时间戳对齐方法:
确定第一数据源对应的第一数据队列中待对齐的第一时间戳;
在第二数据源对应的第二数据队列中,采用预设顺序查询与所述第一时间戳对应的满足预设对齐条件的目标时间戳,其中,所述第二数据队列采用先进先出的环形队列数据结构进行存储;
返回所述目标时间戳对应的数据。
本发明实施例提供的计算机设备,需要进行对齐时间戳查询的数据队列采用先进先出的环形队列数据结构进行存储,当存入新的采集数据时,原有数据不需要依次改变存储位置,提高存储效率,因此,在进行时间戳查询时,可以减少等待时间,进而提高时间戳对齐效率。
上述实施例中提供的时间戳对齐装置、存储介质以及计算机设备可执行本发明任意实施例所提供的时间戳对齐方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的时间戳对齐方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (8)
1.一种时间戳对齐方法,其特征在于,应用于无人机,所述方法包括:
确定第一数据源对应的第一数据队列中待对齐的第一时间戳;其中,所述第一数据源对应于所述无人机中的传感器采集的数据;
在第二数据源对应的第二数据队列中,采用预设顺序查询与所述第一时间戳对应的满足预设对齐条件的目标时间戳,其中,所述第二数据队列采用先进先出的环形队列数据结构进行存储;所述第二数据源对应于所述无人机中与第一数据源不同的传感器采集的数据;
返回所述目标时间戳对应的数据;
其中,在所述确定第一数据源对应的第一数据队列中待对齐的第一时间戳之前,还包括:
针对第二数据源创建初始数据队列,其中,所述初始数据队列包含第一数量的元素,用于存储数据的元素的数量为第二数量,所述第二数量小于所述第一数量,队首指针指向队首元素,队尾指针指向队尾元素的下一个元素;
获取第二数据源对应的当前采集的第一数据,将所述第一数据存入所述初始数据队列中,并修改所述队尾指针的位置,得到所述第二数据源对应的当前的第二数据队列;
在当前的第二数据队列中已存储有第二数量的元素时,将当前采集的第二数据存入当前的第二数据队列中,并取出当前队首元素对应的第三数据,修改所述队首指针和所述队尾指针的位置。
2.根据权利要求1所述的方法,其特征在于,还包括:
在第一线程针对所述队首指针或所述队尾指针进行第一操作时,禁止第二线程针对所述队首指针和所述队尾指针进行第一操作,其中,所述第一操作包括读取位置和修改位置;
在第三线程针对当前的第二数据队列中的第一元素进行读取操作时,禁止第四线程针对所述第一元素进行写入操作;
在第五线程针对当前的第二数据队列中的第二元素进行写入操作时,禁止第六线程针对所述第二元素进行读取操作和写入操作。
3.根据权利要求1所述的方法,其特征在于,所述环形队列数据结构基于数组或链表构建。
4.根据权利要求1所述的方法,其特征在于,所述预设顺序为倒序。
5.根据权利要求4所述的方法,其特征在于,采用倒序查询与所述第一时间戳对应的满足预设对齐条件的目标时间戳,包括:
当所述第一时间戳晚于所述第二数据队列中的队尾时间戳时,若所述第一时间戳与所述队尾时间戳的第一间隔小于预设时间阈值,则确定所述队尾时间戳为目标时间戳;
当所述第一时间戳位于相邻的第二时间戳和第三时间戳之间时,若所述第一时间戳与所述第二时间戳的第二间隔小于所述第一时间戳与所述第三时间戳的第三间隔,则确定所述第二时间戳为目标时间戳;
当所述第一时间戳早于所述第二数据队列中的队首时间戳时,若所述第一时间戳与所述队首时间戳的第四间隔小于所述预设时间阈值,则确定所述队首时间戳为目标时间戳。
6.一种时间戳对齐装置,其特征在于,集成于无人机,所述装置包括:
第一时间戳确定模块,用于确定第一数据源对应的第一数据队列中待对齐的第一时间戳;其中,所述第一数据源对应于所述无人机中的传感器采集的数据;
时间戳查询模块,用于在第二数据源对应的第二数据队列中,采用预设顺序查询与所述第一时间戳对应的满足预设对齐条件的目标时间戳,其中,所述第二数据队列采用先进先出的环形队列数据结构进行存储;所述第二数据源对应于所述无人机中与第一数据源不同的传感器采集的数据;
数据返回模块,用于返回所述目标时间戳对应的数据;
队列创建模块,用于在所述确定第一数据源对应的第一数据队列中待对齐的第一时间戳之前,针对第二数据源创建初始数据队列,其中,所述初始数据队列包含第一数量的元素,用于存储数据的元素的数量为第二数量,所述第二数量小于所述第一数量,队首指针指向队首元素,队尾指针指向队尾元素的下一个元素;
数据写入模块,用于获取第二数据源对应的当前采集的第一数据,将所述第一数据存入所述初始数据队列中,并修改所述队尾指针的位置,得到所述第二数据源对应的当前的第二数据队列;
其中,所述数据写入模块还用于:
在当前的第二数据队列中已存储有第二数量的元素时,将当前采集的第二数据存入当前的第二数据队列中,并取出当前队首元素对应的第三数据,修改所述队首指针和所述队尾指针的位置。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5任一项所述的方法。
8.一种计算机设备,所述计算机设备包括无人机,所述计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911136517.2A CN110943796B (zh) | 2019-11-19 | 2019-11-19 | 时间戳对齐方法、装置、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911136517.2A CN110943796B (zh) | 2019-11-19 | 2019-11-19 | 时间戳对齐方法、装置、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110943796A CN110943796A (zh) | 2020-03-31 |
CN110943796B true CN110943796B (zh) | 2022-06-17 |
Family
ID=69906798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911136517.2A Active CN110943796B (zh) | 2019-11-19 | 2019-11-19 | 时间戳对齐方法、装置、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110943796B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111563546A (zh) * | 2020-04-29 | 2020-08-21 | 北京字节跳动网络技术有限公司 | 传感器数据匹配方法、装置、设备和存储介质 |
CN112034376B (zh) * | 2020-08-24 | 2023-08-29 | 哲库科技(北京)有限公司 | 电源管理装置和方法 |
CN113784118A (zh) * | 2021-09-14 | 2021-12-10 | 广州博冠信息科技有限公司 | 视频质量评估方法及装置、电子设备和存储介质 |
CN114415492B (zh) * | 2021-12-08 | 2023-12-08 | 深圳优美创新科技有限公司 | 离线状态下时间的获取方法、终端及存储介质 |
CN116264621A (zh) * | 2021-12-13 | 2023-06-16 | 成都拟合未来科技有限公司 | 一种imu数据与视频数据对齐的方法及系统 |
CN114328676A (zh) * | 2022-01-05 | 2022-04-12 | 维沃移动通信有限公司 | 时间窗口检测方法和装置 |
CN114500403A (zh) * | 2022-01-24 | 2022-05-13 | 中国联合网络通信集团有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
CN115022658B (zh) * | 2022-05-30 | 2023-09-08 | 广州力加贺电子科技有限公司 | 适用于嵌入式的直播数据处理方法、装置、设备及介质 |
CN115437577B (zh) * | 2022-11-04 | 2023-07-18 | 平安银行股份有限公司 | 数据写入方法、计算机设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108012176A (zh) * | 2016-10-28 | 2018-05-08 | 深圳市中兴微电子技术有限公司 | 一种数据切换方法、装置及终端 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186585A (zh) * | 2011-12-29 | 2013-07-03 | 北京亿阳信通科技有限公司 | 一种队列处理方法及装置 |
CN106954024B (zh) * | 2017-03-28 | 2020-11-06 | 成都通甲优博科技有限责任公司 | 一种无人机及其电子稳像方法、系统 |
CN110275496A (zh) * | 2019-05-14 | 2019-09-24 | 清华大学 | 一种多时间序列时间戳对齐的方法和装置 |
-
2019
- 2019-11-19 CN CN201911136517.2A patent/CN110943796B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108012176A (zh) * | 2016-10-28 | 2018-05-08 | 深圳市中兴微电子技术有限公司 | 一种数据切换方法、装置及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN110943796A (zh) | 2020-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110943796B (zh) | 时间戳对齐方法、装置、存储介质及设备 | |
US11372890B2 (en) | Distributed database transaction protocol | |
CA2950201C (en) | Decentralized transaction commit protocol | |
US11386065B2 (en) | Database concurrency control through hash-bucket latching | |
US11556375B2 (en) | Reducing commit wait in a distributed multiversion database by reading the clock earlier | |
US8280866B2 (en) | Monitoring writes using thread-local write barrier buffers and soft synchronization | |
US20180095666A1 (en) | Fair High-Throughput Locking For Expedited Grace Periods | |
US9720742B2 (en) | Service and system supporting coherent data access on multicore controller | |
US20170212902A1 (en) | Partially sorted log archive | |
US20200167356A1 (en) | Data storage using a bi-temporal index | |
US7865638B1 (en) | System and method for fast hardware atomic queue allocation | |
US10740029B2 (en) | Expandable buffer for memory transactions | |
US7631122B1 (en) | System and method for fast hardware atomic queue allocation | |
US20150100730A1 (en) | Freeing Memory Safely with Low Performance Overhead in a Concurrent Environment | |
US20190018857A1 (en) | Defragmenting files having file blocks in multiple point-in-time copies | |
US11692846B2 (en) | Map presentation device | |
US11625386B2 (en) | Fast skip list purge | |
CN114356226B (zh) | 一种传感器数据存储方法、装置、设备及存储介质 | |
KR102695353B1 (ko) | 로봇 경로 탐색 방법 | |
CN111352860B (zh) | 一种Linux Bcache中的垃圾回收方法及系统 | |
US20240004653A1 (en) | Approach for managing near-memory processing commands from multiple processor threads to prevent interference at near-memory processing elements | |
CN111666339A (zh) | 一种多线程数据同步方法 | |
CN115099418A (zh) | 一种基于特征多时间态的处理方法、系统、设备及介质 | |
CN114281834A (zh) | 一种锁功能实现方法、装置及计算机介质 | |
KR20200044660A (ko) | 배리어 기반 로깅 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 518055 Shenzhen, Guangdong, Nanshan District Xili street, No. 1001, Zhiyuan Road, B1 9. Applicant after: Shenzhen daotong intelligent Aviation Technology Co.,Ltd. Address before: 518055 Shenzhen, Guangdong, Nanshan District Xili street, No. 1001, Zhiyuan Road, B1 9. Applicant before: AUTEL ROBOTICS Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |