机器人调度装置、系统和方法与流程

专利2024-03-18  93



1.本技术涉及机器人智能控制领域,特别是涉及一种机器人调度装置、系统和方法。


背景技术:

2.机器人是自动执行工作的机器装置。它既可以接受人类指挥,又可以运行预先编排的程序。它的任务是协助或取代人类工作的工作,例如生产业、建筑业,或是危险的工作。在多机器人协同工作的过程中,需要有强大的机器人调度软件,能够和用户的产生系统进行对接,根据业务需求,将用户的生产任务合理地分配给相关的机器人执行。当中涉及到非常多的功能模块及复杂的数据关系。
3.传统的机器人调度系统中,一个封装软件包含了所有的功能模块,虽然有很好的封装特性,但是存在调度系统复杂、不易开发维护、不支持分布式部署,以及对服务器硬件性能要求高等缺点。因此本领域技术人员,希望设计一种更加合理、易维护、易部署的机器人调度装置。
4.针对相关技术中存在的调度系统复杂、不易开发维护、不支持分布式部署,以及对服务器硬件性能要求高的问题,目前还没有提出有效的解决方案。


技术实现要素:

5.在本实施例中提供了一种机器人调度装置、系统和方法,以解决相关技术中存在的调度系统复杂、不易开发维护、不支持分布式部署,以及对服务器硬件性能要求高的问题。
6.第一个方面,在本实施例中提供了一种机器人调度装置,所述调度装置包括:第一调度模块组、第二调度模块组和第三调度模块组;
7.其中,所述第一调度模块组、第二调度模块组和第三调度模块组分别独立封装;
8.所述第一调度模块组用于解析订单信息以获取任务信息,并将所述任务信息发送至所述第二调度模块组;其中,所述订单信息由外部用户系统生成;
9.所述第二调度模块组用于根据所述任务信息确定执行任务的机器人,并生成执行信息发送至第三调度模块组;
10.所述第三调度模块组用于根据所述执行信息,控制相应的机器人执行所述任务。
11.在其中的一些实施例中,所述执行信息包括:执行所述任务的机器人的编号和所述任务的位置信息。
12.在其中的一些实施例中,所述调度装置还包括:数据库;
13.所述数据库用于实现所述第一调度模块组、第二调度模块组和第三调度模块组之间的数据交互;
14.所述数据库中设置有第一数据层、第二数据层和第三数据层,所述第一数据层与所述第一调度模块组对应,所述第二数据层与所述第二调度模块组对应,所述第三数据层与所述第三调度模块组对应;
15.所述第一数据层被配置为允许第一调度模块组访问;
16.所述第二数据层被配置为允许第一调度模块组和第二调度模块组访问;
17.所述第三数据层被配置为允许第一调度模块组、第二调度模块组和第三调度模块组访问。
18.在其中的一些实施例中,所述第一调度模块组设置有第一接口,所述第二调度模块组设置有第二接口,第三调度模块组设置有第三接口;
19.所述第一接口和所述第二接口以及所述第三接口均用于连接外部用户系统。
20.在其中的一些实施例中,所述第一调度模块组包括:订单解析模块和订单分配模块;
21.所述订单解析模块用于解析所述订单信息以获取所述任务信息,所述订单分配模块用于将所述任务信息发送至所述第二调度模块组;
22.所述第二调度模块组包括:任务指派模块;
23.所述任务指派模块用于接收所述任务信息,并基于所述任务信息采用预设的算法确定执行所述任务的机器人,并将所述执行信息发送至第三调度模块;
24.所述第三调度模块组包括:任务执行模块和交通管理模块;
25.所述任务执行模块用于根据所述执行信息向执行所述任务的机器人发送预设的操作指令,所述交通管理模块用于根据所述执行信息确定任务路径,并将所述任务路径发送至执行所述任务的机器人。
26.在其中的一些实施例中,所述第一调度模块组还包括:库存管理模块;
27.所述库存管理模块用于获取任务工具的实时位置信息;其中,所述任务工具为所述机器人在执行任务中所使用的工具。
28.在其中的一些实施例中,所述第二调度模块组还包括:休息管理模块和充电管理模块;
29.所述休息管理模块用于确定需要待机的机器人,并生成待机信息发送至第三调度模块组,所述充电管理模块用于确定需要充电的机器人,并生成充电信息发送至第三调度模块组;
30.所述第三调度模块组还用于根据所述待机信息控制相应的机器人前往待机区域,以及还用于根据所述充电信息控制相应的机器人前往充电区域。
31.在其中的一些实施例中,所述第三调度模块组还包括:状态管理模块和接口管理模块;
32.所述状态管理模块用于同步所述机器人状态数据至所述数据库,所述接口管理模块用于实现所述机器人与外部设备的交互控制。
33.第二个方面,在本实施例中提供了一种机器人调度系统,所述调度系统包括:机器人调度装置、服务器集群、用户系统和机器人集群;
34.所述机器人调度装置为上述第一个方面所述的机器人调度装置;
35.所述服务器集群用于部署所述机器人调度装置;
36.所述机器人调度装置中的第一调度模块组、第二调度模块组和第三调度模块组分别与所述用户系统对接;
37.所述机器人调度装置中的第三调度模块组与所述机器人集群通信;
38.所述服务器集群包括:第一服务器、第二服务器和第三服务器;
39.所述第一调度模块组部署于所述第一服务器上;
40.所述第二调度模块组部署于所述第二服务器上;
41.所述第三调度模块组部署于所述第三服务器上。
42.第三个方面,在本实施例中提供了一种机器人调度方法,所述调度方法应用于上述第一个方面所述的机器人调度装置,所述调度方法包括:
43.解析订单信息以获取任务信息,并将所述任务信息发送至所述第二调度模块组,其中,所述订单信息由外部用户系统生成;
44.根据所述任务信息确定执行任务的机器人,并生成执行信息发送至第三调度模块组;
45.根据所述执行信息,控制相应的机器人执行所述任务。
46.第四个方面,在本实施例中提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第三个方面所述的机器人调度方法。
47.第五个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第三个方面所述的机器人调度方法。
48.与相关技术相比,在本实施例中提供的一种机器人调度装置,通过在软件层面将完整的调度软件分为三个独立的部分,三个程序部分独立封装,从而使得机器人调度装置的结构逻辑更强,单个调度模块组的开发难度更小。当机器人调度过程出现异常时,能够方便维护人员筛查出具有问题的调度模块;同时单个调度模块组出现问题时,可以仅仅对相应的调度模块进行维护,从而降低了维护难度;而且第一调度模块组、第二调度模块组和第三调度模块组可以部署在不同的设备中,也可以部署在同一个设备中,因此该机器人调度装置中的各个调度模块具有易部署的优点。
49.本技术的一个或多个实施例的细节在以下附图和描述中提出,以使本技术的其他特征、目的和优点更加简明易懂。
附图说明
50.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
51.图1是本实施例的机器人调度方法的终端的硬件结构框图。
52.图2是现有技术中传统的机器人调度系统的结构框图。
53.图3是本实施例的一种机器人调度装置的结构框图。
54.图4是本实施例中另一种机器人调度装置的结构框图。
55.图5是本实施例中的一种机器人调度系统的结构框图。
56.图6是本实施例的一种机器人调度方法的流程图。
57.图7是本优选实施例的一种机器人调度软件的结构图。
具体实施方式
58.为更清楚地理解本技术的目的、技术方案和优点,下面结合附图和实施例,对本申
请进行了描述和说明。
59.除另作定义外,本技术所涉及的技术术语或者科学术语应具有本技术所属技术领域具备一般技能的人所理解的一般含义。在本技术中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本技术中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本技术中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本技术中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本技术中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
60.在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本实施例的机器人调度方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
61.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的机器人调度方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
62.传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
63.机器人在应用的过程中,需要有一个强大的调度软件,与用户的生产系统对接,将生产任务转化成机器人调度任务,分配给机器人执行。图2是现有技术中传统的机器人调度系统的结构框图。如图2所示,传统的调度软件210通过定制的中间件与用户系统对接,将用户的生产任务导入,再通过复杂的内部转化,将调度任务下发给机器人执行。其中,传统的机器人调度系统中采用整体封装的调度软件210,把复杂的调度业务完全封装在一起,形成一个完整的调度软件210,因此该调度软件210结构复杂,开发人员难以维护;单一软件部署困难且出现异常后,难以很好的排查问题及应对风险。基于上述问题,本实施例中提供了一
种机器人调度装置、系统和方法。
64.在本实施例中提供了一种机器人调度装置,图3是本实施例的一种机器人调度装置的结构框图。如图3所示,该机器人调度装置包括:第一调度模块组310、第二调度模块组320和第三调度模块组330;
65.其中,第一调度模块组310、第二调度模块组320和第三调度模块组330分别独立封装。
66.具体的,机器人调度装置由第一调度模块组310、第二调度模块组320和第三调度模块组330共同组成,而且每个调度模块组均为独立封装,分别用于实现预设的调度功能和完成预设的调度任务。从软件层面看,是将完整的调度软件分成三个部分,且各个部分之间独立封装,每个部分由相应的程序模块构成,从而形成三个独立的调度程序,分别对应着第一调度模块组310、第二调度模块组320和第三调度模块组330,三个调度模块组分别实现相应的功能,相互配合共同完成完整的调度任务。从硬件层面看,上述各个调度模块组也可以是硬件结构,比如能够运行上述调度软件中各部分程序,以实现相应调度功能的一个或多个处理器。
67.本实施例中,由于在软件层面将完整的调度软件分为三个独立的部分,三个程序部分独立封装,从而使得机器人调度装置的结构逻辑更强,单个调度模块组的开发难度更小。当机器人调度过程出现异常时,能够方便维护人员筛查出具有问题的调度模块,同时单个调度模块组出现问题时,可以仅仅对相应的调度模块进行维护,从而降低了维护难度;而且第一调度模块组310、第二调度模块组320和第三调度模块组330可以部署在不同的设备中,也可以部署在同一个设备中,因此该机器人调度装置中的各个调度模块具有易部署的优点。解决了现有的调度系统复杂、不易开发维护、不支持分布式部署,以及对服务器硬件性能要求高的问题。
68.其中,第一调度模块组310用于解析订单信息以获取任务信息,并将任务信息发送至第二调度模块组320;其中,订单信息由外部用户系统生成;第二调度模块组320用于根据任务信息确定执行任务的机器人,并生成执行信息发送至第三调度模块组330;第三调度模块组330用于根据执行信息,控制相应的机器人执行任务。
69.具体的,第一调度模块组310首先从外部用户系统中获取订单信息,并解析该订单信息生成内部的任务信息发送给第二调度模块组320,比如任务信息为:a库位需要补充b物料;然后第二调度模块组320接收该任务信息后,确定执行该任务的机器人,并生成执行信息发送给第三调度模块组330,比如执行信息为:c机器人将b物料运输至a库位;最后第三调度模块组330控制相应的机器人去执行该任务,比如控制过程为:确定c机器人的移动路线,并控制其按照该路线运行,同时控制机器人在相应的位置点执行装料/卸料的动作。在一个具体的实施例中,执行信息包括:执行任务的机器人的编号和任务的位置信息。其中机器人的编号用于确定相应的机器人,而位置信息包括调度任务中各个节点的位置,比如在执行信息“c机器人将b物料运输至a库位”中,c为机器人的编号,而c机器人的起点位置、b物料的位置和a库位的位置均为位置信息,这些信息由第二调度模块组320发送给第三调度模块组330,而第三调度模块组330根据这些信息确定机器人的移动路线。
70.因此独立封装的第一调度模块组310、第二调度模块组320和第三调度模块组330,不仅能够相互配合实现完整的调度任务,同时机器人调度结构更加清晰,每个调度模块组
实现相应的功能,各个调度模块组支持分布式部署,对于硬件服务器配置要求大幅降低,且清晰的结构方便开发人员维护及问题排查。解决了现有的机器人调度系统中软件结构复杂不合理,开发人员维护困难,对硬件服务器要求高等问题。
71.图4是本实施例中另一种机器人调度装置的结构框图。
72.参照图4,在其中的一个实施例中,调度装置还包括:数据库410;
73.数据库410用于实现第一调度模块组310、第二调度模块组320和第三调度模块组330之间的数据交互;
74.数据库410中设置有第一数据层、第二数据层和第三数据层,第一数据层与第一调度模块组310对应,第二数据层与第二调度模块组320对应,第三数据层与第三调度模块组330对应;
75.第一数据层被配置为允许第一调度模块组310访问;
76.第二数据层被配置为允许第一调度模块组310和第二调度模块组320访问;
77.第三数据层被配置为允许第一调度模块组310、第二调度模块组320和第三调度模块组330访问。
78.具体的,本实施例中的机器人调度装置还包括数据库410,第一调度模块组310、第二调度模块组320和第三调度模块组330通过数据库410实现数据交互转发,各个调度模块之间不会直接进行交互。所有的交互指令都在数据库410中有内容和时间的存档,因此可以通过数据库410监控以及还原任务执行过程。其中数据库410中存在三个数据层,分别与第一调度模块组310、第二调度模块组320和第三调度模块组330对应的第一数据层、第二数据层和第三数据层,每层中的数据表均配置有对应于三个调度模块组的读/写权限。其中,第三调度模块组330仅能访问第三数据层中的数据表,第二调度模块组320仅能访问第二数据层和第三数据层中的数据表,而第一调度模块组310可以访问所有数据层的数据表。
79.在其中的一个实施例中,第一调度模块组310设置有第一接口,第二调度模块组320设置有第二接口,第三调度模块组330设置有第三接口;
80.第一接口和第二接口以及第三接口均用于连接外部用户系统。
81.具体的,本实施例中的机器人调度装置中的三个调度模块均可以通过接口与外部用户系统直接对接,其中示例性地,该接口服务形式可以rest api。因此该机器人调度装置支持在多个层次与外部用户系统进行数据对接,外部用户系统可以将多个接口服务组合使用,以完成更加复杂的业务逻辑。比如:外部用户系统下发a机器人回1号休息区域命令,此时外部系统调用“指派机器人到指定位置”的接口服务与机器人调度装置的第二调度模块组320对接;若此时外部用户系统又下发了a机器人将货物从2号库位搬运至3号库位的订单,则外部用户系统调用“创建订单”的接口服务与机器人调度装置的第一调度模块组310对接,第一调度模块组310把订单分解成取货和卸货两个任务,组合发给第二调度模块组320。第二调度模块组320将打断a机器人去休息区域的动作,a机器人优先执行订单任务。
82.在其中的一个实施例中,第一调度模块组310包括:订单解析模块和订单分配模块;
83.订单解析模块用于解析订单信息以获取任务信息,订单分配模块用于将任务信息发送至第二调度模块组320;
84.第二调度模块组320包括:任务指派模块;
85.任务指派模块用于接收任务信息,并基于任务信息采用预设的算法确定执行任务的机器人,并将执行信息发送至第三调度模块组330;
86.第三调度模块组330包括:任务执行模块和交通管理模块;
87.任务执行模块用于根据执行信息向执行任务的机器人发送预设的操作指令,交通管理模块用于根据执行信息确定任务路径,并将任务路径发送至执行任务的机器人。
88.具体的,本实施例中的第一调度模块组310由订单解析模块和订单分配模块组成;在接收到外部用户系统发送的订单信息后,订单解析模块对该订单信息进行解析以生成任务信息,然后订单分配模块通过数据库410将任务信息转发至第二调度模块组320中。第二调度模块组320由任务指派模块构成,任务指派模块接收到任务信息后,根据任务分派的算法策略,决策合适的机器人执行搬运任务,并将相应的执行信息通过数据库410转发给第三调度模块组330,其中执行信息中至少包括执行任务的机器人编号和任务的目的地。第三调度模块组330由任务执行模块和交通管理模块组成,其中任务执行模块向机器人发送预设的操作指令,以控制机器人执行相应的动作,预设的操作指令至少包括取货指令和卸货指令,进而控制相应的机器人执行取货动作和卸货动作;同时交通管理模块实时决策机器人的任务路径,确保系统内机器人高效运行,避免死锁和相互碰撞。
89.在其中的一个实施例中,第一调度模块组310还包括:库存管理模块;
90.库存管理模块用于获取任务工具的实时位置信息;其中,任务工具为机器人在执行任务中所使用的工具。
91.具体的,在机器人执行搬运货物任务的过程中,需要使用相应的搬运工具实现货物搬运,比如常见的用于装载货物的托盘,而库存管理模块的主要作用就是实时获取托盘等搬运工具的位置。比如:机器人从a工位取走托盘后,托盘位置会更新到机器人身上,机器人将托盘放到缓存区后,托盘位置会更新到缓存区。
92.在其中的一个实施例中,第二调度模块组320还包括:休息管理模块和充电管理模块;
93.休息管理模块用于确定需要待机的机器人,并生成待机信息发送至第三调度模块组330,充电管理模块用于确定需要充电的机器人,并生成充电信息发送至第三调度模块组330;
94.第三调度模块组330还用于根据待机信息控制相应的机器人前往待机区域,以及还用于根据充电信息控制相应的机器人前往充电区域。
95.具体的,休息管理模块决策没有任务并且agv电量充足的机器人去空闲休息位休息,并将相应的待机信息发送给第三调度模块组330,即待机信息中至少包含了需要待机休息的机器人的标号以及休息区域位置,第三调度模块组330根据该待机信息控制相应的机器人前往待机休息区域。充电管理模块根据agv电量、开始/结束充电阈值等因素决策机器人何时开始/结束充电,并将相应的充电信息发送给第三调度模块组330,即充电信息中至少包含需要充电的机器人的编号和充电开始/结束的时间等信息,第三调度模块组330根据该充电信息控制相应的机器人去充电区域实现充电。
96.在其中的一个实施例中,第三调度模块组330还包括:状态管理模块和接口管理模块;
97.状态管理模块用于同步机器人状态数据至数据库,接口管理模块用于实现机器人
与外部设备的交互控制。
98.具体的,状态管理模块实时同步机器人状态数据到数据库410,机器人状态包括:停在休息位、去往休息位、正在充电、去往充电位、执行任务途中。接口管理模块实现机器人与外部设备的交互控制。比如:机器人在a工位前1米处,接口管理模块更新数据库中的io表;之后接口管理模块读取数据库中的io表数据,当确认收到a工位plc的进入许可信号时,机器人再进入a工位。
99.需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中,不同调度模块组中的模块可以处于不同的处理器中。
100.在本实施例中还提供了一种机器人调度系统。图5是本实施例中的一种机器人调度系统的结构框图。参照图5,调度系统包括:机器人调度装置、服务器集群、用户系统540和机器人集群550;机器人调度装置为上述实施例中提出的机器人调度装置。机器人调度装置中的第一调度模块组310、第二调度模块组320和第三调度模块组330分别与用户系统540对接;机器人调度装置中的第三调度模块组330与机器人集群550通信;服务器集群用于部署机器人调度装置,即机器人调度装置中的各个调度模块组部署在服务器集群中。
101.在其中的一个可选的实施例中,服务器集群包括:第一服务器510、第二服务器520和第三服务器530;第一调度模块组310部署于第一服务器510上;第二调度模块组320部署于第二服务器520上;第三调度模块组330部署于第三服务器530上。具体的,本实施例中三个调度模块组分别部署在三个服务器中。除了该部署方式外,还可以将三个调度模块组部署在同一个服务器中;以及将其中一个调度模块组部署在一个服务器中,而将另外两个调度模块组部署在另一个服务器中。
102.在本实施例中还提供了一种机器人调度方法,该方法应用于上述实施例中的机器人调度装置。图6是本实施例的一种机器人调度方法的流程图。如图6所示,该流程包括如下步骤:
103.步骤s610,解析订单信息以获取任务信息,并将任务信息发送至第二调度模块组,其中,订单信息由外部用户系统生成。
104.步骤s620,根据任务信息确定执行任务的机器人,并生成执行信息发送至第三调度模块组。
105.步骤s630,根据执行信息,控制相应的机器人执行任务。
106.具体的,机器人调度装置通过第一调度模块组310解析订单信息以获取任务信息,并将任务信息发送至第二调度模块组320,其中,订单信息由外部用户系统生成;通过第二调度模块组320根据任务信息确定执行任务的机器人,并生成执行信息发送至第三调度模块组330;通过第三调度模块组330根据执行信息,控制相应的机器人执行任务。进而通过三个调度模块的配合,能够实现一个完整的调度任务。
107.需要进一步说明的是,由于本实施例中的机器人调度装置中,第一调度模块组310、第二调度模块组320和第三调度模块组330分别独立封装,因此本机器人调度方法中的每个步骤都是独立的,当执行其中一个步骤的调度模块组出现问题时,便于维修人员进行排查以及维护。
108.下面通过优选实施例对本实施例进行描述和说明。
109.图7是本优选实施例的一种机器人调度软件的结构图。参照图7,机器人调度软件通过如下步骤设计:
110.首先将调度软件分为三层:第一层为订单管理层710、第二层为通用调度层720、第三层为调度引擎层730。
111.然后将订单管理层710、通用调度层720和调度引擎层730分别独立封装,最终形成多层接结构的机器人调度软件。
112.具体的订单管理层710主要包含:ts执行模块、订单分配模块、库存管理模块;通用调度层720主要包含:任务指派模块、休息管理模块、充电管理模块;调度引擎层730主要包含:车辆管理模块、交通管理模块、任务执行模块、io管理模块。每个层级都有各自的rest api支持与外部系统对接,包括订单管理层rest api(l3)、通用调度层rest api(l2)、调度引擎层rest api(l1)。
113.该机器人调度软件的运行过程为:用户生产系统会通过内部业务逻辑,生产一条订单信息,主要内容包括某个工位需要某个物料,该信息通过接口进入调度系统的订单管理层710。订单管理层710会在库存系统中寻找需要的物料,把生产订单分解成去哪个库位取货,搬运到哪个库位两个调度任务,组合发给通用调度层720。
114.通用调度层720收到调度任务组合,通过任务分派的算法策略,决定哪个机器人最适合去执行调度任务;找到合适的机器人后把机器人编号和任务目的地组合成执行命令发送给调度引擎层730。
115.调度引擎层730与所有机器人本体进行通信,收到执行命令后,解析出被指派的机器人编号及目的地。通过该机器人当前的位置和目的地的位置,计算出合适的路径组合,将信息发送给机器人执行。并且在机器人执行过程中,不断计算其他机器人是否对该机器人执行的路径有影响,以便及时调整,直至机器人完成该执行命令。
116.订单管理层710、通用调度层720和调度引擎层730可以集中部分在同一台服务器上,也可以分布式部署在同一个局域网内的多台服务器上。
117.分层结构软件支持在多个层次与外部系统进行数据对接,对接的形式是rest api,外部系统可以将提供的rest api组合使用,以完成更加复杂的业务逻辑。同时用户可以根据自己生产系统的完备程度,选择在不同层次与机器人调度软件进行对接。比如:外部系统下发a机器人回1号休息区域命令,此时外部系统调用“指派机器人到指定位置”的api接口服务与调度系统的通用调度层720对接;若此时外部系统又下发了a机器人将货物从2号库位搬运至3号库位的订单,则外部系统调用“创建订单”的api接口服务与调度系统的订单管理层710对接,订单管理层710把订单分解成取货和卸货两个任务,组合发给通用调度层720。通用调度层720将打断a机器人去休息区域的动作,a机器人优先执行订单任务。
118.订单管理层710、通用调度层720和调度引擎层730通过数据库进行交互。三个层次的数据交互指令均通过数据库完成,所有的交互指令都在数据库中有内容和时间的存档。三个层次模块相互配合、循环交互,确保用户的生产任务-》订单任务-》调度任务-》具体机器人动作执行命令的完成。其中,数据库架构分为layer1、layer2和layer3三层,每层中的数据表都配置了对应于调度软件三个层次的读/写权限。调度软件低层次无法读/写数据库高层次的数据表,即:调度软件的调度引擎层730仅能读/写layer1层数据表;通用调度层720能读/写layer1层和layer2层数据表;订单管理层710能读/写全部数据表。
119.本发明的机器人调度软件分层设计方法实现了调度软件的分层,支持分布式部署,对于硬件服务器配置要求大幅降低,且清晰的结构方便开发人员维护及问题排查。解决了软件结构复杂不合理,开发人员维护困难,对硬件服务器要求高等问题。
120.下面通过一个具体的实例对该调度软件各层中的模块作用做具体说明。
121.某工厂工艺流程为:a工位生产完成后人工呼叫,需要机器人从呼叫的位置取托盘,放到缓存区中的空位置。机器人进入a工位前(距离1米),需要先向plc发送进入申请,收到plc的进入许可信号后再进入。
122.在调度流程中,人工呼叫系统将向调度软件的订单管理层710传送订单信息,订单信息关联ts(transport structure)流程模板。
123.在订单管理层710中:
124.ts执行模块用于解析订单关联的ts,将订单拆解为具体的agv任务;
125.订单分配模块用于将agv任务下发给通用调度层;
126.库存管理模块用于维护托盘的实时位置信息,机器人从a工位取走托盘后,托盘位置会更新到机器人身上,机器人将托盘放到缓存区后,托盘位置会更新到缓存区。
127.在通用调度层720中:
128.任务指派模块用于根据任务分派的算法策略,决策合适的机器人执行搬运任务,并将机器人编号和任务目的地组合成执行命令发送给调度引擎层;
129.休息管理模块用于决策没有任务并且agv电量充足的机器人去空闲休息位休息;
130.充电管理模块用于根据agv电量、开始/结束充电阈值等因素决策机器人何时开始/结束充电。
131.在调度引擎层730中:
132.任务执行模块用于收到任务指派模块下发的执行命令后,向机器人发送取/卸货命令;
133.交通管理模块用于实时决策机器人运行路径,确保系统内机器人高效运行,避免死锁和碰撞;
134.车辆管理模块用于实时同步机器人状态数据到数据库,包含停在休息位、去往休息位、正在充电、去往充电位、执行任务途中;
135.io管理模块用于实现机器人与外部设备的交互控制。
136.在本实施例中还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
137.可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
138.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
139.步骤s610,解析订单信息以获取任务信息,并将任务信息发送至第二调度模块组,其中,订单信息由外部用户系统生成。
140.步骤s620,根据任务信息确定执行任务的机器人,并生成执行信息发送至第三调度模块组。
141.步骤s630,根据执行信息,控制相应的机器人执行任务。
142.需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中
所描述的示例,在本实施例中不再赘述。
143.此外,结合上述实施例中提供的机器人调度方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种机器人调度方法。
144.应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本技术提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本技术保护范围。
145.显然,附图只是本技术的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本技术适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本技术披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本技术公开的内容不足。
[0146]“实施例”一词在本技术中指的是结合实施例描述的具体特征、结构或特性可以包括在本技术的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本技术中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
[0147]
以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。

技术特征:
1.一种机器人调度装置,其特征在于,所述调度装置包括:第一调度模块组、第二调度模块组和第三调度模块组;其中,所述第一调度模块组、第二调度模块组和第三调度模块组分别独立封装;所述第一调度模块组用于解析订单信息以获取任务信息,并将所述任务信息发送至所述第二调度模块组;其中,所述订单信息由外部用户系统生成;所述第二调度模块组用于根据所述任务信息确定执行任务的机器人,并生成执行信息发送至第三调度模块组;所述第三调度模块组用于根据所述执行信息,控制相应的机器人执行所述任务。2.根据权利要求1所述的机器人调度装置,其特征在于,所述执行信息包括:执行所述任务的机器人的编号和所述任务的位置信息。3.根据权利要求1所述的机器人调度装置,其特征在于,所述调度装置还包括:数据库;所述数据库用于实现所述第一调度模块组、第二调度模块组和第三调度模块组之间的数据交互;所述数据库中设置有第一数据层、第二数据层和第三数据层,所述第一数据层与所述第一调度模块组对应,所述第二数据层与所述第二调度模块组对应,所述第三数据层与所述第三调度模块组对应;所述第一数据层被配置为允许第一调度模块组访问;所述第二数据层被配置为允许第一调度模块组和第二调度模块组访问;所述第三数据层被配置为允许第一调度模块组、第二调度模块组和第三调度模块组访问。4.根据权利要求1所述的机器人调度装置,其特征在于,所述第一调度模块组设置有第一接口,所述第二调度模块组设置有第二接口,第三调度模块组设置有第三接口;所述第一接口和所述第二接口以及所述第三接口均用于连接外部用户系统。5.根据权利要求1所述的机器人调度装置,其特征在于,所述第一调度模块组包括:订单解析模块和订单分配模块;所述订单解析模块用于解析所述订单信息以获取所述任务信息,所述订单分配模块用于将所述任务信息发送至所述第二调度模块组;所述第二调度模块组包括:任务指派模块;所述任务指派模块用于接收所述任务信息,并基于所述任务信息采用预设的算法确定执行所述任务的机器人,并将所述执行信息发送至第三调度模块;所述第三调度模块组包括:任务执行模块和交通管理模块;所述任务执行模块用于根据所述执行信息向执行所述任务的机器人发送预设的操作指令,所述交通管理模块用于根据所述执行信息确定任务路径,并将所述任务路径发送至执行所述任务的机器人。6.根据权利要求1所述的机器人调度装置,其特征在于,所述第一调度模块组还包括:库存管理模块;所述库存管理模块用于获取任务工具的实时位置信息;其中,所述任务工具为所述机器人在执行任务中所使用的工具。7.根据权利要求1所述的机器人调度装置,其特征在于,所述第二调度模块组还包括:
休息管理模块和充电管理模块;所述休息管理模块用于确定需要待机的机器人,并生成待机信息发送至第三调度模块组,所述充电管理模块用于确定需要充电的机器人,并生成充电信息发送至第三调度模块组;所述第三调度模块组还用于根据所述待机信息控制相应的机器人前往待机区域,以及还用于根据所述充电信息控制相应的机器人前往充电区域。8.根据权利要求1所述的机器人调度装置,其特征在于,所述第三调度模块组还包括:状态管理模块和接口管理模块;所述状态管理模块用于同步所述机器人状态数据至所述数据库,所述接口管理模块用于实现所述机器人与外部设备的交互控制。9.一种机器人调度系统,其特征在于,所述调度系统包括:机器人调度装置、服务器集群、用户系统和机器人集群;所述机器人调度装置为权利要求1-8任一项所述的机器人调度装置;所述服务器集群用于部署所述机器人调度装置;所述机器人调度装置中的第一调度模块组、第二调度模块组和第三调度模块组分别与所述用户系统对接;所述机器人调度装置中的第三调度模块组与所述机器人集群通信;所述服务器集群包括:第一服务器、第二服务器和第三服务器;所述第一调度模块组部署于所述第一服务器上;所述第二调度模块组部署于所述第二服务器上;所述第三调度模块组部署于所述第三服务器上。10.一种机器人调度方法,其特征在于,所述调度方法应用于权利要求1-8中任一项所述的机器人调度装置,所述调度方法包括:解析订单信息以获取任务信息,并将所述任务信息发送至所述第二调度模块组,其中,所述订单信息由外部用户系统生成;根据所述任务信息确定执行任务的机器人,并生成执行信息发送至第三调度模块组;根据所述执行信息,控制相应的机器人执行所述任务。

技术总结
本申请涉及一种机器人调度装置、系统和方法,其中,所述调度装置包括:第一调度模块组、第二调度模块组和第三调度模块组;其中,所述第一调度模块组、第二调度模块组和第三调度模块组分别独立封装;所述第一调度模块组用于解析订单信息以获取任务信息,并将所述任务信息发送至所述第二调度模块组;其中,所述订单信息由外部用户系统生成;所述第二调度模块组用于根据所述任务信息确定执行任务的机器人,并生成执行信息发送至第三调度模块组;所述第三调度模块组用于根据所述执行信息,控制相应的机器人执行所述任务。通过本申请,解决了现有的调度系统复杂、不易开发维护、不支持分布式部署,以及对服务器硬件性能要求高的问题。以及对服务器硬件性能要求高的问题。以及对服务器硬件性能要求高的问题。


技术研发人员:兰曦晟 韦磊 陈克
受保护的技术使用者:浙江国自机器人技术股份有限公司
技术研发日:2022.07.19
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-7191.html

最新回复(0)