無(wú)人機為何“一夜爆紅”?開(kāi)源飛控在其后助力
四旋翼飛行器的普及很大程度上得益于開(kāi)源飛控的發(fā)展。
在21世紀,無(wú)人機已經(jīng)屢見(jiàn)不鮮,不過(guò)奇怪的是它仿佛是一夜之間飛入尋常百姓家,這是為什么呢?要知道無(wú)人機曾經(jīng)發(fā)展的“攔路虎”是自動(dòng)駕駛儀,只有這個(gè)設備的技術(shù)難關(guān)被攻克,無(wú)人機才能快速普及。頗為專(zhuān)業(yè)的講,無(wú)人機的發(fā)展很大程度上是得益于開(kāi)源飛控的發(fā)展。想必你現在如墮五里霧中,快快跟隨北航無(wú)人駕駛飛行器設計研究所兩位教授的思路,帶著(zhù)問(wèn)題,一起圍觀(guān)開(kāi)源飛控的技術(shù)和故事。(本文整理自北航無(wú)人駕駛飛行器設計研究所兩位教授的文稿)
一、開(kāi)源是什么意思?
開(kāi)源(Open Source)的概念最早被應用于開(kāi)源軟件,開(kāi)放源代碼促進(jìn)會(huì )(Open Source Initiative)用其描述那些源碼可以被公眾使用的軟件,并且此軟件的使用、修改和發(fā)行也不受許可證的限制。
每一個(gè)開(kāi)源項目均擁有自己的論壇,由團隊或個(gè)人進(jìn)行管理,論壇定期發(fā)布開(kāi)源代碼,而對此感興趣的程序員都可以下載這些代碼,并對其進(jìn)行修改,然后上傳自己的成果,管理者從眾多的修改中選擇合適的代碼改進(jìn)程序并再次發(fā)布新版本。如此循環(huán),形成“共同開(kāi)發(fā)、共同分享”的良性循環(huán)。
開(kāi)源軟件的發(fā)展逐漸與硬件相結合,產(chǎn)生了開(kāi)源硬件。硬件與軟件不同之處是實(shí)物資源應該始終致力于創(chuàng )造實(shí)物商品。
因此,生產(chǎn)在開(kāi)源硬件(OSHW)許可下的品目(產(chǎn)品)的人和公司有義務(wù)明確該產(chǎn)品沒(méi)有在原設計者核準前被生產(chǎn),銷(xiāo)售和授權,并且沒(méi)有使用任何原設計者擁有的商標。硬件設計的源代碼的特定格式可以被其他人獲取,以便對其進(jìn)行修改。在實(shí)現技術(shù)自由的同時(shí),開(kāi)源硬件提供知識共享并鼓勵硬件設計開(kāi)放交流貿易。
開(kāi)源硬件(OSHW)定義1.0是在軟件開(kāi)源定義基礎上定義的。該定義是由Bruce Perens和Debian的開(kāi)發(fā)者作為Debian自由軟件方針而創(chuàng )建的。
二、開(kāi)源飛控是何物?
我們已經(jīng)知道了開(kāi)源硬件的概念,那么開(kāi)源飛控的概念也不難理解。所謂開(kāi)源飛控就是建立在開(kāi)源思想基礎上的自動(dòng)飛行控制器項目(Open Source Auto Pilot),同時(shí)包含開(kāi)源軟件和開(kāi)源硬件,而軟件則包含飛控硬件中的固件和地面站軟件兩部分。愛(ài)好者不但可以參與軟件的研發(fā),也可以參與硬件的研發(fā),不但可以購買(mǎi)硬件來(lái)開(kāi)發(fā)軟件,也可以自制硬件,這樣便可讓更多人自由享受該項目的開(kāi)發(fā)成果。
值得一提的是,由于開(kāi)源項目的使用具有商業(yè)性,每個(gè)開(kāi)源飛控項目都會(huì )給出官方的法律條款以界定開(kāi)發(fā)者和使用者權利,不同的開(kāi)源飛控對其法律界定都有所不同。
三、開(kāi)源飛控是如何發(fā)展過(guò)來(lái)的?
不得不提,四旋翼飛行器以p結構簡(jiǎn)單、操控便捷、價(jià)格低廉等優(yōu)勢,最先從花樣百出的無(wú)人機中脫穎而出,備受大眾青睞。由于這種飛行器對飛行控制能力的要求是最高的,它同時(shí)推動(dòng)著(zhù)眾多基于MEMS傳感器的開(kāi)源飛控的出現。開(kāi)源飛控的發(fā)展可大致分為三代。
第一代開(kāi)源飛控系統使用Arduino或其他類(lèi)似的開(kāi)源電子平臺為基礎,擴展連接各種MEMS傳感器,能夠讓無(wú)人機平穩地飛起來(lái),其主要特點(diǎn)是模塊化和可擴展能力。
第二代開(kāi)源飛控系統大多擁有自己的開(kāi)源硬件、開(kāi)發(fā)環(huán)境和社區,采用全集成的硬件架構,將全部10DOF傳感器、主控單片機,甚至GPS等設備全部集成在一塊電路板上,以提高可靠性。
它使用全數字三軸MEMS傳感器組成航姿系統(IMU);能夠控制飛行器完成自主航線(xiàn)飛行,同時(shí)可加裝電臺與地面站進(jìn)行通信,初步具備完整自動(dòng)駕駛儀的功能。此類(lèi)飛控還能夠支持多種無(wú)人設備,包含固定翼飛行器、多旋翼飛行器、直升機和車(chē)輛等,并具備多種飛行模式,包含手動(dòng)飛行、半自主飛行和全自主飛行。第二代飛控的主要特點(diǎn)是高集成性、高可靠性,其功能已經(jīng)接近商業(yè)自動(dòng)駕駛儀標準。
第三代開(kāi)源飛控系統將會(huì )在軟件和人工智能方面進(jìn)行革新。它加入了集群飛行、圖像識別、自主自主避障、自動(dòng)跟蹤飛行等高級飛行功能,向機器視覺(jué)、集群化、開(kāi)發(fā)過(guò)程平臺化的方向發(fā)展。
四、這些開(kāi)源飛控傳奇你怎么能錯過(guò)?
1)Arduino飛控
要想了解開(kāi)源飛控的發(fā)展就必須先了解著(zhù)名的開(kāi)源硬件項目Arduino。
Arduino 是最早的開(kāi)源飛控,由Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis 和 Nicholas Zambetti于2005年在意大利交互設計學(xué)院合作開(kāi)發(fā)而成。Arduino公司首先為電子開(kāi)發(fā)愛(ài)好者搭建了一個(gè)靈活的開(kāi)源硬件平臺和開(kāi)發(fā)環(huán)境,用戶(hù)可以從Arduino官方網(wǎng)站取得硬件的設計文檔,調整電路板及元件,以符合自己實(shí)際設計的需要。
Arduino可以通過(guò)與其配套的Arduino IDE軟件查看源代碼并上傳自己編寫(xiě)的代碼,Arduino IDE使用的是基于C語(yǔ)言和C++的Arduino語(yǔ)言,十分容易掌握,并且Arduino IDE可以在Windows、Macintosh OSX和Linux三大主流操作系統上運行。
隨著(zhù)該平臺逐漸被愛(ài)好者所接受,各種功能的電子擴展模塊層出不窮,其中最為復雜的便是集成了MEMS傳感器的飛行控制器。為了得到更好的飛控設計源代碼,Arduino公司決定開(kāi)放其飛控源代碼,他們開(kāi)啟了開(kāi)源飛控的發(fā)展道路。著(zhù)名的開(kāi)源飛控WMC和APM都是Arduino飛控的直接衍生產(chǎn)品,至今仍然使用Arduino開(kāi)發(fā)環(huán)境進(jìn)行開(kāi)發(fā)。
2)APM飛控
APM(ArduPilotMega)是在2007年由DIY無(wú)人機社區(DIY Drones)推出的飛控產(chǎn)品,是當今最為成熟的開(kāi)源硬件項目。APM基于A(yíng)rduino的開(kāi)源平臺,對多處硬件做出了改進(jìn),包括加速度計、陀螺儀和磁力計組合慣性測量單元(IMU)。由于A(yíng)PM良好的可定制性,APM在全球航模愛(ài)好者范圍內迅速傳播開(kāi)來(lái)。通過(guò)開(kāi)源軟件Mission Planner,開(kāi)發(fā)者可以配置APM的設置,接受并顯示傳感器的數據,使用google map 完成自動(dòng)駕駛等功能,但是Mission Planner僅支持windows操作系統。
目前APM飛控已經(jīng)成為開(kāi)源飛控成熟的標桿,可支持多旋翼、固定翼、直升機和無(wú)人駕駛車(chē)等無(wú)人設備。針對多旋翼,APM飛控支持各種四、六、八軸產(chǎn)品,并且連接外置GPS傳感器以后能夠增穩,并完成自主起降、自主航線(xiàn)飛行、回家、定高、定點(diǎn)等豐富的飛行模式。APM能夠連接外置的超聲波傳感器和光流傳感器,在室內實(shí)現定高和定點(diǎn)飛行。
3)PX4和PIXHawk
PX4是一個(gè)軟硬件開(kāi)源項目(遵守BSD協(xié)議),目的在于為學(xué)術(shù)、愛(ài)好和工業(yè)團體提供一款低成本、高性能的高端自駕儀。
這個(gè)項目源于蘇黎世聯(lián)邦理工大學(xué)的計算機視覺(jué)與幾何實(shí)驗室、自主系統實(shí)驗室和自動(dòng)控制實(shí)驗室的PIXHawk項目。PX4FMU自駕儀模塊運行高效的實(shí)時(shí)操作系統(RTOS),Nuttx提供可移植操作系統接口(POSIX)類(lèi)型的環(huán)境。例如:printf()、pthreads、/dev/ttyS1、open()、write、poll()、ioctl()等。軟件可以使用USB bootloader更新。
PX4通過(guò)MAVLink同地面站通訊,兼容的地面站有QGroundControl和Mission Planner,軟件全部開(kāi)源且遵守BSD協(xié)議。
由3DR聯(lián)合APM小組與PX4小組于2014年推出的PIXHawk飛控是PX4飛控的升級版本,擁有PX4和APM兩套固件和相應的地面站軟件。該飛控是目前全世界飛控產(chǎn)品中硬件規格最高的產(chǎn)品,也是當前愛(ài)好者手中最炙手可熱的產(chǎn)品。
PIXHawk擁有168MHz的運算頻率,并突破性地采用了整合硬件浮點(diǎn)運算核心的Cortex-M4的單片機作為主控芯片,內置兩套陀螺和加速度計MEMS傳感器,互為補充矯正,內置三軸磁場(chǎng)傳感器并可以外接一個(gè)三軸磁場(chǎng)傳感器,同時(shí)可外接一主一備兩個(gè)GPS傳感器,在故障時(shí)自動(dòng)切換。
基于其高速運算的核心和浮點(diǎn)算法,PIXHawk使用最先進(jìn)的定高算法,可以?xún)H憑氣壓高度計便將飛行器高度固定在1米以?xún)?。它支持目前幾乎所有的多旋翼?lèi)型,甚至包括三旋翼和H4這樣結構不規則的產(chǎn)品。它使飛行器擁有多種飛行模式,支持全自主航線(xiàn)、關(guān)鍵點(diǎn)圍繞、鼠標引導、“FollowMe”、對尾飛行等高級的飛行模式,并能夠完成自主調參。
PIXHawk飛控的開(kāi)放性非常好,幾百項參數全部開(kāi)放給玩家調整,靠基礎模式簡(jiǎn)單調試后亦可飛行。PIXHawk集成多種電子地圖,愛(ài)好者們可以根據當地情況進(jìn)行選擇。
4)OpenPilot與Taulabs
OpenPilot是由OpenPilot社區于2009年推出的自動(dòng)駕駛儀項目,旨在為社會(huì )提供低成本但功能強大的穩定型自動(dòng)駕駛儀。這個(gè)項目由兩部分組成,包括OpenPilot自駕儀與其相配套的軟件。其中,自駕儀的固件部分由C語(yǔ)言編寫(xiě),而地面站則用C++編寫(xiě),并可在Windows、Macintosh OSX和Linux三大主流操作系統上運行。
OpenPilot的最大特點(diǎn)是硬件架構非常簡(jiǎn)單,從它目前擁有的眾多硬件設計就可以看出其與眾不同之處。官方發(fā)布的飛控硬件包括CC、CC3D、ATOM、Revolution、Revolution nano等,衍生硬件包括Sparky、Quanton、REVOMINI等,甚至包含直接使用STM32開(kāi)發(fā)板擴展而成的FlyingF3、FlyingF4、DescoveryF4等,其中CC3D已經(jīng)是300mm以下軸距穿越機和超小室內航模的首選飛控,而DiscoveryF4被大量用于愛(ài)好者研究飛控,Quanton更是成為了Taulabs的首選硬件。
到這里,我們不得不說(shuō)說(shuō)Openpilot旗下最流行的硬件CC3D。
此飛控板只采用一顆72MHz的32位STM32單片機和一顆MPU6000就能夠完成四旋翼、固定翼、直升機的姿態(tài)控制飛行(注意,該硬件可進(jìn)行的是三自由度姿態(tài)控制,而不是增穩),電路板大小只有35mm×35mm。
與所有開(kāi)源飛控不同,它不需要GPS融合或者磁場(chǎng)傳感器參與修正,就能保持長(cháng)時(shí)間的姿態(tài)控制。以上所有功能全部使用一個(gè)固件,通過(guò)設置便可更改飛機種類(lèi)、飛行模式、支持云臺增穩等功能。
其編譯完的固件所需容量只有大約100KB,代碼效率令人驚嘆,是所有飛控程序員學(xué)習的楷模。其地面站軟件集成了完整的電子地圖,可以通過(guò)電臺實(shí)時(shí)監測飛機狀態(tài)。
TauLabs飛控是OpenPilot飛控的衍生產(chǎn)品。當前TauLabs最流行的硬件叫做Quanton,由原OpenPilot飛控小組成員獨立完成。
它繼承了OpenPilot簡(jiǎn)單高效的特點(diǎn),并擴展了氣壓高度計和三軸磁場(chǎng)傳感器,將主控單片機升級為帶有硬件浮點(diǎn)運算的Cortex-M4核心。該飛控是最早支持自動(dòng)調參的開(kāi)源飛控產(chǎn)品,帶有模型辨識算法,能夠在飛行中進(jìn)行自整定姿態(tài)PID控制參數。TauLabs能夠完成許多高級飛行模式,連接外置GPS后可使多旋翼具備定高、定點(diǎn)、回家等功能。飛控集成了電子地圖,且界面非常友好,使用向導模式進(jìn)行初始化,初學(xué)者可以簡(jiǎn)單上手。
5)Multi Wii Copter (MWC)
Multi Wii Copter(MWC)飛控是一款典型的Arduino衍生產(chǎn)品,是專(zhuān)為多旋翼開(kāi)發(fā)的低成本飛控,它完整地保留了Arduino IDE開(kāi)發(fā)和Arduino設備升級和使用的方法。由于成本低、架構簡(jiǎn)單、固件比較成熟,因此該飛控在國內外擁有大量愛(ài)好者。除了支持常見(jiàn)的四、六、八旋翼以外,該飛控的最大特點(diǎn)是支持很多奇特的飛行器類(lèi)型,比如三旋翼、阿凡達飛行器(BIcopter avatar style)、Y4型多旋翼(其中兩軸為上下對置)等,使得該飛控的開(kāi)發(fā)趣味性較強,容易博得大家的喜愛(ài)。
6)KKMulti Copter
KK飛控是源于韓國的一款開(kāi)源飛控項目,也是第一種廣為大眾接受的多旋翼飛控,在開(kāi)源飛控發(fā)展的初期,該飛控的橫空出世對整個(gè)四旋翼行業(yè)是一種震撼。
該飛控只使用三個(gè)成本低廉的單軸陀螺,配合一臺最簡(jiǎn)單的四通道遙控設備,就能控制常見(jiàn)的三、四、六旋翼飛行器,并且支持“十字”型,X型、H型和上下對置等多種布局。該飛控使用三個(gè)可調電阻調整感度作為調參方法,保留了早期航模陀螺儀的特征。作為多旋翼飛控起始的重要見(jiàn)證,這款“古董”級經(jīng)典飛控,依然擁有眾多玩家。
7)Paparazzi(PPZ)
Paparazzi(PPZ)是一個(gè)軟硬件全開(kāi)源的項目,它始于2003年,開(kāi)發(fā)目標是建立一個(gè)配置靈活且性能強大的開(kāi)源飛控項目。PPZ的一大特點(diǎn)是,該開(kāi)源飛控方案中除了常見(jiàn)的飛控硬件、飛控軟件和地面站軟件之外,還包含地面站硬件,包括各種調制解調器、天線(xiàn)等設備。從功能上講,PPZ已經(jīng)接近一個(gè)小型的無(wú)人機系統了。
該開(kāi)源項目的另一個(gè)特點(diǎn)是采用ubuntu操作系統,它將全部地面站軟件和開(kāi)發(fā)環(huán)境集成于該系統下,官方稱(chēng)之為L(cháng)ive CD。一張CD加飛控硬件就可完成從開(kāi)發(fā)到使用的全部工作。
PPZ目前最流行的硬件版本是Paparazzi(PPZ)Lisa/M v2.0。該硬件擁有大量的擴展接口,并且使用可擴展的單獨的IMU傳感器板。這也是早期開(kāi)源飛控比較流行的做法,這樣可以像DIY臺式計算機那樣,隨著(zhù)傳感器升級而不斷升級IMU硬件。
8)Autoquad飛控和ESC32電調
Autoquad飛控來(lái)自德國,作為早期開(kāi)源飛控,Autoquad功能非常強大,但是受限于當時(shí)的傳感器產(chǎn)品,它不得不采用大量模擬MEMS傳感器。
所謂模擬傳感器指的是傳感器芯片內部不集成數模轉換器(ADC)和運算核心,而直接將微機械傳感器的變化通過(guò)放大和硬件濾波后以電壓的形式輸出,需要主控單片機進(jìn)行AD采集。
因為傳感器在不同溫度環(huán)境下,輸出值會(huì )受到影響,模擬MEMS傳感器給參數校準帶來(lái)了不少麻煩。很多玩家在第一次使用該飛控時(shí),不得不借助電冰箱來(lái)進(jìn)行傳感器校準,而一些廠(chǎng)家為了保證批量產(chǎn)品的穩定性,只能在飛行器上對電路板進(jìn)行加溫,使其保持溫度恒定。
但是,這種校準方法卻為一些骨灰級玩家帶來(lái)了額外的樂(lè )趣,很多人反而樂(lè )此不疲。對于大多數普通愛(ài)好者而言,這實(shí)在是一項難度不小的工作。隨著(zhù)帶有出廠(chǎng)校準的數字傳感器的普及,Autoquad作為歷史的積淀,也完成了它的使命。
但是,該開(kāi)源項目的另一個(gè)分支。ESC32電調卻逐漸在玩家中被接受了。該電調是第一個(gè)采用數字接口進(jìn)行控制的電調產(chǎn)品,玩家可以通過(guò)串口、I2C接口和CAN接口來(lái)控制電機的轉速,這比傳統的PWM接口信息速度要快很多倍。常見(jiàn)的PWM電調波形更新速度為每秒鐘四百次,而數字接口的更新速度可達到百萬(wàn)次。尤其是對于動(dòng)力變化非常敏感的多旋翼飛行器來(lái)說(shuō),這種高速通信是非常必要的。該電調還支持轉速閉環(huán),并且能夠針對電機進(jìn)行詳細調參,這些功能都是傳統航模電調不能比擬的。
當然,Autoquad也在進(jìn)步,但是面對PIXHawk、APM等已經(jīng)成熟多年的先進(jìn)飛控產(chǎn)品,它已經(jīng)從前輩淪落為后起之秀。最近,它發(fā)布了全新的飛控產(chǎn)品Autoquad M4,對主控單片機和傳感器進(jìn)行了全面升級,采用常見(jiàn)的STM32F4單片機和數字傳感器。
開(kāi)源飛控還在不斷發(fā)展,所以四旋翼飛行器這類(lèi)的產(chǎn)品成本在不斷降低,性能卻在不斷地提升。隨著(zhù)無(wú)人機技術(shù)的發(fā)展,未來(lái)更多人將感受到無(wú)人機飛行的樂(lè )趣。
最后,記得關(guān)注微信公眾號:鎂客網(wǎng)(im2maker),更多干貨在等你!
硬科技產(chǎn)業(yè)媒體
關(guān)注技術(shù)驅動(dòng)創(chuàng )新
