• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    開(kāi)源飛控知多少

    2015-04-24 03:56:26李大偉楊炯
    機(jī)器人產(chǎn)業(yè) 2015年3期
    關(guān)鍵詞:飛控旋翼開(kāi)源

    □文/李大偉、楊炯

    隨著科技的進(jìn)步,無(wú)人機(jī)走進(jìn)普通大眾生活只是時(shí)間問(wèn)題。然而,一直困擾著無(wú)人機(jī)發(fā)展的關(guān)鍵設(shè)備就是自動(dòng)駕駛儀。隨著開(kāi)源飛控的發(fā)展,這個(gè)問(wèn)題得到了突破性的解決,為無(wú)人機(jī)產(chǎn)品的進(jìn)一步民用化奠定了基礎(chǔ)。

    在紛繁復(fù)雜的無(wú)人機(jī)產(chǎn)品中,四旋翼飛行器以其結(jié)構(gòu)簡(jiǎn)單、使用方便、成本低廉等優(yōu)勢(shì),最先進(jìn)入了大眾的視線。但是,這種飛行器對(duì)飛行控制能力的要求是最高的,因此它刺激了大批基于MEMS傳感器的開(kāi)源飛控的出現(xiàn)。

    如何定義開(kāi)源

    開(kāi)源(Open Source)的概念最早被應(yīng)用于開(kāi)源軟件,開(kāi)放源代碼促進(jìn)會(huì)(Open Source Initiative)用其描述那些源碼可以被公眾使用的軟件,并且此軟件的使用、修改和發(fā)行也不受許可證的限制。每一個(gè)開(kāi)源項(xiàng)目均擁有自己的論壇,由團(tuán)隊(duì)或個(gè)人進(jìn)行管理,論壇定期發(fā)布開(kāi)源代碼,而對(duì)此感興趣的程序員都可以下載這些代碼,并對(duì)其進(jìn)行修改,然后上傳自己的成果,管理者從眾多的修改中選擇合適的代碼改進(jìn)程序并再次發(fā)布新版本。如此循環(huán),形成“共同開(kāi)發(fā)、共同分享”的良性循環(huán)。

    開(kāi)源軟件的發(fā)展逐漸與硬件相結(jié)合,產(chǎn)生了開(kāi)源硬件。開(kāi)源硬件的原則聲明和定義是開(kāi)源硬件協(xié)會(huì)(Open Source HardWare Association,OSHWA)的委員會(huì)及其工作組,以及其他更多的人員共同完成的。硬件與軟件不同之處是實(shí)物資源應(yīng)該始終致力于創(chuàng)造實(shí)物商品。因此,生產(chǎn)在開(kāi)源硬件(OSHW)許可下的品目(產(chǎn)品)的人和公司有義務(wù)明確該產(chǎn)品沒(méi)有在原設(shè)計(jì)者核準(zhǔn)前被生產(chǎn),銷(xiāo)售和授權(quán),并且沒(méi)有使用任何原設(shè)計(jì)者擁有的商標(biāo)。硬件設(shè)計(jì)的源代碼的特定格式可以被其他人獲取,以方便對(duì)其進(jìn)行修改。在實(shí)現(xiàn)技術(shù)自由的同時(shí),開(kāi)源硬件提供知識(shí)共享并鼓勵(lì)硬件設(shè)計(jì)開(kāi)放交流貿(mào)易。

    開(kāi)源硬件(OSHW)定義1.0是在軟件開(kāi)源定義基礎(chǔ)上定義的。該定義是由Bruce Perens和Debian的開(kāi)發(fā)者作為Debian自由軟件方針而創(chuàng)建的。開(kāi)源硬件必須符合以下條件:

    第一,文檔同時(shí)發(fā)布。硬件必須與包含設(shè)計(jì)文件的文檔同時(shí)發(fā)布,并且必須允許對(duì)于設(shè)計(jì)文件的修改和分發(fā)。文檔必須包含設(shè)計(jì)文件,不允許故意在設(shè)計(jì)文件中進(jìn)行模糊描述。不允許使用中間格式,或生產(chǎn)用文件替代設(shè)計(jì)文件。許可可要求開(kāi)放格式的全文設(shè)計(jì)文件。

    第二,許可范圍。硬件文檔中,如果硬件設(shè)計(jì)不是全部在許可條件下發(fā)布,必須明確說(shuō)明設(shè)計(jì)的哪些部分在范圍之內(nèi)。

    第三,必要的軟件。如果被許可的設(shè)計(jì)需要軟件、固件或者其他硬件設(shè)計(jì)完成其重要功能所需要的條件時(shí),許可可要求以下任意一條件得到滿(mǎn)足:

    A.設(shè)計(jì)與其之間的接口需要補(bǔ)充充足的文檔。這樣可通過(guò)文檔簡(jiǎn)單地編寫(xiě)開(kāi)源的、完成其重要功能所需的軟件。

    B.必要的軟件需在OSI推薦的開(kāi)源許可下進(jìn)行發(fā)布。

    第四,衍生品。許可應(yīng)允許修改版本和衍生品,并且允許它們?cè)谂c原始品同樣的許可條款下進(jìn)行分發(fā)。許可應(yīng)允許制造、銷(xiāo)售、分發(fā)、使用利用設(shè)計(jì)文件生產(chǎn)的產(chǎn)品,并允許設(shè)計(jì)文件本身和其衍生品。

    第五,自由再分發(fā)。許可應(yīng)不限制任何團(tuán)體銷(xiāo)售或者發(fā)放工程文檔。許可不得對(duì)此種銷(xiāo)售收取使用費(fèi)或者其他費(fèi)用。許可不得對(duì)衍生品的銷(xiāo)售收取使用費(fèi)或者其他費(fèi)用。

    第六,歸屬權(quán)。許可可要求在分發(fā)設(shè)計(jì)文件,生產(chǎn)產(chǎn)品或其衍生品時(shí),衍生文檔和設(shè)備相關(guān)的版權(quán)聲明中提供原許可者歸屬權(quán)。許可可要求正常使用設(shè)備的最終用戶(hù)能夠獲得該歸屬權(quán)信息,但不可以要求特定的顯示格式。許可可以要求衍生品包含一個(gè)與原始設(shè)計(jì)不同的名字或者版本號(hào)。

    第七,禁止對(duì)個(gè)人和組織的歧視。許可禁止對(duì)個(gè)人和組織進(jìn)行差別待遇。

    第八,禁止對(duì)應(yīng)用領(lǐng)域的歧視。許可禁止限制任何人在特定應(yīng)用領(lǐng)域使用設(shè)計(jì)(包括成品)。比如,許可禁止限制在商業(yè)或者核研究中使用該硬件。

    第九,許可的分發(fā)。許可賦予的權(quán)利必須應(yīng)用于所有設(shè)計(jì)及衍生品再分發(fā)的對(duì)象,并且該過(guò)程無(wú)需這些團(tuán)體執(zhí)行額外的許可。

    第十,許可不可以限制特定產(chǎn)品。許可賦予的權(quán)利不得取決于在特定產(chǎn)品中被許可的設(shè)計(jì)。如果設(shè)計(jì)的一部分在許可條件下被使用或者分發(fā),所有再分發(fā)的對(duì)象應(yīng)該獲得原設(shè)計(jì)所賦予的相同的權(quán)利。

    第十一,許可不可以限制其他硬件或者軟件。許可禁止對(duì)于與被許可的設(shè)計(jì)相組合的其他部件添加限制條件,但是設(shè)計(jì)的衍生品不在該禁止范疇內(nèi)。比如許可不得要求與被許可的設(shè)計(jì)一同銷(xiāo)售的其他硬件是開(kāi)源的,也不可以要求只有開(kāi)源軟件可以在設(shè)備外部使用。

    第十二,許可必須是技術(shù)中立的。許可的任何條款不可以基于任何個(gè)人技術(shù)、特定部分或者部件、材料或者接口、使用風(fēng)格等。

    開(kāi)源飛控又是何物

    了解了開(kāi)源硬件的概念,開(kāi)源飛控的概念也就比較容易理解了。所謂開(kāi)源飛控就是建立在開(kāi)源思想基礎(chǔ)上的自動(dòng)飛行控制器項(xiàng)目(Open Source Auto Pilot),同時(shí)包含開(kāi)源軟件和開(kāi)源硬件,而軟件則包含飛控硬件中的固件和地面站軟件兩部分。愛(ài)好者不但可以參與軟件的研發(fā),也可以參與硬件的研發(fā),不但可以購(gòu)買(mǎi)硬件來(lái)開(kāi)發(fā)軟件,也可以自制硬件,這樣便可讓更多人自由享受該項(xiàng)目的開(kāi)發(fā)成果。

    開(kāi)源項(xiàng)目的使用具有商業(yè)性,所以每個(gè)開(kāi)源飛控項(xiàng)目都會(huì)給出官方的法律條款以界定開(kāi)發(fā)者和使用者權(quán)利,不同的開(kāi)源飛控對(duì)其法律界定都有所不同。

    開(kāi)源飛控的發(fā)展

    開(kāi)源飛控的發(fā)展可分為三代:

    第一代開(kāi)源飛控系統(tǒng)使用Arduino或其他類(lèi)似的開(kāi)源電子平臺(tái)為基礎(chǔ),擴(kuò)展連接各種MEMS傳感器,能夠讓無(wú)人機(jī)平穩(wěn)地飛起來(lái),其主要特點(diǎn)是模塊化和可擴(kuò)展能力。

    第二代開(kāi)源飛控系統(tǒng)大多擁有自己的開(kāi)源硬件、開(kāi)發(fā)環(huán)境和社區(qū),采用全集成的硬件架構(gòu),將全部10DOF傳感器、主控單片機(jī),甚至GPS等設(shè)備全部集成在一塊電路板上,以提高可靠性。它使用全數(shù)字三軸MEMS傳感器組成航姿系統(tǒng)(IMU);能夠控制飛行器完成自主航線飛行,同時(shí)可加裝電臺(tái)與地面站進(jìn)行通信,初步具備完整自動(dòng)駕駛儀的功能。此類(lèi)飛控還能夠支持多種無(wú)人設(shè)備,包含固定翼飛行器、多旋翼飛行器、直升機(jī)和車(chē)輛等,并具備多種飛行模式,包含手動(dòng)飛行、半自主飛行和全自主飛行。第二代飛控的主要特點(diǎn)是高集成性、高可靠性,其功能已經(jīng)接近商業(yè)自動(dòng)駕駛儀標(biāo)準(zhǔn)。

    第三代開(kāi)源飛控系統(tǒng)將會(huì)在軟件和人工智能方面進(jìn)行革新。它加入了集群飛行、圖像識(shí)別、自主避障、自動(dòng)跟蹤飛行等高級(jí)飛行功能,向機(jī)器視覺(jué)、集群化、開(kāi)發(fā)過(guò)程平臺(tái)化的方向發(fā)展。

    你不該錯(cuò)過(guò)的開(kāi)源飛控一覽

    Arduino飛控

    要談開(kāi)源飛控的發(fā)展就必須從著名的開(kāi)源硬件項(xiàng)目Arduino談起。Arduino是最早的開(kāi)源飛控,由Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis 和 Nicholas Zambetti于2005年在意大利交互設(shè)計(jì)學(xué)院合作開(kāi)發(fā)而成。Arduino公司首先為電子開(kāi)發(fā)愛(ài)好者搭建了一個(gè)靈活的開(kāi)源硬件平臺(tái)和開(kāi)發(fā)環(huán)境,用戶(hù)可以從Arduino官方網(wǎng)站取得硬件的設(shè)計(jì)文檔,調(diào)整電路板及元件,以符合自己實(shí)際設(shè)計(jì)的需要。

    Arduino可以通過(guò)與其配套的Arduino IDE軟件查看源代碼并上傳自己編寫(xiě)的代碼,Arduino IDE使用的是基于C語(yǔ)言和C++的Arduino語(yǔ)言,十分容易掌握,并且Arduino IDE可以在Windows、Macintosh OSX和Linux三大主流操作系統(tǒng)上運(yùn)行。

    隨著該平臺(tái)逐漸被愛(ài)好者所接受,各種功能的電子擴(kuò)展模塊層出不窮,其中最為復(fù)雜的便是集成了MEMS傳感器的飛行控制器。為了得到更好的飛控設(shè)計(jì)源代碼,Arduino公司決定開(kāi)放其飛控源代碼,他們開(kāi)啟了開(kāi)源飛控的發(fā)展道路。著名的開(kāi)源飛控WMC和APM都是Arduino飛控的直接衍生產(chǎn)品,至今仍然使用Arduino開(kāi)發(fā)環(huán)境進(jìn)行開(kāi)發(fā)。

    APM飛控

    APM(ArduPilotMega)是在 2007年由DIY無(wú)人機(jī)社區(qū)(DIY Drones)推出的飛控產(chǎn)品,是當(dāng)今最為成熟的開(kāi)源硬件項(xiàng)目。APM基于Arduino的開(kāi)源平臺(tái),對(duì)多處硬件做出了改進(jìn),包括加速度計(jì)、陀螺儀和磁力計(jì)組合慣性測(cè)量單元(IMU)。由于APM良好的可定制性,APM在全球航模愛(ài)好者范圍內(nèi)迅速傳播開(kāi)來(lái)。通過(guò)開(kāi)源軟件Mission Planner,開(kāi)發(fā)者可以配置APM的設(shè)置,接受并顯示傳感器的數(shù)據(jù),使用google map完成自動(dòng)駕駛等功能,但是Mission Planner僅支持windows操作系統(tǒng)。

    目前APM飛控已經(jīng)成為開(kāi)源飛控成熟的標(biāo)桿,可支持多旋翼、固定翼、直升機(jī)和無(wú)人駕駛車(chē)等無(wú)人設(shè)備。針對(duì)多旋翼,APM飛控支持各種四、六、八軸產(chǎn)品,并且連接外置GPS傳感器以后能夠增穩(wěn),并完成自主起降、自主航線飛行、回家、定高、定點(diǎn)等豐富的飛行模式。APM能夠連接外置的超聲波傳感器和光流傳感器,在室內(nèi)實(shí)現(xiàn)定高和定點(diǎn)飛行。

    PX4和PIXHawk

    PX4是一個(gè)軟硬件開(kāi)源項(xiàng)目(遵守BSD協(xié)議),目的在于為學(xué)術(shù)、愛(ài)好和工業(yè)團(tuán)體提供一款低成本、高性能的高端自駕儀。這個(gè)項(xiàng)目源于蘇黎世聯(lián)邦理工大學(xué)的計(jì)算機(jī)視覺(jué)與幾何實(shí)驗(yàn)室、自主系統(tǒng)實(shí)驗(yàn)室和自動(dòng)控制實(shí)驗(yàn)室的PIXHawk項(xiàng)目。PX4FMU自駕儀模塊運(yùn)行高效的實(shí)時(shí)操作系統(tǒng)(RTOS),Nuttx提供可移植操作系統(tǒng)接口(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飛控的升級(jí)版本,擁有PX4和APM兩套固件和相應(yīng)的地面站軟件。該飛控是目前全世界飛控產(chǎn)品中硬件規(guī)格最高的產(chǎn)品,也是當(dāng)前愛(ài)好者手中最炙手可熱的產(chǎn)品。PIXHawk擁有168MHz的運(yùn)算頻率,并突破性地采用了整合硬件浮點(diǎn)運(yùn)算核心的Cortex-M4的單片機(jī)作為主控芯片,內(nèi)置兩套陀螺和加速度計(jì)MEMS傳感器,互為補(bǔ)充矯正,內(nèi)置三軸磁場(chǎng)傳感器并可以外接一個(gè)三軸磁場(chǎng)傳感器,同時(shí)可外接一主一備兩個(gè)GPS傳感器,在故障時(shí)自動(dòng)切換。

    基于其高速運(yùn)算的核心和浮點(diǎn)算法,PIXHawk使用最先進(jìn)的定高算法,可以?xún)H憑氣壓高度計(jì)便將飛行器高度固定在1米以?xún)?nèi)。它支持目前幾乎所有的多旋翼類(lèi)型,甚至包括三旋翼和H4這樣結(jié)構(gòu)不規(guī)則的產(chǎn)品。它使飛行器擁有多種飛行模式,支持全自主航線、關(guān)鍵點(diǎn)圍繞、鼠標(biāo)引導(dǎo)、“FollowMe”、對(duì)尾飛行等高級(jí)的飛行模式,并能夠完成自主調(diào)參。

    PIXHawk飛控的開(kāi)放性非常好,幾百項(xiàng)參數(shù)全部開(kāi)放給玩家調(diào)整,靠基礎(chǔ)模式簡(jiǎn)單調(diào)試后亦可飛行。PIXHawk集成多種電子地圖,愛(ài)好者們可以根據(jù)當(dāng)?shù)厍闆r進(jìn)行選擇。

    OpenPilot與Taulabs

    OpenPilot是由OpenPilot社區(qū)于2009年推出的自動(dòng)駕駛儀項(xiàng)目,旨在為社會(huì)提供低成本但功能強(qiáng)大的穩(wěn)定型自動(dòng)駕駛儀。這個(gè)項(xiàng)目由兩部分組成,包括OpenPilot自駕儀與其相配套的軟件。其中,自駕儀的固件部分由C語(yǔ)言編寫(xiě),而地面站則用C++編寫(xiě),并可在Windows、Macintosh OSX和Linux三大主流操作系統(tǒng)上運(yùn)行。

    OpenPilot的最大特點(diǎn)是硬件架構(gòu)非常簡(jiǎn)單,從它目前擁有的眾多硬件設(shè)計(jì)就可以看出其與眾不同之處。官方發(fā)布的飛控硬件包括CC、CC3D、ATOM、Revolution、Revolution nano等,衍生硬件包括Sparky、Quanton、REVOMINI等,甚至包含直接使用STM32開(kāi)發(fā)板擴(kuò)展而成的FlyingF3、FlyingF4、DescoveryF4等,其中CC3D已經(jīng)是300mm以下軸距穿越機(jī)和超小室內(nèi)航模的首選飛控,而DiscoveryF4被大量用于愛(ài)好者研究飛控,Quanton更是成為了Taulabs的首選硬件。

    下面我們來(lái)說(shuō)說(shuō)Openpilot旗下最流行的硬件CC3D。此飛控板只采用一顆72MHz的32位STM32單片機(jī)和一顆MPU6000就能夠完成四旋翼、固定翼、直升機(jī)的姿態(tài)控制飛行(注意,該硬件可進(jìn)行的是三自由度姿態(tài)控制,而不是增穩(wěn)),電路板大小只有35mm×35mm。與所有開(kāi)源飛控不同,它不需要GPS融合或者磁場(chǎng)傳感器參與修正,就能保持長(zhǎng)時(shí)間的姿態(tài)控制。以上所有功能全部使用一個(gè)固件,通過(guò)設(shè)置便可更改飛機(jī)種類(lèi)、飛行模式、支持云臺(tái)增穩(wěn)等功能。其編譯完的固件所需容量只有大約100KB,代碼效率令人驚嘆,是所有飛控程序員學(xué)習(xí)的楷模。其地面站軟件集成了完整的電子地圖,可以通過(guò)電臺(tái)實(shí)時(shí)監(jiān)測(cè)飛機(jī)狀態(tài)。

    TauLabs飛控是OpenPilot飛控的衍生產(chǎn)品。當(dāng)前TauLabs最流行的硬件叫做Quanton,由原OpenPilot飛控小組成員獨(dú)立完成。它繼承了OpenPilot簡(jiǎn)單高效的特點(diǎn),并擴(kuò)展了氣壓高度計(jì)和三軸磁場(chǎng)傳感器,將主控單片機(jī)升級(jí)為帶有硬件浮點(diǎn)運(yùn)算的Cortex-M4核心。該飛控是最早支持自動(dòng)調(diào)參的開(kāi)源飛控產(chǎn)品,帶有模型辨識(shí)算法,能夠在飛行中進(jìn)行自整定姿態(tài)PID控制參數(shù)。TauLabs能夠完成許多高級(jí)飛行模式,連接外置GPS后可使多旋翼具備定高、定點(diǎn)、回家等功能。飛控集成了電子地圖,且界面非常友好,使用向?qū)J竭M(jìn)行初始化,初學(xué)者可以簡(jiǎn)單上手。

    MultiWiiCopter(MWC)

    MultiWiiCopter(MWC)飛控是一款典型的Arduino衍生產(chǎn)品,是專(zhuān)為多旋翼開(kāi)發(fā)的低成本飛控,它完整地保留了Arduino IDE開(kāi)發(fā)和Arduino設(shè)備升級(jí)和使用的方法。由于成本低、架構(gòu)簡(jiǎn)單、固件比較成熟,因此該飛控在國(guó)內(nèi)外擁有大量愛(ài)好者。除了支持常見(jiàn)的四、六、八旋翼以外,該飛控的最大特點(diǎn)是支持很多奇特的飛行器類(lèi)型,比如三旋翼、阿凡達(dá)飛行器(BIcopter avatar style)、Y4型多旋翼(其中兩軸為上下對(duì)置)等,使得該飛控的開(kāi)發(fā)趣味性較強(qiáng),容易博得大家的喜愛(ài)。

    KKMultiCopter

    KK飛控是源于韓國(guó)的一款開(kāi)源飛控項(xiàng)目,也是第一種廣為大眾接受的多旋翼飛控,在開(kāi)源飛控發(fā)展的初期,該飛控的橫空出世對(duì)整個(gè)四旋翼行業(yè)是一種震撼。該飛控只使用三個(gè)成本低廉的單軸陀螺,配合一臺(tái)最簡(jiǎn)單的四通道遙控設(shè)備,就能控制常見(jiàn)的三、四、六旋翼飛行器,并且支持“十字”型,X型、H型和上下對(duì)置等多種布局。該飛控使用三個(gè)可調(diào)電阻調(diào)整感度作為調(diào)參方法,保留了早期航模陀螺儀的特征。作為多旋翼飛控起始的重要見(jiàn)證,這款“古董”級(jí)經(jīng)典飛控,依然擁有眾多玩家。

    Paparazzi(PPZ)

    Paparazzi(PPZ)是一個(gè)軟硬件全開(kāi)源的項(xiàng)目,它始于2003年,開(kāi)發(fā)目標(biāo)是建立一個(gè)配置靈活且性能強(qiáng)大的開(kāi)源飛控項(xiàng)目。PPZ的一大特點(diǎn)是,該開(kāi)源飛控方案中除了常見(jiàn)的飛控硬件、飛控軟件和地面站軟件之外,還包含地面站硬件,包括各種調(diào)制解調(diào)器、天線等設(shè)備。從功能上講,PPZ已經(jīng)接近一個(gè)小型的無(wú)人機(jī)系統(tǒng)了。

    該開(kāi)源項(xiàng)目的另一個(gè)特點(diǎn)是采用ubuntu操作系統(tǒng),它將全部地面站軟件和開(kāi)發(fā)環(huán)境集成于該系統(tǒng)下,官方稱(chēng)之為L(zhǎng)ive CD。一張CD加飛控硬件就可完成從開(kāi)發(fā)到使用的全部工作。

    PPZ目前最流行的硬件版本是Paparazzi(PPZ)Lisa/M v2.0。該硬件擁有大量的擴(kuò)展接口,并且使用可擴(kuò)展的單獨(dú)的IMU傳感器板。這也是早期開(kāi)源飛控比較流行的做法,這樣可以像DIY臺(tái)式計(jì)算機(jī)那樣,隨著傳感器升級(jí)而不斷升級(jí)IMU硬件。

    Autoquad飛控和ESC32電調(diào)

    Autoquad飛控來(lái)自德國(guó),作為早期開(kāi)源飛控,Autoquad功能非常強(qiáng)大,但是受限于當(dāng)時(shí)的傳感器產(chǎn)品,它不得不采用大量模擬MEMS傳感器。所謂模擬傳感器指的是傳感器芯片內(nèi)部不集成數(shù)模轉(zhuǎn)換器(ADC)和運(yùn)算核心,而直接將微機(jī)械傳感器的變化通過(guò)放大和硬件濾波后以電壓的形式輸出,需要主控單片機(jī)進(jìn)行AD采集。因?yàn)閭鞲衅髟诓煌瑴囟拳h(huán)境下,輸出值會(huì)受到影響,模擬MEMS傳感器給參數(shù)校準(zhǔn)帶來(lái)了不少麻煩。很多玩家在第一次使用該飛控時(shí),不得不借助電冰箱來(lái)進(jìn)行傳感器校準(zhǔn),而一些廠家為了保證批量產(chǎn)品的穩(wěn)定性,只能在飛行器上對(duì)電路板進(jìn)行加溫,使其保持溫度恒定。

    但是,這種校準(zhǔn)方法卻為一些骨灰級(jí)玩家?guī)?lái)了額外的樂(lè)趣,很多人反而樂(lè)此不疲。對(duì)于大多數(shù)普通愛(ài)好者而言,這實(shí)在是一項(xiàng)難度不小的工作。隨著帶有出廠校準(zhǔn)的數(shù)字傳感器的普及,Autoquad作為歷史的積淀,也完成了它的使命。

    但是,該開(kāi)源項(xiàng)目的另一個(gè)分支ESC32電調(diào)卻逐漸在玩家中被接受了。該電調(diào)是第一個(gè)采用數(shù)字接口進(jìn)行控制的電調(diào)產(chǎn)品,玩家可以通過(guò)串口、I2C接口和CAN接口來(lái)控制電機(jī)的轉(zhuǎn)速,這比傳統(tǒng)的PWM接口信息速度要快很多倍。常見(jiàn)的PWM電調(diào)波形更新速度為每秒鐘四百次,而數(shù)字接口的更新速度可達(dá)到百萬(wàn)次。尤其是對(duì)于動(dòng)力變化非常敏感的多旋翼飛行器來(lái)說(shuō),這種高速通信是非常必要的。該電調(diào)還支持轉(zhuǎn)速閉環(huán),并且能夠針對(duì)電機(jī)進(jìn)行詳細(xì)調(diào)參,這些功能都是傳統(tǒng)航模電調(diào)不能比擬的。

    當(dāng)然,Autoquad也在進(jìn)步,它發(fā)布了全新的飛控產(chǎn)品Autoquad M4,對(duì)主控單片機(jī)和傳感器進(jìn)行了全面升級(jí),采用常見(jiàn)的STM32F4單片機(jī)和數(shù)字傳感器。但是面對(duì)PIXHawk、APM等已經(jīng)成熟多年的先進(jìn)飛控產(chǎn)品,它已經(jīng)從前輩淪落為后起之秀。

    不可不知的MEMS傳感器

    為什么用MEMS

    講完開(kāi)源飛控,我們必須對(duì)飛控上的關(guān)鍵器件——MEMS傳感器進(jìn)行進(jìn)一步的研究。如果把自動(dòng)駕駛儀比作飛行器的“大腦”,那么MEMS傳感器就是“飛行器”的眼耳鼻。正是這些傳感器將飛行器的動(dòng)態(tài)信息收集并發(fā)給主控單片機(jī),飛行器才能夠通過(guò)計(jì)算得到飛機(jī)的姿態(tài)和位置。

    為什么開(kāi)源飛控要使用MEMS傳感器?要開(kāi)發(fā)飛控,如何得到飛行器的航姿是第一任務(wù),傳統(tǒng)的載人飛行器一般使用機(jī)械陀螺和光纖陀螺來(lái)完成這項(xiàng)任務(wù),但是受限于體積、重量和成本,在多旋翼等小型飛行器上無(wú)法采用這種設(shè)備。因此,以MEMS傳感器為核心的DOF(Degree Of Freedom,自由度)系統(tǒng)成為唯一的選擇。由于近十年來(lái),家用游戲機(jī)和手機(jī)的迅速發(fā)展,使得MEMS傳感器在這十幾年中得到了飛速的普及,讓低成本的運(yùn)動(dòng)感知成為了可能,這正是目前的微型飛控系統(tǒng)形成的基本條件。

    開(kāi)源飛控所使用的MEMS傳感器與手機(jī)和游戲機(jī)來(lái)自相同的廠家,比如ST microelectronics,INVENSENSE 等。MEMS傳感器從早期的多芯片組合使用,發(fā)展到現(xiàn)在的單芯片集成多軸傳感器,從模擬傳感器發(fā)展為數(shù)字傳感器,已經(jīng)經(jīng)歷了多次較大變革。

    MPU6000

    MPU6000是開(kāi)源飛控傳感器的王者,雖然新的傳感器層出不窮,但是它的地位一直無(wú)法撼動(dòng)。PIXHawk飛控的早期版本曾經(jīng)拋棄了MPU6000,但是后來(lái)又不得不重新使用,因?yàn)檫@顆MEMS芯片已經(jīng)被所有進(jìn)行開(kāi)源飛控項(xiàng)目開(kāi)發(fā)的愛(ài)好者們所接受。

    MPU6000在一塊4mm×4mm的芯片內(nèi)部集成了三軸角速率陀螺和三軸加速度計(jì),并且集成AD采集、解算核心,以及溫度傳感器。如此高的集成度在當(dāng)時(shí)還是其他廠商望塵莫及的。而對(duì)于旋轉(zhuǎn)矩陣、四元數(shù)和歐拉角格式的融合演算數(shù)據(jù)的輸出更是降低了主控單片機(jī)解算姿態(tài)的計(jì)算量。SPI和I2C雙數(shù)字接口、3.3V與大部分單片機(jī)相同的供電電壓(2.4V至3.4V)、4mA的最大功耗、可定制的傳感器量程、-40℃至+85℃的工作溫度……這些特性極大地方便了主控計(jì)算機(jī)的工作。難怪INVENSENSE自信地稱(chēng)這款產(chǎn)品為MPU(Motion Processor Unit,運(yùn)動(dòng)處理單元),并且在芯片型號(hào)后面不加任何后綴。

    所有想深入進(jìn)行開(kāi)源飛控開(kāi)發(fā)的愛(ài)好者們都應(yīng)該從這款芯片開(kāi)始學(xué)習(xí)傳感器的應(yīng)用和航姿解算的基本算法,這是最簡(jiǎn)單有效的途徑。OpenPilot的CC3D飛控就給大家提供了很好的實(shí)例,它只利用了這一顆傳感器,便做出了經(jīng)典的飛控產(chǎn)品。

    MS5611

    MS5611是傳感器中的另一個(gè)傳奇。芯片大小只有3mm×5mm,傳感器精度高于很多的專(zhuān)業(yè)航空設(shè)備,且價(jià)格非常便宜。該傳感器由瑞士的MEAS公司推出,在此之前,大多飛控采用的是摩托羅拉的氣壓傳感器,體積要大幾倍,且不是貼片器件,需要“立”在電路板上,MS5611一經(jīng)推出就立即成為所有開(kāi)源飛控氣壓測(cè)量的標(biāo)配。

    MS5611傳感器響應(yīng)時(shí)間只有1ms,工作功耗為1μA,可以測(cè)量10-1200mbar的氣壓數(shù)值。MS5611具有SPI和I2C總線接口、與單片機(jī)相同的供電電壓、-40℃至+85℃的工作溫度、全貼片封裝、全金屬屏蔽外殼、集成24位高精度AD采集器等特性,這些特性使其非常適合在高度集成的數(shù)字電路中工作,所以成為了開(kāi)源飛控測(cè)試氣壓高度的首選。

    HMC5883

    接觸過(guò)磁阻傳感器(也就是磁羅盤(pán)傳感器)的人都知道,使Z軸磁阻傳感器實(shí)現(xiàn)扁平化是多么的不容易?;裟犴f爾也是在研發(fā)了數(shù)十款相關(guān)的產(chǎn)品之后,才最終有能力生產(chǎn)出這款全集成的三軸數(shù)字羅盤(pán)的。我們不得不驚嘆于它的體積—3mm×3mm的面積、厚度不足1mm。更加讓人驚嘆的是其低廉的價(jià)格,所以,除了PIXHawk這樣極度追求硬件先進(jìn)性的飛控以外,其他開(kāi)源飛控如果配有磁羅盤(pán)的話,無(wú)一例外均使用的是HMC5883。當(dāng)然,霍尼韋爾早已推出了升級(jí)型的HMC5983,將角度測(cè)量精度提高到了1°以?xún)?nèi)。對(duì)于愛(ài)好者們來(lái)說(shuō),HMC5883已經(jīng)夠用了。

    磁阻傳感器的設(shè)計(jì)難點(diǎn)在于鐵氧體的消磁,能夠把鐵氧體傳感器和消磁驅(qū)動(dòng)單元、12位ADC、運(yùn)算核心等全部集成在如此小的芯片當(dāng)中是十分不易的。HMC5883其他的特性包括:在±8GS的磁場(chǎng)中實(shí)現(xiàn)2mGS的分辨率、與單片機(jī)相同的供電電壓、-30℃至+85℃的工作環(huán)境溫度等。雖然ST microelectronics已經(jīng)推出了集成三軸磁阻傳感器和三軸加速度計(jì)的LSM303D,并且體積更小、集成度更高,但是HMC5883一直是磁羅盤(pán)的首選芯片。

    L3GD20

    L3GD20的面積僅有4mm×4mm,注定其為移動(dòng)設(shè)備而生。ST是最早一批開(kāi)發(fā)MEMS芯片的廠家,也是最早發(fā)布陀螺產(chǎn)品的公司,但L3GD20還是晚來(lái)了一步。雖然它精度更高,但是風(fēng)頭已被MPU6000搶走。雖然沒(méi)有集成三軸加速度計(jì),但是憑借高精度角速率測(cè)量、大范圍的自定義量程,以及更加低廉的價(jià)格,L3GD20逐漸為業(yè)界承認(rèn),以至于PIXHawk一度想用它取代MPU6000。當(dāng)然,最終PIXHawk并沒(méi)有實(shí)現(xiàn)替代的愿望,他們并存于這款開(kāi)源飛控之上,互為補(bǔ)充,成就了PIXHawk的冗余設(shè)計(jì)。

    L3GD20具備與單片機(jī)相同的供電電壓、-40℃至+85℃的工作環(huán)境溫度、兼容I2C和SPI數(shù)字接口、內(nèi)置可調(diào)低/高通濾波器電路、6mA的工作功耗,以及集成的溫度傳感器,這些同樣可作為高集成電路角速率陀螺儀不錯(cuò)的選擇。

    LSM303D

    如果說(shuō)其他傳感器是為移動(dòng)設(shè)備而生的,那么LSM303D就是為L(zhǎng)3GD20而生的。它與L3GD20一同可以組成完整的9DOF航姿傳感器系統(tǒng)(IMU),并且其供電、測(cè)量精度和數(shù)字接口幾乎一模一樣。這套系統(tǒng)要比MPU6000與HMC5883的組合總成本更低、測(cè)量精度更高,難怪INVENSENSE要馬不停蹄地推出MPU9250系列的單芯片9DOF產(chǎn)品來(lái)與其競(jìng)爭(zhēng)。

    與單片機(jī)相同的供電電壓、-40℃至+85℃的工作環(huán)境溫度、兼容I2C和SPI數(shù)字接口、集成溫度傳感器,這些參數(shù)幾乎可以照抄L3GD20。

    軟件如何控制硬件

    講完了硬件,我們來(lái)談?wù)劤R?jiàn)的算法。開(kāi)源飛控架構(gòu)不同,軟件也大相徑庭。但是只要是飛控都離不開(kāi)捷聯(lián)慣導(dǎo)、卡爾曼濾波和PID控制這三大算法。

    捷聯(lián)式慣導(dǎo)系統(tǒng)

    導(dǎo)航的目的是為了實(shí)時(shí)獲取無(wú)人機(jī)的姿態(tài)、速度和位置參數(shù)。光電碼盤(pán)可用來(lái)測(cè)量無(wú)人機(jī)的轉(zhuǎn)動(dòng)角度,測(cè)速電機(jī)可用來(lái)測(cè)量無(wú)人機(jī)的角速度,測(cè)速計(jì)可用來(lái)測(cè)量無(wú)人機(jī)的速度,但是以上各種測(cè)量手段均不能單獨(dú)同時(shí)測(cè)量無(wú)人機(jī)的線運(yùn)動(dòng)和角運(yùn)動(dòng),而慣性導(dǎo)航就可做到這一點(diǎn)。因?yàn)閼T性導(dǎo)航系統(tǒng)不需要物理參照,所以它被稱(chēng)為DOF系統(tǒng)(Degree Of Freedom,自由度),此外慣性導(dǎo)航還不會(huì)受到設(shè)備外部自然和人為的干擾,特別適合在惡劣環(huán)境下的使用。

    20世紀(jì)90年代以后,隨著微機(jī)電系統(tǒng)(MEMS)技術(shù)的發(fā)展,慣性敏感元件實(shí)現(xiàn)了體積小型化,提高了可靠性,并適合批量生產(chǎn),從此捷聯(lián)式慣導(dǎo)系統(tǒng)進(jìn)入了微機(jī)電領(lǐng)域,并開(kāi)始向民用領(lǐng)域廣泛滲透,出現(xiàn)在機(jī)器人系統(tǒng)和新一代的交通工具中。進(jìn)入21世紀(jì),捷聯(lián)式慣導(dǎo)系統(tǒng)幾乎完全取代了平臺(tái)式慣導(dǎo)系統(tǒng)。

    Kalman濾波算法

    信號(hào)在傳輸與檢測(cè)過(guò)程中不可避免地會(huì)受到來(lái)自外界的干擾與設(shè)備內(nèi)部噪聲的影響,為獲取準(zhǔn)確的信號(hào),就要對(duì)信號(hào)進(jìn)行濾波。所謂濾波就是指從混合在一起的諸多信號(hào)中提取出有用信號(hào)的過(guò)程。舉個(gè)例子,大家熟知的低通濾波器就是利用信號(hào)所處頻帶的不同,設(shè)置具有相應(yīng)頻率特性的濾波器,使得有用的低頻信號(hào)盡量無(wú)衰減地通過(guò),從而去除高頻雜波。

    而Kalman濾波是Kalman于1960年提出的從與被提取信號(hào)有關(guān)的觀測(cè)量中通過(guò)算法估計(jì)所需信號(hào)的一種濾波算法,他創(chuàng)新地將狀態(tài)空間的概念引入隨機(jī)估計(jì)理論中,將信號(hào)過(guò)程看作是具有白噪聲影響的線性系統(tǒng)輸入輸出過(guò)程,在估計(jì)過(guò)程中利用系統(tǒng)的多種方程構(gòu)成濾波算法。此外,Kalman濾波的輸入輸出是由時(shí)間更新和觀測(cè)更新算法聯(lián)系在一起的,根據(jù)系統(tǒng)狀態(tài)方程和觀測(cè)方程估計(jì)出所需處理的信號(hào)。那么為什么Kalman濾波會(huì)應(yīng)用到慣性導(dǎo)航系統(tǒng)中呢?這主要是因?yàn)閼T性導(dǎo)航系統(tǒng)的“純慣性”傳感器不足以達(dá)到所需的導(dǎo)航精度,為了補(bǔ)償導(dǎo)航系統(tǒng)的不足,常常使用其他導(dǎo)航設(shè)備來(lái)提高導(dǎo)航精度,以減小導(dǎo)航誤差。因此開(kāi)發(fā)人員想到了Kalman濾波算法,利用該算法,可以將來(lái)自慣性導(dǎo)航系統(tǒng)與其他導(dǎo)航裝置的數(shù)據(jù)(如慣性導(dǎo)航系統(tǒng)計(jì)算的位置對(duì)照GPS接收機(jī)給出的位置信息)加以混合利用,估計(jì)和校正未知的慣性導(dǎo)航系統(tǒng)誤差。

    飛行控制PID算法

    雖然現(xiàn)代控制理論發(fā)展日臻完善,人們通過(guò)科學(xué)研究獲得了諸多具有優(yōu)異控制效果的算法和理論,但在工程應(yīng)用領(lǐng)域,基于經(jīng)典PID的控制算法仍然是最簡(jiǎn)單、最有效的控制方案。目前主流的幾款開(kāi)源飛控中,無(wú)一例外地都是采用PID控制算法來(lái)實(shí)現(xiàn)無(wú)人機(jī)的姿態(tài)和軌跡控制。

    PID控制器是一種線性控制器,它主要根據(jù)給定值和實(shí)際輸出值構(gòu)成控制偏差,然后利用偏差給出合理的控制量。

    那么PID控制器算法能解決什么問(wèn)題呢?以多旋翼為例,在沒(méi)有控制系統(tǒng)的情況下,直接用信號(hào)驅(qū)動(dòng)電機(jī)帶動(dòng)螺旋槳旋轉(zhuǎn)產(chǎn)生控制力,會(huì)出現(xiàn)動(dòng)態(tài)響應(yīng)太快,或者太慢,或者控制過(guò)沖或者不足的現(xiàn)象,多旋翼根本無(wú)法順利完成起飛和懸停動(dòng)作。為了解決這些問(wèn)題,就需要在控制系統(tǒng)回路中加入PID控制器算法。在姿態(tài)信息和螺旋槳轉(zhuǎn)速之間建立比例、積分和微分的關(guān)系,通過(guò)調(diào)節(jié)各個(gè)環(huán)節(jié)的參數(shù)大小,使多旋翼系統(tǒng)控制達(dá)到動(dòng)態(tài)響應(yīng)迅速、既不過(guò)沖、也不欠缺的現(xiàn)象。

    猜你喜歡
    飛控旋翼開(kāi)源
    改進(jìn)型自抗擾四旋翼無(wú)人機(jī)控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
    大載重長(zhǎng)航時(shí)油動(dòng)多旋翼無(wú)人機(jī)
    五毛錢(qián)能買(mǎi)多少頭牛
    民用飛機(jī)飛控通電自檢測(cè)安全性研究
    基于STM32的四旋翼飛行器的設(shè)計(jì)
    電子制作(2019年9期)2019-05-30 09:41:48
    無(wú)人機(jī)飛控軟件架構(gòu)設(shè)計(jì)初探
    02 飛控技術(shù)與機(jī)場(chǎng)安保引關(guān)注
    飛控系統(tǒng)故障告警實(shí)時(shí)監(jiān)控軟件的設(shè)計(jì)與實(shí)現(xiàn)
    四旋翼無(wú)人機(jī)動(dòng)態(tài)面控制
    大家說(shuō):開(kāi)源、人工智能及創(chuàng)新
    瑞丽市| 宽甸| 长寿区| 民乐县| 琼海市| 庆元县| 冕宁县| 巴林左旗| 宜兰市| 章丘市| 嘉峪关市| 河源市| 富民县| 海城市| 东光县| 吴川市| 囊谦县| 鹿泉市| 虎林市| 织金县| 凌源市| 赣州市| 资阳市| 安国市| 阳春市| 长沙市| 福州市| 皮山县| 三门峡市| 旌德县| 南昌市| 北宁市| 余干县| 松阳县| 鄂托克前旗| 平谷区| 凤山县| 大埔区| 奉贤区| 台北市| 宜兰市|