吴 凡,赵 瑞,何锡明,姜 萍,荣志飞,王琪智,裴健超
(北京航天飞行控制中心,北京 100094)
空间站机械臂[1-3]是中国空间站工程[4-5]的核心关键设备之一,承担任务类型多样[6],如舱间爬行、支持航天员出舱[7]、载荷舱外安装[8-9]、舱外状态检查等。空间站作为在轨时间很长的航天器,机械臂在其中担任了重要的角色。机械臂操作的控制模式不同于传统绕飞航天器,对其的主要影响,不仅是天体间的相对运动,除光照、通信条件制约之外,还有和空间站各部位、各组件及航天员间空间环境的干涉、平台操作的影响等,都会进行实时交互且是相互作用的,空间站机械臂任务的灵活性不言而喻。
由于应用环境的特殊性,空间站机械臂的智能水平和自主行为受限,主要通过地面遥操作的配合实施对其的控制。在轨过程中需要进行频繁的任务规划,获得地面控制航天器动作序列,完成地面对机械臂行为、动作的控制,使航天器圆满地完成既定的任务目标。
智能规划技术是指通过对周围环境的认识与分析,面向既定的任务目标,基于行为动作及其资源限制和相关约束,对控制目标的状态及后续行为进行推理,综合制定出实现任务目标的动作序列。
智能规划起源于状态空间搜索、控制理论等研究,以及机器人技术、调度和其他领域的实际需要,是人工智能领域中一个重要的研究方向。长期以来,研究者们致力于智能规划技术的研究,建立了多种智能规划方法,取得显著的成果,并在实际应用中解决了很多类型、很多领域的问题。
在20 世纪90 年代之前规划(Planning)一直采用逻辑演绎的方法予以求解,基于知识表示与推理(Knowledge Representation and Reasoning),侧重于经典逻辑下的各种推理技术的利用。1971 年,斯坦福研究所开发了一种自动规划器STRIPS,在一个模型空间中找到一个算子序列,将给定的初始问题转化为满足目标条件的问题[10]。1975 年,EARL[11-12]提出了NOAH(Nets of Action Hierarchies)系统,第一次实现分层任务网络规划(Hierarchical Task Network,HTN)。2003年DANA等[13]提出了SHOP2规划系统,在该年度国际规划竞赛中发挥了出色的表现,是一个典型的HTN 规划系统。2004 年NASA 使用了MAPGEN 规划器[14]为火星探测器的日常运行进行了规划。2007年MEXAR2规划器[15]为欧洲航天局(ESA)的火星快车任务执行了日常规划和科学规划。
航天器遥操作任务规划技术[16-17]是智能规划技术的一类典型应用。在之前我国成功实施了嫦娥五号任务、天问一号任务,在地月空间、行星际空间的遥操作任务中,规划技术发挥了至关重要的作用,也奠定了坚实的基础[18-21]。航天器遥操作任务规划基于任务特点和目标,在复杂多约束的不同任务类型中完成各种事件的调度和集成,实现航天器行为的规划。
空间站机械臂的工作类型多样,一次完整的机械臂工作主要包括的行为有重启、预热、相机设置、运动、状态设置,以及相应的组合体姿态和状态的设置和恢复等。
机械臂运动包括大臂运动模式[1]、小臂运动模式[22]、组合臂运动模式[23]等。其中运动均是由多步运动构成的,经过多个中间点到达运动目标点,此外,还包含机械臂末端的捕获运动和释放运动,如图1 所示。机械臂大臂、小臂分别具有一定数量的不同的基座,各有7 个关节角,2 个末端,每个末端均可实施捕获、释放运动[24-25],基于此状态,大臂、小臂、组合臂仅爬行路径就有几十条,其他类型工作中机械臂路径更加繁多,并且其中的大部分控制动作是不一样的。
图1 机械臂运动模式Fig.1 Manipulator motion modes
空间站机械臂任务规划是以机械臂运动及其操作过程为引导,同时考虑非机械臂运动事件、非机械臂事件和机械臂事件间的逻辑耦合关系以及时序发生关系的规划。规划模式如图2 所示,其中月事件反应的是机械臂规划的需求,飞控事件是描述每个行为的模块。
图2 任务规划模式Fig.2 Task planning mode
针对任务目标和规划约束的分析,在获取月事件需求后,基于机械臂工作过程,以机械臂运动步骤、航天员活动流程等为基准,辅以平台各状态设置过程、机械臂各状态设置情况,将机械臂工作月事件进行分解及策略展开。同时,针对机械臂运动步骤,结合分解的月事件提取机械臂运动各阶段对应的位置姿态信息,分析形成机械臂运动需求。
基于上述需求层分析,整理形成月事件分解结果,建立分层规划对象模型,再结合机械臂运动学规划结果、规划初始状态、特殊约束需求,规划器完成满足测控资源整理模型下的任务规划,完成在考虑各行为发生条件、执行逻辑和时序安排下,满足各类约束的地面控制动作序列,通过规划验证后输出控制动作序列,让航天器在满足测控资源的条件下合理有效地完成各项工作。
基于机械臂工作的动态过程,机械臂规划面临很多方面的约束,主要考虑以下几个方面。
1)基本约束:月事件所包含的首个飞控事件约定了本次规划的起始时间,即动作的起始时间,后续飞控事件采用逻辑顺序约束,在首个飞控事件之后依次安排;部分飞控事件由特征条件约束;部分飞控事件需满足周期性要求,按照一定的时间间隔发生;部分飞控事件有阳照、阴影限制约束。
2)联合约束:部分飞控事件由多个或多类约束条件共同进行约束。
3)次生约束:已规划的结果可能会对部分飞控事件产生影响,从而形成新的约束,如机械臂运动过程中可能会在特定时刻对地面和器上的通信产生遮挡,遮挡的时段内不可安排飞控事件,又如机械臂运动过程中可能会与航天器产生干涉,为保证安全可能在运动前安排相应空间站平台设备调整飞控事件。
基于地面工程师对空间站机械臂构型、供配电系统、信息系统、控制系统的设计,对主要工作模式和任务需求进行分析,按照规划任务的目标,构建分层规划对象模型和状态空间模型,在分层规划对象中建立状态推理模型,对部分飞控事件或控制动作进行多约束设计,结合测控资源整理模型实现规划的迭代计算,如图3 所示。
图3 模型的总体架构Fig.3 Overall network architecture of the mode
空间站机械臂任务规划过程存在通信窗口约束,单次任务规划对象无法在一个时间窗口内完成,在事件规划的同时,测控资源的整理是不可或缺的。
空间站机械臂任务规划的可用区间必须能够包含当次规划任务需求的总时长,并且可用区间的起始时间要早于任务需求中事件的最早开始时间。
通过定义全局时间点,构建资源的基础区间,基础区间进行逻辑耦合形成应用区间。将适配的基础区间或应用区间作为机械臂的可用区间,即资源项,还可以对阳照区间和阴影区间进行标识。
在规划器按照分层规划对象模型展开规划时,根据飞控事件的资源需求安排在符合约束条件的可用区间内。
机械臂工作受温度、能源、资源等多种条件制约,并与空间站平台其他分系统的工作相互耦合,其行为本身具有多种复杂的模式和极强的动态特性,在不同应用场景下还具有不同的流程分支,导致任务规划过程具有较强的不确定性。
如果基于各动作直接进行任务规划,不仅规划计算耗时很长,而且还会增加管理和维护的成本。为提高规划效率,将机械臂相关的任务需求进行分解和细化分析,基于经验和分析结果将月事件分解展开为相应的飞控事件模块,每一个飞控事件模块对应着一组或者多组动作控制序列。
基于上述优化思想,将机械臂规划模型构建为包含月事件层、飞控事件层和控制动作序列层的分层对象模型,模型每一层的模块在任务过程中可以持续补充以及复用,模型通过层级调用产生本次任务中的全部地面控制动作序列,取代人为通过单控制动作排列的方式产生全部动作控制计划,满足不同阶段的规划目标,提升了长期任务过程中的地面工作效率和灵活性,由于经过任务验证的模块持续复用,模型的准确性也大大提升,如图4 所示。
图4 分层规划对象模型Fig.4 Layered programming object model
月事件层由可以完成当前任务需求Ψ的部分飞控事件Ωi构成,并在该层通过逻辑顺序约束表达式描述飞控事件间的关系,飞控事件的关系由地面工程师给出建议,明确在一次规划任务中飞控事件的集合。
飞控事件描述了机械臂工作月事件实施的具体步骤,在机械臂规划中,飞控事件作为规划过程中的最小逻辑单元,每个飞控事件描述机械臂或组合体平台的一个最小动作或最小状态,设计时遵循逻辑闭环原则,以实现飞控事件在规划时的逻辑正确。
机械臂在不同的工作场景下具有多样的分支和状态,如在不同基座上实施相同行为时所采用的控制动作不同,又如针对所有分支或状态进行穷举设计,会导致飞控事件数量过多,使得模型的维护成本激增,所以设计飞控事件时需满足可复用性要求,每个飞控事件均需包含可能出现的不同分支和不同状态Mv,实现飞控事件的归一化设计。在此基础上,针对相应飞控事件的不同分支及不同状态,标识不同的能耗Ev,设计具有互斥性质的调度参数Pv及参数赋值,提供人工管理和选择该飞控事件的分支及状态的接口。
每个模式Mv由控制动作序列层构成,每个控制动作序列包括多个动作和对应动作的持续时长,并且可以嵌套其他的动作序列。
式中:Iu为控制动作的代号;Au为控制动作Iu的名称;ku为控制动作Iu的持续时长;pu为针对各控制动作设置的调度参数,一个控制动作可能会配置多个调度参数,如定义是主份还是备份控制、动作是否重复多次等。
在月事件层的飞控事件中将对应的调度参数Pv和pu进行集中描述,如图5 所示,定义是否安排某飞控事件、飞控事件包含的各种状态以及各状态对应的不同动作分支;将优先权重最大的常用调度参数设置为缺省状态。
图5 模型中参数的定义及设置Fig.5 Definition and setting of parameters in the model
任务规划过程伴随着规划模型从初始状态到最终状态的传递和推导,状态是决定飞控事件或控制动作选择的关键。在传统的人工规划模式中,地面工程师需要人为推导状态选择调度参数,若规划输入的需求或状态发生改变时,则需重新进行状态推导,甚至对规划模型进行反复修正和调整。在空间站机械臂规划中,由于机械臂工作相关的状态繁多,涉及的飞控事件或控制动作序列数量及相应的参数也非常多,会导致规划模型的设计、管理、维护及使用的效率低下、成本高昂、错误率高。
根据任务过程,将机械臂状态分为静态状态和动态状态,静态状态主要包含主备分支、部分序列中的特殊设置分支,需基于分支选择展开规划,动态状态主要由规划当前状态进行约束,且同一飞控事件安排在不同阶段时的约束状态也不一样。
为提升分层规划对象模型的灵活性、通用性,替代人工完成全过程的状态推导,将机械臂动态状态Sj及取值范围的合集建立状态空间Σ,作为数据库存储、调用及对查,并在规划前对初始状态空间进行赋值。
在模型控制动作序列层中,对可导致机械臂状态变化的控制动作后增加设置状态空间描述的虚拟字段V_set,规划器识别并处理该类字段,在规划过程中伴随进行状态空间推理,推导状态空间中当前的各类状态的赋值,并将改变后的状态引入后续飞控事件及控制动作的规划中。
同时,按照机械臂工作逻辑及平台各分系统控制逻辑,在模型的飞控事件或控制动作序列层增加状态调度参数,当满足某一状态或同时满足多个设定状态时,调度该事件或者该控制动作发生。并且状态调度参数同调度参数Pv和pu在月事件的飞控事件中描述。规划器将状态规划和时序逻辑规划相结合,根据推理,状态空间中的当前状态值,由状态调度参数选择正确的飞控事件或控制动作发生。对状态推理过程进行了简单的示例,其状态模型如图6 所示。
图6 状态模型Fig.6 State model
针对任务过程中部分飞控事件或控制动作发生的联合约束的需求,模型中增加多状态联合约束表达式的描述,规划器对该类表达式进行识别处理,按照正确的状态进行规划。
典型的联合约束对于某控制动作,如多状态约束,在几个状态同时等于指定状态值、同时不等于指定状态值、部分等于部分不等于指定状态值的情况下控制动作的发生。对于某飞控事件的约束可能包含机械臂当前位置状态、器上能源状态、到达某时间周期,以及部分状态等于或不等于指定状态值。
机械臂运动规划的具体控制参数通过仿真验证后,将各步骤运动参数传递至规划器。运动参数包括每一步运动的执行机构、运动控制动作代号、运动时长,以及状态空间中的、运动绑定的状态和状态值。
在分层规划对象模型中,将机械臂运动设计为一个飞控事件,规划器识别收到的运动参数中的字段,按步骤读取参数中每一步运动过程,基于执行机构字段的机械臂大臂或小臂调取大臂或小臂控制动作序列,在该控制动作序列中采用虚拟字段V_DMOVE 或V_XMOVE 来描述路径。在规划器规划展开动作时,虚拟字段替换为参数中运动控制动作代号,将动作的持续时长替换为参数中的运动时长,同时将该步骤中涉及的状态字段更新存储在状态空间中,且该状态值参与后续的规划,如图7所示。
图7 运动控制参数调度Fig.7 Scheduling diagram of the motion control parameters
在完成动作序列展开后,规划器需要对生成的地面控制动作序列结果进行验证,对结果的正确性进行校核。
主要考虑以下4 个方面:
1)动作发生的时间间隔是否满足最小发生间隔。某两个动作间的间隔时长是否大于某值或者小于某值。
2)某些动作间是否有先后顺序或时间间隔的要求,可能存在于一个动作序列或不同的飞控事件中,动作的发生时序,某动作发生后多长时间内,另一个动作发生。
3)部分飞控事件需要周期性发生、部分飞控事件的阴影光照约束,以及运动过程是否和航天器产生干涉。
4)对航天器的能源消耗、热控裕度进行验证。
将上述内容通过验证虚拟标识和验证逻辑表达式进行描述,规划器识别虚拟标识和逻辑表达式,在执行规划验证计算时,对验证结果进行显示,对问题进行错误提示。
使用规划语言将模型中各字段进行识别和描述,针对建立的问题模型,再基于初始状态、目标状态,通过地面工程师手动操作和规划器的计算对问题进行迭代求解,计算生成能够完成任务目标的地面控制动作序列。规划求解过程分解如图8 所示。
图8 规划求解流程Fig.8 Flow chart of planning and solving
1)地面工程师根据领域知识、任务的需求和目标,针对机械臂运动步骤和各阶段位姿信息,整理形成机械臂运动需求,完成运动学规划。基于机械臂工作全过程建立分层规划对象模型,若当前规划非首次任务可以直接复用该模型,如有新增的事件及动作可以在模型中进行调整和补充。
2)地面工程师根据任务需求,建立测控资源整理模型。
3)规划器创建规划任务,选定分层规划对象模型和执行脚本包。执行脚本包描述了规划流程及各规划阶段项。
4)规划器处理机械臂规划需求,将分层规划对象模型建立任务规划执行包。
5)规划器获取全局初始状态,完成分层规划模型的格式检查,读取运动控制参数。
6)规划器根据输入的测控资源和测控资源整理模型规划机械臂工作的可用区间。
7)在规划器初始条件设置界面对首个飞控事件指定北京时,指定规划开始时刻为首个飞控事件实施的北京时。
8)规划器根据各飞控事件所涉及的调度参数信息进行列表化显示,提供人工干预的接口。规划时默认按照缺省参数进行规划,如果调度参数需要改变,地面工程师利用人工干预接口对相应调度参数进行调整,按照参数取值和分支选择对各事件进行规划。
9)规划器根据月事件层中飞控事件间逻辑顺序约束表达式及资源占用方式,规划器识别已规划飞控事件的资源占用状态和逻辑顺序,按顺序对飞控事件实施规划。
10)规划器根据状态空间初始赋值和设计的状态推理模型,根据状态空间中当前状态值,由状态调度参数自适应的选择分支,规划器识别并处理状态设置字段,设置状态空间中的状态赋值,并将改变后的状态引入后续飞控事件及控制动作的规划中。
11)规划器在规划过程中对同一时间发生的地面控制动作进行错误提示,地面工程师按照错误类型对设计的分层规划模型进行调整,实施重规划,完成冲突消解。
12)规划完成后规划器执行规划验证,基于规划验证模型,规划器对控制动作的存在性、工作流程、能源消耗、热控裕度的扩展性,以及部分实施逻辑进行验证,并将验证结果返回输出,地面工程师对验证结果和地面控制动作序列结果进行校核。若验证结果未通过,地面工程师对相应问题进行模型调整实施重规划,直至通过验证。
13)若测控资源发生调整,或有次生约束的产生,规划器同样需要完成重规划。若出现应急情况,规划器根据人工指定的应急状态规划相应的应急分支。
14)规划器完成符合要求的规划后,将通过验证的地面控制动作序列结果和机械臂控制参数进行发布与传递。
这里对机械臂在轨某一次任务片段的测试验证结果进行展示,机械臂初始位置构型为组合臂状态,初始状态为大臂关节角度W0={J1,J2,J3,J4,J5,J6,J7},小臂关节角度w0={j1,j2,j3,j4,j5,j6,j7},空间站机械臂从组合臂状态拆解为单臂状态,大小臂运动至存储常态构型We=,实现由初始状态到最终状态的状态转移,执行时间控制在半个工作日内,涉及控制动作百余个,其中机械臂运动控制动作11 个,涉及机械臂大臂运动和小臂运动,具体控制动作内容用代号表示,涉及状态空间绝大部分状态及部分状态取值。
分层规划对象模型的月事件层涉及具有逻辑顺序约束的飞控事件18 件,主要类型有运动准备、加电设置、断电设置、运动、抓捕、释放等,包含对电路的设置、电机的设置、相机的设置、运动的控制等。其中在飞控事件层部分用到的事件对应状态有10 余种,在动作序列层涉及调度参数和状态参数,以及状态空间状态值的设置改变,参数间存在多约束逻辑关系表达,如图9 所示。
图9 实例分层规划对象模型Fig.9 Instance layered planning object model
模型中包含了大量的调度参数和状态分支,在人工干预和状态推理下规划器进行规划,图中示例了部分飞控事件、动作的调度参数分支和状态分支,如其中的平台设置飞控事件基于调度参数Pv分为了两种模式;分支1 控制动作序列中的参数pu决定了控制动作1 或2 的安排;第1 步机械臂运动飞控事件基于运动执行机构选择大臂运动;断电飞控事件基于状态为基座2 对应的控制动作序列中的状态设置目标的生效,影响了上电切换的状态分支。
根据当前机械臂起始位置姿态和目标点位置姿态,规划机械臂大臂和小臂运动路径总计11 条,其中一条路径如图10 所示。
图10 机械臂运动路径规划结果Fig.10 Results of the manipulator motion path planning
规划器规划过程约定首个飞控事件起始时间2023-09-08 T08:30:00。规划得到地面控制动作序列简要描述见表1,首控制动作时间正确,各飞控事件间的逻辑顺序正确,飞控事件8 和飞控事件14 阴影区资源约束正确。各控制动作均在可用区间内,基于调度参数的飞控事件和控制动作选择有效。基于状态推理的飞控事件和控制动作分支选择正确,引起状态变化的控制动作后状态设置正确,并参与后续规划。多约束动作和飞控事件满足逻辑表达式约定,如飞控事件9,当前可用区间内存在机械臂运动、下一飞控事件时长大于本可用区间剩余时长、机械臂位于安全位置、本可用区间和下一可用区间间隔时间超过20 min。运动控制动作调取有效。地面控制动作序列满足资源、能源消耗及热控裕度的限制。规划验证结果为通过验证所限定的条件,可以合理高效地完成本次任务需求。
首先,根据测控资源整理模型,规划了行为、动作安排的可用区间。完成了任务向子任务的分解,将规划任务目标和需求分解为月事件层、飞控事件层、动作序列及动作层,构建了分层规划对象模型作为数据库存储复用,若存在新增飞控事件,则针对当次需求对相应飞控事件及动作序列进行设计和增补。同时,设定了状态空间,描述时变的器上状态变量和状态值,构建了状态空间推理模型,通过状态参数的自动传递和其他可人工干预的调度参数,规划器识别处理参数完成了不同的飞控事件、动作序列及动作的调度组合,在模型避免多次更动的情况下,具备了适用于多场景、多分支的规划能力。
其次,模型中设计了逻辑顺序约束、飞控资源占用等多约束条件以及多状态联合约束表达式,规划器识别各类约束并按照约束优先级进行处理规划。
再次,对模型中的运动事件进行了归一化设计,对运动路径进行了统一管理。建立了规划验证模型,对规划结果的正确性进行了复核校对。
最后,规划器基于执行脚本按阶段展开了规划,在时间的调度和可用区间内,通过状态推理和地面工程师的干预选项,完成多分支、多变化状态下的航天器地面控制动作序列的编排及验证,完成航天器的任务规划,且规划器对缺省参数的设置和识别,实现了基于所建模型最高频率场景下的一键式操控模式,实现了任务目标。
通过机械臂在轨任务实施结果表明,该方法增加了器上行为安排的灵活性,有效地提升了地面控制动作序列集成的自动化和效率,优化了遥操作任务规划模式,对后面持续的、复杂多变的遥操作任务规划工作均具有较高的实际工程应用价值。
任务规划技术是保证航天器安全、高效地开展工作的基础和关键,国内外对此开展了大量研究。结合未来遥操作任务要求和发展趋势,还有很多可以探索并深入研究的方面:
1)当前分层规划对象模型月事件层的飞控事件及其逻辑关系多由地面工程师给出建议,后续考虑由状态驱动来实现飞控事件的自动安排。
2)当前的规划求解基于整理获得的可用区间,在获取规划结果后,并没有因为器上行为导致的可用区间的改变对规划器进行反馈,后续考虑对规划器进行反馈,并根据调整后的状态重新整理可用区间,并在此基础上实施重规划,直至输出符合各限制逻辑的规划结果。
3)当前分层规划对象模型基于工作内容设计相应的飞控事件,在规划求解过程中将飞控事件放在条件适配的可用区间中,飞控事件与资源深度绑定,当某些飞控事件无法完全安排进适配的可用区间时,会造成飞控事件的无条件向后平移安排,影响后续飞控事件实施逻辑或大幅推迟当日工作进度。后续考虑在分层规划对象模型中增加虚拟分割标识,规划器识别该类标识,并根据可用区间和飞控事件时长在需进行分割时按照适合的逻辑进行处理。
4)当前规划模式下,飞控事件、动作序列及逻辑关系更大程度上取决于地面工程师的领域经验和对复杂模型的构建,相比于智能规划系统还有差距,后续可以将任务需求、任务目标和算法更好地交互和结合,提高智能规划水平。
5)现阶段运动规划和飞控事件规划是分开进行的,通过运动飞控事件调用的动作序列中的特殊标识调度运动规划的结果,然而运动规划和飞控事件规划是相互耦合且相互影响的,两者协同规划,或者通过运动规划引导飞控事件规划都是可以研究的方向。