縱觀使得無人機得以實現(xiàn)的三大突破—電機、電池、控制系統(tǒng),我發(fā)現(xiàn)控制系統(tǒng)是最有意思的。也許是寫代碼的職業(yè)生涯給我?guī)淼钠姡么跷乙彩菐в行┤饲槲兜摹.斎唬灿行┤擞姓鎸嵉年P于開發(fā)我們的電機和電池的故事,但是這些故事都被深埋在那些享有專利的公司之中。不過我們在這兒尋找的那些飛行控制器基本上都是些開放資源,所以關于他們自主開發(fā)的故事也將被公之于眾。我們將尋找?guī)讉€關于無人機控制系統(tǒng)的項目。這些項目都已開發(fā)了可以在無人機上運行的軟件,用以控制無人機并使無人機穩(wěn)定飛行。同時,許多項目也已經(jīng)包含了地面控制臺軟件來監(jiān)控以及調整無人機,甚至是開放式資源的硬件規(guī)范。我們將追溯每個項目的歷史,并找出一個選擇該系統(tǒng)而不是其他系統(tǒng)的理由。MultiWii編輯搜圖MultiWii有著出色的穩(wěn)定控制性能MultiWii是一個用于控制多旋翼模型的通用方案。最初,它只是開發(fā)用于支持搭載陀螺儀和加速度計的NintendoWii控制手柄,目前已經(jīng)支持多種傳感器類型。結尾處的這兩個“i”是參考了任天堂的電視游戲系統(tǒng)。當固態(tài)陀螺儀第一次被用于商業(yè)產(chǎn)品時,最早使用它們的一種產(chǎn)品正是Wii控制器。在當時,不計其數(shù)的Wii控制器被拆解開,就因為這是得到芯片最可靠的方法。同時,一個使用從Wii控制器里得到的陀螺儀開發(fā)出來的完整的控制系統(tǒng)被連接到Arduinos用來控制多軸飛行器。這個項目就以MultiWii這個名字而被知曉。編輯 搜圖 MultiWii是基于Arduino的開源項目,能為各種平臺提供自穩(wěn)控制,被廣泛的用于多軸飛行器與航拍。除飛控以外,該項目當前還包含有適用于自己通訊協(xié)議的的視頻疊加方案,地面站配置工具,以及一個第三方的基于Arduino的I2C接口的GPS導航模塊。編輯 搜圖 任何人都可以在Arduino平臺上開發(fā)最原始的Wii控制器只有加速度計并沒有陀螺儀,所以它不足以控制飛行。使用運動擴展或者是雙節(jié)棍就可以使一個控制器有3個陀螺轉子。一些最早的MultiWii控制器沒有加速度計,因此沒有絕對的參考標準。但是使無人機搖晃、傾斜、偏航變得穩(wěn)定的比率提供了有效的控制使其飛行。也許有人會說,MultiWii飛控早就過時了,說的沒錯,但是對開發(fā)者來說,它有著相當重要的入門意義。相比浩如煙海的APM源碼庫來說,MultiWii飛控的代碼量算是相當?shù)男。谢揪幊探?jīng)驗的人,花不多時間就能理順整個飛控的控制流程;同時MultiWii飛控的功能也是簡潔可靠,用于飛行器的自穩(wěn)控制并不比其他當前主流飛控差;雖然當前基于GPS的飛行模式還不夠成熟,但是其GPS導航模式已經(jīng)可以可靠工作。所以,挖掘其中的價值還是很有意義的。編輯 搜圖 可以編寫MWC的板子MultiWii的發(fā)展已經(jīng)像無人機控制器一樣成熟了,也正因為如此使得許多分支項目誕生了。這包括了其中最著名的Baseflight和Cleanflight,之后我們將在本章加以介紹。這項技術的成熟意味著將產(chǎn)生各種程序支持。MultiWiiConf,這個主要配置程序已經(jīng)可以在所有的主要桌面和手機平臺上使用了。因為一些分支項目已經(jīng)以MultiWii串行協(xié)議(MSP)維護了兼容性用以交流溝通,MultiWiiConf和許多MultiWii支持程序同樣也可以用其他控制系統(tǒng)了。當MultiWii支持GPS穩(wěn)定性時也有許多面向最新傳感器的實驗版本,這確實有它自己的局限性。MultiWii這個名字中的“Multi”意味著它是用于多軸飛行器。的而不是用于直升機的,當然也不是用于固定翼飛機的。它也不能完成一些復雜的、自主的任務。(后者正是我們尋找下一代無人機控制系統(tǒng)的動力。)第一架MultiWii三軸飛行器第一架使用MultiWii的飛行器是Alexandre Dubus在2010年制造的一架三軸飛行器(見圖)。它只有一個陀螺儀(沒有加速度計),所以它并沒有什么參考價值。不過,據(jù)報道這架三軸飛行器飛行得卻非常棒。 編輯 搜圖 第一架使用MultiWii的三軸飛行器