一种基于htn规划的机械臂任务规划的方法

文档序号:299 发布日期:2021-09-17 浏览:33次 英文

一种基于HTN规划的机械臂任务规划的方法

技术领域

本申请涉及机械臂任务规划

技术领域

,尤其涉及一种基于HTN规划的机械臂任务规划的方法。

背景技术

空间站机械臂是空间站建造和在轨运营过程中的最主要舱外活动部件,具备一体化的空间感知、机动和操作能力,能够通过在轨操作、地面遥操作或自主操作方式可以承担航天器的在轨装配、观测与检查、故障模块更换、在轨加注、消耗载荷更换和补充、轨道清理、轨道转移等空间站任务,还能够辅助航天员出舱,对航天员进行远距离运送,辅助航天员完成各类舱外任务。

由于空间站机械臂执行任务种类众多,不同任务之间的转换复杂,为了便于机械臂在不同任务之间转换,通常需要对机械臂的任务进行规划,机械臂任务规划不仅与目标任务信息有关,还与环境信息有关。目前,传统的机械臂任务规划干扰因素少,而且一般是针对结构化的应用环境和确定性任务的背景下进行研究的,机械臂一般都是按照规划好的顺序来执行任务,但是机械臂主要工作在具有高度动态性和灵活性的场所,在任务规划过程中不仅要考虑任务规划,还需要结合实际的环境进行合理规划。因此,现有技术中机械臂任务规化的灵活性较差。

发明内容

本申请解决的技术问题是:针对现有技术中机械臂任务规划的灵活性较差。本申请提供了一种基于HTN规划的机械臂任务规划的方法,本申请实施例所提供的方案中,本申请实施例通过分层网络规划器HTN对机械臂进行任务规划,能根据实际情况实时对机械臂任务进行规划,不仅提高了任务规划的灵活性,还使得任务规划更贴合实际情况。

第一方面,本申请实施例提供一种基于HTN规划的机械臂任务规划的方法,该方法包括:

根据基本任务之间预设的执行逻辑以及预设的基本任务库建立基本任务转移网络,其中,所述基本任务是指机械臂单次执行的任务;

确定机械臂的初始状态信息和目标状态信息,根据所述初始状态信息以及所述目标状态信息建立初始任务规划网络,其中,所述初始任务规划网络包括基本任务和非基本任务;

基于分层任务网络规划器HTN以及所述基本任务转移网络将所述非基本任务进行逐层分解得到基本任务序列,其中,所述基本任务序列是由多层基本任务构成;

根据所述基本任务序列更新所述初始任务规划网络,得到更新后的任务规划网络,其中,所述更新后的任务规划网络为分层任务网络。

本申请实施例所提供的方案中,根据基本任务之间预设的执行逻辑以及预设的基本任务库建立基本任务转移网络,然后确定机械臂的初始状态信息和目标状态信息,并根据所述初始状态信息以及所述目标状态信息建立初始任务规划网络,然后基于分层任务网络规划器HTN以及所述基本任务转移网络将所述非基本任务进行逐层分解得到基本任务序列,再根据所述基本任务序列更新所述初始任务规划网络,得到更新后的任务规划网络,因此,本申请实施例通过分层网络规划器HTN对机械臂进行任务规划,能根据实际情况实时对机械臂任务进行规划,不仅提高了任务规划的灵活性,还使得任务规划更贴合实际情况。

可选地,根据所述基本任务序列更新所述初始任务规划网络之前,还包括:

确定所述基本任务序列中每个基本任务所对应的至少一个伴随事件,其中,所述伴随事件是指执行所述基本任务过程中伴随发生的事件;

根据伴随事件之间预设的时序逻辑以及伴随事件与基本任务之间预设的时序逻辑将所述至少一个伴随事件与其对应的所述基本任务绑定,得到绑定后的基本任务;

根据所述绑定后的基本任务更新所述基本任务序列,得到更新后的基本任务序列。

可选地,根据所述绑定后的基本任务更新所述基本任务序列之前,还包括:

根据基本任务之间预设的时序关系确定所述绑定后的基本任务中所述基本任务执行的第一时间区间,根据伴随时间之间预设的时序关系确定每个所述伴随事件执行的第二时间区间;

判断所述第一时间区间与所述第二时间区间之间是否存在冲突;

若存在,则根据预设的调整优化规则对所述绑定后的基本任务进行调整优化。

可选地,所述预设的调整优化规则,包括:

调整所述第一时间区间或调整所述第二时间区间,直到调整后的第一时间区间与所述第二时间区间之间不存在冲突为止;或

调整所述基本任务与所述伴随事件之间的执行逻辑关系,直到不存在冲突为止。

可选地,根据所述绑定后的基本任务更新所述基本任务序列之后,还包括:

根据所述调整后的第一时间区间以及所述第二时间区间确定所述绑定后的基本任务对应的第三时间区间;

判断任意相邻两个所述绑定后的基本任务对应的第三时间区间是否存在冲突;

若存在,则调整所述第三时间区间,直到任意相邻两个所述绑定后的基本任务对应的第三时间区间不存在冲突为止。

可选地,根据所述基本任务序列更新所述初始任务规划网络,包括:

根据所述调整后的第三时间区间确定所述机械臂运动的第四时间区间;

确定所述第四时间区间内与所述机械臂运动有关的部件的运动状态信息,其中,所述部件包括太阳帆板、天线或活动舱段;

根据所述第四时间区间以及所述运动状态信确定所述机械臂对应的无碰撞空间,根据所述无碰撞空间以及所述基本任务序列更新所述初始任务规划网络。

可选地,基于分层任务网络规划器HTN以及所述基本任务转移网络将所述非基本任务进行逐层分解得到基本任务序列,包括:

确定所述非基本任务对应的初始状态和目标状态,根据所述HTN、所述初始状态以及所述目标状态在所述基本任务转移网络中逐层搜索,确定出从所述初始状态转移到目标状态的多个基本任务,根据所述多个基本任务得到所述基本任务序列。

第二方面,本申请实施例提供了一种基于HTN规划的机械臂任务规划的装置,该装置包括:

建立单元,用于根据基本任务之间预设的执行逻辑以及预设的基本任务库建立基本任务转移网络,其中,所述基本任务是指机械臂单次执行的任务;

确定单元,用于确定机械臂的初始状态信息和目标状态信息,根据所述初始状态信息以及所述目标状态信息建立初始任务规划网络,其中,所述初始任务规划网络包括基本任务和非基本任务;

分解单元,用于基于分层任务网络规划器HTN以及所述基本任务转移网络将所述非基本任务进行逐层分解得到基本任务序列,其中,所述基本任务序列是由多层基本任务构成;

更新单元,用于根据所述基本任务序列以及所述每个基本任务序列执行时序更新所述初始任务规划网络,得到更新后的任务规划网络,其中,所述更新后的任务规划网络为分层任务网络。

可选地,所述确定单元,还用于:确定所述基本任务序列中每个基本任务所对应的至少一个伴随事件,其中,所述伴随事件是指执行所述基本任务过程中伴随发生的事件;根据伴随事件之间预设的时序逻辑以及伴随事件与基本任务之间预设的时序逻辑将所述至少一个伴随事件与其对应的所述基本任务绑定,得到绑定后的基本任务;根据所述绑定后的基本任务更新所述基本任务序列,得到更新后的基本任务序列。

可选地,所述确定单元,还用于:根据基本任务之间预设的时序关系确定所述绑定后的基本任务中所述基本任务执行的第一时间区间,根据伴随时间之间预设的时序关系确定每个所述伴随事件执行的第二时间区间;判断所述第一时间区间与所述第二时间区间之间是否存在冲突;若存在,则根据预设的调整优化规则对所述绑定后的基本任务进行调整优化。

可选地,所述预设的调整优化规则,包括:调整所述第一时间区间或调整所述第二时间区间,直到调整后的第一时间区间与所述第二时间区间之间不存在冲突为止;或调整所述基本任务与所述伴随事件之间的执行逻辑关系,直到不存在冲突为止。

可选地,所述确定单元,还用于:根据所述调整后的第一时间区间以及所述第二时间区间确定所述绑定后的基本任务对应的第三时间区间;判断任意相邻两个所述绑定后的基本任务对应的第三时间区间是否存在冲突;若存在,则调整所述第三时间区间,直到任意相邻两个所述绑定后的基本任务对应的第三时间区间不存在冲突为止。

可选地,所述更新单元,具体用于:根据所述调整后的第三时间区间确定所述机械臂运动的第四时间区间;确定所述第四时间区间内与所述机械臂运动有关的部件的运动状态信息,其中,所述部件包括太阳帆板、天线或活动舱段;根据所述第四时间区间以及所述运动状态信确定所述机械臂对应的无碰撞空间,根据所述无碰撞空间以及所述基本任务序列更新所述初始任务规划网络。

可选地,所述分解单元,具体用于:确定所述非基本任务对应的初始状态和目标状态,根据所述HTN、所述初始状态以及所述目标状态在所述基本任务转移网络中逐层搜索,确定出从所述初始状态转移到目标状态的多个基本任务,根据所述多个基本任务得到所述基本任务序列。

第三方面,本申请提供一种计算机设备,该计算机设备,包括:

存储器,用于存储至少一个处理器所执行的指令;

处理器,用于执行存储器中存储的指令执行第一方面所述的方法。

第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行第一方面所述的方法。

附图说明

图1为本申请实施例所提供的一种基于HTN规划的机械臂任务规划的方法的流程示意图;

图2为本申请实施例所提供的一种基本任务转移网络的结构示意图;

图3为本申请实施例所提供的一种基于HTN规划的机械臂任务规划的装置的结构示意图;

图4为本申请实施例所提供的一种计算机设备的结构示意图。

具体实施方式

本申请实施例提供的方案中,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

为了更好的理解上述技术方案,下面通过附图以及具体实施例对本申请技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。

以下结合说明书附图对本申请实施例所提供的一种基于HTN规划的机械臂任务规划的方法做进一步详细的说明,该方法具体实现方式可以包括以下步骤(方法流程如图1所示):

步骤101,根据基本任务之间预设的执行逻辑以及预设的基本任务库建立基本任务转移网络,其中,所述基本任务是指机械臂单次执行的任务。

具体的,本申请实施例所提供的方案中,基本任务转移网络是指基本任务之间转移的关系网络。例如,参见图2,为本申请实施例所提供的一种基本任务转移网络的结构示意图。在图2中,基本任务包括Base、AdptA、AdptB、AdptC、TV、MV、EMM、OM以及EM,其中,基本任务Base可以向AdptA以及AdptC转移,AdptA与AdptB之间相互转移,AdptA还可与AdptC之间相互转移,AdptB与EMM之间相互转移,AdptB还可与OM之间相互转移,AdptB还可与EM、MV、TV之间相互转移。

步骤102,确定机械臂的初始状态信息和目标状态信息,根据所述初始状态信息以及所述目标状态信息建立初始任务规划网络,其中,所述初始任务规划网络包括基本任务和非基本任务。

具体的,初始状态信息是指机械臂执行待执行的任务之前所呈现的状态,目标状态信息是指机械臂执行待执行的任务之后所呈现的状态。

步骤103,基于分层任务网络规划器HTN以及所述基本任务转移网络将所述非基本任务进行逐层分解得到基本任务序列,其中,所述基本任务序列是由多层基本任务构成。

具体的,在本申请实施例所提供的方案中,基于分层任务网络规划器HTN以及所述基本任务转移网络将所述非基本任务进行逐层分解得到基本任务序列的方式有多种,下面以一种较佳的方式为例进行说明。

在一种可能实现的方式中,基于分层任务网络规划器HTN以及所述基本任务转移网络将所述非基本任务进行逐层分解得到基本任务序列,包括:确定所述非基本任务对应的初始状态和目标状态,根据所述HTN、所述初始状态以及所述目标状态在所述基本任务转移网络中逐层搜索,确定出从所述初始状态转移到目标状态的转移路径;根据所述转移路径将所述非基本任务分解得到所述基本任务序列。

为了便于理解,下面对分层任务网络规划器(hierarchy task network,HTN)的原理进行简要介绍。

HTN规划器对任务的描述分为3类,分别为基本任务、目标任务以及复合任务,其中,基本任务是指机械臂可通过预置动作直接完成的任务,目标任务以及复合任务是指机械臂不能通过预置动作直接完成的任务,目标任务和复合任务都称为非基本任务。

HTN规划器将一个规划问题采用如下三元组表示:

<S,T,D>

其中,S是任务初始状态,表示规划开始时系统所处的状态;T表示完成目标任务的初始任务网络,初始任务网络包含时序逻辑关系的复合任务和基本任务,k表示初始任务网络中子任务的个数,表示约束条件集合;D是领域知识。

进一步,在HTN规划器中D采用如下二元组表示:

D=<OP,Me>

其中,OP表示基本任务库,OP=(O1,O2,…,On);Me表示将复合任务分解为基本任务的方法库,Me=(e1,e2,…,em)。

进一步,在HTN规划器中不同任务之间通过任务网络连接起来,任务网络是一种任务和任务约束条件之间的组合体,例如,假设任务网络中有k个任务,其任务网络表示如下:

T=((n1:α1),…,(nk:αk),φ)

其中,T表示任务网络;αk表示第k个任务;nk表示第k个任务的标签;φ表示约束条件集合。

具体的,在本申请实施例所提供的方案中,确定HTN规划的规划域的方式有多种,下面以一种较佳的方式为例进行说明。

在一种可能实现的方式中,确定分层任务网络规划器HTN规划的规划域,包括:实时获取环境状态信息,其中,所述环境状态信息包括所述机械臂末端执行器的第一位姿信息和抓取状态信息以及环境中至少一个物体的第二位姿信息;判断所述环境状态信息是否满足预设的达到目标任务的前提条件;若满足,则将所述环境状态信息进行变换处理,得到变换后的环境状态信息,根据变换后的环境状态信息得到算子集,其中,所述算子集用于表征基本任务与环境状态信息之间关系;根据所述算子集以及输入的方法集确定出所述规划域。

进一步,在一种可能实现的方式中,判断所述环境状态信息是否满足预设的达到目标任务的前提条件,包括:将所述环境状态信息用矩阵形式表示,并将所述环境状态信息与预设的条件掩码矩阵进行与运算,得到第一计算结果,以及将所述条件掩码矩阵与预设的算子影响效果的条件矩阵进行与运算,得到第二计算结果;判断所述第一计算结果与所述第二计算结果是否相等。

进一步,在一种可能实现的方式中,将所述环境状态信息与预设的条件掩码矩阵进行与运算,得到第一计算结果,包括:

根据下式得到所述第一计算结果:

Q=S&M

其中,Q表示第一计算结果;S表示所述环境状态信息;M表示预设的条件掩码矩阵,

在一种可能实现的方式中,将所述环境状态信息进行变换处理,得到变换后的环境状态信息,包括:

根据下式得到所述变换后的环境状态信息:

其中,Snew表示变换后的环境状态信息,S'表示所述预设的算子影响效果的条件矩阵;表示M矩阵的取反所得到的矩阵。

具体的,在本申请实施例所提供的方案中,HTN规划器在任务剖面分析层不考虑物体形状、尺寸,只分析物体在环境中被操作前后的逻辑关系,因此将环境中物体抽象成操作接口向量,机械臂末端位姿与物体接口向量吻合即可操作物体,物体的移动抽象为接口向量的变化。

例如,环境中有1个机械臂,k个物体,那么环境状态信息S可表示为:

其中,S0表示笛卡尔坐标系中所述机械臂末端执行器的第一位姿信息和抓取状态信息,S1,…,Sk表示笛卡尔坐标系中k个物体的所述第二位姿信息;Θ=[x y z α β γ]T表示笛卡尔坐标系中机械臂或物体的位姿信息,Θ0表示所述机械臂末端执行器的第一位姿信息;Θ1,…,Θk表示笛卡尔坐标系中K个物体的所述第二位姿信息;g=[g0,…,gk]表示机械臂加持物体的状态。

进一步,针对g存在如下两种情况:

1)机械臂处于空载状态,则g=0,即g0,…,gk中每一项均为0。

2)机械臂夹持第i个物体,则中g0=1,g0,…,gk中仅gi=1,其他各项均为0。

进一步,定义预设的条件掩码矩阵 定义预设的算子影响效果的条件矩阵S'。在执行某个任务前后,都需要判断当前环境状态是否达到任务的前提条件或目标状态,这些目标状态通常只关注环境中的某些物体或物体的某些特定属性,而其他参数取值不做约束。根据当前环境状态信息S,条件状态S'及条件掩码矩阵M判断所述环境状态信息是否满足预设的达到目标任务的前提条件。若S'&M=S&M,则确定当前环境状态信息满足预设的达到目标任务的前提条件,若M中元素为0,则S中对应元素置为0,若M中元素为1,则S中对应元素不变;否则,确定当前环境状态信息不满足预设的达到目标任务的前提条件。若当前环境状态信息满足预设的达到目标任务的前提条件,将当前环境状态信息进行变换处理。

步骤104,根据所述基本任务序列更新所述初始任务规划网络,得到更新后的任务规划网络,其中,所述更新后的任务规划网络为分层任务网络。

具体的,在基于分层任务网络规划器HTN以及所述基本任务转移网络将所述非基本任务进行逐层分解得到基本任务序列之后,还需要根据所述基本任务序列更新所述初始任务规划网络。

在一种可能实现的方式中,根据所述基本任务序列以及所述每个基本任务序列执行时序更新所述初始任务规划网络之前,还包括:确定所述基本任务序列中每个基本任务所对应的至少一个伴随事件,其中,所述伴随事件是指执行所述基本任务过程中伴随发生的事件;根据伴随事件之间预设的时序逻辑以及伴随事件与基本任务之间预设的时序逻辑将所述至少一个伴随事件与其对应的所述基本任务绑定,得到绑定后的基本任务;根据所述绑定后的基本任务更新所述基本任务序列,得到更新后的基本任务序列。

进一步,在一种可能实现的方式中,根据所述绑定后的基本任务更新所述基本任务序列之前,还包括:根据基本任务之间预设的时序关系确定所述绑定后的基本任务中所述基本任务执行的第一时间区间,根据伴随时间之间预设的时序关系确定每个所述伴随事件执行的第二时间区间;判断所述第一时间区间与所述第二时间区间之间是否存在冲突;若存在,则根据预设的调整优化规则对所述绑定后的基本任务进行调整优化。

进一步,在一种可能实现的方式中,所述预设的调整优化规则,包括:调整所述第一时间区间或调整所述第二时间区间,直到调整后的第一时间区间与所述第二时间区间之间不存在冲突为止;或调整所述基本任务与所述伴随事件之间的执行逻辑关系,直到不存在冲突为止。

进一步,在一种可能实现的方式中,根据所述绑定后的基本任务更新所述基本任务序列之后,包括:根据所述调整后的第一时间区间以及所述第二时间区间确定所述绑定后的基本任务对应的第三时间区间;判断任意相邻两个所述绑定后的基本任务对应的第三时间区间是否存在冲突;若存在,则调整所述第三时间区间,直到任意相邻两个所述绑定后的基本任务对应的第三时间区间不存在冲突为止。

在本申请实施例所提供的方案中,根据所述基本任务序列更新所述初始任务规划网络的方式有多种,下面以一种较佳的方式为例进行说明。

在一种可能实现的方式中,根据所述基本任务序列更新所述初始任务规划网络,包括:根据所述调整后的第三时间区间确定所述机械臂运动的第四时间区间;确定所述第四时间区间内与所述机械臂运动有关的部件的运动状态信息,其中,所述部件包括太阳帆板、天线或活动舱段;根据所述第四时间区间以及所述运动状态信确定所述机械臂对应的无碰撞空间,根据所述无碰撞空间以及所述基本任务序列更新所述初始任务规划网络。

具体的,机械臂一般采用串行方式执行任务,其规划问题具有顺序性,故任务剖面分析实质是任务化简与冲突处理策略规划的过程。为了便于理解机械臂任务剖面分析过程,下面对任务剖面分析的步骤进行简要介绍。

步骤1、从初始的任务规划网络中顺序提取任务;

步骤2、如果该任务为非基本任务,在规划域中寻找相应的Me并替换此非基本任务,寻找Me的方法,即对比此任务的效果掩码与Me集合中各任务的效果掩码,如果后者的置1项包含前者,则此Me可用以化简该任务,转到步骤1;

步骤3:比较当前环境状态信息和该任务的后置条件,如果当前状态符合任务后置条件,表示该任务无需执行,则从任务网络中删除该任务;

步骤4、如果当前环境状态信息满足该任务的前置条件,利用该任务算子的后置条件刷新当前状态,转到步骤1;

步骤5、如果当前状态不能满足该任务的前置条件,在规划域中寻找能够满足该条件的任务,添加该任务;

步骤6、更新简化所述初始的任务规划网络得到更新后的任务规划网络

为了便于理解上述任务规划的仿真过程,下面对其进行简要介绍。

本申请实施例所提供的方案中,以模块化机械臂为对象,介绍任务规划过程实施实例。以八自由度模块化机械臂为对象,整臂8个自由度由8个模块化转动关节组成,末端为集成式夹持器。机械臂各参数参见表1。

表1

具体的,αi(rad)表示沿Xi轴,从Zi轴旋转到Zi+1的角度;ai(mm)表示沿Xi轴,从Zi轴移动到Zi+1的距离;θi(rad)表示沿Zi轴,从Xi-1轴旋转到Xi的角度;di(mm)表示沿Zi轴,从Xi-1轴移动到Xi的距离。

具体的,仿真过程的环境设定如下:环境中的物体包括一台机械臂M、一个半径为50mm的球体障碍物O和一个被操作物X,其中,障碍物O的初始位置为E(t=0)=[-0.59m,0.52m,0.315m],障碍物O沿-y轴做匀速直线运动的速度为6mm/s,在10s后障碍物O的位置为E(t=10)=[-0.59m,0.46m,0.315m]。初始条件为X的操作接口位置信息为A=[-0.59m,0.45m,0.18m,127.92°,-79.65°,-177.88°]T,M的初始构型为[16°,18.1°,67.6°,56.2°,21.9°,-29.5°,-41.4°,0°]T;任务规划器的规划域包括三个基本任务算子,以及一个“传送”复合任务,其表达如下:

(trans(x,v,t),(n1:do[capture(x),t],n2:do[move(v),t],

n3:do[release(x),t],(n1,n2,n3)),noncontact(O))

其中,trans(x,v,t)表示使用t时间将物体X从当前位置移动到位置v处,x和v和t表示自变量。n1,n2,n3表示三个任务网络。

noncontact(O)是约束条件,表示机械臂不能与障碍物O发生碰撞。任务目标设计为将X转移到位置C=[-0.59m,0.55m,0.18m,127.92°,-79.65°,-177.88°]T

机械臂的基本任务库为:(move(A)、move(C)、move(U)、move(V))。其中,U=[-0.59m,0.58m,0.18m,127.92°,-79.65°,-177.88°]T,V=[-0.59m,0.45m,0.45m,127.92°,-79.65°,-177.88°]T

机械臂的基本任务转移网络包含基本任务move(U)向move(A)的转移,move(V)向move(A)的转移和move(A)向move(C)的转移。

根据上述任务要求,目标任务网络可描述为(achieve(trans(X,C))),根据机械臂M的初始构型,通过空间机械臂运动学正解计算末端执行器坐标为B=[-0.59m,0.58m,0.45m,127.92°,-79.65°,-177.88°]T。因此,环境初始状态为

若目标任务网络中只含有一个任务,且为非基本任务,因此在规划域中搜索对应的Me,即用下式替换trans(X,C,t):

((n1:do[capture(X),t1],n2:do[move(C),t2],

n3:do[release(X),t3],(n1,n2,n3)),noncontact(O))

然后,重新遍历任务网络,n1为基本任务,利用状态判据比较当前状态与capture(X)算子的前置条件:状态不符的掩码为其中,I=[0,1,1,0,0,0]T,再检索规划域[move(A),t=10s],算子可以消除当前状态与capture(X)前置条件间的差异。

进一步,计算得到在执行move(A)过程中机械臂与障碍物O的最小距离为24.2m,小于障碍物O的半径50m,即不满足约束条件,需要再检索规划域[move(V),t=10s]和[move(A),t=10s],组合算子可以消除当前状态与capture(X)前置条件间的差异,同时计算得到运动过程中机械臂与障碍物O的最小距离为135m,大于障碍物O的半径50m,即此时满足约束条件,因此在任务网络中n1前面添加n4:do[move(V),t4]和n5:do[move(A),t5],t4=10s,t5=10s。-验证。任务网络约束同时变为:(n4,n5,n1,n2,n3)。最后,再重新遍历任务网络,初始状态经n4和n5算子转为经n1算子转为经n2算子转为经n3算子转为

至此任务网络不再存在冲突,规划器给出的基本任务序列是:move(V)→move(A)→capture(X)→move(C)。此基本任务release(X)列实施后,物体X被成功转移至C处。

进一步,为了便于理解本申请实施例所提供的方案中伴随事件和时序推理过程,下面以空间机械臂为对象,对空间机械臂爬行任务规划时序推理的过程进行简要介绍。

爬行任务规划以机械臂爬行运动为主线,其他对象的事件、动作和相关资源的占用关系作为伴随事件。其他对象的事件包括相机操作、云台操作、传感器操作和电机操作等事件;其他对象的动作包括相机云台运动等动作;相关资源包括可用信道区间等资源。同时,需要保证机械臂运动与太阳帆板、天线及活动舱段等运动部件无碰撞。

爬行任务规划的起始时刻和终止时刻必须在可用信道区间的范围内。已知可用信道区间为[ts1=0s,te1=100s]、[ts2=200s,te2=300s]和[ts3=350s,te3=550s],首先确定爬行任务规划的起始时刻为ts1

机械臂执行爬行运动的起始时刻必须在相机准备、云台准备、传感器准备和电机准备等事件执行完成后。相机准备的时间为t1=10s,云台准备的时间为t2=10s,传感器准备的时间为t3=10s,电机准备的时间为t4=10s,则机械臂执行爬行运动的起始时刻为ts1+t1+t2+t3+t4=40s。

经任务规划器给出的机械臂爬行运动的基本任务序列为move(A)→move(B)→move(C)。其中,move(A)持续时间为ta=40s,move(B)持续时间为tb=60s,move(C)持续时间为tc=60s。

机械臂完成move(A)的时刻为ts1+t1+t2+t3+t4+ta<te1=100s,满足可用信道第一区间的时间约束。同时验证机械臂执行move(A)过程中与太阳帆板、天线及活动舱段等运动部件无碰撞。

机械臂继续执行move(B),完成move(B)的时刻为ts1+t1+t2+t3+t4+ta+tb=140s>te1,不满足可用信道第一区间的时间约束,则调整机械臂执行move(B)的时间区间为可用信道第二区间。机械臂move(A)和move(B)时序上不连续,需要将机械臂设置于最低功耗的待机状态,相机待机设置的时间为t5=2s,云台待机设置的时间为t6=2s,传感器待机设置的时间为t7=2s,电机待机设置的时间为t8=2s。机械臂完成move(A)及其伴随事件的时刻为ts1+t1+t2+t3+t4+ta+t5+t6+t7+t8=88s<te1,满足可用信道第一区间的时间约束。

机械臂继续执行move(B)前,需要将机械臂设置于正常工作状态,相机重启的时间为t9=2s,云台重启的时间为t10=2s,传感器重启的时间为t11=2s,电机重启的时间为t12=2s。机械臂执行move(B)的起始时刻为ts2+t9+t10+t11+t12=208s,完成move(B)的时刻为ts2+t9+t10+t11+t12+tb=268s<te2,满足可用信道第二区间的时间约束。同时验证机械臂执行move(B)过程中与太阳帆板、天线及活动舱段等运动部件无碰撞。

机械臂继续执行move(C),完成move(C)的时刻为ts2+t9+t10+t11+t12+tb+tc=328s>te2,不满足可用信道第二区间的时间约束,则调整机械臂执行move(C)的时间区间为可用信道第三区间。机械臂move(B)和move(C)时序上不连续,需要将机械臂设置于最低功耗的待机状态,则机械臂完成move(B)及其伴随事件的时刻为ts2+t9+t10+t11+t12+tb+t5+t6+t7+t8=276s<te1,满足可用信道第二区间的时间约束。

机械臂继续执行move(C)前,需要将机械臂设置于正常工作状态,机械臂执行move(C)的起始时刻为ts3+t9+t10+t11+t12=358s,完成move(C)的时刻为ts3+t9+t10+t11+t12+tc=418s<te3,满足可用信道第三区间的时间约束,但机械臂执行move(C)的时间区间[ts3=358s,tm=370s]内与太阳帆板、天线及活动舱段等运动部件发生碰撞。调整机械臂执行move(C)的起始时刻为tm+t9+t10+t11+t12=438s<te3,完成move(C)的时刻为tm+t9+t10+t11+t12+tc=438s<te3,满足无碰撞空间和可用信道第三区间的时间约束。

机械臂完成爬行运动后需要进行相机断电、云台复位和电源断电等事件。相机断电的时间为t5=10s,云台复位的时间为t6=10s,电源断电的时间为t7=10s,则机械臂爬行运动的终止时刻为tm+t9+t10+t11+t12+tc+t5+t6+t7=468s<te3。满足可用信道第三区间的时间约束。

因此,通过时序推理,规划得到机械臂执行爬行任务的时间区间为[0s,88s]、[200s,276s]和[370s,468s]。机械臂执行爬行运动move(A)的时间区间为[40s,80s],执行爬行动作move(B)的时间区间为[208s,268s],执行爬行动作move(C)的时间区间为[378s,438s]。

本申请实施例所提供的方案中,根据基本任务之间预设的执行逻辑以及预设的基本任务库建立基本任务转移网络,然后确定机械臂的初始状态信息和目标状态信息,并根据所述初始状态信息以及所述目标状态信息建立初始任务规划网络,然后基于分层任务网络规划器HTN以及所述基本任务转移网络将所述非基本任务进行逐层分解得到基本任务序列,再根据所述基本任务序列更新所述初始任务规划网络,得到更新后的任务规划网络,因此,本申请实施例通过分层网络规划器HTN对机械臂进行任务规划,能根据实际情况实时对机械臂任务进行规划,不仅提高了任务规划的灵活性,还使得任务规划更贴合实际情况。

基于与上述图1所示的方法相同的发明构思,本申请提供了一种基于HTN规划的机械臂任务规划的装置,参见图3,该装置包括:

建立单元301,用于根据基本任务之间预设的执行逻辑以及预设的基本任务库建立基本任务转移网络,其中,所述基本任务是指机械臂单次执行的任务;

确定单元302,用于确定机械臂的初始状态信息和目标状态信息,根据所述初始状态信息以及所述目标状态信息建立初始任务规划网络,其中,所述初始任务规划网络包括基本任务和非基本任务;

分解单元303,用于基于分层任务网络规划器HTN以及所述基本任务转移网络将所述非基本任务进行逐层分解得到基本任务序列,其中,所述基本任务序列是由多层基本任务构成;

更新单元304,用于根据所述基本任务序列以及所述每个基本任务序列执行时序更新所述初始任务规划网络,得到更新后的任务规划网络,其中,所述更新后的任务规划网络为分层任务网络。

可选地,所述确定单元302,还用于:确定所述基本任务序列中每个基本任务所对应的至少一个伴随事件,其中,所述伴随事件是指执行所述基本任务过程中伴随发生的事件;根据伴随事件之间预设的时序逻辑以及伴随事件与基本任务之间预设的时序逻辑将所述至少一个伴随事件与其对应的所述基本任务绑定,得到绑定后的基本任务;根据所述绑定后的基本任务更新所述基本任务序列,得到更新后的基本任务序列。

可选地,所述确定单元302,还用于:根据基本任务之间预设的时序关系确定所述绑定后的基本任务中所述基本任务执行的第一时间区间,根据伴随时间之间预设的时序关系确定每个所述伴随事件执行的第二时间区间;判断所述第一时间区间与所述第二时间区间之间是否存在冲突;若存在,则根据预设的调整优化规则对所述绑定后的基本任务进行调整优化。

可选地,所述预设的调整优化规则,包括:调整所述第一时间区间或调整所述第二时间区间,直到调整后的第一时间区间与所述第二时间区间之间不存在冲突为止;或调整所述基本任务与所述伴随事件之间的执行逻辑关系,直到不存在冲突为止。

可选地,所述确定单元302,还用于:根据所述调整后的第一时间区间以及所述第二时间区间确定所述绑定后的基本任务对应的第三时间区间;判断任意相邻两个所述绑定后的基本任务对应的第三时间区间是否存在冲突;若存在,则调整所述第三时间区间,直到任意相邻两个所述绑定后的基本任务对应的第三时间区间不存在冲突为止。

可选地,所述更新单元304,具体用于:根据所述调整后的第三时间区间确定所述机械臂运动的第四时间区间;确定所述第四时间区间内与所述机械臂运动有关的部件的运动状态信息,其中,所述部件包括太阳帆板、天线或活动舱段;根据所述第四时间区间以及所述运动状态信确定所述机械臂对应的无碰撞空间,根据所述无碰撞空间以及所述基本任务序列更新所述初始任务规划网络。

可选地,所述分解单元303,具体用于:确定所述非基本任务对应的初始状态和目标状态,根据所述HTN、所述初始状态以及所述目标状态在所述基本任务转移网络中逐层搜索,确定出从所述初始状态转移到目标状态的多个基本任务,根据所述多个基本任务得到所述基本任务序列。

参见图4,本申请提供一种计算机设备,该计算机设备,包括:

存储器401,用于存储至少一个处理器所执行的指令;

处理器402,用于执行存储器中存储的指令执行图1所述的方法。

本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行图1所述的方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种无公共视野的多相机定位大工件及工业机器人位置补偿方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!