现代多任务规划、调度和排序系统(Aerie)是一个用于太空应用的全新开源多任务规划、调度和排序系统。本文简要介绍了创建 Aerie 系统背后的动力,评论了它在其他规划系统中的地位,并强调了它非常适合分布式跨团队协作的一些关键功能。我们还介绍了一个简短的案例研究,描述了 Aerie 在 Europa Clipper 上行链路规划过程中的使用情况,并说明了将 Aerie 作为开源项目的一些优势。
规划和调度系统的使用贯穿于大多数(如果不是全部)空间飞行任务的设计和运行中。鉴于飞行任务的数量及其应用的多样性,我们同样可以看到一系列不同的规划系统,每一种系统都有其特定的用途(Chien 等人,2012 年)。大多数规划系统用于在太空任务中执行以下功能之一:
1.任务规划和分析,在任务的整个生命周期中进行,以制定一个可行的任务计划,在满足任务目标的同时,遵守项目和航天器的限制条件。
2.运行规划,这通常涉及整合有效载荷、航天器和地面系统工程师提供的众多不同输入信息,以制定符合计划目标和限制的综合计划。
3.实时运行,其主要目标是在计划执行过程中监测计划的执行情况,并可能在极短的时间内修改即将实施的计划
Aerie 在设计时考虑到了前两种使用情况,不过它也可以支持实时操作,只需做一些小的修改,类似于 Playbook 的前身 SPIFe(Marquez 等人,2010 年)。
Aerie 最适合归类为通用混合主动规划系统。其设计旨在支持人类计划人员、基于目标的优先级驱动调度程序和外部应用程序之间的迭代交互。这种设计与其他专门针对特定应用优化计划的调度系统形成鲜明对比,例如推帚的表面覆盖(Maillard、Chien 和 Wells,2021 年)或可操纵框架仪器(Shao 等,2018 年),尽管这些系统可以作为外部应用集成到 Aerie 中。Aerie 提供的调度器按照规划者定义的优先级顺序解决单个调度目标,而不是执行多目标优化,在多目标优化中同时解决目标。许多天基观测站(如哈勃和詹姆斯-韦伯太空望远镜)都使用了利用此类优化技术的系统,以最大限度地减少时间浪费和推进剂使用,从而延长任务寿命(Johnston 和 Giuliano,2009 年)。
除了对 Aerie 的开发有直接影响的系统外,还有许多与 Aerie 类似的用于多任务的规划系统。例如,应用物理实验室(APL)开发的 "Activity Planner "工具是其独立任务地面软件(MIGS)工作的一部分(Ruffolo、McCauley 和 Berman,2017 年)。与 Aerie 一样,该系统也是数据库驱动型的,可以集中并查看来自各种外部来源的计划数据。Activity Planner 选择提供特定领域文件格式的本地导入/导出,而 Aerie 则有意将特定领域的构造排除在其核心之外,以便于其他应用的改编(文件格式之间的转换以针对 API 编写的实用程序的形式存在)。此外,Activity Planner 提供了有限但易于使用的调度和约束检查功能,而 Aerie 则提供了更多的表现力,但可能会牺牲简洁性。
德国太空运行中心(GSOC)开发的 PINTA/PLATO 工具套件及其基于网络的时间轴客户端 TimOnWeb 也具有与 Aerie 类似的功能,并打算作为半自动任务规划系统运行(Nibler 等人,2017 年)。该系统使用一种被称为 "规划模型 "的建模语言进行操作,而 Aerie 则使用 Java 中的 eDSL 进行建模。PINTA/PLATO 有着悠久的历史,包括在 GRACE-FO 和 TerraSARX/TanDEM-X 任务中的应用。
Aerie 对资源概况的定义类似于 APSI 软件平台和时间线表示框架(Fratini 和 Cesta,2012 年)中对时间线的定义,但 Aerie 的时间线完全以时间为基础,而 APSI 则可以保留更多的时间灵活性,并使更多的关系明确化。
将重点介绍 Aerie 的特殊能力。首先,我们将介绍 "任务模型 "的含义,以及任务如何定义自己模型的细节(任务模型框架)。然后,我们将指出使用 Aerie 实现个人和团队之间富有成效协作的关键功能(协作规划)。接下来,我们将介绍 Aerie 的自动调度方法(调度)和验证相关约束条件的方法(约束条件检查)。我们还将介绍 Aerie 可在云端或本地部署的能力(基于服务的架构),并介绍 Aerie 的应用程序接口(GraphQL API)可实现的丰富集成。