一種九軸傳感器融合的用戶姿態(tài)測(cè)算和虛擬現(xiàn)實(shí)隨動(dòng)方法
【專利摘要】本發(fā)明公開(kāi)了一種九軸傳感器融合的用戶姿態(tài)測(cè)算和虛擬現(xiàn)實(shí)隨動(dòng)方法,該方法基于頭戴式虛擬現(xiàn)實(shí)設(shè)備,包括傳感器采集步驟、姿態(tài)測(cè)算步驟以及顯示步驟,其中:傳感器采集步驟:通過(guò)三軸陀螺儀,三軸加速計(jì)、三軸磁力計(jì)采集九軸數(shù)據(jù);姿態(tài)測(cè)算步驟,顯示步驟:通過(guò)視角矩陣調(diào)整虛擬世界景象。使用本發(fā)明的技術(shù)方案,獲得以下有益效果:在用戶靜止時(shí),令傳感器給出的數(shù)據(jù)為零,沒(méi)有噪聲;充分利用不同傳感器的數(shù)據(jù),得到正確的用戶姿態(tài);虛擬世界的視角無(wú)延遲、實(shí)時(shí)地隨著用戶的姿態(tài)改變而變化;保證用戶能從任何角度觀察虛擬現(xiàn)實(shí)世界。
【專利說(shuō)明】
一種九軸傳感器融合的用戶姿態(tài)測(cè)算和虛擬現(xiàn)實(shí)隨動(dòng)方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及虛擬現(xiàn)實(shí)領(lǐng)域,具體是一種九軸傳感器融合的用戶姿態(tài)測(cè)算和虛擬現(xiàn) 實(shí)隨動(dòng)方法。
【背景技術(shù)】
[0002] 在虛擬現(xiàn)實(shí)領(lǐng)域中,通常使用頭戴式虛擬現(xiàn)實(shí)設(shè)備來(lái)進(jìn)行虛擬世界的顯示、用戶 交互,頭戴式虛擬現(xiàn)實(shí)設(shè)備有許多種不同的解決方案,包括使用智能手機(jī)配備相應(yīng)的虛擬 現(xiàn)實(shí)盒子,或者使用集成了移動(dòng)操作系統(tǒng)的一體機(jī)盒子等。不論使用哪種解決方案,頭戴式 虛擬現(xiàn)實(shí)設(shè)備均包含顯示模塊、用戶交互模塊、傳感器模塊,使用傳感器模塊分析用戶在現(xiàn) 實(shí)世界中的姿態(tài)并應(yīng)用到顯示模塊,使用戶通過(guò)顯示模塊看到對(duì)應(yīng)的虛擬景象。對(duì)傳感器 數(shù)據(jù)的校準(zhǔn)、分析以及最終應(yīng)用于虛擬世界的結(jié)果的準(zhǔn)確性和實(shí)時(shí)性對(duì)用戶的體驗(yàn)有著決 定性的影響。
[0003] 現(xiàn)有技術(shù)一般是使用陀螺儀傳感器數(shù)據(jù)來(lái)計(jì)算出用戶頭部在三個(gè)歐拉角的軸上 旋轉(zhuǎn)的角度,并將旋轉(zhuǎn)的角度應(yīng)用到虛擬世界的視角調(diào)整中,使虛擬世界可以隨著用戶頭 部的轉(zhuǎn)動(dòng)而在顯示模塊中呈現(xiàn)不同角度的景象。其中,虛擬世界的視角依賴于視角矩陣,包 含了用戶在虛擬世界中的位置、視線方向和上方向的信息?,F(xiàn)有的調(diào)整視角的方法一般是 使用歐拉角對(duì)視角矩陣進(jìn)行旋轉(zhuǎn)變換。歐拉角:用來(lái)確定定點(diǎn)轉(zhuǎn)動(dòng)剛體位置的3個(gè)一組獨(dú)立 角參量,由章動(dòng)角Θ、旋進(jìn)角(即進(jìn)動(dòng)角)φ和自轉(zhuǎn)角j組成,為歐拉首先提出而得名。
[0004] 現(xiàn)有技術(shù)使用的傳感器未經(jīng)校準(zhǔn)會(huì)出現(xiàn)零漂現(xiàn)象,在用戶靜止時(shí)仍存在一些非零 的噪聲,從而導(dǎo)致虛擬世界的視角小幅度移動(dòng)。噪聲:信號(hào)處理中出現(xiàn)的由于設(shè)備精度、外 界影響等原因產(chǎn)生的對(duì)正確數(shù)據(jù)具有干擾效果的額外數(shù)據(jù)。
[0005] 現(xiàn)有技術(shù)僅使用陀螺儀的三軸數(shù)據(jù)測(cè)算用戶的姿態(tài),陀螺儀傳感器的數(shù)據(jù)精度 低,在轉(zhuǎn)動(dòng)過(guò)程中會(huì)累積誤差,所以無(wú)法準(zhǔn)確測(cè)算用戶的姿態(tài),顯示出來(lái)的虛擬世界景象與 用戶姿態(tài)不對(duì)應(yīng)。
[0006] 現(xiàn)有技術(shù)讀取傳感器數(shù)據(jù)以后進(jìn)行計(jì)算,然后板映到虛擬世界的視角變換,導(dǎo) 致用戶姿態(tài)改變后虛擬世界視角的變化有一定的延遲。
[0007] 現(xiàn)有技術(shù)使用歐拉角對(duì)視角矩陣進(jìn)行旋轉(zhuǎn),當(dāng)旋轉(zhuǎn)到一些特定角度時(shí)有兩個(gè)軸會(huì) 處于同一平面,出現(xiàn)萬(wàn)向鎖問(wèn)題,無(wú)法進(jìn)行正常轉(zhuǎn)動(dòng)。其中,視角矩陣:廣泛應(yīng)用于計(jì)算機(jī)圖 形應(yīng)用的一種矩陣,一般包含四行四列十六個(gè)元素,每一個(gè)行向量(或列向量,取決于使用 的計(jì)算機(jī)圖形庫(kù))代表視角的一條坐標(biāo)軸的位置。萬(wàn)向鎖:使用歐拉角對(duì)視角矩陣進(jìn)行轉(zhuǎn)動(dòng) 時(shí)出現(xiàn)的問(wèn)題,當(dāng)視角矩陣轉(zhuǎn)動(dòng)到某些角度時(shí),會(huì)丟失其中一個(gè)軸,從而在該方向上無(wú)法轉(zhuǎn) 動(dòng)。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明針對(duì)【背景技術(shù)】中存在的問(wèn)題,提出一種九軸傳感器融合的用戶姿態(tài)測(cè)算和 虛擬現(xiàn)實(shí)隨動(dòng)方法。
[0009] 技術(shù)方案:
[0010] -種九軸傳感器融合的用戶姿態(tài)測(cè)算和虛擬現(xiàn)實(shí)隨動(dòng)方法,該方法基于頭戴式虛 擬現(xiàn)實(shí)設(shè)備,包括傳感器采集步驟、姿態(tài)測(cè)算步驟以及顯示步驟,其中:
[0011 ]傳感器采集步驟:通過(guò)三軸陀螺儀,三軸加速計(jì)、三軸磁力計(jì)采集九軸數(shù)據(jù),其中: 三軸陀螺儀:一種三軸傳感器,包含了設(shè)備在三個(gè)相互垂直的方向上的旋轉(zhuǎn)速度;三軸加速 計(jì):一種三軸傳感器,包含了設(shè)備在三個(gè)相互垂直的方向上受到的加速度;三軸磁力計(jì):一 種三軸傳感器,包含了設(shè)備在三個(gè)相互垂直的方向上受到磁力強(qiáng)度;九軸傳感器:包含了三 軸陀螺儀、三軸加速計(jì)、三軸磁力計(jì)的傳感器的總稱;
[0012] 姿態(tài)測(cè)算步驟:首先對(duì)九軸數(shù)據(jù)進(jìn)行校準(zhǔn),校準(zhǔn)結(jié)果上報(bào)給融合算法,融合算法通 過(guò)校準(zhǔn)后的九軸數(shù)據(jù)計(jì)算出當(dāng)前數(shù)據(jù)下的用戶姿態(tài),預(yù)測(cè)算法通過(guò)當(dāng)前時(shí)刻融合算法的結(jié) 果和過(guò)去時(shí)刻的姿態(tài)變化趨勢(shì)預(yù)測(cè)若干時(shí)間后的用戶姿態(tài),得到旋轉(zhuǎn)四元數(shù),將旋轉(zhuǎn)四元 數(shù)換算到視角矩陣;
[0013] 顯示步驟:通過(guò)視角矩陣調(diào)整虛擬世界景象。
[0014] 優(yōu)選的,所述九軸數(shù)據(jù)進(jìn)行校準(zhǔn)是對(duì)三種傳感器的數(shù)據(jù)分別進(jìn)行校準(zhǔn),其中:
[0015] 三軸陀螺儀:在多次采樣中取平均值;或者,先在靜止?fàn)顟B(tài)下采集三軸陀螺儀的偏 移量,上報(bào)數(shù)據(jù)時(shí)去除;
[0016] 三軸加速計(jì):在靜止?fàn)顟B(tài)下利用重力加速度的方向剔除干擾,過(guò)程如下:
[0017] A=(ax,ay,az)
[0018] G=(g,0,0)
[0019] Δ =A-G
[0020] Af =At-A-
[0021] 式中A為靜止?fàn)顟B(tài)下加速計(jì)數(shù)據(jù),G為重力加速度向量,△為加速計(jì)偏移量,At為加 速計(jì)原始數(shù)據(jù),Af為校準(zhǔn)后t時(shí)刻的加速計(jì)數(shù)據(jù);
[0022] 三軸磁力計(jì):采取平面校準(zhǔn)法或八字校準(zhǔn)法進(jìn)行校準(zhǔn)。
[0023]優(yōu)選的,三軸磁力計(jì)在含有附加的局部磁場(chǎng)環(huán)境下,采用以下方法校準(zhǔn):
[0024] 1)將三軸磁力計(jì)水平旋轉(zhuǎn)360度;
[0025] 2)找到三軸磁力計(jì)水平方向數(shù)據(jù)的最小和最大輸出Xmin,Ymin,X max,Ymax;
[0026] 3)比較Xmax_Xmin和Ymax_Y min,取其中較大者,此處令比例系數(shù):Xs = 1;
[0028] 5)計(jì)算偏置補(bǔ)償:
[0029] Xb = Xs [ 1 /2 (Xmax-Xmin ) "Xmax]
[0030] Yb = Ys [ 1 /2 ( Ymax-Ymin ) "Ymax]
[0031] 6)得到輸出:
[0032] X〇ut=Xin*Xs+Xb
[0033] Y〇ut = Yin*Ys+Yb
[0034] 式中,為校準(zhǔn)后的磁力計(jì)數(shù)據(jù),XinYir^原始的磁力計(jì)數(shù)據(jù),Z軸在使用此種 方法時(shí)無(wú)需校準(zhǔn)。
[0035]優(yōu)選的,所述融合算法將九軸數(shù)據(jù)的校準(zhǔn)結(jié)果按照一定的算法進(jìn)行融合,輸出一 個(gè)旋轉(zhuǎn)四元數(shù),所述一定的算法包括:卡爾曼濾波算法、擴(kuò)展卡爾曼濾波算法、互補(bǔ)濾波算 法。擴(kuò)展卡爾曼濾波:將卡爾曼濾波器從線性推廣到非線性的一種擴(kuò)展算法,卡爾曼濾波器 可以通過(guò)結(jié)合系統(tǒng)的觀測(cè)值和預(yù)測(cè)值來(lái)給出較為精確的系統(tǒng)狀態(tài)?;パa(bǔ)濾波:使用一種數(shù) 據(jù)來(lái)補(bǔ)充另一種數(shù)據(jù)的濾波方式,可以結(jié)合不同數(shù)據(jù)各自的優(yōu)點(diǎn),彌補(bǔ)對(duì)方的缺點(diǎn)。
[0036]優(yōu)選的,所述預(yù)測(cè)算法以融合算法得到的旋轉(zhuǎn)四元數(shù)為輸入,通過(guò)分析數(shù)據(jù)的變 化趨勢(shì),給出用戶現(xiàn)實(shí)中最可能的真實(shí)姿態(tài),得到預(yù)測(cè)的旋轉(zhuǎn)四元數(shù)結(jié)果,具體步驟如下: [0037] 1)獲取t時(shí)刻融合算法的結(jié)果:旋轉(zhuǎn)四元數(shù)Qt = [qo,qi,q2,q3];
[0038] 2)預(yù)測(cè)算法根據(jù)從0時(shí)刻一直至ljt-1時(shí)刻的預(yù)測(cè)四元數(shù)Ρο,Ρ:,. . .,Ρη,計(jì)算出預(yù)測(cè) 的偏移量四元數(shù)PΔt=[PΔt(),PΔtl,PΔt2,PΔt3];
[0039] 3)在旋轉(zhuǎn)四元數(shù)Qt的基礎(chǔ)上加上偏移量Pm,得到最終的預(yù)測(cè)結(jié)果四元數(shù)Pt=[p0, pi, P2, P3 ] = [ qo+PAtO , qi+PAtl, q2+PAt2 , q3+PAt3 ] 〇
[0040] 優(yōu)選的,所述將旋轉(zhuǎn)四元數(shù)換算到視角矩陣是將旋轉(zhuǎn)四元數(shù)轉(zhuǎn)換成旋轉(zhuǎn)矩陣,然 后將視角矩陣乘上這個(gè)旋轉(zhuǎn)矩陣,旋轉(zhuǎn)四元數(shù)轉(zhuǎn)換成旋轉(zhuǎn)矩陣的算法如下:
[0041 ]對(duì)于旋轉(zhuǎn)四元數(shù)(X,y,z,W),其對(duì)應(yīng)的旋轉(zhuǎn)矩陣:
[0043] 式中:
[0044] ql1 = l_2*y*y_2*z*z;ql2 = 2*x*y_2*z*w;ql3 = 2*x*z+2*y*w;ql4 = 0;
[0045] q21 = 2*x*y+2*z*w;q22 = l_2*x*x_2*z*z;q23 = 2*y*z_2*x*w;q24 = 0;
[0046] q31 = 2*x*z_2*y*w;q32 = 2*y*z+2*x*w;q33 = l_2*x*x_2*y*y;q34 = 0;
[0047] q41= 0;q42 = 0;q43 = 0;q44 = 1〇
[0048] 優(yōu)選的,所述頭戴式虛擬現(xiàn)實(shí)設(shè)備包括傳感器模塊、用戶交互模塊、顯示模塊、數(shù) 據(jù)處理模塊、頭戴式結(jié)構(gòu),其中:
[0049]傳感器模塊包括:三軸陀螺儀、三軸加速計(jì)、三軸磁力計(jì);
[0050]用戶交互模塊包括:觸摸式屏幕、手柄;
[0051] 顯示模塊包括:液晶顯示屏;
[0052] 數(shù)據(jù)處理模塊包括:中央處理器、顯卡、內(nèi)存;
[0053] 頭戴式結(jié)構(gòu)提供了一種可以使設(shè)備固定在用戶頭部,并隨著用戶的姿態(tài)移動(dòng)的結(jié) 構(gòu)。
[0054] 作為一種實(shí)施方式,所述頭戴式虛擬現(xiàn)實(shí)設(shè)備由智能手機(jī)和虛擬現(xiàn)實(shí)盒子共同組 成,其中:智能手機(jī)包含傳感器模塊、顯示模塊、數(shù)據(jù)處理模塊,而虛擬現(xiàn)實(shí)盒子提供了用戶 交互模塊、頭戴式結(jié)構(gòu)。
[0055] 作為另一種實(shí)施方式,所述頭戴式虛擬現(xiàn)實(shí)設(shè)備為集成了所有模塊的一體機(jī)設(shè) 備。
[0056]本發(fā)明的有益效果
[0057]使用本發(fā)明的技術(shù)方案,獲得以下有益效果:在用戶靜止時(shí),令傳感器給出的數(shù)據(jù) 為零,沒(méi)有噪聲;充分利用不同傳感器的數(shù)據(jù),得到正確的用戶姿態(tài);虛擬世界的視角無(wú)延 遲、實(shí)時(shí)地隨著用戶的姿態(tài)改變而變化;保證用戶能從任何角度觀察虛擬現(xiàn)實(shí)世界。
【附圖說(shuō)明】
[0058]圖1為頭戴式虛擬現(xiàn)實(shí)設(shè)備組成模塊圖。
[0059]圖2為本發(fā)明方案構(gòu)成框圖。
[0060]圖3為視角矩陣示意圖。
【具體實(shí)施方式】
[0061]下面結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明,但本發(fā)明的保護(hù)范圍不限于此:
[0062]結(jié)合圖1,本發(fā)明硬件上依賴于頭戴式虛擬現(xiàn)實(shí)設(shè)備,包括:傳感器模塊、用戶交互 模塊、顯示模塊、數(shù)據(jù)處理模塊、頭戴式結(jié)構(gòu),其中:
[0063]傳感器模塊包括:三軸陀螺儀、三軸加速計(jì)、三軸磁力計(jì);
[0064]用戶交互模塊包括:觸摸式屏幕、手柄;
[0065] 顯示模塊包括:液晶顯示屏;
[0066] 數(shù)據(jù)處理模塊包括:中央處理器、顯卡、內(nèi)存;
[0067] 頭戴式結(jié)構(gòu)提供了一種可以使設(shè)備固定在用戶頭部,并隨著用戶的姿態(tài)移動(dòng)的結(jié) 構(gòu)。
[0068] 在一些實(shí)施例中,所述頭戴式虛擬現(xiàn)實(shí)設(shè)備由智能手機(jī)和虛擬現(xiàn)實(shí)盒子共同組 成,其中:智能手機(jī)包含傳感器模塊、顯示模塊、數(shù)據(jù)處理模塊,而虛擬現(xiàn)實(shí)盒子提供了用戶 交互模塊、頭戴式結(jié)構(gòu)。
[0069] 在另一些實(shí)施例中,所述頭戴式虛擬現(xiàn)實(shí)設(shè)備為集成了所有模塊的一體機(jī)設(shè)備。
[0070] 結(jié)合圖2,本發(fā)明公開(kāi)了一種九軸傳感器融合的用戶姿態(tài)測(cè)算和虛擬現(xiàn)實(shí)隨動(dòng)方 法,該方法基于頭戴式虛擬現(xiàn)實(shí)設(shè)備,包括傳感器采集步驟、姿態(tài)測(cè)算步驟以及顯示步驟, 其中:
[0071]傳感器采集步驟:通過(guò)三軸陀螺儀,三軸加速計(jì)、三軸磁力計(jì)采集九軸數(shù)據(jù);
[0072]姿態(tài)測(cè)算步驟:首先對(duì)九軸數(shù)據(jù)進(jìn)行校準(zhǔn),校準(zhǔn)結(jié)果上報(bào)給融合算法,融合算法通 過(guò)校準(zhǔn)后的九軸數(shù)據(jù)計(jì)算出當(dāng)前數(shù)據(jù)下的用戶姿態(tài),預(yù)測(cè)算法通過(guò)當(dāng)前時(shí)刻融合算法的結(jié) 果和過(guò)去時(shí)刻的姿態(tài)變化趨勢(shì)預(yù)測(cè)若干時(shí)間后的用戶姿態(tài),得到旋轉(zhuǎn)四元數(shù),將旋轉(zhuǎn)四元 數(shù)換算到視角矩陣;
[0073] 顯示步驟:通過(guò)視角矩陣調(diào)整虛擬世界景象。
[0074]在優(yōu)選的實(shí)施例中,所述九軸數(shù)據(jù)進(jìn)行校準(zhǔn)是對(duì)三種傳感器的數(shù)據(jù)分別進(jìn)行校 準(zhǔn),其中:
[0075]三軸陀螺儀:在多次采樣中取平均值;或者,先在靜止?fàn)顟B(tài)下采集三軸陀螺儀的偏 移量,上報(bào)數(shù)據(jù)時(shí)去除;
[0076]三軸加速計(jì):在靜止?fàn)顟B(tài)下利用重力加速度的方向剔除干擾,過(guò)程如下:
[0077] A= (ax,ay,az)
[0078] G=(g,0,0)
[0079] Δ =A-G
[0080] Af = At -Δ
[0081]式中A為靜止?fàn)顟B(tài)下加速計(jì)數(shù)據(jù),G為重力加速度向量,△為加速計(jì)偏移量,At為加 速計(jì)原始數(shù)據(jù),Af為校準(zhǔn)后t時(shí)刻的加速計(jì)數(shù)據(jù);
[0082] 三軸磁力計(jì):采取平面校準(zhǔn)法或八字校準(zhǔn)法進(jìn)行校準(zhǔn)。
[0083]在優(yōu)選的實(shí)施例中,三軸磁力計(jì)在含有附加的局部磁場(chǎng)環(huán)境下,采用以下方法校 準(zhǔn):
[0084] 1)將三軸磁力計(jì)水平旋轉(zhuǎn)360度;
[0085] 2)找到三軸磁力計(jì)水平方向數(shù)據(jù)的最小和最大輸出Xmin,Ymin,X max,Ymax;
[0086] 3)比較Xmax_Xmin和Ymax_Y min,取其中較大者,此處令比例系數(shù):Xs = 1;
[0088] 5)計(jì)算偏置補(bǔ)償:
[0089] Xb = Xs [ 1 /2 (Xmax-Xmin ) "Xmax]
[0090] Yb = Ys [ 1 /2 ( Ymax-Ymin ) "Ymax]
[0091] 6)得到輸出:
[0092] X〇ut=Xin*Xs+Xb
[0093] Y〇ut = Yin*Ys+Yb
[0094] 式中,為校準(zhǔn)后的磁力計(jì)數(shù)據(jù),XinYir*原始的磁力計(jì)數(shù)據(jù),Z軸在使用此種 方法時(shí)無(wú)需校準(zhǔn)。
[0095]在優(yōu)選的實(shí)施例中,所述融合算法將九軸數(shù)據(jù)的校準(zhǔn)結(jié)果按照一定的算法進(jìn)行融 合,輸出一個(gè)旋轉(zhuǎn)四元數(shù),所述一定的算法包括:卡爾曼濾波算法、擴(kuò)展卡爾曼濾波算法、互 補(bǔ)濾波算法。
[0096]在優(yōu)選的實(shí)施例中,所述預(yù)測(cè)算法以融合算法得到的旋轉(zhuǎn)四元數(shù)為輸入,通過(guò)分 析數(shù)據(jù)的變化趨勢(shì),給出用戶現(xiàn)實(shí)中最可能的真實(shí)姿態(tài),得到預(yù)測(cè)的旋轉(zhuǎn)四元數(shù)結(jié)果,具體 步驟如下:
[0097] 1)獲取t時(shí)刻融合算法的結(jié)果:旋轉(zhuǎn)四元數(shù)Qt = [qo,qi,q2,q3];
[0098] 2)預(yù)測(cè)算法根據(jù)從0時(shí)刻一直至ljt-1時(shí)刻的預(yù)測(cè)四元數(shù)Ρο,Ρ:,. . .,Ρη,計(jì)算出預(yù)測(cè) 的偏移量四元數(shù)PΔt=[PΔt(),PΔtl,PΔt2,PΔt3];
[0099] 3)在旋轉(zhuǎn)四元數(shù)Qt的基礎(chǔ)上加上偏移量Pm,得到最終的預(yù)測(cè)結(jié)果四元數(shù)Pt=[p0, pi, P2, P3 ] = [ qo+PAtO , qi+PAtl, q2+PAt2 , q3+PAt3 ] 〇
[0100] 借助算法給出的四元數(shù)可以對(duì)視角矩陣進(jìn)行變換,調(diào)整到用戶姿態(tài)所對(duì)應(yīng)的視 角,四元數(shù)可以避免使用歐拉角進(jìn)行旋轉(zhuǎn)的萬(wàn)向鎖問(wèn)題。視角矩陣是一個(gè)四行四列的矩陣, 包含了在虛擬世界中用戶的視角坐標(biāo)系信息,示意圖見(jiàn)圖3。
[0101] 在優(yōu)選的實(shí)施例中,所述將旋轉(zhuǎn)四元數(shù)換算到視角矩陣是將旋轉(zhuǎn)四元數(shù)轉(zhuǎn)換成旋 轉(zhuǎn)矩陣,然后將視角矩陣乘上這個(gè)旋轉(zhuǎn)矩陣,旋轉(zhuǎn)四元數(shù)轉(zhuǎn)換成旋轉(zhuǎn)矩陣的算法如下:
[0102] 對(duì)于旋轉(zhuǎn)四元數(shù)(X,y,z,w),其對(duì)應(yīng)的旋轉(zhuǎn)矩陣:
[0104] 式中:
[0105] qll = l_2*y*y_2*z*z ;ql2 = 2*x*y_2*z*w;ql3 = 2*x*z+2*y*w;ql4 = 0;
[0106] q21 = 2*x*y+2*z*w;q22 = l_2*x*x_2*z*z ;q23 = 2*y*z_2*x*w;q24 = 0;
[0107] q31 = 2*x*z-2*y*w;q32 = 2*y*z+2*x*w;q33 = l_2*x*x_2*y*y ;q34 = 0;
[0108] q41 = 0; q42 = 0; q43 = 0; q44 = 1。
[0109] 本文中所描述的具體實(shí)施例僅僅是對(duì)本發(fā)明精神做舉例說(shuō)明。本發(fā)明所屬技術(shù)領(lǐng) 域的技術(shù)人員可以對(duì)所描述的具體實(shí)施例做各種各樣的修改或補(bǔ)充或采用類似的方式替 代,但并不會(huì)偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。
【主權(quán)項(xiàng)】
1. 一種九軸傳感器融合的用戶姿態(tài)測(cè)算和虛擬現(xiàn)實(shí)隨動(dòng)方法,其特征在于該方法基于 頭戴式虛擬現(xiàn)實(shí)設(shè)備,包括傳感器采集步驟、姿態(tài)測(cè)算步驟W及顯示步驟,其中: 傳感器采集步驟:通過(guò)Ξ軸巧螺儀,Ξ軸加速計(jì)、Ξ軸磁力計(jì)采集九軸數(shù)據(jù); 姿態(tài)測(cè)算步驟:首先對(duì)九軸數(shù)據(jù)進(jìn)行校準(zhǔn),校準(zhǔn)結(jié)果上報(bào)給融合算法,融合算法通過(guò)校 準(zhǔn)后的九軸數(shù)據(jù)計(jì)算出當(dāng)前數(shù)據(jù)下的用戶姿態(tài),預(yù)測(cè)算法通過(guò)當(dāng)前時(shí)刻融合算法的結(jié)果和 過(guò)去時(shí)刻的姿態(tài)變化趨勢(shì)預(yù)測(cè)若干時(shí)間后的用戶姿態(tài),得到旋轉(zhuǎn)四元數(shù),將旋轉(zhuǎn)四元數(shù)換 算到視角矩陣; 顯示步驟:通過(guò)視角矩陣調(diào)整虛擬世界景象。2. 根據(jù)權(quán)利要求1所述的一種九軸傳感器融合的用戶姿態(tài)測(cè)算和虛擬現(xiàn)實(shí)隨動(dòng)方法, 其特征在于所述九軸數(shù)據(jù)進(jìn)行校準(zhǔn)是對(duì)Ξ種傳感器的數(shù)據(jù)分別進(jìn)行校準(zhǔn),其中: 二軸巧螺儀:在多次義樣中取平均值;或者,先在靜止?fàn)顟B(tài)下義集二軸巧螺儀的偏移 量,上報(bào)數(shù)據(jù)時(shí)去除; Ξ軸加速計(jì):在靜止?fàn)顟B(tài)下利用重力加速度的方向剔除干擾,過(guò)程如下: A - ( ?χ , cly , clz ) G=(g,〇,〇) Δ =A-G -Aj.-Δ 式中A為靜止?fàn)顟B(tài)下加速計(jì)數(shù)據(jù),G為重力加速度向量,Δ為加速計(jì)偏移量,At為加速計(jì) 原始數(shù)據(jù),Af為校準(zhǔn)后t時(shí)刻的加速計(jì)數(shù)據(jù); Ξ軸磁力計(jì):采取平面校準(zhǔn)法或八字校準(zhǔn)法進(jìn)行校準(zhǔn)。3. 根據(jù)權(quán)利要求2所述的一種九軸傳感器融合的用戶姿態(tài)測(cè)算和虛擬現(xiàn)實(shí)隨動(dòng)方法, 其特征在于Ξ軸磁力計(jì)在含有附加的局部磁場(chǎng)環(huán)境下,采用W下方法校準(zhǔn): 1)將Ξ軸磁力計(jì)水平旋轉(zhuǎn)360度; 2 )找到Ξ軸磁力計(jì)水平方向數(shù)據(jù)的最小和最大輸出Xmin,Ymin,Xmax,Ymax; 3 )比較Xmax-Xmin和Ymax-Ymin,取其中較大者,此處令比例系數(shù):Xs = 1 ; 4) 計(jì)算另一個(gè)比例系數(shù):5) 計(jì)算偏置補(bǔ)償:式中,XDUtYout為校準(zhǔn)后的磁力計(jì)數(shù)據(jù),XinYin為原始的磁力計(jì)數(shù)據(jù),Z軸在使用此種方法 時(shí)無(wú)需校準(zhǔn)。4. 根據(jù)權(quán)利要求1所述的一種九軸傳感器融合的用戶姿態(tài)測(cè)算和虛擬現(xiàn)實(shí)隨動(dòng)方法, 其特征在于所述融合算法將九軸數(shù)據(jù)的校準(zhǔn)結(jié)果按照一定的算法進(jìn)行融合,輸出一個(gè)旋轉(zhuǎn) 四元數(shù),所述一定的算法包括:卡爾曼濾波算法、擴(kuò)展卡爾曼濾波算法、互補(bǔ)濾波算法。5. 根據(jù)權(quán)利要求4所述的一種九軸傳感器融合的用戶姿態(tài)測(cè)算和虛擬現(xiàn)實(shí)隨動(dòng)方法, 其特征在于所述預(yù)測(cè)算法W融合算法得到的旋轉(zhuǎn)四元數(shù)為輸入,通過(guò)分析數(shù)據(jù)的變化趨 勢(shì),給出用戶現(xiàn)實(shí)中最可能的真實(shí)姿態(tài),得到預(yù)測(cè)的旋轉(zhuǎn)四元數(shù)結(jié)果,具體步驟如下: 1) 獲取t時(shí)刻融合算法的結(jié)果:旋轉(zhuǎn)四元數(shù)Qt=[qo,qi,q2,q3]; 2) 預(yù)測(cè)算法根據(jù)從0時(shí)刻一直至ljt-1時(shí)刻的預(yù)測(cè)四元數(shù)Ρο,Ρι,. . .,Pt-i,計(jì)算出預(yù)測(cè)的偏 移量四元數(shù)PΔt=[PΔtO,PΔtl,PΔt2,PΔt3]; 3) 在旋轉(zhuǎn)四元數(shù)Qt的基礎(chǔ)上加上偏移量Ρδ*,得到最終的預(yù)測(cè)結(jié)果四元數(shù)Pt= [ρο,ρι, Ρ2,Ρ3] = [q〇+PAtO,qi+PAtl,q2+PAt2,q3+PAt3]。6. 根據(jù)權(quán)利要求1所述的一種九軸傳感器融合的用戶姿態(tài)測(cè)算和虛擬現(xiàn)實(shí)隨動(dòng)方法, 其特征在于所述將旋轉(zhuǎn)四元數(shù)換算到視角矩陣是將旋轉(zhuǎn)四元數(shù)轉(zhuǎn)換成旋轉(zhuǎn)矩陣,然后將視 角矩陣乘上運(yùn)個(gè)旋轉(zhuǎn)矩陣,旋轉(zhuǎn)四元數(shù)轉(zhuǎn)換成旋轉(zhuǎn)矩陣的算法如下: 對(duì)于旋轉(zhuǎn)四元數(shù)(χ,y,z,w),其對(duì)應(yīng)的旋轉(zhuǎn)矩陣:7. 根據(jù)權(quán)利要求1~6任一項(xiàng)所述的一種九軸傳感器融合的用戶姿態(tài)測(cè)算和虛擬現(xiàn)實(shí) 隨動(dòng)方法,其特征在于所述頭戴式虛擬現(xiàn)實(shí)設(shè)備包括傳感器模塊、用戶交互模塊、顯示模 塊、數(shù)據(jù)處理模塊、頭戴式結(jié)構(gòu),其中: 傳感器模塊包括:Ξ軸巧螺儀、Ξ軸加速計(jì)、Ξ軸磁力計(jì); 用戶交互模塊包括:觸摸式屏幕、手柄; 顯示模塊包括:液晶顯示屏; 數(shù)據(jù)處理模塊包括:中央處理器、顯卡、內(nèi)存; 頭戴式結(jié)構(gòu)提供了一種可W使設(shè)備固定在用戶頭部,并隨著用戶的姿態(tài)移動(dòng)的結(jié)構(gòu)。8. 根據(jù)權(quán)利要求7所述的一種九軸傳感器融合的用戶姿態(tài)測(cè)算和虛擬現(xiàn)實(shí)隨動(dòng)方法, 其特征在于所述頭戴式虛擬現(xiàn)實(shí)設(shè)備由智能手機(jī)和虛擬現(xiàn)實(shí)盒子共同組成,其中:智能手 機(jī)包含傳感器模塊、顯示模塊、數(shù)據(jù)處理模塊,而虛擬現(xiàn)實(shí)盒子提供了用戶交互模塊、頭戴 式結(jié)構(gòu)。9. 根據(jù)權(quán)利要求7所述的一種九軸傳感器融合的用戶姿態(tài)測(cè)算和虛擬現(xiàn)實(shí)隨動(dòng)方法, 其特征在于所述頭戴式虛擬現(xiàn)實(shí)設(shè)備為集成了所有模塊的一體機(jī)設(shè)備。
【文檔編號(hào)】G02B27/01GK106095113SQ201610479894
【公開(kāi)日】2016年11月9日
【申請(qǐng)日】2016年6月27日
【發(fā)明人】張洋, 曹俊, 張琦
【申請(qǐng)人】南京睿悅信息技術(shù)有限公司