概述篇:一.多旋翼飛控發展史

[深入淺出多旋翼飛控開發]概述篇][一][多旋翼飛控發展史]

作者:王偉韻
QQ : 352707983
Github
因論壇關閉,遷移該文章至博客。

近年來,多旋翼飛行器猶如一顆閃亮的新星般異軍突起,迅速佔領了民用無人機和玩具飛行器市場。其背後,需要歸功於多旋翼飛控技術的發展與普及。飛控,即飛行控制系統,是飛行器的大腦與靈魂。它負責接收外部信息並進行計算處理,然後控制各部位的運轉,以保持飛行器的正常飛行狀態。

下圖是著名的開源飛控Pixhawk的連線示意圖,中間最明顯的則是飛控。飛控採集板載以及外接的各種傳感器信息, 然後通過微處理器進行實時處理和計算得到飛行器的姿態和位置, 結合無線傳輸接收到的控制指令,再將反饋控制量輸出到電機,從而達到控制飛行器飛行狀態的目的。

Pixhawk連線示意圖

要說起飛控,我們不得不談起MEMS(微電子機械系統)陀螺儀傳感器。陀螺儀最早應用於航海導航,經過了一百年的發展,已經成爲現代航空航天航海工業中最重要的元件之一。早期的機械陀螺儀一般是一個又大又重的大疙瘩,其重量和體積使其難以應用到小型飛行器中。20世紀90年代以後,MEMS技術開始成熟,只有芯片大小的MEMS傳感器被製造出來了,能夠實現自主導航的小型飛行器變得可能實現。

在民用飛行器領域,MEMS陀螺儀傳感器最早被應用於小型航模直升機。早期的航模直升機一般沒有裝備飛控,完全靠飛手手動控制,因此非常難以駕馭,只有經過大量訓練的玩家才能夠比較好地操控。因爲操控直升機,不僅要通過遙控器手動控制姿態上的三個自由度使其平衡飛行,還要同時控制油門及槳距來保持其高度穩定。新手很容易一下子就手忙腳亂導致直升機墜機炸燬。

儘管操控難度較大,純手動操控的航模直升機因其強大的靈活性仍被許多玩家所喜好

後來有人在直升機上加入了一個單軸陀螺儀,可以感知偏航軸的角速度變化,以控制尾槳的轉速來保持直升機的航向不變,從而從一定程度上降低了直升機的操控難度(當你分不清飛行器頭尾的時候是最容易導致操作失誤的),所以也被稱之爲鎖尾陀螺儀。

直升機的結構允許了手動控制是可能的,因爲只需要控制一個螺旋槳就可以維持基本的飛行,當然一般還有一個尾槳負責控制航向。後來,機械上更加簡單輕便的四旋翼結構逐漸流行開來(省去了直升機上最複雜的旋翼頭),只依靠調整4個螺旋槳的轉速來控制飛行器的姿態。手動控制變得近乎不可能,因爲人的反應速度不足以同時手動控制4個螺旋槳,保持穩定所需要的調整速度和精度也是人無法做到的。

F450機架
電機旋轉方向示意圖

早期的MEMS陀螺儀通常是單軸的,即只能感知一個平面內的角度變化。有人想到了用三個陀螺儀互成90度夾角的組合方式來測量飛行器在三維空間內運動的三個軸的角速度,然後讓微處理器以非常高的頻率去控制四個螺旋槳的轉速。飛手只要控制三個軸的角速度就能保持四旋翼飛行器的穩定,大大降低了操控難度。

來自法國的一個開源項目KK飛控便是此類型的一個代表作,KK飛控軟硬件全開源,採用atmega8單片機和三個單軸的陀螺儀,硬件簡單且成本非常低廉,因此早期受到了很多玩家的歡迎。程序採用彙編編寫,移植性和可讀性都較差。

KK飛控

不過此類飛控的缺點也是顯而易見的,因爲只有陀螺儀,飛控只能測量出飛行器的角速度,而無法計算飛行器相對於水平面的角度,因此不能自動保持平衡。需要飛手實時觀察飛行器姿態,通過眼睛的實時反饋,來控制每個軸的運動角速度,使飛行器達到一個平衡的狀態。所以說,儘管KK飛控使四旋翼變得可以操控了,但並不代表人人都能飛得很好,能駕馭KK飛控的飛手,通常是那些經過千錘百煉的玩家,或者是練過直升機的。早期的時候很多人會向新手推薦KK飛控,而目前儘管仍能從淘寶上購買到該飛控,但非常建議不選擇這款“古董級”飛控,除非你想特意爲自己的入門學習之路增加難度。

隨着半導體工藝的發展,能夠測量三軸角速度的MEMS傳感器誕生了,而除了MEMS陀螺儀傳感器,還有MEMS加速度傳感器。越來越多的消費級電子產品使用了這些MEMS傳感器。加速度傳感器不僅能測量出物體的運動加速度,還能測量出地球上無時無刻不存在的重力加速度。簡單的理解:對測量得到的重力加速度進行一定計算,便能得出此時飛行器相對於水平面的傾角。利用特定的算法結合陀螺儀和加速度測量到的數據,就可以計算出飛行器此時相對於水平面的姿態,從而實現自穩控制,即自動保持與水平面平行的飛行姿態。

其次,還有MEMS磁力計與MEMS氣壓計。衆所周知,地球上存在着恆定的磁場,磁力計測量得到三個軸的磁感強度,經過計算後使飛行器能夠感知自身的飛行朝向,這是實現自主導航的基礎。氣壓計則可以測量大氣壓強,因爲大氣層內大氣壓強隨着高度增加而逐漸遞減,根據這個關係便可以將測量到的大氣壓強轉換爲高度,目前精度最高的消費級MEMS氣壓計傳感器分辨率可以達到10釐米。

爲了能實現自主懸停飛行及導航,飛控必須還得解決最後一個問題,即得到飛行器自身的位置。在室外,GPS定位系統是唯一一個比較實用的獲取自身位置的手段。不過普通民用GPS接收機的定位精度通常在米級, 所以通常飛控需要利用GPS結合其它傳感器來融合計算出較高精度的位置數據。

2006年,對於全世界來說四旋翼飛行器領域也有了一些年頭的技術積累,終於德國人跨出了重要了一步。德國的Microdrones公司推出了md-200四旋翼飛行器,兼備極佳的穩定性和有效載荷能力,逐漸向全世界的民用工業領域推廣開來。同年,德國還誕生了一款影響重大的開源飛控——Mikrokopter(MK),被無數後來者模仿和學習。

MK飛控

然而像在2006-2008年這個時期,這些MEMS傳感器的零售渠道是非常少的,意味着普通玩家極難通過普通渠道購買到這些傳感器。而法國的一個航模愛好者Alex想到了一個辦法,他從任天堂遊戲機手柄中拆卸出了陀螺儀和加速度計模塊,然後裝到自己製作的飛控板上,來控制自己的三軸飛行器。Alex把自己的這個項目開源了,叫MultiWii,也就是後來著名的MWC飛控。經過全世界各大高手的不斷完善與發展,變成了一個具有優秀性能的飛控程序,更可以輕易適配各種DIY的飛控硬件,至今仍有強大的生命力。

MWC飛控配置軟件

同個時期,大西洋的彼岸,美國《連線》雜誌前主編克里斯•安德森在家用樂高DIY一個固定翼飛行器的時候建立了diydrones社區,在社區上認識了許多來自各國的同好,其中有一個19歲的墨西哥極客小夥Jordi,高中畢業在家,自己鼓搗了很多有趣的東西。安德森發現Jordi是一個很有想法也具有相當實力的人,於是2009年的時候安德森贊助了一筆錢,兩個人一起創建了3D Robotics(3DR)公司,公司就建立在墨西哥,初期主要由Jordi來運營。2010年,3DR公司發佈了採用更強大的mega2560單片機的APM飛控, 其軟硬件全部開源,這款飛控得到了diydrones社區上衆多高手的不斷完善和改進,最終成爲了目前最流行,功能最強大的開源飛控。

2011年,3DR發佈了APM第二代飛控。

APM2

同年,來自中國深圳的大疆創新公司(DJI)發佈了公司旗下首款多旋翼商業飛控WooKong-M,中文名悟空。大疆公司爲香港科技大學研究生畢業的汪滔在2006年創立, 在推出悟空之前,DJI已經於小型直升機飛控領域深耕數年,並取得了一定成就, 受到2010年法國的Parrot公司推出的第一代Ar.Drone而掀起一陣四旋翼飛行器的風潮的影響,DJI也決定進軍多旋翼市場,很快便將其在直升機飛控上積累的技術移植到了悟空多旋翼飛控上。

WooKong-M飛控

悟空飛控爲當時國內外多旋翼消費市場上難得一見的高端飛控, 包含了一個獨立的工業級IMU傳感器模塊與一個集成電子羅盤的GPS模塊, 具有極佳的穩定性和自主飛行能力,推出後被迅速應用於許多用於航拍的多旋翼飛行器。不過高達八千元一套的售價使得普通玩家只能望物興嘆。

隨着MEMS技術的進一步發展,各大半導體公司推出了集成度更高的單芯片傳感器,比較有代表性有invenSense公司推出的六軸傳感器MPU6050/MPU6000,在一個4x4mm大小的芯片裏整合了三軸陀螺儀和三軸加速度計。目前大部分知名的開源飛控採用的均爲MPU6050/MPU6000,而在淘寶上能買到的那些玩具四旋翼飛行器,百分之九十採用的是MPU6050或者其精簡版MPU6050C。

不過,技術上來講,只有更高而沒有最高,invenSense公司緊接着推出了九軸傳感器MPU9150,在同樣4x4mm大小的芯片裏整合了三軸陀螺儀和三軸加速度計以及三軸磁力計。

早期各類開源飛控絕大部分均選擇AVR單片機作爲主控,後來隨着飛控程序的發展與完善,8位單片機的速度和資源逐漸顯得捉襟見肘,如APM飛控,對mega2560單片機的利用簡直是達到了極致,後期版本的代碼基本上榨乾了這個單片機的所有資源,因此更換新一代處理器已經顯得迫在眉睫了。

好在,半導體技術發展得非常及時,許多基於ARM-Cortex-M內核的32位單片機逐漸浮出消費級市場,其中普及率最高的爲意法半導體公司的STM32系列單片機,更高的主頻,更強大的性能,以及更豐富的資源,對應的卻是非常低廉的價格,於是各大開源飛控紛紛升級爲STM32單片機。連DJI推出的廉價版多旋翼商業飛控NAZA-M(中文名哪吒),亦是使用STM32。

OpenPilot是由OpenPilot社區於2009年推出的飛控項目,旨在爲社會提供低成本但功能強大的穩定型自動駕駛儀。這個項目由兩部分組成,包括OpenPilot飛控與其相配套的軟件。其中,飛控的固件部分由C語言編寫,而地面站則用C++編寫。OpenPilot擁有衆多的硬件設計,其中CC3D是最流行的飛控,此飛控板只有一塊STM32F103單片機和MPU6000傳感器,但擁有優秀的穩定性和良好的操作手感,由於用料簡單因此售價也非常便宜,被大量用於穿越機上。所謂“穿越機”便是體積很小的四旋翼飛行器,上面通常會安裝一個攝像頭,玩家可以通過第一視角手動操控飛行器穿越各種林間小道,以體驗飛行的樂趣。

CC3D飛控

2012年,MultiWii論壇上一位成員“timecop”發佈了一個將MWC代碼移植到STM32F103單片機上的項目,命名爲baseflight,成爲了MWC在32位單片機平臺上的一個分支,其飛控板稱之爲Naze32。其硬件設計源自於中國的一款“MMC10飛控”(前身爲FF飛控),後被一位日本人對其進行優化改良,便有了Naze32飛控。

Naze32飛控

後來又有人在baseflight的算法基礎上對程序架構進行了改善,形成了baseflight的一個分支:cleanflight,支持包括Naze32、CC3D在內的數款飛控板。

2013年,3DR聯合蘇黎世聯邦工業學院(ETH)發佈了新一代的開源飛控:Pixhawk。Pixhawk採用了STM32F4單片機,高達168MHz的主頻帶來了更好的運算性能, 傳感器方面採用了雙冗餘度方案, 即雙份陀螺儀,雙份加速度計。Pixhawk有着自己的一套新的算法和基於NuttX實時操作系統的運行體系,但同時也兼容前一代APM飛控的代碼。

Pixhawk飛控

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章