具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例一:
图1示出了本申请实施例提供的第一种机器人数据采集方法的流程示意图,详述如下:
在S101中,获取机器人产生的事件,所述事件包括第一事件及第二事件。
机器人产生的事件,这里的事件包括触发机器人设备开启的启动事件、触发机器人接受用户控制的激活事件、触发机器人设备关闭的关闭事件、机器人的动作执行事件、机器人的语音、视觉识别等各种软件交互事件等。当这些事件产生时,相应地会记录、采集这些事件对应的事件数据信息,这些事件数据信息即目标数据,以便监测机器人的具体运作状态。可选地,将目标数据的格式处理为统一的格式,以便数据采集后的整理分析。表1为一种目标数据格式及对应字段含义的例子,如下所示:
表1:
如上表1所示,应用标识为每类机器人的唯一标识,序列号为每台机器人的唯一标识,版本号为当前采集的数据格式的版本,事件分类包括第一事件及第二事件,事件名称为事件对应的执行代码函数名,采集时间为记录该条目标数据的时间,时长为完整执行该事件所需要的时间,请求IP为机器人当前的IP地址。其中,附带信息为除了以上各个基础字段外的、根据具体目标数据而附带的信息,该字段为JSON结构,支持扩展。
其中,启动事件、激活事件、关闭事件等事件为使机器人使用状态发生变化的触发事件,即为机器人运作的节点事件,必须及时上报相应的目标数据,视为第一事件;机器人的具体动作执行事件、软件交互事件等为机器人运作过程中的一般事件,视为第二事件。
在S102中,若所述事件为第一事件,则立即将所述第一事件对应的第一目标数据上传至云服务器。
当机器人产生的事件为第一事件时,例如机器人的开机、关机、激活等机器人运作的节点事件,则立即将所述第一事件对应的第一目标数据上传至云服务器。
具体地,当第一事件为开机事件时,第一目标数据为执行开机事件时产生的数据。执行开机事件时采集的第一目标数据中,可以包含机器人当前各个子系统的版本、系统语言、系统时区等信息,这些信息可以记录在例如表1所示的附带信息字段中。当第一事件为关机事件时,第一目标数据具体包括关机事件发生时累积记录且未上传的采集数据及关机事件触发时产生的数据。当第一事件为激活事件时,对应的第一目标数据为包括用户信息的数据。激活事件对应的包含用户信息的第一目标数据上报后,在此之后上传至云服务器的第一目标数据都视为该用户使用机器人时该机器人生成的数据,以便后续在数据分析时进行用户画像分析。
在S103中,若所述事件为第二事件,则在达到预设条件时,将所述第二事件对应的第二目标数据上传至云服务器,其中所述预设条件包括预设时间或者第二目标数据的预设数量。
当检测到机器人产生的事件为第二事件,即检测到机器人产生的事件为机器人正常运行过程中的一般事件时,若达到预设条件,则将第二事件对应的第二目标数据上传至云服务器。
其中,预设条件可以为预设时间或者第二目标数据的预设数量。即每隔预设时间上传累积记录的第二目标数据,或者当第二目标数据到达预设数量时,再将累积记录的第二目标数据上传。
本发明实施例中,由于将机器人产生的事件对应的目标数据上传至服务器,因此可以对机器人执行各种事件时的运行信息进行记录;同时,对事件进行区分,需要及时上报的数据立即上报,让其它普通事件对应的数据每隔预设时间或者达到预设数量再进行上报,因此可以在保证数据及时上报的同时降低机器人的系统资源消耗,提高机器人数据采集的效率。
实施例二:
图2示出了本申请实施例提供的第二种机器人数据采集方法的流程示意图,详述如下:
在S201中,配置机器人的事件埋点,所述事件包括第一事件及第二事件。
事件埋点指的是为预设事件配置数据采集点,即设置需要采集哪些事件产生的数据。当检测到机器人执行该事件时,相应触发采集代码,进而采集该事件产生时所生成的目标数据。
在S202中,根据所述事件埋点,获取机器人产生的事件,所述事件包括第一事件及第二事件。
根据事件埋点,获取机器人产生的事件。当检测到机器人执行预设事件时,自动获取该事件,记录、采集这些事件对应的目标数据。其中例如机器人使用状态的触发事件为机器人运作的节点事件,必须及时上报相应的目标数据,视为第一事件;机器人的具体动作执行事件、软件交互事件等为机器人运作过程中的一般事件,视为第二事件。
在S203中,若所述事件为第一事件,则立即将所述第一事件对应的第一目标数据上传至云服务器。
当机器人产生的事件为第一事件时,例如机器人的开机、关机、激活等机器人使用过程中的节点事件,则立即将所第一事件对应的第一目标数据上传至云服务器。
具体地,当机器人产生的事件为开机事件时,第一目标数据为开机事件执行时对应产生的数据。开机事件执行时对应采集的第一目标数据中,可以包含机器人当前各个子系统的版本、系统语言、系统时区等信息,这些信息可以记录在例如表1所示的附带信息字段中。当机器人当前产生的事件为关机事件时,第一目标数据具体包括关机事件发生时累积记录的采集数据及关机事件触发时产生的数据。当机器人产生的事件为激活事件时,对应的第一目标数据为包括用户信息的数据。激活事件对应的包含用户信息的第一目标数据上报后,可以视为在此之后上传至云服务器的目标数据都绑定为该用户使用机器人时机器人生成的数据,以便后续在数据分析时可以进行用户画像分析。
可选地,在所述将所述第一事件对应的第一目标数据上传至云服务器之后,还包括:
若所述第一目标数据上传失败,则自动重新上传所述第一目标数据。
如果检测到第一目标数据上传失败,例如接收到云服务器响应的上传失败的反馈结果,则自动重新上传该数据。
在S204中,若所述事件为第二事件,则在达到预设条件时,将所述第二事件对应的第二目标数据上传至云服务器,其中所述预设条件包括预设时间或者第二目标数据的预设数量。
可选地,所述若所述事件为第二事件,则在达到预设条件时,将所述第二事件对应的第二目标数据上传至云服务器,包括:
若所述事件为第二事件,则:
每隔第一预设时间,将所述第二目标数据存储到本地数据库;
每隔第二预设时间,将所述本地数据库的所述第二目标数据上传至云服务器。
在获取机器人产生的第二事件,采集对应的第二目标数据时,机器人将实时存入高速内存的数据每隔第一预设时间,例如每隔20ms存储到本地数据库中,该第一预设时间可以根据机器人的设备系统性能测试得到。每隔第一预设时间再将数据持久化存储到数据库,可以减少数据存储的操作次数,减少系统资源的损耗率。
每隔第二预设时间,例如每隔90s,上传一次本地数据库中的第二目标数据至云服务器。通过设置上传时间间隔,可以有效减少机器人请求上传数据的次数,进一步减少系统资源的消耗,提高机器人的运行效率。
可选地,所述若所述事件为第二事件,则在达到预设条件时,将所述第二事件对应的第二目标数据上传至云服务器,包括:
若所述事件为第二事件,则:
每隔第一预设时间,将所述第二目标数据存储到本地数据库;
若所述本地数据库的所述第二目标数据的数量达到预设数量,则将所述本地数据库的所述第二目标数据上传至云服务器。
在获取机器人产生的第二事件,采集对应的第二目标数据时,机器人将实时存入高速内存的数据每隔第一预设时间,例如每隔20ms存储到本地数据库中,该第一预设时间可以根据机器人的设备系统性能测试得到。每隔第一预设时间再将数据持久化存储到数据库,可以减少数据存储的操作次数,减少系统资源的损耗率。
当本地数据库中的第二目标数据的数量达到预设数量时,例如10条,再将本地数据库中存储的第二目标数据上传至云服务器。通过设置达到预设数量再进行数据上传,可以有效减少机器人请求上传数据的次数,进一步减少系统资源的消耗,提高机器人的运行效率。
可选地,若检测到所述第二事件对应的第二目标数据为大数据流格式,将所述第二目标数据以断点续传的方式上传至云服务器。
大数据流格式的数据指的是以流形式传输的语音、视频等大数据量数据。若检测到第一目标数据为大数据流格式,则将第一目标数据以断点续传的方式上传至云服务器。即此时的第一目标数据不用一次性完整记录为一段完整的语音、一个完整的视频再进行上传,可以分为几个部分,每一个部分采用不同线程或者不同时间进行上传,每次从已经上传的节点开始继续上传未完成的部分。
可选地,所述在所述将所述第二事件对应的第二目标数据上传至云服务器之后,还包括:
若所述第二目标数据上传失败,则自动重新上传所述第二目标数据。
如果检测到第二目标数据上传失败,例如接收到云服务器响应的上传失败的反馈结果,则自动重新上传该数据。
本发明实施例中,由于配置事件埋点,可以获取机器人产生的预设事件,采集该事件对应的目标数据并上传至服务器,因此可以对机器人执行预设事件时的运行信息进行记录;同时,对事件进行区分,需要及时上报的数据立即上报,让其它普通事件对应的数据每隔预设时间或者达到预设数量再进行上报,因此可以在保证数据及时上报的同时降低机器人的系统资源消耗,提高机器人数据采集的效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例三:
图3示出了本申请实施例提供的一种机器人数据采集装置的结构示意图,为了便于说明,仅示出了与本申请实施例相关的部分:
该机器人数据采集装置包括:第一获取单元31、第一判定单元32、第二判定单元33。其中:
第一获取单元31,用于获取机器人产生的事件,所述事件包括第一事件及第二事件。
机器人产生的事件,这里的事件包括触发机器人设备开启的启动事件、触发机器人接受用户控制的激活事件、触发机器人设备关闭的关闭事件、机器人的动作执行事件、机器人的语音、视觉识别等各种软件交互事件等。当这些事件产生时,相应地会记录、采集这些事件对应的事件数据信息,这些事件数据信息即目标数据,以便监测机器人的具体运作状态。可选地,将目标数据的格式处理为统一的格式,以便数据采集后的整理分析。
其中,启动事件、激活事件、关闭事件等事件为使机器人使用状态发生变化的触发事件,即为机器人运行的节点事件,必须及时上报相应的目标数据,视为第一事件;机器人的具体动作执行事件、软件交互事件等为机器人运作过程中的一般事件,视为第二事件。
可选地,所述机器人数据采集装置还包括配置单元,用于配置机器人的事件埋点,所述事件包括第一事件及第二事件,以使第一获取单元31根据所述事件埋点,获取机器人产生的事件,所述事件包括第一事件及第二事件。
第一判定单元32,用于若所述事件为第一事件,则立即将所述第一事件对应的第一目标数据上传至云服务器。
当机器人产生的事件为第一事件时,例如机器人的开机、关机、激活等机器人运行的节点事件,则立即将所述第一事件对应的第一目标数据上传至云服务器。
具体地,当第一事件为开机事件时,第一目标数据为执行开机事件时产生的数据。执行开机事件时采集的第一目标数据中,可以包含机器人当前各个子系统的版本、系统语言、系统时区等信息,这些信息可以记录在例如表1所示的附带信息字段中。当第一事件为关机事件时,第一目标数据具体包括关机事件发生时累积记录且未上传至的采集数据及关机事件触发时产生的数据。当第一事件为激活事件时,对应的第一目标数据为包括用户信息的数据。激活事件对应的包含用户信息的第一目标数据上报后,在此之后上传至云服务器的第一目标数据都视为该用户使用机器人时该机器人生成的数据,以便后续在数据分析时进行用户画像分析。
可选地,所述第一判定单元32包括第一重传模块,用于若所述第一目标数据上传失败,则自动重新上传所述第一目标数据。
第二判定单元33,用于若所述事件为第二事件,则在达到预设条件时,将所述第二事件对应的第二目标数据上传至云服务器,其中所述预设条件包括预设时间或者第二目标数据的预设数量。
当检测到机器人产生的事件为第二事件,即检测到机器人产生的事件为机器人正常运行过程中的一般事件时,若达到预设条件,则将第二事件对应的第二目标数据上传至云服务器。
其中,预设条件可以为预设时间或者第二目标数据的预设数量。即每隔预设时间上传累积记录的第二目标数据,或者当第二目标数据到达预设数量时,再将累积记录的第二目标数据上传。
可选地,所述第二判定单元33包括第一上传模块,用于每隔第一预设时间,将所述第二目标数据存储到本地数据库;每隔第二预设时间,将所述本地数据库的所述第二目标数据上传至云服务器。
可选地,所述第二判定单元33包括第二上传模块,若所述事件为第二事件,则:每隔第一预设时间,将所述第二目标数据存储到本地数据库;若所述本地数据库的所述第二目标数据的数量达到预设数量,则将所述本地数据库的所述第二目标数据上传至云服务器。
可选地,所述第一判定单元33包括第三上传模块,用于若检测到所述第二事件对应的第二目标数据为大数据流格式,将所述第二目标数据以断点续传的方式上传至云服务器。
可选地,所述第二判定单元33包括第二重传模块,用于若所述第二目标数据上传失败,则自动重新上传所述第二目标数据。
本发明实施例中,由于将机器人产生的事件对应的目标数据上传至服务器,因此可以对机器人执行各种事件时的运行信息进行记录;同时,对事件进行区分,需要及时上报的数据立即上报,让其它普通事件对应的数据每隔预设时间或者达到预设数量再进行上报,因此可以在保证数据及时上报的同时降低机器人的系统资源消耗,提高机器人数据采集的效率。
实施例四:
图4示出了本申请实施例提供的一种机器人数据采集系统的结构示意图,为了便于说明,仅示出了与本申请实施例相关的部分:
该机器人数据采集系统包括至少一个机器人数据采集装置及云服务器,所述机器人数据采集装置可以安装于机器人设备中,一个机器人数据采集装置对应采集一个机器人的数据,即机器人数据采集系统可以用于采集一个机器人的数据,也可以用于采集多个机器人的数据。其中:
所述机器人数据采集装置41为上一实施例中所述的机器人数据采集装置,可以执行实施例一、实施例二中所述的各种机器人数据采集方法。
所述云服务器42至少包括数据采集后台服务单元及分布式文件服务单元,其中:所述数据采集后台服务单元用于接收机器人数据采集装置上传的数据并返回响应信息至所述机器人数据采集装置;所述分布式文件服务单元用于存储所述数据。
云服务器为接收、存储机器人上传的数据的设备或者设备组合,云服务器至少包括数据采集后台服务单元及分布式文件服务单元。数据采集后台服务单元接收机器人上传的数据,并返回响应信息给该机器人数据采集装置,以便及时反馈给机器人数据采集装置当前的上传的数据是否上传成功。数据采集后台服务单元将接收的数据存储于分布式文件服务单元,例如Hadoop分布式文件系统HDFS中,以便支持大数据量的数据存储。
可选地,所述分布式文件服务单元还包括故障处理模块,用于当检测到分布式文件系统中一个故障节点存储数据失败时,自动将数据发送到其他节点进行存储,然后故障节点会尝试重启服务,并发送警报信息。
可选地,所述云服务器还包括对象存储服务单元,用于存储大数据流格式数据。
当机器人上传的数据为大数据流格式数据时,由对象存储服务单元以断点续传的方式接收该数据。
本发明实施例中,由于将机器人产生的事件对应的目标数据上传至服务器,因此可以对机器人执行各种事件时的运行信息进行记录;同时,对事件进行区分,需要及时上报的数据立即上报,让其它普通事件对应的数据每隔预设时间或者达到预设数量再进行上报,因此可以在保证数据及时上报的同时降低机器人的系统资源消耗,提高机器人数据采集的效率。
实施例五:
图5是本发明一实施例提供的终端设备的示意图。如图5所示,该实施例的终端设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52,例如机器人数据采集程序。所述处理器50执行所述计算机程序52时实现上述各个机器人数据采集方法实施例中的步骤,例如图1所示的步骤S101至S103。或者,所述处理器50执行所述计算机程序52时实现上述各装置实施例中各模块/单元的功能,例如图3所示单元31至33的功能。
示例性的,所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述终端设备5中的执行过程。例如,所述计算机程序52可以被分割成第一获取单元、第一判定单元、第二判定单元,各单元具体功能如下:
第一获取单元,用于获取机器人产生的事件,所述事件包括第一事件及第二事件。
第一判定单元,用于若所述事件为第一事件,则立即将所述第一事件对应的第一目标数据上传至云服务器。
第二判定单元,用于若所述事件为第二事件,则在达到预设条件时,将所述第二事件对应的第二目标数据上传至云服务器,其中所述预设条件包括预设时间或者第二目标数据的预设数量。
所述终端设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是终端设备5的示例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。