一种数据采集方法、无人机及存储介质与流程

文档序号:19125403发布日期:2019-11-13 02:04阅读:365来源:国知局
一种数据采集方法、无人机及存储介质与流程

本发明实施例涉及数据处理技术领域,尤其涉及一种数据采集方法、无人机及存储介质。



背景技术:

无人驾驶飞机简称无人机,是利用无线电遥控设备和自备的程序控制装置操纵的不载人飞机,或者由计算机完全地或间接地自主操作。无人机中的图像和飞控数据的获取是无人机控制的核心。在无人机中,采集飞控数据和采集图像的时间点必须是同步的,如果两者相差过大,视觉会做出错误的处理。比如无人机穿过树林,飞机往前飞,刚右拐,视觉检测到右边有树,而飞控数据给过来的信息假如有延时不是当前正在往右飞的信息,则无人机有可能撞上树。飞控数据可以包括但不限于位置坐标信息和姿态数据。

对无人机的图像和飞控数据进行处理以生成无人机的控制数据可称为视觉处理。在无人机中,视觉处理一般在linux操作系统上运行,而在linux操作系统为非实时操作系统,linux操作系统在获取飞控数据时,会出现比较大的波动。如无人机要求采集到的飞控数据在时间上的波动低于2ms,而linux操作系统波动超过了20ms,这就导致飞控数据采集不准确,进而视觉处理时会做出错误的处理,使得无人机控制效果差。



技术实现要素:

本发明实施例提供了一种数据采集方法、无人机及存储介质,提升对无人机进行控制时所采集数据的准确性。

第一方面,本发明实施例提供了一种数据采集方法,用于无人机的视觉芯片,所述视觉芯片包括主操作系统和实时操作系统,该方法包括:

由所述实时操作系统生成触发信号;

由所述实时操作系统基于所述触发信号,采集所述无人机的飞控数据并控制图像传感器采集图像序列;

由所述实时操作系统同步所述主操作系统和所述实时操作系统的时间;

由所述主操作系统对所述飞控数据和所述图像序列进行视觉处理,以保证所述飞控数据和所述图像序列的采集时间同步。

可选的,所述由所述实时操作系统同步所述主操作系统和所述实时操作系统的时间,包括:

由所述主操作系统确定实时操作系统和主操作系统的延时信息;

由所述实时操作系统根据所述延时信息和所述主操作系统的系统时间,确定所述实时操作系统的系统时间。

可选的,所述确定实时操作系统和主操作系统的延时信息,包括:

通过第一系统时间和第二系统时间,确定延时信息,其中,所述第一系统时间为所述主操作系统在第一时刻向所述实时操作系统发送的所述主操作系统当前的系统时间,所述第二系统时间为所述主操作系统接收到所述实时操作系统对所述第一系统时间的反馈时的系统时间。

可选的,所述根据所述延时信息和所述主操作系统的系统时间,确定所述实时操作系统的系统时间,包括:

将所述第一系统时间减去第三系统时间加上所述延时信息,得到第一信息,所述第三系统时间为所述实时操作系统接收所述第一系统时间时的系统时间;

将第四系统时间减去第五系统时间加上所述延时信息,得到第二信息,其中,所述第四系统时间为所述主操作系统在第二时刻向实时操作系统发送的所述主操作系统当前的系统时间,所述第五系统时间为所述实时操作系统接收所述第三系统时间时的系统时间;

若所述第一信息的绝对值和所述第二信息的绝对值均大于误差设定值,则将所述第四系统时间加上所述延时信息,以得到所述实时操作系统的系统时间。

可选的,所述由所述主操作系统对所述飞控数据和所述图像序列进行视觉处理,包括:

由所述主操作系统获取所述飞控数据的时间戳和所述图像序列中每一帧图像帧的时间戳;

由所述主操作系统根据所述飞控数据的时间戳和所述每一帧图像帧的时间戳,从所述飞控数据中选择与所述图像序列中图像帧采集时间匹配的飞控数据。

可选的,所述获取飞控数据的时间戳和所述图像序列中每一帧图像帧的时间戳,包括:

获取采集所述飞控数据时所述实时操作系统的系统时间;

确定采集所述飞控数据时的所述实时操作系统的系统时间为所述飞控数据的时间戳;

根据所述图像传感器的曝光时间长度以及所述触发信号的触发时间点,确定所述图像序列中每一帧图像帧的时间戳。

可选的,所述根据所述飞控数据的时间戳和所述每一帧图像帧的时间戳,从所述飞控数据中选择与所述图像序列中图像帧采集时间匹配的飞控数据,包括:

确定所述飞控数据中,与图像帧的时间戳之差的绝对值最小的飞控数据为与所述图像帧采集时间匹配的飞控数据。

可选的,所述触发信号的脉冲节拍不小于所述飞控数据频率的两倍。

第二方面,本发明实施例还提供了一种无人机,包括:

机身;

机臂,与所述机身相连;

动力装置,设于所述机臂,用于为所述无人机提供飞行的动力;以及

视觉芯片,所述视觉芯片包括主操作系统和与所述主操作系统通信连接的实时操作系统;

其中,所述实时操作系统用于:

生成触发信号;

基于所述触发信号,采集所述无人机的飞控数据并控制图像传感器采集图像序列;以及同步所述主操作系统和所述实时操作系统的时间;

所述主操作系统用于:对所述飞控数据和所述图像序列进行视觉处理,以保证所述飞控数据和所述图像序列的采集时间同步。

可选的,所述主操作系统用于:确定实时操作系统和主操作系统的延时信息;

所述实时操作系统用于根据所述延时信息和所述主操作系统的系统时间,确定所述实时操作系统的系统时间。

可选的,所述主操作系统用于:

通过第一系统时间和第二系统时间,确定延时信息,其中,所述第一系统时间为主操作系统在第一时刻向所述实时操作系统发送的所述主操作系统当前的系统时间,所述第二系统时间为所述主操作系统接收到所述实时操作系统对所述第一系统时间的反馈时的系统时间。

可选的,所述实时操作系统用于:

将所述第一系统时间减去第三系统时间加上所述延时信息,得到第一信息,所述第三系统时间为所述实时操作系统接收所述第一系统时间时的系统时间;

将第四系统时间减去第五系统时间加上所述延时信息,得到第二信息,其中,所述第四系统时间为所述主操作系统在第二时刻向实时操作系统发送的所述主操作系统当前的系统时间,所述第五系统时间为所述实时操作系统接收所述第三系统时间时的系统时间;

若所述第一信息的绝对值和所述第二信息的绝对值均大于误差设定值,则将所述第四系统时间加上所述延时信息,以得到所述实时操作系统的系统时间。

可选的,所述主操作系统用于:

获取所述飞控数据的时间戳和所述图像序列中每一帧图像帧的时间戳;

根据所述飞控数据的时间戳和所述每一帧图像帧的时间戳,从所述飞控数据中选择与所述图像序列中图像帧采集时间匹配的飞控数据。

可选的,所述主操作系统用于:

获取采集所述飞控数据时所述实时操作系统的系统时间;

确定采集所述飞控数据时的所述实时操作系统的系统时间为所述飞控数据的时间戳;

根据所述图像传感器的曝光时间长度以及所述触发信号的触发时间点,确定所述图像序列中每一帧图像帧的时间戳。

可选的,所述主操作系统用于:

确定所述飞控数据中,与图像帧的时间戳之差的绝对值最小的飞控数据为与所述图像帧采集时间匹配的飞控数据。

可选的,所述触发信号的脉冲节拍不小于所述飞控数据频率的两倍。

第三方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例提供的数据采集方法。

本发明实施例提供了一种数据采集方法、无人机及存储介质,利用上述技术方案,能够在实时操作系统生成的触发信号的控制下采集图像序列和飞控数据,由所述实时操作系统同步所述主操作系统和所述实时操作系统的时间;由所述主操作系统对所述飞控数据和所述图像序列进行视觉处理,以保证所述飞控数据和所述图像序列的采集时间同步。有效提升了对无人机进行控制时所采集数据的准确性。

附图说明

图1a为本发明实施例一提供的一种无人机的结构示意图;

图1b为本发明实施例提供的数据采集的流程示意图;

图1c为本发明实施例提供的触发信号示意图;

图1d为本发明实施例提供的图像和各飞控数据的对应关系示意图;

图1e为本发明实施例提供的时间同步的流程示意图;

图2为本发明实施例二提供的一种数据采集方法的流程示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

实施例一

图1a为本发明实施例一提供的一种无人机的结构示意图。

如图1a所示,本实施例提供的无人机包括:机身11;

机臂12,与机身11相连;

动力装置13,设于机臂12,用于为所述无人机提供飞行的动力;以及

视觉芯片(图中未示出),所述视觉芯片包括主操作系统和与所述主操作系统通信连接的实时操作系统;

其中,所述实时操作系统用于:

生成触发信号;

基于所述触发信号,采集所述无人机的飞控数据并控制图像传感器采集图像序列;以及同步所述主操作系统和所述实时操作系统的时间;

所述主操作系统用于:对所述飞控数据和所述图像序列进行视觉处理,以保证所述飞控数据和所述图像序列的采集时间同步。

在本实施例中,视觉芯片可以位于无人机上,视觉芯片在无人机上的具体位置不作限定。该视觉芯片中可以执行数据采集方法,以保证飞控数据和图像序列的采集时间同步。在本发明的一实施例中,图像传感器有多个,分布在无人机的机身11的前后左右上下各个方向上,多个图像传感器为无人机的多路视觉镜头输入,或多路视觉传感器输入。

视觉芯片中包括主操作系统和实时操作系统。在本发明的一实施例中,主操作系统和实时操作系统可以分别在视觉芯片上的两个不同的处理器上运行。其中,主操作系统可以是用于进行视觉处理的主操作系统,在本发明的一实施例中该主操作系统可以为linux操作系统。由于linux操作系统波动会比较大,所以本发明引入了一个实时操作系统,该实时操作系统可以用来采集飞控数据和产生稳定的触发源给图像传感器,以控制图像传感器采集图像序列。

实时操作系统可以理解为保证一定时间限制内完成特定功能的操作系统。实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。提供及时响应和高可靠性是其主要特点。

触发信号可以理解为触发采集图像序列和飞控数据的信号。触发信号可以为脉冲信号,实时操作系统可以每隔设定时间输出触发信号,以控制图像序列和飞控数据的同步采集。触发信号可以由实时操作系统中的触发源产生。

采集图像序列时,可以通过脉冲信号控制至少一路图像传感器进行图像序列采集。各路图像传感器接收到触发信号后,同步进行各自图像序列的采集。图像传感器可以是全局曝光的,即一次产生一幅图像。采集的图像序列中所包括的图像帧可以为视觉图像,即用机器代替人眼获取的图像。以数据采集方法应用至无人机为例,图像可以为无人机视角所获取的画面。不同路的图像传感器可以设置在无人机不同的位置处。

本实施例图像传感器的个数可以为至少一个。通过多路图像传感器可以采集无人机不同视角的图像序列。图像序列可以理解为由多帧图像帧组成的序列。多路图像传感器同步采集多路图像序列,多路图像序列可以是同时曝光的。

飞控数据包括但不限于位置坐标信息和姿态数据,位置坐标信息可以理解为表示位置的空间坐标。通过加速度计,陀螺仪,磁罗盘,gps等姿态传感器采集姿态数据。姿态数据可以理解为表示姿态的信息,姿态数据所包括的具体内容基于所采用的姿态传感器确定。

可以理解的是,实时操作系统采集飞控数据的频率小于采集图像序列中图像帧的频率,基于触发信号进行图像序列和飞控数据的采集时,一帧图像帧可以对应设定个数的飞控数据,设定个数不作限定,本领域技术人员可以根据采集飞控数据的频率确定。

需要注意的是,触发信号的频率为采集飞控数据的频率的至少两倍,如飞控数据频率为nhz,则脉冲信号的脉冲节拍最低为2nhz,这样才能确保快速获取飞控数据。n为正整数,如n=200。

触发信号控制多路图像传感器采集图像序列后,多路图像传感器可以将各自采集到的图像序列传输至主操作系统。触发信号控制采集设定个数的飞控数据后,各飞控数据通过实时操作系统传输至主操作系统。

主操作系统接收图像序列和飞控数据后进行视觉处理,以匹配出对应图像序列中图像帧的飞控数据。具体地,主操作系统针对图像序列中的每帧图像帧,选取采集的时间对应图像帧采集的时间的飞控数据,然后可以将图像序列和选取出的飞控数据作为控制数据。

控制数据可以理解为用于控制无人机的数据。该控制数据可以对无人机的飞行状态进行控制。控制数据包括但不限于速度数据、加速度数据和角速度数据。

实时操作系统和主操作系统是不同的操作系统,通过主操作系统和实时操作系统进行数据采集前,还需要对两者进行时间同步处理,以防图像序列和飞控数据不匹配,即图像序列中图像帧和飞控数据不是同一时刻获取的。

在同步实时操作系统和主操作系统的时间时,可以由主操作系统向实时操作系统发送主操作系统当前的系统时间,实时操作系统接收到主操作系统发送的系统时间时向主操作系统反馈接收成功信息,接收成功信息的具体内容不作限定,仅用于标识实时操作系统接收到主操作系统发送的系统时间。

主操作系统接收到接收成功信息后,获取当前主操作系统的系统时间。根据主操作系统发送和接收时刻的系统时间,确定延时信息。

同步实时操作系统和主操作系统的时间时,还可以由主操作系统向实时操作系统发送主操作系统当前的系统时间,实时操作系统接收到主操作系统发送的系统时间后,根据该系统时间和设定延时信息确定实时操作系统的系统时间。确定实时操作系统的系统时间后,可以基于确定出的系统时间更改实时操作系统的系统时间。设定延时信息可以为预先设定的延时值,如根据经验值设定。

本实施例提供的无人机,通过视觉芯片包括的主操作系统和实时操作系统,能够稳定采集飞控数据,飞控数据采集时不受主操作系统的波动影响,保证飞控数据和图像序列的采集时间同步,有效提升对无人机进行控制时采集数据的准确性。

可选的,所述主操作系统用于:确定实时操作系统和主操作系统的延时信息;

所述实时操作系统用于根据所述延时信息和所述主操作系统的系统时间,确定所述实时操作系统的系统时间。

同步主操作系统和实时操作系统的时间时,主操作系统可以先确定实时操作系统和主操作系统的延时信息。延时信息可以理解为主操作系统和实时操作系统进行通信时的传输时长。

确定延时信息时,可以通过主操作系统和实时操作系统进行数据交互的时间差确定。如由主操作系统向实时操作系统发送第一数据,实时操作系统接收第一数据后向主操作系统发送第二数据。主操作系统根据发送第一数据和接收第二数据的时间,确定延时信息。其中,第一数据和第二数据的内容不作限定,如可以为各自进行数据接收或发送时刻的系统时间;另外也可以由实时操作系统向主操作系统发送第三数据,主操作系统接收第三数据后向实时操作系统发送第四数据,实时操作系统根据发送第三数据和接收第四数据的时间,确定延时信息。其中,第三数据和第四数据的内容不作限定,如可以为各自进行数据接收或发送时刻的系统时间。

实时操作系统确定系统时间时,可以接收主操作系统发送的主操作系统的系统时间,以基于接收到的主操作系统的系统时间和延时信息,确定实时操作系统的系统时间。如将主操作系统的系统时间加上延时信息,得到实时操作系统的系统时间。

可选的,所述主操作系统用于:

通过第一系统时间和第二系统时间,确定延时信息,其中,所述第一系统时间为主操作系统在第一时刻向所述实时操作系统发送的所述主操作系统当前的系统时间,所述第二系统时间为所述主操作系统接收到所述实时操作系统对所述第一系统时间的反馈时的系统时间。

在一实施例中,由主操作系统向实时操作系统发送主操作系统当前的系统时间,即第一系统时间。主操作系统接收到实时操作系统对该第一系统时间的反馈时获取当前系统时间作为第二系统时间。本步骤可以基于第一系统时间和第二系统时间的时间差,确定延时信息。如将第二系统时间减去第一系统时间,然后除以2得到延时信息。

其中,第一时刻可以为确定延时信息阶段,主操作系统向实时操作系统发送主操作系统当前的系统时间的时刻。可以理解的是,第一系统时间可以认为是主操作系统进行数据发送时的系统时间,主操作系统发送的是第一系统时间。第二系统时间为主操作系统接收到实时操作系统反馈时的系统时间,该反馈为实时操作系统基于第一系统时间的反馈。

可选的,所述实时操作系统用于:

将所述第一系统时间减去第三系统时间加上所述延时信息,得到第一信息,所述第三系统时间为所述实时操作系统接收所述第一系统时间时的系统时间;

将第四系统时间减去第五系统时间加上所述延时信息,得到第二信息,其中,所述第四系统时间为所述主操作系统在第二时刻向实时操作系统发送的所述主操作系统当前的系统时间,所述第五系统时间为所述实时操作系统接收所述第三系统时间时的系统时间;

若所述第一信息的绝对值和所述第二信息的绝对值均大于误差设定值,则将所述第四系统时间加上所述延时信息,以得到所述实时操作系统的系统时间。

可以理解的是,若实时操作系统的系统时间与主操作系统的系统时间相差较小时,可以无需修改实时操作系统的系统时间。故在根据延时信息和主操作系统的系统时间,确定实时操作系统的系统时间时,可以对主操作系统和实时操作系统的时间差进行判断。

具体地,如果第一信息的绝对值和第二信息的绝对值都大于误差设定值(如2)时,可以认为需要修改实时操作系统的系统时间。相应的,实时操作系统将接收到的第四系统时间加上延时信息作为实时操作系统当前的系统时间。

其中,第二时刻为确定实时操作系统的系统时间时,主操作系统向实时操作系统发送主操作系统当前的系统时间的时刻。可以理解的是,第四系统时间可以认为主操作系统再次向实时操作系统进行数据发送的系统时间,主操作系统发送的是第四系统时间。第五系统时间为实时操作系统接收到第四系统时间时实时操作系统的系统时间。

可选的,所述主操作系统用于:

获取所述飞控数据的时间戳和所述图像序列中每一帧图像帧的时间戳;

根据所述飞控数据的时间戳和所述每一帧图像帧的时间戳,从所述飞控数据中选择与所述图像序列中图像帧采集时间匹配的飞控数据。

主操作系统对飞控数据和图像序列进行视觉处理时,可以遍历图像序列中的每一帧图像帧,根据飞控数据的时间戳和每一帧图像帧的时间戳,从飞控数据中选取与图像帧采集时间匹配的飞控数据。

具体的,针对图像序列中的每一图像帧,根据所述图像帧的时间戳,从飞控数据中选取与所述图像帧的时间戳匹配的飞控数据。与所述图像帧的时间戳匹配可以理解为与图像帧的时间戳偏差在设定范围,即选取出的飞控数据与所述图像帧的采集时间匹配。

可选的,所述主操作系统用于:

获取采集所述飞控数据时所述实时操作系统的系统时间;

确定采集所述飞控数据时的所述实时操作系统的系统时间为所述飞控数据的时间戳;

根据所述图像传感器的曝光时间长度以及所述触发信号的触发时间点,确定所述图像序列中每一帧图像帧的时间戳。

可选的,所述主操作系统用于:

确定所述飞控数据中,与图像帧的时间戳之差的绝对值最小的飞控数据为与所述图像帧采集时间匹配的飞控数据。

可选的,所述触发信号的脉冲节拍不小于所述飞控数据频率的两倍。

图1b为本发明实施例提供的数据采集的流程示意图,图1c为本发明实施例提供的触发信号示意图。参见图1b和图1c,无人机中可以包括主操作系统21和实时操作系统22,主操作系统21和实时操作系统22可以分别在视觉芯片上的两个不同的处理器上运行。实时操作系统22中的触发源产生如图1c所示的触发波形图。触发信号用于触发多路图像传感器23,多路图像传感器23为外部触发式传感器,多路图像传感器23不自主输出图像帧,依赖外部的时钟脉冲来触发,即由触发信号触发。触发源每隔m毫秒产生一次脉冲,多路图像传感器23根据该脉冲产生1000/m帧每秒的图像帧,然后传输至主操作系统21的图像处理单元,再由主操作系统21的视觉处理单元进行处理。

在一实施例中,参见图1c,每隔40毫秒产生一次脉冲,图像输出帧率为25帧/秒。假设图像触发为下降沿触发,触发时间点为t0。图像传感器是全局曝光的,即一次性产生一副图像,假设图像传感器当前曝光时间长度为te。则该幅图像时间点为:t0+te/2,即该幅图像的时间戳。

曝光时间长度会跟随场景的变化而变化,室外强光照场景,曝光时间有可能降低到1毫秒;室内黑暗场景,曝光时间有可能升到几十毫秒长度,一般可以限制曝光时间长度不超过15毫秒。

在图像处理单元,需要将时间戳记录在每帧图像帧上,跟随图像帧一起传输到视觉处理单元,视觉处理单元可以依赖图像帧的时间戳,找到相对应时间点的飞控数据。

触发源产生更高频率的脉冲节拍,在实时操作系统22上采集飞控数据。采集到每个飞控数据之后,加上实时操作系统22上当前最新的时间t1,再送给视觉处理单元进行处理。

主操作系统21拿到带时间戳的图像帧和带时间戳的飞控数据,以图像帧的时间戳t0+te/2为基准,在飞控数据序列中找时间点最匹配的飞控数据,通过min|t0+te/2-t1n|方式即可找到匹配数据。其中,t1n标识各飞控数据对应的时间戳。n的个数与飞控数据的个数相同。

图1d为本发明实施例提供的图像和各飞控数据的对应关系示意图。参见图1d,由于多路图像传感器同步进行图像序列采集,各图像序列对应的时间戳可以认为相同,此处以一个图像序列所包括的一帧图像帧为例进行描述,主操作系统进行处理时,采集到的数据包括一帧图像帧和8个飞控数据。该图像帧的时间戳为t0+te/2,8个飞控数据为:飞控数据t11、飞控数据t12、飞控数据t13、飞控数据t14、飞控数据t15、飞控数据t16、飞控数据t17和飞控数据t18。主操作系统可以从8个飞控数据中确定与该图像帧采集时间匹配的飞控数据。

为了保证数据采集的准确性,本实施例还可以进行主操作系统和实时操作系统时间的同步。图1e为本发明实施例提供的时间同步的流程示意图。参见图1e,主操作系统21和实时操作系统22是两个不同的核和不同的操作系统,它们需要做时间同步处理,否则视觉处理单元去做图像序列和飞控数据的匹配完全是不准的。假设主操作系统21系统时间为tm,实时操作系统22系统时间为tn,时间同步方法如下:

主操作系统21时间同步单元把自己时间tm1发给实时操作系统22。实时操作系统22时间同步单元接收到消息,立即返回给主操作系统21,同时保存tm1值和当前实时操作系统22系统时间tn1。主操作系统21时间同步单元通过前后时间差算出延时d。

主操作系统21时间同步单元再次发送当前时间tm2给实时操作系统22,实时操作系统22当前系统时间为tn2,如果同时满足如下条件:

则实时操作系统22更改系统时间为tm2+d。

本实施例提供的无人机,能够稳定采集飞控数据,飞控数据采集时不受主操作系统的波动影响。在采集图像数据时,能够同步采集多路图像序列,多路图像序列是同时曝光的。图像序列中每一图像帧和相应的飞控数据的时间点是一致的,在进行视觉处理时,根据图像帧的时间戳找到在时间上最接近的飞控数据,以得到真实同一时刻产生的图像帧和飞控数据,以便于更加准确的进行视觉处理。

实施例二

图2为本发明实施例二提供的一种数据采集方法的流程示意图,该方法可适用于对数据采集的情况,该方法可以由无人机的视觉芯片执行。本实施例尚未详尽之处可以参见上述实施例。

如图2所示,本发明提供的一种数据采集方法,用于无人机的视觉芯片,所述视觉芯片包括主操作系统和实时操作系统,该方法包括如下步骤:

s201、由所述实时操作系统生成触发信号。

s202、由所述实时操作系统基于所述触发信号,采集所述无人机的飞控数据并控制图像传感器采集图像序列。

s203、由所述实时操作系统同步所述主操作系统和所述实时操作系统的时间。

s204、由所述主操作系统对所述飞控数据和所述图像序列进行视觉处理,以保证所述飞控数据和所述图像序列的采集时间同步以保证所述飞控数据和所述图像序列的采集时间同步。

本发明实施例提供了一种数据采集方法,利用上述方法,能够在实时操作系统生成的触发信号的控制下采集图像序列和飞控数据,由所述实时操作系统同步所述主操作系统和所述实时操作系统的时间;由所述主操作系统对所述飞控数据和所述图像序列进行视觉处理,以保证所述飞控数据和所述图像序列的采集时间同步。有效提升了对无人机进行控制时所采集数据的准确性。

可选的,所述由所述实时操作系统同步所述主操作系统和所述实时操作系统的时间,包括:

由所述主操作系统确定实时操作系统和主操作系统的延时信息;

由所述实时操作系统根据所述延时信息和所述主操作系统的系统时间,确定所述实时操作系统的系统时间。

可选的,所述确定实时操作系统和主操作系统的延时信息,包括:

通过第一系统时间和第二系统时间,确定延时信息,其中,所述第一系统时间为所述主操作系统在第一时刻向所述实时操作系统发送的所述主操作系统当前的系统时间,所述第二系统时间为所述主操作系统接收到所述实时操作系统对所述第一系统时间的反馈时的系统时间。

可选的,所述根据所述延时信息和所述主操作系统的系统时间,确定所述实时操作系统的系统时间,包括:

将所述第一系统时间减去第三系统时间加上所述延时信息,得到第一信息,所述第三系统时间为所述实时操作系统接收所述第一系统时间时的系统时间;

将第四系统时间减去第五系统时间加上所述延时信息,得到第二信息,其中,所述第四系统时间为所述主操作系统在第二时刻向实时操作系统发送的所述主操作系统当前的系统时间,所述第五系统时间为所述实时操作系统接收所述第三系统时间时的系统时间;

若所述第一信息的绝对值和所述第二信息的绝对值均大于误差设定值,则将所述第四系统时间加上所述延时信息,以得到所述实时操作系统的系统时间。

可选的,所述由所述主操作系统对所述飞控数据和所述图像序列进行视觉处理,包括:

由所述主操作系统获取所述飞控数据的时间戳和所述图像序列中每一帧图像帧的时间戳;

由所述主操作系统根据所述飞控数据的时间戳和所述每一帧图像帧的时间戳,从所述飞控数据中选择与所述图像序列中图像帧采集时间匹配的飞控数据。

可选的,所述获取飞控数据的时间戳和所述图像序列中每一帧图像帧的时间戳,包括:

获取采集所述飞控数据时所述实时操作系统的系统时间;

确定采集所述飞控数据时的所述实时操作系统的系统时间为所述飞控数据的时间戳;

根据所述图像传感器的曝光时间长度以及所述触发信号的触发时间点,确定所述图像序列中每一帧图像帧的时间戳。

可选的,所述根据所述飞控数据的时间戳和所述每一帧图像帧的时间戳,从所述飞控数据中选择与所述图像序列中图像帧采集时间匹配的飞控数据,包括:

确定所述飞控数据中,与图像帧的时间戳之差的绝对值最小的飞控数据为与所述图像帧采集时间匹配的飞控数据。

可选的,所述触发信号的脉冲节拍不小于所述飞控数据频率的两倍。

实施例三

本发明实施例三提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行数据采集方法,用于无人机的视觉芯片,所述视觉芯片包括主操作系统和实时操作系统,该方法包括:

由所述实时操作系统生成触发信号;

由所述实时操作系统基于所述触发信号,采集所述无人机的飞控数据并控制图像传感器采集图像序列;

由所述实时操作系统同步所述主操作系统和所述实时操作系统的时间;

由所述主操作系统对所述飞控数据和所述图像序列进行视觉处理,以保证所述飞控数据和所述图像序列的采集时间同步。

可选的,该程序被处理器执行时还可以用于执行本发明任意实施例所提供的数据采集方法。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(randomaccessmemory,ram)、只读存储器(readonlymemory,rom)、可擦式可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、闪存、光纤、便携式cd-rom、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、无线电频率(radiofrequency,rf)等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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