机器人智能调度方法、装置、计算设备及计算机存储介质与流程

文档序号:33034520发布日期:2023-01-24 18:51阅读:48来源:国知局
机器人智能调度方法、装置、计算设备及计算机存储介质与流程

1.本发明涉及通信技术领域,具体涉及一种机器人智能调度方法、装置、计算设备及计算机存储介质。


背景技术:

2.伴随企业数字化的深入发展,目前rpa技术把人类从繁重重复的劳动中解放出来,提升了企业工作效率。作为机器人的管理中心,管控平台对机器人工作站进行综合调度与权限控制。目前机器人集群调度方式:管控平台集中下发任务给机器人集群,每个机器人构造本地缓存队列,采用先来先服务(fcfs)策略执行各自队列里的任务并上报执行结果给管控平台。管控平台下发任务的规则是判断机器人本地队列大小,任务少的优先下发。
3.随着客户的业务流程日益复杂,对应的部署环境也变得复杂庞大,针对大规模的机器人如何最优调度、高效协作、自定义策略和最大化资源利用率,目前的调度机制越来越成为瓶颈。现有调度方式主要存在以下缺点:无法动态切换策略、机器人集群资源利用率不足60%,四成资源闲置。


技术实现要素:

4.鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的机器人智能调度方法、装置、计算设备及计算机存储介质。
5.根据本发明实施例的一个方面,提供了一种机器人智能调度方法,包括:
6.遍历多级任务队列,根据多级任务队列的优先级提取待分派任务;
7.对机器人集群中的各个机器人进行预选,得到至少一个预选机器人;
8.针对任一预选机器人,根据预选机器人上报的监控数据计算实时计算分数,以及,对预选机器人的资源利用率趋势进行预测得到预测计算分数;结合预选机器人的实时计算分数和预测计算分数,计算预选机器人的运行压力指数;
9.根据至少一个预选机器人的运行压力指数,优选得到目标机器人;
10.将待分派任务分派给目标机器人。
11.根据本发明实施例的另一方面,提供了一种机器人智能调度装置,包括:
12.提取模块,适于遍历多级任务队列,根据多级任务队列的优先级提取待分派任务;
13.预选模块,适于对机器人集群中的各个机器人进行预选,得到至少一个预选机器人;
14.计算模块,适于针对任一预选机器人,根据预选机器人上报的监控数据计算实时计算分数,以及,对预选机器人的资源利用率趋势进行预测得到预测计算分数;结合预选机器人的实时计算分数和预测计算分数,计算预选机器人的运行压力指数;
15.筛选模块,适于根据至少一个预选机器人的运行压力指数,优选得到目标机器人;
16.分派模块,适于将待分派任务分派给目标机器人。
17.根据本发明实施例的又一方面,提供了一种计算设备,包括:处理器、存储器、通信
接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
18.存储器用于存放至少一可执行指令,可执行指令使处理器执行上述机器人智能调度方法对应的操作。
19.根据本发明实施例的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述机器人智能调度方法对应的操作。
20.本发明提供的方案解决了大规模机器人作业时的调度问题,利用多级反馈队列算法,结合运行环境的预选(predicate)和机器人的优选(priority)机制,实现两级筛选机制,最大化利用空闲机器人资源,有效减少作业空等待时长,提升rpa对执行引擎资源的合理分配和高效使用,从而提升机器人集群的整体吞吐量,提高作业执行效率,实现企业降本增效,进一步推动行业智能化。
21.上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明实施例的具体实施方式。
附图说明
22.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明实施例的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
23.图1为本发明实施例中一种机器人智能调度系统示意图;
24.图2a示出了本发明实施例提供的机器人智能调度方法流程图;
25.图2b为多级任务队列的示意图;
26.图3示出了本发明实施例提供的机器人智能调度装置的结构示意图;
27.图4示出了本发明实施例提供的计算设备的结构示意图。
具体实施方式
28.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
29.本发明主要是提供一种机器人智能调度方案,管理员录入任务时,根据任务特点,设定机器人执行作业的优先等级,管控平台调度计算时,根据机器人宿主机的系统性能指标,计算最佳运行机器人,进而实现机器人任务的实时集中式分发。
30.本发明提供的方案是一套基于bos-mlfqsa(based on scoring multi level feedback queue scheduling algorithm)的高效的机器人智能调度系统,其基于打分机制的多级反馈队列调度算法实现。如图1所示,机器人智能调度系统主要包括,任务管控平台、调度装置和机器人节点。任务管控平台,用于发起任务和任务队列集中式管理,方便任务分发和监控。调度装置,用于管理和调度任务队列、机器人节点、作业宿主机监控。机器人节点包括一个或多个宿主机,宿主机可包括一个或多个机器人。每个机器人对应的宿主机windows环境,预先配置n个固定账户,多账户下的机器人运行遵循以下规则:同一时刻每个
账户只能运行一个机器人,待机器人执行成功或失败才能进行下一轮新任务调度,但多账户下支持并行运行多个机器人。作业宿主机监控:机器人所属宿主机系统性能指标和机器人运行状态监控。实时抽取机器人所在宿主机的资源利用率(cpu、内存、磁盘等),周期性上传至任务管控模块,供调度模块打分机制算法进行计算。
31.图2a示出了本发明实施例提供的机器人智能调度方法的流程图。如图2a所示,该方法包括以下步骤:
32.步骤s201,遍历多级任务队列,根据多级任务队列的优先级提取待分派任务。
33.具体地,预先构造有多级任务队列,其中,多级任务队列是多个优先级不同的任务队列的组合,例如,定义任务优先等级p0、p1、p2,等级索引下标数字越小,优先级越高。同一个优先级的任务队列内部采用先进先出的策略(sched_fifo)。图2b为多级任务队列的示意图,随着箭头指示方向,任务队列的优先级逐渐降低。
34.当存在调度需求时,需要先遍历多级任务队列,根据多级任务队列的优先级来提取待分派任务,优先提取优先级最高的任务,当存在多个优先级相同的任务时,按照先进先出策略来确定要提取的待分派任务。
35.步骤s202,对机器人集群中的各个机器人进行预选,得到至少一个预选机器人。
36.机器人集群中存在多个机器人,需要先对机器人集群中的各个机器人进行预选,得到至少一个预选机器人,预选是实现第一轮筛选,通过预选能够从机器人集群的众多机器人中初步筛选出至少一个预选机器人。
37.可选地,在对机器人集群中的各个机器人进行预选时,可以依据预先设置的预选策略来进行筛选,例如,根据机器人执行状态及机器人作业类型,对机器人集群中各个机器人进行预选,得到至少一个预选机器人。其中,机器人执行状态表明当前机器人的状态,例如,作业状态或空闲状态,优先选取处于空闲状态的机器人,机器人作业类型表明机器人能够处理的任务类型,因此,根据机器人执行状态及机器人作业类型,对机器人集群中各个机器人进行预选,所得到至少一个预选机器人相比于机器人集群中的其他机器人更适合运行待分派任务。
38.此外,还可以人工配置预选规则,根据人工配置的预选规则对机器人集群中的各个机器人进行预选。
39.步骤s203,针对任一预选机器人,根据预选机器人上报的监控数据计算实时计算分数,以及,对预选机器人的资源利用率趋势进行预测得到预测计算分数;结合预选机器人的实时计算分数和预测计算分数,计算预选机器人的运行压力指数。
40.为了能够筛选出最适合执行待分派任务的机器人,在进行预选后需要进行二次筛选,在进行二次筛选时,主要是根据机器人的运行压力指数来进行筛选,其中,运行压力指数反映了机器人的运行压力情况,具体地,可以通过如下方法来计算运行压力指数:
41.针对任一预选机器人,该预先机器人会主动上报监控数据,其中,监控数据包括cpu数据、内存数据、磁盘数据等,因此,可以根据预先机器人上报的监控数据来计算实时计算分数,对预选机器人的资源利用率趋势进行预测得到预测计算分数,可选地,可以根据同类型任务的执行历史数据,对预选机器人的资源利用率趋势进行预测得到预测计算分数,例如,采用半衰减平均值和衰减标准差来进行预测,在得到实时计算分数和预测计算分数后,结合预选机器人的实时计算分数和预测计算分数,计算预选机器人的运行压力指数,例
如,结合预选机器人的实时计算分数和预测计算分数加权计算预选机器人的运行压力指数。
42.可选地,利用如下公式来计算运行压力指数:
43.运行压力指数=实时计算分数*权重1+预测计算分数*权重2
44.其中,实时计算分数可以通过如下公式来计算:
45.实时计算分数=cpu((容量capacity

任务预估消耗cpu)*10/容量capacity)+内存memory((容量capacity

任务预估消耗内存)*10/容量capacity)/2
46.预测计算分数基于同类型任务的执行历史数据的数列方差(davr公式)计算得到,资源利用率衰减方差davr计算公式:
[0047][0048]
资源利用率衰减平均值davg计算公式:
[0049][0050]
其中,可以动态调整,正常设置接近0.5以下,表明参考最近运行的性能影响;vn为同类型任务的执行历史数据。
[0051]
此外,除了根据同类型任务的执行历史数据,对预选机器人的资源利用率趋势进行预测得到预测计算分数外,还可以根据预选机器人类型、执行进度信息和同类型任务的执行历史数据,对预选机器人的资源利用率趋势进行预测得到预测计算分数。
[0052]
步骤s204,根据至少一个预选机器人的运行压力指数,优选得到目标机器人。
[0053]
在计算得到运行压力指数后,根据至少一个预选机器人的运行压力指数,优选得到目标机器人,例如,筛选运行压力指数小于预设压力阈值的机器人作为目标机器人,当存在多个机器人的运行压力指数小于预设压力阈值时,可以随机选择一个机器人作为目标机器人。优先选取空闲状态的机器人。
[0054]
步骤s205,将待分派任务分派给目标机器人。
[0055]
在确定了目标机器人后,可以将步骤s201中所提取的待分派任务分派给目标机器人,由目标机器人执行所分派的任务。在将待分派任务分派给目标机器人后,则将该待分派任务添加至运行任务队列(running queue)中,以监视运行状态。
[0056]
需要说明的是,本实施例可以重复执行上述步骤,以继续轮询多级任务队列中的其他任务,直至队列中的任务分发完毕。
[0057]
在本发明一种可选实施方式中,在将待分派任务分派给目标机器人之后,方法还包括:若目标机器人运行待分派任务失败,则将待分派任务添加至失败任务队列中。
[0058]
具体地,目标机器人在接收到待分派任务后,运行该待分派任务,若目标机器人运行失败,则通过心跳机制(heartbeat)实时反馈作业运行状态,将运行中的队列任务转移至失败任务队列(failed queue)中。
[0059]
为了在目标机器人运行待分派任务失败的情况下,可以将运行失败的任务转移至机器人集群内相对健康的空闲机器人来运行,如果执行失败超过三次则直接转移至失败任务队列,方便人工干预和统计。
[0060]
在本发明一种可选实施方式中,方法还包括:
[0061]
接收机器人发送的窃取任务请求;
[0062]
根据窃取任务请求,从失败任务队列中窃取其他机器人运行失败的任务,并将所窃取的任务分派给该机器人。
[0063]
为提高调度效率,机器人集群内各机器人可以主动向发起窃取任务请求,其中,各机器人可以读取自身状态信息,判断状态信息是否为空闲状态,若是,则发送窃取任务请求,在接收机器人发送的窃取任务请求后,根据窃取任务请求,从失败任务队列中窃取其他机器人运行失败的任务,并将所窃取的任务分派给该机器人,例如,通过work-stealing算法嗅探所有失败任务,在失败任务队列中主动窃取其他机器人运行失败的任务,并反馈给当前机器人。
[0064]
本发明提供的方案解决了大规模机器人作业时的调度问题,利用多级反馈队列算法,结合运行环境的预选(predicate)和机器人的优选(priority)机制,实现两级筛选机制,最大化利用空闲机器人资源,有效减少作业空等待时长,提升rpa对执行引擎资源的合理分配和高效使用,从而提升机器人集群的整体吞吐量,提高作业执行效率,实现企业降本增效,进一步推动行业智能化。
[0065]
图3示出了本发明实施例提供的机器人智能调度装置的结构示意图。如图3所示,该装置包括:提取模块301、预选模块302、计算模块303、筛选模块304、分派模块305。
[0066]
提取模块301,适于遍历多级任务队列,根据多级任务队列的优先级提取待分派任务;
[0067]
预选模块302,适于对机器人集群中的各个机器人进行预选,得到至少一个预选机器人;
[0068]
计算模块303,适于针对任一预选机器人,根据预选机器人上报的监控数据计算实时计算分数,以及,对预选机器人的资源利用率趋势进行预测得到预测计算分数;结合预选机器人的实时计算分数和预测计算分数,计算预选机器人的运行压力指数;
[0069]
筛选模块304,适于根据至少一个预选机器人的运行压力指数,优选得到目标机器人;
[0070]
分派模块305,适于将待分派任务分派给目标机器人。
[0071]
可选地,计算模块进一步适于:根据同类型任务的执行历史数据,对预选机器人的资源利用率趋势进行预测得到预测计算分数。
[0072]
可选地,对机器人集群中的各个机器人进行预选,得到至少一个预选机器人进一步包括:
[0073]
根据机器人执行状态及机器人作业类型,对机器人集群中各个机器人进行预选,得到至少一个预选机器人。
[0074]
可选地,装置还包括:接收模块,适于接收机器人发送的窃取任务请求;
[0075]
窃取模块,适于根据窃取任务请求,从失败任务队列中窃取其他机器人运行失败的任务;
[0076]
分派模块还适于:将所窃取的任务分派给该机器人。
[0077]
可选地,装置还包括:添加模块,适于若目标机器人运行待分派任务失败,则将待分派任务添加至失败任务队列中。
[0078]
本发明提供的方案解决了大规模机器人作业时的调度问题,利用多级反馈队列算法,结合运行环境的预选(predicate)和机器人的优选(priority)机制,实现两级筛选机制,最大化利用空闲机器人资源,有效减少作业空等待时长,提升rpa对执行引擎资源的合理分配和高效使用,从而提升机器人集群的整体吞吐量,提高作业执行效率,实现企业降本增效,进一步推动行业智能化。
[0079]
本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的机器人智能调度方法。
[0080]
图4示出了本发明实施例提供的计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
[0081]
如图4所示,该计算设备可以包括:处理器(processor)、通信接口(communications interface)、存储器(memory)、以及通信总线。
[0082]
其中:处理器、通信接口、以及存储器通过通信总线完成相互间的通信。通信接口,用于与其它设备比如客户端或其它服务器等的网元通信。处理器,用于执行程序,具体可以执行上述用于计算设备的机器人智能调度方法实施例中的相关步骤。
[0083]
具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。
[0084]
处理器可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
[0085]
存储器,用于存放程序。存储器可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0086]
程序具体可以用于使得处理器执行上述任意方法实施例中的机器人智能调度方法。程序中各步骤的具体实现可以参见上述机器人智能调度实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
[0087]
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明实施例的内容,并且上面对特定语言所做的描述是为了披露本发明实施例的最佳实施方式。
[0088]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0089]
类似地,应当理解,为了精简本发明实施例并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明实施例要求比在每个权利要求中所明确记载的特征更多的特
征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0090]
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0091]
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0092]
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的一些或者全部部件的一些或者全部功能。本发明实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0093]
应该注意的是上述实施例对本发明实施例进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1