天天看點

無人機為何“一夜爆紅”?開源飛控在其後助力

四旋翼飛行器的普及很大程度上得益于開源飛控的發展。

在21世紀,

無人機

已經屢見不鮮,不過奇怪的是它仿佛是一夜之間飛入尋常百姓家,這是為什麼呢?要知道無人機曾經發展的“攔路虎”是自動駕駛儀,隻有這個裝置的技術難關被攻克,無人機才能快速普及。頗為專業的講,無人機的發展很大程度上是得益于開源飛控的發展。想必你現在如堕五裡霧中,快快跟随北航無人駕駛飛行器設計研究所兩位教授的思路,帶着問題,一起圍觀開源飛控的技術和故事。(本文整理自北航無人駕駛飛行器設計研究所兩位教授的文稿)

無人機為何“一夜爆紅”?開源飛控在其後助力

一、開源是什麼意思?

開源(Open Source)的概念最早被應用于開源軟體,開放源代碼促進會(Open Source Initiative)用其描述那些源碼可以被公衆使用的軟體,并且此軟體的使用、修改和發行也不受許可證的限制。

每一個開源項目均擁有自己的論壇,由團隊或個人進行管理,論壇定期釋出開源代碼,而對此感興趣的程式員都可以下載下傳這些代碼,并對其進行修改,然後上傳自己的成果,管理者從衆多的修改中選擇合适的代碼改程序式并再次釋出新版本。如此循環,形成“共同開發、共同分享”的良性循環。

無人機為何“一夜爆紅”?開源飛控在其後助力

開源軟體的發展逐漸與硬體相結合,産生了開源硬體。硬體與軟體不同之處是實物資源應該始終緻力于創造實物商品。

是以,生産在開源硬體(OSHW)許可下的品目(産品)的人和公司有義務明确該産品沒有在原設計者核準前被生産,銷售和授權,并且沒有使用任何原設計者擁有的商标。硬體設計的源代碼的特定格式可以被其他人擷取,以便對其進行修改。在實作技術自由的同時,開源硬體提供知識共享并鼓勵硬體設計開放交流貿易。

無人機為何“一夜爆紅”?開源飛控在其後助力

開源硬體(OSHW)定義1.0是在軟體開源定義基礎上定義的。該定義是由Bruce Perens和Debian的開發者作為Debian自由軟體方針而建立的。

二、開源飛控是何物?

我們已經知道了開源硬體的概念,那麼開源飛控的概念也不難了解。所謂開源飛控就是建立在開源思想基礎上的自動飛行控制器項目(Open Source Auto Pilot),同時包含開源軟體和開源硬體,而軟體則包含飛控硬體中的固件和地面站軟體兩部分。愛好者不但可以參與軟體的研發,也可以參與硬體的研發,不但可以購買硬體來開發軟體,也可以自制硬體,這樣便可讓更多人自由享受該項目的開發成果。

值得一提的是,由于開源項目的使用具有商業性,每個開源飛控項目都會給出官方的法律條款以界定開發者和使用者權利,不同的開源飛控對其法律界定都有所不同。

三、開源飛控是如何發展過來的?

不得不提,四旋翼飛行器以p結構簡單、操控便捷、價格低廉等優勢,最先從花樣百出的無人機中脫穎而出,備受大衆青睐。由于這種飛行器對飛行控制能力的要求是最高的,它同時推動着衆多基于MEMS傳感器的開源飛控的出現。開源飛控的發展可大緻分為三代。

第一代開源飛控系統使用Arduino或其他類似的開源電子平台為基礎,擴充連接配接各種MEMS傳感器,能夠讓無人機平穩地飛起來,其主要特點是子產品化和可擴充能力。

無人機為何“一夜爆紅”?開源飛控在其後助力

第二代開源飛控系統大多擁有自己的開源硬體、開發環境和社群,采用全內建的硬體架構,将全部10DOF傳感器、主要單片機,甚至GPS等裝置全部內建在一塊電路闆上,以提高可靠性。

它使用全數字三軸MEMS傳感器組成航姿系統(IMU);能夠控制飛行器完成自主航線飛行,同時可加裝電台與地面站進行通信,初步具備完整自動駕駛儀的功能。此類飛控還能夠支援多種無人裝置,包含固定翼飛行器、多旋翼飛行器、直升機和車輛等,并具備多種飛行模式,包含手動飛行、半自主飛行和全自主飛行。第二代飛控的主要特點是高內建性、高可靠性,其功能已經接近商業自動駕駛儀标準。

第三代開源飛控系統将會在軟體和

人工智能

方面進行革新。它加入了叢集飛行、圖像識别、自主自主避障、自動跟蹤飛行等進階飛行功能,向機器視覺、叢集化、開發過程平台化的方向發展。

四、這些開源飛控傳奇你怎麼能錯過?

1)Arduino飛控

無人機為何“一夜爆紅”?開源飛控在其後助力

要想了解開源飛控的發展就必須先了解著名的開源硬體項目Arduino。

Arduino 是最早的開源飛控,由Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis 和 Nicholas Zambetti于2005年在意大利互動設計學院合作開發而成。Arduino公司首先為電子開發愛好者搭建了一個靈活的開源硬體平台和開發環境,使用者可以從Arduino官方網站取得硬體的設計文檔,調整電路闆及元件,以符合自己實際設計的需要。

Arduino可以通過與其配套的Arduino IDE軟體檢視源代碼并上傳自己編寫的代碼,Arduino IDE使用的是基于C語言和C++的Arduino語言,十分容易掌握,并且Arduino IDE可以在Windows、Macintosh OSX和Linux三大主流作業系統上運作。

随着該平台逐漸被愛好者所接受,各種功能的電子擴充子產品層出不窮,其中最為複雜的便是內建了MEMS傳感器的飛行控制器。為了得到更好的飛控設計源代碼,Arduino公司決定開放其飛控源代碼,他們開啟了開源飛控的發展道路。著名的開源飛控WMC和APM都是Arduino飛控的直接衍生産品,至今仍然使用Arduino開發環境進行開發。

2)APM飛控

無人機為何“一夜爆紅”?開源飛控在其後助力

APM(ArduPilotMega)是在2007年由DIY無人機社群(DIY Drones)推出的飛控産品,是當今最為成熟的開源硬體項目。APM基于Arduino的開源平台,對多處硬體做出了改進,包括加速度計、陀螺儀和磁力計組合慣性測量單元(IMU)。由于APM良好的可定制性,APM在全球航模愛好者範圍内迅速傳播開來。通過開源軟體Mission Planner,開發者可以配置APM的設定,接受并顯示傳感器的資料,使用google map 完成自動駕駛等功能,但是Mission Planner僅支援windows作業系統。

目前APM飛控已經成為開源飛控成熟的标杆,可支援多旋翼、固定翼、直升機和

無人駕駛

車等無人裝置。針對多旋翼,APM飛控支援各種四、六、八軸産品,并且連接配接外置GPS傳感器以後能夠增穩,并完成自主起降、自主航線飛行、回家、定高、定點等豐富的飛行模式。APM能夠連接配接外置的超音波傳感器和光流傳感器,在室内實作定高和定點飛行。

3)PX4和PIXHawk

無人機為何“一夜爆紅”?開源飛控在其後助力

PX4是一個軟硬體開源項目(遵守BSD協定),目的在于為學術、愛好和工業團體提供一款低成本、高性能的高端自駕儀。

這個項目源于蘇黎世聯邦理工大學的計算機視覺與幾何實驗室、自主系統實驗室和自動控制實驗室的PIXHawk項目。PX4FMU自駕儀子產品運作高效的實時作業系統(RTOS),Nuttx提供可移植作業系統接口(POSIX)類型的環境。例如:printf()、pthreads、/dev/ttyS1、open()、write、poll()、ioctl()等。軟體可以使用USB bootloader更新。

PX4通過MAVLink同地面站通訊,相容的地面站有QGroundControl和Mission Planner,軟體全部開源且遵守BSD協定。

由3DR聯合APM小組與PX4小組于2014年推出的PIXHawk飛控是PX4飛控的更新版本,擁有PX4和APM兩套固件和相應的地面站軟體。該飛控是目前全世界飛控産品中硬體規格最高的産品,也是目前愛好者手中最炙手可熱的産品。

PIXHawk擁有168MHz的運算頻率,并突破性地采用了整合硬體浮點運算核心的Cortex-M4的單片機作為主要晶片,内置兩套陀螺和加速度計MEMS傳感器,互為補充矯正,内置三軸磁場傳感器并可以外接一個三軸磁場傳感器,同時可外接一主一備兩個GPS傳感器,在故障時自動切換。

基于其高速運算的核心和浮點算法,PIXHawk使用最先進的定高算法,可以僅憑氣壓高度計便将飛行器高度固定在1米以内。它支援目前幾乎所有的多旋翼類型,甚至包括三旋翼和H4這樣結構不規則的産品。它使飛行器擁有多種飛行模式,支援全自主航線、關鍵點圍繞、滑鼠引導、“FollowMe”、對尾飛行等進階的飛行模式,并能夠完成自主調參。

PIXHawk飛控的開放性非常好,幾百項參數全部開放給玩家調整,靠基礎模式簡單調試後亦可飛行。PIXHawk內建多種電子地圖,愛好者們可以根據當地情況進行選擇。

4)OpenPilot與Taulabs

無人機為何“一夜爆紅”?開源飛控在其後助力

OpenPilot是由OpenPilot社群于2009年推出的自動駕駛儀項目,旨在為社會提供低成本但功能強大的穩定型自動駕駛儀。這個項目由兩部分組成,包括OpenPilot自駕儀與其相配套的軟體。其中,自駕儀的固件部分由C語言編寫,而地面站則用C++編寫,并可在Windows、Macintosh OSX和Linux三大主流作業系統上運作。

OpenPilot的最大特點是硬體架構非常簡單,從它目前擁有的衆多硬體設計就可以看出其與衆不同之處。官方釋出的飛控硬體包括CC、CC3D、ATOM、Revolution、Revolution nano等,衍生硬體包括Sparky、Quanton、REVOMINI等,甚至包含直接使用STM32開發闆擴充而成的FlyingF3、FlyingF4、DescoveryF4等,其中CC3D已經是300mm以下軸距穿越機和超小室内航模的首選飛控,而DiscoveryF4被大量用于愛好者研究飛控,Quanton更是成為了Taulabs的首選硬體。

到這裡,我們不得不說說Openpilot旗下最流行的硬體CC3D。

此飛控闆隻采用一顆72MHz的32位STM32單片機和一顆MPU6000就能夠完成四旋翼、固定翼、直升機的姿态控制飛行(注意,該硬體可進行的是三自由度姿态控制,而不是增穩),電路闆大小隻有35mm×35mm。

無人機為何“一夜爆紅”?開源飛控在其後助力

與所有開源飛控不同,它不需要GPS融合或者磁場傳感器參與修正,就能保持長時間的姿态控制。以上所有功能全部使用一個固件,通過設定便可更改飛機種類、飛行模式、支援雲台增穩等功能。

其編譯完的固件所需容量隻有大約100KB,代碼效率令人驚歎,是所有飛控程式員學習的楷模。其地面站軟體內建了完整的電子地圖,可以通過電台實時監測飛機狀态。

TauLabs飛控是OpenPilot飛控的衍生産品。目前TauLabs最流行的硬體叫做Quanton,由原OpenPilot飛控小組成員獨立完成。

它繼承了OpenPilot簡單高效的特點,并擴充了氣壓高度計和三軸磁場傳感器,将主要單片機更新為帶有硬體浮點運算的Cortex-M4核心。該飛控是最早支援自動調參的開源飛控産品,帶有模型辨識算法,能夠在飛行中進行自整定姿态PID控制參數。TauLabs能夠完成許多進階飛行模式,連接配接外置GPS後可使多旋翼具備定高、定點、回家等功能。飛控內建了電子地圖,且界面非常友好,使用向導模式進行初始化,初學者可以簡單上手。

5)Multi Wii Copter (MWC)

無人機為何“一夜爆紅”?開源飛控在其後助力

Multi Wii Copter(MWC)飛控是一款典型的Arduino衍生産品,是專為多旋翼開發的低成本飛控,它完整地保留了Arduino IDE開發和Arduino裝置更新和使用的方法。由于成本低、架構簡單、固件比較成熟,是以該飛控在國内外擁有大量愛好者。除了支援常見的四、六、八旋翼以外,該飛控的最大特點是支援很多奇特的飛行器類型,比如三旋翼、阿凡達飛行器(BIcopter avatar style)、Y4型多旋翼(其中兩軸為上下對置)等,使得該飛控的開發趣味性較強,容易博得大家的喜愛。

6)KKMulti Copter

無人機為何“一夜爆紅”?開源飛控在其後助力

KK飛控是源于南韓的一款開源飛控項目,也是第一種廣為大衆接受的多旋翼飛控,在開源飛控發展的初期,該飛控的橫空出世對整個四旋翼行業是一種震撼。

該飛控隻使用三個成本低廉的單軸陀螺,配合一台最簡單的四通道遙控裝置,就能控制常見的三、四、六旋翼飛行器,并且支援“十字”型,X型、H型和上下對置等多種布局。該飛控使用三個可調電阻調整感度作為調參方法,保留了早期航模陀螺儀的特征。作為多旋翼飛控起始的重要見證,這款“古董”級經典飛控,依然擁有衆多玩家。

7)Paparazzi(PPZ)

無人機為何“一夜爆紅”?開源飛控在其後助力

Paparazzi(PPZ)是一個軟硬體全開源的項目,它始于2003年,開發目标是建立一個配置靈活且性能強大的開源飛控項目。PPZ的一大特點是,該開源飛控方案中除了常見的飛控硬體、飛控軟體和地面站軟體之外,還包含地面站硬體,包括各種數據機、天線等裝置。從功能上講,PPZ已經接近一個小型的無人機系統了。

該開源項目的另一個特點是采用ubuntu作業系統,它将全部地面站軟體和開發環境內建于該系統下,官方稱之為Live CD。一張CD加飛控硬體就可完成從開發到使用的全部工作。

PPZ目前最流行的硬體版本是Paparazzi(PPZ)Lisa/M v2.0。該硬體擁有大量的擴充接口,并且使用可擴充的單獨的IMU傳感器闆。這也是早期開源飛控比較流行的做法,這樣可以像DIY台式計算機那樣,随着傳感器更新而不斷更新IMU硬體。

8)Autoquad飛控和ESC32電調

無人機為何“一夜爆紅”?開源飛控在其後助力

Autoquad飛控來自德國,作為早期開源飛控,Autoquad功能非常強大,但是受限于當時的傳感器産品,它不得不采用大量模拟MEMS傳感器。

所謂模拟傳感器指的是傳感器晶片内部不內建數模轉換器(ADC)和運算核心,而直接将微機械傳感器的變化通過放大和硬體濾波後以電壓的形式輸出,需要主要單片機進行AD采集。

因為傳感器在不同溫度環境下,輸出值會受到影響,模拟MEMS傳感器給參數校準帶來了不少麻煩。很多玩家在第一次使用該飛控時,不得不借助電冰箱來進行傳感器校準,而一些廠家為了保證批量産品的穩定性,隻能在飛行器上對電路闆進行加溫,使其保持溫度恒定。

但是,這種校準方法卻為一些骨灰級玩家帶來了額外的樂趣,很多人反而樂此不疲。對于大多數普通愛好者而言,這實在是一項難度不小的工作。随着帶有出廠校準的數字傳感器的普及,Autoquad作為曆史的積澱,也完成了它的使命。

但是,該開源項目的另一個分支。ESC32電調卻逐漸在玩家中被接受了。該電調是第一個采用數字接口進行控制的電調産品,玩家可以通過序列槽、I2C接口和CAN接口來控制電機的轉速,這比傳統的PWM接口資訊速度要快很多倍。常見的PWM電調波形更新速度為每秒鐘四百次,而數字接口的更新速度可達到百萬次。尤其是對于動力變化非常敏感的多旋翼飛行器來說,這種高速通信是非常必要的。該電調還支援轉速閉環,并且能夠針對電機進行詳細調參,這些功能都是傳統航模電調不能比拟的。

當然,Autoquad也在進步,但是面對PIXHawk、APM等已經成熟多年的先進飛控産品,它已經從前輩淪落為後起之秀。最近,它釋出了全新的飛控産品Autoquad M4,對主要單片機和傳感器進行了全面更新,采用常見的STM32F4單片機和數字傳感器。

開源飛控還在不斷發展,是以四旋翼飛行器這類的産品成本在不斷降低,性能卻在不斷地提升。随着無人機技術的發展,未來更多人将感受到無人機飛行的樂趣。

原文釋出時間:2015-09-08 10:59

本文作者:豆瑞米

本文來自雲栖社群合作夥伴鎂客網,了解相關資訊可以關注鎂客網。