独家 | 揭秘大朋双目激光定位:比HTC Vive更有效率?

  • A+
所属分类:VR资讯
摘要

作为VR头盔空间定位的代表,HTC Vive一直以其Lighthouse激光定位傲视群雄。也许Oculus、PSVR分别在用户体验和内容上有自己的优势,但要说到房间尺寸(Room-Scale)定位,则已经推出一年的HTC Vive,至今在全世界还没有对手,这也可以看出它激光定位方案的强大。

独家 | 揭秘大朋双目激光定位:比HTC Vive更有效率?

作为VR头盔空间定位的代表,HTC Vive一直以其Lighthouse激光定位傲视群雄。也许OculusPSVR分别在用户体验和内容上有自己的优势,但要说到房间尺寸(Room-Scale)定位,则已经推出一年的HTC Vive,至今在全世界还没有对手,这也可以看出它激光定位方案的强大。

先给不玩VR的科普下(不玩VR你看这个文章干啥?),所谓Room-Scale,指的就是用户能否自由地在VR里行走。其实,所谓的VR三大硬件(HTC ViveOculus Rift、PSVR)都能实现一定程度的Room-Scale体验,但Oculus、PSVR采用摄像头为主的方案,效果并不怎么好,大多数情况下还是坐着不动玩更舒服。

HTC Vive的激光方案,才让玩家真正能比较自由地在VR里行走,稳定性和行走范围均远远优于另外两者。可以说,HTC Vive啥都能黑,就是这个定位黑不得。

独家 | 揭秘大朋双目激光定位:比HTC Vive更有效率?

在2017年的CES上,国内硬件厂商大朋带来了双目激光定位方案Polaris,似乎是要以自研技术和硬件,对HTC Vive发出挑战。三月末又召开了发布会邀行业人现场体验。经过现场测试,大朋的双目激光定位方案反馈还不错。

但是我们仍然要问,大朋的双目激光定位原理为何?如何实现?相比HTC Vive又有哪些好处?本着刨根问底的精神,青亭网专门采访了大朋CEO陈朝阳,首次详细独家揭示大朋的技术奥秘。

首先来看看,HTC Vive的方案是怎么玩的?

独家 | 揭秘大朋双目激光定位:比HTC Vive更有效率?

首先,要想明白大朋比HTC Vive好在哪里,我们就必须得再详细阐述一下HTC Vive的定位方案。这一方案使用的是两个名为光塔(Lighthouse)的基站,对角摆放,拉出一块空间,不断发射激光来扫描空间里的HTC Vive和手柄。

那么,基站具体是怎么运作的?现在我们来拆解一下。

独家 | 揭秘大朋双目激光定位:比HTC Vive更有效率?

打开基站,会发现由三个部分组成,分别是LED灯阵列和两个电机。电机用于打出一横一竖两个激光面。

如下图,其中红色面为竖直的激光面,扫动方向是水平的,蓝色为水平激光面,扫动方向为上下垂直扫动,红色阴影部分位于蓝色面下方。

独家 | 揭秘大朋双目激光定位:比HTC Vive更有效率?

每当一个激光面遇到传感器,就会停止扫描并记录角度。假如两个面停止位置如图所示,则可以确定传感器位于两面相交线,即图中细红线上。

这样得到的位置信息是不全面的,因为只知道点在哪条线上,不知道具体在线上什么位置,就像去某个地方,只知道在某条街上却不知道门牌号码。因此需要安装多个传感器。

所以聪明的你可能已经猜到了,HTC Vive的传感器都放在头盔和手柄上,坑坑洼洼、如同月球表面的头盔上,每一个小坑都是一个传感器。

独家 | 揭秘大朋双目激光定位:比HTC Vive更有效率?

横激光面扫到传感器,定位出空间点的x轴,竖激光扫到传感器,定位出空间点的y轴。那么问题又来了,我身在3D空间里,z轴怎么定位?其实通过已知的x、y点坐标,求向量即可知道z轴的方向。

另外,还有一个问题,如何确定方向?

空间中一个不对称刚体自由度一共为6(三个方向的旋转,三个方向的移动,VR头盔是不对称的,虽然看起来左右好像镜像对称,但是对人来说左右眼看的是不一样的)。

 

每两个传感器能确定一个自由度但是同时可以在两组自由度(旋转和移动)中共用传感器,因此最少只要5个传感器就能定位出刚体的6个自由度了,这与Valve给出的说法一致。

独家 | 揭秘大朋双目激光定位:比HTC Vive更有效率?

新版Lighthouse基站的LED阵列排列有变化

然而,实际上定位时由于光线接受可能被遮挡,传感器之间又为了防止串扰信号必须保持距离,所以最后采用的传感器有几十个。所以不要再苛责你头盔为什么长那么丑了,满满的都是爱啊……

重点来了,如何实现完整的数据流程,完成从用户的移动到他们的头盔图像的变化呢?

下面是具体实现步骤了,对于不学理科的同学来说,可能还是有点复杂,打起精神!

我们要先确定关键的数据和采集方法。两个面能确定一条线,所以横竖激光两个面的位置只需要角度就能知道了,而角度是电机的角速度(转速)和用时的乘积,角速度是恒定的,相当于已知,因此记录下时间就行。

独家 | 揭秘大朋双目激光定位:比HTC Vive更有效率?

首先基站会和传感器进行一次沟通,同步闪光(sync light),这样传感器会告诉传感器的控制芯片,让它把计时器(类似于秒表的功能)归零,接下来的10毫米内,会有一个激光面扫过,这个激光面接触到传感器的时候,传感器就会发出信号,计时器就停了,记录下时间,然后归零。紧接着另一个激光面扫过,再次记录时间,归零。

这个过程看似复杂,实际上两个电机只要以20毫秒转一圈的速度(也就是每秒50转)稳定运行,而电机上的激光发射器“此起彼伏”地出现就行了。时间值随后会来到传感器的集线器,再到数据收集芯片,通过WiFi信号以某种数据包形式和协议(如UDP)发送到基站的计算部分。

这样得到了两个时间值能转化为角度值,再转为两个面的方程,求出交线,就能获得一个之前说到的传感器所在的直线方程。然后诸多探测线合并起来,算出一个头盔上传感器方位对应的位置,就是对头盔完成了定位。这个定位数据随后会由基站更新到计算机或主机,在3D引擎内修改摄影机位置,重新计算画面,发送到头盔显示器,完成一帧的显示。

那么,大朋是怎么做的呢?

说完了HTC Vive,终于轮到我们今天的正主儿——大朋了!根据青亭网对大朋CEO陈朝阳的采访,再加上观察和HTC Vive的Lighthouse原理推断,大朋Polaris结构应该类似这样:

独家 | 揭秘大朋双目激光定位:比HTC Vive更有效率?

 

画工丑了点,将就点吧……是的,你没看错,大朋的基站里是三组电机,比Vive多一组。分别为两个打出横激光面的电机和一个打出竖激光面的电机。

如下图,三个激光面会形成三条交线,实际上只任意用两条(比如红和蓝)就能确定交点,该点即为要确定的传感器位置。显然,这样定位方式比起Lighthouse的定位只能确定传感器所在直线位置要更加有效率。

独家 | 揭秘大朋双目激光定位:比HTC Vive更有效率?

不过,实际中设计的时候为了防止横向两个面靠太近,影响精度(就像人要靠两眼间存在距离才好定位一样)。最好的办法就是,把两个横向电机放在纵向电机的上下两个位置。

这样传感器的数量比起Lighthouse大约能减少一半。但是存在问题是,如果激光面照不到传感器就没有效果了,为了实现无死角,最简单的方式就是在基站的另一面再放一个基站,就能覆盖到了,这样双基站的设计能让传感器数量再减一半。大概像这样:

独家 | 揭秘大朋双目激光定位:比HTC Vive更有效率?

最后需要的传感器数量大概是Lighthouse的四分之一左右。事实上,大朋官方也是这样宣传的,即头盔所需传感器相对Vive较少,仅需六个。头盔得以更轻便,而相对的,大朋的基站就要比Lighthouse体积更大。

实际工作顺序如下:

首先LED阵列发出闪光,与传感器控制芯片同步一次,然后开始计时。如果能做到16毫秒左右延迟的话,总周期应该是15毫秒以内。

这里假设是15毫秒。则闪光后第一个5毫秒内,第一个横向激光面扫过,传感器发信号之后记录时间;第二个5毫秒内,纵向激光面扫过,传感器发信号后记录时间;第三个5毫秒内,第二个横向激光面扫过,传感器发信号,记录时间,然后WiFi信号传输时间数据包给基站进行位置计算,上传到计算机或主机完成位置数据更新。

独家 | 揭秘大朋双目激光定位:比HTC Vive更有效率?

其实和HTC Vive很类似,只是多出一步横激光面的扫描。

陈朝阳的在读完青亭网的原理解析后,表示认可:“原理上已经写的很好了。没什么好补充的了。” 但他也强调:“95%的难度在工程实现上,太多细节要考虑了。”

国内专注于大空间多人定位的公司ZVR CEO郭伟也对青亭网指出,激光方案主要是工程方面的问题,在具体的电机调校、产品量产、供应链方面会有很多坑。

最后,对大朋定位方案我们的疑问

独家 | 揭秘大朋双目激光定位:比HTC Vive更有效率?

综上,我们对大朋的定位方案进行了解读。但是聪明如你,一定还有一些疑惑。是的,关于大朋的定位方案,从原理上来说,我们萌生了这几个问题(见文末附录)。

青亭网就这些问题对陈朝阳进行求证,对方给出了可以理解的答复:“目前还没到开源我们的所有原理的时候”

笔者期待,作为国产硬件中少数采用自研技术方案的厂商,大朋的定位方案能够走出一条自己的路,用体验说话,在未来能够对这些问题作出完美的解答。

(附录:青亭网对于大朋定位方案的具体疑问,感兴趣的小伙伴可以自己思考一下)

1. 如果采用双基站设计,如何协调两个基站的定位?比如一个传感器接受到红外线,发出信号,这个信号算是基站A的还是基站B的数据?我猜测解决方式可能是不同基站采用不同频段,这样传感器就能识别不同基站发出的激光面了。但是理论上只要知道传感器能够被哪个激光面先扫到就可以知道信息了,或许有算法来避免繁琐的硬件改动?

2. 假设三个激光面扫描时间相等(比如都是5毫秒),电机一般都是匀速转动的,第一个激光面扫完用了5毫秒之后,再次进行扫描是10毫秒之后(也就是另两个激光面扫描的时间),那么这个扫描面应该只有360度的三分之一,也就是120度角,如何实现全方位的扫描呢?

3. 既然是双基站的设计,具体怎么实现单基站和无基站的定位方式呢?比如怎么解决单基站覆盖面不够的问题。

4. 有进行双基站数据校正的必要吗?比如一个传感器在两个基站定位数据存在微小偏差怎么办?

  • 领支付宝红包
  • 扫一扫领红包
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: