能上天的代碼? NASA 火星無(wú)人機(jī)飛行控制系統(tǒng)開(kāi)源了
【導(dǎo)語(yǔ)】:F Prime 是為“機(jī)智號(hào)”火星無(wú)人機(jī)量身定制的一個(gè)組件驅(qū)動(dòng)的框架,可以快速開(kāi)發(fā)和部署太空飛行及其他嵌入式軟件應(yīng)用程序。
簡(jiǎn)介
最近美國(guó)“毅力號(hào)”火星車成功登陸火星,配合它完成探測(cè)任務(wù)的“機(jī)智號(hào)”無(wú)人機(jī)搭載的是“驍龍801”處理器,并且“機(jī)智號(hào)”實(shí)際上是通過(guò) Linux 操作系統(tǒng)控制的,這是人類第一次在火星上運(yùn)行 Linux。

值得一提的是,多年前 NASA 把這個(gè)專門為火星無(wú)人機(jī)開(kāi)發(fā)的飛行控制系統(tǒng)開(kāi)源了,它就是本文的主角:F Prime。
F′(F Prime)是一個(gè)組件驅(qū)動(dòng)的框架,可以快速開(kāi)發(fā)和部署太空飛行及其他嵌入式軟件應(yīng)用程序。F′ 現(xiàn)已成功部署在多種太空應(yīng)用中,它是為小規(guī)模航天系統(tǒng)量身定制的,但是也完全可以使用在其他嵌入式系統(tǒng)開(kāi)發(fā)中。

F′包括以下幾個(gè)內(nèi)容:
將飛行軟件分解為具有定義良好的接口 提供消息隊(duì)列和線程等核心功能的C++框架 提供自動(dòng)生成代碼的建模工具 豐富可用的組件集合 用于在單元和集成測(cè)試飛行軟件的測(cè)試工具
項(xiàng)目地址:
https://github.com/nasa/fprime
簡(jiǎn)單使用
F′的安裝要求環(huán)境中有以下工具:
cmake git Python 3.5+
執(zhí)行以下命令即可完成安裝:
git?clone?https://github.com/nasa/fprime.git
cd?fprime
pip?install?--upgrade?wheel?setuptools?pip
pip?install?Fw/Python?Gds/
F′帶有兩個(gè)示例部署,其中一個(gè)向我們展示了束河在樹(shù)莓派上運(yùn)行F′,如何通過(guò)交叉編譯,驅(qū)動(dòng)程序等在嵌入式中入門;同時(shí)也提供了相關(guān)教程,以幫助我們理解框架,教程涵蓋了基本的組件創(chuàng)建,系統(tǒng)和拓?fù)湓O(shè)計(jì),工具等。詳細(xì)的示例和教程參考官網(wǎng)。
F′具有以下幾個(gè)特性:
可重用性。基于組件的體系結(jié)構(gòu)可實(shí)現(xiàn)高度的模塊化和軟件重用。 快速開(kāi)發(fā)。F′提供了一個(gè)完整的開(kāi)發(fā)生態(tài)系統(tǒng),包括建模工具,測(cè)試工具和地面數(shù)據(jù)系統(tǒng)。開(kāi)發(fā)人員可以使用建模工具編寫規(guī)范,并自動(dòng)生成實(shí)現(xiàn)。框架和代碼生成器提供F′部署所需的所有樣板代碼,包括線程管理的代碼,組件通信的代碼以及處理命令,遙測(cè)和參數(shù)的代碼。 可移植性。F′可以從微控制器運(yùn)行到多核計(jì)算機(jī)的多種處理器以及多種操作系統(tǒng)上運(yùn)行。移植到新的操作系統(tǒng)很簡(jiǎn)單。 高性能。采用點(diǎn)對(duì)點(diǎn)架構(gòu),減少了計(jì)算資源的使用,非常適合較小的處理器。 可適應(yīng)性。F′是根據(jù)小型任務(wù)所需的復(fù)雜性程度定制的,使得它易于使用。 可分析性。類型化的端口連接提供了強(qiáng)大的編譯時(shí)正確性保證。
結(jié)語(yǔ)
NASA 工程師在接受 IEEE 采訪時(shí)表示:
這是我們第一次在火星上使用 Linux。機(jī)智號(hào)是在 Linux 操作系統(tǒng)上運(yùn)行的。它使用的軟件框架是我們?cè)趪姎馔七M(jìn)實(shí)驗(yàn)室(JPL)為立方體衛(wèi)星和儀器開(kāi)發(fā)的,幾年前我們把它開(kāi)源了。
所以,大家可以得到一個(gè)在火星直升機(jī)上飛行的軟件框架,并且用在自己的項(xiàng)目上。這是一種開(kāi)源的勝利!
所以有了這個(gè)開(kāi)源項(xiàng)目,是不是意味著我們也有可能造出一架可以上天的無(wú)人機(jī)?感興趣的童鞋,快來(lái)學(xué)一下吧。
-?EOF -?
更多優(yōu)秀開(kāi)源項(xiàng)目(點(diǎn)擊下方圖片可跳轉(zhuǎn))
開(kāi)源前哨
日常分享熱門、有趣和實(shí)用的開(kāi)源項(xiàng)目。參與維護(hù)10萬(wàn)+star 的開(kāi)源技術(shù)資源庫(kù),包括:Python, Java, C/C++, Go, JS, CSS, Node.js, PHP, .NET 等
關(guān)注后獲取
回復(fù)?資源?獲取 10萬(wàn)+ star 開(kāi)源資源
分享、點(diǎn)贊和在看
支持我們分享更多優(yōu)秀開(kāi)源項(xiàng)目,謝謝!



