一种机器人的业务并行处理方法、装置、设备及介质与流程

未命名 07-22 阅读:88 评论:0


1.本技术属于人工智能技术领域,具体涉及一种机器人的业务并行处理方法、装置、设备及介质。


背景技术:

2.随着人工智能的不断发展,越来越多的领域开始利用机器人执行业务,机器人的功能以及使用性能也在不断完善。为了使机器人能够适应更加复杂的任务场景并且能够处理更加复杂的业务,为机器人设置更优的业务处理程序成为了人们研究的热点。
3.当前为了使机器人能够处理更多的任务,提高机器人业务处理时的程序响应速度,通常在机器人中设置单进程多线程的业务处理节点。具体的,所述单进程多线程的业务处理节点通常是在一个程序中同时运行多个不同的线程,通过多个不同的线程同时执行不同的任务,进而达到提高机器人业务处理速度的目的。
4.由于单进程多线程业务处理节点共用同一套程序,即多个线程的代码区是共享的,线程的代码间耦合度较高,代码间的相互依赖较为严重。同时,为了使机器人的功能更加完善,需要在原有代码的基础上不断增加线程的数量,不仅限制了机器人的性能,还增大了研发人员对机器人团队开发的难度。因此,利用现有技术为机器人设置业务处理程序存在机器人性能较差、机器人运行代码间耦合度较高以及研发人员对机器人业务节点进行团队开发难度较大的问题。


技术实现要素:

5.本技术实施例的目的是提供一种机器人的业务并行处理方法、装置、设备及介质,能够解决机器人性能较差、机器人运行代码间耦合度较高以及研发人员对机器人业务节点进行团队开发难度较大的问题,通过主节点与至少一个业务节点进行注册并接收业务指令,确定目标任务,利用主节点对目标任务进行拆分得到子任务,并根据各业务节点的注册结果将各子任务下发至对应的业务节点,进而通过业务节点控制机器人完成各子任务,可以增强机器人的业务处理性能、降低业务节点间的代码耦合度以及提高业务节点的开发效率。
6.第一方面,本技术实施例提供了一种机器人的业务并行处理方法,所述方法由机器人控制系统执行,所述方法包括:
7.发出启动指令,以启动主节点和至少一个业务节点;其中,每个业务节点分别与所述主节点连接;
8.通过主节点接收业务节点的连接请求,根据所述连接请求和业务节点的节点id,对业务节点进行注册;
9.接收业务指令,通过所述主节点确定目标任务;
10.通过所述主节点对所述目标任务进行拆分,得到至少一个子任务,以及各子任务之间的执行时序信息;其中,所述主节点预先配置有拆分任务的协议规则;
11.根据各业务节点的注册结果,通过所述主节点确定所述子任务对应的业务节点,并分别将各子任务下发至对应的业务节点;
12.通过所述业务节点基于所述执行时序信息控制机器人完成各子任务。
13.进一步的,在响应于启动指令,执行启动操作之前,所述方法还包括:
14.采用shell脚本进行主节点的搭建,以及根据机器人的工作参数搭建至少一个业务节点。
15.进一步的,根据机器人的工作参数搭建至少一个业务节点,包括:
16.获取机器人的执行任务的硬件单元;其中,所述硬件单元包括机械臂、底座以及电机中的一种或者多种;
17.根据所述硬件单元的数量,确定业务节点的数量,以搭建至少一个业务节点。
18.进一步的,通过所述主节点对所述目标任务进行拆分,得到至少一个子任务,包括:
19.根据预先配置的协议规则,确定目标任务执行过程中所需要的硬件单元;
20.在目标任务执行过程中发生硬件单元切换的节点位置,对目标任务进行拆分,得到至少一个子任务。
21.进一步的,根据各业务节点的注册结果,通过所述主节点确定所述子任务对应的业务节点,并分别将各子任务下发至对应的业务节点,包括:
22.根据各业务节点的注册结果,确定各业务节点关联的硬件单元,以基于所关联得到硬件单元建立各业务节点与主节点之间的发布订阅机制;
23.获取主节点拆分得到子任务的执行过程中所需要的硬件单元,并基于执行过程中所需要的硬件单元发布子任务;
24.根据所述发布订阅机制,完成对各子任务至对应的业务节点的下发操作。
25.进一步的,在接收业务指令,通过所述主节点确定目标任务之前,所述方法还包括:
26.获取机器人的执行任务的硬件单元;
27.根据所述硬件单元,确定业务内容的开发分支;
28.根据所述业务内容的开发分支采用单分支开发模式,进行业务内容的开发。
29.进一步的,在根据所述业务内容的开发分支采用单分支开发模式,进行业务内容的开发之后,所述方法还包括:
30.接收业务内容新增需求;
31.基于所述新增需求确定需要修改的目标业务分支;
32.生成目标业务分支的业务内容新增指令,以进行目标业务分支的业务内容调整;
33.通过所述主节点发布调整后的业务内容。
34.第二方面,本技术实施例提供了一种机器人的业务并行处理装置,所述装置包括:
35.启动指令下发模块,用于发出启动指令,以启动主节点和至少一个业务节点;其中,每个业务节点分别与所述主节点连接;
36.业务节点注册模块,用于通过主节点接收业务节点的连接请求,根据所述连接请求和业务节点的节点id,对业务节点进行注册;
37.目标任务确定模块,用于接收业务指令,通过所述主节点确定目标任务;
38.目标任务拆分模块,用于通过所述主节点对所述目标任务进行拆分,得到至少一个子任务,以及各子任务之间的执行时序信息;其中,所述主节点预先配置有拆分任务的协议规则;
39.子任务下发模块,用于根据各业务节点的注册结果,通过所述主节点确定所述子任务对应的业务节点,并分别将各子任务下发至对应的业务节点;
40.子任务完成模块,用于通过所述业务节点基于所述执行时序信息控制机器人完成各子任务。
41.第三方面,本技术实施例提供了一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
42.第四方面,本技术实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
43.第五方面,本技术实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
44.在本技术实施例中,发出启动指令,以启动主节点和至少一个业务节点;其中,每个业务节点分别与所述主节点连接;通过主节点接收业务节点的连接请求,根据所述连接请求和业务节点的节点id,对业务节点进行注册;接收业务指令,通过所述主节点确定目标任务;通过所述主节点对所述目标任务进行拆分,得到至少一个子任务,以及各子任务之间的执行时序信息;其中,所述主节点预先配置有拆分任务的协议规则;根据各业务节点的注册结果,通过所述主节点确定所述子任务对应的业务节点,并分别将各子任务下发至对应的业务节点;通过所述业务节点基于所述执行时序信息控制机器人完成各子任务。通过上述机器人的业务并行处理方法,能够解决机器人性能较差、机器人运行代码间耦合度较高以及研发人员对机器人业务节点进行团队开发难度较大的问题,通过主节点与至少一个业务节点进行注册并接收业务指令,确定目标任务,利用主节点对目标任务进行拆分得到子任务,并根据各业务节点的注册结果将各子任务下发至对应的业务节点,进而通过业务节点控制机器人完成各子任务,可以增强机器人的业务处理性能、降低业务节点间的代码耦合度以及提高业务节点的开发效率。
附图说明
45.图1是本技术提供的机器人的业务并行处理的内部结构示意图。
46.图2是本技术实施例一提供的一种机器人的业务并行处理方法的流程示意图;
47.图3是本技术实施例二提供的一种机器人的业务并行处理方法的流程示意图;
48.图4是本技术实施例三提供的一种机器人的业务并行处理装置的结构示意图;
49.图5是本技术实施例四提供的电子设备的结构示意图。
具体实施方式
50.为了使本技术的目的、技术方案和优点更加清楚,下面结合附图对本技术具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本技术,
而非对本技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本技术相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
51.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本技术保护的范围。
52.本技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
53.下面结合附图,通过具体的实施例及其应用场景对本技术实施例提供的一种机器人的业务并行处理方法、装置、设备及介质进行详细地说明。
54.实施例一
55.图1是本技术提供的机器人的业务并行处理的内部结构示意图。
56.图2是本技术实施例一提供的一种机器人的业务并行处理方法的流程示意图。所述方法由机器人控制系统执行。如图2所示,具体包括如下步骤:
57.s101,发出启动指令,以启动主节点和至少一个业务节点;其中,每个业务节点分别与所述主节点连接;
58.首先,本方案的使用场景可以是需要对机器人业务处理功能进行改进的场景,具体的,可以是对机器人单进程业务处理节点进行改进的场景。通过增加机器人业务处理节点的数量,可以减小机器人业务处理代码间的耦合度以及提高机器人的业务处理能力。
59.基于上述使用场景,可以理解的,本技术的执行主体可以是具有信息接收、信息处理以及编码能力的机器人控制系统,如:上位机等,此处不做过多限定。
60.在一实施例中,启动指令可以是使机器人启动或者运行的指令,例如:开机指令等。主节点可以是机器人内部系统中用于接收以及转发外部输入指令或者信息的master节点,业务节点可以是用于控制机器人执行终端使执行终端能够执行任务的节点,还可以是用于将接收到的指令、数据以及信息等进行处理以及转发的节点。所述主节点先于所述业务节点启动,可以同时连接多个不同的业务节点,用于将待处理的任务根据任务类型以及任务内容转发至不同的业务节点;所述业务节点在接收到所述主节点转发的任务之后,控制相应的执行终端执行任务或者直接进行任务处理,在任务处理结束之后,还可以将执行终端或者处理的数据结果转发回所述主节点。机器人控制系统在接收到外部输入的任务指令之后,通过程序代码对所述机器人发出启动指令,以启动所述机器人的主节点和至少一个业务节点,每一个业务节点分别通过不同的进程与所述主节点连接。
61.不同的业务节点具有不同的业务处理功能,通过开发创建多个不同功能的业务节
点并与主节点连接,可以提高机器人业务处理的能力。例如:一个业务节点可以处理10件业务,通过创建n个业务节点,将所述n个业务节点同时启动并连接至所述主节点,可以使得所述机器人具有n种业务处理功能,且可以处理10n件业务。
62.在一实施例中,可选的,在响应于启动指令,执行启动操作之前,所述方法还包括:
63.采用shell脚本进行主节点的搭建,以及根据机器人的工作参数搭建至少一个业务节点。
64.在一实施例中,脚本可以是一种以纯文本保存的程序,是一条条的文字命令,这些文字命令可以被查看以及编辑等,脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。shell是一个命令解释器,通过shell命令可以操作和控制操作系统,通过接受用户输入的shell命令来启动、暂停以及停止程序的运行或对计算机进行控制。shell脚本就是由shell命令组成的执行文件,将一些命令整合到一个文件中,进行处理业务逻辑,通过解释器解释运行,shell脚本中最重要的就是对shell命令的使用与组合,再使用shell脚本支持的一些语言特性,完成想要的功能。
65.机器人的工作参数可以包括机器人的自身配置参数以及能够执行的任务类型的参数等,例如:机器人的终端执行工具配置参数以及对执行工具控制的参数等。所述shell脚本可以支持节点程序更多的操作命令以及更多的执行功能等,因此,在响应于启动指令,执行启动操作之前,可以采用shell脚本进行主节点的搭建,以及根据机器人的工作参数搭建至少一个业务节点。具体的,采用shell脚本进行主节点的搭建方式可以是利用c++等代码语言编写并开发所述主节点,并使用shell脚本作为开机启动主节点的程序脚本,常驻在机器人控制系统后台。根据机器人的工作参数确定机器人的执行任务类型,进而确定执行所述任务类型需要的业务节点,不同的业务节点执行任务的内容不同,且不同的业务节点基于发布、订阅模式与所述主节点分别连接。因此,所述业务节点数量为至少一个且所述业务节点可以通过shall脚本搭建并与所述主节点连接。
66.在一实施例中,在响应于启动指令,执行启动操作之前,通过采用shell脚本进行主节点的搭建,以及根据机器人的工作参数搭建至少一个业务节点,可以便于主节点与业务节点的绑定,提高业务节点与主节点连接的效率。
67.在一实施例中,可选的,根据机器人的工作参数搭建至少一个业务节点,包括:
68.获取机器人的执行任务的硬件单元;其中,所述硬件单元包括机械臂、底座以及电机中的一种或者多种;
69.根据所述硬件单元的数量,确定业务节点的数量,以搭建至少一个业务节点。
70.在一实施例中,硬件单元可以是机器人在执行任务指令时需要用到的硬件执行工具,包括机械臂、底座以及电机中的一种或者多种。所述硬件单元可以根据所述机器人的执行任务类型确定,例如:清扫机器人需要进行清扫、垃圾收取以及行走等任务,则所述清扫机器人的硬件单元包括用于清扫以及垃圾收取的机械臂、用于控制行走的底座以及电机等多种硬件单元。所述业务节点用于控制所述硬件单元并回传所述硬件单元反馈的数据,因此,所述业务节点的数量为至少一个,且业务节点数量越多,则说明所述机器人能够执行的任务类型越多,即所述机器人的业务处理能力越强。根据所述硬件单元的数量,可以确定所述机器人能够执行的任务类型的数量,进而根据所述任务类型的数量确定业务节点的数量,根据所述业务节点的数量搭建至少一个业务节点。
71.在一实施例中,通过获取机器人的执行任务的硬件单元,并根据所述硬件单元的数量,确定业务节点的数量,以搭建至少一个业务节点,可以提高对业务节点搭建的简便性和准确性,进而提高业务节点的业务处理效率。
72.s102,通过主节点接收业务节点的连接请求,根据所述连接请求和业务节点的节点id,对业务节点进行注册;
73.在一实施例中,业务节点的节点id可以是能够将该节点与其他节点区分开的编号等,所述节点id可以包括该业务节点的身份标识、业务处理类型以及控制的终端执行工具类型等,且所述节点id可以由数字、符号以及字母中的以哦中或者多种组成。在所述机器人控制系统发出启动指令,并启动主节点和至少一个业务节点之后,所述业务节点主动发出与所述主节点连接的连接请求,所述机器人控制系统通过所述主节点接收所述业务节点的连接请求,并根据所述连接请求以及所述业务节点的节点id通过shall脚本对所述业务节点进行注册。所述业务节点注册的目的可以是为了使所述业务节点与所述主节点进行对应,使得所述主节点能够将接收到的任务根据任务类型分配至对应的业务节点。所述业务节点的注册信息可以包括所述业务节点的名称、所述业务节点与所述主节点的连接方式以及连接进程代码等,此处不做过多限定。所述主节点内部使用映射机制保存所述注册信息。
74.s103,接收业务指令,通过所述主节点确定目标任务;
75.在一实施例中,业务指令可以是外部对所述机器人控制系统输入的指令。具体的,所述业务指令可以包括所述机器人的业务节点能够处理的业务内容以及业务类型等,还可以包括所述机器人的业务节点无法处理的业务内容等。所述目标任务可以是所述业务指令中能够被所述业务节点执行或者处理的业务,所述机器人控制系统可以通过所述机器人控制系统的后台或者显示器界面等接收外部输入的业务指令,并通过所述主节点中保存的业务节点的注册信息确定所述业务指令中所述业务节点能够处理的目标任务。
76.s104,通过所述主节点对所述目标任务进行拆分,得到至少一个子任务,以及各子任务之间的执行时序信息;其中,所述主节点预先配置有拆分任务的协议规则;
77.在一实施例中,子任务可以是所述目标任务的一部分或者全部,所述子任务可以通过对应的业务节点进行处理。各子任务之间的执行时序信息可以是各子任务的执行时长以及执行顺序等信息,例如:搬运机器人的执行时序信息可以包括先利用机械臂执行搬起物品的任务,再利用底盘执行运输的任务,到达目标位置后,再次利用机械臂执行放下物品的任务等子任务执行顺序信息以及执行各子任务所用的时长信息。拆分任务的协议规则可以是根据业务节点的业务处理类型以及业务节点控制的硬件单元将目标任务进行拆分并分配至对应的业务节点的协议规则,例如:json或者xml等。通过所述主节点中预先配置的拆分任务的协议规则以及业务节点的注册信息对所述目标任务进行拆分,得到至少一个子任务,并根据目标任务的内容以及各所述业务节点的类型确定各子任务之间的执行时序信息。
78.在一实施例中,可选的,通过所述主节点对所述目标任务进行拆分,得到至少一个子任务,包括:
79.根据预先配置的协议规则,确定目标任务执行过程中所需要的硬件单元;
80.在目标任务执行过程中发生硬件单元切换的节点位置,对目标任务进行拆分,得到至少一个子任务。
81.在一实施例中,可以根据所述主节点中预先配置的协议规则以及目标任务的任务内容确定目标任务执行过程中所需要用到的硬件单元,相同的硬件单元可以在目标任务执行过程中多次使用。不同的硬件单元由不同的业务节点控制,即不同的硬件单元对应着不同的业务节点,若在目标任务执行过程中发生硬件单元的切换,即相邻硬件单元不同,则说明发生了业务节点的切换,且硬件单元切换的位置即为业务节点切换的位置。因此,可以根据目标任务执行过程中发生硬件单元切换的节点位置对目标任务进行拆分,得到至少一个子任务。
82.在一实施例中,通过根据预先配置的协议规则,确定目标任务执行过程中所需要的硬件单元,在目标任务执行过程中发生硬件单元切换的节点位置,对目标任务进行拆分,得到至少一个子任务,可以提高对目标任务拆分的准确性,进而提高了机器人业务节点进行业务处理的效率。
83.s105,根据各业务节点的注册结果,通过所述主节点确定所述子任务对应的业务节点,并分别将各子任务下发至对应的业务节点;
84.在一实施例中,各业务节点的注册结果可以包括各业务节点是否与主节点成功注册的结果以及成功注册的所述业务节点的注册信息。所述注册信息可以包括业务节点的名称、处理的业务类型、与所述主节点的连接方式以及连接进程代码等。具体的,所述各业务节点的注册结果可以是所述主节点是否能够与所述业务节点连接以及将接收到的任务信息拆分并传输至对应的业务节点的结果,还可以是所述业务节点是否能够接收并处理所述主节点转发的子任务并将处理结果数据回传至所述主节点的结果。若所述业务节点与所述主节点成功注册,则所述主节点中可以存储所述业务节点的注册信息。所述机器人控制系统可以根据各业务节点的注册结果,确定所述子任务是否具有对应的业务节点,并通过所述主节点中存储的业务节点的注册信息确定所述子任务对应的业务节点,并分别将各子任务下发至对应的业务节点。所述主节点程序中可以利用map数据结构保存与所述主节点具有映射关系的业务节点的注册结果。所述映射关系可以是所述各业务节点的业务处理类型与所述主节点接收到的业务分别对应的关系。
85.在一实施例中,可选的,根据各业务节点的注册结果,通过所述主节点确定所述子任务对应的业务节点,并分别将各子任务下发至对应的业务节点,包括:
86.根据各业务节点的注册结果,确定各业务节点关联的硬件单元,以基于所关联得到硬件单元建立各业务节点与主节点之间的发布订阅机制;
87.获取主节点拆分得到子任务的执行过程中所需要的硬件单元,并基于执行过程中所需要的硬件单元发布子任务;
88.根据所述发布订阅机制,完成对各子任务至对应的业务节点的下发操作。
89.在一实施例中,发布订阅机制可以是所述业务节点与所述主节点的映射机制,具体的,可以是所述业务节点根据自身的业务处理类型向所述主节点发出订阅的请求,所述主节点根据所述业务节点的订阅请求将各子任务发布至对应节点的机制。根据所述主节点中保存的各业务节点的注册结果,可以确定各业务节点控制的硬件单元,所述硬件单元可以包括相同功能以及不同型号的硬件。基于确定的硬件单元可以确定所述各业务节点的任务处理类型,根据所述各业务节点的任务处理类型确定所述个业务节点与所述主节点之间的映射关系,进而基于所述映射关系可以建立各业务节点与主节点之间的发布订阅机制。
90.根据所述主节点拆分得到的子任务的任务类型,可以获取所述子任务的执行过程中所需要的硬件单元,进而可以确定控制所述硬件单元的业务节点,并将所述子任务发布至对应的业务节点。具体的,所述子任务的发布方式可以是根据所述发布订阅机制,通过所述主节点将各子任务下发至订阅该子任务的业务节点。
91.在一实施例中,根据各业务节点的注册结果,确定各业务节点关联的硬件单元,以基于所关联得到硬件单元建立各业务节点与主节点之间的发布订阅机制,获取主节点拆分得到子任务的执行过程中所需要的硬件单元,并基于执行过程中所需要的硬件单元发布子任务,根据所述发布订阅机制,完成对各子任务至对应的业务节点的下发操作,可以避免机器人业务处理过程中对程序资源的抢占,提高了机器人业务处理的效率和准确度。
92.s106,通过所述业务节点基于所述执行时序信息控制机器人完成各子任务。
93.在一实施例中,所述业务节点之间通过本地网络以及协议进行交互,且相同业务节点处理相同的任务类型,各业务节点间无程序代码的耦合。所述机器人控制系统可以通过所述业务节点基于所述执行时序信息控制机器人完成各子任务。具体的,可以是根据所述目标任务的内容以及拆分后的子任务确定所述执行时序信息,即所述业务节点完成各子任务的完成顺序,并根据所述执行时序信息控制所述业务节点按照顺序完成各子任务,进而完成整个目标任务。
94.本实施例所提供的技术方案,发出启动指令,以启动主节点和至少一个业务节点;其中,每个业务节点分别与所述主节点连接;通过主节点接收业务节点的连接请求,根据所述连接请求和业务节点的节点id,对业务节点进行注册;接收业务指令,通过所述主节点确定目标任务;通过所述主节点对所述目标任务进行拆分,得到至少一个子任务,以及各子任务之间的执行时序信息;其中,所述主节点预先配置有拆分任务的协议规则;根据各业务节点的注册结果,通过所述主节点确定所述子任务对应的业务节点,并分别将各子任务下发至对应的业务节点;通过所述业务节点基于所述执行时序信息控制机器人完成各子任务。通过上述机器人的业务并行处理方法,能够解决机器人性能较差、机器人运行代码间耦合度较高以及研发人员对机器人业务节点进行团队开发难度较大的问题,通过主节点与至少一个业务节点进行注册并接收业务指令,确定目标任务,利用主节点对目标任务进行拆分得到子任务,并根据各业务节点的注册结果将各子任务下发至对应的业务节点,进而通过业务节点控制机器人完成各子任务,可以增强机器人的业务处理性能、降低业务节点间的代码耦合度以及提高业务节点的开发效率。
95.实施例二
96.图3是本技术实施例二提供的一种机器人的业务并行处理方法的流程示意图。如图3所示,具体包括如下步骤:
97.s201,发出启动指令,以启动主节点和至少一个业务节点;其中,每个业务节点分别与所述主节点连接;
98.s202,通过主节点接收业务节点的连接请求,根据所述连接请求和业务节点的节点id,对业务节点进行注册;
99.s203,接收业务指令,通过所述主节点确定目标任务;
100.在一实施例中,可选的,在接收业务指令,通过所述主节点确定目标任务之前,所述方法还包括:
101.获取机器人的执行任务的硬件单元;
102.根据所述硬件单元,确定业务内容的开发分支;
103.根据所述业务内容的开发分支采用单分支开发模式,进行业务内容的开发。
104.在一实施例中,业务内容可以是机器人能够处理的业务,可以根据所述机器人的业务处理类型确定。例如:医疗机器人的业务内容可以是定位、手术以及成像等;物流机器人的业务内容可以是分拣、搬运以及运输等。业务内容的开发分支可以是业务内容的处理分支进程,所述处理分支进程为至少一个。所述机器人控制系统可以根据机器人的业务处理类型确定所述机器人执行任务时需要的硬件单元。根据所述硬件单元,可以确定所述机器人的业务内容的开发分支,具体的,可以是将同一类硬件单元作为同一个所述机器人的业务内容的开发分支。所述单分支开发模式可以是单进程单线程的开发模式,即一个分支只负责处理一项或者一类事物,不同的单分支分别与不同的业务节点对应,用于处理不同的子任务。可以利用git对各业务内容的开发分支的运行程序进行代码管理,使得每一个开发分支的运行程序都单独管理提交,避免了代码合并以及代码交互的问题,使得研发人员可以对各分支进行同时开发。机器人控制系统可以根据所述业务内容的开发分支对各个开发分支采用单分支开发模式,进行业务内容的开发。
105.在一实施例中,在接收业务指令,通过所述主节点确定目标任务之前,通过获取机器人的执行任务的硬件单元,确定机器人业务内容的开发分支,并采用单分支开发模式开发所述业务内容的开发分支,进而进行业务内容的开发,可以降低机器人内部运行代码的耦合度,降低机器人业务节点间的相互影响,提高机器人业务处理能力。
106.在一实施例中,可选的,在根据所述业务内容的开发分支采用单分支开发模式,进行业务内容的开发之后,所述方法还包括:
107.接收业务内容新增需求;
108.基于所述新增需求确定需要修改的目标业务分支;
109.生成目标业务分支的业务内容新增指令,以进行目标业务分支的业务内容调整;
110.通过所述主节点发布调整后的业务内容。
111.在一实施例中,在根据所述业务内容的开发分支采用单分支开发模式,进行业务内容的开发之后,可以接收业务内容新增需求。所述新增需求可以是外部输入的,用于增加或者完善所述机器人业务处理功能的需求,且所述新增需求可以是与当前某一业务内容的开发分支相关的需求,还可以是与当前所有业务内容的开发分支都无关的需求。目标业务分支可以是与所述新增需求相关的业务内容开发分支,且可以在该业务内容开发分支的程序基础上进行修改以满足所述新增需求的分值。基于所述新增需求内容可以确定需要修改的目标业务分支,并对所述目标分支生成业务内容新增指令,以进行目标业务分支的业务内容调整。具体的,进行目标业务分支的业务内容调整可以是将所述新增需求中的业务处理内容加入所述目标分支的原有的业务内容以得到所述目标业务分支新的业务内容的过程。通过所述主节点发布调整后的业务内容,具体的,可以是所述业务节点通过所述主节点订阅调整后的各分支的业务内容,所述机器人控制系统在接收到业务处理指令后通过所述主节点将调整后的业务内容发布至对应的业务节点。
112.在一实施例中,在根据所述业务内容的开发分支采用单分支开发模式,进行业务内容的开发之后,通过接收业务内容新增需求,并基于所述新增需求确定需要修改的目标
业务分支,生成目标业务分支的业务内容新增指令,以进行目标业务分支的业务内容调整,进而通过所述主节点发布调整后的业务内容,可以提高对机器人业务节点的开发效率以及研发人员对机器人团队开发的简便性。
113.s204,通过所述主节点对所述目标任务进行拆分,得到至少一个子任务,以及各子任务之间的执行时序信息;其中,所述主节点预先配置有拆分任务的协议规则;
114.s205,根据各业务节点的注册结果,通过所述主节点确定所述子任务对应的业务节点,并分别将各子任务下发至对应的业务节点;
115.s206,通过所述业务节点基于所述执行时序信息控制机器人完成各子任务。
116.本技术实施例所提供的技术方案,在接收业务指令,通过所述主节点确定目标任务之前,通过获取机器人的执行任务的硬件单元,确定机器人业务内容的开发分支,并采用单分支开发模式开发所述业务内容的开发分支,进而进行业务内容的开发;在根据所述业务内容的开发分支采用单分支开发模式,进行业务内容的开发之后,通过接收业务内容新增需求,并基于所述新增需求确定需要修改的目标业务分支,生成目标业务分支的业务内容新增指令,以进行目标业务分支的业务内容调整,进而通过所述主节点发布调整后的业务内容,可以降低机器人内部运行代码的耦合度,降低机器人业务节点间的相互影响,提高机器人业务处理能力以及提高对机器人业务节点的开发效率。
117.实施例三
118.图4是本技术实施例三提供的一种机器人的业务并行处理装置的结构示意图。如图4所示,具体包括如下:
119.启动指令下发模块301,用于发出启动指令,以启动主节点和至少一个业务节点;其中,每个业务节点分别与所述主节点连接;
120.业务节点注册模块302,用于通过主节点接收业务节点的连接请求,根据所述连接请求和业务节点的节点id,对业务节点进行注册;
121.目标任务确定模块303,用于接收业务指令,通过所述主节点确定目标任务;
122.目标任务拆分模块304,用于通过所述主节点对所述目标任务进行拆分,得到至少一个子任务,以及各子任务之间的执行时序信息;其中,所述主节点预先配置有拆分任务的协议规则;
123.子任务下发模块305,用于根据各业务节点的注册结果,通过所述主节点确定所述子任务对应的业务节点,并分别将各子任务下发至对应的业务节点;
124.子任务完成模块306,用于通过所述业务节点基于所述执行时序信息控制机器人完成各子任务。
125.进一步的,所述启动指令下发模块301,还用于:
126.采用shell脚本进行主节点的搭建,以及根据机器人的工作参数搭建至少一个业务节点。
127.进一步的,所述启动指令下发模块301,具体用于:
128.获取机器人的执行任务的硬件单元;其中,所述硬件单元包括机械臂、底座以及电机中的一种或者多种;
129.根据所述硬件单元的数量,确定业务节点的数量,以搭建至少一个业务节点。
130.进一步的,所述目标任务拆分模块304,具体用于:
131.根据预先配置的协议规则,确定目标任务执行过程中所需要的硬件单元;
132.在目标任务执行过程中发生硬件单元切换的节点位置,对目标任务进行拆分,得到至少一个子任务。
133.进一步的,所述子任务下发模块305,具体用于:
134.根据各业务节点的注册结果,确定各业务节点关联的硬件单元,以基于所关联得到硬件单元建立各业务节点与主节点之间的发布订阅机制;
135.获取主节点拆分得到子任务的执行过程中所需要的硬件单元,并基于执行过程中所需要的硬件单元发布子任务;
136.根据所述发布订阅机制,完成对各子任务至对应的业务节点的下发操作。
137.进一步的,所述目标任务确定模块303,还用于:
138.获取机器人的执行任务的硬件单元;
139.根据所述硬件单元,确定业务内容的开发分支;
140.根据所述业务内容的开发分支采用单分支开发模式,进行业务内容的开发。
141.进一步的,所述目标任务确定模块303,具体用于:
142.接收业务内容新增需求;
143.基于所述新增需求确定需要修改的目标业务分支;
144.生成目标业务分支的业务内容新增指令,以进行目标业务分支的业务内容调整;
145.通过所述主节点发布调整后的业务内容。
146.本实施例所提供的技术方案,启动指令下发模块,用于发出启动指令,以启动主节点和至少一个业务节点;其中,每个业务节点分别与所述主节点连接;业务节点注册模块,用于通过主节点接收业务节点的连接请求,根据所述连接请求和业务节点的节点id,对业务节点进行注册;目标任务确定模块,用于接收业务指令,通过所述主节点确定目标任务;目标任务拆分模块,用于通过所述主节点对所述目标任务进行拆分,得到至少一个子任务,以及各子任务之间的执行时序信息;其中,所述主节点预先配置有拆分任务的协议规则;子任务下发模块,用于根据各业务节点的注册结果,通过所述主节点确定所述子任务对应的业务节点,并分别将各子任务下发至对应的业务节点;子任务完成模块,用于通过所述业务节点基于所述执行时序信息控制机器人完成各子任务。通过上述机器人的业务并行处理装置,可以解决机器人性能较差、机器人运行代码间耦合度较高以及研发人员对机器人业务节点进行团队开发难度较大的问题,通过主节点与至少一个业务节点进行注册并接收业务指令,确定目标任务,利用主节点对目标任务进行拆分得到子任务,并根据各业务节点的注册结果将各子任务下发至对应的业务节点,进而通过业务节点控制机器人完成各子任务,可以增强机器人的业务处理性能、降低业务节点间的代码耦合度以及提高业务节点的开发效率。
147.本技术实施例中的一种机器人的业务并行处理装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本或者个人数字助理(personal digital assistant,pda)等,非移动电子设备可以为服务器、网络附属存储器(network attached storage,nas)、个人计算机(personal computer,pc)、电视机
(television,tv)、柜员机或者自助机等,本技术实施例不作具体限定。
148.本技术实施例中的一种机器人的业务并行处理装置可以为具有操作系统的装置。该操作系统可以为安卓(android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本技术实施例不作具体限定。
149.本技术实施例提供的一种机器人的业务并行处理装置能够实现图1至图2的方法实施例实现的各过程,为避免重复,这里不再赘述。
150.实施例四
151.如图5所示,本技术实施例还提供一种电子设备400,包括处理器401,存储器402,存储在存储器402上并可在所述处理器401上运行的程序或指令,该程序或指令被处理器401执行时实现上述一种机器人的业务并行处理方法实施例的各过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
152.需要说明的是,本技术实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
153.实施例五
154.本技术实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述一种机器人的业务并行处理方法实施例的各过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
155.其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等。
156.实施例六
157.本技术实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述一种机器人的业务并行处理方法实施例的各过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
158.应理解,本技术实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
159.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本技术实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
160.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储
介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本技术各实施例所述的方法。
161.上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。
162.上述仅为本技术的较佳实施例及所运用的技术原理。本技术不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本技术的保护范围。因此,虽然通过以上实施例对本技术进行了较为详细的说明,但是本技术不仅仅限于以上实施例,在不脱离本技术构思的情况下,还可以包括更多其他等效实施例,而本技术的范围由权利要求的范围决定。

技术特征:
1.一种机器人的业务并行处理方法,其特征在于,所述方法由机器人控制系统执行,所述方法包括:发出启动指令,以启动主节点和至少一个业务节点;其中,每个业务节点分别与所述主节点连接;通过主节点接收业务节点的连接请求,根据所述连接请求和业务节点的节点id,对业务节点进行注册;接收业务指令,通过所述主节点确定目标任务;通过所述主节点对所述目标任务进行拆分,得到至少一个子任务,以及各子任务之间的执行时序信息;其中,所述主节点预先配置有拆分任务的协议规则;根据各业务节点的注册结果,通过所述主节点确定所述子任务对应的业务节点,并分别将各子任务下发至对应的业务节点;通过所述业务节点基于所述执行时序信息控制机器人完成各子任务。2.根据权利要求1所述的方法,其特征在于,在响应于启动指令,执行启动操作之前,所述方法还包括:采用shell脚本进行主节点的搭建,以及根据机器人的工作参数搭建至少一个业务节点。3.根据权利要求2所述的方法,其特征在于,根据机器人的工作参数搭建至少一个业务节点,包括:获取机器人的执行任务的硬件单元;其中,所述硬件单元包括机械臂、底座以及电机中的一种或者多种;根据所述硬件单元的数量,确定业务节点的数量,以搭建至少一个业务节点。4.根据权利要求3所述的方法,其特征在于,通过所述主节点对所述目标任务进行拆分,得到至少一个子任务,包括:根据预先配置的协议规则,确定目标任务执行过程中所需要的硬件单元;在目标任务执行过程中发生硬件单元切换的节点位置,对目标任务进行拆分,得到至少一个子任务。5.根据权利要求1所述的方法,其特征在于,根据各业务节点的注册结果,通过所述主节点确定所述子任务对应的业务节点,并分别将各子任务下发至对应的业务节点,包括:根据各业务节点的注册结果,确定各业务节点关联的硬件单元,以基于所关联得到硬件单元建立各业务节点与主节点之间的发布订阅机制;获取主节点拆分得到子任务的执行过程中所需要的硬件单元,并基于执行过程中所需要的硬件单元发布子任务;根据所述发布订阅机制,完成对各子任务至对应的业务节点的下发操作。6.根据权利要求1所述的方法,其特征在于,在接收业务指令,通过所述主节点确定目标任务之前,所述方法还包括:获取机器人的执行任务的硬件单元;根据所述硬件单元,确定业务内容的开发分支;根据所述业务内容的开发分支采用单分支开发模式,进行业务内容的开发。7.根据权利要求6所述的方法,其特征在于,在根据所述业务内容的开发分支采用单分
支开发模式,进行业务内容的开发之后,所述方法还包括:接收业务内容新增需求;基于所述新增需求确定需要修改的目标业务分支;生成目标业务分支的业务内容新增指令,以进行目标业务分支的业务内容调整;通过所述主节点发布调整后的业务内容。8.一种机器人的业务并行处理装置,其特征在于,所述装置配置有机器人控制系统,所述装置包括:启动指令下发模块,用于发出启动指令,以启动主节点和至少一个业务节点;其中,每个业务节点分别与所述主节点连接;业务节点注册模块,用于通过主节点接收业务节点的连接请求,根据所述连接请求和业务节点的节点id,对业务节点进行注册;目标任务确定模块,用于接收业务指令,通过所述主节点确定目标任务;目标任务拆分模块,用于通过所述主节点对所述目标任务进行拆分,得到至少一个子任务,以及各子任务之间的执行时序信息;其中,所述主节点预先配置有拆分任务的协议规则;子任务下发模块,用于根据各业务节点的注册结果,通过所述主节点确定所述子任务对应的业务节点,并分别将各子任务下发至对应的业务节点;子任务完成模块,用于通过所述业务节点基于所述执行时序信息控制机器人完成各子任务。9.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-7中任一项所述的机器人的业务并行处理方法的步骤。10.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1-7中任一项所述的机器人的业务并行处理方法方法的步骤。

技术总结
本申请公开了一种机器人的业务并行处理方法、装置、设备及介质,本申请属于人工智能领域。该方法包括:发出启动指令,以启动主节点和至少一个业务节点;通过主节点接收业务节点的连接请求,根据所述连接请求和业务节点的节点ID,对业务节点进行注册;接收业务指令,通过所述主节点确定目标任务;通过所述主节点对所述目标任务进行拆分,得到至少一个子任务,以及各子任务之间的执行时序信息;根据各业务节点的注册结果,通过所述主节点确定所述子任务对应的业务节点,并下发至对应的业务节点;通过所述业务节点基于所述执行时序信息控制机器人完成各子任务。本技术方案,可以提高机器人的业务处理能力以及研发人员对业务节点的开发效率。发效率。发效率。


技术研发人员:赖志林 苏青源 杨晓东 李良源
受保护的技术使用者:广州赛特智能科技有限公司
技术研发日:2023.03.15
技术公布日:2023/7/20
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐