鐘永熙,吳黎明,張珊珊
(廣東工業(yè)大學(xué)信息工程學(xué)院,廣州510006)
WiFi環(huán)境下的微型四軸飛行器系統(tǒng)設(shè)計(jì)
鐘永熙,吳黎明,張珊珊
(廣東工業(yè)大學(xué)信息工程學(xué)院,廣州510006)
為改善傳統(tǒng)四軸飛行器體積大、不便于攜帶、航模遙控器操作復(fù)雜等問(wèn)題,從易用性的角度出發(fā),提出了基于WiFi控制的微型四軸飛行器設(shè)計(jì)方案。系統(tǒng)以STM32處理器為核心,MPU6050、HMC5883組成慣性測(cè)量單元測(cè)量飛行器姿態(tài),上位機(jī)通過(guò)WiFi與飛行控制器進(jìn)行數(shù)據(jù)交互;并引入RT-Thread嵌入式實(shí)時(shí)操作系統(tǒng),以滿(mǎn)足飛行姿態(tài)控制的實(shí)時(shí)性要求。經(jīng)實(shí)驗(yàn)測(cè)試,飛行器能在較短時(shí)間內(nèi)對(duì)上位機(jī)的操作指令進(jìn)行響應(yīng),并按照指定操作穩(wěn)定飛行,系統(tǒng)基本完成預(yù)期目標(biāo)。
四軸飛行器;飛行控制器;嵌入式實(shí)時(shí)操作系統(tǒng);姿態(tài)控制
四軸飛行器和傳統(tǒng)的飛行器相比,具有機(jī)械結(jié)構(gòu)簡(jiǎn)單、飛行穩(wěn)定、操控靈活、系統(tǒng)高度智能化等優(yōu)點(diǎn),決定其在未來(lái)將有著更為廣闊的應(yīng)用前景。四軸飛行器的設(shè)計(jì)難點(diǎn)在于多傳感器數(shù)據(jù)融合、姿態(tài)控制算法等問(wèn)題[1]。常見(jiàn)的四軸飛行器多以無(wú)線(xiàn)電遙控作為控制載體,操作復(fù)雜,易用性差。本文設(shè)計(jì)一種面向室內(nèi)環(huán)境或狹小空間的短距離遙控微型四軸飛行器。該系統(tǒng)以WiFi作為控制載體,引入嵌入式實(shí)時(shí)操作系統(tǒng),具有操作簡(jiǎn)單、飛行穩(wěn)定等特點(diǎn),增大了系統(tǒng)應(yīng)用的靈活度。
四軸飛行器擁有兩對(duì)對(duì)稱(chēng)的旋翼,對(duì)稱(chēng)的一對(duì)槳葉旋轉(zhuǎn)方向相同,而相鄰的槳葉旋轉(zhuǎn)方向相反。四只旋翼獨(dú)立工作,利用相互作用抵消各旋翼的反槳力矩,并分別控制四個(gè)旋翼的轉(zhuǎn)速即可改變飛行器的飛行姿態(tài)。
姿態(tài)用來(lái)描述一個(gè)剛體的剛體坐標(biāo)系和參考坐標(biāo)系之間的角度位置關(guān)系,常使用歐拉角來(lái)表示,即俯仰角(Pitch)、橫滾角(Roll)和航向角(Yaw)。為了獲得四軸飛行器的當(dāng)前飛行姿態(tài),需要使用加速度傳感器、角速度傳感器(陀螺儀)和地磁傳感器等多種傳感器來(lái)檢測(cè)飛行器姿態(tài)[2]。
加速度傳感器測(cè)量相對(duì)于水平面的傾斜角度;陀螺儀輸出剛體繞一旋轉(zhuǎn)軸的角速度,將角速度對(duì)時(shí)間進(jìn)行積分得到連續(xù)時(shí)間段內(nèi)的角度值。地磁傳感器通過(guò)地磁力投影來(lái)檢測(cè)活動(dòng)物體的姿態(tài)角,從而確定物體坐標(biāo)系與地理坐標(biāo)系之間的方位關(guān)系。為消除傳感器的測(cè)量誤差,需要將三者的姿態(tài)數(shù)據(jù)進(jìn)行融合,才能得到準(zhǔn)確的測(cè)量值[3]。
根據(jù)被控姿態(tài)的表示方式不同,分為不同的控制方法??刂频乃悸窞?設(shè)定一個(gè)目標(biāo)飛行姿態(tài),調(diào)整各旋翼轉(zhuǎn)速,使得當(dāng)前姿態(tài)不斷逼近目標(biāo)姿態(tài)。
本文設(shè)計(jì)的飛行器控制系統(tǒng)主要包括以下幾個(gè)部分,如圖1所示。
圖1 系統(tǒng)總體設(shè)計(jì)
2.1 控制器
控制器實(shí)現(xiàn)四軸飛行器的姿態(tài)解算、姿態(tài)控制等算法。在IMU運(yùn)算與控制算法運(yùn)算時(shí),涉及到大量的矩陣與乘除法運(yùn)算,同時(shí),處理器與各模塊之間需要不同的接口與外設(shè)進(jìn)行數(shù)據(jù)交換。設(shè)計(jì)選用意法半導(dǎo)體公司的STM32F103微處理器,如圖2所示。芯片采用Cortex-M3內(nèi)核,最高工作頻率可達(dá)72 MHz,具有64 KB片上Flash及20 KB片上SRAM,以及ADC、SPI、I2C等片上外設(shè),可滿(mǎn)足系統(tǒng)設(shè)計(jì)需求。
圖2 控制器原理圖
2.2 姿態(tài)測(cè)量單元
由3軸重力加速度傳感器、3軸陀螺儀傳感器、3軸地磁傳感器組成慣性測(cè)量單元,用于測(cè)量飛行器姿態(tài)。設(shè)計(jì)選用InvenSense公司的運(yùn)動(dòng)處理器單元MPU-6050,整合3軸角速度和3軸加速度傳感器,能有效避免軸差問(wèn)題。選用Honeywell公司的弱磁傳感器HMC5883L,對(duì)四軸飛行器航向進(jìn)行測(cè)量。如圖3、圖4所示,MPU-6050通過(guò)I2C總線(xiàn)與處理器連接。通過(guò)輔助I2C總線(xiàn)與HMC5883L連接,并由主I2C接口以單一數(shù)據(jù)流形式提供完整的9軸融合數(shù)據(jù)。
圖3 陀螺儀及加速度計(jì)
圖4 磁場(chǎng)傳感器
2.3 電源及動(dòng)力單元
如圖5所示,電源系統(tǒng)采用1 s鋰電池(3.7 V),經(jīng)LM2736電壓轉(zhuǎn)換器轉(zhuǎn)換為3 V供微處理器及各模塊使用。電源經(jīng)分壓后連接到處理器模擬輸入端用于電壓檢測(cè)。
動(dòng)力單元由微型電機(jī)、驅(qū)動(dòng)電路組成,接收控制器的控制信號(hào)驅(qū)動(dòng)螺旋槳。處理器輸出PWM信號(hào)經(jīng)場(chǎng)效應(yīng)管AP2306功率放大后驅(qū)動(dòng)空心杯電機(jī)。
圖5 電源電路
2.4 通信模塊及輔助功能
通信模塊連接上位機(jī),實(shí)現(xiàn)用戶(hù)操作。上位機(jī)提供四通道信號(hào)和其他控制信號(hào),并接收飛行器狀態(tài)信息。處理器使用串口連接USR-WiFi232模塊,用于飛行器與上位機(jī)之間的無(wú)線(xiàn)通信。電機(jī)驅(qū)動(dòng)電路如圖6所示。
輔助功能提供電池電壓檢測(cè)、飛行器狀態(tài)顯示等功能。
圖6 電機(jī)驅(qū)動(dòng)電路
3.1 RT-Thread實(shí)時(shí)操作系統(tǒng)。
飛行控制器需要執(zhí)行多個(gè)復(fù)雜的算法計(jì)算和各種不同的工作。而嚴(yán)格的實(shí)時(shí)性對(duì)于飛行控制系統(tǒng)非常關(guān)鍵,因此本設(shè)計(jì)引用RT Thread嵌入式實(shí)時(shí)操作系統(tǒng)來(lái)滿(mǎn)足系統(tǒng)的實(shí)時(shí)性要求。
在飛控程序中,各個(gè)線(xiàn)程執(zhí)行著各自的工作。線(xiàn)程分為底層和應(yīng)用層,底層靠近硬件,如讀取傳感器。應(yīng)用層基本與硬件無(wú)關(guān),如姿態(tài)計(jì)算。用優(yōu)先級(jí)來(lái)區(qū)分線(xiàn)程對(duì)實(shí)時(shí)性的要求,優(yōu)先級(jí)數(shù)字越小則線(xiàn)程的優(yōu)先級(jí)越高,相應(yīng)線(xiàn)程的實(shí)時(shí)性越好。
表1列出了操作系統(tǒng)系統(tǒng)中的核心線(xiàn)程,它們之間有先后執(zhí)行關(guān)系。
表1 系統(tǒng)核心線(xiàn)程
使用系統(tǒng)提供的信號(hào)量實(shí)現(xiàn)線(xiàn)程之間的同步。當(dāng)上級(jí)線(xiàn)程完成工作,如傳感器數(shù)據(jù)讀取完成,且新的計(jì)算周期開(kāi)始后,就發(fā)送一個(gè)信號(hào)量給下級(jí)線(xiàn)程,下級(jí)線(xiàn)程在工作之前會(huì)一直等待該信號(hào)量,除非達(dá)到設(shè)定的超時(shí)時(shí)間造成超時(shí)返回。超時(shí)返回后,執(zhí)行相應(yīng)的處理方案,比如發(fā)送錯(cuò)誤信息到調(diào)試口,或者重啟上級(jí)線(xiàn)程。圖7表示核心線(xiàn)程的執(zhí)行順序。
3.2 通信協(xié)議
通信協(xié)議實(shí)現(xiàn)遙控器和飛行控制器之間的信息交換。為滿(mǎn)足系統(tǒng)實(shí)時(shí)性要求,通信協(xié)議需要盡量簡(jiǎn)單,以盡量少的數(shù)據(jù)傳遞盡量多的數(shù)據(jù)。本系統(tǒng)擬定的通信協(xié)議如下所示。
碼 頭指令碼參數(shù)長(zhǎng)度參 數(shù)校驗(yàn)碼碼 尾0x55 Cmd Length Par CRC 0x0D
圖7 核心線(xiàn)程執(zhí)行順序
遙控指令分為兩類(lèi),控制類(lèi)與查詢(xún)類(lèi)。命令字高兩位用于區(qū)分指令類(lèi)型,低6位為相應(yīng)的指令碼??刂浦噶钣糜陲w行器的連接、解鎖、姿態(tài)控制、PID參數(shù)設(shè)置等功能。查詢(xún)指令用于查詢(xún)飛行器當(dāng)前姿態(tài)及電量信息。下面列出了通信協(xié)議中較為重要的命令,控制指令如表2所列。
表2 控制指令
3.3 數(shù)據(jù)處理
(1)提取傳感器數(shù)據(jù)
飛行控制器上集成了9個(gè)自由度的傳感器,所有的傳感器都以I2C設(shè)備的形式,掛載在I2C總線(xiàn)設(shè)備上,由RTThread的設(shè)備驅(qū)動(dòng)進(jìn)行管理。傳感器數(shù)據(jù)的讀取,是由線(xiàn)程gyro、acc、compass負(fù)責(zé)的,其功能包括傳感器初始化、取值、單位變換、濾波、輸出、動(dòng)態(tài)量程處理等。傳感器通過(guò)硬件中斷驅(qū)動(dòng)MCU的外部中斷引腳,在中斷程序中釋放一個(gè)信號(hào)量給線(xiàn)程以通知其讀取新的數(shù)據(jù)。
(2)姿態(tài)算法
獲得傳感器的數(shù)據(jù)后,通過(guò)姿態(tài)算法計(jì)算得出實(shí)際的飛行器角度值。它將上一時(shí)刻中的飛行器姿態(tài)與當(dāng)前時(shí)刻的傳感器輸出進(jìn)行結(jié)合,并計(jì)算出當(dāng)前的姿態(tài)。姿態(tài)計(jì)算使用四元數(shù)算法,用四元數(shù)來(lái)計(jì)算空間旋轉(zhuǎn),相對(duì)于方向余弦矩陣來(lái)說(shuō)可以減少很多的計(jì)算量。將傳感器的輸出量轉(zhuǎn)換為四元數(shù),并與上一時(shí)刻的四元數(shù)相乘,進(jìn)行姿態(tài)遞推,然后再將四元數(shù)中轉(zhuǎn)換成較為直觀(guān)的歐拉角進(jìn)行輸出。遞推的過(guò)程即是姿態(tài)更新的過(guò)程[4]。
系統(tǒng)中,將加速度計(jì)的輸出轉(zhuǎn)換為roll與pitch相對(duì)地平面的旋轉(zhuǎn)量,地磁傳感器則計(jì)算出當(dāng)前磁北的位置,即yaw的旋轉(zhuǎn)量。獲得與目標(biāo)姿態(tài)角度的偏差,在下一次計(jì)算四元數(shù)之前,將其與陀螺儀輸出的角增量用變參數(shù)互補(bǔ)濾波器進(jìn)行融合,再計(jì)算四元數(shù)。
(3)控制算法與輸出映射
姿態(tài)算法的結(jié)果直接被用于控制算法的計(jì)算,以修正瞬時(shí)誤差,使四軸飛行器向目標(biāo)的姿態(tài)逼近。這一部分的工作,是由“ctrl”線(xiàn)程負(fù)責(zé)執(zhí)行的。系統(tǒng)中,使用雙閉環(huán)PID算法,輸入量為姿態(tài)誤差,輸出量為三個(gè)軸(roll, pitch,yaw)對(duì)應(yīng)的姿態(tài)角度的控制量[5]。這個(gè)輸出并不能直接賦值給電機(jī),需要一個(gè)轉(zhuǎn)換過(guò)程,將各個(gè)軸的輸出量轉(zhuǎn)化成飛行器中的各個(gè)伺服器需要的輸入量[6]。四軸飛行器的控制輸出映射如表3所列。
表3 四軸飛行器姿態(tài)控制輸出映射
為使飛行器穩(wěn)定飛行,需要進(jìn)行PID參數(shù)的調(diào)節(jié)。先調(diào)節(jié)處環(huán)PID,再調(diào)節(jié)內(nèi)環(huán)PID。以Roll軸調(diào)節(jié)為例,首先把四軸飛行器的一個(gè)旋轉(zhuǎn)軸(pitch)固定,使其只能以某一旋轉(zhuǎn)軸旋轉(zhuǎn)(roll)。先調(diào)節(jié)比例P,然后依次加入積分I調(diào)節(jié)和微分D,使四軸飛行器能穩(wěn)定在一個(gè)角度。人為添加一個(gè)外力及初速度或左右打橫滾桿,觀(guān)察四軸飛行器能否恢復(fù)自穩(wěn)。具體需要結(jié)合實(shí)際飛行時(shí)的反應(yīng)進(jìn)行微調(diào)。pitch、roll、yaw的PID參數(shù)調(diào)節(jié)方法基本一致。
為實(shí)時(shí)監(jiān)測(cè)飛行器的控制及姿態(tài)信息,采用matlab編寫(xiě)測(cè)試程序?qū)︼w行器狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控。飛控定時(shí)給上位機(jī)發(fā)送傳感器信息和姿態(tài)信息,上位機(jī)通過(guò)串口發(fā)送給matlab,并進(jìn)行實(shí)時(shí)顯示,測(cè)試結(jié)果如圖8所示。圖中顯示了姿態(tài)角的輸出信號(hào),并以圖形的形式表示出飛行器的當(dāng)前姿態(tài)。Matlab實(shí)時(shí)監(jiān)控程序如圖9所示。
最后,對(duì)四軸飛行器的動(dòng)態(tài)性能進(jìn)行測(cè)試。測(cè)試條件:姿態(tài)采樣頻率為1 k Hz,姿態(tài)解算頻率為100 Hz,航向角、俯仰角、橫滾角的最大舵量均為30°。設(shè)定不同的目標(biāo)姿態(tài),重復(fù)實(shí)驗(yàn),取平均值,測(cè)試數(shù)據(jù)如表4所列。
圖8 PID調(diào)節(jié)方法
圖9 matlab實(shí)時(shí)監(jiān)控程序
表4 四軸飛行器動(dòng)態(tài)性能
由測(cè)試數(shù)據(jù)可得,系統(tǒng)具有較短的穩(wěn)定時(shí)間。系統(tǒng)動(dòng)態(tài)響應(yīng)迅速,能滿(mǎn)足飛行器姿態(tài)調(diào)整的平穩(wěn)性和快速性要求。
本文設(shè)計(jì)了一種基于WiFi控制的微型四軸飛行器,該系統(tǒng)以RT-Thread實(shí)時(shí)操作系統(tǒng)為軟件載體,實(shí)現(xiàn)了自穩(wěn)飛行、姿態(tài)控制等功能,操作簡(jiǎn)單,可在室內(nèi)或狹小空間內(nèi)穩(wěn)定飛行。但該系統(tǒng)還缺乏足夠的室內(nèi)定位手段和SLAM能力,如能在后續(xù)設(shè)計(jì)中實(shí)現(xiàn),將使其使用范圍更加廣泛,更加智能化。
[1]方璇,鐘伯成.四旋翼飛行器的研究與應(yīng)用[J].上海工程技術(shù)大學(xué)學(xué)報(bào),2015(2):113-118.
[2]高宗余,李德勝.多MEMS傳感器姿態(tài)測(cè)量系統(tǒng)的研究[J].電光與控制,2010,17(3):68-70.
[3]何川,李智,王勇軍.基于STM32的四旋翼飛行器的姿態(tài)最優(yōu)估計(jì)研究[J].電子技術(shù)應(yīng)用,2015,41(12):61-64.
[4]冀亮,錢(qián)正洪,白茹.基于四元數(shù)的四軸無(wú)人機(jī)姿態(tài)的估計(jì)和控制[J].現(xiàn)代電子技術(shù),2015(11):112-116.
[5]徐大遠(yuǎn),王英健,陳冠軍,等.四軸飛行器的動(dòng)力學(xué)建模和位置控制研究[J].電子科技,2015,28(1):69-72.
[6]陸偉男,蔡啟仲,李剛,等.基于四軸飛行器的雙閉環(huán)PID控制[J].科學(xué)技術(shù)與工程,2014,14(33):127-131.
鐘永熙(碩士研究生),主要研究方向?yàn)榍度胧较到y(tǒng)和自動(dòng)控制;吳黎明(教授),主要研究方向?yàn)榍度胧较到y(tǒng)、通信與信息系統(tǒng)。
Micro Four-axis Aircraft Design Based on WiFi
Zhong Yongxi,Wu Liming,Zhang Shanshan
(Guangdong University of Technology,Guangzhou 510006,China)
In order to improve the portability of the traditional four-axis aircraft and decrease the operation complexity of the aero-modeling remote control,a design of micro four-axis aircraft based on WiFi is put forward.The system uses STM32 processor as the core,and measures the flight attitude of the aircraft by an inertial measurement unit which consists of the MPU6050 and HMC5883.The date interaction between the mobile application and the control board is completed by WiFi.The RT-Thread embedded RTOS is introduced to the system at the same time in order to meet the real-time requirement of the fight attitude control.The experiment results show that the aircraft can response to upper computer in a comparatively short time and fly steadily according to the specified operating.And the system basically can complete the expected goal.
four-axis aircraft;flight controller;embedded RTOS;attitude control
TP272
:A
楊迪娜
2016-06-06)