+ 康海龍1*,范亞楠2,李斌1
(1. 中國電子科技集團公司電子科學研究院)(2. 中國科學院國家空間科學中心)
開源軟件的迅速發(fā)展,逐漸改變了世界開發(fā)軟件的格局。作為太空探索領域的佼佼者,美國國家航空航天局(NASA)在2017年3月發(fā)布了2017-2018軟件目錄[1],開源了一系列航天相關項目,包括多年使用的設計仿真工具、應用軟件和代碼庫等,大部分可免費使用,如用于與航天器交換大文件的標準工具CCSDS CFDP文件傳輸協(xié)議等。以往論文研究集中在NASA的技術成果轉化政策和機制方面,本文從技術角度,對NASA開源軟件進行了研究,二次開發(fā)實踐,并思考了開源技術對軟件定義類衛(wèi)星技術發(fā)展,對解決衛(wèi)星智能化問題的借鑒意義。
從1964年開始,一直以尖端的科學技術領先全球的NASA通過設立技術轉讓計劃,開始建立航天技術服務于民生的長效機制,每年都出版一期Spinoff報告,迄今為止,超過2000項技術成功轉移到民用領域。NASA在履行好座右銘“我們努力奔向新的高度,為人類福祉而發(fā)現(xiàn)未知”的同時,其建立的技術轉讓計劃使得眾多中小企業(yè)利用NASA科研成果進行創(chuàng)業(yè),使航天高科技在新的領域得到更廣泛的應用。在航天領域NASA設立的技術轉讓計劃成為運行良好、效益突出的高技術成果轉化機制,加速了科技成果轉化。
作為技術轉讓計劃中的一部分,NASA在官網上發(fā)布了大量航天項目中的開源軟件和工具,目前,一共有1072可用的程序軟件,涵蓋項目管理、數(shù)據(jù)和圖像處理、電源系統(tǒng)、航天器設計與集成工具、自主系統(tǒng)等15個方面,見圖1。這些代碼來自NASA Ames、JPL、Jonhson、Armstrong等11個研發(fā)中心和機構。NASA的做法有兩方面目的,一方面希望通過開源社區(qū)同行評審提高代碼質量、加速開發(fā),并能收獲更多項目改進的建議,另一方面,最大化NASA研究的知名度和影響,同時也將技術轉讓給企業(yè)和個人,用于新的領域發(fā)展最新科技。
Livingstone2[2-3]由NASA Ames中心研制,是基于模型的故障診斷和恢復引擎,目的使復雜系統(tǒng)如航天器,不斷自主化和智能化,在最少人工干預下,實現(xiàn)系統(tǒng)狀態(tài)自我感知、診斷和響應非正常狀態(tài),尤其是面臨硬件故障或未知事件時。
圖1 軟件目錄分類
通過建立一組多層次的定性邏輯模型,通過對比模型預測數(shù)據(jù)和傳感器實測數(shù)據(jù)來檢測和診斷系統(tǒng)故障,實現(xiàn)追蹤系統(tǒng)的狀態(tài),并根據(jù)不同狀態(tài)給出建議指令實現(xiàn)系統(tǒng)繼續(xù)運行,原理見圖2所示。L2已經在包括X34推進系統(tǒng)和國際空間站等幾個試驗床上實施和應用,同時也在地球觀測衛(wèi)星1號(EO-1)上進行過飛行試驗。
Trick 航天器仿真環(huán)境[4]由NASA 約翰遜空間中心研發(fā),使用戶可以對航天器研制的各個階段建立仿真應用,包括早期設計、性能指標評估、飛行軟件開發(fā)和測試,飛行過程動態(tài)分析,軟件和硬件的閉環(huán)測試。目的是提供一種通用共性的仿真能力,以便各領域專家更專注在特定領域的模型,而不是仿真功能應用如任務排序、數(shù)據(jù)存儲等。但是這款軟件只對美國公民開放。圖3為Trick蒙特卡洛高級仿真功能流程,允許用戶對不同輸入進行重復仿真,不斷優(yōu)化。
Open MCT( Open Mission Control Technologies )是下一代具有數(shù)據(jù)可視化的任務控制框架,可在桌面端和移動端分別使用,由NASA Ames中心開發(fā),用于航天器任務分析,運行控制和規(guī)劃。作為一個通用開放的基礎平臺,用戶可在Open MCT基礎上進行二次開發(fā),針對不同航天器開發(fā)任務規(guī)劃、控制和數(shù)據(jù)分析等應用。系統(tǒng)效果圖見圖4。
系統(tǒng)用于監(jiān)視衛(wèi)星平臺健康狀態(tài),目前包括但不限于CPU溫度、GPU溫度、CPU使用率、RAM使用率、ROM使用率、姿態(tài)測量參數(shù)(如加速度傳感器XYZ,磁強計XYZ等)等信息,將健康狀態(tài)信息(SOH: State Of Health)以CCSDS數(shù)據(jù)包格式封裝,通過無線射頻鏈路發(fā)送到地面站系統(tǒng),以圖表形式進行顯示信息。
系統(tǒng)利用Raspberry PI+PC構建驗證原型系統(tǒng),RPI作為衛(wèi)星端,運行Linux系統(tǒng)和飛控系統(tǒng)軟件,應用軟件SOH,PC端作為地面端,運行Linux系統(tǒng)及地面站軟件,通過WiFi無線鏈路連接,系統(tǒng)運行后,可進行遙測遙控功能。系統(tǒng)架構圖,見圖5。
圖2 L2診斷原理
圖3 Trick的蒙特卡洛功能流程
圖4 Open MCT系統(tǒng)效果
系統(tǒng)集成開源軟件的技術優(yōu)勢,并結合需求進行定制化改進,經過三個月測試,軟件工作正常,系統(tǒng)運行穩(wěn)定,實現(xiàn)了簡單的健康狀態(tài)監(jiān)視功能。下一步可通過總線集成更多部件,進行對應功能軟件開發(fā),豐富完善。地面系統(tǒng)運行圖,見圖6
圖5 系統(tǒng)架構
圖6 地面系統(tǒng)運行圖
在航天軟件領域,NASA開源了從航天器仿真、設計工具、星載軟件、地面任務控制、結構材料設計工具等各類應用軟件、代碼庫和工具。開源動機是希望通過開源社區(qū)同行的使用提高軟件質量,但從某種程度上講,使用這些代碼尤其是二次開發(fā)會讓技術實力稍弱的企業(yè)依賴NASA的基礎級代碼,影響自主創(chuàng)新能力。
航天軟件對太空資產的重要性不言而喻,尤其是基礎的核心軟件。在操作系統(tǒng)方面,VxWorks 操作系統(tǒng)依然是國內大部分航天項目主流選擇,開源化研究操作系統(tǒng),值得思考。另一方面,人工智能技術共性的系統(tǒng)是Linux,許多機器學習算法基于Linux開發(fā),衛(wèi)星智能化發(fā)展是選擇開源的路線,集智發(fā)展,抑或是傳統(tǒng)領域吸收成熟智能算法融合發(fā)展,這也是一個值得探討的研究方向。
開源軟件具有開放、共享、自由等特性,企業(yè)可避免重復造輪子,使用最少的人力、物力、財力就能很快構建一個系統(tǒng),在開源軟件基礎上定制靈活,通過社區(qū)的力量,軟件也更穩(wěn)定、安全性更高,可及時發(fā)現(xiàn)和修復安全漏洞。一個非常成功的例子是,Android 2007年以開源形式發(fā)布后,陣營呈現(xiàn)爆炸式增長,成為份額第一的移動操作系統(tǒng)[6]。
更穩(wěn)定、更安全、更可靠的追求促使航天軟件開發(fā)測試成本更高,由于追求高可靠和責任重大,導致軟件發(fā)展已慢于互聯(lián)網軟件行業(yè)發(fā)展。商業(yè)航天的發(fā)展,結合開源技術,在軟件質量、軟件成本方面,有望改變這一局面。
NASA開源的項目軟件,部分代碼每天迭代更新,提高了軟件的質量,進一步降低了應用在航天類項目中的風險,這對于軟件定義類衛(wèi)星技術發(fā)展有著很大借鑒意義。
[1]NASA Open Source Software[EB/OL]http://code.nasa.gov.
[2]LivingStone2[EB/OL]https://github.com/nasa.
[3]陳治佐,劉興釗,呂高煥. Livingstone 用于航天器推進系統(tǒng)故障診斷[J]. 太赫茲科學與電子信息學報,2013,11(5):770-774.CHEN Zhi-zuo,LIU Xing-zhao,LV Gao-huan. Fault diagnosis of spacecraft propulsion system by using Livingstone[J]. Journal of Terahertz Science and Electronic Information Technology,2013,11(5):770-774.
[4]Trick [EB/OL] https://www.nasa.gov/centers/ames/research.
[5]Open MCT [EB/OL] https://github.com/nasa/openmct.
[6]https://www.idc.com/promo/smartphone-market-share