馬駿峰,韓 鵬,2
MAJunfeng1,HAN Peng1,2
1.重慶郵電大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,重慶 400065
2.重慶市科學(xué)技術(shù)研究院,重慶 401123
1.College of Computer Science and Technology,Chongqing University of Posts and Telecommunications,Chongqing 400065,China
2.ChongqingAcademy of Science and Technology,Chongqing 401123,China
隨著科技的發(fā)展,像智能電視、電腦這樣的大屏智能終端在人們的生活中越來越普及。為桌面電腦設(shè)計(jì)的WIMP(Window,Icon,Menu,Pointer)交互方式存在了四十多年,但是傳統(tǒng)光電鼠標(biāo)對(duì)載體面的依賴使其在某些情況下給用戶與計(jì)算機(jī)的交互帶來不便。傳統(tǒng)紅外遙控器不可擴(kuò)展,交互不便已經(jīng)不能滿足用戶與大屏終端的交互需求。便攜式智能終端如智能手機(jī)、智能平板等擁有觸摸屏、陀螺儀、加速度計(jì)、磁強(qiáng)計(jì)等微電子機(jī)械系統(tǒng)(Micro-Electro-Mechanical System,MEMS)傳感器。豐富的傳感器和與人密切的相關(guān)性使得便攜式智能終端為人機(jī)交互帶來了新的途徑。本文基于具有MEMS傳感器的便攜式智能終端設(shè)計(jì)空中鼠標(biāo)系統(tǒng),實(shí)現(xiàn)用戶與大屏智能終端的交互。
在目前的研究中,空中鼠標(biāo)的實(shí)現(xiàn)主要有三種:基于陀螺儀的空中鼠標(biāo)[1-2]、基于攝像頭的空中鼠標(biāo)[3]和基于聲波的空中鼠標(biāo)[4]?;跀z像頭的空中鼠標(biāo)將用戶的肢體行為轉(zhuǎn)化為圖像,對(duì)圖像進(jìn)行處理從而轉(zhuǎn)化為用戶的交互意圖,實(shí)現(xiàn)用戶與終端的交互[3]?;诼暡ǖ目罩惺髽?biāo)將用戶的聲音轉(zhuǎn)化為用戶的交互意圖,實(shí)現(xiàn)用戶與終端的交互[4];這兩種交互方式對(duì)使用環(huán)境有一定的要求且設(shè)備成本比較高,不利于普及?;谕勇輧x的空中鼠標(biāo)將陀螺儀輸出的角速度數(shù)值進(jìn)行積分得到設(shè)備的實(shí)時(shí)傾角,然后將傾角值的變化映射為所要控制的終端上的坐標(biāo)變化,從而實(shí)現(xiàn)對(duì)指針的控制[1-2]。文獻(xiàn)[5-6]使用十分普及的智能手機(jī)來實(shí)現(xiàn)空中鼠標(biāo),對(duì)使用智能手機(jī)作為空中鼠標(biāo)的交互方式進(jìn)行了研究,雖然文中對(duì)陀螺儀的輸出值進(jìn)行處理,但是并沒有對(duì)陀螺儀的累計(jì)誤差進(jìn)行修正,其設(shè)計(jì)的系統(tǒng)在長時(shí)間運(yùn)行的情況下會(huì)受到較大的影響,從而影響用戶的交互體驗(yàn)。
低精度的MEMS陀螺儀會(huì)隨著工作時(shí)間的增加而積累誤差,從而使整個(gè)系統(tǒng)的精度下降。傳感器數(shù)據(jù)的處理一直是研究的熱點(diǎn),文獻(xiàn)[7]提出了一種用于MEMS陀螺儀的自適應(yīng)預(yù)測補(bǔ)償模型,使用支持向量機(jī)(Support Vector Machine,SVM)和 χ2統(tǒng)計(jì)學(xué)的知識(shí),實(shí)驗(yàn)證明該方法在系統(tǒng)冷啟動(dòng)100 s后可使陀螺儀進(jìn)入高精度工作狀態(tài),該方法可以有效地改善陀螺儀的累積誤差,但是計(jì)算量較大。文獻(xiàn)[8]使用卡爾曼濾波(Kalman Filter,KF)對(duì)MEMS陀螺儀進(jìn)行濾波,能夠較好地濾除信號(hào)中的噪聲,但是KF需要經(jīng)過初期的過渡階段達(dá)到穩(wěn)定狀態(tài),且需要不停地進(jìn)行迭代運(yùn)算消耗大量系統(tǒng)資源?;パa(bǔ)濾波(Complementary Filter,CF)融合陀螺儀、加速度計(jì)[9]或者磁強(qiáng)計(jì)[10]的數(shù)據(jù),可以有效改善陀螺儀漂移的問題?;パa(bǔ)濾波計(jì)算量小,但是需要其他數(shù)據(jù)來參與計(jì)算。文獻(xiàn)[11]使用啟發(fā)式漂移消減法(Heuristic Drift Reduction,HDR)對(duì)線性加速進(jìn)行處理取得了良好的效果。文獻(xiàn)[12-13]使用HDR算法對(duì)陀螺儀的隨機(jī)漂移進(jìn)行處理,結(jié)果證明在參數(shù)選擇合理的情況下HDR算法可以有效地減弱陀螺儀漂移,但是在陀螺儀運(yùn)動(dòng)情況多變的情況下參數(shù)難以選擇。
便攜式智能終端具有多種MEMS傳感器,但是其精度有限,本文以搭載MEMS慣性傳感器的便攜式智能終端為載體設(shè)計(jì)空中鼠標(biāo)系統(tǒng)。由于系統(tǒng)載體的MEMS傳感器精度有限,需要通過濾波算法處理傳感器的輸出數(shù)據(jù)來提高系統(tǒng)的精度和穩(wěn)定性。卡爾曼濾波在跟蹤系統(tǒng)時(shí),需要經(jīng)過濾波初期的過渡階段達(dá)到穩(wěn)定狀態(tài)之后才能具有較好的濾波效果,而用戶在使用本文空中鼠標(biāo)系統(tǒng)時(shí)交互意圖經(jīng)常發(fā)生變化,卡爾曼濾波算法并不能迅速地跟蹤載體的運(yùn)動(dòng)狀態(tài)。互補(bǔ)濾波直接對(duì)傳感器數(shù)據(jù)進(jìn)行處理,不需要經(jīng)過過渡階段,更適合本文設(shè)計(jì)的空中鼠標(biāo)系統(tǒng),但是傳統(tǒng)的互補(bǔ)濾波在濾波的過程中會(huì)引入陀螺儀的漂移誤差。因此,本文提出并使用改進(jìn)的HDRCF(Heuristic Drift Reduction Complementary Filter)對(duì)傳感器數(shù)據(jù)進(jìn)行處理。HDRCF濾波使用互補(bǔ)濾波融合陀螺儀、加速度計(jì)和磁強(qiáng)計(jì)的輸出,針對(duì)互補(bǔ)濾波中引入的陀螺儀誤差,在互補(bǔ)濾波部分引入HDR算法,并對(duì)載體的狀態(tài)進(jìn)行判斷,將靜止?fàn)顟B(tài)下陀螺儀的輸出作為誤差從而動(dòng)態(tài)地更新HDR算法的補(bǔ)償系數(shù),有效地減小陀螺儀數(shù)據(jù)的誤差。實(shí)驗(yàn)表明改進(jìn)后的算法有效地克服了陀螺儀漂移,提高了空中鼠標(biāo)系統(tǒng)的定位精度和穩(wěn)定性,設(shè)計(jì)的空中鼠標(biāo)克服了傳統(tǒng)鼠標(biāo)對(duì)二維桌面的依賴,可以在空中自由使用。
便攜式智能終端具有陀螺儀、加速度計(jì)、磁強(qiáng)計(jì)等MEMS傳感器,通過這些MEMS傳感器可以獲取到載體的姿態(tài)角。用戶的動(dòng)作會(huì)使載體在空中的姿態(tài)角發(fā)生變化,空中鼠標(biāo)就是將這些姿態(tài)角的角度變化進(jìn)行映射,從而實(shí)現(xiàn)用戶與終端的交互。本文使用Android智能手機(jī)作為載體,設(shè)計(jì)實(shí)現(xiàn)空中鼠標(biāo)功能。在這里給出Android智能手機(jī)的MEMS傳感器的世界坐標(biāo)系,如圖1所示,其中,ψ為航向角,?為橫滾角,θ為俯仰角。
圖1 Android手機(jī)MEMS傳感器世界坐標(biāo)系
本系統(tǒng)默認(rèn)為用戶將屏幕朝上,如圖1所示,當(dāng)用戶手持載體繞Z軸轉(zhuǎn)動(dòng)時(shí),ψ角發(fā)生變化;當(dāng)用戶手持載體繞X軸轉(zhuǎn)動(dòng)時(shí),θ角發(fā)生變化;當(dāng)用戶手持載體繞Y軸轉(zhuǎn)動(dòng)時(shí),?角發(fā)生變化。為了便于操作,在交互設(shè)計(jì)方面,本文將ψ角的變化映射為桌面指針的左右移動(dòng),其中ψ角的增加為向左偏移,ψ角的減小為向右偏移;θ角的變化映射為桌面指針的上下移動(dòng),其中θ角的增加為向上偏移,θ角的減小為向下偏移;?角的變化映射為放大、縮小操作,其中?角的增加為縮小,?角的減小為放大;定義左鍵、右鍵和鼠標(biāo)滾輪來實(shí)現(xiàn)完整的鼠標(biāo)操作。
本文系統(tǒng)使用Client/Server架構(gòu),客戶端通過無線局域網(wǎng)與服務(wù)端進(jìn)行通信。系統(tǒng)的設(shè)計(jì)框架如圖2所示。
圖2 空中鼠標(biāo)系統(tǒng)框架
為了減少系統(tǒng)的資源消耗量,本文系統(tǒng)中設(shè)計(jì)一個(gè)按鈕來監(jiān)聽用戶是否使用空中鼠標(biāo)功能,來開啟、關(guān)閉傳感器的監(jiān)聽器。當(dāng)系統(tǒng)監(jiān)聽到用戶的使用請(qǐng)求時(shí),開始監(jiān)聽傳感器數(shù)據(jù)。系統(tǒng)的交互流程如下:
(1)監(jiān)聽使用者是否點(diǎn)擊交互按鈕。
(2)如果用戶沒有點(diǎn)擊則返回(1),否則監(jiān)測手機(jī)移動(dòng)狀態(tài)。
(3)獲取用戶在X、Y、Z坐標(biāo)軸上移動(dòng)時(shí)陀螺儀、加速度計(jì)、磁強(qiáng)計(jì)的讀數(shù)。將陀螺儀的讀數(shù)進(jìn)行積分得到姿態(tài)角1,并對(duì)加速度計(jì)和磁強(qiáng)計(jì)的讀數(shù)進(jìn)行解算得到姿態(tài)角2;之后將姿態(tài)角1和姿態(tài)角2通過HDRCF濾波,得到載體在空中的姿態(tài)角。
(4)將載體的空中姿態(tài)角進(jìn)行計(jì)算映射成為用戶的交互數(shù)據(jù),用自定義的格式進(jìn)行封裝通過無線局域網(wǎng)傳輸?shù)椒?wù)器端。
(5)服務(wù)器端進(jìn)行數(shù)據(jù)解析,控制指針移動(dòng)。
便攜式智能終端的空中姿態(tài)角解算是本系統(tǒng)的核心部分,姿態(tài)角解算的準(zhǔn)確與否直接關(guān)系到系統(tǒng)的準(zhǔn)確性和穩(wěn)定性。陀螺儀輸出的是角速度,不需要外界的參考,具有良好的動(dòng)態(tài)性,對(duì)物體的瞬時(shí)角度變化非常敏感。但是,低精度的MEMS陀螺儀的度數(shù)包含很多誤差,主要包括:零偏誤差、溫度漂移和隨機(jī)噪聲,這會(huì)影響系統(tǒng)的交互體驗(yàn)。其中,零偏誤差是陀螺儀開始工作時(shí)會(huì)產(chǎn)生的一個(gè)隨機(jī)的誤差;溫度漂移是陀螺儀在工作的過程中隨著工作時(shí)間的增加而積累的誤差;隨機(jī)噪聲則是外界環(huán)境對(duì)陀螺儀測量的干擾。如圖3為陀螺儀在靜止?fàn)顟B(tài)下以50 Hz的采樣頻率,采樣10 min,X、Y、Z軸輸出的角速度數(shù)據(jù)。從圖3中可以看出X軸在靜止?fàn)顟B(tài)下有-0.019°/s左右的零偏誤差,由于溫度漂移和噪聲的干擾會(huì)有0.001°/s左右的幅度,且在運(yùn)行10 min后誤差有進(jìn)一步增大的趨勢(shì);Y軸在靜止?fàn)顟B(tài)下有0.024°/s左右的零偏誤差,在運(yùn)行過程中誤差變化比較穩(wěn)定;Z軸在靜止?fàn)顟B(tài)下有0.027°/s左右的零偏誤差,且在運(yùn)行過程中誤差變化不穩(wěn)定。為了提高系統(tǒng)的用戶體驗(yàn),本文系統(tǒng)對(duì)陀螺儀的零偏誤差和溫度漂移進(jìn)行處理。
圖3 靜止?fàn)顟B(tài)下陀螺儀輸出值
陀螺儀在靜止?fàn)顟B(tài)下的輸出數(shù)據(jù)能夠很好地反映出陀螺儀的零偏誤差。本文系統(tǒng)在空中鼠標(biāo)功能啟動(dòng)前取N個(gè)陀螺儀的輸出數(shù)據(jù),求其平均值得到零度偏差的均值,然后將之后陀螺儀的輸出數(shù)據(jù)減去零度偏差的均值得到去除零偏誤差后的陀螺儀輸出。零偏誤差ωzero如式(1)所示,第i次去除零偏誤差后的陀螺儀輸出ωgyro,i如式(2)所示。
其中,ωj為載體靜止?fàn)顟B(tài)下陀螺儀第i次采樣的輸出,ωorg,i為用戶使用本文系統(tǒng)進(jìn)行交互時(shí),陀螺儀第i次采樣的輸出值,則手機(jī)繞坐標(biāo)軸轉(zhuǎn)動(dòng)的角度θt如式(3)所示。
其中,Δt為陀螺儀采樣周期,θi-1為前一時(shí)刻的角度值。
低精度的陀螺儀產(chǎn)生的溫度漂移誤差,可以通過加速度計(jì)和磁強(qiáng)計(jì)解算的角度與陀螺儀解算的角度進(jìn)行融合[14],從而減小陀螺儀產(chǎn)生的誤差,提高系統(tǒng)精度。
二維的加速度傾角測量如圖4所示,當(dāng)物體做加速運(yùn)動(dòng)時(shí),物體的傾斜角度α如式(4)所示。
圖4 二維加速度傾角測量
同理,在三維空間中載體靜止時(shí),加速度計(jì)的輸出為[0,0,g],當(dāng)載體處于任意姿態(tài)時(shí),若加速度計(jì)的輸出為[ax,ay,az],則載體的橫滾角?如式(5)所示,俯仰角θ如式(6)所示。
在得到橫滾角?和俯仰角θ的情況下,當(dāng)三軸磁強(qiáng)計(jì)的輸出為[mx,my,mz]時(shí),航向角ψ如式(7)所示。
陀螺儀對(duì)瞬間的角度變化比較敏感,但是長時(shí)間工作之后會(huì)積累溫度漂移,使結(jié)算角度具有較大誤差。而加速計(jì)和磁強(qiáng)計(jì)對(duì)瞬間的角度變化不敏感,但是在長時(shí)間工作之后仍能保持穩(wěn)定。文獻(xiàn)[15-17]利用這些特性,使用互補(bǔ)濾波,克服陀螺儀的累積誤差,使其設(shè)計(jì)的系統(tǒng)能夠在較長時(shí)間內(nèi)穩(wěn)定運(yùn)行。當(dāng)前時(shí)刻經(jīng)過互補(bǔ)濾波之后輸出的姿態(tài)角θcom,i如式(8)所示。
其中,θcom,i-1為上一采樣周期經(jīng)過濾波之后輸出的姿態(tài)角,ωgyro,i為陀螺儀輸出的角速度值,θam為加速度計(jì)和磁強(qiáng)計(jì)獲得的載體姿態(tài)角,Δt為采樣周期,τ為低通濾波系數(shù)。
Borenstein等[11]提出的啟發(fā)式漂移消減法(HDR)首先判斷物體是否處于靜止或者沿直線運(yùn)動(dòng)的狀態(tài),若是則把陀螺儀的非0輸出視為隨機(jī)漂移,并對(duì)漂移進(jìn)行補(bǔ)償。文獻(xiàn)[11-12]使用HDR算法對(duì)陀螺儀數(shù)據(jù)進(jìn)行處理,均取得了良好的效果,其算法框圖如圖5所示。第i次采樣時(shí),經(jīng)過HDR算法處理后陀螺儀的輸出值wgyro,i如式(9)所示。
圖5 HDR算法框圖
其中,ωtrue,i為載體的真實(shí)角速度,εo為零偏誤差,εd,i為第i次采樣時(shí)的隨機(jī)誤差。在濾除零偏誤差后,陀螺儀輸出,如式(10)所示。
第i次采樣時(shí)載體的姿態(tài)角ψi,如式(11)所示。
其中,ψi-1為上一采樣周期的載體的姿態(tài)角,T為采樣周期。
經(jīng)HDR系統(tǒng)處理后第i次采樣的角速度wi,如式(12)所示。
其中,Ii為第i次采樣的補(bǔ)償因子,其表達(dá)式如式(13)所示,其中ic為固定常量,在參數(shù)選取合適的情況下,系統(tǒng)在穩(wěn)態(tài)時(shí),通過積分將收斂于0,即信號(hào)可以無偏地跟蹤系統(tǒng)的漂移誤差,在理想情況下I≈-εd。通常ic由陀螺儀偏移均值決定[17],而在動(dòng)態(tài)系統(tǒng)中并不能準(zhǔn)確地獲得陀螺儀偏移均值。傳統(tǒng)的互補(bǔ)濾波能夠有效地提高系統(tǒng)的動(dòng)態(tài)特性,同時(shí)使系統(tǒng)在靜止或勻速運(yùn)動(dòng)時(shí)保持穩(wěn)定,但是并沒有對(duì)陀螺儀的溫度漂移誤差進(jìn)行補(bǔ)償。在本文系統(tǒng)中,當(dāng)載體處于靜止或者勻速運(yùn)動(dòng)狀態(tài)時(shí),系統(tǒng)輸出主要為加速度計(jì)和磁強(qiáng)計(jì)解算的角度,此時(shí)將陀螺儀的輸出作為誤差,并對(duì)ic進(jìn)行更新。當(dāng)載體運(yùn)動(dòng)時(shí),使用更新后的ic對(duì)陀螺儀的漂移誤差進(jìn)行補(bǔ)償,從而提高系統(tǒng)的精度。算法框圖如圖6所示,改進(jìn)后的算法只需要在通過互補(bǔ)濾波之后對(duì)載體狀態(tài)進(jìn)行判斷,更新。改進(jìn)后的算法比互補(bǔ)濾波在增加了有限的算法時(shí)間復(fù)雜度的情況下,有效地對(duì)引入的陀螺儀漂移誤差進(jìn)行了補(bǔ)償,提高了系統(tǒng)在靜態(tài)時(shí)的穩(wěn)定性,動(dòng)態(tài)時(shí)的靈敏性。
圖6 HDRCF算法框圖
為了驗(yàn)證算法性能,本文設(shè)計(jì)了靜態(tài)實(shí)驗(yàn)和動(dòng)態(tài)實(shí)驗(yàn)。在靜態(tài)實(shí)驗(yàn)部分,將內(nèi)置陀螺儀、加速度計(jì)、磁強(qiáng)計(jì)等MEMS傳感器的便攜式智能終端靜置在桌面上,取濾波系數(shù)τ=0.98的互補(bǔ)濾波,HDR算法中固定常量為陀螺儀漂移誤差的期望,在系統(tǒng)處于初始狀態(tài)時(shí),取值為系統(tǒng)的零偏誤差ωzero,綜合考慮系統(tǒng)精度和處理器計(jì)算負(fù)荷,取采樣頻率為50 Hz[5],分別讀取陀螺儀輸出的原始數(shù)據(jù)和經(jīng)過本文算法后的輸出數(shù)據(jù),并進(jìn)行仿真。
從圖7中可以看出,在靜止陀螺儀的原始數(shù)據(jù)經(jīng)過積分之后解算出來的角度并不能保持穩(wěn)定。在運(yùn)行一段時(shí)間之后,Pitch角、Roll角和Yaw角都有不同程度的偏移和抖動(dòng)。經(jīng)過本文改進(jìn)的HDRCF濾波之后,角度曲線較原曲線變得平滑,且有效地降低了抖動(dòng)振幅。
圖7 靜止?fàn)顟B(tài)下濾波前后輸出對(duì)比
從表1中改進(jìn)前后的數(shù)據(jù)對(duì)比可以看出,經(jīng)過本文的改進(jìn),在靜止?fàn)顟B(tài)下系統(tǒng)的輸出較陀螺儀的原始輸出,漂移均值降低78.2%,抖動(dòng)的最大值和最小值也有所減小,有效地降低了靜止?fàn)顟B(tài)下的抖動(dòng)??梢姳疚牡腍DRCF算法能夠在載體處于靜止?fàn)顟B(tài)下,準(zhǔn)確地反映載體的運(yùn)動(dòng)狀態(tài)。
表1 靜止?fàn)顟B(tài)下濾波前后數(shù)據(jù)對(duì)比?。ā悖?/p>
在動(dòng)態(tài)實(shí)驗(yàn)部分,為了驗(yàn)證算法在載體運(yùn)動(dòng)時(shí)的性能,本文將載體放置在水平桌面上并繞Z進(jìn)行幅度為90°左右的周期運(yùn)動(dòng)。將三維角度傳感器MPU6050模塊附著于本文系統(tǒng)載體上面,將其輸出數(shù)據(jù)作為真實(shí)值。如圖8為陀螺儀積分后輸出的載體姿態(tài)角、經(jīng)過CF濾波處理后輸出的載體姿態(tài)角、經(jīng)過本文HDRCF濾波后輸出的載體姿態(tài)角與MPU6050模塊輸出的載體姿態(tài)角對(duì)比。從圖中可以看出,陀螺儀在短時(shí)間內(nèi)可以很好地反應(yīng)載體的運(yùn)動(dòng)狀態(tài),但是長時(shí)間運(yùn)行會(huì)有較大的累計(jì)誤差。由于陀螺儀溫度漂移的存在,在系統(tǒng)運(yùn)行一段時(shí)間后,由陀螺儀積分得到的載體角度數(shù)據(jù)在載體恢復(fù)初始位置時(shí)有10°左右的誤差。在系統(tǒng)最終停止工作時(shí),角度誤差約為3.2°。經(jīng)過互補(bǔ)濾波處理后,在系統(tǒng)最終停止工作時(shí),角度誤差約為1.2°,互補(bǔ)濾波有效地減小了系統(tǒng)最終停止工作時(shí)的誤差,但是由于引入了陀螺儀的漂移誤差,與MPU6050模塊的輸出相比,在運(yùn)動(dòng)過程中仍有較大誤差。經(jīng)過本文HDRCF濾波處理后在系統(tǒng)最終停止工作時(shí),角度誤差約為0.9°,與經(jīng)CF濾波處理的角度數(shù)相比,在運(yùn)動(dòng)過程中的角度誤差有效地降低了。以MPU6050模塊的輸出為真實(shí)值,分別對(duì)陀螺儀積分后輸出的載體姿態(tài)角、經(jīng)過CF濾波處理后輸出的載體姿態(tài)角、經(jīng)過本文HDRCF濾波后輸出的載體姿態(tài)角求其結(jié)算角度的誤差,并對(duì)誤差進(jìn)行分析。如表2為Yaw角的誤差分析表,從表中可以看出,陀螺儀積分后的輸出角度的誤差均值約為-6.722 3°,這是由于陀螺儀存在溫度漂移導(dǎo)致的。經(jīng)過CF濾波處理后的輸出角度誤差均值約為-3.470 3°,有效地降低了陀螺儀誤差的均值,但是由于在互補(bǔ)濾波過程中引入了陀螺儀的漂移誤差,導(dǎo)致方差增大。經(jīng)過本文HDRCF濾波后的輸出角度誤差均值約為-2.501 2°,有效地降低了陀螺儀誤差的均值,誤差方差約為58.300 6,較陀螺儀原始輸出誤差均值降低63%,方差降低31%,這是由于改進(jìn)后的算法能夠有效地濾除陀螺儀的漂移誤差,從而提高系統(tǒng)的輸出精度。從圖中可以看出,經(jīng)過本文改進(jìn)的HDRCF處理后波形更接近載體的真實(shí)運(yùn)動(dòng)趨勢(shì),能夠在載體處于運(yùn)動(dòng)狀態(tài)下準(zhǔn)確地反映載體的運(yùn)動(dòng)狀態(tài)。
圖8 結(jié)算角度對(duì)比
表2 運(yùn)動(dòng)狀態(tài)下Yaw角濾波前后誤差對(duì)比
為了展示系統(tǒng)的使用效果,本文以安卓智能平板(2.2 GHz,2 GB RAM,16 GB ROM)為客戶端載體,便攜式筆記本電腦(i5-3230M 2.6 GHz,6 GB RAM)為服務(wù)端載體,設(shè)計(jì)程序展示系統(tǒng)效果??蛻舳丝刂平缑嫒鐖D9所示,服務(wù)端界面如圖10所示。
客戶端分別向服務(wù)端發(fā)送陀螺儀的原始數(shù)據(jù)和經(jīng)過本文改進(jìn)的HDRCF濾波算法濾波之后的傳感器數(shù)據(jù);服務(wù)端接收到數(shù)據(jù)之后將其映射為鼠標(biāo)指針操作,同時(shí)使用軟件捕獲鼠標(biāo)運(yùn)動(dòng)軌跡。用戶手持載體沿直線運(yùn)動(dòng)一段距離之后沿半徑逐漸縮小的圓周運(yùn)動(dòng),捕獲的空中鼠標(biāo)軌跡如圖11所示,其中曲線1為未經(jīng)過處理的陀螺儀實(shí)現(xiàn)的空中鼠標(biāo)運(yùn)動(dòng)軌跡,曲線2為使用本文基于HDRCF濾波實(shí)現(xiàn)的空中鼠標(biāo)。如圖中曲線1所示,未經(jīng)過處理的陀螺儀實(shí)現(xiàn)的空中鼠標(biāo)載體在運(yùn)動(dòng)的過程中,捕獲的鼠標(biāo)指針軌跡有明顯的抖動(dòng),在用戶運(yùn)動(dòng)軌跡半徑變小之后由于抖動(dòng)的存在,指針運(yùn)動(dòng)軌跡已經(jīng)不能準(zhǔn)確地反映出用戶的運(yùn)動(dòng)軌跡,在實(shí)際使用過程中,當(dāng)用戶使用空中鼠標(biāo)系統(tǒng)實(shí)現(xiàn)細(xì)微操作時(shí),空中鼠標(biāo)系統(tǒng)將不能友好地反映出用戶的交互意圖;如圖中曲線2所示,使用改進(jìn)后的HDRCF濾波之后,有效地對(duì)陀螺儀的隨機(jī)漂移進(jìn)行了補(bǔ)償,捕獲的空中鼠標(biāo)指針軌跡比較平滑,在實(shí)現(xiàn)細(xì)微操作方面明顯優(yōu)于曲線1。
圖9 客戶端
圖10 服務(wù)端
圖11 鼠標(biāo)軌跡
便攜式智能終端與人們的生活聯(lián)系得越來越緊密,它不再只是一個(gè)單純的通訊、娛樂工具。在Virtual Reality和Augmented Reality高速發(fā)展的今天,便攜式智能終端具有更加廣闊的應(yīng)用前景。本文基于具有多種MEMS傳感器的便攜式智能終端設(shè)計(jì)了空中鼠標(biāo)系統(tǒng),相較于使用特定硬件的空中鼠標(biāo)系統(tǒng),不需要額外的硬件投入,可以有效地節(jié)約成本,利于普及,且充分利用智能終端搭載的MEMS傳感器使用HDRCF濾波進(jìn)行處理,有效地對(duì)陀螺儀的誤差進(jìn)行處理,提高系統(tǒng)的精度,實(shí)現(xiàn)的空中鼠標(biāo)系統(tǒng)運(yùn)行穩(wěn)定,能夠準(zhǔn)確地反映出用戶的交互意圖,具有良好的實(shí)用性。下一步,將進(jìn)一步完善空中鼠標(biāo)技術(shù),針對(duì)不同的應(yīng)用場景設(shè)計(jì)相應(yīng)的交互方式,并結(jié)合交互的特點(diǎn)進(jìn)行優(yōu)化。
參考文獻(xiàn):
[1]Lee S,Nam G J,Chae J,et al.Two-dimensional position detection system with MEMS accelerometers,readout circuitry,and microprocessor for padless mouse applications[J].IEEE Transactions on Very Large Scale Integration(VLSI) Systems,2005,13(10):1167-1178.
[2]江朝強(qiáng),石睿,王云飛.基于MEMS指環(huán)式低功耗無線三維鼠標(biāo)的設(shè)計(jì)[J].自動(dòng)化與儀表,2013,28(9):12-14.
[3] ?ap?n T,Haro A,Setlur V,et al.Camera-based virtual environment interaction on mobile devices[C]//Proceedings of International Symposium on Computer and Information Sciences.Berlin Heidelberg:Springer,2006:765-773.
[4]Yun S,Chen Y C,Qiu L.Turning a mobile device into a mouse in the air[C]//Proceedings of the 13th Annual International Conference on Mobile Systems,Applications,and Services,2015:15-29.
[5]張鳳軍,程龍,劉佳升,等.基于智能手機(jī)的三維交互技術(shù)研究[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2013,25(1):15-25.
[6]段建雷,韓鵬,樊愛軍,等.基于手機(jī)慣性傳感器空中鼠標(biāo)的優(yōu)化與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2015,32(12):226-230.
[7]Yao N,Liu Z,Qian F.Self-adaptive prediction and compensation model for high-accuracy MEMS gyro’s startup drift[C]//Proceedings of the 4th International Conference on Intelligent Control and Information Processing(ICICIP),2013:379-383.
[8]錢華明,夏全喜,闕興濤,等.基于Kalman濾波的MEMS陀螺儀濾波算法[J].哈爾濱工程大學(xué)學(xué)報(bào),2010,31(9):1217-1221.
[9]閻世梁,王銀玲,張華.基于改進(jìn)互補(bǔ)濾波器的低成本微小飛行器姿態(tài)估計(jì)方法[J].計(jì)算機(jī)應(yīng)用,2013,33(7):2078-2082.
[10]劉詩斌,陳露蘭,張韋,等.一種基于磁傳感器的MEMS陀螺標(biāo)定方法[J].傳感技術(shù)學(xué)報(bào),2013,26(12):1700-1703.
[11]Borenstein J,Ojeda L.Heuristic reduction of gyro drift in gyro-based vehicle tracking[C]//Proceedings of SPIE Defense,Security,and Sensing,2009.
[12]曾慶軍,劉慧婷,張明.基于HDR的陀螺儀隨機(jī)漂移分析與處理[J].江蘇大學(xué)學(xué)報(bào):自然科學(xué)版,2016,37(3):32-33.
[13]錢華明,夏全喜,安笛,等.啟發(fā)式算法在MEMS陀螺儀數(shù)據(jù)處理中的應(yīng)用[J].傳感器與微系統(tǒng),2010,29(3):109-111.
[14]史智寧,韓波,徐玉,等.基于重力場自適應(yīng)互補(bǔ)濾波的無人直升機(jī)水平姿態(tài)估計(jì)方法[J].傳感技術(shù)學(xué)報(bào),2009,22(7):993-996.
[15]Shen X,Yao M,Jia W,et al.Adaptive complementary filter using fuzzy logic and simultaneous perturbation stochastic approximation algorithm[J].Measurement,2012,45(5):1257-1265.
[16]Chang-Siu E,Tomizuka M,Kong K.Time-varying complementary filtering for attitude estimation[C]//Proceedings of 2011 IEEE/RSJ International Conference on Intelligent Robots and Systems,2011:2474-2480.
[17]孫金秋,游有鵬,傅忠云.基于共軛梯度法和互補(bǔ)濾波相結(jié)合的姿態(tài)解算算法[J].傳感技術(shù)學(xué)報(bào),2014,27(4):524-528.