一种信息分发方法、机器人及存储介质
技术领域
本发明实施例涉及数据处理领域,特别涉及一种信息分发方法、机器人及存储介质。
背景技术
目前,机器人中需要用到了多个执行器,执行器的读写控制是供应商提供的软件开发工具包(Software Development Kit,SDK)。机器人内部的连接方式:整个机器人的通信控制器(Communication Control Unit,CCU)与多个电子控制单元(Electronic ControlUnit,ECU)连接,每个ECU上连接数量不等的执行器。每个ECU上的执行器通过控制器局域网络(Controller Area Network,CAN)总线方式连接。
然而,发明人发现现有技术中至少存在如下问题:CCU与执行器之间的数据传输方式的延时较高。
发明内容
本发明实施方式的目的在于提供一种信息分发方法、机器人及存储介质,使得机器人的执行器能够进行并行操作,减少了信息传输的延时。
为解决上述技术问题,本发明的实施方式提供了一种信息分发方法,应用于机器人的第一控制单元,第一控制单元与机器人的N个第二控制单元通信连接,第一控制单元中创建有N个线程,N个线程和N个第二控制单元一一对应,其中,N为正整数,并且,每个第二控制单元连接至少一个执行器;信息分发方法包括:从云服务器接收信息;确定与接收到的信息相关联的执行器;根据执行器与第二控制单元的对应关系,确定与信息相关联的第二控制单元;调用与相关联的第二控制单元对应的线程,将信息并行对应地分发给相关联的第二控制单元,以使得与信息相关联的执行器并行操作。
本发明的实施方式还提供了一种机器人,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施方式提及的信息分发方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述实施方式提及的信息分发方法。
本发明实施方式相对于现有技术而言,由于第一控制单元中设置有多个线程,该线程和机器人中的第二控制单元一一对应,每个线程负责处理对应的第二控制单元上的相关操作,使得第一控制单元可以同时与多个第二控制单元并行分发信息,从而减小信息传输的时延。
另外,确定与接收到的信息相关联的执行器,包括:根据信息,生成第一操作指令集合;根据第一操作指令集合,确定与接收到的信息相关联的执行器。
另外,第一控制单元中存储有与M个动作分别对应的第二操作指令集合;其中,M为正整数;根据信息,生成第一操作指令集合,包括:判断信息对应的动作是否与存储的第二操作指令集合对应的动作相同;若确定相同,则将与信息对应的动作的第二操作指令集合作为第一操作指令集合;若确定不相同,则按照预设的解析算法,对信息进行解析并得到第一操作指令集合。
另外,信息分发方法还包括:判断接收到信息的次数是否大于预设次数;若确定是,则保存第一操作指令集合。
另外,在调用相关联的第二控制单元对应的线程,将信息并行对应地分发给相关联的第二控制单元之后,信息分发方法还包括:监控相关联的执行器的状态;根据相关联的执行器的状态,在确定第一操作指令集合中的各操作指令执行完成后,发送提示信息至云服务器,提示信息指示操作指令已完成。
另外,第一控制单元通过以太网与N个第二控制单元连接。
另外,每个第二控制单元通过以太网与各自的执行器连接。
另外,在确定与信息相关联的第二控制单元之前,信息分发方法还包括:同步第一控制单元的N个线程。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明的第一实施方式的信息分发方法的流程图;
图2是根据本发明的第一实施方式的第一控制单元、第二控制单元和执行器的交互示意图;
图3是根据本发明的第二实施方式的信息分发方法的流程图;
图4是根据本发明的第二实施方式的机器人和服务器的交互示意图;
图5是根据本发明的第三实施方式的机器人的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明公开的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明公开的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本发明的第一实施方式涉及一种信息分发方法,应用于机器人的第一控制单元。如图1所示,信息分发方法包括:
步骤101:从云服务器接收信息。
具体地说,云服务器与机器人建立通信连接,可以通过下发各种信息至机器人,以使机器人根据接收到的信息执行相关的操作。其中,信息可以是各种数据或操作指令。
步骤102:确定与接收到的信息相关联的执行器。
具体地说,第一控制单元与机器人的N个第二控制单元通信连接,第一控制单元中创建有N个线程,该N个线程和N个第二控制单元一一对应,N为正整数,并且,每个第二控制单元连接至少一个执行器。
在一个实施例中,第一控制单元通过以太网与N个第二控制单元连接,其中,N为正整数。
需要说明的是,本领域技术人员可以理解,实际应用中,第一控制单元也可以通过其他通信方式,实现与第二控制单元的并行通信,本实施方式仅以以太网进行举例。
在一个实施例中,第二控制单元通过以太网与各自的多个执行器连接。第二控制单元在接收到下发的操作指令后,将各操作指令发送给对应的执行器。
需要说明的是,实际应用中,第二控制单元和执行器之间也可以通过串行通信的方式连接,本实施方式不限制两者之间的通信方式。
值得一提的是,第二控制单元和执行器之间通过以太网连接,使得两者之间可以并行通信,进一步提高了通信速度,降低了延时。
在一个实施例中,机器人的第一控制单元根据接收到的信息,生成第一操作指令集合;根据第一操作指令集合,确定与接收到的信息相关联的执行器。例如,若第一操作指令集合中包括需要执行器A完成的操作指令,则执行器A为相关联的执行器。
以下对机器人的第一控制单元确定第一操作指令集合的方式进行举例说明。
在一个实施例中,信息指示机器人需要完成的动作,例如,信息包括动作名称。机器人根据信息指示的动作,以及预存的动作和操作指令集合的对应关系,查找与该动作对应的操作指令集合,作为第一操作指令集合。
在一个实施例中,信息包括第一操作指令集合,机器人接收信息即可获得第一操作指令集合。
在一个实施例中,信息包括第一操作指令集合经过加密或其他预处理操作后得到的数据。机器人可以按照预设的解析算法,对信息进行解析并得到第一操作指令集合。
需要说明的是,本领域技术人员可以理解,预设的解析算法的类型可以根据需要选择,本实施方式不做限制。
在一个实施例中,信息包括第一操作指令集合经过加密或其他预处理操作后得到的数据,并且,第一控制单元中存储有与M个动作分别对应的第二操作指令集合,M为正整数。机器人在确定第一操作指令集合的过程中,判断信息对应的动作是否与存储的第二操作指令集合对应的动作相同;若确定相同,则将与信息对应的动作的相同的动作对应的第二操作指令集合作为第一操作指令集合;若确定不相同,则按照预设的解析算法,对信息进行解析并得到第一操作指令集合。
需要说明的是,本领域技术人员可以理解,第一控制单元中预存的M个动作可以由开发人员根据经验设置,也可以是机器人的第一控制单元基于自身的使用日志,筛选出的最常用的M个动作,或者,云服务器基于与其通信连接的所有机器人的使用日志,筛选出的最常用的M个动作,本实施方式不限制预存的具体动作。
需要说明的是,本领域技术人员可以理解,实际应用中,机器人的第一控制单元判断信息对应的动作是否与存储的第二操作指令集合对应的动作相同的方式可以根据信息的数据格式确定。
例如,可以将信息的名称设置为该信息对应的动作的名称,也可以将第二操作指令集合的名称设置为对应的动作的名称,机器人的第一控制单元通过将信息的名称和各第二操作指令集合的名称进行对比,判断信息对应的动作是否与存储的第二操作指令集合对应的动作相同。
又如,机器人中存储有与M个第二操作指令集合分别对应的动作的列表,机器人的第一控制单元将信息对应的动作与该列表进行比较,判断信息对应的动作是否与存储的第二操作指令集合对应的动作相同。
本实施方式不限制机器人的第一控制单元判断信息对应的动作是否与存储的第二操作指令集合对应的动作相同的判断方式。
需要说明的是,本领域技术人员可以理解,实际应用中,可以基于信息所包含的具体数据或指令,设置机器人的第一控制单元确定第一操作指令集合的方法,本实施方式仅为举例说明。
可选择的,机器人的第一控制单元在得到第一操作指令集合后,判断接收到信息的次数是否大于预设次数;若确定是,则保存第一操作指令集合。
值得一提的是,机器人的第一控制单元有选择地预存一些动作对应的操作指令集合,可以在需要机器人执行相应动作时,尽快下发各操作指令,提高机器人响应速度,也可以避免存储所有动作对应的操作指令集合造成的占用内存过大的问题。
步骤103:根据执行器与第二控制单元的对应关系,确定与信息相关联的第二控制单元。
例如,第一控制单元为机器人的CCU,第二控制单元为机器人的ECU,假设机器人本体设置有5个ECU,分别为ECU1、ECU2、ECU3、ECU4和ECU5,每个ECU分别连接有数量不等的执行器,第一控制单元、第二控制单元和执行器的交互示意图如图2所示,若与信息相关联的执行器包括执行器3、执行器5和执行器8,则相关联的第二控制单元为ECU1和ECU2。
步骤104:调用与相关联的第二控制单元对应的线程,将信息并行对应地分发给相关联的第二控制单元,以使得与信息相关联的执行器并行操作。
具体地说,由于第一控制单元内设置有与各个第二控制单元对应的线程,第一控制单元可以调用与相关联的第二控制单元对应的线程,将信息并行分发给各相关联的第二控制单元,以减少信息延时。
在一个实施例中,由于第一控制单元中设置有多个线程,第一控制单元在确定与信息相关联的第二控制单元之前,还可以同步第一控制单元的N个线程,以使各线程同步。
需要说明的是,以上仅为举例说明,并不对本发明的技术方案构成限定。
与现有技术相比,本实施方式中提供的信息分发方法,由于第一控制单元中设置有多个线程,该线程和机器人中的第二控制单元一一对应,每个线程负责处理对应的第二控制单元上的相关操作,使得第一控制单元可以同时与多个第二控制单元并行分发信息,从而减小信息传输的时延。
本发明的第二实施方式涉及一种信息分发方法。本实施方式是对第一实施方式的进一步改进,具体改进之处为:在调用相关联的第二控制单元对应的线程,将信息并行对应地分发给相关联的第二控制单元之后,还对各执行器的状态进行监控。
具体的说,如图3所示,在本实施方式中,包含步骤201至步骤206,其中,步骤201至步骤204分别与第一实施方式中的步骤101至步骤104大致相同,此处不再赘述。下面主要介绍不同之处:
执行步骤201至步骤204。
步骤205:监控与接收到的信息相关联的执行器的状态。
具体地说,机器人可以通过监控执行器的电流等参量,或者,执行器的反馈信息,对执行器的状态进行监控。
步骤206:根据相关联的执行器的状态,在确定第一操作指令集合中的各操作指令执行完成后,发送提示信息至云服务器。
具体地说,若各个相关联的执行器的状态均指示操作已完成,则确定第一操作指令集合中的各操作指令均执行完成,机器人发送提示信息至云服务器,提示信息指示操作指令已完成。
在一个实施例中,若某一相关联的执行器的状态指示该执行器在预设时间内未完成操作指令,机器人可以发送警报信息至云服务器,告知云服务器某一操作指令执行失败。
在一个实施例中,机器人在监控相关联的执行器的同时,还可以监控除相关联的执行器以外的执行器的状态,以确保及时发现其他执行器错误动作造成的故障。
需要说明的是,本领域技术人员可以理解,实际应用中,机器人在下发信息后,还可以执行其他相关操作,本实施方式不限制。
以下以云服务器指示机器人跳一段舞蹈为例,说明本实施方式提及的信息分发方法。假设,机器人和云服务器的交互示意图如图4所示,第一控制单元包括RCU和CCU。第二控制单元包括ECU。云服务器下发指定舞蹈动作的信息给到机器人上的RCU,RCU解析云服务器的信息后,下发命令给CCU。CCU根据接收到的信息解析出操作指令,分发给与接收到的信息相关联的ECU。例如,舞蹈分解成了100个动作,在做第5个动作时需要3号执行器、8号执行器和23号执行器同时执行。而3号执行器属于ECU 1,8号属于ECU 2、23号属于ECU 4,则CCU同时下发第5个动作指令给ECU 1、ECU 2和ECU 4,这样就实行了ECU的并行同步处理。每个ECU再转发操作指令到连接到自己的执行器上。执行器根据操作指令动作,开始舞蹈。CCU循环监控执行器上的当前状态,收到舞蹈完成后,CCU发送提示信息给RCU,RCU转发提示信息给云服务器。云服务器确定舞蹈动作完成后,完成后续其他相关的业务处理。
需要说明的是,以上仅为举例说明,并不对本发明的技术方案构成限定。
与现有技术相比,本实施方式中提供的信息分发方法,由于第一控制单元中设置有多个线程,该多个线程和机器人中的第二控制单元一一对应,每个线程负责处理一个第二控制单元上的相关操作,使得第一控制单元可以与多个第二控制单元并行分发信息,从而减小信息传输的时延。除此之外,机器人还监控相关联的执行器的状态进行监控,便于机器人了解各操作指令的完成状态。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明的第三实施方式涉及一种机器人,如图5所示,包括:至少一个处理器501;以及,与至少一个处理器501通信连接的存储器502;其中,存储器502存储有可被至少一个处理器501执行的指令,指令被至少一个处理器501执行,以使至少一个处理器501能够执行上述实施方式提及的信息分发方法。在一个实施例中,该处理器501可以包括如前文所述的第一控制单元,并执行上述实施方式提及的信息分发方法。
该机器人包括:一个或多个处理器501以及存储器502,图5中以一个处理器501为例。处理器501、存储器502可以通过总线或者其他方式连接,图5中以通过总线连接为例。存储器502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器501通过运行存储在存储器502中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述信息分发方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施方式中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器502中,当被一个或者多个处理器501执行时,执行上述任意方法实施方式中的信息分发方法。
上述机器人可执行本申请实施方式所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施方式中详尽描述的技术细节,可参见本申请实施方式所提供的方法。
本发明的第四实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。