CN114691340A - 基于多级反馈队列的异构多机器人任务调度方法及系统 - Google Patents
基于多级反馈队列的异构多机器人任务调度方法及系统 Download PDFInfo
- Publication number
- CN114691340A CN114691340A CN202210396825.4A CN202210396825A CN114691340A CN 114691340 A CN114691340 A CN 114691340A CN 202210396825 A CN202210396825 A CN 202210396825A CN 114691340 A CN114691340 A CN 114691340A
- Authority
- CN
- China
- Prior art keywords
- task
- robot
- queue
- priority
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Manipulator (AREA)
Abstract
本发明提供了一种基于多级反馈队列的异构多机器人任务调度方法及系统,包括:构建分布式协调框架,并基于构建的分布式协调框架实现多级反馈队列以及机器人系统之间的信息同步;将多级反馈队列状态表划分为多个执行任务优先等级并进行任务状态区分,根据执行情况动态的改变任务等级和任务状态;根据多级反馈队列状态表给异构多机器人调度任务,并根据机器人执行情况动态改变机器人状态信息。本发明解决了在任务时间相差大,任务繁杂且密集的条件下实现异构多机器人合理调度任务的问题,并通过多级反馈队列方法减少了异构多机器人在任务分配不合理,某项任务所需资源太多等问题,提高了在复杂任务场景下对机器人群的合理分配与规划能力。
Description
技术领域
本发明涉及多机器人控制领域,具体地,涉及基于多级反馈队列的异构多机器人任务调度方法及系统。
背景技术
在复杂多变的多任务场景下如无人岛值守场景中的警戒,巡逻,驱离,3C装配场景中搬运、定位、拆卸等任务,单一机器人能完成的工作非常有限,多异构机器人协同工作是实现复杂场景任务的最佳手段之一。多机器人系统通过交流协作和分享信息改进了单个机器人的性能,如个体行为规则简单、工作时间短、有效任务范围小、工作效率低,提高了任务执行的高效率、健壮性、灵活性和容错性,同时涵盖了分布式决策、编队控制、区域覆盖及其相关应用。但是对于多机器人的任务分配和合理调度是一个需要认真操作的问题,如果任务分配不合理,群体协作不统一,则会造成资源浪费,机器人相互干涉,单一任务执行时间太长而使另一短任务无法执行等情况。利用多级反馈队列对多机器人进行任务调度,既可以使长任务得到执行,也不会使执行长时间任务太长而造成短任务一直等待。该方法可以应用在任务多,任务启动时间无法统一,执行时间长短不一,且某一任务复杂可中途停止的场景中,如:汽车装配,仓库存储等,具有简便,易修改的优点。
专利文献CN109917705B(申请号:201910138564.4)公开了一种多任务调度方法,应用于一机器人,机器人中包括多个资源;包括:步骤S1,按顺序依次获取若干个任务的资源调度请求;步骤S2,按照一冲突仲裁策略对当前获取的资源调度请求进行冲突仲裁,以使得当前的资源调度请求得到一调度结果;步骤S3,执行当前的资源调度请求对应的调度结果;步骤S4,重复步骤S2~S3,直到得到并执行最后一个任务的资源调度请求对应的调度结果;步骤S5,结束。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于多级反馈队列的异构多机器人任务调度方法及系统。
根据本发明提供的一种基于多级反馈队列的异构多机器人任务调度方法,包括:
步骤S1:构建分布式协调框架,并基于构建的分布式协调框架实现多级反馈队列以及机器人系统之间的信息同步;
步骤S2:将多级反馈队列划分为多个执行任务优先等级并进行任务状态区分,根据执行情况动态的改变任务等级和任务状态;
步骤S3:根据多级反馈队列给异构多机器人调度任务,并根据机器人执行情况动态改变机器人状态信息。
优选地,所述步骤S1采用:基于zookeeper构建分布式协调框架。
优选地,每个优先等级队列规定的任务执行时间不同,优先级越低执行的时间越长;若在优先级指定时间内未完成任务则把未完成的任务状态设置为未完成,并使当前任务的优先级加1增加到下一级队列中,并修改相应机器人状态为空闲;若在优先级指定时间内完成任务则将完成的任务添加到Q0级队列中,并将状态修改为执行完成,相应的机器人状态更改为空闲。
优选地,所述步骤S2采用:每一个要执行的任务都需要添加在多级反馈队列任务列表中,初始时任务的优先级为Q1,任务状态为未执行,随机分配任务标识,机器人标识号为000。
优选地,所述步骤S3采用:
步骤S3.1:移动机器人为空闲状态并且需要接受任务时,机器人操作系统向分布式协调框架发出搜索请求,分布式协调框架收到搜索请求后准许机器人系统进入优先级为Q1的任务多级反馈列表搜索与对应机器人匹配的任务类型且任务状态为未完成的任务执行;当在优先级在Q1的队列中搜索不成功则搜索优先级为Q2且状态为未完成的任务执行,以此类推直至搜索成功;
步骤S3.2:搜索成功后修改当前移动机器人的状态为工作并标注任务标识号、任务优先级、任务类型,修改当前任务的状态信息为正在执行并标注在机器人标识号,修改完成后将修改后的对列表通过分布式协调框架分布信息并同步至其他机器人系统;
步骤S3.3:在执行任务的过程中,机器人系统循环检查高优先级队列是否有新任务到达,当有新任务到达时,则随机选择正在运动的机器人,将未完成的任务放回队列的队尾,机器人处理高优先级的任务。
优选地,将未完成的任务放回队列的队尾时,当再度运行到当前队列的未完成的任务时,则分配该任务的未完成的时间片。
优选地,所述机器人状态信息包括:机器人标识、机器人类型、机器人状态、任务标识以及任务优先级;
所述多级反馈队列表任务信息包括任务标识、任务优先级、任务类型、任务状态以及机器人标识。
优选地,任务管理、分配、回收由机器人系统处理,机器人间的信息同步,修改列表的原子操作通过分布式协调框架的选举和分布式独享锁功能实现。
根据本发明提供的一种基于多级反馈队列的异构多机器人任务调度系统,包括:
模块M1:构建分布式协调框架,并基于构建的分布式协调框架实现多级反馈队列以及机器人系统之间的信息同步;
模块M2:将多级反馈队列划分为多个执行任务优先等级并进行任务状态区分,根据执行情况动态的改变任务等级和任务状态;
模块M3:根据多级反馈队列给异构多机器人调度任务,并根据机器人执行情况动态改变机器人状态信息。
优选地,所述模块M1采用:基于zookeeper构建分布式协调框架;
每个优先等级队列规定的任务执行时间不同,优先级越低执行的时间越长;若在优先级指定时间内未完成任务则把未完成的任务状态设置为未完成,并使当前任务的优先级加1增加到下一级队列中,并修改相应机器人状态为空闲;若在优先级指定时间内完成任务则将完成的任务添加到Q0级队列中,并将状态修改为执行完成,相应的机器人状态更改为空闲;
所述模块M2采用:每一个要执行的任务都需要添加在多级反馈队列任务列表中,初始时任务的优先级为Q1,任务状态为未执行,随机分配任务标识,机器人标识号为000;
所述模块M3采用:
模块M3.1:移动机器人为空闲状态并且需要接受任务时,机器人操作系统向分布式协调框架发出搜索请求,分布式协调框架收到搜索请求后准许机器人系统进入优先级为Q1的任务多级反馈列表搜索与对应机器人匹配的任务类型且任务状态为未完成的任务执行;当在优先级在Q1的队列中搜索不成功则搜索优先级为Q2且状态为未完成的任务执行,以此类推直至搜索成功;
模块M3.2:搜索成功后修改当前移动机器人的状态为工作并标注任务标识号、任务优先级、任务类型,修改当前任务的状态信息为正在执行并标注在机器人标识号,修改完成后将修改后的对列表通过分布式协调框架分布信息并同步至其他机器人系统;
模块M3.3:在执行任务的过程中,机器人系统循环检查高优先级队列是否有新任务到达,当有新任务到达时,则随机选择正在运动的机器人,把任务放回原队列的队尾,机器人处理高优先级的任务;将未完成的任务放回队列的队尾时,当再度运行到当前队列的未完成的任务时,则分配该任务的未完成的时间片。
与现有技术相比,本发明具有如下的有益效果:
1、本发明基于zookeeper框架进行信息同步,在修改任务信息时为原子操作,避免多机器人同时修改一个任务导致错误的问题,具有设计简便的优点;
2、本发明通过参考计算机进程调度的多级反馈队列算法技术特征,实现了将其应用在异构机器人的多任务调度技术效果,可以解决任务长短类型不一致时,长进程占据时间长,而短任务饥饿现象;
3、本发明通过在任务队列信息参数表和机器人信息参数表中加入任务类型参数的技术特征,实现了区别和记录机器人不同任务的技术效果;
4、本发明通过参考计算机进程调度的多级反馈队列算法技术特征,实现了动态改变优先级的技术效果,以便满足优先级变更需求。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为基于多级反馈队列的异构多机器人任务调度系统示意图。
图2为基于多级反馈队列的异构多机器人任务调度方法流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明涉及多机器人编队控制领域,具体地说是提出了一种基于多级反馈队列的异构多机器人任务调度方法,该方法包括多级反馈队列状态表,分布式协调框架以及异构多机器人系统。其中,多级反馈队列状态表划分了多个执行任务等级并进行状态区分,根据执行情况动态的改变任务等级,分布式协调框架涉及zookeeper,通过zookeeper进行机器人间的信息同步。异构多机器人包括具有移动、抓取或监视等执行功能的不少于3种同属性或异构机器人类别。
在分布式协调框架下,基于多级反馈队列状态表给异构多机器人调度任务的分布式协调过程,通过把任务添加至多级反馈队列过程中利用分布式协调方法来修改任务队列中对应的任务的队列优先级和机器人自身的执行状态来实现任务的合理调度。
例如:在汽车装配中,需要组装不同的零件,需要机器人挑选不同的零件,或者把零件移动到指定位置,,当需要抓取零件组装时就增加一个抓取任务,需要移动零件到指定位置时就增加一个移动任务。空闲的机器人在任务列表中搜寻未执行的任务执行,协助完成汽车装配。
本发明解决了在任务时间相差大,任务繁杂且密集的条件下实现异构多机器人合理调度任务的问题,并通过多级反馈队列方法减少了异构多机器人在任务分配不合理,任务太多机器人数量匮乏,某项任务所需资源太多等问题,提高了系统在复杂任务场景下对机器人群的合理分配与规划能力。
实施例1
根据本发明提供的一种基于多级反馈队列的异构多机器人任务调度方法,如图2所示,包括:包括改变多级反馈队列表的任务状态信息和改变异构多机器人状态信息的调度方法。每个移动机器人系统内存储一份相同的任务多级反馈队列表,根据搜索此反馈队列表给异构多机器人调度任务;
具体地,包括:
步骤S1:构建分布式协调框架,并基于构建的分布式协调框架实现多级反馈队列以及机器人系统之间的信息同步;其中,基于zookeeper构建分布式协调框架。
步骤S2:将多级反馈队列划分为多个执行任务优先等级并进行任务状态区分,根据执行情况动态的改变任务等级和任务状态;
具体地,所述步骤S2采用:每一个要执行的任务都需要添加在多级反馈队列任务列表中,初始时任务的优先级为Q1,任务状态为未执行,随机分配任务标识,机器人标识号为000。初始时机器人的状态为空闲,机器人标识号为固定编号。把当前更新的任务列表通过zookeeper发布消息同步至其他机器人系统。
步骤S3:根据多级反馈队列给异构多机器人调度任务,并根据机器人执行情况动态改变机器人状态信息。
具体地,所述步骤S3采用:
步骤S3.1:移动机器人为空闲状态并且需要接受任务时,机器人操作系统向zookeeper发出搜索请求,zookeeper收到搜索请求后准许机器人系统进入优先级为Q1的任务多级反馈列表搜索与对应机器人匹配的任务类型且任务状态为未完成的任务执行;当在优先级在Q1的队列中搜索不成功则搜索优先级为Q2且状态为未完成的任务执行,以此类推直至搜索成功;
步骤S3.2:搜索成功后修改当前移动机器人的状态为工作并标注任务标识号、任务优先级、任务类型,修改当前任务的状态信息为正在执行并标注在机器人标识号,修改完成后将修改后的对列表通过分布式协调框架分布信息并同步至其他机器人系统;
步骤S3.3:在执行任务的过程中,机器人系统循环检查高优先级队列是否有新任务到达,当有新任务到达时,则随机选择正在运动的机器人,将未完成的任务放回队列的队尾,机器人处理高优先级的任务;将未完成的任务放回队列的队尾时,当再度运行到当前队列的未完成的任务时,则分配该任务的未完成的时间片。换而言之,任何时刻,只有当第Q1~Qi-1队列全部为空时,才会去执行第Qi队列的进程。
具体地,每个优先等级队列规定的任务执行时间不同,优先级越低执行的时间越长;若在优先级指定时间内未完成任务则把未完成的任务状态设置为未完成,并使当前任务的优先级加1增加到下一级队列中,并修改相应机器人状态为空闲;若在优先级指定时间内完成任务则将完成的任务添加到Q0级队列中,并将状态修改为执行完成,相应的机器人状态更改为空闲。修改完成后把修改后的队列表通过分布式协调框架zookeeper发布消息同步至其他机器人系统。给机器人调度任务先从优先级为Q1的任务队列搜索,此优先级没有任务在从下一个优先级队列搜索,同一优先级按照先来先服务的原则排队。在最后一个队列的QN的各个进程按照时间片轮转分配时间片调度。
具体地,所述机器人状态信息包括:机器人标识、机器人类型、机器人状态、任务标识以及任务优先级;
机器人标识 | 机器人类型 | 机器人状态 | 任务标识 | 任务优先级 |
007 | 4 | 工作 | 0002 | Q1 |
机器人标识 | 机器人类型 | 机器人状态 | 任务标识 | 任务优先级 |
005 | 2 | 工作 | 0018 | Q1 |
机器人标识 | 机器人类型 | 机器人状态 | 任务标识 | 任务优先级 |
023 | 3 | 工作 | 0029 | Q2 |
机器人标识 | 机器人类型 | 机器人状态 | 任务标识 | 任务优先级 |
012 | 1 | 工作 | 0003 | Q2 |
所述机器人状态为工作,空闲两种状态。机器人类型值为1代表为抓取机器人,类型值为2代表为移动机器人,类型值为3代表为监视机器人,类型值为代4表为搜索机器人。
所述多级反馈队列表任务信息包括任务标识、任务优先级、任务类型、任务状态以及机器人标识。
任务标识 | 任务优先级 | 任务类型 | 任务状态 | 机器人标识 |
0001 | Q0 | 2 | 已完成 | 006 |
0002 | Q1 | 4 | 正在执行 | 007 |
0018 | Q1 | 2 | 正在执行 | 005 |
0029 | Q2 | 3 | 正在执行 | 023 |
0003 | Q2 | 1 | 正在执行 | 012 |
0022 | Q3 | 4 | 未完成 | 023 |
所述任务状态为未执行,正在执行,执行完成三种状态。所述优先级为Q0,Q1,Q2……QN。
所述机器人搜索成功修改任务列表的状态操作为原子操作,在执行过程不允许被打断,修改成功后的机器人列表信息同步由zookeeper实现。
所述任务管理,分配,回收由机器人系统处理,机器人间的信息同步,修改列表的原子操作通过分布式协调框架zookeeper的选举和分布式独享锁功能实现。
根据本发明提供的一种基于多级反馈队列的异构多机器人任务调度系统,如图1所示,包括:包括改变多级反馈队列表的任务状态信息和改变异构多机器人状态信息的调度方法。每个移动机器人系统内存储一份相同的任务多级反馈队列表,根据搜索此反馈队列表给异构多机器人调度任务;
具体地,包括:
模块M1:构建分布式协调框架,并基于构建的分布式协调框架实现多级反馈队列以及机器人系统之间的信息同步;其中,基于zookeeper构建分布式协调框架。
模块M2:将多级反馈队列划分为多个执行任务优先等级并进行任务状态区分,根据执行情况动态的改变任务等级和任务状态;
具体地,所述模块M2采用:每一个要执行的任务都需要添加在多级反馈队列任务列表中,初始时任务的优先级为Q1,任务状态为未执行,随机分配任务标识,机器人标识号为000。初始时机器人的状态为空闲,机器人标识号为固定编号。把当前更新的任务列表通过zookeeper发布消息同步至其他机器人系统。
模块M3:根据多级反馈队列给异构多机器人调度任务,并根据机器人执行情况动态改变机器人状态信息。
具体地,所述模块M3采用:
模块M3.1:移动机器人为空闲状态并且需要接受任务时,机器人操作系统向zookeeper发出搜索请求,zookeeper收到搜索请求后准许机器人系统进入优先级为Q1的任务多级反馈列表搜索与对应机器人匹配的任务类型且任务状态为未完成的任务执行;当在优先级在Q1的队列中搜索不成功则搜索优先级为Q2且状态为未完成的任务执行,以此类推直至搜索成功;
模块M3.2:搜索成功后修改当前移动机器人的状态为工作并标注任务标识号、任务优先级、任务类型,修改当前任务的状态信息为正在执行并标注在机器人标识号,修改完成后将修改后的对列表通过分布式协调框架分布信息并同步至其他机器人系统;
模块M3.3:在执行任务的过程中,机器人系统循环检查高优先级队列是否有新任务到达,当有新任务到达时,则随机选择正在运动的机器人,将未完成的任务放回队列的队尾,机器人处理高优先级的任务;将未完成的任务放回队列的队尾时,当再度运行到当前队列的未完成的任务时,则分配该任务的未完成的时间片。换而言之,任何时刻,只有当第Q1~Qi-1队列全部为空时,才会去执行第Qi队列的进程。
具体地,每个优先等级队列规定的任务执行时间不同,优先级越低执行的时间越长;若在优先级指定时间内未完成任务则把未完成的任务状态设置为未完成,并使当前任务的优先级加1增加到下一级队列中,并修改相应机器人状态为空闲;若在优先级指定时间内完成任务则将完成的任务添加到Q0级队列中,并将状态修改为执行完成,相应的机器人状态更改为空闲。修改完成后把修改后的队列表通过分布式协调框架zookeeper发布消息同步至其他机器人系统。给机器人调度任务先从优先级为Q1的任务队列搜索,此优先级没有任务在从下一个优先级队列搜索,同一优先级按照先来先服务的原则排队。在最后一个队列的QN的各个进程按照时间片轮转分配时间片调度。
具体地,所述机器人状态信息包括:机器人标识、机器人类型、机器人状态、任务标识以及任务优先级;
机器人标识 | 机器人类型 | 机器人状态 | 任务标识 | 任务优先级 |
007 | 4 | 工作 | 0002 | Q1 |
机器人标识 | 机器人类型 | 机器人状态 | 任务标识 | 任务优先级 |
005 | 2 | 工作 | 0018 | Q1 |
机器人标识 | 机器人类型 | 机器人状态 | 任务标识 | 任务优先级 |
023 | 3 | 工作 | 0029 | Q2 |
机器人标识 | 机器人类型 | 机器人状态 | 任务标识 | 任务优先级 |
012 | 1 | 工作 | 0003 | Q2 |
所述机器人状态为工作,空闲两种状态。机器人类型值为1代表为抓取机器人,类型值为2代表为移动机器人,类型值为3代表为监视机器人,类型值为代4表为搜索机器人。
所述多级反馈队列表任务信息包括任务标识、任务优先级、任务类型、任务状态以及机器人标识。
任务标识 | 任务优先级 | 任务类型 | 任务状态 | 机器人标识 |
0001 | Q0 | 2 | 已完成 | 006 |
0002 | Q1 | 4 | 正在执行 | 007 |
0018 | Q1 | 2 | 正在执行 | 005 |
0029 | Q2 | 3 | 正在执行 | 023 |
0003 | Q2 | 1 | 正在执行 | 012 |
0022 | Q3 | 4 | 未完成 | 023 |
所述任务状态为未执行,正在执行,执行完成三种状态。所述优先级为Q0,Q1,Q2……QN。
所述机器人搜索成功修改任务列表的状态操作为原子操作,在执行过程不允许被打断,修改成功后的机器人列表信息同步由zookeeper实现。
所述任务管理,分配,回收由机器人系统处理,机器人间的信息同步,修改列表的原子操作通过分布式协调框架zookeeper的选举和分布式独享锁功能实现。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种基于多级反馈队列的异构多机器人任务调度方法,其特征在于,包括:
步骤S1:构建分布式协调框架,并基于构建的分布式协调框架实现多级反馈队列以及机器人系统之间的信息同步;
步骤S2:将多级反馈队列划分为多个执行任务优先等级并进行任务状态区分,根据执行情况动态的改变任务等级和任务状态;
步骤S3:根据多级反馈队列给异构多机器人调度任务,并根据机器人执行情况动态改变机器人状态信息。
2.根据权利要求1所述的基于多级反馈队列的异构多机器人任务调度方法,其特征在于,所述步骤S1采用:基于zookeeper构建分布式协调框架。
3.根据权利要求1所述的基于多级反馈队列的异构多机器人任务调度方法,其特征在于,每个优先等级队列规定的任务执行时间不同,优先级越低执行的时间越长;若在优先级指定时间内未完成任务则把未完成的任务状态设置为未完成,并使当前任务的优先级加1增加到下一级队列中,并修改相应机器人状态为空闲;若在优先级指定时间内完成任务则将完成的任务添加到Q0级队列中,并将状态修改为执行完成,相应的机器人状态更改为空闲。
4.根据权利要求1所述的基于多级反馈队列的异构多机器人任务调度方法,其特征在于,所述步骤S2采用:每一个要执行的任务都需要添加在多级反馈队列任务列表中,初始时任务的优先级为Q1,任务状态为未执行,随机分配任务标识,机器人标识号为000。
5.根据权利要求1所述的基于多级反馈队列的异构多机器人任务调度方法,其特征在于,所述步骤S3采用:
步骤S3.1:移动机器人为空闲状态并且需要接受任务时,机器人操作系统向分布式协调框架发出搜索请求,分布式协调框架收到搜索请求后准许机器人系统进入优先级为Q1的任务多级反馈列表搜索与对应机器人匹配的任务类型且任务状态为未完成的任务执行;当在优先级在Q1的队列中搜索不成功则搜索优先级为Q2且状态为未完成的任务执行,以此类推直至搜索成功;
步骤S3.2:搜索成功后修改当前移动机器人的状态为工作并标注任务标识号、任务优先级、任务类型,修改当前任务的状态信息为正在执行并标注在机器人标识号,修改完成后将修改后的对列表通过分布式协调框架分布信息并同步至其他机器人系统;
步骤S3.3:在执行任务的过程中,机器人系统循环检查高优先级队列是否有新任务到达,当有新任务到达时,则随机选择正在运动的机器人,将未完成的任务放回队列的队尾,机器人处理高优先级的任务。
6.根据权利要求1所述的基于多级反馈队列的异构多机器人任务调度方法,其特征在于,将未完成的任务放回队列的队尾时,当再度运行到当前队列的未完成的任务时,则分配该任务的未完成的时间片。
7.根据权利要求1所述的基于多级反馈队列的异构多机器人任务调度方法,其特征在于,所述机器人状态信息包括:机器人标识、机器人类型、机器人状态、任务标识以及任务优先级;
所述多级反馈队列表任务信息包括任务标识、任务优先级、任务类型、任务状态以及机器人标识。
8.根据权利要求1所述的基于多级反馈队列的异构多机器人任务调度方法,其特征在于,任务管理、分配、回收由机器人系统处理,机器人间的信息同步,修改列表的原子操作通过分布式协调框架的选举和分布式独享锁功能实现。
9.一种基于多级反馈队列的异构多机器人任务调度系统,其特征在于,包括:
模块M1:构建分布式协调框架,并基于构建的分布式协调框架实现多级反馈队列以及机器人系统之间的信息同步;
模块M2:将多级反馈队列划分为多个执行任务优先等级并进行任务状态区分,根据执行情况动态的改变任务等级和任务状态;
模块M3:根据多级反馈队列给异构多机器人调度任务,并根据机器人执行情况动态改变机器人状态信息。
10.根据权利要求9所述的基于多级反馈队列的异构多机器人任务调度系统,其特征在于,所述模块M1采用:基于zookeeper构建分布式协调框架;
每个优先等级队列规定的任务执行时间不同,优先级越低执行的时间越长;若在优先级指定时间内未完成任务则把未完成的任务状态设置为未完成,并使当前任务的优先级加1增加到下一级队列中,并修改相应机器人状态为空闲;若在优先级指定时间内完成任务则将完成的任务添加到Q0级队列中,并将状态修改为执行完成,相应的机器人状态更改为空闲;
所述模块M2采用:每一个要执行的任务都需要添加在多级反馈队列任务列表中,初始时任务的优先级为Q1,任务状态为未执行,随机分配任务标识,机器人标识号为000;
所述模块M3采用:
模块M3.1:移动机器人为空闲状态并且需要接受任务时,机器人操作系统向分布式协调框架发出搜索请求,分布式协调框架收到搜索请求后准许机器人系统进入优先级为Q1的任务多级反馈列表搜索与对应机器人匹配的任务类型且任务状态为未完成的任务执行;当在优先级在Q1的队列中搜索不成功则搜索优先级为Q2且状态为未完成的任务执行,以此类推直至搜索成功;
模块M3.2:搜索成功后修改当前移动机器人的状态为工作并标注任务标识号、任务优先级、任务类型,修改当前任务的状态信息为正在执行并标注在机器人标识号,修改完成后将修改后的对列表通过分布式协调框架分布信息并同步至其他机器人系统;
模块M3.3:在执行任务的过程中,机器人系统循环检查高优先级队列是否有新任务到达,当有新任务到达时,则随机选择正在运动的机器人,把任务放回原队列的队尾,机器人处理高优先级的任务;将未完成的任务放回队列的队尾时,当再度运行到当前队列的未完成的任务时,则分配该任务的未完成的时间片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210396825.4A CN114691340A (zh) | 2022-04-15 | 2022-04-15 | 基于多级反馈队列的异构多机器人任务调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210396825.4A CN114691340A (zh) | 2022-04-15 | 2022-04-15 | 基于多级反馈队列的异构多机器人任务调度方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114691340A true CN114691340A (zh) | 2022-07-01 |
Family
ID=82142491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210396825.4A Pending CN114691340A (zh) | 2022-04-15 | 2022-04-15 | 基于多级反馈队列的异构多机器人任务调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114691340A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115170004A (zh) * | 2022-09-08 | 2022-10-11 | 江西省智能产业技术创新研究院 | 多系统混合调度方法、系统、计算机及可读存储介质 |
CN117076091A (zh) * | 2023-10-12 | 2023-11-17 | 宁波银行股份有限公司 | 一种多引擎池调度方法及装置、电子设备及存储介质 |
-
2022
- 2022-04-15 CN CN202210396825.4A patent/CN114691340A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115170004A (zh) * | 2022-09-08 | 2022-10-11 | 江西省智能产业技术创新研究院 | 多系统混合调度方法、系统、计算机及可读存储介质 |
CN117076091A (zh) * | 2023-10-12 | 2023-11-17 | 宁波银行股份有限公司 | 一种多引擎池调度方法及装置、电子设备及存储介质 |
CN117076091B (zh) * | 2023-10-12 | 2024-01-26 | 宁波银行股份有限公司 | 一种多引擎接口调度方法及装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108920261B (zh) | 一种适于大规模并行数据处理任务的两级自适应调度方法 | |
CN114691340A (zh) | 基于多级反馈队列的异构多机器人任务调度方法及系统 | |
Koole et al. | Resource allocation in grid computing | |
US6829764B1 (en) | System and method for maximizing usage of computer resources in scheduling of application tasks | |
CN111782355B (zh) | 一种基于混合负载的云计算任务调度方法及系统 | |
CN102096599A (zh) | 一种多队列任务调度方法及相关系统和设备 | |
CN110888407B (zh) | 一种agv调度系统中的任务分配方法及装置 | |
CN110611707A (zh) | 一种任务调度的方法及装置 | |
CN114153580A (zh) | 一种跨多集群的工作调度方法及装置 | |
CN111176812A (zh) | 一种集群化定时任务调度系统 | |
Wang et al. | Real-time scheduling based on nonblocking supervisory control of state-tree structures | |
CN116010064A (zh) | Dag作业调度和集群管理的方法、系统及装置 | |
CN116739321B (zh) | 一种运输任务调度方法和系统 | |
CN117875641A (zh) | 冷轧厂的钢卷运输任务分配方法、装置及设备 | |
CN116760784A (zh) | 一种基于优先级及运行时间的opc ua关键消息调度方法 | |
CN116089033A (zh) | 一种基于多级异构动态队列的任务调度方法 | |
De Sousa et al. | Finite-time consensus and readjustment three-stage filter for predictive schedules in fms | |
CN110780869A (zh) | 一种分布式批量调度 | |
CN101014176A (zh) | 通信网管系统中一种基于优先级时间链表的采集调度方法 | |
CN116069461A (zh) | 动态分片的自适应任务调度方法和系统 | |
CN102508720A (zh) | 一种提高前处理模块和后处理模块效率的方法及系统 | |
CN114489970A (zh) | Kubernetes中利用Coscheduling插件实现队列排序的方法及系统 | |
CN115712572A (zh) | 任务的测试方法、装置、存储介质及电子装置 | |
CN113010290A (zh) | 一种任务管理方法、装置、设备及存储介质 | |
CN115237604B (zh) | 一种多任务射频系统的实时资源调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |