序:“小時候,晴朗的天空總是蔚藍(lán),就連那連綿不斷的山峰也無法遮擋住那深邃的遠(yuǎn)方。曾幾何時,天空中偶爾會飛過一架飛機(jī),于是眾小伙伴奔走相告,哪怕飛機(jī)的轟鳴早已響徹耳旁。有時,我們會目不轉(zhuǎn)睛地望著飛機(jī),直到它飛出視野范圍之外,并夢想著有一天能夠像飛機(jī)一樣在天空中翱翔,到我們想去的遠(yuǎn)方。 依稀記得,那些年,為了躲避夏日的炎熱,我們姐妹三人常常在優(yōu)靜的晚上躺在繁星閃爍的夜空下,仰望宇宙的蒼穹。那時,我們的視力好到可以看見亮度十分暗淡的人造衛(wèi)星飛越上空。而為了等待流星劃過夜空的美麗瞬間,我們更是輪流看守,不放過任何一次機(jī)會。令我們感到十分驚訝的是,我們幾乎總是能在深夜欣賞到流星劃過的瞬間,甚至有時還會中頭獎,來一次令人激動不已的流星雨。 童年縱然逝去,但我相信每個人心中都有個孩子,每個人心中都留有一份童真,每個人心中都深藏童年的美好記憶。現(xiàn)在看來,長大可并不是一件好事,但是爸媽卻不這么想,天天盼望著我們長大成人,并能有所作為。 童年對頭頂上那片天空產(chǎn)生的特殊情懷使得我踏上了航空航天的學(xué)習(xí)道路,然而多年以來卻術(shù)無專攻、學(xué)無所成。唯一值得欣慰的是,這么多年來,我學(xué)會了一個原則,那就是做任何事都不要首先嘗試重新發(fā)明輪子,而要學(xué)著制造汽車。用牛頓先生的話說,就是:“如果說我比別人看得更遠(yuǎn)些,那是因?yàn)槲艺驹诹司奕说募绨蛏稀!庇谑牵?dāng)我需要某種工具時,必先用 Google 搜尋一番,哪怕是 Bing 也是可以的。時至今日才猛然發(fā)現(xiàn),在開放的世界竟然有那么多實(shí)用的工具可以為我所用,即使是專業(yè)特性超強(qiáng)的航空航天領(lǐng)域。” 本文并非一篇教讀者如何在龐雜的信息世界里搜索合適的工具,而是直接授之以魚,將筆者已知的航空航天領(lǐng)域十分優(yōu)秀的開放仿真工具介紹給大家,并輔以相應(yīng)的入門級教程。這其實(shí)是一項十分艱難的工作,因?yàn)榇蟛糠珠_放軟件的文檔都較為匱乏,且絕大多數(shù)由英文寫成。這倒不是致命傷,關(guān)鍵在于,筆者不可能把每一款軟件都學(xué)會,然后寫出教程。從時間和精力的角度來講,這都是不現(xiàn)實(shí)的。所以本文將重點(diǎn)對功能相對強(qiáng)大且筆者認(rèn)為十分有研究價值的工具軟件展開介紹,希望能拋磚引玉,吸引更多的愛好者加入到本文的撰寫過程中來。 本文定性為航空航天仿真工具的相關(guān)介紹和研究,主要涉及航空航天領(lǐng)域大量優(yōu)秀的開放仿真軟件,不會涉及任何與開放硬件相關(guān)的話題。這里的開放是指讀者可以免費(fèi)獲取資源,而無需為其支付任何使用費(fèi)用。文中介紹的工具包含了很多開源的軟件,而開源是開放的子集,開源的軟件絕大多數(shù)是免費(fèi)的。此外,開源軟件最鮮明的特點(diǎn)是其源代碼必定公開,并可以通過互聯(lián)網(wǎng)或其它媒介自由獲取。書中并不包含那些停止開發(fā)或多年未曾更新的工具軟件,因?yàn)楣P者認(rèn)為,只有歷經(jīng)歲月的洗禮,才能稱得上優(yōu)秀,并最具研究價值。原則上,長達(dá)五年未曾更新的軟件不會出現(xiàn)在本文的分類之中,已經(jīng)包含在本文中的軟件如果在未來五年之內(nèi)不再更新,亦將在下一次更新過程中被剔除。 是開源賦予了這個時代更多的活力,而開放則將知識的種子播撒開來。知識本就不應(yīng)該被束之高閣,即使是本文所討論的航空航天。衷心地希望本文能夠幫助讀者了解航空航天,了解開放的世界,并最終找到自己鐘愛的航空航天仿真工具。
? 2016/06/28 v1.0 建立基本框架,對每款軟件進(jìn)行較為完整的介紹,并不涉及任何操作實(shí)踐,甚至不包括如何安裝軟件。 0.1.2 寫作計劃 ? 2019/04/05 v1.1 添加 OpenRocket 安裝教程。 ? 2019/04/15 v1.2 添加 Orbiter 入門教程:沖破卡門線。 ? 2019/04/25 v1.3 添加 GMAT 入門教程:Molniya 軌道預(yù)報。 ? 2019/05/15 v1.4 添加 Orbiter 入門教程:造訪國際空間站。 ? 2019/05/25 v1.5 添加 NASA’s Eyes 入門教程:在家暢游太陽系。 ? 2019/06/15 v1.6 添加 Orbiter 入門教程:帶她一起去月球。 ? 2019/06/25 v1.7 添加 GMAT 入門教程:霍曼轉(zhuǎn)移。 ? 2019/07/15 v1.8 添加 Orbiter 進(jìn)階教程:TransX 行星際航行指南。 ? 2019/07/25 v1.9 添加 Orbiter 進(jìn)階教程:紅色行星之旅行。 ? 2019/08/15 v2.0 添加 Orbiter 高級教程:EVA & EDL。 0.2 使用協(xié)議 本文采用 Creative Commons 使用協(xié)議,具體內(nèi)容請參照 Creative Commons 協(xié)議官方網(wǎng)站。
第一篇 航空工具集 本篇將對開放航空工具進(jìn)行分類歸納,由于筆者已不再從事航空學(xué)方面的研究工作,所以很少再接觸新的航空工具軟件,文中涉及的工具皆為筆者早年間熟知的軟件,具有一定的代表性。同時希望讀者能夠分享信息,提供更多關(guān)于開放航空仿真工具軟件最新的發(fā)展?fàn)顩r。 本篇含有三個部分的內(nèi)容,在廣度和深度方面都不如航天工具集篇詳實(shí),但其中卻不乏重量級的工具。如 flightgear 和 OpenRocket,它們在各自的領(lǐng)域都有著極大的影響力。特別值得一提的是它們的源代碼都是開放的,使得用戶可以進(jìn)行深層次的探究。 筆者作為一名模擬飛行愛好者,曾經(jīng)使用過 x-plane,如今對 Orbiter 有較為系統(tǒng)的學(xué)習(xí)。雖然只是在虛擬的環(huán)境中體驗(yàn)飛行,但這也未曾不失為一種樂趣,而且模擬帶著濃厚的教育意味,在此過程中可以學(xué)得一些書本之外的知識。 1.1 模擬飛行 ![]() 1.1.1 FlightGear FlightGear 是一款開源的跨平臺模擬飛行器。該項目始于 1997 年,經(jīng)過最初十年的開發(fā),于 2007 年 12 月發(fā)布了功能較為完善的 v1.0.0 版本。其最新版本為 2019 年 1 月 29 日發(fā)布的 v2018.3.2 版本,軟件授權(quán)協(xié)議為 GPL(GNU General Public License)。 ![]() 從 FlightGear 官方手冊可知,F(xiàn)lightGear 具有以下諸多特點(diǎn): 民用性:該項目主要針對民航,用于通用航空和民航飛行模擬。FlightGear 的長遠(yuǎn)目標(biāo)是可以作為 FAA 的飛行訓(xùn)練模擬器;FlightGear 不能進(jìn)行空戰(zhàn)模擬可能會讓您感覺有些失望。但我們并沒有完全排除 FlightGear 的這部分功能,只是因?yàn)槿鄙倏諔?zhàn)模擬的開發(fā)人員所以還沒有實(shí)現(xiàn)這部分功能。 跨平臺:項目所有開發(fā)人員都希望代碼能不依賴平臺,因此 FlightGear 能運(yùn)行在多種電腦硬件和操作系統(tǒng)上。當(dāng)前的代碼支持 Linux(任何分支和平臺)、Windows XP/Vista/7/8/10( Intel/AMD 平臺)、Mac OS X、BSD UNIX & Sun Solaris 等等。目前為止,還沒有其它任何一款模擬飛行軟件(不管是商業(yè)化的還是免費(fèi)的)支持如此多的平臺。 開放性:FlightGear 不限定在任何固定開發(fā)人員手里,能在項目中發(fā)揮作用任何人都是受歡迎的。此項目的版權(quán)在自由軟件基金會的手中,雖然 GPL 現(xiàn)在還不太被人們了解,但它已經(jīng)得到法律的保護(hù)。在這個體系中,GPL 允許您復(fù)制和免費(fèi)貢獻(xiàn)代碼,只要你喜歡這樣做。然而,你必須免費(fèi)提供源代碼給每個需要它的人,且必須保留原始著作權(quán)。簡而言之,GPL 允許你做任何除了收費(fèi)之外的事情。 擴(kuò)展性:從設(shè)計之初開始,F(xiàn)lightGear 的場景地形、飛機(jī)模型、內(nèi)部參數(shù)、API 和其它任何東西都是對用戶透明并有文檔記錄的。就算沒有任何開發(fā)文檔,您也能參看源代碼來了解 FlightGear 是如何工作的。FlightGear 開發(fā)人員的目標(biāo)是建立是一個能自由進(jìn)行場景設(shè)計、飛行面板設(shè)計、ATC 設(shè)計及聲音驅(qū)動的基本引擎。FlightGear 項目凝結(jié)了來自全世界開發(fā)者的智慧,我們希望此項目所有的開發(fā)人員和用戶都能從中獲益。 1.1.2 Plane-Maker Plane-Maker 是隨 X-Plane 免費(fèi)發(fā)布的一款內(nèi)部模型插件開發(fā)工具,專門供 X-Plane 插件開發(fā)者為其開發(fā)飛機(jī)、人物、車輛及地景模型等第三方插件。用戶只需安裝 X-Plane Demo,而非購買完整的 X-Plane 軟件包,即可獲得 Plane-Maker 進(jìn)行插件開發(fā)。 ![]() Plane-Maker 雖然是免費(fèi)軟件,但它的功能卻異常強(qiáng)大。首先,它給開發(fā)者提供了一個十分方便的 GUI 集成環(huán)境,從而使得開發(fā)者可以很輕松地在該環(huán)境中創(chuàng)建各種類型的模型;其次,Plane-Maker 與 X-Plane 的交互過程既簡單又高效,且在 Plane-Maker 中開發(fā)的飛機(jī)插件可以直接導(dǎo)入 X-Plane 這一高仿真度的模擬飛行環(huán)境中進(jìn)行試飛;此外,Plane-Maker 能夠讀取來自外部三維軟件(如 Blender、Google Sketchup、AC3D 及 3DS Max 等)所構(gòu)建的各種模型。 事實(shí)上,Plane-Maker 完全是 X-Plane 團(tuán)隊為提升自身競爭力而為第三方開發(fā)者量身打造的插件開發(fā)工具。時間證明,這種做法是成功的。因?yàn)椋缃?X-Plane 的插件開發(fā)者已經(jīng)為其開發(fā)了大量的優(yōu)秀插件,這間接增加了 X-Plane 對用戶的吸引力。你可以從 X-Plane 官方論壇下載到由眾多愛好者開發(fā)的各種插件。當(dāng)然,如果你想設(shè)計一架屬于自己的機(jī)模,我相信 Plane-Maker 一定是不錯的選擇。 1.1.3 CRRCSim CRRCSim 是一款基于 GPL 發(fā)布的開源遙控模型飛機(jī)飛行模擬器,由 C 和 C 語言編寫而成,OpenGL 作為圖形驅(qū)動引擎。CRRCSim 可運(yùn)行在主流的操作系統(tǒng)平臺之上,多數(shù) Linux 發(fā)行版本、Mac OS X 及 Microsoft Windows。使用 CRRCSim 不僅可以幫助你學(xué)習(xí)如何操控遙控模型飛機(jī),并在模擬環(huán)境中提高遙控操縱技能,還可以幫助你測試新設(shè)計的飛機(jī)模型。 ![]() 1.2 飛行動力學(xué)仿真 ![]() 圖注:基于 JSBSim 開發(fā)的 MATLAB/Simulink 仿真模塊 1.2.1 JSBSim JSBSim 是一套開源的飛行動力學(xué)模型軟件庫,目前為 FlightGear 兩大常用的飛行動力學(xué)引擎之一。此外,JSBSim 還被 OpenEaagles 模擬框架所使用,并可以單獨(dú)被其它程序調(diào)用,以此來創(chuàng)建一些模擬工具。 ![]()
|