一种机器人时序任务规划方法及装置、电子设备
技术领域
本申请涉及机器人任务规划
技术领域
,尤其涉及一种机器人时序任务规划方法及装置、电子设备。背景技术
任务规划问题在社会生活中广泛存在,如数据采集、持续观测以及智慧物流等领域。近年来,越来越多的研究开始关注复杂时序约束下的机器人任务规划问题,用于解决现实生产中更为复杂的任务需求。基于模型检查理论的任务规划方法,可以借助形式化语言如线性时序逻辑(Linear Temporal Logic,LTL)语言,描述更为复杂的任务时序约束,如任务顺序约束、安全避障约束、响应约束等,因此受到了广泛的关注与研究。
现有方法难以有效处理以下技术问题:(1)难以有效解决机器人同时具有个体时序任务和全局协同时序任务的情况;(2)未考虑优化多机器人执行协同任务时由于到达时间不同而导致的不必要的等待时间;(3)现有方法大部分假设机器人的协同任务分配关系已知,并且没有考虑保护机器人个体时序任务隐私信息。
发明内容
本发明实施例的目的是提供一种机器人时序任务规划方法及装置、电子设备,以解决相关技术中存在的难以高效解决机器人同时具有个体时序任务和全局协同时序任务的问题,并考虑在任务规划过程中保护机器人个体时序任务隐私等技术问题。
根据本申请实施例的第一方面,提供一种方法,包括:获取机器人工作区域的环境信息;对所述工作区域进行离散化建模,获得环境图模型;发送所述环境图模型给所述机器人,以使得机器人根据所述环境图模型以及机器人在工作区域中的移动能力和任务执行能力,构建得到加权切换系统;获取机器人的个体时序任务以及全局协同时序任务;将所述个体时序任务发送给机器人;根据所述全局协同时序任务,计算满足所述全局协同时序任务的协同任务序列,所述协同任务序列由一个或多个协同子任务构成;根据所述协同任务序列,构建协同子任务分配模型;计算所述协同子任务分配模型,得到协同子任务分配结果;将所述协同子任务分配结果发送给机器人,以使得机器人按照所述个体时序任务和所述协同子任务分配结果,构建更新后的个体时序任务,再融合所述加权切换系统,最后机器人个体计算任务执行计划。
根据本申请实施例的第二方面,提供一种装置,包括:第一获取模块,用于获取机器人工作区域的环境信息;建模模块,用于对所述工作区域进行离散化建模,获得环境图模型;第一发送模块,用于发送所述环境图模型给所述机器人,以使得机器人根据所述环境图模型以及机器人在工作区域中的移动和任务执行能力,构建得到加权切换系统;第二获取模块,用于获取机器人的个体时序任务以及全局协同时序任务;第二发送模块,用于将所述个体时序任务发送给机器人;第一计算模块,用于根据所述全局协同时序任务,计算满足所述全局协同时序任务的协同任务序列,所述协同任务序列由一个或多个协同子任务构成;构建模块,用于根据所述协同任务序列,构建协同子任务分配模型;第二计算模块,用于计算所述协同子任务分配模型,得到协同子任务分配结果;第三发送模块,用于将所述协同子任务分配结果发送给机器人,以使得机器人按照所述个体时序任务和所述协同子任务分配结果,构建更新后的个体时序任务,再融合所述加权切换系统,最后机器人个体计算任务执行计划。
根据本申请实施例的第三方面,提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中任一所述机器人时序任务规划方法的步骤。
本申请的实施例提供的技术方案可以包括以下有益效果:
采用集中式和分布式结合的混合任务规划框架,弥补了现有方法难以有效处理机器人同时具有个体时序任务和协同时序任务的问题,拓展了多机器人的部署场景并提升了效率;提出一种基于自动机模型的任务执行计划调整策略,缩减了机器人实际执行协同时序任务时不必要的等待时间,提高了完成任务的时间效率;采用个体规划独立求解个体机器人的任务执行计划,克服了现有方法复杂度较高的限制,在分散计算量的同时有效保护了机器人的个体时序任务隐私信息。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种机器人时序任务规划方法的流程图。
图2为根据一示例性实施例示出的一次包含3个机器人的仿真实验中的时序任务规划的求解结果。
图3为根据一示例性实施例示出的在不同机器人数量与工作区域规模下所述任务执行计划进行调整过程的优化质量与求解时间对比。
图4为根据一示例性实施例示出的一次包含30个机器人的仿真实验中,任务执行计划调整过程对于每种协同子任务分配结果的优化效果,以及筛选策略对协同子任务分配结果的筛选效率。
图5根据一示例性实施例示出的一种机器人时序任务规划装置的示意图。
具体实施方式
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一
图1为本发明在实施例一种提供的机器人时序任务规划方法的流程图。参照图1,所述机器人时序任务规划方法可以包括以下步骤:
步骤S01:获取机器人工作区域的环境信息,并对所述工作区域进行离散化建模,获得环境图模型。
具体地,所述工作区域的环境信息包括机器人在工作区域中的初始位置、工作区域中需要完成的任务所在的位置等。本申请不限制所述环境信息的具体获取方式。需要注意的是,终端在开始规划之前,需要建立与机器人的通信连接。
具体地,所述环境图模型定义为其中是工作区域中的任务区域对应的节点集合;ε是包含中所有节点之间连接关系的集合。机器人集合在环境图模型中自主工作,每个机器人具备任务执行能力cj∈Cap,并可以在工作区域中提供相应的功能服务,其中Cap:=*cj}j∈*1,...,|Cap|}是所有机器人任务执行能力的集合。将工作区域中分布的任务建模为一个元组其中:πts是任务ts对应的独有的原子命题;是任务ts所对应的环境区域;表示为了完成任务ts(或使原子命题πts为真),需要满足至少有个具有任务执行能力cj的机器人协同完成,这里为完成任务ts所需的机器人任务执行能力的下标集合。所述任务执行能力可以包括但不限于如抓取、移动、操作等技术动作执行能力。
步骤S02:发送所述环境图模型给所述机器人,以使得机器人根据所述环境图模型以及机器人在工作区域中的移动和任务执行能力,构建得到加权切换系统。
具体地,所述任务执行能力包括但不限于如抓取、移动、操作等技术动作。机器人i的加权切换系统表示为其中,是一个节点集合,每个节点与工作区域中的任务区域相对应;代表机器人i的初始位置;是一个节点对集合,其中每个节点对所包含的两个节点之间都存在一条满足机器人运动学约束的可行路径;是节点转移的权重函数;是一个原子命题的集合,一个原子命题对应工作区域中的某项任务的完成;是一个标签函数,节点的标签对应于机器人在该节点对应的任务区域具有的任务执行能力。
步骤S03:获取机器人的个体时序任务以及全局协同时序任务。
具体而言,按照用户任务需求,设定每个机器人的个体时序任务LTL表达式为其中由个体时序任务对应的原子命题与时序逻辑运算符组成,中包含的所有原子命题组成集合|Its|=1,且机器人这里表示所有具有任务执行能力cj的机器人的集合;另外,设定所有机器人需要协作完成的全局协同时序任务LTL表达式为φ,φ中包含的所有原子命题组成集合 任务ct具有更大的任务量以及更复杂的功能要求,需要多种具备不同任务执行能力的机器人协同完成。例如,设定机器人的个体时序任务LTL表达式为 设定全局协同时序任务LTL表达式为 其中和分别表示个体时序任务ts1和协同时序任务ct1所对应的原子命题,其他原子命题定义与此同理。另外,其中协同时序任务ct1、ct2、ct3、ct4分别需要1、3、2、2个机器人参与完成。应当理解,本申请不限制所述机器人的个体时序任务以及全局协同时序任务的具体获取方式。
步骤S04:将所述个体时序任务发送给机器人。
本申请不限制将所述个体时序任务发送给机器人的具体发送方式。
步骤S05:根据所述全局协同时序任务,计算满足所述全局协同时序任务的协同任务序列,所述协同任务序列由一个或多个协同子任务构成。
在一个示例中,所述步骤S05,可以具体包括:
步骤S51:将所述全局协同时序任务LTL表达式φ转化为对应的非确定性有限自动机模型(Nondeterministic Finite Automaton,NFA),根据中的节点转移条件,移除中所有超出机器人集合能力范围的边。具体而言,遍历考察中的边上的转移条件,对每一个转移条件,提取满足该转移条件的最小正原子命题集合,判断现有的机器人集合能否同时使这个最小正原子命题集合中的原子命题为真,若是,则保留对应的边;否则将这条边从所述非确定性有限自动机模型中移除。
步骤S52:搜索所述自动机模型中的一条接收路径ρF,接收路径ρF满足从所述自动机模型的一个初始节点出发,并结束于一个接收节点根据接收路径ρF中相邻节点的转移条件得到命题序列σ=σ(1)σ(2)…σ(L-1)σ(L),满足即σ(i)是一个满足节点转移条件δ(ρF(i),ρF(i+1))的命题集合。命题序列σ即作为多机器人需要完成的协同任务序列。
另外,在具体实施中,可以根据接收路径ρF上的分解节点将对应的协同任务序列σ划分为S个独立的子任务序列σ=σ1;σ2;…;σS。这些子任务序列的独立异步执行可以保证全局协同时序任务要求可以被满足,而无需按照协同任务序列σ中的顺序执行。其中,判断所述接收路径ρF上的节点是否为分解节点的方法是:调整被当前节点分割成的两个命题序列的执行顺序,检查调整执行顺序后的命题序列能否在中产生一条接收路径(即开始于所述自动机模型的初始节点,结束于所述自动机模型的接收节点),若是,则当前节点为分解节点;否则不是分解节点。
步骤S06:根据所述协同任务序列,构建协同子任务分配模型。
在一个示例中,所述步骤S06,可以具体包括:
步骤S61:定义σk(m)为第k个子任务序列σk的第m个元素,其中为σk(m)的第j个元素。对每个子任务定义一个新符号其中 定义为机器人i的布尔变量集合,为真,表明机器人i被分配执行协同子任务
步骤S62:基于所述布尔变量集合,构建基于SMT(Satisfibility ModuloTheories)的所述协同子任务分配模型,其中所述协同子任务分配模型满足以下约束:
(1)协同约束。每项子任务所要求的机器人数量和类型需要被满足。对每个σk,要求被满足。其中1(·)是一个标号函数,1(true)=1,1(false)=0。
(2)时间约束。每个机器人不能同时参与到两个需要同时执行的任务中。即对每个σk,被满足。
(3)通信约束。对于某些需要先后连续执行的相邻子任务,若子任务对应的环境区域相距较远使得通信链路无法建立,则通过以下约束可以克服这种通信限制。对每个σk,需被满足,其中
步骤S07,计算所述协同子任务分配模型,得到协同子任务分配结果。
具体而言,利用z3 SMT求解器求解协同子任务分配结果并发送给机器人。
在实际实施中,若求解时间充足,可以迭代遍历所有可行的协同子任务分配结果,并最终返回时间效率最高的分配结果。具体实施方式是,在每次调用z3求解器时,根据上次求解结果定义表达式并将f更新为
另外,在上述迭代遍历所有可行的协同子任务分配结果的过程中,可以利用以下筛选策略快速筛除非最优可行解,避免无效的计算:若 使得则f可以直接更新为而无需将当前可行解对应的协同子任务分配结果发送给机器人,上述分别是第m次和第n次迭代计算时得到的可行解。这里意味着
步骤S08,将所述协同子任务分配结果发送给机器人,以使得机器人按照所述个体时序任务和所述协同子任务分配结果,构建更新后的个体时序任务,再融合所述加权切换系统,最后机器人个体计算任务执行计划。
在一个示例中,所述步骤S08,可以具体包括:
步骤S81:所述机器人根据所述协同子任务分配结果,构建新的LTL表达式φi来表示分配给机器人i的协同子任务以及它们之间的时序约束。更新后的个体时序任务LTL表达式为所述机器人建立集合 且其中,和中的所有命题(对应于工作区域中的任务)按照上标k和l递增的顺序排序。具体而言,构建φi包括:
(1)建模每个子任务序列中的次序约束。对于每个初始化为其中为中的第一个元素。然后用来迭代替换中的其中和是中两个相邻的元素,且lm<lm+1。
(2)限定子任务序列之间的执行顺序。为避免多个机器人执行不同子任务序列时由于执行顺序不同而导致的死锁问题,此处限定子任务序列之间的执行顺序按照原始协同任务序列σ中的顺序。对每个机器人i,将(1)中得到的按照上标k的升序排列。从k=1到S-1,用来迭代替换其中是中的最后一个元素。最终,
步骤S82:对于所有的机器人,根据每个所述机器人i的加权切换系统wTSi以及更新后的个体时序任务LTL表达式定义个体乘积自动机为其中为对应的NFA。其中:满足(ΠiqP,Πiq′P)∈→i且其中Πi和ΠF分别表示到wTSi和的节点空间的映射;ωP(qP,q′P)=ωi(ΠiqP,Πiq′P);
步骤S83:所述机器人采用Dijkstra算法,在所述个体乘积自动机上搜索一条最短的接收路径ρi,ρi可以同时满足LTL表达式和机器人在工作区域中的移动能力和任务执行能力的限制(所述约束包含在所述wTSi中)。机器人i的任务执行计划可以由τi=Πiρi得到。
另外,所述机器人可以进一步调整所述任务执行计划,降低机器人执行协同任务时不必要的等待时间(由于机器人到达协同任务对应区域的时间不一致而产生),具体包括:
所述机器人搜索个体乘积自动机中的协同节点。对于 当且仅当:(1)(2)且其中,是自动机中任务所对应的所述协同节点的集合。
针对所述协同任务序列σ中的每个协同子任务,具体调整过程为:
(1)在所有参与到协同子任务的机器人集合中选择最晚到达的机器人在个体乘积自动机中调整所述机器人的接收路径,使得机器人在更早的时刻到达所述协同子任务对应的工作区域,从而降低集合中其他机器人的等待时间。
(2)如果(1)的调整无法使总任务执行时间变短,则在中寻找最早到达的机器人并在个体乘积自动机中调整所述机器人的接收路径,使得机器人在更晚的时刻到达协同子任务对应的工作区域,从而降低机器人自身在执行任务时的等待时间。
上述步骤(1)(2)中,所述调整机器人的接收路径的方式具体为:所述机器人随机遍历个体乘积自动机中属于的节点,对于每个待选节点机器人保持到不变,从节点开始,寻找经过节点q并到达中接收节点的最短路径。其中,表示接收路径上,节点的上一个协同节点,jprev为该协同节点在中的下标,同理,为协同子任务的协同节点在中的下标。对于每个待选节点所对应的待选路径考察其是否满足以下两个条件:(1)是否减少了协同子任务处的等待时间;(2)是否减少了完成任务总时间。符合上述两个条件的待选路径将被更新为新的随后所述机器人继续对下一个协同子任务进行上述调整过程。
所述机器人遍历所有σ中的协同子任务并进行上述执行计划调整,检查完成任务的总时间是否减少。若无法减少,则所述调整过程结束;否则重复执行所述调整过程。
图2为根据一示例性实施例示出的一次包含3个机器人的仿真实验中的时序任务规划的求解结果,可以看出机器人的任务规划同时满足了个体时序任务和协同时序任务。另外,机器人通过所述调整过程,降低了在执行协同子任务时的等待时间,验证了本方法的正确性和有效性。
图3展示了不同的机器人数量以及环境规模下进行多次仿真实验,所述任务执行计划调整过程对求解效率与质量的影响,其中,图中每个数据点通过计算10次随机实验的均值和标准差得到,每次实验中保持其余参数不变,仅随机改变任务在工作区域中的区域分布。设定栅格地图工作区域为20×20、30×30、40×40三种规模,每种环境规模下考察多种机器人数量的情况,具体机器人数量包括{5,10,15,20,25,30}。设定机器人的个体时序任务LTL表达式如机器人的全局协同时序任务LTL表达式如
由图3可以看出,所述任务执行计划调整过程消耗了约为初始求解时间45%~55%的时间(图3中的(a)),使得任务完成时间降低到未进行调整过程时的约70%~80%(图3中的(b)),有效提高了多机器人任务协同的效率。同时,上述结论在不同的机器人数量以及环境规模下也成立,验证了所述任务执行计划调整过程的适用性和有效性。
图4中的(a)是在一次包括30个机器人的实施例中,在不同的协同子任务分配结果下,所述机器人进行与不进行所述任务执行计划调整过程,任务完成时间的对比结果。可以看到,对于每种协同子任务分配结果,所述任务执行计划调整过程,可以有效降低任务执行计划的执行时间损耗,验证了所述任务执行计划调整过程的实际优化效果。图4中的(b)是所述快速筛除策略每一轮筛除的协同子任务分配结果个数、需要记录的协同子任务分配结果总数以及筛除的协同子任务分配结果总数,可以看出上述筛除策略可以有效过滤非最优的协同子任务分配结果,从而减少计算量。
实施例二
图5为本发明在实施例一中提供的机器人时序任务规划装置的示意图。本实施例提供的机器人时序任务规划装置与上述机器人时序任务规划方法属于同一发明构思,具体的,见图5,所述机器人时序任务规划装置200包括:第一获取模块201,用于获取机器人工作区域的环境信息;建模模块202,用于对所述工作区域进行离散化建模,获得环境图模型;第一发送模块203,用于发送所述环境图模型给所述机器人,以使得机器人根据所述环境图模型以及机器人在工作区域中的移动和任务执行能力,构建得到加权切换系统;第二获取模块204,用于获取机器人的个体时序任务以及全局协同时序任务;第二发送模块205,用于将所述个体时序任务发送给机器人;第一计算模块206,用于根据所述全局协同时序任务,计算满足所述全局协同时序任务的协同任务序列,所述协同任务序列由一个或多个协同子任务构成;构建模块207,用于根据所述协同任务序列,构建协同子任务分配模型;第二计算模块208,用于计算所述协同子任务分配模型,得到协同子任务分配结果;第三发送模块209,用于将所述协同子任务分配结果发送给机器人,以使得机器人按照所述个体时序任务和所述协同子任务分配结果,构建更新后的个体时序任务,再融合所述加权切换系统,在个体计算任务执行计划。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应的,本申请还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的机器人时序任务规划方法。
相应的,本申请还提供一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如上述的机器人时序任务规划方法。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种露天矿复垦区生态系统恢复力测度方法