Firmament (FMT) 開源飛控系統(tǒng)是如何運(yùn)行的?
項目介紹
Firmament (FMT) 是一款基于模型設(shè)計 (Model Based Design, MBD) 的開源自駕儀,可被用來快速構(gòu)建無人機(jī),車,船,機(jī)器人等的無人控制系統(tǒng)?;谀P驮O(shè)計已經(jīng)被廣泛應(yīng)用于汽車制造、航空航天等行業(yè),當(dāng)前采用基于模型設(shè)計模式開發(fā)的飛控系統(tǒng)鳳毛麟角,而 FMT 就是為此而誕生。
FMT結(jié)合當(dāng)前最先進(jìn)的基于模型設(shè)計和3D仿真技術(shù),致力于打造下一代的開源自駕儀系統(tǒng)。目前所有代碼均開源,歡迎Star!
FMT 項目主要由三部分構(gòu)成:
FMT-Firmware: 飛控嵌入式軟件框架。包含飛控的核心軟件,驅(qū)動以及功能模塊。
FMT-Model: 飛控算法模型框架。包含了基于 Matlab/Simulink 實現(xiàn)的算法模型,如導(dǎo)航,控制,狀態(tài)機(jī),被控對象模型等。算法模型通過自動代碼生成可以合入到 FMT-FW中,從而構(gòu)成完整的飛控系統(tǒng)軟件。
FMT-Sim(開發(fā)中): 基于3D引擎實現(xiàn)的模擬仿真環(huán)境,提供逼真的渲染效果和豐富的仿真場景。
區(qū)別于其它的開源飛控,F(xiàn)MT構(gòu)建了從嵌入式軟件,建模與仿真于一體的軟件開發(fā)平臺。

功能特點
-??C語言實現(xiàn)的輕量級、高實時、高性能的嵌入式軟件系統(tǒng),支持C/C++混合編譯。
-??基于國產(chǎn)RTOS RT-Thread, 擁有活躍的開源社區(qū)以及豐富的第三方組件。
-??支持MBD(Model-based Design)全流程開發(fā)。MIL、SIL、HIL、SIH仿真支持。
-??基于Matlab/Simulink實現(xiàn)的算法和模型庫,圖形化編程,支持仿真和自動代碼生成。
-??支持Mavlink協(xié)議以及開源地面站QGroundcontrol。
-??支持多種硬件平臺,如FMT飛控硬件ICF5,以及廣泛使用的開源硬件Pixhawk/Pixhawk4/雷迅V5+等。
-??采用跨平臺的開發(fā)工具鏈,支持Win/Linux/Mac等平臺的開發(fā)。
嵌入式軟件系統(tǒng)——FMT-Firmware

?
FMT-Firmware采用分層設(shè)計和高度模塊化的設(shè)計模式,算法和底層深度解耦,便于算法二次開發(fā)和替換。
-??Target HW:目標(biāo)硬件BSP(Board Support Package),目前已支持多種硬件平臺,如ICF、Pixhawk4、CUAV-V5+、Hex Cubeorange和QEMU等;
-??Driver:與板載芯片無關(guān)的通用驅(qū)動軟件,如傳感器驅(qū)動、存儲器驅(qū)動、LED驅(qū)動等;
-??HAL:硬件抽象層,為上層提供統(tǒng)一的設(shè)備接口;
-??RTOS:國產(chǎn)開源RT-Thread嵌入式操作系統(tǒng);
-??Middleware:中間層,包含系統(tǒng)組件Modules、算法模塊Models和軟件庫Libraries;
-??Task:應(yīng)用層,包含系統(tǒng)頂層任務(wù),如控制任務(wù)、通信任務(wù)、日志任務(wù)和狀態(tài)顯示任務(wù)等。
其中Models包含四類算法模塊,適用于大部分的被控對象平臺,如無人機(jī)、無人車、無人船、機(jī)器人等:
-??INS慣性導(dǎo)航系統(tǒng):通過多傳感器融合算法,獲得對象的姿態(tài)信息,如姿態(tài)、速度、位置等;
-??FMS飛行管理系統(tǒng):負(fù)責(zé)管理對象的狀態(tài),如模式管理、安全管理、位置制導(dǎo)等功能;
-??Controller控制系統(tǒng):控制率算法,負(fù)責(zé)對象的底層控制,如姿態(tài)、速度控制等;
-??Plant被控對象模型:被控對象的數(shù)學(xué)建模,包含動力學(xué)建模、作動器建模、環(huán)境建模和傳感器建模等(被控對象模型僅用于HIL和SIH等仿真用途)。
由于算法和底層深度解耦,只通過標(biāo)準(zhǔn)的模型接口進(jìn)行連接,所以可以像樂高積木那樣,通過嵌入不同的算法模型,來實現(xiàn)算法的替換以及對不同對象的控制。

?
算法模塊不僅支持Simulink代碼自動生成,也可以使用傳統(tǒng)的C/C++編碼方式:
FMT C/C++算法移植步驟詳解
FMT-Firmware嵌入式軟件框架專為MBD設(shè)計,提供了許多功能強(qiáng)大的中間件模塊組件:
FMT中間件(1)——一種高效的跨線程通信模塊uMCNFMT中間件(2)——一種分布式參數(shù)模塊FMT中間件(3)——一種高實時的分布式日志模塊Mlog建模與仿真系統(tǒng)——FMT-Model
FMT區(qū)別于其它傳統(tǒng)開源自駕儀的地方在于支持MBD基于模型設(shè)計的全流程設(shè)計,可以涵蓋V型設(shè)計模式的各個階段。

?
FMT-Model是基于MATLAB/Simulink所搭建的一套建模與仿真系統(tǒng),可以提供算法設(shè)計階段的系統(tǒng)定義、需求定義、接口設(shè)計、算法建模和仿真等功能支持。

?
FMT-Model目前包含了多旋翼和固定器的全套算法模型,使用Simulink圖形化的建模方式,算法框架清晰,便于理解和二次開發(fā),也可直接生成代碼合入嵌入式軟件中進(jìn)行實飛測試。

?

除了Simulink提供的基礎(chǔ)模塊以外,F(xiàn)MT-Model還提供一套FMT Toolbox,包含大量基礎(chǔ)數(shù)學(xué)模塊,來幫助快速搭建算法模型:

FMT-Model支持多種仿真模式,如模型在環(huán)仿真(Model-in-the-loop Simulation,MIL)和開環(huán)仿真(Openloop Simulation)。
FMT仿真——模型在環(huán)仿真FMT仿真——開環(huán)仿真支持硬件平臺
阿木實驗室?ICF5
合力兄弟 Pixhawk4
雷迅 V5+
赫星Cubeorange






FMT項目相關(guān)資源:
FMT項目地址:
https://github.com/Firmament-Autopilot
FMT用戶手冊:
https://firmament-autopilot.github.io/FMT-DOCS/#/content_ch/
項目公開課:
https://bbs.amovlab.com/plugin.php?id=zhanmishu_video:video&mod=video&cid=70
若希望進(jìn)一步交流,可添加客服微信(yinyue199506),申請進(jìn)入【FMT開發(fā)者交流群】。
近期我們推出的FMT首個自研飛控硬件——ICF5,正在火熱開售中,目前現(xiàn)貨庫存已不多,如您對該產(chǎn)品感興趣,請聯(lián)系客服(jiayue199506 或 yinyue199506)及時加購喲