虛擬現(xiàn)實頭盔延時感和沉浸感的研究
摘要:本文提出一種采用復(fù)合互補(bǔ)濾波進(jìn)行修正頭部角度并基于Unity3D引擎開發(fā)的虛擬現(xiàn)實頭盔。該方法對由陀螺儀積分累加得到的角度和以加速度計為基準(zhǔn)累加的角度進(jìn)行修正,從而采集到頭部的俯仰、翻滾以及偏航等低誤差的姿態(tài)角信息,并且在Unity3D引擎上對頭部數(shù)據(jù)進(jìn)行整合,以及對畫面效果進(jìn)行反畸變來抵消頭盔上透鏡對畫面產(chǎn)生的畸變效果。此法具有自校準(zhǔn)、高精度和連續(xù)性強(qiáng)的特點,通過降低虛擬現(xiàn)實頭盔上畫面?zhèn)鬏數(shù)?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/延時感">延時感,來解決頭盔給用戶帶來的的眩暈問題,同時讓體驗者在XYZ軸上有360°的沉浸感。
本文引用地址:http://m.butianyuan.cn/article/201606/293259.htm引言
虛擬現(xiàn)實技術(shù)是一種將計算機(jī)技術(shù)、仿真技術(shù)、圖形圖像技術(shù)和傳感測量技術(shù)集于一體的綜合技術(shù),以虛擬的三維交互環(huán)境為基本特征,具有低成本、高安全性、可反復(fù)操作等優(yōu)點,有助于未來高技術(shù)產(chǎn)業(yè)的發(fā)展和國家技術(shù)創(chuàng)新能力的提升,已經(jīng)被列入國家中長期科技發(fā)展規(guī)劃。虛擬現(xiàn)實系統(tǒng)具有為人所熟知的三個特性,即沉浸性、交互性和想象性[1]。其中,沉浸感是最吸引人的特點。虛擬現(xiàn)實頭盔作為虛擬現(xiàn)實技術(shù)最成功的應(yīng)用,其3D全景沉浸效果可以讓體驗者身臨其境。如何降低體驗者頭部移動時畫面跟隨上的延時感和怎樣提供給體驗者更好的全景沉浸感是兩個有待解決的主要問題。
我國VR技術(shù)研究起步較晚,與國外發(fā)達(dá)國家還有一定的差距,但經(jīng)過不懈的努力,我國的VR技術(shù)也逐漸在追趕世界的腳步。國內(nèi)一些重點院校已積極投入到了這一領(lǐng)域的研究工作中。浙江大學(xué)CAD&CG國家重點實驗室開發(fā)出了一套桌面型虛擬建筑環(huán)境實時漫游系統(tǒng),還在虛擬環(huán)境中研制出了一種新的快速漫游算法和一種遞進(jìn)網(wǎng)格的快速生成算法;哈爾濱工業(yè)大學(xué)已經(jīng)成功地虛擬出了人的高級行為中特定人臉圖像的合成、表情的合成和唇動的合成等技術(shù)問題;清華大學(xué)計算機(jī)科學(xué)和技術(shù)系對虛擬現(xiàn)實和臨場感方面進(jìn)行了研究[2]。而在國外,美國作為虛擬現(xiàn)實技術(shù)的發(fā)源地,其研究水平基本上就代表國際虛擬現(xiàn)實技術(shù)發(fā)展的水平。目前美國在該領(lǐng)域的基礎(chǔ)研究主要集中在感知、用戶界面、后臺軟件和硬件四個方面[2]。Oculus Rift 是美國Oculus公司開發(fā)的一款為電子游戲設(shè)計的頭戴式顯示器[3]。這是一款虛擬現(xiàn)實設(shè)備,它也一直致力于解決虛擬現(xiàn)實頭盔的延時感和沉浸感問題。延時感主要是在處理頭部角度數(shù)據(jù)時產(chǎn)生的,可見,解決此問題的關(guān)鍵在于此過程運用的方法。而沉浸感主要是在處理畫面效果和渲染畫面時產(chǎn)生的,所以優(yōu)化處理畫面效果采用的算法可以有效地解決此問題。
1 虛擬現(xiàn)實頭盔架構(gòu)的流程框圖
虛擬現(xiàn)實頭盔整個架構(gòu)的流程框圖如圖1所示。
2 采用復(fù)合互補(bǔ)濾波降低延時
本文使用的頭部位置傳感器采用MPU6000的陀螺儀/加速度計集成芯片[4]。該芯片內(nèi)置了3軸的陀螺儀和加速度計,同時采用Honeywell的HMC5883 三軸電子羅盤。這三種傳感器相互融合,可準(zhǔn)確得出佩戴者的頭部位置信息。位置傳感器通過SPI總線將數(shù)據(jù)傳輸給顯示頭盔中的ARM處理器,ARM微處理器通過I2C方式對位置傳感器采集的原始姿態(tài)角信息進(jìn)行算法處理,以實時獲取自身的姿態(tài)。陀螺儀能夠測量物體轉(zhuǎn)動的角速度,具有短時間內(nèi)測量精度高、穩(wěn)定和可靠的優(yōu)點。但陀螺儀對溫度的要求較高,在長時間內(nèi),其由于溫度的變化而產(chǎn)生漂移,導(dǎo)致積分累加得到的角度值會大大地偏離實際值[5]。加速度計鑒于測量原理,在短時間內(nèi)波動很大,但是在長時間的測量中其性能不錯。磁強(qiáng)計通過測量地磁的大小,經(jīng)換算可得到與地磁南極的夾角[6]。故在頭盔姿態(tài)檢測中,提出的策略是對由陀螺儀積分累加得到的角度和以加速度計為基準(zhǔn)累加的角度進(jìn)行修正[7]。上述過程稱之為融合濾波,采取的是復(fù)合互補(bǔ)濾波算法,從而得到低誤差的姿態(tài)角信息,此法具有自校準(zhǔn)、精度高和連續(xù)性強(qiáng)的特點。
復(fù)合互補(bǔ)濾波根據(jù)陀螺儀和加速度的工作特性,將二者的長處進(jìn)行結(jié)合,融合兩者的輸出信號,補(bǔ)償陀螺儀的漂移誤差和加速度計的動態(tài)誤差,得到一個更能準(zhǔn)確反映車體傾角的數(shù)據(jù),以便讓微控制器更好地決策[8]。其濾波框圖如圖2所示。
復(fù)合互補(bǔ)濾波器的算法的實現(xiàn)表示為:
(1)
θtilt(n)表示第n次濾波后的角度;
βtilt(n-1)表示第n次濾波前的角度;
ɑgvro表示陀螺儀濾波權(quán)重系數(shù);
βacc表示加速度計濾波權(quán)重系數(shù);
wgvro表示第n次陀螺儀采樣測定的角速度值;
θacc表示第n次加速度計采樣測定的角度值。
對于虛擬現(xiàn)實頭盔的延時感所產(chǎn)生的眩暈問題主要是由于體驗者頭部轉(zhuǎn)動時,畫面在相應(yīng)的跟隨變化上出現(xiàn)滯后所產(chǎn)生的。本文把從頭部開始運動到顯示器頭盔上的畫面完成相應(yīng)調(diào)整所需要的時間稱為延時,而延時主要體現(xiàn)在ARM處理器對頭部角度信息的運算上,而采用的復(fù)合互補(bǔ)濾波算法對由陀螺儀積分累加得到的角度和以加速度計為基準(zhǔn)累加的角度進(jìn)行修正,較好地融合兩者的輸出信號,補(bǔ)償陀螺儀的漂移誤差和加速度計的動態(tài)誤差,便可提升運算速度,也提高了回傳角度信息的發(fā)送頻率[9]。此法有效地降低了延時,從而有效地解決了體驗者的眩暈感問題。
3 采用USB的HID協(xié)議傳輸數(shù)據(jù)
此處采用USB 的HID(人機(jī)交互設(shè)備)協(xié)議把低誤差的航姿角度值傳輸?shù)截?fù)責(zé)處理圖像輸出的PC端,使顯示畫面可以跟隨頭部運動而變化。采取USB進(jìn)行頭部數(shù)據(jù)傳輸更穩(wěn)定、更可靠、更快速。USB傳輸流程框圖如圖3所示。
4 采用Unity3D解決沉靜感問題
虛擬現(xiàn)實頭盔是通過透鏡來擴(kuò)大視野范圍并對人眼進(jìn)行調(diào)焦,但同時也會對顯示屏上的畫面產(chǎn)生畸變[10]。為了解決透鏡產(chǎn)生的畸變,此處提出了采用Unity3D引擎來開發(fā)虛擬場景并將畫面進(jìn)行反畸變來抵消透鏡對畫面產(chǎn)生的畸變。
首先在Unity3D里采用兩個照相機(jī)來模擬人的雙眼視覺效果,分別渲染左右眼需要獲取的畫面,設(shè)置左右兩個照相機(jī)的相關(guān)參數(shù),使左右眼的畫面相同,并各占屏幕的一半[11],如圖4所示。
然后對左右兩個場景畫面做畸變處理,此處使用Unity3D自帶的ShaderLab語言進(jìn)行算法開發(fā)?;兲幚淼谋磉_(dá)式為:
(2)
r為屏幕像素點到屏幕中點的距離;
K0、K1、K2和K3為四個系數(shù),范圍在0到1之間。
其原理是使r變大,然后把改變后的r處坐標(biāo)點的像素值賦給變換前r處坐標(biāo)點的像素值。這樣就使屏幕像素點的顏色值發(fā)生了變化,對畫面產(chǎn)生了畸變效果。而畫面的畸變程度主要依賴于K0、K1、K2和K3這四個系數(shù),合理地選擇K0、K1、K2和K3的值能夠使畫面產(chǎn)生更好的抵消透鏡所產(chǎn)生的畸變效果。具體的程序流程框圖和畸變后的效果分別如圖5和圖6所示。
最后模擬人雙眼的間距,在虛擬現(xiàn)實系統(tǒng)中,雙目立體視覺起了很大作用[12]。用戶的兩只眼睛看到的不同圖像是分別產(chǎn)生的,如果能將雙眼獲取的畫面信息進(jìn)行較好的重合就可以提供給體驗者不錯的立體感。在Unity3D中攝相機(jī)渲染的畫面從左下角到右上角的坐標(biāo)分別是從(0,0)到(1,1)之間,而能否模擬現(xiàn)實中人的雙眼視覺主要與虛擬現(xiàn)實頭盔上左右兩個透鏡中心的參數(shù)和左右屏幕中心的參數(shù)息息相關(guān)。此處進(jìn)行了一組實驗對渲染效果進(jìn)行測試,參數(shù)和渲染效果分別如表1和圖7所示。
再分別將四組渲染效果經(jīng)過HDMI視頻信號傳輸線傳輸?shù)教摂M現(xiàn)實頭盔上的液晶屏中,實驗結(jié)果表明:C組的參數(shù)產(chǎn)生的渲染效果能精確地模擬人現(xiàn)實中雙眼的視覺效果并抵消虛擬現(xiàn)實頭盔上透鏡對畫面產(chǎn)生的畸變效果。這樣就能提供給體驗者較好的立體感,再加上頭盔的封閉效果,便可以產(chǎn)生良好的沉浸感[13]。
5 結(jié)論
本文在解決虛擬現(xiàn)實頭盔的延時感和沉浸感兩個問題上采用了創(chuàng)新性的方法。首先,利用復(fù)合互補(bǔ)濾波自校準(zhǔn)、高精度和連續(xù)性強(qiáng)的特性來降低畫面實時隨頭部角度信息變化的延時,進(jìn)而降低體驗者的眩暈感。且在USB數(shù)據(jù)傳輸上采用USB的HID協(xié)議把低誤差的航姿角度值傳輸?shù)絇C端,使數(shù)據(jù)傳輸上更快速。最后,在Unity3D引擎上對頭部數(shù)據(jù)進(jìn)行整合,采用改變各個像素點顏色值的方法對畫面效果進(jìn)行反畸變來抵消頭盔上透鏡對畫面產(chǎn)生的畸變效果,便可給體驗者帶來更好的沉浸感,也有身處虛擬環(huán)境中的錯覺,讓其身臨其境。
參考文獻(xiàn):
[1]熊春山, 王敏. 虛擬現(xiàn)實系統(tǒng)頭灰與數(shù)據(jù)手套的三維精確定向與定位系統(tǒng)與設(shè)計[J]. 儀表技術(shù)與傳感器, 2000 (4): 35-38.
[2]許微. 虛擬現(xiàn)實技術(shù)的國內(nèi)外研究現(xiàn)狀與發(fā)展[J]. 現(xiàn)代商貿(mào)工業(yè), 2009, 21(2): 279-280.
[3]陳耕藝. 虛擬現(xiàn)實的社交之路[J]. 中國信息化, 2015 (6): 16-17.
[4]張其, 袁縱橫, 梁丁, 等. 基于 MPU6000 的低功耗無線人體傳感器網(wǎng)絡(luò)節(jié)點設(shè)計[J]. 計算機(jī)測量與控制, 2014, 22(002): 539-541.
[5]Li Y, Dempster A, Li B, et al. A low-cost attitude heading reference system by combination of GPS and magnetometers and MEMS inertial sensors for mobile applications[J]. Positioning, 2006, 1(10).
[6]呂印新, 肖前貴, 胡壽松. 基于四元數(shù)互補(bǔ)濾波的無人機(jī)姿態(tài)解算[J].燕山大學(xué)學(xué)報, 2014, 38(2): 175-180.
[7]萬曉鳳, 康利平, 余運俊, 等. 互補(bǔ)濾波算法在四旋翼飛行器姿態(tài)解算中的應(yīng)用[J]. 測控技術(shù), 2015, 34(2): 8-11.
[8]李凡紅. 兩輪自平衡小車系統(tǒng)[D].北京:北京交通大學(xué), 2010.
[9]余彥霖, 祖家奎, 曾國貴. 微小型無人直升機(jī)姿態(tài)信號的互補(bǔ)濾波融合算法[J]. 直升機(jī)技術(shù), 2014, 3: 003.
[10]程德文, 王涌天, 常軍, 等. 輕型大視場自由曲面棱鏡頭盔顯示器的設(shè)計[J]. 紅外與激光工程, 2007, 36(3): 309-311.
[11]張典華, 陳一民. 基于 Unity3D 的多平臺虛擬校園設(shè)計與實現(xiàn)[J]. 計算機(jī)技術(shù)與發(fā)展, 2014, 24(2): 127-130.
[12]陳濤, 袁東, 吳衡. 頭盔顯示/瞄準(zhǔn)系統(tǒng)仿真技術(shù)研究[J]. 系統(tǒng)仿真學(xué)報, 2008, 20(8): 2014-2017. 哈涌剛, 周雅. 用于增強(qiáng)現(xiàn)實的頭盔顯示器的設(shè)計[J]. 光學(xué)技術(shù), 2000, 26(4): 350-353.
[13]哈涌剛, 周雅. 用于增強(qiáng)現(xiàn)實的頭盔顯示器的設(shè)計[J]. 光學(xué)技術(shù), 2000, 26(4): 350-353.
本文來源于中國科技期刊《電子產(chǎn)品世界》2016年第6期第43頁,歡迎您寫論文時引用,并注明出處。
評論