虚拟现实头盔延时感和沉浸感的研究
摘要:本文提出一种采用复合互补滤波进行修正头部角度并基于Unity3D引擎开发的虚拟现实头盔。该方法对由陀螺仪积分累加得到的角度和以加速度计为基准累加的角度进行修正,从而采集到头部的俯仰、翻滚以及偏航等低误差的姿态角信息,并且在Unity3D引擎上对头部数据进行整合,以及对画面效果进行反畸变来抵消头盔上透镜对画面产生的畸变效果。此法具有自校准、高精度和连续性强的特点,通过降低虚拟现实头盔上画面传输的延时感,来解决头盔给用户带来的的眩晕问题,同时让体验者在XYZ轴上有360°的沉浸感。
本文引用地址:http://www.amcfsurvey.com/article/201606/293259.htm引言
虚拟现实技术是一种将计算机技术、仿真技术、图形图像技术和传感测量技术集于一体的综合技术,以虚拟的三维交互环境为基本特征,具有低成本、高安全性、可反复操作等优点,有助于未来高技术产业的发展和国家技术创新能力的提升,已经被列入国家中长期科技发展规划。虚拟现实系统具有为人所熟知的三个特性,即沉浸性、交互性和想象性[1]。其中,沉浸感是最吸引人的特点。虚拟现实头盔作为虚拟现实技术最成功的应用,其3D全景沉浸效果可以让体验者身临其境。如何降低体验者头部移动时画面跟随上的延时感和怎样提供给体验者更好的全景沉浸感是两个有待解决的主要问题。
我国VR技术研究起步较晚,与国外发达国家还有一定的差距,但经过不懈的努力,我国的VR技术也逐渐在追赶世界的脚步。国内一些重点院校已积极投入到了这一领域的研究工作中。浙江大学CAD&CG国家重点实验室开发出了一套桌面型虚拟建筑环境实时漫游系统,还在虚拟环境中研制出了一种新的快速漫游算法和一种递进网格的快速生成算法;哈尔滨工业大学已经成功地虚拟出了人的高级行为中特定人脸图像的合成、表情的合成和唇动的合成等技术问题;清华大学计算机科学和技术系对虚拟现实和临场感方面进行了研究[2]。而在国外,美国作为虚拟现实技术的发源地,其研究水平基本上就代表国际虚拟现实技术发展的水平。目前美国在该领域的基础研究主要集中在感知、用户界面、后台软件和硬件四个方面[2]。Oculus Rift 是美国Oculus公司开发的一款为电子游戏设计的头戴式显示器[3]。这是一款虚拟现实设备,它也一直致力于解决虚拟现实头盔的延时感和沉浸感问题。延时感主要是在处理头部角度数据时产生的,可见,解决此问题的关键在于此过程运用的方法。而沉浸感主要是在处理画面效果和渲染画面时产生的,所以优化处理画面效果采用的算法可以有效地解决此问题。
1 虚拟现实头盔架构的流程框图
虚拟现实头盔整个架构的流程框图如图1所示。
2 采用复合互补滤波降低延时
本文使用的头部位置传感器采用MPU6000的陀螺仪/加速度计集成芯片[4]。该芯片内置了3轴的陀螺仪和加速度计,同时采用Honeywell的HMC5883 三轴电子罗盘。这三种传感器相互融合,可准确得出佩戴者的头部位置信息。位置传感器通过SPI总线将数据传输给显示头盔中的ARM处理器,ARM微处理器通过I2C方式对位置传感器采集的原始姿态角信息进行算法处理,以实时获取自身的姿态。陀螺仪能够测量物体转动的角速度,具有短时间内测量精度高、稳定和可靠的优点。但陀螺仪对温度的要求较高,在长时间内,其由于温度的变化而产生漂移,导致积分累加得到的角度值会大大地偏离实际值[5]。加速度计鉴于测量原理,在短时间内波动很大,但是在长时间的测量中其性能不错。磁强计通过测量地磁的大小,经换算可得到与地磁南极的夹角[6]。故在头盔姿态检测中,提出的策略是对由陀螺仪积分累加得到的角度和以加速度计为基准累加的角度进行修正[7]。上述过程称之为融合滤波,采取的是复合互补滤波算法,从而得到低误差的姿态角信息,此法具有自校准、精度高和连续性强的特点。
复合互补滤波根据陀螺仪和加速度的工作特性,将二者的长处进行结合,融合两者的输出信号,补偿陀螺仪的漂移误差和加速度计的动态误差,得到一个更能准确反映车体倾角的数据,以便让微控制器更好地决策[8]。其滤波框图如图2所示。
复合互补滤波器的算法的实现表示为:
(1)
θtilt(n)表示第n次滤波后的角度;
βtilt(n-1)表示第n次滤波前的角度;
ɑgvro表示陀螺仪滤波权重系数;
βacc表示加速度计滤波权重系数;
wgvro表示第n次陀螺仪采样测定的角速度值;
θacc表示第n次加速度计采样测定的角度值。
对于虚拟现实头盔的延时感所产生的眩晕问题主要是由于体验者头部转动时,画面在相应的跟随变化上出现滞后所产生的。本文把从头部开始运动到显示器头盔上的画面完成相应调整所需要的时间称为延时,而延时主要体现在ARM处理器对头部角度信息的运算上,而采用的复合互补滤波算法对由陀螺仪积分累加得到的角度和以加速度计为基准累加的角度进行修正,较好地融合两者的输出信号,补偿陀螺仪的漂移误差和加速度计的动态误差,便可提升运算速度,也提高了回传角度信息的发送频率[9]。此法有效地降低了延时,从而有效地解决了体验者的眩晕感问题。
3 采用USB的HID协议传输数据
此处采用USB 的HID(人机交互设备)协议把低误差的航姿角度值传输到负责处理图像输出的PC端,使显示画面可以跟随头部运动而变化。采取USB进行头部数据传输更稳定、更可靠、更快速。USB传输流程框图如图3所示。
4 采用Unity3D解决沉静感问题
虚拟现实头盔是通过透镜来扩大视野范围并对人眼进行调焦,但同时也会对显示屏上的画面产生畸变[10]。为了解决透镜产生的畸变,此处提出了采用Unity3D引擎来开发虚拟场景并将画面进行反畸变来抵消透镜对画面产生的畸变。
首先在Unity3D里采用两个照相机来模拟人的双眼视觉效果,分别渲染左右眼需要获取的画面,设置左右两个照相机的相关参数,使左右眼的画面相同,并各占屏幕的一半[11],如图4所示。
然后对左右两个场景画面做畸变处理,此处使用Unity3D自带的ShaderLab语言进行算法开发。畸变处理的表达式为:
(2)
r为屏幕像素点到屏幕中点的距离;
K0、K1、K2和K3为四个系数,范围在0到1之间。
其原理是使r变大,然后把改变后的r处坐标点的像素值赋给变换前r处坐标点的像素值。这样就使屏幕像素点的颜色值发生了变化,对画面产生了畸变效果。而画面的畸变程度主要依赖于K0、K1、K2和K3这四个系数,合理地选择K0、K1、K2和K3的值能够使画面产生更好的抵消透镜所产生的畸变效果。具体的程序流程框图和畸变后的效果分别如图5和图6所示。
最后模拟人双眼的间距,在虚拟现实系统中,双目立体视觉起了很大作用[12]。用户的两只眼睛看到的不同图像是分别产生的,如果能将双眼获取的画面信息进行较好的重合就可以提供给体验者不错的立体感。在Unity3D中摄相机渲染的画面从左下角到右上角的坐标分别是从(0,0)到(1,1)之间,而能否模拟现实中人的双眼视觉主要与虚拟现实头盔上左右两个透镜中心的参数和左右屏幕中心的参数息息相关。此处进行了一组实验对渲染效果进行测试,参数和渲染效果分别如表1和图7所示。
再分别将四组渲染效果经过HDMI视频信号传输线传输到虚拟现实头盔上的液晶屏中,实验结果表明:C组的参数产生的渲染效果能精确地模拟人现实中双眼的视觉效果并抵消虚拟现实头盔上透镜对画面产生的畸变效果。这样就能提供给体验者较好的立体感,再加上头盔的封闭效果,便可以产生良好的沉浸感[13]。
5 结论
本文在解决虚拟现实头盔的延时感和沉浸感两个问题上采用了创新性的方法。首先,利用复合互补滤波自校准、高精度和连续性强的特性来降低画面实时随头部角度信息变化的延时,进而降低体验者的眩晕感。且在USB数据传输上采用USB的HID协议把低误差的航姿角度值传输到PC端,使数据传输上更快速。最后,在Unity3D引擎上对头部数据进行整合,采用改变各个像素点颜色值的方法对画面效果进行反畸变来抵消头盔上透镜对画面产生的畸变效果,便可给体验者带来更好的沉浸感,也有身处虚拟环境中的错觉,让其身临其境。
参考文献:
[1]熊春山, 王敏. 虚拟现实系统头灰与数据手套的三维精确定向与定位系统与设计[J]. 仪表技术与传感器, 2000 (4): 35-38.
[2]许微. 虚拟现实技术的国内外研究现状与发展[J]. 现代商贸工业, 2009, 21(2): 279-280.
[3]陈耕艺. 虚拟现实的社交之路[J]. 中国信息化, 2015 (6): 16-17.
[4]张其, 袁纵横, 梁丁, 等. 基于 MPU6000 的低功耗无线人体传感器网络节点设计[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]吕印新, 肖前贵, 胡寿松. 基于四元数互补滤波的无人机姿态解算[J].燕山大学学报, 2014, 38(2): 175-180.
[7]万晓凤, 康利平, 余运俊, 等. 互补滤波算法在四旋翼飞行器姿态解算中的应用[J]. 测控技术, 2015, 34(2): 8-11.
[8]李凡红. 两轮自平衡小车系统[D].北京:北京交通大学, 2010.
[9]余彦霖, 祖家奎, 曾国贵. 微小型无人直升机姿态信号的互补滤波融合算法[J]. 直升机技术, 2014, 3: 003.
[10]程德文, 王涌天, 常军, 等. 轻型大视场自由曲面棱镜头盔显示器的设计[J]. 红外与激光工程, 2007, 36(3): 309-311.
[11]张典华, 陈一民. 基于 Unity3D 的多平台虚拟校园设计与实现[J]. 计算机技术与发展, 2014, 24(2): 127-130.
[12]陈涛, 袁东, 吴衡. 头盔显示/瞄准系统仿真技术研究[J]. 系统仿真学报, 2008, 20(8): 2014-2017. 哈涌刚, 周雅. 用于增强现实的头盔显示器的设计[J]. 光学技术, 2000, 26(4): 350-353.
[13]哈涌刚, 周雅. 用于增强现实的头盔显示器的设计[J]. 光学技术, 2000, 26(4): 350-353.
本文来源于中国科技期刊《电子产品世界》2016年第6期第43页,欢迎您写论文时引用,并注明出处。
评论