丁倩雯,張 鑫
(1.無(wú)錫科技職業(yè)學(xué)院 電子技術(shù)學(xué)院,江蘇 無(wú)錫 214028;2.無(wú)錫龍翼智能科技有限公司,江蘇 南京 210000)
本文設(shè)計(jì)了基于LabVIEW的四軸飛行器姿態(tài)可視化無(wú)線監(jiān)測(cè)系統(tǒng),通過(guò)借助模擬儀表、虛擬示波器和3D動(dòng)態(tài)模型等對(duì)四軸飛行器的高度、速度、航姿、航向航跡等數(shù)據(jù)進(jìn)行分類整合后進(jìn)行實(shí)時(shí)顯示,并將其存儲(chǔ)為數(shù)據(jù)文件供后續(xù)數(shù)據(jù)分析使用.對(duì)四軸飛行器地面監(jiān)測(cè)系統(tǒng)的研究與開(kāi)發(fā),不僅有利于學(xué)習(xí)四軸飛行器的飛行控制原理與姿態(tài)融合算法,同樣有助于深入研究地面監(jiān)控站的數(shù)據(jù)處理、通信鏈路以及各個(gè)功能模塊的具體實(shí)現(xiàn)過(guò)程.本設(shè)計(jì)包括可視化姿態(tài)監(jiān)測(cè)系統(tǒng)端、姿態(tài)采集、顯示和信息處理[1].
地面監(jiān)控站通過(guò)RS-232與無(wú)線數(shù)傳電臺(tái)進(jìn)行連接,從而接收來(lái)自四軸飛行器端的遠(yuǎn)程數(shù)據(jù)包,并經(jīng)過(guò)特定的通信協(xié)議對(duì)數(shù)據(jù)包進(jìn)行解析和分割,然后通過(guò)模擬儀表和文字結(jié)合的方式進(jìn)行數(shù)據(jù)的實(shí)時(shí)顯示,將整合后的數(shù)據(jù)存儲(chǔ)為文件,以備飛行數(shù)據(jù)的回放以及調(diào)用分析.圖1為地面站監(jiān)控站的總體架構(gòu).
從功能和需求出發(fā)對(duì)四軸飛行器地面監(jiān)控站進(jìn)行開(kāi)發(fā)和設(shè)計(jì),主要功能有:
(1)地面監(jiān)控站對(duì)四軸飛行器姿態(tài)的實(shí)時(shí)監(jiān)測(cè)與顯示;
(2)對(duì)四軸飛行器航跡進(jìn)行設(shè)置與追蹤;
(3)對(duì)四軸飛行器航姿、高度、航向等數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)測(cè);
(4)對(duì)飛行數(shù)據(jù)的存儲(chǔ)與回放,方便后續(xù)處理;
(5)四軸飛行器與地面站之間的通信鏈路要在可靠的前提下實(shí)現(xiàn)高效傳輸[2];
(6)在上述功能的前提之下,進(jìn)行更加直觀的顯示,使之一目了然.
圖1 地面站監(jiān)控站的總體架構(gòu)
姿態(tài)可視化無(wú)線監(jiān)測(cè)系統(tǒng)通過(guò)數(shù)據(jù)鏈路對(duì)四軸飛行器下載的遠(yuǎn)程數(shù)據(jù)包進(jìn)行實(shí)時(shí)接收,然后通過(guò)既定的通信協(xié)議對(duì)遠(yuǎn)程數(shù)據(jù)包進(jìn)行解析,在進(jìn)行數(shù)據(jù)的分類與整合后將數(shù)據(jù)輸出實(shí)時(shí)顯示或存儲(chǔ)為文件以供調(diào)用.
本地面監(jiān)控站選用由美國(guó)3D ROBOTICS公司生產(chǎn)的Radio Telemetry數(shù)傳電臺(tái)實(shí)現(xiàn)四軸飛行器與地面站之間的遙測(cè)數(shù)據(jù)包傳輸.該數(shù)傳電臺(tái)可以實(shí)現(xiàn)四軸飛行器和地面監(jiān)控站之間的雙向通信,屬于全雙工通信,同時(shí)還有CP2102高品質(zhì)USB轉(zhuǎn)TTL芯片,通過(guò)RS232和RS485的總線實(shí)現(xiàn)雙方通信,通過(guò)接口板上的撥碼開(kāi)關(guān)對(duì)其進(jìn)行設(shè)定.
在LabVIEW中使用VISA(Virtma Instrument Sottwan Architeture)通過(guò)配置參數(shù)使用函數(shù)實(shí)現(xiàn)串口通信.串口配置函數(shù)從路徑 “數(shù)據(jù)通信→協(xié)議→串口”函數(shù)子面板里面調(diào)用[3].LabVIEW接收到來(lái)自四軸飛行器下傳的遙測(cè)數(shù)據(jù)包后,經(jīng)過(guò)數(shù)據(jù)處理過(guò)程將數(shù)據(jù)解析、分類和整合之后,發(fā)送給各個(gè)子VI進(jìn)行處理并進(jìn)行輸出顯示和存儲(chǔ).
本文選擇了基于Cortex M4 STM32F407產(chǎn)品為主控芯片,姿態(tài)采集模塊采用的是MPU-9150九軸姿態(tài)測(cè)量傳感器模塊,板上集成了3軸陀螺儀、3軸加速度、3軸電子羅盤(pán)以及氣壓計(jì)等多個(gè)傳感器.電調(diào)及電機(jī)模塊采用HY天行者40A電調(diào)及新西達(dá)A2212電機(jī)(1000KV)通過(guò)航模電池提供飛行動(dòng)力.機(jī)身下方裝有超聲波測(cè)距傳感器,隨著飛機(jī)上升,傳感器輸出脈沖的占空比會(huì)發(fā)生變化,經(jīng)過(guò)微控制器處理可以精確計(jì)算出當(dāng)前飛機(jī)距地面的距離用以保持高度.
系統(tǒng)采用意法半導(dǎo)體公司的STM32F407處理器為核心的系統(tǒng)板,綜合判定和處理各種傳感器所得信息,最終實(shí)現(xiàn)四旋翼飛行器的自主飛行.姿態(tài)調(diào)整使用IMU姿態(tài)實(shí)時(shí)測(cè)得飛行器的當(dāng)前姿態(tài)角度數(shù)據(jù),并通過(guò)PID算法進(jìn)行處理,最后轉(zhuǎn)換成為 PWM信號(hào)驅(qū)動(dòng)四個(gè)電機(jī)的轉(zhuǎn)速.
通過(guò)超聲波測(cè)距模塊精確測(cè)距,做到定高飛行.綜合使用各個(gè)傳感器,完成自主發(fā)揮的飛行動(dòng)作.整個(gè)飛行過(guò)程中通過(guò)地面監(jiān)控站實(shí)現(xiàn)人機(jī)交互,完成對(duì)四旋翼飛行器的飛行控制[4].
主體軟件設(shè)計(jì)如圖2所示,四軸飛行器采用PID與PD嵌套的串級(jí)PID算法,對(duì)四軸飛行器進(jìn)行飛行控制.
圖2 控制算法軟件實(shí)現(xiàn)
在四軸飛行器的開(kāi)發(fā)以及使用過(guò)程中,經(jīng)常會(huì)遇到需要調(diào)試PID參數(shù)的情況,例如,想要在四軸飛行器上加超聲波來(lái)實(shí)現(xiàn)定高、添加攝像頭來(lái)實(shí)現(xiàn)顏色判別和巡線飛行等,這種情況下根據(jù)所需條件對(duì)四軸飛行器的PID參數(shù)進(jìn)行調(diào)節(jié),使飛行器具有更穩(wěn)定的姿態(tài)控制系統(tǒng).
圖3 在LabVIEW 下運(yùn)行的3D模型
傳統(tǒng)調(diào)試方式是枚舉法,通過(guò)不斷地嘗試每一個(gè)參數(shù)不同的值來(lái)確定穩(wěn)定值,這種方法費(fèi)時(shí)費(fèi)力,且存在一定的危險(xiǎn)性.通過(guò)實(shí)現(xiàn)四軸飛行器實(shí)時(shí)3D姿態(tài)顯示,結(jié)合波形數(shù)據(jù)來(lái)確定飛行器在某時(shí)段內(nèi)高度、偏航角、俯仰角、橫滾角、油門(mén)等參數(shù)的變化,從而實(shí)現(xiàn)快速有效的PID參數(shù)調(diào)節(jié),具有較高的安全性.
首先我們構(gòu)建出四軸飛行器的3D模型如圖3和圖4所示,其中圖3是利用SolidWorks生成的3D結(jié)構(gòu)來(lái)構(gòu)建在LabVIEW下可以運(yùn)行的3D模型,圖4是構(gòu)建好的3D模型結(jié)構(gòu)圖.
在完成四軸飛行器的3D模型構(gòu)建之后,需要進(jìn)行對(duì)四軸飛行器的姿態(tài)信息采集以及LabVIEW對(duì)信息的處理.
我們通過(guò)使用姿態(tài)信息傳感器(MPU-9150)來(lái)獲取四軸飛行器的當(dāng)前姿態(tài)[5].MPU-9150TM是世界上第一款9軸運(yùn)動(dòng)跟蹤設(shè)備,專為低功耗、低成本和高性能的消費(fèi)電子設(shè)備(包括智能手機(jī)、平板電腦和可穿戴式傳感器)而設(shè)計(jì).
MPU-9150九軸(陀螺儀+加速器+電子羅盤(pán))MEMS運(yùn)動(dòng)感測(cè)追蹤(Motion Tracking)傳感器,是Inven Sense公司推出的全球首款整合性九軸運(yùn)動(dòng)感測(cè)追蹤(Motion Tracking)傳感器.其內(nèi)部整合了兩個(gè)芯片:一個(gè)為MPU-6050,含三軸陀螺儀、三軸加速器,內(nèi)建可處理運(yùn)動(dòng)感測(cè)融合算法的數(shù)字運(yùn)動(dòng)感測(cè)處理器(DMP:Digital Motion Processor);另一個(gè)為AK8975,是三軸數(shù)字電子羅盤(pán).采用這種集成化的運(yùn)動(dòng)感測(cè)追蹤傳感器不僅能節(jié)約空間,還可以消除在組合陀螺儀、加速器與電子羅盤(pán)時(shí)軸差的問(wèn)題.
STM32F407與MPU-9150通過(guò)內(nèi)置的主 IIC接口實(shí)現(xiàn)連接,來(lái)獲取四軸飛行器當(dāng)前的姿態(tài)數(shù)據(jù).通過(guò)調(diào)用 Inven Sense公司提供的運(yùn)動(dòng)處理函數(shù)庫(kù),運(yùn)用DMP,直接實(shí)現(xiàn)9軸數(shù)據(jù)的融合演算后歐拉角的輸出.
通過(guò)MPU-9150結(jié)合DMP運(yùn)算將原始數(shù)據(jù)轉(zhuǎn)換輸出的四元數(shù)是程序設(shè)置的 q30格式,在進(jìn)行四元數(shù)矩陣運(yùn)算換算成歐拉角計(jì)算之前,需要將四元數(shù)除以 2 的 30 次冪轉(zhuǎn)換為浮點(diǎn)數(shù).
STM32通過(guò) I2C_Init函數(shù)將與 MPU-9150連接的主IIC 接口啟用,然后調(diào)用MPU-9150_Init函數(shù),進(jìn)行MPU-9150的初始化操作,之后通過(guò)InvenSense公司提供的 MPU-9150嵌入式運(yùn)動(dòng)驅(qū)動(dòng)庫(kù)設(shè)置 DMP 所用傳感器、 FIFO、采樣率等一系列操作,將 DMP功能使能,使能成功以后,就可以通過(guò)函數(shù) DMP的數(shù)據(jù)獲取函數(shù)來(lái)獲得原始數(shù)據(jù)轉(zhuǎn)換后的歐拉角(Yaw、Pitch、Roll).
圖4 3D結(jié)構(gòu)構(gòu)建圖
void usart1_labview_report(u8 fun,u8*data,u8 len)
{
u8 send_buf[32];
u8 i;
if(len>28)return;
send_buf[len+3]=0;
send_buf[0]=0X88;
send_buf[1]=fun;
send_buf[2]=len;
for(i=0;i for(i=0;i for(i=0;i } void usart1_report_imu(short aacx,short aacy,short aacz,short gyrox,short gyroy,short gyroz,short roll,short pitch,short yaw) { u8 tbuf[28]; u8 i; for(i=0;i<28;i++)tbuf[i]=0; tbuf[0]=(aacx>>8)&0XFF; tbuf[1]=aacx&0XFF; tbuf[2]=(aacy>>8)&0XFF; tbuf[3]=aacy&0XFF; tbuf[4]=(aacz>>8)&0XFF; tbuf[5]=aacz&0XFF; tbuf[6]=(gyrox>>8)&0XFF; tbuf[7]=gyrox&0XFF; tbuf[8]=(gyroy>>8)&0XFF; tbuf[9]=gyroy&0XFF; tbuf[10]=(gyroz>>8)&0XFF; tbuf[11]=gyroz&0XFF; tbuf[19]=(roll>>8)&0XFF; tbuf[20]=roll&0XFF; tbuf[21]=(pitch>>8)&0XFF; tbuf[22]=pitch&0XFF; tbuf[23]=(yaw>>8)&0XFF; tbuf[24]=yaw&0XFF; usart1_labview_report(0XAF,tbuf,28); } 上述函數(shù)的功能用于上報(bào)數(shù)據(jù)給上位機(jī)軟件,利用上位機(jī)軟件顯示傳感器波形,以及3D姿態(tài)顯示,有助于更好地調(diào)試MPU-9150.其中,usart1_LabVIEW_report函數(shù)用于將數(shù)據(jù)打包、計(jì)算校驗(yàn),然后上報(bào)給匿名四軸上位機(jī)軟件.usart1_report_imu函數(shù)用于上報(bào)加速度、陀螺儀和電子羅盤(pán)的原始數(shù)據(jù)以及融合后的姿態(tài)數(shù)據(jù),可用于波形顯示以及3D姿態(tài)顯示. LabVIEW在接收到四軸飛行器下傳的姿態(tài)數(shù)據(jù)包之后,通過(guò)下圖5的數(shù)據(jù)解析和模型控制實(shí)現(xiàn)3D模型飛行器姿態(tài)的實(shí)時(shí)顯示. 在四軸飛行器實(shí)際飛行的情況下,通過(guò)在線測(cè)試的方法實(shí)現(xiàn)各項(xiàng)數(shù)據(jù)的顯示.測(cè)試結(jié)果如圖6,各項(xiàng)數(shù)據(jù)顯示正常,可以通過(guò)串口通信實(shí)現(xiàn)四軸飛行器的3D姿態(tài)顯示、數(shù)據(jù)顯示及回放波形化處理,驗(yàn)證了四軸飛行器可視化無(wú)線監(jiān)測(cè)系統(tǒng)的可行性[6]. 圖5 四軸飛行器3D模型顯示控制 圖6 監(jiān)測(cè)系統(tǒng)操作界面 本文主要結(jié)合四軸飛行器在開(kāi)發(fā)過(guò)程中遇到的主客觀因素影響數(shù)據(jù)操作的問(wèn)題,通過(guò)LabVIEW開(kāi)發(fā)平臺(tái)實(shí)現(xiàn)了四軸飛行器姿態(tài)可視化無(wú)線監(jiān)測(cè)系統(tǒng)的基本功能,方便四軸飛行器在開(kāi)發(fā)與應(yīng)用中的數(shù)據(jù)操作與功能實(shí)現(xiàn). 通過(guò)MPU-9150實(shí)現(xiàn)四軸飛行器的姿態(tài)信息采集與融合后,MCU將整合后的數(shù)據(jù)通過(guò)無(wú)線數(shù)傳電臺(tái)上傳至LabVIEW姿態(tài)可視化監(jiān)測(cè)系統(tǒng).調(diào)用LabVIEW里面便捷的VISA函數(shù)庫(kù),實(shí)現(xiàn)LabVIEW姿態(tài)可視化監(jiān)測(cè)系統(tǒng)與四軸飛行器之間的串口通信,并制定雙方的通信協(xié)議,實(shí)現(xiàn)數(shù)據(jù)的穩(wěn)定可靠傳輸,通過(guò)對(duì)遙測(cè)數(shù)據(jù)的解析,將相關(guān)信息在監(jiān)測(cè)系統(tǒng)界面進(jìn)行顯示.在LabVIEW中引用SolidWorks中生成的模型結(jié)構(gòu),設(shè)計(jì)出四軸飛行器在LabVIEW中可運(yùn)行的3D模型,通過(guò)3D模型對(duì)四軸飛行器的姿態(tài)進(jìn)行實(shí)時(shí)顯示.在LabVIEW中進(jìn)行數(shù)據(jù)文件的操作,通過(guò)數(shù)據(jù)庫(kù)和文本文檔相結(jié)合的方式,實(shí)現(xiàn)了對(duì)四軸飛行器下傳的遠(yuǎn)程數(shù)據(jù)包的存儲(chǔ)與整理,以便用于相關(guān)參數(shù)的數(shù)據(jù)分析.4.2 四軸飛行器姿態(tài)監(jiān)測(cè)系統(tǒng)在線測(cè)試
5 結(jié)論