无人机飞行日志记录方法、装置、存储介质和计算机设备与流程

文档序号:16473641发布日期:2019-01-02 23:22阅读:1661来源:国知局
无人机飞行日志记录方法、装置、存储介质和计算机设备与流程

本发明涉及无人机技术领域,特别是涉及一种无人机飞行日志记录方法、装置、存储介质和计算机设备。



背景技术:

无人机飞行日志一般记录了无人机飞行时的各项飞行数据,包括飞行姿态、飞行轨迹、传感器监测数据、飞行速度、飞行高度、航向等。飞行日志在需要对无人机进行飞行测试、数据分析、轨迹监测时有重大作用,是无人机系统必不可少的组成部分。目前的无人机飞行日志记录方法都存在着一些缺陷,比如因sd卡写入数据慢而导致的数据丢失、日志记录不便于数据分析、缺少对日志记录内容的验证等,因此有必要提供一种能够克服前述问题的飞行日志记录方法。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够有效避免无人机飞行日志数据丢失的无人机飞行日志记录方法、装置、存储介质和计算机设备。

一种无人机飞行日志记录方法,所述方法包括:

生成日志消息;

将所述日志消息存入消息存储区中;

缓存区获取所述消息存储区的日志消息;

当所述缓存区中缓存的所述日志消息满足以下任一条件时,将所述缓存区中缓存的所述日志消息写入到存储卡中:

所述缓存区中缓存的所述日志消息所占存储容量达到容量阈值;或

所述缓存区中缓存的所述日志消息的次数达到次数阈值。

在其中一个实施例中,所述日志消息包括:格式部分、标记部分和消息体;

所述消息体包含消息头部分、消息标识部分、消息长度部分、消息内容部分和消息校验部分,所述消息标识部分用于记录所述日志消息的类别,所述消息校验部分用于对所述日志消息进行校验;

所述格式部分用于定义所述消息内容部分的格式;

所述标记部分用于区分所述日志消息。

在其中一个实施例中,所述标记部分采用utc(coordinateduniversaltime,世界标准时间)对所述日志消息进行区分,或采用递增的日志文件名称对所述日志消息进行区分。

在其中一个实施例中,该方法还包括,对所述消息体进行解析。

在其中一个实施例中,对所述消息体进行解析,包括:

对所述日志消息的消息体的消息头部分进行校验;

若校验通过,则获取所述消息体中的消息标识部分、消息长度部分和消息内容部分和消息校验部分;

根据所述消息校验部分对所述消息内容部分进行校验,若校验通过,则所述消息体解析成功。

在其中一个实施例中,所述消息头部分包括两个同步字。

在其中一个实施例中,对所述消息内容部分进行校验采用的是crc校验。

一种计算机设备,所述计算机设备包括存储器,处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述所述的方法。

一种无人机飞行日志记录装置,所述装置包括:

日志消息生成模块,用于生成日志消息;

存储区,用于存储所述日志消息生成模块生成的所述日志消息;

缓存区,用于提取所述存储区中最新的所述日志消息;

存储卡写入模块,用于当所述缓存区中缓存的所述日志消息满足以下任一条件时,将所述缓存区中缓存的所述日志消息写入到存储卡中:所述缓存区中缓存的所述日志消息所占存储容量达到容量阈值;或所述缓存区中缓存的所述日志消息的次数达到次数阈值。

在其中一个实施例中,所述日志消息包括:格式部分、标记部分和消息体;

所述消息体包含消息头部分、消息标识部分、消息长度部分、消息内容部分和消息校验部分,所述消息标识部分用于记录所述日志消息的类别,所述消息校验部分用于对所述日志消息进行校验;

所述格式部分用于定义所述消息内容部分的格式;

所述标记部分用于区分所述日志消息。

在其中一个实施例中,所述标记部分采用utc(coordinateduniversaltime,世界标准时间)对所述日志消息进行区分,或采用递增的日志文件名称对所述日志消息进行区分。

一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:

生成日志消息;

将所述日志消息存入存储区中;

缓存区获取存储区中的所述日志消息;

当所述缓存区中缓存的所述日志消息满足以下任一条件时,将所述缓存区中缓存的所述日志消息写入到存储卡中:

所述缓存区中缓存的所述日志消息所占存储容量达到容量阈值;或

所述缓存区中缓存的所述日志消息的次数达到次数阈值。

本发明的每一条日志消息均独立产生,当缓存区中缓存的日志消息满足任一条件时,即满足缓存的日志消息所占存储容量达到容量阈值或缓存的日志消息的次数达到次数阈值时,就将缓存区中缓存的日志消息写入到存储卡中。写入条件采用这种事件触发机制,日志消息记录的实时性较好,能够避免因缓存区存储空间不足导致的因日志消息不能及时写入造成的日志消息丢失,从而有效降低了日志消息丢失的概率。

附图说明

图1为本发明一个实施例中无人机飞行日志记录方法的原理图;

图2为本发明一个实施例中无人机飞行日志记录方法的流程图;

图3为本发明一个实施例中无人机的日志消息的结构示意图;

图4为图3中消息体的结构示意图;

图5为本发明一个实施例中无人机飞行日志记录方法的流程图;

图6为本发明一个实施例中无人机飞行日志记录方法的流程图;

图7为本发明一个实施例中无人机飞行日志的解析流程图;

图8为本发明一个实施例中无人机飞行日志记录装置的结构示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施的限制。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

图1为本发明一个实施例中无人机飞行日志记录方法的原理图,请参考图1所示,无人机在飞行过程中会产生飞行日志,飞行日志包括一条一条具体的日志消息message简称msg。每生成一条日志消息,就将日志消息写入到存储区中102中。缓存区(buffer,简称buf)104提取存储区102中最新的日志消息,当缓存区104中缓存的日志消息满足写入条件时,缓存区104中缓存的日志消息就会被写入到存储卡106中,该存储卡106优选为sd卡(securedigitalmemorycard,安全数码卡)。

如图2所示,在本发明的一实施例提供了一种无人机飞行日志记录方法,包括:

步骤210,生成日志消息。

无人机在飞行过程中会产生用于记录无人机飞行时的各项飞行数据的飞行日志,飞行日志包括一条一条具体的日志消息。这些飞行数据包括飞行姿态、飞行轨迹、传感器监测数据、飞行速度、飞行高度、航向及电池信息等。飞行日志消息也可以由无人机的飞控芯片或者其他芯片生成。

步骤220,将生成的日志消息存入存储区102中;存储区102可以是内存中单独开辟出来的专门用于存储日志消息的一片区域,也可以是外接的存储设备。

因此,生成的所有日志消息都会先存入存储区102中,这样能够避免生成的日志消息不断地进入缓存区104,导致缓存区104处理速度变慢而造成飞行数据丢失。

步骤230,缓存区104获取存储区102中的日志消息。

在本发明一种可选的实施例中,缓存区104获取的是存储区102中最新的日志消息,且这种获取可以是主动获取也可是被动获取。具体来说,当存储区102中有最新的日志消息时,缓存区104会主动提取存储区102中最新的日志消息。或者是,当存储区102中有最新的日志消息时,存储区102依据缓存区104当前处理日志消息的能力将最新的日志消息推送给缓存区104。

步骤240,当缓存区中缓存的日志消息满足以下任一条件时,将缓存区中缓存的日志消息写入到存储卡中。条件包括:缓存区中缓存的日志消息所占存储容量达到容量阈值或缓存区中缓存的日志消息的次数达到次数阈值。

当缓存区中缓存的日志消息所占存储容量达到缓存区总容量的一定比例时,示例性的,达到缓存区总容量的三分之二时,则就将缓存区中已经缓存的日志消息写入到存储卡中。或者,当缓存区缓存日志消息的次数达到次数阈值时,例如,缓存日志消息的次数达到了100次,这样就将缓存区中已经缓存的日志消息写入到存储卡中。

存储卡包括cf(compactflash)卡,sm(smartmedia)卡,固态软盘卡,还有sd卡等。优选的,本发明实施例中可用sd卡用于数据存储。

sd卡(securedigitalmemorycard)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,由于它体积小、数据传输速度快、可热插拔等优良的特性,它被广泛地于便携式装置上使用,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(pda)和多媒体播放器等。

本实施例中,每一条日志消息独立产生,生成的日志消息先被存入存储区,避免缓存区处理速度变慢而造成的飞行数据丢失,且产生的日志消息只要满足其中任一条件就将该日志消息写入存储卡,这种事件触发机制,实时性较好,能够有效降低丢失日志消息的概率。同时,也能够及时为缓存区腾出存储空间,能够有效避免因缓存区处理能力不足而导致的日志消息丢失的问题。

如图3所示,在本发明提供的一实施例中,日志消息包括:格式部分、标记部分和消息体。

标记部分用于区分产生的日志消息。在本发明的一实施例中,对每条日志消息记录该日志消息产生的utc(coordinateduniversaltime,世界标准时间)时间,用utc时间区分不同时间产生的日志消息,便于后续对日志消息进行数据分析。或者,采用递增的日志文件名称对日志消息进行区分,例如采用log1,log2….logn对日志消息进行区分。也可以同时用两种方式对日志消息进行区分,防止因gps失效,无法记录utc时间。

请参见图4,消息体包含消息头部分(header1、header2)、消息标识部分(msg_id)、消息长度部分(len)、消息内容部分(payload)和消息检验部分(crc)。

消息头部分采用双头结构,及双header结构—header1和header2。消息头部分用于标示每条日志消息起始的位置,采用双头结构资源消耗较小,能够提升后续对日志消息进行解析的辨识度。

消息标识部分即messageid,用于记录日志消息的类别,例如messageid(简称msg_id)为battery(电池),则表示这条日志消息是对电池信息进行记录,日志消息的类别是电池。

消息长度部分(len),用于记录日志消息的长度。

消息内容部分(payload)指实际的飞行真实数据,比如说gps数据、位置、状态等。

消息校验部分用于对日志消息进行检验,一般多采用crc(cyclicredundancycheck,循环冗余校验)对日志消息的有效性进行校验。crc校验是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。

格式部分用于定义消息内容的格式,且通过该格式部分可对消息内容的格式进行修改或重新定义。格式部分可对消息体中的消息内容部分具体记录哪些内容进行自定义,如msg_id为电池则可自定义消息内容部分记录电池的电量信息、寿命信息,也可自定义只记录电量信息。消息内容部分根据格式部分定义的数据结构记录日志消息。

例如,格式部分定义一条关于电池的日志消息的格式,包括当前电量、当前电压、当前电流。那么消息内容部分就对应记录这些信息。当然格式部分也支持对消息内容部分的格式进行自定义,从而记录电池的其他信息。下面就是一条关于电池的日志消息的格式部分的代码,定义消息体的消息内容部分的格式:

其中,capacity指电池的当前电量,voltage指电池的当前电压,current指电池的当前电流,timestamp_ms指时间戳,记录当前时间。

在本发明提供的实施例中,日志消息统一都包含格式部分、标记部分和消息体三部分,且格式部分可对消息体中的消息内容部分的格式进行自定义、对自定义格式进行修改以及重新定义。因每一条日志消息都包含了上述三个部分,因此都能够按照统一的解析方法对日志消息的解析,统一标准之后再进行解析就能够提高效率。

基于此,如图5所示,该方法还可以包括:

步骤250,对消息体进行解析的步骤。如图6所示,在本发明提供的一实施例中,该步骤250还可进一步包括以下步骤:

步骤252,对日志消息中消息体的消息头部分进行校验。

请一并参阅图7,为本发明实施例中对消息体进行解析的流程图。消息头部分为双头结构,例如,header1为163、header2为169,163、169为同步字,对消息头进行校验是为了找出每一条日志消息的开头,是每一帧数据的开始。

步骤254,若校验通过,则获取日志消息中的消息标识部分、消息长度部分、消息内容部分和消息校验部分。

若同步字校验失败,则返回重新对消息头部分进行同步字校验。

步骤256,根据消息校验部分对消息内容部分进行校验,若校验通过,则消息体解析成功。

根据消息校验部分对消息体中的payload中的内容进行crc校验,若crc校验通过,则日志消息解析成功。说明该日志消息是完整的,有效的,可以用该日志消息进行后续的消息分析。增加crc校验,解决了传统的飞行日志记录方法缺少对日志消息的完整性和有效性进行验证的问题。

在本实施例中,对存储卡中存储的每一条日志消息进行解析,从而筛选出完整的、有效的日志消息,丢弃无效的日志消息。这样便于后续对筛选出的日志消息进行数据分析,分析无人机的飞行姿态、飞行轨迹、传感器监测数据、飞行速度、飞行高度、航向及电池信息等。

如图8所示,本发明的一实施例还提供了一种无人机飞行日志记录装置800,该装置包括:日志消息生成模块810和存储卡写入模块820。

日志消息生成模块810,用于生成日志消息;

存储模块820,用于存储日志消息生成模块生成的日志消息;

缓存模块830,用于获取存储区中最新的日志消息;

存储卡写入模块840,用于当缓存区中缓存的日志消息满足以下任一条件时,将缓存区中缓存的日志消息写入到存储卡中,写入条件包括:缓存区中缓存的日志消息所占存储容量达到容量阈值或缓存区中缓存的日志消息的次数达到次数阈值。

在一个实施例中,日志消息包括:格式部分、标记部分和消息体。

格式部分用于定义消息内容部分的格式,标记部分用于区分日志消息。消息体包含消息头部分、消息标识部分、消息长度部分、消息内容部分和消息检验部分,消息标识部分用于记录日志消息的类别,消息校验部分用于对日志消息进行检验。

在本发明的一实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:

生成日志消息;

将日志消息存入存储区中;

缓存区获取存储区中的日志消息;当缓存区中缓存的日志消息满足以下任一条件时,将缓存区中缓存的日志消息写入到存储卡中;条件包括:缓存区中缓存的日志消息所占存储容量达到容量阈值;或缓存区中缓存的日志消息的次数达到次数阈值。

在一个实施例中,上述程序被处理器执行时还实现以下步骤:格式部分用于定义消息内容部分的格式。标记部分用于区分日志消息。消息体包含消息头部分、消息标识部分、消息长度部分、消息内容部分和消息校验部分,消息标识部分用于记录日志消息的类别,消息校验部分用于对日志消息进行校验。

在一个实施例中,上述程序被处理器执行时还实现以下步骤:标记部分采用utc(coordinateduniversaltime)对日志消息进行区分,或采用递增的日志文件名称对日志消息进行区分。

在一个实施例中,上述程序被处理器执行时还实现以下步骤:对消息体进行解析。

在一个实施例中,上述程序被处理器执行时还实现以下步骤:对消息体进行解析,包括:对日志消息的消息体的消息头部分进行校验。若校验通过,则获取消息体中的消息标识部分、消息长度部分和消息内容部分和消息校验部分。根据消息校验部分对消息内容部分进行校验,若校验通过,则消息体解析成功。

在一个实施例中,上述程序被处理器执行时还实现以下步骤:消息头部分包括两个同步字。

在一个实施例中,上述程序被处理器执行时还实现以下步骤:对消息内容部分进行校验采用的是crc校验。

本发明的一实施例还提供了一种计算机设备,该计算机设备包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:

生成日志消息;

将日志消息存入存储区中;

缓存区获取存储区中的日志消息;当缓存区中缓存的日志消息满足以下任一写入条件时,将缓存区中缓存的日志消息写入到存储卡中;写入条件包括:缓存区中缓存的日志消息所占存储容量达到容量阈值;或缓存区中缓存的日志消息的次数达到次数阈值。

在一个实施例中,上述处理器执行计算机程序时还实现以下步骤:格式部分用于定义消息内容部分的格式。标记部分用于区分日志消息。消息体包含消息头部分、消息标识部分、消息长度部分、消息内容部分和消息校验部分,消息标识部分用于记录日志消息的类别,消息校验部分用于对日志消息进行校验。

在一个实施例中,上述程序被处理器执行时还实现以下步骤:标记部分采用utc(coordinateduniversaltime)对日志消息进行区分,或采用递增的日志文件名称对日志消息进行区分。

在一个实施例中,上述处理器执行计算机程序时还实现以下步骤:对消息体进行解析。

在一个实施例中,上述处理器执行计算机程序时还实现以下步骤:对消息体进行解析,包括:对日志消息的消息体的消息头部分进行校验。若校验通过,则获取消息体中的消息标识部分、消息长度部分和消息内容部分和消息校验部分。根据消息校验部分对消息内容部分进行校验,若校验通过,则消息体解析成功。

在一个实施例中,上述处理器执行计算机程序时还实现以下步骤:消息头部分包括两个同步字。

在一个实施例中,上述处理器执行计算机程序时还实现以下步骤:对消息内容部分进行校验采用的是crc校验。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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