国际空间站计划的 Linux

作者:Guillermo Ortega

国际空间站 (ISS) 的第一个组件已从俄罗斯拜科努尔发射升空。国际空间站是人类科学和技术领域有史以来最大的民用事业。成千上万行的软件代码正在编写,并将继续为空间站、地面和在轨编写。国际空间站代表着全球众多航天机构和公司之间的协同合作,包括欧洲航天局 (ESA)。欧洲航天局一直在开发多个原型系统,这些系统将为欧洲对国际空间站计划的贡献铺平技术道路。其中,欧洲航天局已选择 Linux 作为两款软件产品的操作系统,这两款软件产品将控制名为 ATV 的服务型航天器的交会对接操作。本文概述了这些产品,解释了它们为何在 Linux 上运行,这样做的好处和坏处,以及 Linux 在航天工业中的未来。

自动转移飞行器

欧洲航天局自动转移飞行器 (ATV) 是一艘计划定期为国际空间站进行轨道提升和燃料补给的无人航天器。ATV 的其他任务将包括有效载荷供应和从国际空间站移除有效载荷。ATV 是欧洲航天局理事会于 1995 年 10 月批准的正在进行的项目。ATV 计划于 2003 年 2 月由阿丽亚娜 5 号火箭从法属圭亚那库鲁首次发射。

图 1. ATV 航天器

在其早期配置中,ATV 被设计为圆柱形航天器,包含货物舱(加压或非加压)、对接端口和推进模块。最近,ATV 进行了修改,增加了四个太阳能电池板(见图 1)。

ATV 任务剖面确定了与国际空间站俄罗斯舱段的对接。交会对接操作在空间站后方约 20 公里处开始。这意味着 ATV 将在国际空间站后方且速度更快地飞行,以便追上空间站的对接端口。空间交会对接的问题是在轨道上将两个航天器对接——一个小型主动追踪航天器 (ATV) 和一个大型目标 (ISS)。

尽管航天器交会对接可能看起来很简单,但实际上并非如此。控制追踪器和目标之间相对运动的数学方程式相当复杂。交会对接操作的在轨控制在很大程度上是自动的,但并非完全自主。一些控制任务在地面控制中心完成,另一些在空间站上完成。尽管 ATV 在轨计算机具有容错能力,但任务的复杂性不允许预防和恢复所有可能类型的任务故障。在轨系统的特殊功能可以检测和预测故障,隔离故障,并提出和执行恢复措施,但仅限于系统设计期间预期的那些类型的意外情况。故障检测和恢复功能与任务安全和任务成功都相关。

Linux 来救援

为了克服这些和其他问题,欧洲航天局构建了两个产品:GOAS 和 RACSI。GOAS 是 ATV 交会对接操作的地面操作员辅助系统。GOAS 在地面使用,是一个软件工具,用于监控 ATV 任务并在出现问题时进行干预。GOAS 提供复杂的指挥和控制能力,以便在必要时重新规划整个任务。RACSI 是国际空间站的远程 ATV 控制系统。RACSI 是一台笔记本电脑,运行一个由空间站上的宇航员操作的软件包。RACSI 双重监控和检查 ATV 任务,并提供两个简单的指挥功能:暂时中断任务或指挥避碰机动。

目前,GOAS 和 RACSI 的开发都在 Linux 下运行。尽管 GOAS 最初是在 Solaris 上开发的(使用 1 和 2 版本),但该软件已轻松移植到 Linux。RACSI 最初完全在 Linux 下编程。对于这两个系统,选择 Linux 作为底层操作系统是因为它提供了最新的航天应用所需的四个基本特性:可靠性、性能、可移植性和经济性。可靠性对于航天应用至关重要。可靠性特性由 Linux 的稳健性保证:这两个应用程序同时运行数十个进程,广泛使用共享内存和信号量。尽管这两个系统都设计为不间断运行数周甚至数月,但软件从不崩溃或行为异常。

性能是衡量实时关键软件的决定性因素。尽管 Linux 未在实时模式下使用(未加载 RT-Linux 模块),但应用程序以实时方式运行。也就是说,它们接收来自航天器的数据,显示数据并将其发送回卫星,所有操作都在实时进行。一切都在航天器之间指定的通信速率内运行。

软件可移植性对于升级和应用程序增强至关重要。在 UNIX 版本之间的可移植性可以快速完成,同时保持可扩展性并降低人力成本。这对于其他非 UNIX 操作系统来说并非如此。此外,Linux 可用于范围广泛的硬件平台,使得平台之间的更改像重新编译一样简单(在大多数情况下)。

如今,航天应用常常缺乏购买昂贵许可证所需的资金。Linux 是一种零成本的操作系统,它提供了真正的经济性。它可以根据需要复制多次,从而降低许可证成本和版税。这不仅适用于操作系统,也适用于随附的工具(编译器、调试器、编辑器、开发环境等)。

太空中的 RACSI

图 2. RASCI 截图

RACSI 在 IBM ThinkPad 笔记本电脑上运行。该软件需要 64MB 的 RAM,并占用约 40MB 的磁盘空间。(见图 2。)选择这种类型的笔记本电脑是由于空间站上对硬辐射耐受性的严格要求。它还提供分辨率为 1024x756 和 64K 颜色的 XGA 图形屏幕,这对于显示轨迹和航天器设备状态是必不可少的。RACSI 使用 X Window 系统 (X11R6),FVWM 作为其窗口管理器。笔记本电脑上当前安装的 Linux 发行版是 Slackware 版本 3.0,内核为 2.0.30。

桌面配置系统已安装在 Pentium Pro 上,运行 S.u.S.E. 5.2,内核为 2.0.33。系统的指点设备是笔记本电脑的轨迹球,尽管也可以使用传统鼠标。

RACSI 完全用 ANSI C 编写。它使用 InfoMagic 版本 2.0 的 Moo-Tiff 库,因此所有小部件都是 Motif 类型。(FVWM 完全满足了应用程序的外观吸引力。)该系统使用共享内存和 Linux 文件系统作为来自航天器的遥测数据的数据库存储。RACSI 进程接口使用应用程序编程接口 (API)。API 构成了额外的软件层,允许隐藏应用程序之间本地和远程软件调用之间的差异。RACSI 的软件根据符合 ESA 软件标准的模块化架构细分为几个模块(见图 3)。

图 3. RACSI 架构

遥测处理程序:此功能是一个数据处理模块。它接收来自航天器的所有传入类型的数据,并对其进行预处理以生成一组额外的有效数据,用于存储和存档。接下来,此模块将数据分发到预定义的客户端应用程序集(例如,任务和飞行器监控与控制)。

任务和飞行器监控:此模块允许宇航员全面了解任务和飞行器的状态。“任务和飞行器监控”模块从“遥测处理程序”功能中提取数据,并将其发送到“信息呈现”功能。此功能提供一组显示,以不同的详细程度显示与任务和飞行器相关的信息,这些信息来自遥测数据或来自任何其他数据处理。

故障检测和评估:此功能执行故障的检测和识别。当检测到故障时,宇航员可以自由地手动中断任务(停止航天器)或中止当前任务计划(将控制权交给地面)。

显示管理:此功能的目的是向宇航员提供屏幕上的数据呈现。RACSI 屏幕分为三个区域(见图 2):任务显示(包含与任务阶段、任务转换等相关的信息)、主显示区域(轨迹绘图、设备监视等)和消息显示区域(本地消息和警告)。

遥控指令处理程序:此模块提供集中式服务,向航天器发送两个可能的指令:任务中断或避碰机动。

地面上的 GOAS

图 4. GOAS 截图

原生 GOAS 系统在 Sun 工作站 Ultra-SPARC 5 上运行,配备 64MB RAM 和 300MB 硬盘空间。彩色显示器是必需的。(见图 4。)此配置在 Solaris(版本 2.5)下运行。它使用 X (X11R6) 图形用户界面,Sun OpenLook 作为窗口管理器。

Linux 版本是从最初的系统开发的;Linux GOAS 在配备 48MB RAM 的 233MHz Pentium 上运行。该系统也使用 X11R6,Linux OpenLook 作为窗口管理器。指点设备是鼠标,但也允许使用键盘按键。

GOAS 用 C 和 C++ 语言编程。C 用于编程应用程序,C++ 用于编程图形界面。GOAS 使用一系列商业现成软件例程 (ILOG views) 来构建人机界面的某些部分。

GOAS 可以同时运行两到三个监视器,允许查看许多航天器参数。可以配置不同的监视器来显示监控、故障检测、重新规划模块等的人机界面。与 RACSI 类似,GOAS 的软件根据符合 ESA 软件标准的模块化架构细分为几个模块(见图 5)。但是,GOAS 在任务规划能力、轨迹预测以及故障检测和恢复方面要复杂得多。

图 5. GOAS 架构

遥测处理程序接收来自航天器的数据,将其存档到多个数据库中,并将其广播到系统中必要的客户端。

故障评估子系统通过在地面操作员的控制下运行一组自动测试来执行故障的检测和识别,这些测试在任务、制导、导航和控制级别实施,并将实际状态和预测状态与位置、姿态、速率等的参考范围进行比较。此模块将数据存档到数据库中。

如果出现问题,“故障评估”模块会决定应应用哪种恢复程序来恢复任务:“快速干预”模块用于必须立即恢复的情况,“短期恢复”措施或完整的“任务重新规划”。

快速干预:此功能管理的紧急操作允许中断任务。地面操作员面临着一组预定义的紧急操作:停止航天器,启动漂移出空间站,抑制推进器,或启动避碰机动,直接控制航天器推进器。此策略将防止与空间站碰撞。

短期恢复:此功能用于恢复允许 5 到 15 分钟时间间隔的情况。目标是稳定任务,然后在达到该情况后启动“重新规划”功能。如果安全没有受到威胁,可以启动不同的“短期恢复”操作:强制将某些设备切换到冗余设备,快速研究即将到来的机动的影响,激活一小段机动序列等。

任务重新规划:此功能的目的是支持操作员在需要更改任务时进行干预。这是 RACSI 中没有的功能——宇航员无法重新规划任务;只有地面控制中心可以。重新规划功能在请求时启动。它支持地面操作员根据以下三个项目定义新的任务计划:重新规划场景、任务约束和追踪器设备状态。此功能可以在自动模式(计算机在没有操作员干预的情况下重新规划整个新任务)、半自动模式(操作员被要求提供一些参数)或手动模式(操作员逐步构建机动序列)下运行。视觉信息不断显示给操作员。

结论

Linux 的成功基于以下事实:一组人创建的工作不归属于任何其他群体。可靠性、性能、可移植性和经济性是说服欧洲航天局将其用于实时航天器控制软件的四个特性。仍然需要完成重要的工作;希望即将推出的内核将符合 POSIX 标准,即插即用将真正可用,多媒体功能将扩展到超出用户期望的范围。我几乎可以肯定,Linux 将在国际空间站或国际空间站组件在全球的地面控制中心运行。Linux 赢得了卓越的声誉,并且可以成功地与所有其他可用的操作系统竞争。

Guillermo Ortega 在荷兰欧洲空间研究与技术中心的制导和导航领域工作。自 1994 年以来,他一直从事 Linux 在航天项目中的应用。可以通过电子邮件 gortega@estec.esa.nl 联系他。

加载 Disqus 评论