具体实施方式
为了使本申请的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。
发明人在发明过程中注意到:
在现有技术中,有一些机器人的实现方案是,将认知系统放到云平台,云平台基本上都是用于机器人管理、协同等工作,不承担其他任务。
发明人认为,对于上述机器人而言,如果将全部任务指令都交给云平台处理的话,不仅会浪费云平台资源,还会浪费系统的通信资源。
针对上述不足,本申请实施例提出了一种机器人指令处理方法及装置,下面进行说明。
图1示出了本申请实施例中机器人指令处理方法实施的流程示意图,如图所示,所述机器人指令处理方法可以包括如下步骤:
步骤101、接收用户指令;
步骤102、判断所述指令的类型,所述指令的类型包括非条件反射指令和条件反射指令;
步骤103、如果所述指令为条件反射指令,将所述条件反射指令在本地指令集中进行查询;
步骤104、若所述本地指令集中不存在所述条件反射指令,则将所述条件反射指令发送至云端。
在具体实施中,可以由机器人的感知系统接收用户指令,用户指令可以包括:语音、遥控、手势、触摸、按键等方式接收的指令。
在本申请实施例中可以预先将这些指令进行分类,可以仿照人的系统,将指令分为非条件反射指令和条件反射指令。
其中,非条件反射指令也可以称为无条件反射指令,可以理解为不需要机器人条件反射就可以处理的指令,例如:用户按下某个按键之后,该按键本身就具备一定含义,机器人无需进行条件反射就可以进行相应的指令处理、执行相应的操作。与人的非条件反射相对应理解,可以将非条件反射指令理解为不需要后天的训练就能引起反射性反应的指令、先天性反射指令、本能反射的指令。
相应的,条件反射指令,也即机器人需要条件反射才能处理的指令,对应人的系统的话,则可以理解为经过后天学习逐渐形成的反射指令,例如:用户发送了一段语音,机器人在接收到这段语音指令后,需要首先对这段语音进行语音识别、分析等操作(可以对应理解为条件反射过程),在这样一段反射时间后,最终才能理解该指令的含义,进行相应的指令处理、执行相应的操作等。
在接收到用户指令后,判断所述指令的类型,然后可以根据指令的类型的不同,将指令分别进行不同的处理。对于非条件反射指令,由于不需要条件反射即可直接操作,则可以直接由本地处理,和人类处理非条件反射的指令类似。而对于条件反射指令,则需要首先在本地指令集中查找,确定本地指令集中是否有该指令,如果有则可以由本地直接处理,如果没有,则需要发送至云端,由云端处理。
由于本申请实施例并不是将用户发送过来的所有指令均在机器人本地处理,也不是将所有用户指令均发送给云端处理,而是先将用户指令进行分类,一部分本地直接处理、另一部分发往云端处理,使得机器人的指令处理不再受限于本地资源,从而可以扩大机器人可以实现的任务范围,确保更复杂的任务也可以完成,同时由于本申请实施例仅是将本地指令集不存在的条件反射指令发送给云端,从而大大的降低了通信资源的浪费,对于本地指令集中存在的条件反射指令依然由本地直接处理,减少了云端资源的浪费。
实施中,所述非条件反射指令可以包括遥控指令、触摸指令和/或按键指令;所述条件反射指令可以包括语音指令、手势指令、眼神指令和/或表情指令。
本申请实施例根据人的系统,将用户指令进行了划分,将传统家电类使用的指令,例如:遥控指令、触摸指令、按键指令等归类为非条件反射指令;将语音、手势、眼神、表情等输入方式接收的指令归类为条件反射指令。
由于这种分类方式是按照人的系统来划分指令的,因此,采用这种分类方式,可以达到更好的仿人效果。
实施中,所述本地指令集的数据结构中可以包括指令执行次数、指令使用间隔和指令内容。
在具体实施中,本地指令集的数据结果可以为数组、队列、栈、图等等,数据结构中每个元素的内容可以包括:指令执行次数、指令使用间隔和指令内容。其中,指令使用间隔可以通过指令使用时间戳计算得到。
实施中,在所述将所述条件反射指令在本地指令集中查询之后,所述方法可以进一步包括:
若所述本地指令集中存在所述条件反射指令,则由本地处理所述条件反射指令,并将所述条件反射指令的指令执行次数加一、更新所述条件反射指令的指令使用间隔。
也即,在本地指令集存在该条件反射指令时,可以由本地处理该条件反射指令,同时可以更新所述本地指令集,具体更新内容可以为:将所述条件反射指令的指令执行次数加一、更新所述条件反射指令的指令使用间隔等。
本地指令集中存在的条件反射指令,可以理解为与非条件反射指令一样,具有处理速度更快、效率更高,而且无需发送至云端,节省了通信资源等优点。
实施中,在所述若所述本地指令集中不存在所述条件反射指令,则将所述条件反射指令发送至云端之后,所述方法可以进一步包括:
在收到云端的指令处理结果后,检查所述本地指令集是否还有空间;
如果所述本地指令集有空间,则将所述条件反射指令的指令内容存储到所述本地指令集,将所述条件反射指令的指令执行次数初始化为1,为所述条件反射指令增加指令使用时间戳;
如果所述本地指令集空间已满,则查找所述本地指令集中指令执行次数最少、指令使用间隔最长的指令,将所述条件反射指令替换所述指令执行次数最少、指令使用间隔最长的指令。
也即,如果本地指令集没有该条件反射指令,则可以将该条件反射指令发送至云端,由云端进行处理,机器人接收到云端的指令处理结果后,可以控制机器人进行相应操作,同时可以检查本地指令集是否有空间,如果有,则将指令内容存储到本地指令集,同时将指令执行次数初始化为1、增加指令使用时间戳;如果指令集空间已满,则将本地指令集已有的指令集中,找出使用次数最少、使用时间间隔最长的指令,用新指令(所述条件反射指令)替换此指令。
在具体实施中,使用次数最少、使用时间间隔最长的指令,可以根据实际需要进行设定,也可以预先设置相关的阈值,或者设定优先级等方式实现,本申请对此不作限制。
本申请实施例提供了一种基于自学习更新迭代的算法,可以使得本地指令集在每次指令执行时均可以自行更新,为后续的指令处理提供效率保障。
为了便于本申请的实施,下面以实例进行说明。
机器人本地的感知系统收到用户指令,这些指令可以包括:语音指令、遥控指令、手势、触摸、按键等等。
将这些指令进行分类,可以将指令分为非条件反射指令和条件反射指令。分类方法可以多种多样,例如:将传统家电类使用的指令(遥控指令、触摸指令、按键指令等)归类为非条件反射指令;将语音、手势、眼神、表情等输入方式接收到的指令归类为条件反射指令。
将这些指令进行指令预处理,具体预处理过程可以如下:
判断指令的类型,根据类型的不同,将指令发送至不同的处理模块:
对于非条件反射指令,直接由本地处理,具体处理过程与人类处理非条件反射指令类似;
对于条件反射指令,首先判断本地指令集中是否有该指令,如果有,由本地直接处理;如果没有,则发送至云端处理。
本地指令集中存在的条件反射指令,可以理解为与非条件反射指令具有一样的优点,也即,处理速度更快、效率更高、且无需发送至云端节省了通信资源。在具体实施中,本地条件反射指令集可以基于自学习更新迭代方式,图2示出了本申请实施例中本地指令集的生成方法的流程示意图,下面进行说明。
步骤201、建立本地指令集的数据结构。
建立一个本地指令集的数据结构,其数据结构可以是数组、队列、栈、图等等。其中,数据结构中每个元素的内容可以包括:指令接收次数、指令平均使用间隔和指令内容等。
步骤202、初始化本地指令集。
本地指令集的初始化可以为空,也可以预置一些常用指令,例如:语音唤醒指令、语音关机指令、手势关机指令等等,其指令接收次数、指令平均使用间隔也都可以预先设置。
然后,判断是否为条件反射指令:
如果是,则执行步骤203;
如果不是,则执行步骤204。
步骤203、查询本地指令集。
机器人在收到条件反射指令后,首先查询本地指令集中是否有该指令:
如果存在该指令,则执行步骤204;
如果没有,则执行步骤205;
步骤204、本地直接处理,执行指令执行次数加1、更新指令使用时间间隔;
步骤205、将该指令发送至云端(机器人的认知系统)处理。
在收到认知系统的指令处理结果后,机器人的控制系统可以控制机器人进行相应的操作,同时检查本地指令集是否还有空间:
如果有空间,则执行步骤206;
如果没有空间,则执行步骤207。
步骤206、直接存储该指令。
将该指令存储到本地指令集,执行步骤208;
步骤207、用该指令替换已有指令。
如果本地指令集空间已满,可以将本地指令集中已存在的指令集中,找出使用次数最少、使用间隔最长的指令,用新指令将其替换掉。
步骤208、将该指令的指令执行次数初始化为1、增加指令使用时间戳。
基于同一发明构思,本申请实施例中还提供了一种机器人指令处理装置,由于这些设备解决问题的原理与一种机器人指令处理方法相似,因此这些设备的实施可以参见方法的实施,重复之处不再赘述。
图3示出了本申请实施例中机器人指令处理装置的结构示意图,如图所示,机器人指令处理装置可以包括:
接收模块301,用于接收用户指令;
判断模块302,用于判断所述指令的类型,所述指令的类型包括非条件反射指令和条件反射指令;
查询模块303,用于如果所述指令为条件反射指令,将所述条件反射指令在本地指令集中进行查询;
发送模块304,用于若所述本地指令集中不存在所述条件反射指令,则将所述条件反射指令发送至云端。
实施中,所述非条件反射指令可以包括遥控指令、触摸指令和/或按键指令;所述条件反射指令可以包括语音指令、手势指令、眼神指令和/或表情指令。
实施中,所述本地指令集的数据结构中可以包括指令执行次数、指令使用间隔和指令内容。
实施中,所述装置可以进一步包括:
本地处理模块,用于若所述本地指令集中存在所述条件反射指令,本地处理所述条件反射指令;
更新模块,用于将所述条件反射指令的指令执行次数加一、更新所述条件反射指令的指令使用间隔。
实施中,所述接收模块可以进一步用于接收云端返回的指令处理结果;所述装置可以进一步包括:
空间检查模块,用于检查所述本地指令集中是否还有空间;
指令存储模块,用于如果所述本地指令集有空间,则将所述条件反射指令的指令内容存储到所述本地指令集,将所述条件反射指令的指令执行次数初始化为1,为所述条件反射指令增加指令使用时间戳;
指令替换模块,用于如果所述本地指令集空间已满,则查找所述本地指令集中指令执行次数最少、指令使用间隔最长的指令,将所述条件反射指令替换所述指令执行次数最少、指令使用间隔最长的指令。
为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。