技术文章

为 NASA 的新视野号、欧塞瑞斯号和露西号任务开发光学导航软件

作者 Derek Nelson 和 Coralie Adam,KinetX


借助 MATLAB,我们的团队能够更快地开发和调试高度精确的 OpNav 算法。例如,在欧塞瑞斯号任务中,中心寻找算法精确到 30 厘米以内,约为小行星直径的 0.06%,这大大超出了该任务的导航操作概念 (ConOps) 的预测准确度。

2015 年 7 月,NASA 的新视野号航天器飞过冥王星,向全世界展示了这颗矮行星及其卫星的壮观图像(图 1)。新视野号继续履行使命,在 2019 年飞越阿洛克斯时,扩大了对柯伊伯带的探索范围,发回了有史以来航天器所探索的最遥远星体的图像。与此同时,NASA 的第二个航天器欧塞瑞斯号于 2016 年发射,旨在从小行星贝努鸟的表面采集样本。在 2020 年采集此样本后,它将于 2023 年 9 月将该样本送回地球。在此期间,NASA 于 2021 年还发射了露西号航天器,它将成为第一个访问木星特洛伊小行星的航天器。

图 1. 示意图:新视野号航天器飞越冥王星及其卫星卡戎。

这些重叠的 NASA 任务有着共同的目标,那就是为科学家提供所需的数据,以便于他们更深入地了解我们的太阳系,包括其形成和其中的星体。这三项任务还有一个共同之处,即它们都依赖我们在 KinetX Aerospace 的团队构建的光学导航 (OpNav) 软件。OpNav 方法使用相机图像来确定航天器相对于天体(如行星或小行星)的位置。KinetX 图像处理软件套件 (KXIMP) 是在 MATLAB® 中开发的,用于处理航天器的机载相机所拍摄的图像。这些图像被下传到地面,用来计算相机的惯性姿态,以及视场中背景恒星和天体的质心。借助 MATLAB,我们的团队能够更快地开发和调试高度精确的 OpNav 算法。例如,在欧塞瑞斯号任务中,中心寻找算法精确到 30 厘米以内,约为小行星直径的 0.06%,这大大超出了该任务的导航操作概念 (ConOps) 的预测准确度。

OpNav 的必要性和快速开发的重要性

一直以来,深空导航依赖于辐射跟踪数据,这些数据可用于估计航天器相对于地球的位置。如果目标的轨迹非常确定,这种方法就足够准确。对于新视野号、欧塞瑞斯号和露西号等执行的任务,基于无线电的导航可以使航天器接近目标,但接近程度不足以使任务带来最大的科学效益。相比之下,OpNav 可测量目标相对于航天器的位置,以实现更高的导航准确度,并且能够以更高的精度引导航天器的相机和科学仪表对准目标。

当我们第一次开始评估 OpNav 算法的开发环境时,我们团队的规模很小。我们需要优先考虑快速开发和调试,因此不想从头开始编写大量的低级图像处理算法。MATLAB 和 Image Processing Toolbox™ 提供了我们一开始就需要的许多例程和函数。同样重要的是,随着新信息的出现,我们还需要能够快速实施更改。随着新视野号接近冥王星,这项功能的重要性就愈发凸显。由于反照率的变化,行星最亮和最暗部分所生成的图像具有很强的对比度,出乎人的意料,我们需要在 KXIMP 中将其考虑在内。事实证明,我们所需做出的更改相当复杂,因此,当任务接近关键操作阶段时,能够在 MATLAB 中快速实施和调试这些更改就显得至关重要。

使用 KXIMP 导航到冥王星、阿洛克斯和贝努鸟

无论是哪个任务,我们都遵循相同的基本过程来使用 KXIMP 软件套件。此过程始于我们从航天器的机载相机接收到图像之时。首先,我们会使用在 MATLAB 中开发的相机标定例程来消除失真并校正图像。

接下来,我们会运行 KXIMP 的姿态确定算法。此算法可对抛物面进行拟合,以找到图像中每颗恒星的子像素中心(图 2)。接着,它根据星表和先验姿态估计值来计算图像中恒星的预测中心。然后,基于观测的星中心和预测的星中心,使用 Optimization Toolbox™ 执行最小二乘拟合,以计算相机的惯性姿态。

航天器机载相机的图形截图,该图经过校正消除了失真。x 轴上的像素和 y 轴上的行号用于定位小行星贝努鸟,背景恒星标有十字。

图 2. 背景恒星(标有十字)及右边的小行星贝努鸟。

一旦我们确定了相机的姿态,下一步就是找到目标(例如,冥王星、阿洛克斯或贝努鸟)的质心。计算该质心的算法可将来自航天器的真实图像与使用 KXIMP 的关键功能生成的仿真图像相关联。仿真图像是用 SPICE 工具箱中数字形状内核文件的信息创建的。该工具箱由 NASA 的导航和辅助信息设施 (NAIF) 提供,可通过支持 SPICE 的 MATLAB 工具包进行访问。通过这些形状信息、太阳相对于目标的位置以及目标的旋转状态,我们的算法可应用射线追踪方法来生成仿真图像(图 3)。鉴于处理时间可能是一个重要因素,特别是对于以每秒 14 公里的速度行进的航天器,我们使用 Parallel Computing Toolbox™ 在多核处理器上执行射线追踪来加快这一处理过程。然后,目标的中心可通过真实图像和仿真图像的二维互相关性计算得到。

小行星贝努鸟的两张并排图像。左边是航天器提供的图像,右边是 KXIMP 生成的仿真图像,图中对两者进行了比较。

图 3. 贝努鸟的真实图像(左)和 KXIMP 生成的贝努鸟的仿真图像(右)。

当距离更加遥远时,目标在真实图像中通常无法解析,并且可能只有几个像素宽。在这个阶段的操作中,我们使用 KXIMP 中的图像叠加、星减和子采样方法来生成具有更高的有效分辨率(图 4)和信噪比的图像。

阿洛克斯的两张并排图像。左边是航天器提供的像素化原始图像,右边是 KXIMP 生成的经过子采样的图像,图中对两者进行了比较。

图 4. 左边是阿洛克斯的原始图像(其中目标是可见的未解析点源),右边是经过 4 倍子采样的对应图像。

机载 OpNav 中的代码生成

对于新视野号、欧塞瑞斯号和露西号执行的任务,KXIMP OpNav 处理在图像下传到地面后执行。然而,展望未来,更多的这种处理将使用运行自主 OpNav 软件的机载系统来执行。我们的团队正在为此积极努力。例如,对于 NASA 的 LunaH-Map 航天器,我们使用 MATLAB Coder™ 从现有的姿态确定、恒星质心定位和未解析目标(图 5)的算法以及基于地平线的新导航算法生成 C 代码。生成的机载姿态确定和未解析的中心寻找飞行软件已在 LunaH-Map 执行的任务中成功通过了测试,这为将来配备自主 OpNav 软件的航天器在很少或不依赖地基导航支持的情况下完成深空任务奠定了基础。

御夫座的恒星跟踪图,观测到的恒星中心以叉号标记,预测的恒星中心以加号标记。

图 5. 御夫座的 LunaH-Map 恒星跟踪器图。标记表示 KinetX 软件选择用于姿态确定的恒星。

KinetX is featured in "Engineered Success," a limited-series podcast created in partnership with MathWorks and WBUR.

2023 年发布

查看文章,了解相关行业