欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

HTC Vive的Lighthouse如何做到六*度跟踪

程序员文章站 2022-04-01 20:09:48
在虚拟现实中,如何做到六*度跟踪?我们都知道传统的惯性传感器是无法做到这一点的,最多只能跟踪头部的转动;想要跟踪头部的位移,就要引入光学系统了。传统的光学系统是摄像头式的,摄像头跟踪头显上标记的马克...

在虚拟现实中,如何做到六*度跟踪?我们都知道传统的惯性传感器是无法做到这一点的,最多只能跟踪头部的转动;想要跟踪头部的位移,就要引入光学系统了。传统的光学系统是摄像头式的,摄像头跟踪头显上标记的马克点实现跟踪,Oculus的Constellation系统就使用了摄像头+红外主动马克点的方式;而HTC Vive则使用了一套十分巧妙的技术,称之为Lighthouse,这套技术由Valve开发,可以说是目前体验最好的VR光学跟踪方案。

HTC Vive的Lighthouse如何做到六*度跟踪

Lighthouse由两个基站构成:每个基站里有一个红外LED阵列,两个转轴互相垂直的旋转的红外激光发射器。转速为10ms一圈。基站的工作状态是这样的:20ms为一个循环,在循环开始的时候红外LED闪光,10ms内X轴的旋转激光扫过整个空间,Y轴不发光;下10ms内Y轴的旋转激光扫过整个空间,X轴不发光。

HTC Vive的Lighthouse如何做到六*度跟踪

Valve在头显和控制器上安装了很多光敏传感器。

在基站的LED闪光之后就会同步信号,然后光敏传感器可以测量出X轴激光和Y轴激光分别到达传感器的时间。这个时间就正好是X轴和Y轴激光转到这个特定的,点亮传感器的角度的时间,于是传感器相对于基站的X轴和Y轴角度也就已知了;分布在头显和控制器上的光敏传感器的位置也是已知的,于是通过各个传感器的位置差,就可以计算出头显的位置和运动轨迹。

HTC Vive的Lighthouse如何做到六*度跟踪

这个系统有很多优势。

第一条是其需要的计算能力非常校

一个光学系统需要进行成像,然后程序就需要通过图像处理的方法来将成像中的马克点分辨出来。成像的细节越丰富,需要的图像处理计算能力就越高。所以红外摄像头比单色摄像头简单,单色摄像头比彩色摄像头简单。Lighthouse使用的仅仅是时间参数,那么它就不涉及到图像处理,对于位置的计算在设备本地就可以完成。

HTC Vive的Lighthouse如何做到六*度跟踪

第二个优点是其延迟也很校

计算能力需求高就意味着延迟会高:图形处理的大量数据要从摄像头传输到电脑中,再从电脑传输到头显上,就会增加延迟。而Lighthouse可以直接将位置数据传输到电脑上,省略了从摄像头到电脑的高数据传输的步骤。

第三,是系统中的追踪物体的数量理论上没有上限。

如果是光学摄像头的话,系统内的跟踪马克点数量就有一个上限,再多了无法处理。Lighthouse基站本身不处理任何信息,所有数据由跟踪传感器本地报告,这是一个天然的分布式系统。这套系统可以很方便地支持多人:两个玩家可以很轻松的在一个场地里同时体验。

HTC Vive的Lighthouse如何做到六*度跟踪

所以Lighthouse造就了目前最好的VR体验。Vive的头动跟踪和手柄跟踪都非常精确,延迟极低,用户甚至可以做出将手柄抛来抛去的动作。就个人体验而言,Vive的头动和手柄跟踪的精确程度已经让人真的产生了“这就是现实”的错觉——你会不自觉的对你在整个环境中所能做到的事情产生更高的期望,比如大动态的动作,试着去伸手够到远方的物体,等等。

当然Lighthouse系统并不是完美无缺。它的主要问题是两个:

从理论来讲,Lighthouse的精度依赖于系统的时间分辨率。

传感器点亮的时候需要精确的知道激光当时的角度,那么就需要很精确的测量激光到达的时间。光敏传感器本身也有一定宽度,如果传感器“挤”在一起,间距达到了传感器本身的宽度量级,那么测角本身就会出现误差了。所以光敏传感器的分布之间需要一定的距离,设备不能制造的太校Valve表示要保持对一个刚体的跟踪,需要至少5个传感器形成一个阵列。所以,Vive的手柄前方的传感器阵列部分体积庞大,是有原因的。

要满足跟踪稳定性和传感器分布的尺寸要求,Vive手柄前端才被设计成一个甜甜圈形状。如果想要将设备的尺寸缩小,那么就得将光敏传感器本身的尺寸缩小,同时降低传感器之间的距离,这个时候就需要更高的测角精度,系统的时间分辨率要求就提升了。

HTC Vive的Lighthouse如何做到六*度跟踪

另一个问题是Lighthouse系统的可扩展性。

如果在一个空间里Lighthouse有许多基站的话,很有可能出现的情况是光敏传感器同一时间内被多道激光扫过,就很难分清楚激光是来自哪个基站,位置计算能力就会变差了。目前的Lighthouse是使用时分复用:任意时刻只有一个基站发光。在未来最彻底的解决方案应该是频分复用——光敏传感器接受的每一道激光都带有信息报告自己的基站的id,但是这样整个系统的设计会变得比现在复杂得多,在那么短的一道激光中做到这一点,也可能需要更昂贵的设备。Valve表示这套系统是理论上可扩展到无限容量的,但是他们并没有披露具体是用怎样的方法做到这一点。

HTC Vive的Lighthouse如何做到六*度跟踪

Lighthouse可以说是Valve带给VR的一个重要贡献:它是目前所有的低成本室内定位系统中性能最好的。

在公布的当初Valve表示将会开放这套系统,各种需要室内定位的科技产品都可以应用Lighthouse——如果这件事情成真,毫无疑问对国产VR头显厂商是一个非常大的利好消息。不过到目前这件事情还没有动静。但是Lighthouse技术原理并不复杂,国内已经有公司在试着自己开发类似的技术。具体效果如何,让我们拭目以待。(编辑:小芹菜)