本發(fā)明涉及虛擬現(xiàn)實(shí)技術(shù)領(lǐng)域,尤其是一種在虛擬現(xiàn)實(shí)中用于控制手勢(shì)交互的裝置。
背景技術(shù):
在移動(dòng)端VR技術(shù)即虛擬現(xiàn)實(shí)模擬技術(shù)中,用手與VR內(nèi)容進(jìn)行交互可以讓人們感受到更為真實(shí)更為方便的體驗(yàn)。而現(xiàn)有的虛擬現(xiàn)實(shí)手勢(shì)控制裝置一般包括微型處理器和通過(guò)微型處理器內(nèi)部的控制單元連接的帶有傳感器的數(shù)據(jù)采集件,微型處理器通過(guò)無(wú)線連接的信息終端,數(shù)據(jù)采集件固定在手上通過(guò)傳感器對(duì)手掌手臂等動(dòng)作進(jìn)行傳輸數(shù)據(jù)的采集。為了達(dá)到更高的仿真程度,常用多個(gè)傳感器對(duì)多個(gè)關(guān)節(jié)一一對(duì)應(yīng)采集信息,這樣既浪費(fèi)傳感器,造成設(shè)備復(fù)雜成本高,而且會(huì)出現(xiàn)另一個(gè)問(wèn)題,即一個(gè)傳感器采集得到3個(gè)自由度的信息,而整個(gè)手勢(shì)的自由度少于所有關(guān)節(jié)數(shù)量的3倍,這樣就造成部分自由度的重復(fù)取值,如果手臂和手指全是理想圓柱體,重復(fù)取的值會(huì)相同,但實(shí)際上手臂及手指并不是理想圓柱體,因而在控制過(guò)程中出現(xiàn)位置錯(cuò)誤、角度錯(cuò)誤或移動(dòng)速度與現(xiàn)實(shí)不符,導(dǎo)致反饋到信息終端的手勢(shì)動(dòng)作失真,影響使用效果。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的問(wèn)題是提供一種虛擬現(xiàn)實(shí)手勢(shì)控制裝置,以解決現(xiàn)有虛擬現(xiàn)實(shí)手勢(shì)控制裝置用多個(gè)傳感器產(chǎn)生采集數(shù)據(jù)失真的問(wèn)題。
為了解決上述問(wèn)題,本發(fā)明的技術(shù)方案是:本虛擬現(xiàn)實(shí)手勢(shì)控制裝置包括微型處理器和通過(guò)所述微型處理器內(nèi)部的控制單元連接的帶有傳感器的數(shù)據(jù)采集件,所述微型處理器通過(guò)無(wú)線連接的信息終端,所述數(shù)據(jù)采集件設(shè)有分別貼于人體上臂和前臂及手掌處的三個(gè)傳感器,所述傳感器為MPU6050加速度傳感器或MPU6500加速度傳感器,所述MPU6050加速度傳感器或MPU6500加速度傳感器輸出的數(shù)據(jù)為四元數(shù)形式的動(dòng)態(tài)數(shù)據(jù);
所述控制單元內(nèi)包括有以下步驟:控制單元接收到貼于上臂的傳感器的其中一個(gè)自由度的數(shù)據(jù)和貼于前臂的傳感器的該自由度的數(shù)據(jù)存在差異,將上臂的傳感器的該自由度數(shù)據(jù)設(shè)定為初始默認(rèn)值;B、取上臂的傳感器的該自由度數(shù)據(jù)在時(shí)間T內(nèi)的變化值S1,取前臂的傳感器的該自由度數(shù)據(jù)在時(shí)間T內(nèi)的變化值S2;比較S1和S2,當(dāng)S1大于S2,上臂的傳感器的該自由度數(shù)據(jù)變化過(guò)快,失真,停止記錄上臂的傳感器的該自由度的動(dòng)態(tài)數(shù)據(jù),停止時(shí)上臂的傳感器的該自由度數(shù)據(jù)為K1,停止時(shí)的前臂的傳感器的該自由度數(shù)據(jù)為K2;C、設(shè)置時(shí)間T1,使K1的值以T1為時(shí)間間隔向K2的值變化,取K1與K2的差值除以時(shí)間T,得到在時(shí)間上的一元函數(shù),以時(shí)間T2的周期按照此函數(shù)取值,并將取得的值賦給K1,此時(shí)K2的值一直在變化,直到K1變化的值等于K2時(shí),停止;D、繼續(xù)取上臂的傳感器的該自由度數(shù)據(jù),重復(fù)步驟B和步驟C;E、控制單元接收到貼于前臂的傳感器的其中一個(gè)自由度的數(shù)據(jù)和貼于手掌的傳感器的該自由度的數(shù)據(jù)存在差異,將前臂的傳感器的該自由度數(shù)據(jù)設(shè)定為初始默認(rèn)值;將步驟B、步驟C和步驟D中的上臂的傳感器替換為前臂的傳感器,前臂的傳感器替換為手掌的傳感器,依次按步驟B、步驟C和步驟D進(jìn)行重復(fù)操作。
在上述技術(shù)方案中,更為具體的技術(shù)方案是:步驟B和步驟C中的TI在0.01秒至0.6秒范圍內(nèi)取值;T2在0.05秒至0.1秒的范圍內(nèi)取值。
進(jìn)一步的:步驟B和步驟C中的TI=0.5秒,T2=0.1秒。
由于采用了上述技術(shù)方案,本發(fā)明與現(xiàn)有技術(shù)相比具有如下有益效果:
1、本虛擬現(xiàn)實(shí)手勢(shì)控制裝置采用MPU6000系列加速度傳感器代替普通的傳感器采集數(shù)據(jù),可以通過(guò)該傳感器四元數(shù)形式的動(dòng)態(tài)數(shù)據(jù),大大提高了仿真程度和靈敏度,而且可以將工作中數(shù)據(jù)更新速度從60hz提高到100hz;
2、本裝置中控制單元中的控制步驟,解決了人體手臂不是理想圓柱體的缺陷,避免了姿態(tài)錯(cuò)誤累積到手掌上出現(xiàn)的較大誤差,結(jié)合三個(gè)特定位置的傳感器設(shè)置,將9個(gè)自由度中重復(fù)的2個(gè)自由度經(jīng)過(guò)數(shù)據(jù)平滑算法得到該自由度上變化更平穩(wěn)且姿態(tài)更接近下級(jí)可動(dòng)部分手臂的姿態(tài)數(shù)據(jù),使整個(gè)模擬體驗(yàn)更逼真;本裝置只用了3個(gè)傳感器,控制裝置的結(jié)構(gòu)簡(jiǎn)單,制造成本不高,既節(jié)約了傳感器資源,又可以使模擬體驗(yàn)更逼真,且使用輕便靈活。
附圖說(shuō)明
圖1是本發(fā)明的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例作進(jìn)一步詳述:
如圖1所示的虛擬現(xiàn)實(shí)手勢(shì)控制裝置,包括微型處理器1,通過(guò)微型處理器1內(nèi)部的控制單元2連接的帶有傳感器5的數(shù)據(jù)采集件4,這里的微型處理器1通過(guò)有線連接數(shù)據(jù)采集件4,微型處理器1通過(guò)無(wú)線連接的信息終端3,數(shù)據(jù)采集件4設(shè)有分別貼于人體上臂和前臂及手掌處的三個(gè)傳感器5,傳感器5為MPU6050加速度傳感器,這里的MPU6050加速度傳感器在有些文獻(xiàn)中也稱為MPU6000加速度傳感器,MPU6050加速度傳感器輸出的數(shù)據(jù)為四元數(shù)形式的動(dòng)態(tài)數(shù)據(jù);可以通過(guò)該傳感器四元數(shù)形式的動(dòng)態(tài)數(shù)據(jù),大大提高了仿真程度和靈敏度,而且可以將工作中數(shù)據(jù)更新速度從60hz提高到100hz。
控制單元內(nèi)包括有以下步驟:
A、控制單元接收到貼于上臂的傳感器的其中一個(gè)自由度的數(shù)據(jù)和貼于前臂的傳感器的該自由度的數(shù)據(jù)存在差異,將上臂的傳感器的該自由度數(shù)據(jù)設(shè)定為初始默認(rèn)值。
B、取上臂的傳感器的該自由度數(shù)據(jù)在時(shí)間T內(nèi)的變化值S1,取前臂的傳感器的該自由度數(shù)據(jù)在時(shí)間T內(nèi)的變化值S2;比較S1和S2,當(dāng)S1大于S2,上臂的傳感器的該自由度數(shù)據(jù)變化過(guò)快,失真,停止記錄上臂的傳感器的該自由度的動(dòng)態(tài)數(shù)據(jù),停止時(shí)上臂的傳感器的該自由度數(shù)據(jù)為K1,停止時(shí)的前臂的傳感器的該自由度數(shù)據(jù)為K2。
C、設(shè)置時(shí)間T1=0.5秒,使K1的值以T1為時(shí)間間隔向K2的值變化,取K1與K2的差值除以時(shí)間T,得到在時(shí)間上的一元函數(shù),以T2=0.1秒的周期按照此函數(shù)取值,并將取得的值賦給K1,此時(shí)K2的值一直在變化,直到K1變化的值等于K2時(shí),停止;該步驟相當(dāng)于上臂傳感器的數(shù)據(jù)停下來(lái)根據(jù)函數(shù)去追趕前臂傳感器的數(shù)據(jù)。
D、繼續(xù)取上臂的傳感器的該自由度數(shù)據(jù),重復(fù)步驟B和步驟C。
E、控制單元接收到貼于前臂的傳感器的一個(gè)自由度數(shù)據(jù)和貼于手掌的傳感器的該自由度的數(shù)據(jù)存在差異,將前臂的傳感器的該自由度數(shù)據(jù)設(shè)定為初始默認(rèn)值;將步驟B、步驟C和步驟D中的上臂的傳感器替換為前臂的傳感器,前臂的傳感器替換為手掌的傳感器,依次按步驟B、步驟C和步驟D進(jìn)行重復(fù)操作。步驟A、B、C、D的這個(gè)方法在前臂到手掌部分也使用一次,結(jié)果避免了姿態(tài)錯(cuò)誤累積到手掌上出現(xiàn)的較大誤差。
上述步驟解決了人體手臂不是理想圓柱體的缺陷,避免了姿態(tài)錯(cuò)誤累積到手掌上出現(xiàn)的較大誤差,結(jié)合三個(gè)特定位置的傳感器設(shè)置,將9個(gè)自由度中重復(fù)的2個(gè)自由度經(jīng)過(guò)數(shù)據(jù)平滑算法得到該自由度上變化更平穩(wěn)且姿態(tài)更接近下級(jí)可動(dòng)部分手臂的姿態(tài)數(shù)據(jù),使整個(gè)模擬體驗(yàn)更逼真;本裝置只用了3個(gè)傳感器,整個(gè)裝置結(jié)構(gòu)不復(fù)雜,制造成本不高,使用輕便靈活。
在其他實(shí)施例中,傳感器還可以是可輸出四元數(shù)動(dòng)態(tài)數(shù)據(jù)的MPU6500加速度傳感器,步驟B和步驟C中的時(shí)間T1還可以是0.01秒到0.6秒范圍中的任何一個(gè)時(shí)間數(shù)值,時(shí)間T2還可以是0.05秒至0.1秒范圍中的任何一個(gè)時(shí)間數(shù)值。