謝 檬,南 洋
(西安交通大學城市學院,西安 710018)
1901年,Breguet兄弟開始研發(fā)“旋翼機1號”四旋翼飛行器[1-3]。“旋翼機1號”采用四根鋼管組成的“十字架”形狀結(jié)構(gòu),于1907年的年底,首次實現(xiàn)四旋翼飛行器載人升空,這一突破性的進展極大促進了四旋翼飛行器的發(fā)展[4-9]。而后幾十年,德國公司研發(fā)的MD4型號四旋翼飛行器、美國斯坦福大學研發(fā)出STARMAC四旋翼飛行器、法國派諾特公司研制的AR.Drone四旋翼飛行器、奧克蘭大學推出帶有飛控系統(tǒng)的四旋翼飛行器、我國的“大疆”公司和“零度智控”公司推出的ZERO1600系列無人機在民用無人機領(lǐng)域得到了推廣[10-14]。世界各國無一不把四旋翼飛行器列為重點研究對象。
圖1 監(jiān)測系統(tǒng)結(jié)構(gòu)框圖
圖2 傳感器驅(qū)動電路圖
四旋翼飛行器可以實現(xiàn)各種方位和角度的飛行、且能對目標區(qū)域進行遠距離的實時低空偵察和觀測,同時向地面監(jiān)測站傳送實施的影像信息;得益于四旋翼飛行器多種靈活的飛行姿態(tài)[15]。在現(xiàn)代戰(zhàn)爭中,四旋翼飛行器可以攜帶現(xiàn)代武器,比如遠程操控投放炸彈等等[16-19]。在民用方面,四旋翼飛行器可以執(zhí)行各種復(fù)雜環(huán)境的任務(wù),比如環(huán)境監(jiān)測,大氣監(jiān)測,地貌監(jiān)測,森林防火等??刂葡到y(tǒng)是四旋翼飛行器的核心技術(shù),主要在飛行過程中操控著四旋翼飛行器的飛行姿態(tài)、實時通信和位置導航等任務(wù)[20]。
四旋翼無人機主要由飛控手目視操控飛行過程,難免存在人為誤差,為了減少飛控手目視檢查所產(chǎn)生的誤差,可以通過LabVIEW平臺進行四旋翼飛行器飛行控制模擬及仿真,在軟件平臺上實現(xiàn)四旋翼飛行器飛行狀態(tài)信息的實時采集和性能評估。本文所設(shè)計的四旋翼飛行器姿態(tài)監(jiān)測系統(tǒng),下位機采用STM32F103RBT6單片機和MPU-9250九軸傳感器采集四旋翼飛行器的實時飛行高度、飛行速度、俯仰角和滾轉(zhuǎn)角,將采集到的數(shù)據(jù)通過WiFi傳輸給上位機,上位機界面對采集的數(shù)據(jù)進行顯示、記錄、存儲、報警和回放等功能。打開子面板,可以查詢歷史數(shù)據(jù),且對其數(shù)據(jù)進行誤差分析。
四旋翼飛行器姿態(tài)監(jiān)測系統(tǒng)結(jié)構(gòu)框圖如圖1所示,姿態(tài)監(jiān)測的四個參數(shù)分別是:飛行高度、飛行速度、俯仰角和滾轉(zhuǎn)角。
MPU-9250九軸傳感器將采集到的參數(shù)傳輸給STM32F103RBT6單片機進行處理,WIFI通信模塊連接上位機LabVIEW監(jiān)測平臺,完成實時數(shù)據(jù)顯示、歷史數(shù)據(jù)查詢和閾值觸發(fā)報警等功能。
MPU-9250傳感器采用SPI通信方式和STM32單片機進行通信,驅(qū)動電路圖如圖2所示。在STM32單片機中將PA1管腳配置成SPI1_SCK,將PA6配置成SPI1_MOSI,將PA7配置成SPI1_MISO,PA2管腳配置成片選管腳來選中MPU-9250傳感器。
單片機最小系統(tǒng)包括電源電路、時鐘電路、復(fù)位電路和啟動電路。
1.2.1 電源電路
供電電路圖3所示,電源供電部分采用3.7 V鋰電池進行供電,由于MCU和MPU九軸傳感器為3.3 V供電,所以電源電路中采取SP6205將3.7 V電壓輸入進行降壓至3.3 V給其供電。
圖3 電源電路
1.2.2 時鐘電路
時鐘電路共提供兩個時鐘源,其中Y2為32.768 kHz晶振,為RTC提供時鐘,Y1為8 MHz晶振,為整個系統(tǒng)提供時鐘。
1.2.3 復(fù)位電路
復(fù)位電路采用按鍵和保護電容構(gòu)成復(fù)位電路,在CPU無法正常工作時,按下按鍵,可以進行物理復(fù)位CPU。
1.2.4 啟動電路
啟動電路如圖4所示,BOOT1和BOOT2來決定啟動模式,BOOT1接電平,并且和BOOT2通過插針連接,通過跳線可以配置三種不同的模式。
圖4 啟動電路
WIFI通信模塊電路圖如圖5所示,其中,PA9是串口1的發(fā)送管腳,PA10是串口1的接收管腳。
圖5 WIFI通信模塊電路圖
四旋翼飛行器姿態(tài)監(jiān)測系統(tǒng)設(shè)計采用圖形化編程軟件LabVIEW,主要實現(xiàn)功能:(1)實時采集飛行姿態(tài)四個關(guān)鍵參數(shù),并對參數(shù)進行顯示、處理、存儲、報警和回放;(2)若采集到的數(shù)據(jù)超過預(yù)先設(shè)置的閾值,觸發(fā)報警;(3)對歷史數(shù)據(jù)進行回放,方便查詢不同時刻的歷史記錄。
監(jiān)測系統(tǒng)主程序流程如圖6所示,系統(tǒng)設(shè)置數(shù)據(jù)采集時間間隔、參數(shù)閾值,將采集到的數(shù)據(jù)實時顯示在軟件界面,系統(tǒng)軟件對實時數(shù)據(jù)進行處理。當飛行高度、速度值超過預(yù)先設(shè)定的閾值,則觸發(fā)報警并顯示,軟件系統(tǒng)重新發(fā)送飛行控制指令;當飛行高度、速度值沒有超過預(yù)先設(shè)定的閾值,則飛行繼續(xù)并進行數(shù)據(jù)采集、顯示等。
圖6 監(jiān)測系統(tǒng)主程序流程圖
姿態(tài)監(jiān)測系統(tǒng)分為兩個子面板,實時數(shù)據(jù)采集顯示子面板和歷史數(shù)據(jù)查詢回放子面板。
實時數(shù)據(jù)采集顯示子面板由三個模塊組成:參數(shù)設(shè)置模塊、數(shù)據(jù)顯示模塊和指令發(fā)送模塊。主要包括參數(shù)設(shè)置、實時顯示波形、閾值設(shè)定及報警系統(tǒng)、開始保存按鈕、歷史數(shù)據(jù)回放按鈕和停止按鈕、指定參數(shù)設(shè)置及發(fā)送按鈕。
3.1.1 參數(shù)設(shè)置模塊
參數(shù)設(shè)置模塊包括端口號、波特率和數(shù)據(jù)位。建立與四旋翼飛行器通信的前提是必須設(shè)置好端口號,波特率設(shè)定為9 600 bps,數(shù)據(jù)位選擇為8位,讀取8位數(shù)據(jù)。連接無人機,指示燈亮,并顯示連接正常。此時數(shù)據(jù)采集開始,接受來自下位機的數(shù)據(jù)。
3.1.2 數(shù)據(jù)顯示模塊
數(shù)據(jù)顯示模塊包括閾值設(shè)定、實時數(shù)據(jù)波形和報警指示。飛行高度顯示單位為m,閾值設(shè)定范圍0~6 000 m,每一小格代表500 m的高度變化,保留兩位有效數(shù)字。飛行速度顯示單位為km/h,閾值設(shè)定范圍0~400 km/h,每一小格代表25 km/h的速度變化,保留兩位有效數(shù)字。俯仰角和滾轉(zhuǎn)角顯示單位為(°),閾值設(shè)定范圍-180°~180°,每一小格代表10°的角度變化。四個參數(shù)的縱軸數(shù)值最大值會隨著采集到的數(shù)據(jù)值進行改變,觸發(fā)閾值時數(shù)值不再改變且相應(yīng)報警指示燈亮起,四旋翼飛行器停止飛行并等待下一步指令,采集時間單位為s,設(shè)定采集時間間隔為1 s,橫軸每一小格代表20 ms的時間變化。采集時間間隔為1 s,每一小格代表20 ms的時間變化。
3.1.3 指令發(fā)送模塊
用戶可以在上位機界面自行設(shè)定四旋翼飛行器的參數(shù),但是不能設(shè)定閾值,輸入的參數(shù)數(shù)值有效數(shù)字為兩位,飛行高度可輸入范圍為0~6 000.00 m,飛行速度可輸入0~400.00 km/h,俯仰角可輸入范圍為-180.00~180.00°,滾轉(zhuǎn)角可輸入范圍為-180.00~180.00°,相應(yīng)參數(shù)設(shè)置完成后點擊數(shù)值下方的按鈕即可將設(shè)定的參數(shù)數(shù)值發(fā)送給下位機,在完成指令發(fā)送之后,點擊“開始保存”按鈕,上位機開始對下位機采集到的數(shù)據(jù)進行實時保存,如果需要對歷史數(shù)據(jù)進行查看,點擊“歷史數(shù)據(jù)回放”,即可調(diào)用歷史數(shù)據(jù)查詢回放子面板,完成對歷史數(shù)據(jù)的回放和查看操作。
歷史數(shù)據(jù)查詢回放子面板包括四個參數(shù)的歷史數(shù)據(jù)記錄及波形、讀取歷史數(shù)據(jù)表格按鈕及返回主頁按鈕。主要完成調(diào)取存儲在根目錄文件里的歷史數(shù)據(jù)的excel表格,同時顯示飛行高度、飛行速度、俯仰角和滾轉(zhuǎn)角的歷史數(shù)據(jù)變化波形。
監(jiān)測系統(tǒng)工作步驟:
1)在實時數(shù)據(jù)采集顯示子面板上點擊“歷史數(shù)據(jù)回放”按鈕,即歷史數(shù)據(jù)查詢回放子面板開始工作。
2)點擊“點擊打開數(shù)據(jù)文件”按鈕,開始調(diào)取相應(yīng)的歷史數(shù)據(jù),歷史數(shù)據(jù)以excel表格的形式存儲在文件里,同時以波形圖的形式顯示在前面板。
3)點擊“主頁”按鈕,返回實時數(shù)據(jù)采集顯示子面板,可以在觀察歷史數(shù)據(jù)的同時觀察實時數(shù)據(jù)的變化。
四旋翼飛行器起飛姿態(tài)模式如圖7所示,點擊“連接無人機”按鈕,設(shè)置上位機端口號和網(wǎng)絡(luò)測試助手端口號,選擇傳輸協(xié)議為“TCP Client”,設(shè)置實驗數(shù)據(jù)采集時間間隔為100 ms,開始采集實時數(shù)據(jù)。點擊“停止”按鈕,歷史數(shù)據(jù)以excel表格的形式自動保存至文件。由圖可見,四旋翼飛行器正處于起飛模式,飛行高度、飛行速度、俯仰角和滾轉(zhuǎn)角都呈遞增的趨勢。
圖7 四旋翼飛行器起飛姿態(tài)模式
四旋翼飛行器平穩(wěn)飛行姿態(tài)模式如圖8所示,當四旋翼飛行器加速起飛之后,說明系統(tǒng)運行正常,從177 s時刻開始給四旋翼飛行器發(fā)送指令,使其減緩加速上升,指令發(fā)送間隔為1 s,178 s時刻之后四旋翼飛行器減緩加速上升。當時間到達198 s時刻,飛行高度從3 033.95 m緩慢增加至3 036.23 m,飛行速度由230.00 km/h緩慢增加至231.99 km/h保持不變,俯仰角由73.00°緩慢增加至74.79°保持不變,滾轉(zhuǎn)角由81.00°緩慢增加至82.77°保持不變,四旋翼飛行器呈平穩(wěn)飛行的趨勢,處于平穩(wěn)飛行姿態(tài)模式。
圖8 四旋翼飛行器平穩(wěn)飛行姿態(tài)模式
四旋翼飛行器降落姿態(tài)模式如圖9所示,系統(tǒng)給四旋翼飛行器發(fā)送指令,使其減速下降,指令發(fā)送間隔為1 s,199 s時刻起四旋翼飛行器逐漸減速。當時間到達220 s時刻,飛行高度從3 036.23 m緩慢降低至3 014.51 m,飛行速度由231.99 km/h緩慢減小至207.46 km/h,俯仰角由74.79°緩慢增加至-13.01°,滾轉(zhuǎn)角由82.77°緩慢減小至-23.54°。四旋翼飛行器呈減速下降的趨勢,處于降落姿態(tài)模式。
圖9 四旋翼飛行器降落姿態(tài)模式
四旋翼飛行器報警模式如圖10所示,觸發(fā)報警模式需要等待四旋翼飛行器一直加速上升,因此從303 s時刻開始采集數(shù)據(jù)。并記錄數(shù)據(jù)至324 s時刻,飛行高度從5 820.25 m增加至6 000.01 m,此時飛行高度大于預(yù)先設(shè)定的閾值。觸發(fā)報警,報警指示燈亮,四旋翼飛行器不再上升,上位機數(shù)據(jù)采集停止,飛行速度由381.25 km/h增加至400.01 km/h,此時飛行速度也大于預(yù)先設(shè)定的閾值,觸發(fā)報警,報警指示燈亮,不再提供加速動力,俯仰角由121.16°增加至139.54°,滾轉(zhuǎn)角由132.54°增加至149.21°。由于飛行高度和飛行速度觸發(fā)報警,上位機停止采集數(shù)據(jù),此時四旋翼飛行器處于報警模式。
圖10 四旋翼飛行器報警模式
四旋翼飛行器在四種不同的姿態(tài)監(jiān)測模式下,其飛行高度、飛行速度、俯仰角和滾轉(zhuǎn)角的實時監(jiān)測數(shù)據(jù)見表1。
表1 四旋翼飛行器姿態(tài)監(jiān)測模式下的實時數(shù)據(jù)
歷史數(shù)據(jù)回放模式如圖11所示,可以實現(xiàn)對采集到的數(shù)據(jù)進行存儲和回放,進而對歷史數(shù)據(jù)進行統(tǒng)計分析。在前面板中運行程序,點擊“開始保存”,采集結(jié)束后,打開“歷史數(shù)據(jù)回放”,即完成對歷史數(shù)據(jù)的回放。
圖11 四旋翼飛行器歷史數(shù)據(jù)回放模式
歷史數(shù)據(jù)回放模式顯示的四個參數(shù)的波形圖橫軸從第1格至第4格為起飛姿態(tài)模式,此時這四個參數(shù)均為遞增的趨勢;橫軸從第5格至10格為平穩(wěn)飛行姿態(tài)模式,此時四個參數(shù)的數(shù)值基本保持不變;橫軸從第11格至15格為降落姿態(tài)模式。此時四個參數(shù)的數(shù)值均為遞減趨勢;橫軸從橫軸第16格至19格為報警模式,此時四個參數(shù)的數(shù)值均為遞增趨勢,且飛行高度和飛行速度都超出閾值,觸發(fā)報警,數(shù)據(jù)停止采集。
實時數(shù)據(jù)進行采集的同時,監(jiān)測系統(tǒng)會以excel表格的形式自動將實時數(shù)據(jù)保存在相應(yīng)的根目錄。打開文件中的表格,四旋翼飛行器在姿態(tài)監(jiān)測模式下飛行高度、飛行速度、俯仰角和滾轉(zhuǎn)角的歷史數(shù)據(jù)如表2所示。
表2 歷史數(shù)據(jù)
在完成系統(tǒng)軟件測試后,打開保存在文件夾中的歷史數(shù)據(jù)excel表格,見表3。8組連續(xù)的歷史監(jiān)測數(shù)據(jù),飛行高度從2 696.35 m至2 895.31 m,飛行速度從186.65 km/h至194.65 km/h,俯仰角從44.96°至50.64°,滾轉(zhuǎn)角從50.96°至57.21°。
表3 四旋翼無人機飛行姿態(tài)監(jiān)測數(shù)據(jù)(8組)
為了使誤差分析更為精準,所以取多次采集到的數(shù)據(jù)的算術(shù)平均作為真實值,計算出各參數(shù)的絕對偏差和相對偏差的大小。飛行高度、飛行速度、俯仰角和滾轉(zhuǎn)角的誤差分析見表4~7。
表4 飛行高度誤差分析
表5 飛行速度誤差分析
為了使誤差分析更為精準,取多次采集到的數(shù)據(jù)的算術(shù)平均作為真實值,計算出各參數(shù)的絕對偏差的大小。飛行高度、飛行速度、俯仰角和滾轉(zhuǎn)角的絕對偏差擬合見圖13。
表6 俯仰角誤差分析
表7 滾轉(zhuǎn)角誤差分析
圖13 絕對偏差擬合圖
由圖13(a)可知,飛行高度從2 696.35 m變化至2 895.31 m時,其絕對偏差由-1.12%遞增至+1.07%;由圖13(b)可知,飛行速度從186.65 km/h變化至194.65 km/h時。其絕對偏差由-0.05%遞增+0.04%;由圖13(c)可知,俯仰角從44.96°變化至50.64°時,其絕對偏差由-0.03%遞增至至+0.03%;由圖13(d)可知,滾轉(zhuǎn)角從50.96°變化至57.21°時,其絕對偏差由-0.04%遞增至+0.04%。綜合分析,四個參數(shù)的絕對偏曲線圖差都呈遞增的趨勢,但是任一參數(shù)的相鄰兩組絕對偏差之間的差值小于0.5%,說明采集到的參數(shù)值接近于真實值。
本文研究的基于LabVIEW的四旋翼飛行器姿態(tài)監(jiān)測系統(tǒng)設(shè)計,下位機采用MPU-9250九軸傳感器和STM32F103RBT6單片機,上位機面板使用了數(shù)據(jù)顯示,波形圖表,報警指示燈等控件,利用WiFi通信 將上位機和下位機連接,下位機采集飛行高度、飛行速度、俯仰角和滾轉(zhuǎn)角,并將信號傳入上位機中。本系統(tǒng)測量范圍飛行高度:0~6 000 m;飛行速度:0~400 km/h;俯仰角:-180°~180°;滾轉(zhuǎn)角:-180°~180°。當采集到的數(shù)據(jù)值超過預(yù)先設(shè)定的閾值時,觸發(fā)報警,用戶可以在上位機子面板隨時查看和調(diào)取歷史數(shù)據(jù)。系統(tǒng)經(jīng)過測試,設(shè)定采集時間間隔1 s,完成對采集數(shù)據(jù)的記錄、顯示、保存和回放,采集數(shù)據(jù)的絕對偏差值小于0.5%,實現(xiàn)了無人機的姿態(tài)監(jiān)測,滿足了控制小型四旋翼無人機的實際需要。