亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        在軌任務(wù)規(guī)劃的新型開發(fā)方法

        2021-09-11 01:38:36雙小川田文波
        上海航天 2021年4期
        關(guān)鍵詞:開源嵌入式資源管理

        關(guān) 寧,雙小川,彭 娜,胡 浩,田文波

        (1.上海航天電子技術(shù)研究所,上海 201109;2.上海航天智能計算技術(shù)重點實驗室,上海 201109)

        0 引言

        在軌任務(wù)規(guī)劃是未來航天器智能化的發(fā)展方向。實現(xiàn)在軌任務(wù)規(guī)劃是一項涉及多個領(lǐng)域知識的復(fù)雜軟件工程問題,需要將恒星、行星、矮行星、小行星、航天器自身,以及其他天體的星歷、航天器姿態(tài)和各部分相對位置關(guān)系、各種儀器的工作特征和指向、地面目標、地形、地貌及其他輔助信息、各類規(guī)劃、優(yōu)化算法集成在統(tǒng)一的軟件系統(tǒng)中。從地面上開發(fā)同等規(guī)模的跨領(lǐng)域信息系統(tǒng)的經(jīng)驗來看,采用先進的開發(fā)方法,即使用動態(tài)語言集成和使用開源庫是實現(xiàn)靈活、多樣在軌任務(wù)規(guī)劃的必由之路。

        顧名思義,開源庫是可以在公開途徑獲得源代碼的軟件函數(shù)庫,一般由開發(fā)者社區(qū)進行設(shè)計、開發(fā)和維護,其用戶既包括相關(guān)領(lǐng)域的研究和開發(fā)人員廣泛使用的開源應(yīng)用軟件,也包括閉源商用軟件。開源庫一般由最熟悉該領(lǐng)域的開發(fā)人員完成,并通過社區(qū)得到大量應(yīng)用反饋和測試,因此在完成特定領(lǐng)域功能時,成熟的開源庫質(zhì)量往往比同類閉源商用軟件高。但使用開源庫往往需要具備較強的軟件開發(fā)能力,同時要有較為完善的運行平臺。

        在桌面環(huán)境下工作的進行任務(wù)規(guī)劃算法設(shè)計的開發(fā)者,往往首先使用Matlab、Python 這樣的動態(tài)語言進行流程開發(fā)。只要各種運行平臺上都提供了核心算法庫(中間件),則使用動態(tài)語言開發(fā)的在軌任務(wù)規(guī)劃算法可以無視底層運行平臺的差異,在桌面環(huán)境和嵌入式環(huán)境中無縫移植。作為星載計算機系統(tǒng)的研制者,首先需要將核心算法庫凝練成中間件,提供給算法開發(fā)者。

        目前,星載計算機的高性能抗輻射處理器性能已經(jīng)達到了200 MHz 以上,如果使用經(jīng)過地面篩選的工業(yè)級處理器,可以進一步將主頻提升到1 GHz。以這樣的處理性能,結(jié)合較大容量的內(nèi)存(32 MB及以上)和外存(1 GB 以上),已經(jīng)可以運行提供POSIX 接口和完整文件系統(tǒng)的大型嵌入式操作系統(tǒng),許多開源庫都可以不經(jīng)修改或僅修改接口代碼就在星載計算機上運行。

        本文基于在軌任務(wù)規(guī)劃的開發(fā)需求,提出了使用動態(tài)語言和大型嵌入式操作系統(tǒng)進行在軌任務(wù)規(guī)劃的開發(fā)方法,調(diào)研并移植了適用于在軌任務(wù)規(guī)劃的開源庫,形成了可復(fù)用的中間件,對典型功能進行了測試。

        1 自主任務(wù)規(guī)劃的典型應(yīng)用場景

        目前,對任務(wù)規(guī)劃的研究大多以地面離線規(guī)劃為主。比如針對對地觀測衛(wèi)星,可在地面采用較為復(fù)雜的智能算法對多個對地觀測目標、多個衛(wèi)星和地面站資源進行聯(lián)合調(diào)度[1-5];也可針對深空探測任務(wù)[6-7],用于在軌服務(wù)或攔截的交會對接任務(wù)[8],或中繼衛(wèi)星的通信調(diào)度[9]。在軌運行的自主任務(wù)規(guī)劃[10]剛剛起步,主要應(yīng)用于觀測目標由本星其他載荷產(chǎn)生或由其他衛(wèi)星產(chǎn)生的場景[11],或受到外部條件影響對地面規(guī)劃的任務(wù)進行局部修正[12-13]。

        從體系化應(yīng)用看,衛(wèi)星的自主任務(wù)規(guī)劃是資源管理(Resource Management)的一部分,是一個與數(shù)據(jù)融合(Data Fusion)對偶的概念。數(shù)據(jù)融合模型最早由美國Joint Directors of Laboratories(JDL)、Data Fusion Group 在1985 年提出,并經(jīng)過了幾次修正,公開報道的最新一版(2004 年)如圖1 所示。

        圖1 數(shù)據(jù)融合的JDL 模型(2004 版)[14]Fig.1 JDL model of data fusion(2004 edition)[14]

        數(shù)據(jù)融合模型較好地解決了多種傳感器和情報來源如何服務(wù)于指揮控制的總目標,但在對傳感器的資源管理未能細化。相關(guān)從業(yè)人員在實踐中發(fā)現(xiàn),資源管理與數(shù)據(jù)融合具有很強的對偶性,其主要功能的對應(yīng)關(guān)系見表1。

        表1 數(shù)據(jù)融合與資源管理的分級與對應(yīng)關(guān)系[14]Tab.1 Hierarchy and correspondence of data fusion and resource management[14]

        在衛(wèi)星領(lǐng)域,由于天地交互帶寬窄、延時大,星上處理能力有限,只有較低層級的數(shù)據(jù)融合任務(wù)在星上運行。而資源管理任務(wù)對處理能力的需求較低,因此,已經(jīng)較多地出現(xiàn)在星上,其典型場景舉例如下:

        1)0 級資源管理。相控陣天線或合成孔徑雷達(Synthetic Aperture Radar,SAR)波位角的計算,給定波束指向,需要計算相控陣每個單元的相位延時參數(shù),各個波位疊加實現(xiàn)指定方向的指向。

        2)1 級資源管理。給定待成像目標坐標,計算SAR 雷達正側(cè)視的開機、關(guān)機時間,或者控制光學載荷轉(zhuǎn)向成像目標。

        3)2 級資源管理。在衛(wèi)星組網(wǎng)應(yīng)用中,同時控制多個天線維持星間或星地鏈路。

        4)3 級資源管理?;谀繕撕瘮?shù)和多種約束條件,綜合選擇和規(guī)劃多個對地觀測任務(wù)。

        在這些應(yīng)用場景中,0 級資源管理往往涉及特定載荷的特性,所能用到的開源庫主要是基礎(chǔ)數(shù)學庫,一般由特定平臺提供,本文暫不涉及,感興趣的讀者可以閱讀文獻[15]或其他相關(guān)著作。1、2、3 級的資源管理涉及的開源庫包括航天器的任務(wù)規(guī)劃庫,用于地理信息系統(tǒng)的空間數(shù)據(jù)庫,進行地圖投影和坐標轉(zhuǎn)換的庫,計算點、線、面幾何拓撲關(guān)系的庫,以及優(yōu)化目標函數(shù)的線性規(guī)劃庫。以下內(nèi)容將對這幾類庫做出詳細介紹。

        2 自主任務(wù)規(guī)劃的新型開發(fā)模式

        傳統(tǒng)星上軟件以數(shù)管軟件和姿控軟件為代表,兩者都需要與星上環(huán)境相同的目標機和模擬星上連接關(guān)系的地測設(shè)備才能開發(fā)。而自主任務(wù)規(guī)劃軟件涉及更多的算法和業(yè)務(wù)流程,更適合在有操作系統(tǒng)的高性能星載計算機上運行,對應(yīng)的開發(fā)模式也可以發(fā)生變化,這種新型開發(fā)模式如圖2 所示。

        圖2 基于動態(tài)語言和嵌入式操作系統(tǒng)的新型開發(fā)模式Fig.2 New development models based on dynamic languages and embedded operating systems

        變化可大致分為3 步:

        1)這類需要調(diào)用較多算法庫的軟件可以用如Python 或Matlab 之類的動態(tài)語言進行開發(fā),系統(tǒng)設(shè)計和開發(fā)者可以利用高級語言中豐富的數(shù)據(jù)結(jié)構(gòu),調(diào)用各種算法庫,完成業(yè)務(wù)邏輯的梳理與初步實現(xiàn),并搭建與高級語言實現(xiàn)對應(yīng)的仿真測試系統(tǒng)。軟件和測試系統(tǒng)可以運行在PC 機和任意操作系統(tǒng)上,Windows、Linux 均可。

        2)開發(fā)者可以將高級語言實現(xiàn)轉(zhuǎn)換到C/C++語言實現(xiàn),或采用嵌入式動態(tài)語言(如Lua)進行流程調(diào)度和數(shù)據(jù)管理,并在性能關(guān)鍵的數(shù)據(jù)處理功能上用C 實現(xiàn)。如果應(yīng)用需要多線程、文件系統(tǒng)、驅(qū)動程序或通信協(xié)議棧的支持,應(yīng)使用Linux 操作系統(tǒng)和POSIX API 進行開發(fā),這時應(yīng)用仍運行在PC 機上,但已經(jīng)可以遷移到高性能嵌入式平臺上。

        3)將用C/C++或嵌入式動態(tài)語言實現(xiàn)的應(yīng)用程序移植到目標機上,如果目標機上的操作系統(tǒng)也提供業(yè)務(wù)程序用到的算法庫,這時只需要解決目標機和PC 機、目標機和其他設(shè)備的接口方面的差異,并處理一些只有在目標機上才能發(fā)生的異常情況即可。應(yīng)用程序的實現(xiàn)邏輯已經(jīng)經(jīng)過高級語言和嵌入式語言兩級實現(xiàn)的梳理,并經(jīng)過與仿真測試系統(tǒng)的對接,基本不用在目標機上調(diào)試業(yè)務(wù)邏輯。

        風云翼輝操作系統(tǒng)(AIC-OS)是由上海航天電子技術(shù)研究所基于SylixOS 開發(fā)的大型嵌入式實時操作系統(tǒng)(如圖3 所示),具有全自主、強實時、高可靠、高性能等特點,主要面向宇航領(lǐng)域的應(yīng)用需求,重點支持各種高性能星載計算機和信息處理平臺。AIC-OS 對于POSIX 操作系統(tǒng)接口的支持非常完善,因此,移植各類開源軟件非常方便,可以大幅降低人力成本和開發(fā)成本,縮短軟件和最終產(chǎn)品的研制周期。

        圖3 AIC-OS 的主要組成部分Fig.3 Main components of AIC-OS

        雖然目前高性能星載計算機的運算能力和存貯資源已經(jīng)逐漸接近地面計算機系統(tǒng),但在選擇動態(tài)語言引擎時我們?nèi)詢A向于選擇面向嵌入式環(huán)境設(shè)計的動態(tài)語言。目前,從語言特性、資源開銷、生態(tài)環(huán)境等角度看,Lua 仍然是面向嵌入式動態(tài)語言引擎的首選,其他選項如Python、JavaScript 或其他小眾語言都有或多或少的不足。Lua 由標準C 編寫而成,幾乎在所有操作系統(tǒng)和平臺上都可以編譯和運行。Lua 有意避免提供龐大的運行時庫,這樣應(yīng)用程序可以用C/C++針對特定場景提供算法支持。完全功能的Lua 引擎編譯后只有200 KiB,非常適合在嵌入式環(huán)境中使用。

        除了人工編碼之外,動態(tài)語言和C/C++算法庫之間的接口代碼可以由簡化的封裝和接口生成程 序(Simplified Wrapper and Interface Generator,SWIG)自動生成。SWIG 可以自動掃描C/C++頭文件中結(jié)構(gòu)體、函數(shù)、類的聲明,并面向動態(tài)語言如Python、Lua 等生成接口代碼。當需要面向多種語言生成接口代碼時,開發(fā)者只需要向SWIG 提供一份接口描述文件即可。

        綜上所述,在支持以在軌任務(wù)規(guī)劃為代表的智能航天器軟件時,需要使用更加復(fù)雜的基礎(chǔ)軟件支持算法和業(yè)務(wù)流程的開發(fā),并且可以支持同一套應(yīng)用軟件在不同開發(fā)平臺上運行,避免了針對嵌入式平臺重新開發(fā)應(yīng)用軟件或大規(guī)模調(diào)整接口。這一開發(fā)方式已經(jīng)在微納衛(wèi)星和新型航天企業(yè)的實踐中得到驗證,如Linux 在航天軟件中的使用[16],并用于智能算法的開發(fā)[17]。

        3 適用于自主任務(wù)規(guī)劃的開源庫

        3.1 任務(wù)規(guī)劃庫:CSPICE

        NASA SPICE 是美國國家航空航天局(NASA)噴氣推進實驗室(Jet Propulsion Laboratory,JPL)下屬導航與附屬信息研究室(Navigation and Ancillary Information Facility,NAIF)提供的程序集[18],主要用于處理NASA 提供的星歷文件、各種深空探測器的位置、速度、姿態(tài),以及科學儀器的安裝位置等信息,其名稱是Spacecraft、Planet、Instrument、Cameramatrix 和Events 的首字母縮寫。NASA SPICE面向的是規(guī)劃深空探測器科學實驗任務(wù)和載荷數(shù)據(jù)處理的科學工作者,但其中提供了較為完善的軌道、姿態(tài)以及儀器和成像目標相對位置關(guān)系的處理功能,也可用于人造地球衛(wèi)星的任務(wù)規(guī)劃,如圖4 所示。SPICE 軟件原最早用Fortran 77 寫成,后來用f2c 軟件轉(zhuǎn)成了C 版本,NASA NAIF 用CSPICE 的名稱維護C 版本,并提供Matlab 版本。隨著Python 的流行,SPICE 軟件也提供Python 綁定Spiceypy。

        圖4 SPICE 任務(wù)規(guī)劃庫的主要功能Fig.4 Main functions of the SPICE task planning library

        3.2 空間數(shù)據(jù)庫:Spatialite

        空間數(shù)據(jù)庫(Spatial Database)是用于存儲、處理和分析幾何圖形和圖形圖像的數(shù)據(jù)庫系統(tǒng)。在地面應(yīng)用中,空間數(shù)據(jù)庫主要用于處理遙感數(shù)據(jù)和地圖數(shù)據(jù)。在任務(wù)規(guī)劃應(yīng)用中,運行在星載計算機上的空間數(shù)據(jù)可以儲存目標信息、數(shù)字地面模型(Digital Terrain Model,DTM)以及遙感數(shù)據(jù)[19-20]。

        使用空間數(shù)據(jù)庫儲存的信息主要是為了后續(xù)多次查找和再利用??臻g數(shù)據(jù)庫針對二維(x,y)或三維(x,y,z)位置信息提供了R-Tree 索引功能,如圖5 所示。對于位置信息,R-Tree 索引將位置信息檢索的計算復(fù)雜度從O(N)降低到O(logN)。當任務(wù)規(guī)劃應(yīng)用需要從大量待觀測目標或DTM 數(shù)據(jù)中查找滿足一定幾何關(guān)系的點時,帶有R-Tree 索引的空間數(shù)據(jù)庫可以更快地提供備選項。之后可以再使用SPICE 或其他任務(wù)規(guī)劃庫計算具體成像時間點。

        圖5 用于空間信息檢索的R-Tree 索引算法[21]Fig.5 R-Tree index algorithm for spatial information retrieval[21]

        3.3 地圖投影和坐標轉(zhuǎn)換:PROJ

        眾所周知,地球是一個兩極稍扁、赤道略鼓的橢球,大地坐標系(經(jīng)緯度)依照地球橢球模型定義。而世界各國在進行本國的大地測量時,所使用的橢球模型各不相同,使用錯誤的橢球模型會造成測量數(shù)據(jù)和實際位置產(chǎn)生誤差。在計算測地線Geodetic問題,即計算地球上兩點之間的距離時,也需要考慮用橢球模型和托球面上的距離公式來計算[22]。

        目前,公認用于計算地圖投影的開源軟件是PROJ,該軟件早在1983 年就開始開發(fā),使用如圖6所示投影,到20 世紀90 年代,第4 版軟件PROJ.4 就已經(jīng)相當成熟,得到了廣泛的使用。目前,該軟件開始用C++等現(xiàn)代軟件開發(fā)方法升級,目前的最新版本是7.1.1。因此,如果需要使用成熟版本,或者嵌入式環(huán)境的編譯器對C++的支持比較差,可以使用純C 的PROJ.4。反之,如果操作系統(tǒng)和C++語言支持較好,也可以使用最新版本。

        圖6 UTM(通用墨卡托投影)地圖[23]Fig.6 UTM(universal Mercato projection)map[23]

        3.4 幾何拓撲關(guān)系:geos

        geos 都是處理幾何圖形拓撲關(guān)系的開源庫,實現(xiàn)的是ISO/IEC 13249-3 SQL/MM 中規(guī)定的各種幾何關(guān)系。該標準中定義了幾何圖形與幾何圖形的空間操作:

        空間操作:相等(ST_Equals)、斷開(ST_Disjoint)、接觸(ST_Touches)、包含(ST_Within)等。

        幾何圖形:點(ST_Point)、線(ST_Curve)、面(ST_Surfice)和集合類型(ST_GeomCollection)等,如圖7 所示。

        圖7 空間數(shù)據(jù)中規(guī)定的幾何圖形Fig.7 Geometry specified in spatial data

        3.5 線性規(guī)劃:GLPK

        GNU 線性規(guī)劃庫(GNU Linear Programming Kit,GLPK)是一款成熟的開源庫,支持線性規(guī)劃、混合整數(shù)規(guī)劃以及其他相關(guān)問題的建模和求解。在求解方法上,GLPK 支持單純形法(Simplex Method)、內(nèi)點法(Interior-point Method)和分支定界法(Branch-and-cut Method)。在編程語言上,GLPK 使用C 語言編寫,提供了可以嵌入其他程序的編程接口。GLPK 還支持面向規(guī)劃問題的建模語言MathProg,可以直接以聲明的形式描述線性規(guī)劃問題,在需要改變策略時降低了在軌編程的開銷。

        4 動態(tài)語言和中間件移植

        4.1 運行平臺簡介

        本文選取了4 種典型星載計算機或者數(shù)據(jù)處理器測試開源庫的運行,其中,BM3823 和FT6672V都是200 MHz 主頻的抗輻射處理器,而P1022 和C6678 都是1 GHz 主頻的高性能工業(yè)級處理器,具體參數(shù)見表2。

        表2 移植開源庫的平臺Tab.2 Platform for porting open source libraries

        4.2 移植測試情況

        作為一種嵌入式軟件,自主任務(wù)規(guī)劃軟件一般是獨立軟件產(chǎn)品,所有代碼都屬于單個應(yīng)用程序,因此,本文作者以靜態(tài)鏈接庫的形式對幾種自主任務(wù)規(guī)劃軟件中可能用到的開源庫進行了編譯,并將編譯結(jié)果(目標文件)打包成靜態(tài)鏈接庫。AIC-OS對動態(tài)鏈接庫的支持也很完善,當有多個應(yīng)用都需要這些庫時,也可以按照動態(tài)鏈接庫的形式編譯,并由操作系統(tǒng)統(tǒng)一管理。

        目 前,AIC-OS 使用基于Eclipse 開發(fā)環(huán)境,并基于工程文件生成Android 風格的Makefile 完成應(yīng)用程序編譯。而開源庫一般使用GNU autotools 進行編譯,目前尚不支持AIC-OS。因此本文選用了使用python 腳本生成Makefile 的方案,其主要流程包括:1)基于命令行輸入工具鏈參數(shù)設(shè)置編譯選項;2)調(diào)用gcc 生成依賴關(guān)系;3)使用Jinja2 模板生成Makefile;4)調(diào) 用make 編譯庫。

        完成交叉編譯后,將生成目標平臺的靜態(tài)庫加入AIC-OS 的APP 工程,編寫測試程序?qū)斓墓δ苓M行測試。移植和測試結(jié)果見表3。

        表3 移植和測試結(jié)果Tab.3 Results of porting and testing

        在表3 中,Sqlite 為微型嵌入式數(shù)據(jù)庫,Spatialite 就是在Sqlite 基礎(chǔ)上開發(fā)的,Proj 在存儲不同坐標系的信息時也使用Sqlite,因此獨立計算。

        5 結(jié)束語

        在高性能星載計算機和大型嵌入式操作系統(tǒng)的基礎(chǔ)上,先進的在軌任務(wù)規(guī)劃軟件已經(jīng)可以使用動態(tài)語言和開源庫進行系統(tǒng)設(shè)計和迭代實現(xiàn)。這種開發(fā)方法是快速實現(xiàn)在軌任務(wù)規(guī)劃和航天器智能化的必由之路。本文調(diào)研并移植的任務(wù)規(guī)劃庫、空間數(shù)據(jù)庫等中間件,已經(jīng)可以在星載計算機上運行,可支持后續(xù)在軌任務(wù)規(guī)劃系統(tǒng)的設(shè)計與實現(xiàn)。希望本文的工作能給從業(yè)者帶來啟發(fā),也歡迎與本文作者洽談合作。

        猜你喜歡
        開源嵌入式資源管理
        人事檔案管理在人力資源管理中的作用
        人力資源管理促進企業(yè)績效提升
        企業(yè)人力資源管理
        五毛錢能買多少頭牛
        搭建基于Qt的嵌入式開發(fā)平臺
        GIS在森林資源管理中的應(yīng)用
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        大家說:開源、人工智能及創(chuàng)新
        開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
        開源計算機輔助翻譯工具研究
        日本不卡一区二区三区久久精品 | 亚洲国产av一区二区不卡| 99精品国产在热久久无毒不卡| 亚洲欧美一区二区三区在线| 四虎永久在线精品免费观看地址| 宅男久久精品国产亚洲av麻豆| 国产精品综合一区久久| 午夜射精日本三级| 亚洲男人av香蕉爽爽爽爽| 国产精品玖玖资源站大全| 加勒比东京热一区二区| 精品视频无码一区二区三区| 精品国产a∨无码一区二区三区| 国产亚洲无码1024| 国内自拍视频一区二区三区 | 国产WW久久久久久久久久| 91桃色在线播放国产| 亚洲码欧美码一区二区三区| 四川老熟女下面又黑又肥| 日韩av二区三区一区| 亚洲不卡av二区三区四区| 无码aⅴ精品一区二区三区| 久久国产精品二国产精品| 欧洲乱码伦视频免费| 东京热加勒比久久精品| 97精品国产97久久久久久免费 | 久久综合给合综合久久| 亚洲AⅤ永久无码精品AA| 日本一二三区在线视频观看| 日韩在线永久免费播放| 高中生粉嫩无套第一次| 韩国无码精品人妻一区二| 久久久国产精品黄毛片| 国模丽丽啪啪一区二区| 亚洲AV无码国产永久播放蜜芽| 亚洲福利视频一区二区三区| 国产精品永久久久久久久久久| 免费又黄又爽又猛的毛片| 免费高清视频在线观看视频| 国语对白福利在线观看| 熟妇的荡欲色综合亚洲|