NASA的开源软件是什么?NASA的开源软件的详细分析

描述

 

随着开源软件技术的迅速发展和影响,各领域各行业的相关共性软件逐渐开放,另一方面也应用开源软件进行系统开发。在航天领域NASA在开源方面走在前列,已开源软件、设计工具达1072个,涵盖航天器整个研制和应用过程。近年来,高性能部组件及高速总线在航天器上的应用,使得卫星计算能力、存储能力都有大幅度提升,星载软件得以有很大施展空间,尤其对卫星小型化、一体化、智能化发展有极大推动作用。本文对NASA的开源软件进行了研究,对部分开源项目做了深入分析,并结合项目需求,开发了基于开源软件的卫星健康状态监视原型系统,同时对未来航天领域开源软件技术的发展趋势及卫星智能化的发展思路进行了探讨。

开源软件的迅速发展,逐渐改变了世界开发软件的格局。作为太空探索领域的佼佼者,美国国家航空航天局NASA在2017年3月发布了2017-2018软件目录[1],开源了一系列航天相关项目,包括多年使用的设计仿真工具、应用软件和代码库等,大部分可免费使用,如用于与航天器交换大文件的标准工具CCSDS CFDP文件传输协议等。以往论文研究集中在NASA的技术成果转化政策和机制方面,本文从技术角度,对NASA开源软件进行了研究,二次开发实践,并思考了开源技术对软件定义类卫星技术发展,对解决卫星智能化问题有一定的借鉴意义。

1

NASA开源软件发展概况

1.1技术转让计划

从1964年开始,一直以尖端的科学技术领先全球的NASA通过设立技术转让计划,开始建立航天技术服务于民生的长效机制,每年都出版一期Spinoff报告,迄今为止,超过2000项技术成功转移到民用领域。NASA在履行好座右铭“我们努力奔向新的高度,为人类福祉而发现未知”的同时,其建立的技术转让计划使得众多中小企业利用NASA科研成果进行创业,新的领域得到广泛应用。在航天领域NASA设立的技术转让计划成为运行良好、效益突出的高技术成果转化机制,加速了科技成果转化。

1.21.2 开源进展和目的

作为技术转让计划中的一部分,NASA在官网上发布了大量航天项目中的开源软件和工具,目前,一共有1072可用的程序软件,涵盖项目管理、数据和图像处理、电源系统、航天器设计与集成工具、自主系统等15个方面,见图1。这些代码来自NASA Ames、JPL、Jonhson、Armstrong等11个研发中心和机构。NASA的做法有两方面目的,一方面希望通过开源社区同行评审提高代码质量、加速开发,并能收获更多项目改进的建议,另一方面,最大化NASA研究的知名度和影响,同时也将技术转让给企业和个人,用于新的领域发展最新科技。

 

图1  软件目录分类

Fig.1 NASA Open Source Software Category

2

NASA典型开源项目

2.1Livingstone2(L2)

Livingstone2[2-3]由NASA Ames中心研制,是基于模型的故障诊断和恢复引擎,目的使复杂系统如航天器,不断自主化和智能化,在最少人工干预下,实现系统状态自我感知、诊断和响应非正常状态,尤其是面临硬件故障或未知事件。

通过建立一组多层次的定性逻辑模型,通过对比模型预测数据和传感器实测数据来检测和诊断系统故障,实现追踪系统的状态,并根据不同状态给出建议指令实现系统继续运行,原理见图2所示。L2已经在包括X34推进系统和国际空间站等几个试验床上实施和应用,同时也在地球观测卫星1号(EO-1)上进行过飞行试验。

图2  L2诊断原理

Fig.2  NASA L2 Diagnosis Principle

2.2Trick 航天器仿真环境

Trick 航天器仿真环境[4]由NASA 约翰逊空间中心研发,使用户可以对航天器研制的各个阶段建立仿真应用,包括早期设计、性能指标评估、飞行软件开发和测试,飞行过程动态分析,软件和硬件的闭环测试。目的是提供一种通用共性的仿真能力,以便各领域专家更专注在特定领域的模型,而不是仿真功能应用如任务排序、数据存储等。但是这款软件只对美国公民开放。图3为Trick蒙特卡洛高级仿真功能流程,允许用户对不同输入进行重复仿真,不断优化。

图3  Trick的蒙特卡洛功能流程

Fig.3 Trick Monte Carlo Advanced Simulation Capability Flow

2.3Open MCT[5]

Open MCT( Open Mission Control Technologies )是下一代具有数据可视化的任务控制框架,可在桌面端和移动端分别使用,由NASA Ames中心开发,用于航天器任务分析,运行控制和规划。作为一个通用开放的基础平台,用户可在Open MCT基础上进行二次开发,针对不同航天器开发任务规划、控制和数据分析等应用。系统效果图见图4。

 

图4  Open MCT系统效果

Fig.4 Open MCT General View

3

基于开源软件的卫星健康状态监视原型系统

3.1系统介绍

系统用于监视卫星平台健康状态,目前包括但不限于CPU温度、GPU温度、CPU使用率、RAM使用率、ROM使用率、姿态测量参数(如加速度传感器XYZ,磁强计XYZ等)等信息,将健康状态信息(SOH: State Of Health)以CCSDS数据包格式封装,通过无线射频链路发送到地面站系统,以图表形式进行显示信息。

3.2系统架构

系统利用Raspberry PI+PC构建验证原型系统,RPI作为卫星端,运行Linux系统和飞控系统软件,应用软件SOH,PC端作为地面端,运行Linux系统及地面站软件,通过WiFi无线链路连接,系统运行后,可进行遥测遥控功能。系统架构图如下:

图5系统架构

Fig.5 System architecture

3.3系统成果

系统集成开源软件的技术优势,并结合需求进行定制化改进,经过三个月测试,软件工作正常,系统运行稳定,实现了简单的健康状态监视功能。下一步可通过总线集成更多部件,进行对应功能软件开发,丰富完善。地面系统运行图,见图6

 

图6地面系统运行图

Fig.6 Ground System View

4

思考与启示

4.1航天领域开源软件思考

在航天软件领域,NASA开源了从航天器仿真、设计工具、星载软件、地面任务控制、结构材料设计工具等各类应用软件、代码库和工具。官网上开源动机是希望开源社区同行的使用提高软件质量,从某种程度上讲,使用这些代码尤其是二次开发会让技术实力稍弱的企业依赖NASA的基础级代码,影响自主创新能力。

航天软件对太空资产的重要性不言而喻,尤其是基础的核心软件。在操作系统方面,VxWorks 操作系统依然是国内大部分航天项目主流选择,开源化研究操作系统,值得思考。另一方面,人工智能技术共性的系统是Linux,许多机器学习算法基于Linux开发,卫星智能化发展是选择开源的路线,集智发展,抑或是传统领域吸收成熟智能算法融合发展,这也是一个值得探讨的研究方向。

4.2开源将会是商业航天企业技术重要驱动

开源软件具有开放、共享、自由等特性,企业可避免重复造轮子,使用最少的人力、物力、财力就能很快构建一个系统,在开源软件基础上定制灵活,通过社区的力量,软件也更稳定、安全性更高,可及时发现和修复安全漏洞,一个非常成功的例子,Android 2007年以开源形式发布后,阵营呈现爆炸式增长,成为份额第一的移动操作系统[6]。

更稳定、更安全、更可靠的追求促使航天软件开发测试成本更高,由于追求高可靠和责任重大,导致软件发展已慢于互联网软件行业发展。商业航天的发展,结合开源技术,在软件质量、软件成本方面,有望改变这一局面。

结束语

NASA开源的项目软件,部分代码每天迭代更新,提高了软件的质量,进一步降低了应用在航天类项目中的风险,这对于软件定义类卫星技术发展有着很大借鉴意义。

posted on 2021-07-27 00:25  漫思  阅读(903)  评论(0编辑  收藏  举报

导航