CSK.Blog--个人原创Weblog

« 低成本激光投射虚拟键盘的设计制作-上(原理和硬件) 聊聊几个特殊的显示屏:EL和单色等离子工业屏的浅析与使用 »

Oculus Rift 虚拟现实眼镜的介绍、体验和应用畅想

本文最早发布于ifanr,当时地址为:http://www.ifanr.com/288886
先转回我自己的Blog

1. 简介

去年8月的时候,我经好友介绍,了解到了当时正在Kickstarter网站上募资的Oculus Rift虚拟现实眼镜项目(后文简称Rift)。虽然那个时候Kickstarter上的项目页面中并没看到Oculus Rift眼镜的实物,不过看过五分钟不到的演示视频的后,我便迫不及待的想预定一台了。

图: Oculus Rift在Kickstarter上的募资页面

与目前同样被广泛关注的Google Glass不同,Rift是一款虚拟现实(VR)的头戴式显示器。在带上它之后,使用者将看到的是另一个虚拟的世界,并且通过双眼视差,使用者会有很强的立体感。此外,由于Rift眼镜当中配有陀螺仪、加速计等惯性传感器,可以实时的感知使用者头部的位置,并对应调整显示画面的视角。这样一来用户就仿佛完全融入在到了这个虚拟世界当中。

图:Rift将电脑中的虚拟场景展现给用户

图:Rift配备的惯性传感器感知用户头部的姿态信息
来源:Oculus Rift SDK文档插图

自然不难想象,Rift的最佳应用之一就是电子游戏。虽然目前各类游戏已经可以渲染出以假乱真的3D场景,但是由于玩家仍旧是盯着一个有限大小的显示器看。相比如果使用这类虚拟现实眼镜,相信可以极大增强玩家的现场感,多少可以体验到像电影Matrix中那样后脑插上电缆,就可以进入另一个世界的感觉吧!

从技术上来说,虚拟现实眼镜并不是什么新鲜玩意。相关的研究领域十几年前就开始使用这类设备开展研究了。不过在Rift问世之前,这类设备往往不是售价昂贵就是性能不足,难以带来逼真的虚拟现实体验。

图: 美国军方使用虚拟现实眼镜对士兵进行训练。
来源: Wikipedia(http://en.wikipedia.org/wiki/File:VR-Helm.jpg)

而Rift相比他们来说显得非常“亲民”。当时在Kickstarter上赞助一套完整的Rift眼镜开发者套件是$300,而对于身在中国的我,需要额外Pledge $30作为快递费用。因此当时“订购”一台Rift眼镜的价格就是$330,约合¥2032。

这个价格相比其他动辄上万的专业级别VR眼镜来说便宜了不少。但如果单从价格本身来看,可能还是会觉得这个定价偏贵,更何况Kickstarter项目并非是购物的过程。赞助者需要承担项目今后夭折而颗粒无收的风险。

不过在我比较了目前市面SONY的另一款相似的3D头戴式显示器后,觉得这个价格还是很合算的。虽然Rift的显示分辨率比SONY的产品略低,但是Oculus官方宣称他具有110度的视角,并且带有头部姿态传感器。而SONY的眼镜则只有45度的视角,并没有姿态传感器来实现虚拟现实的应用,但价格却在¥5000以上。

图:Oculus Rift宣传视频中宣称的110度视角

经过了半年多的等待,Oculus团队不负众望陆续将Rift开发套件送到了全球各地的赞助者手上。我也在今年4月底收到了等候多时的Rift。

那么Rift到底用起来感觉如何?接下来我将向大家分享我的使用体验。并且由于我本身对电子制作和机器人有浓厚兴趣,因此本文也将花一定篇幅探讨Rift背后的技术实现以及针对他进行扩展应用。

2. 开箱照

我的Rift是从香港寄来的,快递使用的是EMS。打开纸箱后就会看到Rift定制的黑色箱子,感觉很专业:

打开箱子后就可以看到Rift整机、说明书、连接线和其他配件:

在说明书中列出了套件中的所有物品清单,可以看出Oculus很用心,还准备了两种不同长度的HDMI连接线。另外箱子中也包含了不同国家的电源插头转接头,同时还有为不同裸眼视力人群准备的可拆换镜片(后文将具体介绍)

一套完整可以工作的Rift套件包含如下的部分:Rift眼镜(显示器),眼镜驱动器盒子、电源适配器、连接电脑用的HDMI和USB线缆:

Rift真机相比之前宣传的概念图有所变化,外壳的圆角取消了,并且感觉体积略大。不过重量控制的比较好,戴在头上不会有明显的负重感。

做工上我认为只能算中上水平,不过要知道对于一个之前没有涉足硬件制造的团队来说,半年内生产出上万的批量合格产品绝非易事。
在早先的Oculus进度通报邮件中提及,目前所有的开发者套件均由深圳的工厂负责代工。

3. 使用过程和体验

连接与供电:

Rift本质上说是一个接受HDMI和DVI输入的显示器,同时也是一个可以检测空间姿态信息的USB设备。所有与电脑连接的接口都设计在了Rift驱动器盒子上:

图:Rift驱动器盒,与Rift眼镜采用固定的电缆连接

图:驱动盒的接口,依次为:HDMI、DVI、Mini USB和5V直流电输入

控制盒的另一侧是各类控制按钮,包含电源控制和对画面亮度、饱和度的调节:

在使用时,用户必须将电脑的HDMI或者DVI之一的信号连接到Rift,同时还需要连接USB线缆,以及一个用于供电的直流电适配器:

图:Rift需要5V 1500mA Max的额外供电
从接口上来说还是比较繁琐的,这也限制了Rift使用的便携性。普通用户无法带着Rift在户外或者没有交流供电的环境下使用。之所以需要额外的直流电适配器,我认为是因为Rift自身功耗较大,无法直接通过PC的USB口获取足够的电流。在本文后续部分我将具体探讨这一话题,以及改造的可能。

将HDMI和USB线与电脑连接后,通过控制盒上的电源按钮可以开启眼镜:

Oculus巧妙地将蓝色的电源指示LED安排在了自身眼睛形状Logo的中间,再次体会到制作团队的用心。

画面体验和原理简介

在开启电源之后,即使没有打开Rift专用的程序,也可以看到Rift眼镜中已经有画面显示了。

如果将Rift眼镜上的透镜拆掉,就可以看到藏在眼镜底部的LCD显示器。它只是简单的复制了电脑显示器的画面而已。

另外也可以在电脑的设备列表中看到名为Tracker DK的USB设备,它是一个标准的HID输入设备(鼠标、键盘这类外设均为HID设备,即人机接口设备,他们拥有共同的通讯协议规范)。

之所以要强调这两点的用意是为了说明Rift具有很好的兼容性。主流的系统不需要安装额外的驱动程序就可以使用。
这里先使用Oculus官方提供的一个实例程序来体验Rift的实际感受。不过最真实的感受还需要大家亲自体验,这里我尝试通过各种角度的描述,尽可能多的讲述我自己的感受。

上图为Oculus官方提供的演示程序的启动配置窗口。目前采用Oculus SDK开发的应用大多采用这个标准的配置界面。由于目前Rift眼镜采用1280x800的LCD,因此在演示程序稍后就会将画面切换到该分辨率下。(经过我验证,Rift可以接受1080p的画面输入,但是就和投影仪一样,在眼镜中显示的实际分辨率仍旧是1280x800的缩小后的画面)

启动后电脑显示器将出现下图那样的左右看似重复的画面,并且边缘还带有扭曲:

很容易猜到这两幅画面其实分别对应了Rift中左右眼应该看到的部分。而之所以扭曲,这便是Rift能实现110度视角的奥秘所在:采用凸透镜将画面放大。

图:利用凸透镜将原先长度为x的画面放大至x’
来源:Oculus SDK文档

图: Rift在LCD屏幕前安装了凸透镜,用于扩大视角

由于凸透镜在放大画面的同时会产生扭曲,因此就需要先将PC的原始输出画面做扭曲的处理,就可以抵消扩大视角范围造成的画面扭曲。

为了给大家直观的感受,这里将Rift左右眼位置的凸透镜拆除,可以看到背后的LCD显示的对应画面:

虽然这样远距离看上去画面很清晰,但是如果不安装凸透镜,直接将rift带上,双眼就会看到模糊一片的景象,并且也会感觉画面很小。

那么带上Rift看到的画面是怎样的呢?这里我将相机仿造人肉眼那样直接贴紧Rift拍摄,此时的画面就和亲身的体验很接近。不过亲身的体验是全三维的,很有现场感。这种感觉靠本文难以带给读者。

图:相机尚未完全紧贴Rift时的效果,此时基本可以看到画面。

图:相机完全紧贴Rift拍摄的效果,此时的画面与亲身的体验很类似(立体效果无法展现)

从实际体验来看,首先很明显的感受是融入感很强,感觉并不是盯着一个屏幕看,而是完全进入了这个场景。这也是Oculus之前宣称的。但是不足的是画面的颗粒感很强。带上眼镜后,原本屏幕上显示的画面被放大到了全部视野,感觉有几米那么高,因此实际眼睛看到的效果和下图类似:

图:与亲眼体验Rift感受类似的画面,颗粒感比较强

这算是目前开发机最大的不足。不过相比融入感带来的体验来说,这种颗粒感很快就会被忘却。总的来说感受就是:奇妙!

对于我这样的近视人群,使用Rift时无法佩戴眼镜,那么是否会看不清画面呢?这点Rift团队的确也想到了,为了照顾不同视力的人群,目前开发套件中包含了3种规格的凸透镜,规格分别叫做A Cup, B Cup和C Cup。按照焦距分别对应于远视、正常视力和近视。

每种类型的凸透镜均有两片,可以左右眼位置安装不同规格的透镜。

此外,由于不同人视力差异,Rift眼镜还带有焦距微调机构,可以分别调节左右眼的焦距:

图:Rift两侧都带有可以微调凸透镜焦距的机构

视角切换体验

作为虚拟现实眼镜另一个很重要的指标就是在人扭头,视角切换时候,所看到画面随着切换的响应速度了。如果传感器或者软件处理的较慢,则会感受到所看到的画面有所滞后。从而产生不真实感,更是会令人晕眩。

对此Oculus Rift在宣传中申明采用了1000hz刷新率的惯性导航定位算法,可以实现很低的滞后率。

从我的感受看,前文提到的官方演示程序的确表现很出色。读者不妨先看这段视频感受一下。

佩戴舒适度与晕眩感

由于Rift眼镜较轻,因此短期戴在头上不会有什么负重感。但由于需要将双眼长时间封闭,因此在天气较热的时候会觉得不舒服。
而晕眩感则较为明显,由于目前Rift仅能感受头部的转动,不能感受身体移动。因此在虚拟场景中的移动一般是需要通过键盘、游戏杆这类传统设备来控制的。而在“移动”的时候,由于虚拟现实带来的融入感,人体本能的会认为自身出现不受控制的漂移。此时就会产生晕眩感,这与晕车晕船的体验一样。并且长期也可能出现恶心呕吐,这一点也在Rift的操作手册中重点给出了警告。
不过我发现晕眩感主要发生在虚拟场景由静止变为移动,或者移动方向剧烈变化时刻,而较为缓慢的“移动”速度可以减轻晕眩感。
要解决这个问题,或许最好的途径就是让现实世界中的使用者真正的动起来。对此,国外的Virtuix公司给出了一个比较好的方案。将Rift配合他们研制的全方位跑步机来使用。不过我目前没有这样的跑步机,具体效果就不得而知了。不过可以做其他方面的尝试。这将在后文提到。

图:Virtuix的全向跑步机配合Rift实现带有移动感知的虚拟现实体验

支持Rift的应用和游戏

相信大多数购买或者打算使用Rift的用户都会关心这个问题,目前来说支持Rift眼镜的游戏和应用的确只有几款。
从我了解到的情况看,目前可以获取的,唯一的支持Rift的完整版本游戏是由VALVE出品的Team Fortress 2。这款游戏目前可以免费从官方下载并使用。

图:Team Fortress2 官方放出的支持Rift的宣传图
我也下载了这款游戏并结合Rift进行了体验。总体感觉不错。
Team Fortress2需要通过设置命令行参数”-vr”激活Rift模式,但目前只有Windows版本的Team Fortress2支持Rift眼镜,而MacOS和Linux版本尚无法开启Rift模式。
在以Rift模式启动后,所有的界面都会变成左右画面模式,以方便用户通过Rift直接操作:
图:启动Rift模式后的Team Fortress2主菜单

从Rift中看这个主菜单像是在2米外的一个100寸投影屏幕。并没有填充到所有的视野范围,正因为如此,在1280x800的分辨率条件下,留给主菜单显示的实际分辨率很小,大概只有3/5的画面面积。因此导致菜单中的文字难以看清。Team Fortress2开发团队也意识到了这个问题,刻意在Rift使用说明中指出,需要先通过普通模式玩过游戏熟悉界面后,才推荐进入Rift模式。

图:在Rift中文字难以辨认
不过还是能看出游戏开发团队为了支持Rift付出的努力。为了避免玩家出现晕眩等不适症状,在rift模式下游戏包含了专门针对Rift的校正工具。用于按照每个人的特点定义画面的各类参数,主要的校正项目是双眼的间距:

图:Team Fortess2专门为Rift设计的校正工具
这个工具很大程度上的增强了Rift的使用体验,也是目前其他Rift应用所没有的。
在进入游戏后的感觉还是非常棒的,画面的延迟几乎不存在。同时现场感很强,在物体近距离爆炸产生的残片飞近时,我会不自觉地眨眼甚至尝试扭头躲避!并且可以在游戏中随意扭头查看四周情况,而不干扰传统使用鼠标进行的动作,与现实中非常像。

图:从Rift中看到的游戏场景
图:游戏中扭头看身后的情况

不过除了这款游戏之外,目前可以获取的只有少数的几个演示程序。除了前文介绍的Oculus官方的例子外,其实有一款名为Museum of the Micro stard的演示程序。不过相比较,它的体验并不好,主要是画面的滞后感较大,此外在虚拟世界中移动速度过快,很容易产生晕眩。
图:Museum of the Micro stard的场景

不过随着Rift开发套件的陆续发货,今后将有大批的游戏和应用出现。目前在kickstarter上也已经可以看到几款为Rift开发的游戏的募资页面了。
目前网上有一个已经或者将要支持Rift的应用列表:http://www.roadtovr.com/oculus-rift-games-list

在后文我们也将看到,Oculus SDK已经对Unity引擎提供了不错的整合,对于本身基于Unity开发的游戏或者应用,相信迁移到Rift上应当不是难事。

体验小结

总体来说Rift眼镜是满足我的期望的,并且带来的虚拟现实融入感很强。对于画面分辨率低的问题可以一定程度上被忽视。而且随着今后零售版本的发布,相信那时候将采用1080p或者更高的LCD,此时画面颗粒感的问题应当有所缓解。

4. 内部构造和简要分析

在介绍完了Rift的使用感受后,让我们了解下Rift的构造和原理问题。由于之前ifixit网站已经做过了这方面的拆解:http://www.ifixit.com/Teardown/Oculus+Rift+Teardown/13682/1,因此这里就直接以他们的图片作为例子。

Rift可以通过简单的步骤拆开,在其核心的眼镜部分包含了LCD面板以及带有三轴陀螺仪、三轴加速计和三轴磁罗盘的9自由度传感器PCB。

图:将Rift眼镜分离,并拆开。来源自ifixit的拆解文章

图:所有核心的部件均安装在眼镜底部的平坦部分。
其中画面上半部分据采用了一块由台湾生产的1280x800 7寸的LED背光LCD,据ifixit描述,这块面板的厂家也将在今后给apple ipad mini供应面板。而面板本身则通过画面中那些细线与控制盒连接。通过其中使用的芯片(HX8851)可以得知,该信号线为LVDS,电脑输出的HDMI/DVI信号应该已经在控制盒中完成了转换。

而上图下边的黑色PCB对于制作无人飞行器的朋友会很熟悉,它其实就是一个标准的航姿参考系统(AHRS):

图:Rift使用的姿态传感器PCB

图:同样功能的PCB在四旋翼等飞行器中广泛使用。
图片来源:https://code.google.com/p/arducopter/

对于飞行器来说,带有这类功能的PCB显得非常常见。从ifixit的照片中可以得知,Rift采用了MPU6000的陀螺仪/加速计集成芯片。该芯片内置了3轴的陀螺仪和加速计,并且使用SPI总线对外输出数据,完全可以实现官方宣称的1000hz的采样速率。而画面上放黄色的芯片为Honeywell的HMC5883 3轴电子罗盘。在工作中,陀螺仪和加速计将用于感知自身的俯仰角和翻滚角信息,并配合电子罗盘得到人的水平朝向角度。
画面中央红色的芯片是一块主频为72Mhz的32位ARM处理器,STM32F103C8。该芯片应该将负责采集各传感器的数据后,进行必要的数据融合和滤波,并将处理好的姿态信息发送给PC机。
这样的配置,对于要实现低延迟的视角切换来说应当是绰绰有余的。

相比Rift眼镜部分,控制盒的构造就显得更为简单。从ifixit的拆解图看出,他内部基本部件就是负责将HDMI/DVI信号转化为直接驱动LCD的LVDS信号。并且负责稳压和对姿态传感器信号的转接传输工作。

图:控制盒的PCB,红色最大的芯片为视频信号接口芯片

5. 扩展开发探讨

官方SDK简介

目前官方提供了可以在Windows/MacOS上工作的SDK,并且是完全开源的。从中可以看到对于底层设备通讯到上层进行画面渲染的所有细节。

图:Oculus官方提供的Rift SDK下载

对于Windows下的开发,SDK中包含了Visual Studio 2010的工程文件,可以很容易的编译出之前文中提到的官方Demo以及另外两个例子应用。

检测Rift上姿态传感器用的工具程序:


以及一个简单的室内环境场景例子:

SDK中的例子也允许开发者设定各种参数用于调节最佳的体验:

对于有图形开发经验的人来说,使用SDK配合这几个实例程序是很容易开发出自己的Rift应用的。同时SDK的源代码采用C++开发,实现上具有很好的平台依赖的抽象,可读性优秀。很容易移植到其他的平台当中,也是不错的学习资料。

便携式改造的探讨

这里讨论下如何将Rift改造成适合随身携带使用的可能性。前面的介绍中提到Rift不方便随身使用的问题。其中一个关键障碍在于它需要一个接交流电的5V电源适配器。
其实要解决对交流电的依赖很容易,可以使用5V输出的移动电源、电池组等给Rift进行供电即可。同时,我也对Rift工作时的具体功耗做了测试,大部分情况下,Rift的工作电流是<600mA的水平。目前的很多PC其实都可以提供1A的USB供电电流输出,因此也可以直接将Rift改造成为完全由USB供电的版本。

图:实测Rift功耗情况
此外,Rift依赖PC进行画面的渲染和处理。但即使随身背着一个笔记本电脑用Rift眼镜也是很不方便的。其实如今U盘大小的miniPC相当普遍,我也曾基于这类MiniPC进行改造用于机器人控制等方面的应用。目前miniPC基本都带有HDMI输出,以及足以胜任3D渲染的GPU。因此将Rift与miniPC整合起来,将会是一个不错的尝试!

图:我使用MiniPC进行的机器人控制应用,同样可以用于驱动Rift眼镜

实现移动感知的探讨

Rift美中不足的是无法感受使用者的移动,而使用键盘、游戏杆这类传统设备在虚拟世界中行走不但缺乏真实感,同时也会令使用者产生晕眩。
在前文中我提到了国外公司在这方面的尝试,不过他们的全向跑步机还没有上市,并且售价或许也不低。除了这个方案外,我认为也可以使用Kinect、激光雷达这类设备来获取使用者的空间位置。
下图为我团队所开发的0-6米全向激光测距雷达系统。他可以实时的扫描环境四周(360度)的物体相对于自身的距离,并且可以提供毫米级别的定位精度。用它来结合Rift进行虚拟现实世界中人物移动的判断,当属不错的选择。

图:使用激光雷达进行Rift使用者的跟踪

应用的展望

Rift带给人的体验是从前没有过的,即使目前它还存在各种不足,我相信这类虚拟现实技术一旦在日常生活当中普及将极大地改变现在的世界。并且随着今后硬件不断地升级。这些不足将会很快的得到解决。
除了用于游戏娱乐外,我从自身角度认为Rift这类虚拟现实眼镜配合机器人技术也将大有用武之地,比如配合立体摄像机以及高速云台系统,戴着Rift的用户可以远程操作机器人身临其境的感受另一个地方机器人所感受的世界,这将大幅提高远程作业、远程办公等应用的体验。这也将是一个不错的应用可能?

图:Rift代表的虚拟现实技术与机器人技术的融合
  • 相关文章:
  • quote 1.akey
  • 针对rift的电影应该也是一种不错的应用。需要为此开发特殊的拍摄系统和播放系统,是一个不错的商业机会。
  • 6/30/2013 7:54:06 PM 回复该留言

发表评论:

注意:为了有效防止SPAM,任何含有http://字样的消息会被阻止发布同时,本站仅供技术交流,请不要讨论任何政治敏感话题或者低级趣味问题。

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Copyright Shikai Chen 2000-2012. Powered By Z-Blog(CSK Modified)