科研福利|基於模型設計的飛控Firmament Autopilot內測招募!
Firmament Autopilot(簡稱FMT)是首個基於模型設計 (Model-Based Design, 簡稱MBD) 的開源自駕儀。FMT專案從Starry Pilot開源飛控發展而來,耗時四年開發完成。基於目前最流行的開源飛控硬體Pixhawk,包括一個用C語言實現的嵌入式飛控系統 FMT Firmware 以及基於 Matlab/Simulink 開發的演算法模型庫和模擬框架 FMT Model。
相比其它傳統飛控系統,基於FMT平臺可以更快速的開發和驗證演算法,無需手動編寫嵌入式程式碼,只需要在Simulink中通過圖形化的方式設計演算法模型然後一鍵生成C/C++程式碼。生成的程式碼可以直接合入飛控而無需修改和編寫任何嵌入式程式碼,大大提高演算法的開發和驗證效率。
FMT優勢:
基於模型設計是一種數學及視覺化的設計方法,通過圖形化的方式設計複雜的飛控或者其它控制系統。MBD的設計模式已經廣泛應用於汽車以及航空航天領域,其科學性和可靠性也早已被充分證明。傳統的手動編碼的開發模式固然有其優勢,但是其劣勢也越來越明顯。特別當系統變得越來越龐大,功能越來越複雜,使用手寫的演算法模組變得越來越難以維護,也不可避免的造成程式碼的安全性和可移植性越來越差。
FMT 作為首個完全基於MBD開發的飛控系統,其核心演算法在 Matlab/Simulink 平臺上搭建,繼承了 MBD 開發模式的諸多優點,如:
●極大提升演算法開發效率,節省時間和人力成本。
●減少手動編寫程式碼過程中產生的錯誤,提升系統穩定性。
●極大提升演算法的優化和Debug效率,簡化系統測試和驗證流程。
●提高演算法的可維護性和可移植性。
FMT Firmware:
FMT Firmware 為飛控的嵌入式部分,採用分層設計模式,層與層,模組與模組之間鬆耦合,更易於裁剪和移植。
FMT Firmware 具有輕量級,易於閱讀和使用的特點,並且兼具穩定性和實時性。總結起來,FMT Firmware 的優勢包括:
·C 語言編寫的輕量級飛控系統,更易使用和二次開發。
·跨臺的開發工具鏈,支援Windows/Linux/Mac OS。
·支援MBD設計模式,大大提升開發和測試效率。
·
·高實時性,時間誤差 < 1us。
·更高執行效率和更低的CPU使用率。提供更大算力空間用以提高演算法複雜度和執行頻率。
·支援 Mavlink V1.0/V2.0和主流地面站 QGC,Mission Planner等。
·支援硬體在環模擬 (HIl/SIH)。
·高度模組化,鬆耦合的軟體架構,易於裁剪和移植。
其架構如下圖所示:
FMT Model
FMT Model 為 基於 Matlab/Simulink平臺編寫的一個完整的模擬模型框架和演算法模型庫。支援模型在環模擬 (Model-in-the-loop Simulation, MIL),軟體在環模擬 (Software-in-the-loop Simulation, SIL) 和開環模擬 (Open-loop Simulation)。
FMT Model 的模型庫包括一套完整的無人機演算法模型。可以分為導航系統,飛行管理系統,控制系統和被控物件模型四個部分。每個部分包含多種類的演算法模型,以支援不同的演算法和被控物件。
其架構如下圖所示:
其中演算法庫通過Github Submodule的方式進行組織,使用者可以用來獨立維護自己的演算法模型,並新增到FMT Model的模擬框架中。FMT提供種類豐富而且功能完善的模擬模型,可以很容易的基於已有模型或者提供的模型模板進行二次開發。
FMT Model 演算法模型庫主要由四類模型組成:
·INS : 慣性導航系統。通過多感測器融合演算法得到被控物件的狀態資訊(如姿態、速度和位置等)以及各個感測器的健康狀況資訊等。
·FMS : 飛行管理系統。主要負責飛行邏輯相關的控制,內部主要由狀態機實現。包括飛航模式控制,自動起飛降落,軌跡跟蹤控制,安全檢測等功能。
·Controller : 控制器模型。基於 FMS 輸出的指令資訊和 INS 輸出的狀態資訊進行速度環、姿態環和角速度環的控制。控制器的輸出經由控制分配將控制訊號轉成作動器(電機)訊號。
·Plant : 被控物件模型,如無人機,無人車/船,機器人等。物件模型包括了動力學模型,作動器模型,環境模型和感測器模型。通過對不同的被控物件進行科學的建模,以達到對不同被控物件進行閉環模擬的目的。
基於FMT的模擬
FMT飛控依託Matlab/Simulink平臺提供了強大的模擬功能,如模型在環(MIL),軟體在環(SIL),硬體在環(HIL)模擬等。
除此以外,還提供了強大的開環模擬功能,基於FMT強大的日誌功能,實時記錄飛行資料,飛行資料通過解析可以直接匯入FMT Model的模型中進行模擬。得益於FMT飛控系統優秀的實時性和高效的效能,模擬的結果跟實際飛行的結果100%吻合。如下圖所示為一組導航的輸出,紅色為開環模擬的結果 (500Hz執行頻率),藍色為記錄的導航實際輸出的結果 (100Hz頻率記錄)。兩者完全擬合(圖中不擬合的部分是由於記錄實際模型輸出的頻率低於實際模型的執行頻率)。其它模型也可以獲得同樣的模擬效果。除了模型的輸出以外,模型內部任意模組的狀態資訊也能通過開環模擬100%復現,真正做到“一次測試,多次模擬”的目的,從而大大提高了開發和除錯效率。
重點來啦!!!
阿木實驗室現面向所有無人機愛好者,公開招募一批內測使用者先期使用FMT飛控,目的是讓感興趣的使用者可以體驗FMT基於模型開發的功能,幫助提供飛行測試資料,提出寶貴的反饋意見或者提交一些程式碼修改以提升FMT的穩定性和效能。(首批使用者需具有一定飛控開發和Matlab/Simulink使用經驗哦。)
目前FMT只支援多旋翼平臺,故需要一臺組裝好能飛的多旋翼無人機。其它控制平臺如多旋翼,VTOL,無人車/船,機器人等也歡迎有能力的技術大拿加入,並協助開發對應的控制模型。
注意呦~試飛成功後用戶可以獲得免費的技術指導和100阿木幣作為獎勵。
歡迎各位小夥伴兒加入我們!測試視訊如下↓↓
文件地址:更多內容請參閱使用者手冊https://github.com/FirmamentPilot/fmt_user_guide_cn
專案主頁:https://github.com/FirmamentPilot