专利名称:基于规划执行依赖网的航天器规划序列灵活执行方法
专利类型:发明专利
专利申请号:CN202210877568.6
专利申请(专利权)人:北京理工大学
权利人地址:北京市海淀区中关村南大街5号
专利发明(设计)人:徐瑞,李世震,李朝玉,朱圣英,崔平远,高艾,梁子璇
专利摘要:本发明公开的基于规划执行依赖网的航天器规划序列灵活执行方法,属于航空航天技术领域。本发明实现方法为:在航天器任务规划序列的执行阶段,获取规划器规划得到的动作序列TL,将其构造为航天器任务规划执行依赖网EDN,EDN除了具有动作节点之外,还将动作的前提与效果作为状态节点,便于判断航天器当前状态与预期状态是否兼容。针对自身动作失败造成意外事件的情况,通过在执行依赖图中遍历寻找与当前状态兼容的预期状态,决定下一个执行的动作,实现航天器在执行任务规划序列时能够在观察到自身的意外事件时自主地跳过和重复动作,继续执行任务而不需要进行重规划或规划修复,提高航天器任务规划序列执行过程的效率、灵活性和鲁棒性。
主权利要求:
1.基于规划执行依赖网的航天器规划序列灵活执行方法,其特征在于:包括如下步骤,步骤一、获取航天器规划器规划得到的基于时间线的任务规划序列TL,包含动作名称、动作前提和效果、动作开始时间和动作持续时间信息;
步骤二、将任务规划序列TL构造为航天器任务规划序列执行依赖网EDN;所述航天器任务规划序列执行依赖网EDN除了具有动作节点之外,还将动作的前提与效果作为状态节点;
步骤三、以步骤二中航天器任务规划序列执行依赖网EDN为输入,设置当前执行时间CurrentTime初始值设置为参考零点时间、执行时间向前推移周期UnitTime;通过对比当前航天器状态与EDN中目标状态来判断航天器任务是否已执行完成;
步骤四、若步骤三中的条件不满足,则从后往前开始遍历EDN的各层,从最后一层之前的一层Sn‑1到第一层S0,寻找与当前状态R兼容的预期状态层 跳转至兼容层,从而决定下一个执行的动作,实现航天器在执行任务规划序列时能够在观察到自身的意外事件时自主地跳过和重复动作,继续执行任务而不需要进行重规划或规划修复,提高航天器任务规划序列执行过程的效率、灵活性和鲁棒性;
步骤五、若在遍历EDN过程中找到与当前航天器状态R相兼容的预期状态层 并且满足该层状态之后的动作ai+1是某个动作的开始时间节点,说明动作ai+1在当前时间是能够被调度执行的,则将当前执行时间CurrentTime值赋给动作ai+1作为其执行时间,并将动作ai+1加入已执行节点集合ExecutedA;
步骤六、若在遍历EDN过程中找到与当前航天器状态R相兼容的预期状态层 但该层状态之后的动作ai+1是某个动作的结束时间节点,此时还需要验证该节点对应的动作的开始时间节点已经被执行,即动作开始节点是否在已执行节点集合ExecutedA中;若这两个条件均满足,说明动作ai+1在当前时间是能够被调度执行的,则将当前执行时间CurrentTime值赋给动作ai+1作为其执行时间,并将动作ai+1加入已执行节点集合ExecutedA;
步骤七:重复步骤三到步骤六,并推进当前执行时间CurrentTime=CurrentTime+UnitTime,直到EDN中所有动作节点ak∈A均被调度执行;
步骤八:若通过步骤五与步骤六的遍历没有找到与当前航天器状态R兼容的预期状态层 表明当前规划序列TL不再适用,需要反馈信息给航天器的规划器及时进行重规划或规划修复,生成新的规划序列后再构建EDN进行调度执行;
步骤九:根据以上步骤一至步骤八能够实现对航天器任务规划序列的执行,在观察到意外事件时,通过在规划执行依赖网EDN遍历寻找预期规划中与当前航天器状态兼容的状态层,从而决定执行的下一个动作节点,进而允许跳过或重复动作,而不需要进行重规划或规划修复,提高航天器任务规划序列执行的灵活性和鲁棒性,保证航天器在轨自主运行的安全性。
2.如权利要求1所述的基于规划执行依赖网的航天器规划序列灵活执行方法,其特征在于:步骤二实现方法为,
航天器任务规划序列执行依赖网EDN由四元组N=(A,P,S,E)构成,其中A=(a1,a2,a3,…,an)为动作节点集合,表示规划序列TL中的动作,由瞬时动作、持续动作的开始和持续动作的结束时间点组成,a1代表要执行的第一个动作;P为状态节点集合,表示规划序列TL中动作的前提和效果状态,由动作节点集A中动作的前提pre(a)和效果eff(a)组成;S=(S0,S1,S2,…,Sn)为状态节点层集合,第k层状态集Sk包含了动作ak的效果状态eff(ak)和动作ak‑1的前提状态pre(ak‑1),S0代表初始状态层,Sn代表目标状态层;E是有向边的集合,表示节点之间的父子关系,动作节点的父节点是一个动作节点或多个状态节点,状态节点的父节点是一个动作节点或一个状态节点。
3.如权利要求2所述的基于规划执行依赖网的航天器规划序列灵活执行方法,其特征在于:步骤三实现方法为,
以步骤二中航天器任务规划序列执行依赖网EDN为输入,设置当前执行时间
CurrentTime初始值设置为参考零点时间、执行时间向前推移周期UnitTime;设当前观察到的航天器实际的状态为R,检查当前状态R是否包含EDN中的目标状态层Sn,并判断当前是否有正在执行的动作;若Sn中的每个状态节点都被R满足,即与当前航天器状态兼容,则可执行与该状态层相关联的动作节点;如果一个动作的开始节点已经被执行,而相应的动作的结束节点还没有被执行,则所述动作为正在执行;
若满足 且没有正在执行的动作,则直接对应EDN中最后一层,表示当前状态即为目标状态,任务执行完成。 说明书 : 基于规划执行依赖网的航天器规划序列灵活执行方法技术领域[0001] 本发明涉及一种基于规划执行依赖网的航天器规划序列灵活执行方法,属于航空航天技术领域。背景技术[0002] 随着航天技术的发展,航天器的任务数量和探测距离日益增长,依靠传统的地面测控站上传指令对航天器进行遥测遥控,将无法满足实时性和鲁棒性要求,难以保证长时间空间任务的安全运行。自主任务规划技术是赋予航天器自主完成复杂探测任务的关键技术,通过将任务信息和航天器能力信息建模为知识模型,用计算机语言进行编码并通过规划算法生成航天器任务序列,可节省大量物力财力,并缩短任务序列生成时间。[0003] 在实际的航天器探测任务中,使用自主任务规划技术控制航天器时,规划解的生成只是实际问题中的一部分。任务规划序列的执行是一个复杂的过程,即使规划解对于规划问题领域是有效的,在实际执行过程中也可能会执行失败。在任务执行过程中,航天器可能会面临一些意外事件。例如,在火星探测器拍照任务中,包含姿态机动、相机打开与校准等动作,实际任务执行时相机可能在规划序列给定时间内未完成校准或者打开失败、姿态机动可能提前完成或者机动错误。此时如果按照原定规划序列继续执行任务,就会导致任务执行失败。[0004] 在意外事件导致任务执行失败问题中,目前国内外众多学者进行了深入的研究,也采用了许多方法,如基于概率模型的规划执行方法、基于修补规则的任务修复方法等。虽然上述方法都能解决任务执行失败的问题,但都是在观察到执行失败后反馈信息给航天器再进行重规划或者规划修复,没有从执行本身的角度来解决问题,忽略了可能仍然在执行其他动作的事实,会耗费大量时间,不满足航天任务的实时性和安全性。发明内容[0005] 针对航天器规划序列执行过程中意外事件导致执行失败的问题,本发明的主要目的是提供一种基于规划执行依赖网的航天器规划序列灵活执行方法,能够在航天器任务规划序列的执行阶段,针对自身动作失败造成意外事件的情况,通过在执行依赖图中遍历寻找与当前状态兼容的预期状态,从而决定下一个执行的动作,实现航天器在执行任务规划序列时能够在观察到自身的意外事件时自主地跳过和重复动作,继续执行任务而不需要进行重规划或规划修复,提高航天器任务规划序列执行过程的效率、灵活性和鲁棒性。[0006] 本发明的目的是通过下述技术方案实现的:[0007] 本发明公开的基于规划执行依赖网的航天器规划序列灵活执行方法,获取规划器规划得到的动作序列TL,将其构造为航天器任务规划执行依赖网EDN,EDN除了具有动作节点之外,还将动作的前提与效果作为状态节点,便于判断航天器当前状态与预期状态是否兼容。在任务执行过程中观察到意外事件产生的航天器状态变化时,在EDN中后向搜索与航天器当前状态R兼容的预期规划状态层 将兼容状态相关联的动作节点ak+1调度到下一步执行,从而将观察到的意外事件导致的航天器状态变化通过跳过动作或重复动作来应对,使得航天器在任务执行过程中自身出现意外事件时不需要进行重规划与规划修复仍可继续正常执行任务目标,省去重规划或规划修复时间,节省星上计算机内存与计算时间,能够提高航天器任务规划序列执行的效率、灵活性和鲁棒性。[0008] 本发明公开的基于规划执行依赖网的航天器规划序列灵活执行方法,包括如下步骤:[0009] 步骤一、获取航天器规划器规划得到的基于时间线的任务规划序列TL,包含动作名称、动作前提和效果、动作开始时间和动作持续时间信息。[0010] 步骤二、将任务规划序列TL构造为航天器任务规划序列执行依赖网EDN。所述航天器任务规划序列执行依赖网EDN除了具有动作节点之外,还将动作的前提与效果作为状态节点。[0011] 航天器任务规划序列执行依赖网EDN由四元组N=(A,P,S,E)构成,其中A=(a1,a2,a3,…,an)为动作节点集合,表示规划序列TL中的动作,由瞬时动作、持续动作的开始和持续动作的结束时间点组成,a1代表要执行的第一个动作;P为状态节点集合,表示规划序列TL中动作的前提和效果状态,由动作节点集A中动作的前提pre(a)和效果eff(a)组成;S=(S0,S1,S2,…,Sn)为状态节点层集合,第k层状态集Sk包含了动作ak的效果状态eff(ak)和动作ak‑1的前提状态pre(ak‑1),S0代表初始状态层,Sn代表目标状态层;E是有向边的集合,表示节点之间的父子关系,动作节点的父节点是一个动作节点或多个状态节点,状态节点的父节点是一个动作节点或一个状态节点。[0012] 步骤三、以步骤二中航天器任务规划序列执行依赖网EDN为输入,设置当前执行时间CurrentTime初始值设置为参考零点时间、执行时间向前推移周期UnitTime。通过对比当前航天器状态与EDN中目标状态来判断航天器任务是否已执行完成。[0013] 以步骤二中航天器任务规划序列执行依赖网EDN为输入,设置当前执行时间CurrentTime初始值设置为参考零点时间、执行时间向前推移周期UnitTime。设当前观察到的航天器实际的状态为R,检查当前状态R是否包含EDN中的目标状态层Sn,并判断当前是否有正在执行的动作。若Sn中的每个状态节点都被R满足,即与当前航天器状态兼容,则可执行与该状态层相关联的动作节点。如果一个动作的开始节点已经被执行,而相应的动作的结束节点还没有被执行,则所述动作为正在执行。[0014] 若满足 且没有正在执行的动作,则直接对应EDN中最后一层,表示当前状态即为目标状态,任务执行完成。[0015] 步骤四、若步骤三中的条件不满足,则从后往前开始遍历EDN的各层,从最后一层之前的一层Sn‑1到第一层S0,寻找与当前状态R兼容的预期状态层 跳转至兼容层,从而决定下一个执行的动作,实现航天器在执行任务规划序列时能够在观察到自身的意外事件时自主地跳过和重复动作,继续执行任务而不需要进行重规划或规划修复,提高航天器任务规划序列执行过程的效率、灵活性和鲁棒性。[0016] 步骤五、若在遍历EDN过程中找到与当前航天器状态R相兼容的预期状态层并且满足该层状态之后的动作ai+1是某个动作的开始时间节点,说明动作ai+1在当前时间是能够被调度执行的,则将当前执行时间CurrentTime值赋给动作ai+1作为其执行时间,并将动作ai+1加入已执行节点集合ExecutedA。[0017] 步骤六、若在遍历EDN过程中找到与当前航天器状态R相兼容的预期状态层但该层状态之后的动作ai+1是某个动作的结束时间节点,此时还需要验证该节点对应的动作的开始时间节点已经被执行,即动作开始节点是否在已执行节点集合ExecutedA中。若这两个条件均满足,说明动作ai+1在当前时间是能够被调度执行的,则将当前执行时间CurrentTime值赋给动作ai+1作为其执行时间,并将动作ai+1加入已执行节点集合ExecutedA。[0018] 步骤七:重复步骤三到步骤六,并推进当前执行时间CurrentTime=CurrentTime+UnitTime,直到EDN中所有动作节点ak∈A均被调度执行。[0019] 步骤八:若通过步骤五与步骤六的遍历没有找到与当前航天器状态R兼容的预期状态层 表明当前规划序列TL不再适用,需要反馈信息给航天器的规划器及时进行重规划或规划修复,生成新的规划序列后再构建EDN进行调度执行。[0020] 步骤九:根据以上步骤步骤一至步骤步骤八能够实现对航天器任务规划序列的执行,在观察到意外事件时,通过在规划执行依赖网EDN遍历寻找预期规划中与当前航天器状态兼容的状态层,从而决定执行的下一个动作节点,进而允许跳过或重复动作,而不需要进行重规划或规划修复,提高航天器任务规划序列执行的灵活性和鲁棒性,保证航天器在轨自主运行的安全性。[0021] 有益效果:[0022] 1、本发明公开的基于规划执行依赖网的航天器规划序列灵活执行方法,将任务规划序列TL构造为航天器任务规划序列执行依赖网EDN。所述航天器任务规划序列执行依赖网EDN除了具有动作节点之外,还将动作的前提与效果作为状态节点,便于判断航天器当前状态与预期状态是否兼容,进而能够在EDN中遍历寻找与当前状态兼容的预期状态层。[0023] 2、本发明公开的基于规划执行依赖网的航天器序列灵活执行方法,在有益效果1的基础上,在任务执行过程中观察到意外事件产生的航天器状态变化时,通过在EDN中遍历寻找与当前状态兼容的预期状态层,从而决定下一个执行的动作节点,进而跳过或重复某些动作以应对航天器自身的意外事件造成的状态改变,而不需要进行重规划或规划修复,增强航天器任务规划执行的效率、灵活性和鲁棒性,进而保证航天器在轨自主运行的安全性。附图说明[0024] 图1是本发明公开的基于规划执行依赖网的航天器规划序列灵活执行方法流程图。[0025] 图2是任务规划序列的执行依赖网EDN的示意图。具体实施方式[0026] 为了更好的说明本发明的目的和优点,下面结合附图和实施例对发明内容做进一步说明。[0027] 为了验证方法的可行性,以航天器拍照任务规划序列的执行为例,任务包含相机打开、姿态机动、相机校准动作,意外事件是相机校准后仍未对准、姿态机动提前完成。[0028] 如图1所示,本实施例公开的基于规划执行依赖网的航天器规划序列灵活执行方法,具体实现步骤如下:[0029] 步骤一、获取航天器规划器规划得到的基于时间线的任务规划序列TL,包含动作名称、动作前提和效果、动作开始时间和动作持续时间信息。[0030] 规划序列如表1所示,航天器初始时指向go且相机未校准,任务目标为对g1进行拍照获取一张照片。[0031] 表1规划序列[0032][0033] 步骤二、将任务规划序列TL构造为航天器任务规划序列执行依赖网EDN。所述航天器任务规划序列执行依赖网EDN除了具有动作节点之外,还将动作的前提与效果作为状态节点。[0034] 航天器任务规划序列执行依赖网EDN由四元组N=(A,P,S,E)构成,其中A=(a1,a2,a3,…,an)为动作节点集合,表示规划序列TL中的动作,由瞬时动作、持续动作的开始和持续动作的结束时间点组成,a1代表要执行的第一个动作;P为状态节点集合,表示规划序列TL中动作的前提和效果状态,由动作节点集A中动作的前提pre(a)和效果eff(a)组成;S=(S0,S1,S2,…,Sn)为状态节点层集合,第k层状态集Sk包含了动作ak的效果状态eff(ak)和动作ak‑1的前提状态pre(ak‑1),S0代表初始状态层,Sn代表目标状态层;E是有向边的集合,表示节点之间的父子关系,动作节点的父节点是一个动作节点或多个状态节点,状态节点的父节点是一个动作节点或一个状态节点。[0035] 步骤一的规划序列中,动作节点共有六个:相机校准开始、相机校准结束、姿态机动开始、姿态机动结束、对g1拍照开始、对g1拍照结束;状态节点为表1中的所有前提与效果;状态节点层有七层,第一层S0包含状态相机未校准、航天器指向g0,第七层包含状态有一张g1照片,其余层可依次类推;有向边包括各动作的开始节点到结束节点的有向边、动作前提状态节点到动作开始节点的有向边、动作结束节点到动作效果状态节点的有向边和状态节点到下一层相同状态节点之间的有向边。图2为步骤一中规划序列的执行依赖网示意图,其中椭圆代表动作节点,矩形代表状态节点。[0036] 步骤三、以步骤二中航天器任务规划序列执行依赖网EDN为输入,设置当前执行时间CurrentTime初始值设置为0、执行时间向前推移周期UnitTime=1。通过对比当前航天器状态与EDN中目标状态来判断航天器任务是否已执行完成。[0037] 以步骤二中航天器任务规划序列执行依赖网EDN为输入,设置当前执行时间CurrentTime初始值设置为0、执行时间向前推移周期UnitTime=1。设当前观察到的航天器实际的状态为R,检查当前状态R是否包含EDN中的目标状态层Sn,并判断当前是否有正在执行的动作。若Sn中的每个状态节点都可被R满足,即与当前航天器状态兼容,则可执行与该状态层相关联的动作节点。如果一个动作的开始节点已经被执行,而它相应的动作的结束节点还没有被执行,那么这个动作就是正在执行。[0038] 若满足 且没有正在执行的动作,则直接对应EDN中最后一层,表示当前状态即为目标状态,任务执行完成。[0039] 在本例中即判断当前航天器状态是否已经包含第七层的有一张g1照片状态,若包含则说明任务目标已达成。[0040] 步骤四、若步骤三中的条件不满足,则从后往前开始遍历EDN的各层,从最后一层之前的一层Sn‑1到第一层S0,寻找与当前状态R兼容的预期状态层 跳转至兼容层,从而决定下一个执行的动作,实现航天器在执行任务规划序列时能够在观察到自身的意外事件时自主地跳过和重复动作,继续执行任务而不需要进行重规划或规划修复,提高航天器任务规划序列执行过程的效率、灵活性和鲁棒性。在本例中即从第六层状态开始遍历到第一层状态。[0041] 步骤五、若在遍历EDN过程中找到与当前航天器状态R相兼容的预期状态层并且满足该层状态之后的动作ai+1是一个动作的开始时间节点,说明动作ai+1在当前时间是能够被调度执行的,则将当前执行时间CurrentTime值赋给动作ai+1作为其执行时间,并将动作ai+1加入已执行节点集合ExecutedA。[0042] 步骤六、若在遍历EDN过程中找到与当前航天器状态R相兼容的预期状态层但该层状态之后的动作ai+1是一个动作的结束时间节点,此时还需要验证该节点对应的动作的开始时间节点已经被执行,即动作开始节点是否在已执行节点集合ExecutedA中。若这两个条件均满足,说明动作ai+1在当前时间是能够被调度执行的,则将当前执行时间CurrentTime值赋给动作ai+1作为其执行时间,并将动作ai+1加入已执行节点集合ExecutedA。[0043] 例如,当执行完动作节点相机校准结束,出现意外事件导致相机实际并未校准,即观察到相机状态仍为相机未校准,此时从最后一层状态往前开始遍历寻找与当前航天器状态兼容的状态层,遍历到第一层S0时才兼容,则下一个调度执行的动作节点仍为相机校准开始,即重复执行动作相机校准;若在执行姿态机动开始动作节点之前,意外事件导致航天器已经指向g1,即观察到航天器指向g0状态,此时从最后一层状态往前开始遍历寻找与当前航天器状态兼容的状态层,遍历到第五层S4时发现兼容,则下一个调度执行的动作节点为对g1拍照开始,即直接跳过了动作姿态机动。[0044] 步骤七:重复步骤三到步骤六,并推进当前执行时间CurrentTime=CurrentTime+UnitTime,直到EDN中所有动作节点ak∈A均被调度执行。[0045] 步骤八:若通过步骤五与步骤六的遍历没有找到与当前航天器状态R兼容的预期状态层 表明当前规划序列TL不再适用,需要反馈信息给航天器的规划器及时进行重规划或规划修复,生成新的规划序列后再构建EDN进行调度执行。[0046] 例如发生规划问题领域之外的意外事件导致相机关闭,此时无法继续执行规划序列中的任何动作节点,只能反馈给航天器进行重规划或规划修复重新打开相机,生成新的规划序列后再构建EDN进行调度执行。[0047] 步骤九:根据以上步骤步骤一至步骤步骤八能够实现对航天器任务规划序列的执行,在观察到意外事件时,通过在执行依赖网EDN遍历寻找预期规划中与当前航天器状态兼容的状态层,从而决定执行的下一个动作节点,进而允许跳过或重复动作,而不需要进行重规划或规划修复,提高航天器任务规划序列执行的灵活性和鲁棒性,保证航天器在轨自主运行的安全性。[0048] 以上所述的具体描述,对发明的目的、技术方案和有益效果进行进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
专利地区:北京
专利申请日期:2022-07-25
专利公开日期:2024-06-18
专利公告号:CN115196044B