日常养老情境的异构多机器人动态多任务分配
Dynamic multi-task allocation of heterogeneous multi-robots for daily elderly care scenarios
收稿日期: 2021-10-28
基金资助: |
|
Received: 2021-10-28
Fund supported: | 辽宁省自然科学基金资助项目(2019-ZD-0205);辽宁省教育厅资助项目(LJKZ0130) |
作者简介 About authors
李勇(1980—),男,副教授,博士,从事系统建模与多目标优化和机器学习研究.orcid.org/0000-0002-3098-6363.E-mail:
针对异构多机器人系统动态任务分配问题,基于多智能体技术,利用符合养老情境特点的多智能体组织结构,提出处理养老情境下任务类型相对固定的异构多机器人多任务动态分配机制. 建立基于被服务对象满意度函数的投标值计算模型,兼顾多任务的动态分配与被服务对象的满意度. 根据拓扑排序算法,提出多智能体系统死锁的检测及处理方法,解决执行智能体自锁、各执行智能体间互锁的问题. 对不同任务情况在不同分配机制下的被服务对象满意度进行仿真. 仿真结果表明,在避免死锁的情况下,所提机制能够兼顾养老情景下的动态任务分配和被服务对象的满意度.
关键词:
Aiming at the dynamic task assignment of heterogeneous multi-robot systems for elderly care scenarios, a dynamic multi-task allocation mechanism for the nursing home scenario was proposed with relatively fixed types of tasks, using the multi-agent organizational structure that conformed to the characteristics of the elderly care situation, based on multi-agent technology. A bid value calculation model based on the satisfaction function of the served was established, which not only completed the dynamic multi-tasks allocation, but also improved the satisfaction of the served. According to the topological sorting algorithm, a method of deadlock detection and remedy for multi-agent system was proposed, and the problems of self-locking and interlocking among agents were solved. The satisfaction of the served object under different task conditions and different allocation mechanisms was simulated. Simulation results shows the proposed dynamic task assignment mechanism for heterogeneous multi-service robot system can complete the dynamic task assignment without deadlock, and at the same time take into account the satisfaction of the served.
Keywords:
本文引用格式
李勇, 柳富强, 孙柏青, 张秋豪, 杨俊友.
LI Yong, LIU Fu-qiang, SUN Bai-qing, ZHANG Qiu-hao, YANG Jun-you.
Das等[6]提出应用于异构多机器人系统的分布式任务分配方案,采用并行拍卖及协商一致机制分配护理任务. 该方案中的服务机器人基于任务的优先级及自身状态对任务进行投标,通过协商一致算法确定任务分配方案. 虽然该方案可以有效解决动态环境下的任务分配问题,但这些任务都是可以由1个机器人完成的,并未考虑异构服务机器人的协作问题. Hunt等[7]提出基于协商一致分组算法的多智能体协作任务分配方案. 该方案基于协商一致的打包算法提出多个异构机器人的组队机制,将单个任务分配给多个异构智能体相互协作. Lee[8]充分考虑机器人在任务执行过程中自身资源消耗对新任务分配的影响,提出机器人个体资源限制的任务分配算法. 该算法中的多机器人系统采用分布式组织结构并基于市场机制的任务拍卖算法分配任务,研究者为执行智能体设置自身资源约束,该约束影响着机器人的任务执行效果. 上述任务分配算法虽然较全面地解决了多机器人系统任务分配中的问题,但未考虑多异构机器人协作存在严格先后约束的任务情况。为此,Tereshchuk等[9]提出柔性任务进程约束的多机器人调度规划方法. 考虑到在飞机装配生产线上,不同组装工序有不同的工具需求,任务分配需要进行不同工序的有限顺序,研究者提出将基于市场机制的任务拍卖算法与机器学习算法结合的任务分配方案,确定了最节约时间的装配工序. Lee等[8-9]均未考虑当服务对象为人时,人的主观感受. 李勇等[10]提出智能体Petri网融合的多机器人-多任务协调框架. 该框架对养老机构中服务机器人执行任务的过程建模;考虑被服务对象的个人主观因素差异,提出满意度模型,并基于满意度模型得出使被服务对象总体满意度最大的任务执行顺序. 在处理异构服务机器人时,该框架将处于相同任务的机器人进行“捆绑”,直至任务完成. 此外,该框架无法动态分配养老情景中不断出现的新任务.
本研究基于多智能体的异构多服务机器人系统(heterogeneous multi service robot system based on multi-agent,HMSRMA)提出动态任务分配机制,对类型相对固定的异构多机器人的多个任务进行动态分配;以满意度函数为基础,建立投标值计算模型;根据拓扑排序算法提出智能体自身、智能体间的死锁检测及处理方法.
1. HMSRMA
多智能体系统应具有较好的稳定性和可扩展性:1)功能分解待执行任务,2)将任务分配给具有不同服务能力的智能体进行任务协商. HMSRMA采用分布式和集中式结构相结合的组织结构.
中央智能体负责任务分解. 根据任务调研结果,分解养老机构中日常出现的被服务对象需求并建立任务库. 基于各子任务间的时序关系与机器人功能,将养老院频繁出现的任务分解成多个子任务. 养老院中出现较为频繁的3种任务为被服务对象吃饭、去卫生间、摔倒救援,子任务分解为拉/放、运送、拉/放. 本研究以吃饭、摔倒救援为例进行分析. 中央智能体还负责发布待执行子任务,对各执行智能体分布协商出的任务分配方案进行互锁检测与解锁.
执行智能体采用分布式架构。该类智能体给出各子任务的投标值并协商确定任务执行方案,进行自锁检测与解锁后,将任务执行方案发送给中央智能体. 在本研究中1个执行智能体对应于一类服务机器人中的1个. 如图1所示,执行智能体主要有2类:1)实现拉起和放下被服务对象功能的人形护理机器人(assistance robot,AR),2)实现运送被服务对象功能的智能轮椅机器人(wheelchair robot,WR). 系统中AR、WR的数量由任务分配过程是否进行自适应调节确定. 在任务分配过程中,若出现当前智能体数无法完成当前任务数的情况,可以增加一定量的智能体.
图 1
2. 养老情景下HMSRMA的动态任务分配机制
区别于其他情境,养老机构中的任务分配具有以下特点. 1)任务类型相对固定,被服务对象每天的生活需求内容有限;2)任务多为并发,同时刻会出现多个被服务对象提出多个需求的情况;3)养老机构为动态环境,被服务对象的需求随机出现. 为此,提出的动态任务分配机制描述如下.
1)设定固定时间间隔作为时间窗口. 每经过1个时间窗口,中央智能体收集当前时间窗口内新产生的任务需求,根据任务分解机制将这些任务分解为多个子任务,将子任务连续发布给所有的执行智能体.
2)各执行智能体分别依次接收子任务,根据自身功能约束
3)执行智能体进行信息交换,确定赢得该子任务的执行智能体,并更新自身的任务执行序列
4)中央智能体基于拓扑排序算法对更新后的任务执行序列进行互锁检测和解锁,并判断成功与否. 当解锁失败次数达到阈值(本研究设定为3),将当前时间窗口内任务优先级最低的任务移至下个时间窗口,并将优先级提升1级. 如果最低优先级任务数大于1,则根据任务需求提出的时刻,选择后提出的低优先级任务.
时间窗口触发的动态任务分配机制在某一时间窗口的流程如图2所示.
图 2
2.1. 执行智能体任务序列与投标值计算模型
式中:M为待处理子任务数,N为执行这些子任务的服务机器人数,
式中:
式中:D为执行智能体本地任务序列中第n个子任务与第(n−1)个子任务间的距离;
兼顾整体与个体的投标值计算模型为
式中:
2.2. 多执行智能体间的分布协商机制
新的子任务投标结束后,所有执行智能体进行分布式协商以确定投标值最大的智能体. 为了方便执行智能体存储本地投标信息,引入任务向量
式中:
图 3
图 3 执行智能体间协商算法的流程图
Fig.3 Flow chart of negotiation algorithm between executing agents
2.3. 死锁的检测及处理
引入基于拓扑排序算法(topological sort)的死锁检测与解锁算法[18]. 该算法基于任务时序优先级图(task precedence graph,TPG). TPG由任务执行子图(task executing subgraph, TESG)和任务约束子图(task constraint subgraph, TCSG)构成. 其中TESG反应执行智能体本地任务执行序列的约束,TCSG反应1个服务任务包含的子任务时序约束. 使用拓扑排序算法对TPG排序,判断任务分配方案是否存在死锁,若存在,则调整存在死锁的执行智能体任务序列.
2.3.1. 执行智能体自锁的检测及解锁
如图4所示,基于自锁检测算法检测各执行智能体的本地任务序列,若存在自锁,则执行如下解锁流程. 1)改变本地任务执行序列中的子任务执行顺序,采用遍历法生成所有可能的新的本地任务序列集1. 2)基于拓扑排序算法检测集1中各个序列是否存在自锁。删除自锁序列后,得到本地任务序列集2. 3)执行智能体计算集2每个序列的满意度和. 4)选择某个满意度和最大序列作为该执行智能体解锁后的本地任务执行序列.
图 4
2.3.2. 中央智能体对多执行智能体间互锁的检测及解锁
若多智能体间出现互锁,往往仅需调整某个智能体的任务序列,为此需要准确定位死锁的任务节点. 由于各执行智能体中只包含局部任务分配信息,采用基于拓扑排序算法检测全局分配方案须在中央智能体中运行. 若某种任务分配方案存在互锁,则其任务时序优先级图中存在强连通分量(strongly connected components,SCC),SCC与TESG的交集构成可变子图. 可变子图可以调整,且包含死锁子任务节点间的有向边,由此实现对死锁节点的准确定位. 通过转置可变子图的邻接矩阵得到无锁子任务间的依赖关系,再由新的任务时序优先级图得到调整后的执行智能体本地任务执行序列.
为了提高多机协作机制的决策效率,对任务分配结果中的互锁问题进行多次解锁操作. 当多智能体系统某次出现死锁并进行解锁后,更新本地任务执行序列,再次检测解锁后的任务分配方案是否解锁成功. 在任务分配机制流程中,死锁情况下最低优先级的任务被移至下个时间窗口后,与该时间窗口中被服务对象提出的新需求一起进行新的任务分配. 此时,该时间窗口下的任务序列若依然出现死锁,则与前个时间窗口下的解锁流程进行相同的解锁操作,以此类推. 若多次解锁操作失败,说明对于现有规模的多执行智能体来说,须处理的任务规模太大。引入空闲的备用资源或减少当前时间窗口下多智能体系统接受的任务数,使系统正常运行(在养老机构中,通常不会有空闲机器人,多数情况下采用减少任务规模的方式)后,更新多智能体系统执行方案中的任务池.
3. 仿真分析
3.1. 虚拟养老机构环境的建立
如图5所示为仿真场景各房间及固定点坐标。其中 A(10,10)、B(25,5)、C(25,15)、D(25,25)、E(25,35)、F(15,35)、G(15,25),食堂(5,35),卫生间(5,25),T1(35,5)、T2(35,15)、T3(35,25)、T4(35,35),上述信息均存储在各执行智能体中.
图 5
为了简化研究,规定起始点、被服务对象的房间、卫生间等仿真场景都有对应的固定点,即点A、B、C等. 在不考虑执行智能体间碰撞问题的前提下,将所有智能体均视为点,设系统初始状态的执行智能体均处于点A位置. 以任务T1智能体AR为例,在初始状态下,当某个执行智能体收到任务并要前往该任务所在位置时,AR确定当前所处位置坐标点A,确定点B为T1任务位置对应的固定点,则AR在当前位置沿直线AB行驶至点B,再从点B直线行驶到点T1. 在非初始状态下,执行智能体按照其自身任务序列前往下个任务所在位置时(执行完T3,后序任务为T4),AR确定当前所处位置坐标点T3,确定点D为T3任务位置对应的固定点,确定点E为T4任务位置对应的固定点. 则AR从点T3沿直线行驶到点D,再从点D直线行驶到点E,由点E直线行驶到点T4. 以此类推,所有智能体均按上述机制行驶.
3.2. 仿真实验
3.2.1. 同一时间窗口内同时出现多个任务
设多智能体系统由1个中央智能体及4个执行智能体组成,执行智能体的编号分别为AR1(技能为拉/放,空载速度1 m/s,服务时间20 s)、AR2(技能为拉/放,空载速度1 m/s,服务时间15 s)、WR1(技能为运送,空载速度1.5 m/s,服务速度0.6 m/s)、WR2(技能为运送,空载速度1.8 m/s,服务速度0.5 m/s). 在该情况中模拟1个任务收集时间窗口内同时出现2个同类型任务的情况,设时间窗口为60 s,此时多执行智能体系统在点A位置,各智能体的本地任务执行序列为空. 任务的具体信息如下:任务T1,位置为(35,5),任务类型为吃饭,任务优先级为1,被服务对象性格急躁系数为1.1,最大忍受等待时间为70 s;任务T2,位置为(35,15),任务类型为吃饭,优先级为1,老人急躁系数为1.2,最大忍受等待时间为75 s. 服务任务的子任务信息如表1所示.
表 1 服务任务T1和T2的子任务信息
Tab.1
子任务标号 | 所需技能 | | |
T1_1 | 拉/放 | 18 | — |
T1_2 | 运送 | — | 0.6 |
T1_3 | 拉/放 | 15 | — |
T2_1 | 拉/放 | 20 | — |
T2_2 | 运送 | — | 0.7 |
T2_3 | 拉/放 | 17 | — |
如表2所示为各智能体对子任务的投标值. 表中,不带括号的投标值为当
表 2 执行智能体对各子任务的投标值
Tab.2
子任务标号 | | |||
AR1 | AR2 | WR1 | WR2 | |
T1_1 | 0.087 0 (7.074×10−5) | 0.112 0 (0.073) | 0(0) | 0(0) |
T1_2 | 0(0) | 0(0) | 0.054 (3.002×10−5) | 0.056 0 (0.602) |
T1_3 | 0.0006 (6.833×10−5) | 0.0005 (−1.261) | 0(0) | 0(0) |
T2_1 | 0.0001 (8.187×10−5) | 0.018 0 (0.012) | 0(0) | 0(0) |
T2_2 | 0(0) | 0(0) | 0.010 (3.680×10−5) | 0.0004 (3.679×10−5) |
T2_3 | 0.0002 (7.947×10−4) | 0.0006 (−1.214) | 0(0) | 0(0) |
为了进一步证明多异构服务机器人协作机制可以提高被服务对象的满意度,分别采用先到先得及随机分配机制,进行养老服务任务的分配并计算完成各子任务时被服务对象的满意度. 先到先得机制的任务分配结果:AR1的本地任务执行序列为(T1_1, T2_1),AR2的本地任务执行序列为(T1_3, T2_3),WR1的本地任务执行序列为(T1_2),WR2的本地任务执行序列为(T2_2). 按该方案执行任务时,T1_1、T1_2、T1_3、T2_1、T2_2、T2_3的满意度分别为0.087、0.014、4.421×10−5、8.837×10−6、1.701×10−6、8.204×10−9 ,总体满意度为0.101. 随机机制的任务分配结果:AR1的本地任务序列为(T2_1, T1_3),AR2的本地任务序列为(T1_1, T2_3),WR1的本地任务序列为(T2_2),WR2的本地任务序列为(T1_2),按该方案执行任务时,T1_1、T1_2、T1_3、T2_1、T2_2、T2_3的满意度分别为9.243×10−6、1.877×10−6、2.678×10−9、0.106、0.006,0.001×10−1.
各种分配机制下各子任务的满意度对比图如图6所示. 图中,机制1)表示
图 6
图 6 多种分配机制的子任务满意度对比折线图
Fig.6 Comparison of subtask satisfaction with multiple allocation mechanisms
提出任务需求的2个被服务对象满意度对比图如图7所示. 可以看出,不采用本研究所提机制进行分配时,会出现总体满意度和个体满意度很小的情况. 使用本研究所提机制时, 机制1)偏重总体满意度,机制2)偏重提升个体满意度的最小值. 因此,可以根据使用者偏好,调整投标值函数中的
图 7
3.2.2. 不同时间窗口内出现任务
假设在前个任务收集时间窗口完成的下个时间窗口内出现新任务T3,将T3定义为摔倒救援任务,任务优先级为最高,T3的具体信息如下:任务位置为(5,25),任务优先级为4,被服务对象的性格急躁系数为1.2,最大可忍受等待时间为50 s. T3所包含的子任务为T3_1(所需技能为拉/放,最佳服务时间为16 s),T3_2(所需技能为运送,最佳服务速度为0.5 m/s),T3_3(所需技能为拉/放,最佳服务时间为15 s). T3出现时,多智能体系统完成上个时间窗口的任务T1、T2的分配,各智能体状态已经改变,基于新的状态,各智能体对T3中子任务的投标结果如表3所示. 分配结果:AR1的任务执行序列(T1_3),AR2的任务执行序列(T3_1, T2_3, T3_3),WR1的任务执行序列(T2_2),WR2的任务执行序列为(T3_2). 可以看出, 当T3出现时,上个时间窗口任务的子任务T1_1已完成,T1_2、T2_1正在执行,因此更新智能体本地序列。根据执行智能体状态可知,此时AR1、WR1为锁定状态,无法投标新任务,因此其投标值为0. 同时高优先级任务的子任务总是处于任务序列靠前的位置.
表 3 执行智能体对T3中子任务的投标值
Tab.3
子任务标号 | | |||
AR1 | AR2 | WR1 | WR2 | |
T3_1 | 0 | 6.523×10−3 | 0 | 0 |
T3_2 | 0 | 0 | 0 | 8.566×10−4 |
T3_3 | 0 | 6.983×10−4 | 0 | 0 |
3.2.3. 死锁
通过模拟实验验证同个时间窗口出现大规模(相对于智能体数量)需求时,本研究所提机制的有效性. 在某时间窗口内出现任务T1、T2的基础上,将该时间窗口内出现的任务数增加到4个,即T1、T2、T4、T5. T4的具体信息如下:位置为(35,25),任务类型为吃饭,优先级为1,被服务对象的性格急躁系数为1.1,最大忍受等待时间为70 s. T5的具体信息如下:任务位置为(35,35),任务类型为吃饭,优先级为1,被服务对象的性格急躁系数为1.0,最大忍受等待时间为75 s. 子任务信息如表4所示. 此时子任务总数为12个,仅有4个执行智能体,每个智能体的子任务数量较多.
表 4 服务任务T4和T5的子任务信息
Tab.4
子任务标号 | 所需技能 | | |
T4_1 | 拉/放 | 19 | — |
T4_2 | 运送 | — | 0.5 |
T4_3 | 拉/放 | 18 | — |
T5_1 | 拉/放 | 16 | — |
T5_2 | 运送 | — | 0.7 |
T5_3 | 拉/放 | 15 | — |
当基于未添加死锁处理及预防机制的多机协作机制进行任务分配时,分配结果如下:AR1的本地任务执行序列为T1_3, T2_1, T4_1, T4_3, T5_1;AR2的本地任务执行序列为T2_3, T1_1, T5_3;WR1的本地任务执行序列为T1_2, T2_2;WR2的本地任务执行序列为T4_2, T5_2. 当同个时间窗口出现4个任务时,AR1 本地序列的第1个子任务及 AR2 本地任务序列中第1个子任务均有2个前件子任务,它们的首个前件子任务又不在对方本地序列的第1位,这使 AR1 、AR2 陷入无限等待,因此该方案无法运行. 死锁处理后任务分配结果如下:AR1的本地任务执行序列为T1_3, T2_1, T4_1, T4_3, T5_1;AR2的本地任务执行序列为T1_1, T2_3, T5_3;WR1的本地任务执行序列为T1_2, T2_2;WR2的本地任务执行序列为T4_2, T5_2. 即经过处理后,AR2先执行子任务T1_1(AR1中第1个任务的前件子任务),便不会出现死锁. 可以看出,在为本研究所提机制增加互锁的处理及预防功能后,得出了可以正常执行的无锁任务分配方案.
4. 结 语
本研究基于多智能体系统,针对养老情景下的异构多服务机器人任务分配问题,提出动态任务分配机制. 以被服务对象的满意度函数为基础,建立投标值计算模型,在完成养老情境下被服务对象提出的需求的同时,提高了被服务对象的满意度. 解决了多智能体系统在进行动态任务分配过程中出现的执行智能体自身和各执行智能体间的死锁问题. 由仿真结果可以看出,所提机制可以基于任务的不同类型及被服务对象的个体差异进行动态任务分配,有效提高了被服务对象的总体满意度. 由于被服务对象满意度是根据常识建立的数学模型,其真实性还有待研究。后续计划采集真实数据,建立更符合实际的被服务对象满意度模型.
参考文献
世界人口发展趋势和人口转变——理论与现实
[J].DOI:10.14132/j.2095-7963.2019.03.005 [本文引用: 1]
World population trends and demographic transition: theory and reality
[J].DOI:10.14132/j.2095-7963.2019.03.005 [本文引用: 1]
我国人口老龄化发展趋势问题及对策研究
[J].DOI:10.3969/j.issn.1007-7103.2019.16.124 [本文引用: 1]
Research on the development trend, problems and countermeasures of population aging in China
[J].DOI:10.3969/j.issn.1007-7103.2019.16.124 [本文引用: 1]
基于多智能体强化学习的无人集群协同设计
[J].DOI:10.15908/j.cnki.cist.2020.06.005 [本文引用: 1]
Unmanned swarm cooperative design based on multi-agent reinforcement learning
[J].DOI:10.15908/j.cnki.cist.2020.06.005 [本文引用: 1]
中国养老服务机器人的市场需求与产业发展
[J].
Market demand, industrial base and development of aged service robot
[J].
多智能体系统动态协调与分布式控制设计
[J].
Dynamic coordination and distributed control design of multi-agent systems
[J].
A distributed task allocation algorithm for a multi-robot system in healthcare facilities
[J].DOI:10.1007/s10846-014-0154-2 [本文引用: 2]
Resource-based task allocation for multi-robot systems
[J].DOI:10.1016/j.robot.2018.02.016 [本文引用: 2]
An efficient scheduling algorithm for multi-robot task allocation in assembling aircraft structures
[J].DOI:10.1109/LRA.2019.2929983 [本文引用: 2]
智能体Petri网融合的多机器人-多任务协调框架
[J].DOI:10.16383/j.aas.c190400 [本文引用: 4]
Multi-robot-multi-task coordination framework based on the integration of intelligent agent and Petri net
[J].DOI:10.16383/j.aas.c190400 [本文引用: 4]
Cooperative task assignment of multiple heterogeneous unmanned aerial vehicles using a modified genetic algorithm with multi-type genes
[J].DOI:10.1016/j.cja.2013.07.009 [本文引用: 1]
An algorithm for cooperative task allocation in scalable, constrained multiple robot systems
[J].DOI:10.1007/s11370-014-0154-x [本文引用: 1]
An auction-based rescue task allocation approach for heterogeneous multi-robot system
[J].
Auctions for multi-robot task allocation in communication limited environments
[J].DOI:10.1007/s10514-019-09828-5 [本文引用: 1]
System deadlocks
[J].DOI:10.1145/356586.356588 [本文引用: 1]
Deadlock-free consecutive task assignment of multiple heterogeneous unmanned aerial vehicles
[J].DOI:10.2514/1.C032309 [本文引用: 2]
/
〈 |
|
〉 |
