王安平 項(xiàng)陽(yáng) 沈琴
摘要:該系統(tǒng)基于Esp32控制器,使用4個(gè)820空心杯電機(jī),制作小型四旋翼無(wú)人機(jī),能實(shí)現(xiàn)空中自平衡,紅外自避障,并簡(jiǎn)要介紹了四旋翼無(wú)人機(jī)在6個(gè)自由度上的控制方法及原理。
關(guān)鍵詞:四旋翼無(wú)人機(jī);嵌入式應(yīng)用;ESP32
中圖分類號(hào):TP391? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)27-0086-03
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
無(wú)人機(jī)是利用無(wú)線電遙控設(shè)備和自備的程序控制裝置操縱的不載人飛機(jī)。無(wú)人機(jī)因?yàn)槠渥杂啥雀?,飛行成本低,操控性強(qiáng)等特性適用于一些危險(xiǎn)的任務(wù)。在軍事上以及民用領(lǐng)域都起到相當(dāng)?shù)年P(guān)鍵作用。隨著信息網(wǎng)絡(luò)的發(fā)展和科技的進(jìn)步,無(wú)人機(jī)的應(yīng)用鄰域還在不斷地?cái)U(kuò)大延伸。
盡管無(wú)人機(jī)在高空飛行的過(guò)程中不會(huì)碰到太多的障礙物。但是飛行高度越到上方,空氣的流動(dòng)就越不穩(wěn)定,溫度和氣壓都會(huì)對(duì)無(wú)人機(jī)產(chǎn)生或大或小的影響。因此,四旋翼無(wú)人機(jī)想要在高空完成穩(wěn)定并且精準(zhǔn)的飛行,必須要借助于成熟的控制算法甚至是一些人工智能的幫助。
物聯(lián)網(wǎng)被稱作計(jì)算機(jī)和互聯(lián)網(wǎng)之后的第三次信息技術(shù)革命浪潮,以物聯(lián)網(wǎng)和人工智能為基礎(chǔ)的工業(yè)理念正成為現(xiàn)實(shí),采用數(shù)字化工廠實(shí)現(xiàn)全方位、全周期生產(chǎn)管控,可以在制造環(huán)節(jié)顯著提高生產(chǎn)效率并降低質(zhì)量缺陷率,獲得顯著的經(jīng)濟(jì)效益[1]。智能制造即借助計(jì)算機(jī)建模仿真和信息通信技術(shù)的巨大潛力,優(yōu)化產(chǎn)品的設(shè)計(jì)和制造過(guò)程[2]。
因此,本文將簡(jiǎn)易闡述一種基于ESP32-CAM的四旋翼無(wú)人機(jī)的實(shí)現(xiàn)方式,能夠利用ESP32的Wi-Fi功能在局域網(wǎng)內(nèi)建立一個(gè)控制頁(yè)面,操縱者利用手機(jī)或者電腦客戶端的瀏覽器對(duì)無(wú)人機(jī)進(jìn)行訪問(wèn)、配置和控制。并且探討在微小的擾動(dòng)下,無(wú)人機(jī)如何恢復(fù)姿態(tài)穩(wěn)定并且保持平衡。
1 無(wú)人機(jī)構(gòu)造
本文介紹的無(wú)人機(jī)采用四旋翼架構(gòu),其優(yōu)點(diǎn)為靈活性高、可操控性強(qiáng)。主控搭載了Ai-Think公司的ESP32-CAM控制器、電機(jī)驅(qū)動(dòng)模塊、陀螺儀模塊、電源模塊,紅外測(cè)距模塊以及四個(gè)呈對(duì)稱分布的820空心杯電機(jī)及空心杯電機(jī)配套的升力槳葉。
1.1ESP32主控制器
ESP32 是由樂(lè)鑫公司推出的一款采用高性能 XTENSA? 32 位 LX6 雙核處理器的微控制器,集成了天線開(kāi)關(guān)、射頻 balun、功率放大器、低噪聲放大器、過(guò)濾器和電源管理模塊,整個(gè)解決方案占用了最少的印刷電路板面積。2.4 GHz Wi-Fi和藍(lán)牙雙模芯片采用 TSMC 低功耗 40nm 技術(shù),具有最佳的功耗性能、射頻性能、穩(wěn)定性、通用性和可靠性,適用于各種應(yīng)用場(chǎng)景和不同功耗需求。
1.2無(wú)人機(jī)電源
重量分配是無(wú)人機(jī)設(shè)計(jì)中一個(gè)非常重要的環(huán)節(jié)。配件重量是否低于無(wú)人機(jī)空心杯所帶來(lái)的升力是無(wú)人機(jī)能否起飛的關(guān)鍵;而配件重量是否相對(duì)于無(wú)人機(jī)呈對(duì)稱分布,重心是否位于無(wú)人機(jī)中心點(diǎn)位則是無(wú)人機(jī)平衡與飛行穩(wěn)定的關(guān)鍵因素。所以,在配件選擇方面,一般更傾向于選擇重量較為輕便的裝置組成無(wú)人機(jī)整體。在此次無(wú)人機(jī)設(shè)計(jì)中,筆者使用鋰聚合物電池,相對(duì)于一般電池來(lái)說(shuō),鋰聚合物電池具有超薄化的特性,可以制造成各種小型電池,是小型無(wú)人機(jī)電池的主流選擇方案。
1.3陀螺儀
無(wú)人機(jī)的平衡是無(wú)人機(jī)起飛最重要,也是最基礎(chǔ)的一個(gè)部分,一架無(wú)人機(jī)能否穩(wěn)定地處于平衡狀態(tài)是評(píng)判無(wú)人機(jī)好壞的重要標(biāo)準(zhǔn)。而無(wú)人機(jī)的平衡則首先要通過(guò)陀螺儀得出無(wú)人機(jī)當(dāng)前的姿態(tài),再依靠控制算法對(duì)空心杯進(jìn)行控制,使無(wú)人機(jī)處于平衡狀態(tài)。本系統(tǒng)采用MPU6050陀螺儀模塊,可通過(guò)I2C通訊協(xié)議向單片機(jī)傳送三軸角速度及角加速度,并自帶旋轉(zhuǎn)矩陣、四元數(shù)、歐拉角格式的融合演算。
1.4電機(jī)驅(qū)動(dòng)
本系統(tǒng)采用4個(gè)820空心杯電機(jī)提供升力。采用L9110S芯片驅(qū)動(dòng),L9110S是一款低成本的電機(jī)驅(qū)動(dòng)電路芯片,其小巧的體積以及廣泛應(yīng)用于無(wú)人機(jī)以及玩具汽車等嵌入式產(chǎn)品。通過(guò)ESP32-CAM引腳上產(chǎn)生的PWM信號(hào),L9110S會(huì)依據(jù)其占空比使用電源的高電壓直接驅(qū)動(dòng)空心杯,電路設(shè)計(jì)如下:
1.5無(wú)人機(jī)外形
無(wú)人機(jī)在飛行移動(dòng)的過(guò)程中,不斷變化的氣流以及運(yùn)動(dòng)時(shí)受到的風(fēng)阻都會(huì)在一定程度上削弱無(wú)人機(jī)的飛行穩(wěn)定性和運(yùn)動(dòng)精準(zhǔn)度。為了使無(wú)人機(jī)所受到的干擾盡可能減小,無(wú)人機(jī)的外形采用了對(duì)稱結(jié)構(gòu)設(shè)計(jì),空心杯的承受架盡可能做到細(xì)小輕便,為槳葉產(chǎn)生的氣流騰出空間以產(chǎn)生更大的升力,幫助無(wú)人機(jī)完成飛行活動(dòng)。
2 無(wú)人機(jī)基本控制
無(wú)人機(jī)的控制分為:起飛降落、上升下降、偏航運(yùn)動(dòng)、滾轉(zhuǎn)運(yùn)動(dòng)、俯仰運(yùn)動(dòng)以及由以上基本動(dòng)作組合而成的復(fù)合運(yùn)動(dòng)。
2.1上升與下降
無(wú)人機(jī)在豎直方向移動(dòng)的過(guò)程中主要受到兩個(gè)作用力,無(wú)人機(jī)整機(jī)自身的重力(G)以及由空心杯電機(jī)帶動(dòng)螺旋槳所帶來(lái)的升力(F)。當(dāng)無(wú)人機(jī)的升力大于無(wú)人機(jī)的重力時(shí),無(wú)人機(jī)將會(huì)呈上升狀態(tài),當(dāng)無(wú)人機(jī)的升力小于無(wú)人機(jī)的重力時(shí),無(wú)人機(jī)將逐漸下降,當(dāng)無(wú)人機(jī)的升力與重力相等,無(wú)人機(jī)將保持一定高度的穩(wěn)定。
當(dāng)控制單元輸出高頻率的PWM到空心杯電機(jī),無(wú)人機(jī)的升力將過(guò)分大于重力,此時(shí)無(wú)人機(jī)將快速上升,其上升的速度滿足以下公式:
其中v得出的是無(wú)人機(jī)快速升高的速度,同理無(wú)人機(jī)在下降的過(guò)程中同樣也滿足以上公式。
2.2偏航運(yùn)動(dòng)
無(wú)人機(jī)的偏航運(yùn)動(dòng),也就是無(wú)人機(jī)繞自身中心點(diǎn)進(jìn)行平面旋轉(zhuǎn)的過(guò)程,其物理原理是無(wú)人機(jī)空心杯旋轉(zhuǎn)所帶來(lái)的扭矩。
如圖5所示,如果增加1號(hào)空心杯與4號(hào)空心杯的旋轉(zhuǎn)角速度,減少2號(hào)空心杯與3號(hào)空心杯的旋轉(zhuǎn)角速度,便可以使無(wú)人機(jī)繞著無(wú)人機(jī)中心逆時(shí)針轉(zhuǎn)動(dòng);反之,如果減少1號(hào)空心杯與4號(hào)空心杯的旋轉(zhuǎn)角速度,增加2號(hào)空心杯與3號(hào)空心杯的旋轉(zhuǎn)角速度,便可以使無(wú)人機(jī)繞著無(wú)人機(jī)中心順時(shí)針轉(zhuǎn)動(dòng)。如果想要無(wú)人機(jī)不圍繞中心做任何轉(zhuǎn)動(dòng),便要求2、3號(hào)電機(jī)的旋轉(zhuǎn)角速度與1、4號(hào)電機(jī)的旋轉(zhuǎn)角速度達(dá)到微妙的動(dòng)態(tài)平衡,此功能利用后文介紹到的自動(dòng)控制算法可以實(shí)現(xiàn)。
2.3偏航運(yùn)動(dòng)
無(wú)人機(jī)的滾轉(zhuǎn)運(yùn)動(dòng)與俯仰運(yùn)動(dòng)在實(shí)質(zhì)上可歸類為一種運(yùn)動(dòng),只是基于不同坐標(biāo)軸的不同表現(xiàn)。此處筆者著重討論俯仰運(yùn)動(dòng)為例。想要無(wú)人機(jī)完成俯仰運(yùn)動(dòng),只需要控制前方的兩個(gè)電機(jī)與后方的兩個(gè)電機(jī)同時(shí)做出不一樣的功率輸出即可,即減弱前兩個(gè)電機(jī)的旋轉(zhuǎn)角速度,讓無(wú)人機(jī)的前端升力略小于重力,使得前端微微向下傾斜;抬升后端兩個(gè)電機(jī)的旋轉(zhuǎn)角速度,讓無(wú)人機(jī)后端的升力大于重力,使得后端微微上翹,即無(wú)人機(jī)整體便完成俯仰運(yùn)動(dòng)中的俯動(dòng)作;同理,增加前兩個(gè)電機(jī)的功率減小后兩個(gè)電機(jī)的功率即可以完成仰頭動(dòng)作。
3 無(wú)人機(jī)的校準(zhǔn)與自平衡
3.1 無(wú)人機(jī)的校準(zhǔn)
無(wú)人機(jī)的校準(zhǔn)是無(wú)人機(jī)達(dá)到平衡的第一步,無(wú)人機(jī)校準(zhǔn)分為陀螺儀的校準(zhǔn)以及無(wú)人機(jī)整機(jī)的校準(zhǔn)。其中陀螺儀校準(zhǔn)是消除溫度氣壓及其微小環(huán)境因素所帶來(lái)的數(shù)據(jù)偏差,以得出最準(zhǔn)確的角速度以及角加速度。無(wú)人機(jī)整機(jī)校準(zhǔn)則是輸入初始零位角給單片機(jī)。無(wú)人機(jī)整機(jī)校準(zhǔn)的具體方式為:將無(wú)人機(jī)放置到水平的地面上,保持其穩(wěn)定并且周圍沒(méi)有微風(fēng)與氣流,輕輕按下校準(zhǔn)按鍵,靜靜等待直至校準(zhǔn)信號(hào)指示燈亮起,在等待過(guò)程中不要觸碰無(wú)人機(jī)整機(jī)或改變其位置與姿態(tài)。在得到零位角以及準(zhǔn)確的角速度以及角加速度后,運(yùn)用自動(dòng)控制算法將零位角與由角速度以及角加速度計(jì)算出的歐拉角所得到的偏差進(jìn)行換算,得到應(yīng)輸出給空心杯電機(jī)的PWM信號(hào),從而改變空心杯的旋轉(zhuǎn)角速度來(lái)穩(wěn)定無(wú)人機(jī)。
3.2 無(wú)人機(jī)飛行控制理論
針對(duì)無(wú)人機(jī)飛行平穩(wěn)性的問(wèn)題,大多都是通過(guò)傳統(tǒng)的PID控制、滑??刂?、反步法、魯棒控制等算法來(lái)實(shí)現(xiàn)的[3]。在本系統(tǒng)中筆者采用最簡(jiǎn)單傳統(tǒng)的無(wú)人機(jī)控制算法作為基礎(chǔ),即經(jīng)典的PID控制算法對(duì)無(wú)人機(jī)進(jìn)行平衡控制。
在進(jìn)行算法控制之前,首先需要得到算法需要的數(shù)據(jù),也就是歐拉角,通過(guò)MPU6050得到的角速度以及角加速度代入如下計(jì)算公式,即可計(jì)算出歐拉角中的pitch(俯仰角)和roll(滾轉(zhuǎn)角)。
當(dāng)?shù)玫綗o(wú)人機(jī)的歐拉角后,將其作為無(wú)人機(jī)當(dāng)前的姿態(tài)數(shù)值代入算式,同時(shí)設(shè)定一個(gè)無(wú)人機(jī)飛行的期望數(shù)值,一般情況下無(wú)人機(jī)飛行的期望數(shù)值可以由無(wú)人機(jī)校準(zhǔn)時(shí)的零位值代替。將兩者帶入PID算法的公式:
同時(shí)根據(jù)公式以及得出的數(shù)據(jù),在單片機(jī)中進(jìn)行算法的編寫,通過(guò)比例、積分、微分,最終得出4個(gè)空心杯的PWM值,再通過(guò)電機(jī)驅(qū)動(dòng)輸出到820空心杯電機(jī)上。
3.3無(wú)人機(jī)飛行控制理論
小型無(wú)人機(jī)的應(yīng)用場(chǎng)景多見(jiàn)于低空飛行或者是室內(nèi)飛行,在此條件下,無(wú)人機(jī)躲避障礙物就成了一個(gè)非常關(guān)鍵的功能。
在無(wú)人機(jī)四周裝載上紅外測(cè)距模塊,在無(wú)人機(jī)的飛行過(guò)程中,時(shí)刻檢測(cè)無(wú)人機(jī)距離周圍障礙物的距離,判斷是否到達(dá)危險(xiǎn)區(qū)域。
當(dāng)無(wú)人機(jī)在某方向上的障礙物小于設(shè)定的危險(xiǎn)閾值時(shí),則立刻停止無(wú)人機(jī)在此方向上移動(dòng)的速度分量,改變空心杯的運(yùn)轉(zhuǎn)方式使其穩(wěn)定在當(dāng)前位置甚至往反方向進(jìn)行適當(dāng)路程的移動(dòng)。并且通過(guò)遠(yuǎn)程通信手段給操作者發(fā)送危險(xiǎn)信號(hào),告知操縱者無(wú)人機(jī)已經(jīng)到達(dá)危險(xiǎn)區(qū)域,撤出原有的操作指令,請(qǐng)求新的操作。
紅外測(cè)距模塊避障模式在一定程度上保障了無(wú)人機(jī)的飛行安全,但也限制了無(wú)人機(jī)的一些自由度,系統(tǒng)上可以更改無(wú)人機(jī)危險(xiǎn)閾值的配置以及關(guān)閉避障功能來(lái)恢復(fù)無(wú)人機(jī)的靈活度。再利用局部網(wǎng)絡(luò)或互聯(lián)網(wǎng)等通信技術(shù)把傳感器、控制器、機(jī)器、人和物等通過(guò)新的方式聯(lián)系在一起,形成人與物、物與物相聯(lián),實(shí)現(xiàn)信息化、遠(yuǎn)程管理控制和智能化的網(wǎng)絡(luò)[4]。
4 結(jié)束語(yǔ)
四旋翼無(wú)人機(jī)通過(guò)各種傳感器獲得的數(shù)據(jù),通過(guò)算法將這些數(shù)據(jù)換算成空心杯電機(jī)的功率,其所帶來(lái)的無(wú)人機(jī)整體四個(gè)端點(diǎn)的升力的不同組合,使無(wú)人機(jī)完成各種復(fù)雜的動(dòng)作或者是精準(zhǔn)穩(wěn)定的懸停。其超高的自由度以及低成本等優(yōu)勢(shì)決定了四旋翼無(wú)人機(jī)在今日不可撼動(dòng)的地位。如今四旋翼無(wú)人機(jī)已經(jīng)可以完成各種各樣復(fù)雜的任務(wù),將5G通信技術(shù)下的大數(shù)據(jù)與AI、泛互聯(lián)網(wǎng)相結(jié)合,完善互補(bǔ)運(yùn)行機(jī)制,將成為當(dāng)今時(shí)代先進(jìn)的生產(chǎn)力工具[5]。
參考文獻(xiàn):
[1] 周濟(jì).智能制造——“中國(guó)制造2025”的主攻方向[J].中國(guó)機(jī)械工程,2015,26(17):2273-2284.
[2] 張曙.工業(yè)4.0和智能制造[J].機(jī)械設(shè)計(jì)與制造工程,2014,43(8):1-5.
[3] 王成,楊杰,姚輝,等.四旋翼無(wú)人機(jī)飛行控制算法綜述[J].電光與控制,2018,25(12):53-58.
[4] 陳文偉,朱玉坤,張寧池,等.面向能源互聯(lián)網(wǎng)的5G關(guān)鍵技術(shù)及應(yīng)用場(chǎng)景研究[J].電力信息與通信技術(shù),2021,19(8):83-90.
[5] 徐曉峰.5G物聯(lián)網(wǎng)技術(shù)驅(qū)動(dòng)下高校真人圖書(shū)館服務(wù)創(chuàng)新策略研究[J].圖書(shū)館工作與研究,2021(8):62-68.
【通聯(lián)編輯:唐一東】