張道宏 鐵振弘
摘要:本系統(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):TN929.54
引言
無(wú)人機(jī)就是利用無(wú)線遙控或程序控制來(lái)執(zhí)行特定的航空任務(wù)的飛行器,普遍運(yùn)用在當(dāng)代工業(yè),軍事上。無(wú)人機(jī)采用空氣動(dòng)力為飛行器提供所需的升力,特別的,四旋翼無(wú)人機(jī)采用四個(gè)螺旋槳,通過(guò)控制不同螺旋槳電機(jī)的轉(zhuǎn)速實(shí)現(xiàn)無(wú)人機(jī)在三維中的移動(dòng),旋轉(zhuǎn)。
雖然無(wú)人機(jī)的定點(diǎn)作業(yè)目標(biāo)一般不會(huì)非常復(fù)雜,但是在高空中,無(wú)人機(jī)作業(yè)的不可控因素過(guò)大,比如說(shuō)由于氣壓的不穩(wěn)定,無(wú)人機(jī)的四旋翼即使在相同的轉(zhuǎn)速下,產(chǎn)生的力也可能不同,或者由于在高空,無(wú)人機(jī)將收到完全不可控的來(lái)自于各個(gè)方向上的風(fēng)阻。再者,無(wú)人機(jī)的硬件磨損等將使得四旋翼的電壓無(wú)法達(dá)到預(yù)期電壓,即四旋翼的轉(zhuǎn)速控制可能產(chǎn)生相應(yīng)的誤差。因此即使訓(xùn)練有素的無(wú)人機(jī)操控者也無(wú)法在高空中穩(wěn)定地操控?zé)o人機(jī)作業(yè)。
因此,本文介紹了一種基于Esp32的四旋翼無(wú)人機(jī)的實(shí)現(xiàn)方式,能夠使用無(wú)線遙控控制無(wú)人機(jī)的移動(dòng),對(duì)外界的不可控干擾可以自發(fā)地調(diào)整四旋翼電機(jī)快速對(duì)干擾做出反應(yīng),在風(fēng)較小的環(huán)境下實(shí)現(xiàn)自平衡,并通過(guò)紅外測(cè)距實(shí)現(xiàn)自避障。
1.無(wú)人機(jī)構(gòu)造
本系統(tǒng)無(wú)人機(jī)采用四旋翼結(jié)構(gòu),主控板集成Esp32,驅(qū)動(dòng),陀螺儀,紅外測(cè)距,放置在整個(gè)無(wú)人機(jī)的重心處,四個(gè)空心杯電機(jī)對(duì)稱分布在無(wú)人機(jī)的四周,空心杯電機(jī)上方裝有小型螺旋槳,提供升力。
1.1 Esp32主控制器
ESP32 是由樂(lè)鑫公司推出的一款采用高性能 Xtensa? 32 位 LX6 雙核處理器的微控制器,集成了天線開關(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ī)對(duì)各模塊重量有著較高的要求,過(guò)重的電池會(huì)導(dǎo)致無(wú)人機(jī)難以平衡,因此市面上的無(wú)人機(jī)一般都采用鋰聚合物電池,相對(duì)普通電池來(lái)說(shuō),鋰聚合物電池具有超薄化特征,可以做成各式各樣的小型電池,較適合于無(wú)人機(jī)的使用。
1.3陀螺儀
無(wú)人機(jī)的平衡,移動(dòng),升降都離不開陀螺儀提供的三軸角度,因此選擇一個(gè)合適的陀螺儀是無(wú)人機(jī)研發(fā)的重要環(huán)節(jié)。本系統(tǒng)采用Mpu6050陀螺儀芯片,其能輸出三軸角速度及角加速度,并自帶旋轉(zhuǎn)矩陣,四元數(shù),歐拉角格式的融合演算。
1.4電機(jī)驅(qū)動(dòng)
本系統(tǒng)采用4個(gè)820空心杯電機(jī)控制螺旋槳旋轉(zhuǎn)。采用L9110S芯片驅(qū)動(dòng),L9110S是一款低成本直流電機(jī)驅(qū)動(dòng)集成電路,廣泛應(yīng)用于玩具汽車無(wú)人機(jī)的電機(jī)驅(qū)動(dòng)。本系統(tǒng)使用ESP32輸出pwm信號(hào)至L9110S,驅(qū)動(dòng)空心杯電機(jī),其電路如下:
1.5無(wú)人機(jī)外形
無(wú)人機(jī)在空中移動(dòng)過(guò)程中,受到的主要阻力即為不可控分風(fēng)阻,為了使無(wú)人機(jī)的所受的阻力盡可能地小、均勻,應(yīng)當(dāng)將無(wú)人機(jī)的外殼設(shè)計(jì)為流線型,本設(shè)計(jì)PCB板即為流線型的設(shè)計(jì)。使用四個(gè)等半徑的圓弧,與四個(gè)等徑圓交織形成流線型中心對(duì)稱的無(wú)人機(jī)板。
2.無(wú)人機(jī)的基本控制
無(wú)人機(jī)的基本控制主要分為:上升下降,自轉(zhuǎn),前后運(yùn)動(dòng),側(cè)向運(yùn)動(dòng)。
1.上升下降
無(wú)人機(jī)在豎直方向上主要受到兩個(gè)力,分別為無(wú)人機(jī)機(jī)身的重力G以及四個(gè)螺旋槳提供的升力F。當(dāng)F=G時(shí),無(wú)人機(jī)的高度將保持不變;當(dāng)F>G時(shí),無(wú)人機(jī)逐漸升高;而當(dāng)F<G時(shí),無(wú)人機(jī)逐漸下降,其升高或下降的速度及加速度滿足以下公式:
其中v為升高或下降的速度,a為加速度,v為豎直方向上的初始速度,當(dāng)無(wú)人機(jī)的豎直方向上靜止時(shí),v0=0。但在無(wú)人機(jī)中,無(wú)法直接測(cè)得無(wú)人機(jī)所提供的升力以及無(wú)人機(jī)的所受的重力,因此一般采用PID控制使得無(wú)人機(jī)達(dá)到目標(biāo)高度。具體控制如下:
規(guī)定以下符號(hào):
高度計(jì)測(cè)得當(dāng)前高度ht,
無(wú)人機(jī)的新期望高度h1,
四個(gè)空心杯的初始電壓v0,
四個(gè)空心杯的當(dāng)前電壓vt,
無(wú)人機(jī)的上升下降速度S。
在每一個(gè)時(shí)刻,令高度差值dh=h1-ht。通過(guò)單片機(jī)控制vt=v0+S*dh。當(dāng)dh較大時(shí),四個(gè)空心杯的電壓較高,轉(zhuǎn)速較快,無(wú)人機(jī)的上升速度較快,而當(dāng)無(wú)人機(jī)接近目標(biāo)高度時(shí),dh較小,無(wú)人機(jī)停止上升,最終停留在目標(biāo)高度,實(shí)現(xiàn)無(wú)人機(jī)對(duì)目標(biāo)高度的控制。在實(shí)際運(yùn)用中,一般采用PID的控制方式使得目標(biāo)控制更加平滑,高效。在該控制目標(biāo)中,采用位置式PID,輸入量為ht-h1,輸出量為電壓增量dv,其與vt的關(guān)系應(yīng)當(dāng)滿足vt=v0+dv。
2.自轉(zhuǎn)
為了保證四懸翼飛行器偏航角的穩(wěn)定,飛控模塊會(huì)調(diào)整四個(gè)電機(jī)的速度來(lái)保證這兩個(gè)旋轉(zhuǎn)力矩可以被互相抵消進(jìn)而保證飛機(jī)不會(huì)自旋,因此,如果想讓無(wú)人機(jī)自轉(zhuǎn)的話,主要打破這個(gè)平衡即可,即按照?qǐng)D中的旋轉(zhuǎn)方向,增加 1 4 的轉(zhuǎn)速,減少 2 3 的轉(zhuǎn)速可以在保證姿態(tài)穩(wěn)定的條件下將飛機(jī)逆時(shí)針轉(zhuǎn)動(dòng);減少 1 4 的轉(zhuǎn)速,增加 2 3 的轉(zhuǎn)速可以在保證姿態(tài)穩(wěn)定的條件下將飛機(jī)順時(shí)針轉(zhuǎn)動(dòng)。
3.前后運(yùn)動(dòng)及左右運(yùn)動(dòng)
為了使無(wú)人機(jī)產(chǎn)生在14方向上的扭矩,則應(yīng)該令電機(jī)1加速,電機(jī)4減速,電機(jī)2、3保持不變,使得無(wú)人機(jī)產(chǎn)生一定的傾斜,無(wú)人機(jī)就會(huì)得到水平方向上的力,即可朝著14方向移動(dòng)。相反,加速電機(jī)4,減速電機(jī)1,其余兩電機(jī)保持不變即可朝著41方向移動(dòng)。左右運(yùn)動(dòng)同理。
在各個(gè)控制方向上,使用并級(jí)PID控制連接,則能協(xié)調(diào)各個(gè)無(wú)人機(jī)的參數(shù),使其同時(shí)達(dá)到平衡,并完成特定的移動(dòng)目標(biāo),即完成移動(dòng)控制。
3.無(wú)人機(jī)的校準(zhǔn)與自平衡
3.1無(wú)人機(jī)的校準(zhǔn)
無(wú)人機(jī)的校準(zhǔn)是無(wú)人機(jī)保持平衡的關(guān)鍵步驟之一。無(wú)人機(jī)在空中保持平衡主要依賴于陀螺儀的x,y,z軸三軸偏向角,因此需要取陀螺儀零位角作為基準(zhǔn)角。具體方式為,將無(wú)人機(jī)放在水平的地面上,按下校準(zhǔn)鍵,主控單片機(jī)將此時(shí)的陀螺儀的三軸角度保存為基準(zhǔn)角(P0,Y0,R0)。當(dāng)無(wú)人機(jī)起飛后,對(duì)當(dāng)前時(shí)刻的三軸角(Pt,Yt,Rt)與基準(zhǔn)角做差即可得到在三個(gè)方向上角度的期望改變量(Pd,Yd,Rd)。
3.2不可控誤差的消除
無(wú)人機(jī)在飛行過(guò)程中,受到風(fēng)阻,壓強(qiáng),機(jī)身不平衡,電壓不穩(wěn)定等繁多的不可控因素。因此,在無(wú)人機(jī)控制算法中,需要包含一定的控制算法以消除這些不可控因素。本研究擬針對(duì)誤差的不同種類型,采用不同的消除誤差方式,具體如下:
參數(shù)采樣誤差:
無(wú)人機(jī)在采集自身參數(shù)時(shí),由于電壓的不穩(wěn)定,模塊的精準(zhǔn)度有一定的局限性,無(wú)法使得獲得的參數(shù)達(dá)到完全的精準(zhǔn)。因此,對(duì)于參數(shù)的采樣誤差,擬采用卡爾曼濾波,對(duì)參數(shù)的采樣進(jìn)行濾波,提高獲取參數(shù)值的可靠性及穩(wěn)定性。
風(fēng)阻誤差:
無(wú)人機(jī)在高空飛行中,所面臨的風(fēng)阻可能來(lái)源于各個(gè)方向,并且強(qiáng)度未知。轉(zhuǎn)換為物理模型即可以理解為無(wú)人機(jī)將收到來(lái)自于隨機(jī)方向上,且強(qiáng)度不定的力。為了消除這種力,首先我們對(duì)該力進(jìn)行分析,并命名為f。f的大小總體將滿足高斯分布,方向完全隨機(jī)。因此在計(jì)算受力分析時(shí),應(yīng)該同時(shí)包含f的受力。
在每一個(gè)時(shí)間周期后,無(wú)人機(jī)將返回自身的位置參數(shù),同時(shí)計(jì)算出無(wú)人機(jī)當(dāng)前的位置參數(shù)與上一個(gè)時(shí)刻的期望位置參數(shù)的差值。而此刻造成該誤差的原因即為不可控因素所造成的誤差,此時(shí)即可定性分析不可控誤差所造成的影響,并在下一個(gè)時(shí)刻嘗試抵消該不可控誤差,并在下一個(gè)時(shí)刻更新不可控誤差的分析,如此反復(fù)即可最終實(shí)現(xiàn)盡可能的消除無(wú)人機(jī)所受的不可控誤差。
3.3紅外測(cè)距自動(dòng)避障
無(wú)人機(jī)板載四個(gè)紅外測(cè)距,朝向四個(gè)無(wú)人機(jī)方向,時(shí)刻檢測(cè)無(wú)人機(jī)的各方向上是否有障礙物。具體擺放方式如下:
當(dāng)無(wú)人機(jī)在某個(gè)方向上的障礙物距離小于特定值a時(shí),緊急停止無(wú)人機(jī)在該方向上的移動(dòng),并反饋在飛控系統(tǒng)當(dāng)中。必要時(shí)應(yīng)當(dāng)產(chǎn)生在相反反向上的移動(dòng)目標(biāo),以實(shí)現(xiàn)四旋翼無(wú)人機(jī)的紅外自動(dòng)避障系統(tǒng)。
4.結(jié)語(yǔ)
四旋翼無(wú)人機(jī)主要通過(guò)改變4個(gè)電機(jī)的轉(zhuǎn)速來(lái)調(diào)節(jié)螺旋槳的轉(zhuǎn)速,控制螺旋槳的升力以實(shí)現(xiàn)對(duì)無(wú)人機(jī)的垂直起降,自由懸停,自轉(zhuǎn),前后左右移動(dòng)的六個(gè)自由度上的移動(dòng)控制。這些優(yōu)勢(shì)決定了他是一種軍民兩用的高科技設(shè)備,從當(dāng)前國(guó)內(nèi)外的諸多領(lǐng)域中可以了解到,四旋翼無(wú)人機(jī)當(dāng)前已經(jīng)能夠完成各種各樣復(fù)雜及危險(xiǎn)的任務(wù),實(shí)踐價(jià)值較高。