摘 要:數(shù)據(jù)手套因為其逼真的人機交互方式,在虛擬現(xiàn)實中越來越廣泛地得到應(yīng)用,尤其在工業(yè)裝配、仿真手術(shù)、控制及手勢識別等多個領(lǐng)域。通過分析數(shù)據(jù)手套的數(shù)據(jù)特征,運用道格拉斯普客算法,解決了大數(shù)據(jù)量下的數(shù)據(jù)手套交互時間延遲問題。通過改進優(yōu)化數(shù)據(jù)方法,實現(xiàn)了數(shù)據(jù)在輸入設(shè)備采集時大量數(shù)據(jù)的優(yōu)化,將數(shù)據(jù)手套的數(shù)據(jù)進行優(yōu)化在數(shù)據(jù)平滑上進行了處理,得到逼真的虛擬空間虛擬手或者機械手的交互效果,改善了虛擬手在仿真時的顫抖錯誤,實現(xiàn)了穩(wěn)定的虛擬手交互效果。
關(guān)鍵詞:虛擬現(xiàn)實;數(shù)據(jù)手套;道格拉斯-普客
1 數(shù)據(jù)手套的工作方式
數(shù)據(jù)手套在虛擬現(xiàn)實系統(tǒng)中占據(jù)重要位置,是一種非常昂貴的人機接口設(shè)備,其功能可以實時在虛擬系統(tǒng)中獲取人手的各個關(guān)節(jié)空間坐標,以便在虛擬環(huán)境中再現(xiàn)人手動作,達到仿真的人機交互目的。數(shù)據(jù)手套有很多種類,以cyber數(shù)據(jù)手套為例,可以對手部主要骨骼部位的關(guān)節(jié)運動進行實時測量。系統(tǒng)可根據(jù)反向運動學(xué)原理測算出手指關(guān)節(jié)的位置,并將數(shù)據(jù)施加到相應(yīng)的骨骼上。由于慣性傳感器主要依賴無處不在的地球重力和磁場,所以捕捉服在任何地點都可以正常使用,無需事先作任何準備工作。每個傳感器將即時數(shù)據(jù)通過發(fā)射盒以藍牙或紅外方式發(fā)射,執(zhí)行標準為802.15.4 915兆赫。在計算機中,利用藍牙驅(qū)動即可直接讀取藍牙傳輸?shù)臄?shù)據(jù)。采用慣性傳感器無需鋪設(shè)特殊裝置,無需進行長時間校準。相對其它光學(xué)動作捕捉系統(tǒng),不會出現(xiàn)由標記物閉塞而造成的數(shù)據(jù)損失。
數(shù)據(jù)手套實現(xiàn)的關(guān)鍵在于各個生物器官如手指各關(guān)節(jié)的各個有效部位的彎曲、外展等測量。并形成在此基礎(chǔ)上的手勢的表現(xiàn)。完成表現(xiàn)不取決于人體手部姿態(tài)的建模,而是取決于確定傳感器測量數(shù)據(jù)和手指各關(guān)節(jié)運動姿態(tài)的對應(yīng)關(guān)系。對一個具體的數(shù)據(jù)手套應(yīng)用過程,可設(shè)由手部各彎角組成的向量f=(f1,f2,…,fn)與對應(yīng)傳感器示數(shù)組成的向量d=(d1,d2,…,dn)。顯然f和d之間存在著映射關(guān)系。數(shù)據(jù)手套的實現(xiàn)即是根據(jù)向量d,找出原映射關(guān)系的逆映射,從而表現(xiàn)出手部各部位的姿態(tài)[2]。手部軟組織的存在,是人手和機械手區(qū)別的主要差異,使得人手無法和普通的剛性桿鉸鏈相比,這就加大了問題求解的復(fù)雜性。手部某一關(guān)節(jié)的運動,不僅會作用于對應(yīng)的傳感器的示數(shù)發(fā)生變化,而且通過軟組織的相互作用,使其他的傳感器示數(shù)也發(fā)生變化。如果要求保證一定的精度,必須對求得的逆映射進行解耦計算。由于數(shù)據(jù)手套的傳感器數(shù)目較多,而且響應(yīng)的標定和解耦計算十分復(fù)雜,進行實時處理時困難較大,因此,目前數(shù)據(jù)手套的發(fā)展與應(yīng)用只是處于初級階段,還不十分成熟。
2 數(shù)據(jù)手套的數(shù)據(jù)
對于人手來說,最低要求也必須滿足每個關(guān)節(jié)有三個方向的自由度位移和三個方向自由度的旋轉(zhuǎn)。一般最少采用14個慣性傳感器,每個傳感器分別采集每塊骨骼的三個方向的自由度位移和三個方向自由度的旋轉(zhuǎn)相關(guān)數(shù)據(jù),如果虛擬現(xiàn)實的效果達到逼真的效果,就必須和PAL電視制式相同,最少達到25f/s。所以1秒鐘產(chǎn)生的數(shù)據(jù)量為:14*9*25=3150個。傳感器的數(shù)據(jù)更新頻率是100赫茲,實際產(chǎn)生的數(shù)據(jù)量遠遠大于3150個。由于反饋的效果需要實時,系統(tǒng)需要處理將大量的運動數(shù)據(jù),對于虛擬現(xiàn)實平臺來說不可能把所有的CPU資源都用來計算虛擬手,所以數(shù)據(jù)量過大一直是虛擬手亟待解決的問題。從信息傳輸單元(負責(zé)把從信息捕捉單元捕捉的手部的運動位置數(shù)據(jù)快速準確地傳輸?shù)接嬎銠C進行處理)得到的每一個關(guān)節(jié)的數(shù)據(jù)在導(dǎo)入計算機中時,以關(guān)節(jié)為基數(shù)建立一個數(shù)組,將位移、旋轉(zhuǎn)、放縮的X、Y、Z的值作為一個三行三列的數(shù)組來存儲,如圖1所示。
圖1 單個手部關(guān)節(jié)的反饋數(shù)據(jù)格式
圖中,tx,ty,tz為位移X、Y、Z的值;rx,ry,rz為旋轉(zhuǎn)的X、Y、Z值; sx,sy,sz為放縮的X、Y、Z值。另外,數(shù)據(jù)手套在人手上不能完美的附著手部,在快速運動時,指關(guān)節(jié)等處有明顯的側(cè)滑和位移。此時的數(shù)據(jù)會導(dǎo)致虛擬現(xiàn)實中的人手出現(xiàn)關(guān)節(jié)的“滑抖”現(xiàn)象。而這些數(shù)據(jù)量中間經(jīng)常會有關(guān)節(jié)“滑抖”出現(xiàn),在虛擬現(xiàn)實仿真中成為最后顯示效果的主要問題。
3 道格拉斯-普客算法優(yōu)化數(shù)據(jù)
道格拉斯-普客(Douglas-Peucker)算法是矢量曲線壓縮的經(jīng)典算法,它從整體角度考慮一條完整的線或某一確定的線段。首先選取線段的兩個端點,然后計算線段內(nèi)其余各點到連接兩端點的直線距離。如果這些點到直線的垂直距離中最大值仍小于設(shè)定閾值,則所有這些點都被舍去;若最大距離大于設(shè)定閾值,則此點保留,并以此點將線段分為兩段,對這兩段重復(fù)計算垂距,分別檢查最大垂距是否大于設(shè)定閾值。重復(fù)此過程直到?jīng)]有多余的點需要被舍去為止。
根據(jù)上述算法的核心思想,通過對比來決定哪個數(shù)據(jù)點是合理的。首先分別計算出Joint三個方向上(x,y,z)相鄰點的平均值,由于手部動作的連貫性,無論是位移還是旋轉(zhuǎn)都是應(yīng)該平滑的運動曲線,當(dāng)相鄰點的平均值有較大變化時,一般都是因為捕捉模塊在手部上的滑動造成的。在動做捕捉的起始時間,計算相鄰的數(shù)據(jù)的差,利用公式△tx(k)=△tx(k)-△tx(k-1),k為自然數(shù)。比如△tx1=tx1-tx0, △tx2=tx2-tx1。
其次根據(jù)經(jīng)驗,當(dāng)(△tx2-△tx1)∈{-T,T},其中T就是閥值[5],通過調(diào)整閥值來控制運動曲線的的優(yōu)化量。當(dāng)超出閥值規(guī)定范圍時,直接將導(dǎo)致此偏差的臨近值中最大的刪除。最大值Maxo和最小值Mixo與閥值的數(shù)據(jù)上限Zs和下限Zx進行對比,如果超過專家數(shù)據(jù)的上限,即Maxo>Zs,就直接刪除;反之,負數(shù)的值也一樣,即-Mix +1)=(tx(J+2)+tx(J+3))/2, △tx(J+2)=(tx(J+4)+tx(J+5))/2,…在控制虛擬手的時候時直接應(yīng)用△tx序列,而不是原來的tx,這樣就在得到的位移結(jié)果總量上少了一半,并且防止了滑抖現(xiàn)象。 4 結(jié)束語 本文分析了基于磁性感應(yīng)器的數(shù)據(jù)手套工作原理,并根據(jù)原理獲得了數(shù)據(jù)的采集格式和方法。對各個手關(guān)節(jié)的數(shù)據(jù)總量進行估算,并指出大量指關(guān)節(jié)數(shù)據(jù)采集中所遇到的問題和困難。通過分析指關(guān)節(jié)數(shù)據(jù),在矢量中定義了閥值,利用道格拉斯算法的精髓,將大量冗余數(shù)據(jù)進行中值濾波,使得數(shù)據(jù)量大量減少并減少了錯誤偏移,通過實驗證明在人手的虛擬仿真中效果大為改善。 參考文獻 [1]高國陽,徐超,周東翔.虛擬手的遠程控制實現(xiàn)[J].計算機工程與應(yīng)用,2011,47(23):79-83. [2]孫靜靜,焦學(xué)健,柴山.基于數(shù)據(jù)手套的虛擬手的實現(xiàn)[J].農(nóng)業(yè)裝備與車輛工程,2012(2):54-57. 作者簡介:孫浩鵬(1975-),男,漢,吉林長春人,碩士,講師,研究方向:虛擬現(xiàn)實。