发明内容
本发明主要解决的技术问题是提供一种机器人控制方法及机器人、具有存储功能的装置,以提高机器人工作的稳定性,提高机器人任务执行的效率。
为解决上述技术问题,本发明采用的一个技术方案是:提供机器人控制方法,该方法包括:当接收到新任务的请求时,获取机器人的当前任务;根据新任务和当前任务查询预设的状态表,判断是否将当前任务切换为新任务;若是,则将当前任务切换为新任务。
其中,判断是否将当前任务切换为新任务包括:若否,则控制机器人并列执行当前任务及新任务。
其中,在根据新任务和当前任务查询预设的状态表之前,方法进一步包括:根据预设的状态表判断是否允许插入新任务;若是,则将新任务更新到机器人的任务列表中。
其中,将当前任务切换为新任务包括:打断当前任务,并执行新任务。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种机器人,该机器人包括:处理器,处理器用于运行状态机;存储器,存储器用于存储预设的状态表;当接收到新任务的请求时,处理器进一步获取机器人的当前任务,并根据新任务和当前任务查询存储器存储的预设的状态表,判断是否将当前任务切换为新任务;若是,处理器则对状态机进行状态转移,并将机器人的当前任务切换为新任务。
其中,若否,处理器则激活状态机中新任务对应的状态,并并列执行当前任务及新任务。
其中,存储器进一步存储任务列表,处理器在根据新任务和当前任务查询预设的状态表之前,进一步根据预设的状态表判断是否允许插入新任务;若是,处理器则将新任务更新到任务列表中。
其中,若将当前任务切换为新任务,处理器则打断当前任务,并执行当前任务。
其中,处理器进一步用于运行操作系统层及接口层;处理器控制状态机将其状态上报给接口层;处理器控制操作系统层通过接口层接收请求,并根据请求产生上报结果;处理器控制接口层根据上报结果及状态产生分发指令;处理器根据分发指令将机器人的当前任务切换为新任务。
为解决上述技术问题,本发明采用的又一个技术方案是:提供一种具有存储功能的装置,其上存储有程序数据,程序数据被执行时实现上述方法中的步骤。
本发明实施例的有益效果是:区别于现有技术,本发明实施例机器人控制方法包括:当接收到新任务的请求时,获取机器人的当前任务;根据新任务和当前任务查询预设的状态表,判断是否将当前任务切换为新任务;若是,则将当前任务切换为新任务。本发明实施例通过查询预设的状态表,能够对当前任务及新任务的执行关系进行有序的管理,因此,提高机器人工作的稳定性,能够提高机器人任务执行的效率。
具体实施方式
本发明提出一种机器人控制方法,如图1所示,图1是本发明机器人控制方法第一实施例的结构示意图。本实施例的方法包括以下步骤:
S101:当接收到新任务的请求时,获取机器人的当前任务。
其中,机器人201是一种计算设备,在物理结构上包括处理器202及存储器203,如图2所示,图2是本发明机器人一实施例的结构示意图;在逻辑结构上包括应用层301、状态机302、接口层303及操作系统层304,如图3所示,图3是图2实施例机器人的逻辑结构示意图。处理器202及存储器203是机器人201的硬件结构,而应用层301、状态机302、接口层303及操作系统层304是机器人201的软件结构,硬件结构是软件结构运行的载体、平台。
本实施例的应用层301用于信息处理,在处理器202的控制下运行各种应用程序,以控制机器人201执行任务;例如,处理器202控制应用层301运行升级、远程控制、视频客服、导航、跳舞等应用程序,使机器人201执行相应操作。
本实施例的状态机302用于管理机器人201各种任务,即状态,以使机器人201灵活切换状态。关于状态机的一个极度确切的描述是有向图形,它由一组节点和一组相应的转移函数组成。状态机通过响应一系列事件而"运行"。每个事件都在属于"当前"节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。函数返回"下一个"(也许是同一个)节点。这些节点中至少有一个必须是终态。当到达终态,状态机停止。本实施例的状态机302在处理器202的控制下进行状态转移,并将更新后的状态反馈给应用层301,便于应用层301运行与更新后的状态对应的新任务,同时,状态机302将更新后的状态反馈给接口层303,以使接口层303根据该更新后的状态及操作系统层304的上报结果产生分发指令,该分发指令用于控制该新任务。
本实施例的操作系统层304包括操作系统ROS及安卓系统,当然,在其它实施例中,操作系统层304还可以是其它单操作系统,或是其它多操作系统。
当应用层301接收到新任务的请求时,处理器202获取机器人201的当前任务。应用层301接收到新任务的请求时,通过接口层303向操作系统层304请求资源等配置。
S102:根据新任务和当前任务查询预设的状态表,判断是否将当前任务切换为新任务,若是,则执行步骤S103。
本实施例的处理器202根据新任务和当前任务查询预设的状态表,判断是否将当前任务切换为新任务。
其中,预设的状态表存储于存储器203。具体地,本实施例的预设的状态表如表1所示:
表1预设的状态表
其中,该预设的状态表中“进入状态”对应于应用层301接收的新任务,“已存状态”对应于应用层301执行的当前任务。该预设的状态表包括机器人201的各任务(状态)之间的执行关系,该执行关系包括:禁止插入(用“0”表示)、进入且共存(用“1”表示)及进入且打断(用“2”表示)等。该禁止插入是指新任务不能插入当前任务,例如,新任务远程控制与当前任务系统升级的执行关系为“0”,即远程控制不能插入系统升级;新任务急停与当前任务系统升级的执行关系为“1”,即急停与系统升级并列运行;新任务系统升级与当前任务开机设置的执行关系为“2”,即打断开机设置,并执行系统升级。
当然,本实施例的机器人201的任务不局限于表1中所示任务,机器人201的任务还可以包括视频通讯、迎宾、广告、自动巡游、闲聊、播放视屏及播放音乐等。且各任务间的关系也不局限于表1中所示关系,用户可以通过实际需要对表1进行更新、补充。
本实施例可以通过状态值标识每个状态,以提高处理器202的处理效率。例如,状态值“20”代表开机设置等。
S103:将当前任务切换为新任务。
若根据上述预设的状态表判断要将当前任务切换为新任务,处理器202则控制状态机302从与当前任务对应的当前状态转移到与新任务对应的目标状态,并控制应用层301将当前任务切换为新任务。例如,通过查询上述预设的状态表获得新任务系统升级与当前任务远程控制的执行关系为“2”,即远程控制允许被系统升级打断,处理器202则控制应用层301将远程控制切换为系统升级。
其中,本实施例的将当前任务切换为新任务是将当前任务打断,并执行新任务,待新任务结束后,恢复执行当前任务。
当然,在其它实施例中,将当前任务切换为新任务也可以是结束当前任务,并执行新任务,待新任务完成后,执行下一个任务。
区别于现有技术,本实施例通过查询预设的状态表,能够对当前任务及新任务的执行关系进行有序的管理,因此,能够提高机器人201工作的稳定性,提高机器人201任务执行的效率。
本发明在上述实施例的基础上进一步提出第二实施例的机器人控制方法,如图4所示,图4是本发明机器人控制方法第二实施例的流程示意图。本实施例的方法在上述实施例的方法的基础上进一步包括:
S401:若不将当前任务切换为新任务,则控制机器人201并列执行当前任务及新任务。
若根据上述预设的状态表判断不将当前任务切换为新任务,处理器202则控制状态机302激活从与新任务对应的目标状态,并控制应用层301并列执行当前任务及新任务。例如,通过查询预设的状态表获得新任务急停与当前任务开机设置的执行关系为“1”,即急停与开机设置并列执行,处理器202则控制应用层301并列执行急停与开机设置。
本发明在上述实施例的基础上进一步提出第三实施例的机器人控制方法,如图5所示,图5是本发明机器人控制方法第三实施例的流程示意图。本实施例的机器人201的各任务均存储于存储器203的任务列表中,在机器人201工作时,根据状态机302的状态转移顺序有序执行任务列表中的各任务。
本实施例的方法在上述实施例方法的步骤S102之前进一步包括步骤S501-S503:
S501:根据预设的状态表判断是否允许插入新任务,若是,则进入步骤S502,若否,则进行步骤S503。
S502:将新任务更新到任务列表中。
S503:取消请求。
本实施例的处理器202根据预设的状态表判断应用层301接收的新任务是否被允许插入任务列表,若允许,则将该新任务更新到任务列表中,便于后续应用层301对新任务的调取。例如,通过查询预设的状态表获得新任务急停与当前任务开机设置的执行关系为“1”,即非“0”,处理器202则将急停插入任务列表中;若不允许,处理器202控制应用层301取消该新任务的请求。例如,通过查询预设的状态表获得新任务远程控制与当前任务开机设置的执行关系为“0”,即远程控制不允许插入开机设置,处理器202则控制应用层301取消远程控制的请求。
下面以图3为例,从逻辑结构上对本发明机器人控制方法进行详细叙述,具体地,1)当应用层301接收到新任务的请求时,先根据预设的状态表进行第一次状态查询,用于判断是否将新任务插入任务列表,状态机302将第一次查询结果(状态)上报给应用层301,若新任务允许插入任务列表,则将新任务插入任务列表,若不允许,则取消新任务的请求,该步骤与上步骤S501-S503实现功能相同;2)若新任务插入到任务列表,应用层301则根据新任务向接口层303发送接口注册申请,此时,接口层303根据预设的状态表进行第二次状态查询,用于判断新任务是否被允许打断当前任务,或与当前任务并列执行,状态机302将第二次查询结果(状态)上报给接口层303,接口层303根据新任务及第二次查询结果向操作系统层304发送接口注册申请;3)操作系统层304根据接口注册申请产生上报结果,上报结果至少包括对新任务的资源分配信息;4)接口层303根据该上报结构及第二次查询结果产生指令分发,用于控制应用层301打断当前任务,并执行新任务,或者控制应用层301并列执行当前任务及新任务。步骤2)-4)与上步骤S101-S103及401实现功能相同。
本发明进一步提出一种机器人,如图2所示,机器人201包括处理器202及存储器203,其中,处理器202用于运行状态机302,存储器203用于存储预设的状态表,当接收到新任务的请求时,处理器202进一步获取机器人201的当前任务,并根据新任务和当前任务查询存储器203存储的预设的状态表,判断是否将当前任务切换为新任务;若是,处理器202则对状态机302进行状态转移,并将机器人201的当前任务切换为新任务。
如图3所示,机器人201在逻辑结构上包括应用层301、状态机302、接口层303及操作系统层304,处理器202及存储器203是机器人201的硬件结构,而应用层301、状态机302、接口层303及操作系统层304是机器人201的软件结构,硬件结构是软件结构运行的载体、平台。
本实施例的应用层301在处理器202的控制下运行各种应用程序,以控制机器人201执行任务。应用层301接收到新任务的请求时,通过接口层303向操作系统层304请求资源等配置。
本实施例的状态机302用于管理机器人201各种任务,即状态,以使机器人201灵活切换状态。状态机302在处理器202的控制下进行状态转移,并将更新后的状态反馈给应用层301,便于应用层301运行与更新后的状态对应的新任务,同时,处理器202控制状态机302将更新后的状态反馈给接口层303;处理器202控制操作系统层304通过接口层303接收请求,并根据请求产生上报结果;处理器202控制接口层303根据上报结果及状态产生分发指令;处理器202控制应用层301根据分发指令将机器人201的当前任务切换为新任务。
本实施例的操作系统层304包括操作系统ROS及安卓系统,当然,在其它实施例中,操作系统层304还可以是其它单操作系统,或是其它多操作系统。
若根据上述预设的状态表判断要将当前任务切换为新任务,处理器202则控制状态机302从与当前任务对应的当前状态转移到与新任务对应的目标状态,并控制应用层301将当前任务切换为新任务。
其中,本实施例的将当前任务切换为新任务是将当前任务打断,并执行新任务,待新任务结束后,恢复执行当前任务。
当然,在其它实施例中,将当前任务切换为新任务也可以是结束当前任务,并执行新任务,待新任务完成后,执行下一个任务。
区别于现有技术,本实施例通过查询预设的状态表,能够对当前任务及新任务的执行关系进行有序的管理,因此,能够提高机器人201工作的稳定性,提高机器人201任务执行的效率。
若根据上述预设的状态表判断不将当前任务切换为新任务,处理器202则控制状态机302激活与新任务对应的目标状态,并控制应用层301并列执行当前任务及新任务。
本实施例的机器人201的各任务均存储于存储器203的任务列表中,在机器人201工作时,根据状态机302的状态转移顺序有序执行任务列表中的各任务。
本实施例的处理器202根据预设的状态表判断应用层301接收的新任务是否被允许插入任务列表,若允许,处理器202则将该新任务更新到任务列表中,便于后续应用层301对新任务的调取;若不允许,处理器202控制应用层301取消该新任务的请求。
本发明进一步提出一种具有存储功能的装置,如图6所示,图6是本发明具有存储功能的装置一实施例的结构示意图。本实施例具有存储功能的装置601用于存储上述实施例的相关数据602及程序数据603,其中,相关数据602至少包括上述预设的状态表及任务列表等,程序数据603能够被执行以上述方法实施例的方法。相关数据602及程序数据603已在上述方法实施例中进行了详细的叙述,这里不赘述。
本实施例具有存储功能的装置601可以是但不局限于U盘、SD卡、PD光驱、移动硬盘、大容量软驱、闪存、多媒体记忆卡、服务器等。
区别于现有技术,本发明实施例能够解决机器人201任务跨进程或跨系统出现状态错乱的问题,通过查询预设的状态表,能够对当前任务及新任务的执行关系进行有序的管理,因此,能够提高机器人201工作的稳定性,提高机器人201任务执行的效率。
另外,上述功能如果以软件功能的形式实现并作为独立产品销售或使用时,可存储在一个移动终端可读取存储介质中,即,本申请还提供一种存储有程序数据的存储装置,所述程序数据能够被执行以实现上述实施例的方法,该存储装置可以为如U盘、光盘、服务器等。也就是说,本申请可以以软件产品的形式体现出来,其包括若干指令用以使得一台智能终端执行各个实施例所述方法的全部或部分步骤。
在本申请的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(可以是个人计算机,服务器,网络设备或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,服务器,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。