焦金輝,勾 燦,孫玉國
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
?
基于安卓的物體姿態(tài)與位置信息遠(yuǎn)程監(jiān)測系統(tǒng)
焦金輝,勾 燦,孫玉國
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
針對汽車、船舶等交通工具的遠(yuǎn)程異地實(shí)時(shí)監(jiān)測問題,文中利用安卓智能手機(jī)中的MEMS傳感器與GPS芯片實(shí)現(xiàn)了物體姿態(tài)與位置信息的遠(yuǎn)程采集。采用基于四元數(shù)的互補(bǔ)濾波融合算法對MEMS加速度計(jì)與陀螺儀信號進(jìn)行數(shù)據(jù)融合,獲得物體運(yùn)動(dòng)姿態(tài)角;通過3G/4G網(wǎng)絡(luò)將姿態(tài)角數(shù)據(jù)與位置信息實(shí)時(shí)發(fā)送到遠(yuǎn)程服務(wù)器,服務(wù)器端采用Java語言多線程編程。實(shí)驗(yàn)表明,互補(bǔ)濾波后橫滾角、俯仰角精度為0.6°,航向角精度為1.0°,系統(tǒng)運(yùn)行可靠,可實(shí)現(xiàn)多個(gè)運(yùn)動(dòng)物體的姿態(tài)與位置信息遠(yuǎn)程監(jiān)測。
安卓手機(jī);MEMS傳感器;GPS;互補(bǔ)濾波;多線程編程
對移動(dòng)物體的姿態(tài)與位置信息的實(shí)時(shí)獲取在安全監(jiān)測、防盜設(shè)計(jì)等領(lǐng)域都有著重要的應(yīng)用價(jià)值[1-4]。傳統(tǒng)監(jiān)測系統(tǒng)普遍存在復(fù)雜度高,運(yùn)行維護(hù)費(fèi)用較高的問題[5-8]。因此設(shè)計(jì)具有低成本、靈活性強(qiáng)的遠(yuǎn)程監(jiān)測系統(tǒng)是有必要的。
本文利用智能手機(jī)內(nèi)部的MEMS傳感器和GPS芯片獲取移動(dòng)物體的加速度、角速度、經(jīng)緯度、海拔、運(yùn)動(dòng)速度等參數(shù),引入基于四元數(shù)的互補(bǔ)濾波算法對獲取的加速度與陀螺儀角速度進(jìn)行數(shù)據(jù)融合,從而獲得物體運(yùn)動(dòng)姿態(tài)角。利用3G/4G網(wǎng)絡(luò)將上述信息實(shí)時(shí)發(fā)送到遠(yuǎn)端服務(wù)器。遠(yuǎn)端服務(wù)器采用Java語言編程,通過多線程技術(shù)可同時(shí)監(jiān)測多個(gè)運(yùn)動(dòng)目標(biāo),并可調(diào)取百度地圖進(jìn)行實(shí)時(shí)搜索。
移動(dòng)物體姿態(tài)與位置信息遠(yuǎn)程監(jiān)測系統(tǒng)可實(shí)時(shí)監(jiān)測多個(gè)運(yùn)動(dòng)目標(biāo)各自的多項(xiàng)運(yùn)動(dòng)參數(shù),該系統(tǒng)以Android操作系統(tǒng)為參數(shù)采集客戶端開發(fā)平臺,采用Java語言編寫服務(wù)器GUI界面,利用3G/4G移動(dòng)網(wǎng)絡(luò)實(shí)現(xiàn)客戶端與服務(wù)器端遠(yuǎn)程通信。其系統(tǒng)架構(gòu)示意圖如圖1所示。
圖1 系統(tǒng)架構(gòu)示意圖
本文通過獲取手機(jī)中的加速度傳感器、磁力傳感器和陀螺儀參數(shù),經(jīng)基于四元數(shù)互補(bǔ)濾波的數(shù)據(jù)融合算法融合后得到物體姿態(tài)角,與傳統(tǒng)互補(bǔ)濾波算法相比,直接采用了加速度傳感器與磁力傳感器的數(shù)據(jù),避免了對姿態(tài)估計(jì)進(jìn)行重構(gòu),且運(yùn)算量低,結(jié)構(gòu)簡單易調(diào)試。
2.1 數(shù)據(jù)融合與互補(bǔ)濾波算法
2.1.1 由陀螺儀計(jì)算姿態(tài)角
根據(jù)四元數(shù)理論,先定義慣性坐標(biāo)系到載體坐標(biāo)系的姿態(tài)四元數(shù)[11-14],根據(jù)四元數(shù)乘法可得四元數(shù)向量與姿態(tài)矩陣的關(guān)系,解四元數(shù)微分方程,得到陀螺儀姿態(tài)角為
(1)
2.1.2 由加速度、磁力傳感器計(jì)算姿態(tài)角
單獨(dú)的加速度傳感器只能獲取橫滾角和俯仰角,航向角需要結(jié)合磁力傳感器來獲取。選取北東地坐標(biāo)系(n系)作為導(dǎo)航坐標(biāo)系,載體縱軸OXb,橫軸OYb和豎軸OZb構(gòu)成右手坐標(biāo)系作為載體坐標(biāo)系(b系),可得到n系到b系的方向余弦矩陣[12]。之后通過導(dǎo)航坐標(biāo)系(n系)到載體坐標(biāo)系(b系)的重力加速度關(guān)系轉(zhuǎn)換式可得橫滾角和俯仰角分別為
(2)
(3)
其中,φm為載體縱軸相對于磁北的航向角,而載體的航向角是相對于地理北方向的,地理北與磁北之間存在一個(gè)磁偏角Δφ。因此由加速度傳感器與磁力傳感器所得的載體航向角為
φ=φm+Δφ
(4)
2.1.3 互補(bǔ)濾波器融合算法
互補(bǔ)濾波器是一種基于一階微分系統(tǒng)的數(shù)據(jù)融合算法,可有效融合低頻位置量測信息和高頻速率量測信息[15]。 設(shè)置互補(bǔ)濾波器傳遞函數(shù),取一階低通濾波器傳遞函數(shù)為
(5)
則高通濾波器傳遞函數(shù)為
綜上所述,小學(xué)階段作為學(xué)生學(xué)習(xí)英語的開端,對學(xué)生的發(fā)展有重要作用。在教學(xué)過程中,教師要將學(xué)生作為課堂主體,根據(jù)學(xué)生的發(fā)展特點(diǎn)制定多元化的教學(xué)方式,激發(fā)學(xué)生的學(xué)習(xí)興趣,調(diào)動(dòng)學(xué)生的積極性,促使學(xué)生主動(dòng)地投入到英語課堂中來,進(jìn)而有效提升課堂教學(xué)效率。
(6)
(7)
式中,ya表示加速度和磁力傳感器輸出值;yb為陀螺輸出值;μa、μb為量測噪聲;b為陀螺零漂值。由式(10)可以看出,互補(bǔ)濾波器對重力場、磁場觀測量具有低通濾波作用,能夠平滑加速度計(jì)與磁傳感器獲取值,降低高頻振動(dòng)干擾;而對陀螺儀輸出噪聲具有高通濾波作用,同時(shí)能夠抑制其零點(diǎn)漂移,提高姿態(tài)角的長期精度。
2.2 位置信息獲取
物體的位置信息是通過手機(jī)中自帶的GPS芯片獲取的。Android系統(tǒng)為GPS提供了強(qiáng)大的支持管理服務(wù)[9]。GPS功能主要通過3個(gè)核心API實(shí)現(xiàn):LocationManager,LocationProvider和Location。LocationManager類用于產(chǎn)生GPS定位相關(guān)的服務(wù)、對象,通過調(diào)用Context的getSystemService()方法來獲取。LocationProvider(定位提供者)對象就是定位組件的抽象表示,通過LocationProvider可以獲取該定位組件的相關(guān)信息。Location是一個(gè)代表位置信息的抽象類。GPS通過3個(gè)核心API獲取位置信息的步驟為:
(1)獲取系統(tǒng)的LocationManager對象;
(2)使用LocationManager,通過指定LocationProvider來獲取定位信息,定位信息由Location對象來表示;
(3)通過指定LocationProvider獲取經(jīng)度、緯度、海拔、速度等定位信息。
3.1 手機(jī)終端與服務(wù)器端數(shù)據(jù)通信
移動(dòng)物體的運(yùn)動(dòng)姿態(tài)角與位置信息需通過無線網(wǎng)絡(luò)才能保障實(shí)時(shí)遠(yuǎn)程傳輸,所以系統(tǒng)采用移動(dòng)3G/4G通信方式,并以TCP/IP協(xié)議作為其通信協(xié)議。基于TCP/IP的Socket通信流程如圖2所示。
圖2 基于TCP/IP的Socket通信基本流程圖
首先服務(wù)器與客戶端初始化本地通信端口,等待客戶端發(fā)送連接請求。當(dāng)服務(wù)器端監(jiān)聽到客戶端連接請求后,與客戶端建立連接,進(jìn)而數(shù)據(jù)傳輸。服務(wù)器端通過Java語言中的ServerSocket類建立服務(wù)端程序,并指定被監(jiān)聽的通信端口。通過創(chuàng)建用戶列表與線程池來分別存放處理客戶端連接的Socket對象與通信線程。多個(gè)客戶端可創(chuàng)建多個(gè)線程負(fù)責(zé)服務(wù)端與不同客戶端的數(shù)據(jù)傳輸[9]。
另外,3G/4G網(wǎng)絡(luò)與常用內(nèi)網(wǎng)服務(wù)器通信還需進(jìn)行內(nèi)網(wǎng)穿透。本系統(tǒng)中使用域名解析軟件花生殼將本地服務(wù)器內(nèi)網(wǎng)IP映射到公網(wǎng)IP上。手機(jī)移動(dòng)網(wǎng)絡(luò)連接公網(wǎng)IP地址與端口就可以實(shí)時(shí)向服務(wù)器傳輸數(shù)據(jù)。
3.2 服務(wù)器端GUI設(shè)計(jì)
系統(tǒng)服務(wù)器監(jiān)控端界面主要包含兩個(gè)部分:數(shù)據(jù)監(jiān)控與地圖搜索。數(shù)據(jù)監(jiān)控部分用來實(shí)時(shí)顯示安卓智能手機(jī)傳來的移動(dòng)物體運(yùn)動(dòng)參數(shù)與位置信息。地圖搜索部分可用來搜索具體地理位置。
服務(wù)器監(jiān)控界面的開發(fā)主要運(yùn)用了Java基礎(chǔ)庫中的Swing組件,利用JFrame類創(chuàng)建窗體,JTextArea控件顯示接收到的數(shù)據(jù)。地圖部分是通過JavaScript語言調(diào)用百度地圖API,需要嵌入在SWT的Browser組件中才能進(jìn)行動(dòng)態(tài)顯示??赏ㄟ^AWT組件中Canvas類創(chuàng)建一個(gè)shell窗口,將Browser嵌入到shell窗口中,便可在監(jiān)控界面上動(dòng)態(tài)顯示地圖。
物體姿態(tài)角的測試實(shí)驗(yàn)在JZJ-1型準(zhǔn)直儀平臺上進(jìn)行。將手機(jī)固定于旋轉(zhuǎn)平臺上,校準(zhǔn)零點(diǎn)位置后,連接服務(wù)器端,使平臺分別沿空間3個(gè)方向旋轉(zhuǎn)可得手機(jī)姿態(tài)角采樣值與標(biāo)定值誤差關(guān)系,如表1所示。
表1 姿態(tài)角采樣值與標(biāo)定值誤差關(guān)系
提取手機(jī)運(yùn)動(dòng)時(shí)姿態(tài)角參數(shù)繪制曲線,如圖3所示。圖中(1)號曲線為加速度獲取初始值;(2)號曲線陀螺儀角度值;(3)號曲線為互補(bǔ)濾波融合后角度值。由圖可知:手機(jī)獲取的加速度值中含有大量噪聲,轉(zhuǎn)化為角度后曲線不平滑,毛刺現(xiàn)象嚴(yán)重。陀螺儀獲取角速度經(jīng)積分轉(zhuǎn)化后的角度會(huì)隨時(shí)間積累產(chǎn)生零漂現(xiàn)象。互補(bǔ)濾波融合后的姿態(tài)角有效改善了加速度中的噪聲,使曲線更為平滑,同時(shí)解決了陀螺儀角度值的零漂問題。
圖3 互補(bǔ)濾波效果曲線圖
以汽車為測試對象,系統(tǒng)服務(wù)器端運(yùn)行效果如圖4所示。通過內(nèi)網(wǎng)映射后的服務(wù)器端公網(wǎng)IP地址為61.174.40.245,端口號為14 709,但由于花生殼軟件本身的設(shè)計(jì),不同客戶端與服務(wù)器端通信成功后,IP地址均會(huì)被顯示為當(dāng)前服務(wù)器內(nèi)網(wǎng)IP,僅端口號不同。
圖4 服務(wù)器端數(shù)據(jù)采集界面
本文基于Android平臺設(shè)計(jì)了一種物體運(yùn)動(dòng)姿態(tài)與位置信息遠(yuǎn)程監(jiān)測系統(tǒng)。利用智能手機(jī)內(nèi)部的MEMS傳感器和GPS芯片獲取物體運(yùn)動(dòng)參數(shù)與位置信息,并通過基于四元數(shù)的互補(bǔ)濾波融合處理得到姿態(tài)角。借助3G/4G通信網(wǎng)絡(luò)將上述信息實(shí)時(shí)發(fā)送到指定遠(yuǎn)程服務(wù)器端。通過對系統(tǒng)進(jìn)行實(shí)驗(yàn)驗(yàn)證表明,系統(tǒng)運(yùn)行效果良好,采集數(shù)據(jù)精確度較高,在車輛、船舶安全監(jiān)控、防盜管理等方面具有實(shí)際的應(yīng)用價(jià)值,且成本低、靈活性好。
[1] 葉斌,李玉榕,陳建國,等.基于Android系統(tǒng)的KOA運(yùn)動(dòng)監(jiān)測系統(tǒng)研究[J].儀器儀表學(xué)報(bào),2014,35(12):7-11.
[2] 王維虎,劉延申.湖泊岸邊移動(dòng)物體的定位技術(shù)研究[J].華中師范大學(xué)學(xué)報(bào),2014,48(4):516-518.
[3] 徐巧玲.基于GPS的汽車運(yùn)動(dòng)參數(shù)檢測與估算[J].宿州學(xué)院學(xué)報(bào),2014,29(9):76-78.
[4] 李金明,黃建華,李泉.移動(dòng)物體定位算法研究[J].蘭州石化職業(yè)技術(shù)學(xué)院學(xué)報(bào),2014,14(1):27-29.
[5] 張佐經(jīng),吳旭光.基于GPS和GPRS模塊的車載導(dǎo)航定位系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測量與控制,2008,16(7):997-1000.
[6] 相浩,呼克佑.Java語言程序設(shè)計(jì)[M].北京:人民郵電出版社,2014.
[7] 李金鳳,王慶輝,劉曉梅,等.基于MEMS慣性傳感器的行人航位推算系統(tǒng)[J].傳感器與微系統(tǒng),2014,33(12):85-87.
[8] 倪紅軍.基于Android平臺的移動(dòng)終端GPS研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(5):199-201.
[9] 郭少豪.創(chuàng)意之鑰:Android手機(jī)交互應(yīng)用開發(fā)[M].北京:中國鐵道出版社,2011.
[10] 任強(qiáng),周升良,孫玉國.基于MEMS的角位置無線隨動(dòng)控制系統(tǒng)設(shè)計(jì)[J].傳感器與微系統(tǒng),2013,32(9):122-124.
[11] 米剛,田增山,金悅,等.基于MIMU和磁力計(jì)的姿態(tài)更新算法研究[J].傳感技術(shù)學(xué)報(bào),2015,28(1):44-48.
[12] 丁君,趙忠華. AHRS航姿解算中的兩種濾波方法的比較研究[J].計(jì)算機(jī)仿真,2013,30(9):60-64.
[13] 劉興川,張盛,李麗哲.基于四元數(shù)的MARG傳感器姿態(tài)測量算法[J].清華大學(xué)學(xué)報(bào):自然科學(xué)版,2012(5):627-631.
[14] 李世光,王文文,申夢茜,等.基于STM32的姿態(tài)測量系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2016,39(9):13-14.
[15] 呂印新.基于MEMS/GPS的微型無人機(jī)組合航資系統(tǒng)研究[D].南京:南京航空航天大學(xué),2013.
Remote Monitoring System for Object Attitude and Position Information Based on Android
JIAO Jinhui,GOU Can,SUN Yuguo
(School of Optical-Electrical and Computer Engineering,University of Shanghai for Science and Technology,Shanghai 200093,China)
Aiming at the problem of the remote real-time monitoring for vehicles, ships and other means of transportation, this paper used the MEMS sensor and GPS chip of Android smart phone to achieve the remote collection of the object's attitude and position information. Using complementary filter based on quaternion fusion algorithm for MEMS accelerometer and gyroscope signal data fusion to obtain motion attitude angle; The attitude angle data and position information were transmitted to the remote server through 3G / 4G network and the server used java multi thread programming. The experimental results show that the Roll angle and Pitch angle accuracy is 0.6 degree, and the Yaw angle accuracy is 1.0 degree. The system is reliable, and it can realize the remote monitoring of the attitude and position information of multiple moving objects.
android mobile phone;MEMS sensors;GPS; complementary filter;multi thread programming
2016- 10- 28
焦金輝(1991-),男,碩士研究生。研究方向:嵌入式系統(tǒng)開發(fā)。 勾燦(1992-),女,碩士研究生。研究方向:測試計(jì)量技術(shù)。孫玉國(1973-),男,博士,副教授。研究方向:精密儀器。
10.16180/j.cnki.issn1007-7820.2017.08.031
TN929.53;TP873+.2
A
1007-7820(2017)08-113-04