Hypereal 定位灯塔
众所周知,HTC Vive 是 VR 领域最优秀的头显之一,而之所以能做到这点,很重要的一个原因就是应用了 Valve 的 Lighthouse 激光定位技术,为头显带来房间级的游玩体验,同时也帮助实现了手柄的动捕操控。可以说 Lighthouse 是 Vive 的核心技术之一。
现在,这一核心技术被国内创业公司 Hypereal 开源了。当然,开源的并不是 Valve 的技术,而是 Hypereal 研发的版本。Valve 此前亦将 Lighthouse 开放给第三方厂商,但并没有开放源代码。
今天,Hypereal 在其官网上放出其激光定位系统的源代码和技术文档。从各模块开源内容详解来看,主要围绕着核心的激光定位技术,包含硬件、软件和算法。基于这一整套源代码,第三方可以自行开发出一套带室内激光定位的VR设备。
据 Hypereal 介绍,开源的内容主要包括以下三个部分:
硬件部分, Hypereal 激光定位系统硬件部分设计与实现细节都在此次开源中有介绍,内容涉及电路与嵌入式软件。开源涉及的组件均由 Hypereal 激光定位系统原理性验证机版本总结整理而来,去除了验证系统设计中其他与定位特性无关的内容。系统整体结构上分为相对独立的两大部分,分别是作为定位信标的激光线束扫描灯塔与被定位设备。
软件部分,Hypereal 的定位设备,包括 IMU 和 Light Sensor 的驱动程序以及 sample 程序都彻底提供。有了这些驱动程序,VR HMD 和解决方案提供商能很容易获取被定位设备的姿态和位置信息,灯塔的位置和状态,并和 Hypereal 定位算法库集成,第三方可以把 HYPEREAL 的灯塔定位方案集成到自己的 SDK 或者应用中。
算法部分,Hypereal 直接提供了一个完整的灯塔定位算法库,包括所有的核心算法模块:灯塔扫描和 IMU 数据的解析和处理,姿态求解算法,数据融合算法,双灯塔融合算法,运动预测算法等等。算法库框架完全基于模块化设计,开发者可以基于此框架一键式进行算法研究和定制开发工作。
Hypereal 创始人黄柴铭
Hypereal 这次开源是早有预告的,在该公司于去年 ChinaJoy 上发布首款产品后,就宣布要将自家的激光定位技术开源。至于为什么要开源,该公司 CEO 黄柴铭是这样解释的:
垄断意味着高价,但 Hypereal 的愿景是为大众提供性价比最高的VR解决方案。目前的灯塔方案虽然效果好,但是技术实现难度比较高,不利于VR产品的普及。我们把自主研发的灯塔技术完全开源出来,是希望更多人参与到该技术的研发和改进中来,加快技术的成熟和成本的降低,以此来促进产业的发展。我们的下一代产品将采用全新的技术,请大家拭目以待。
根据 Hypereal 此前发表在公众号的一篇文章介绍,灯塔(lighthouse)定位技术的最早原型是在1989年被提出的 Minnesota Scanner,其原理是利用扫描激光面对空间进行编码进而对物体做跟踪。而后有很多人基于相似原理做了改进用于不同领域的应用中。Valve首先把它成功的带到了VR消费电子领域。
Hypereal 图形技术总监陈禄在去年 CGDC 的演讲中,对该公司研发的灯塔定位技术进行了介绍:
HyTrack早期原型、基本原理
这是我们公司自己研发的比较早期的原型,做得比较裸。左边是灯塔,有两个电机,电机上面有透镜,这里有一个小动画演示灯塔的结构,可以看到通过透镜把一束激光变为一个扇面,再利用电机使得激光面匀速扫描。
中间的部分是我们头显的早期原型,上面有很多小的线路板就是我们自己制作的传感器模块,每一个中心有一个光电二极管。传感器把光信号转成电信号再到数字信号,然后传到计算机里。基本原理如上图,左边这一块是激光扫描扇面的顶视图,激光会从一个基准位置开始向下扫。在扫过基准位置时刻,我们会发射一个无线同步信号。蓝线是扫到每个光电二极管的激光面。
右边的图是传感器上面的时序图,从收到无线同步信号的时候开始计时,当被光扫过的时候,会留下一个很小的间距的光脉冲,测量脉冲中点时刻,结合电机转速,我们可以计算得到该扫描面相对基准平面的夹角。这样我们就知道这个点处在空间当中哪一个平面上。通过两个方向的扫描,被照到的传感器点我们可以确定其在空间当中的某条直线上。
在这里我们和VIVE采用了不同的技术方案,他们使用的光同步,灯塔会有LED灯。无线同步的好处是,灯塔之间不用同步线连接了,或者灯塔不用互相对着摆放。两种方案在工程实现上的区别很大,测量手段也会不一样,但是本质上都是为了获得同步信号时间。
他接着解释了算法原理,主要是基于一个数学模型:
数学模型
我们通过光学系统所得到的其实是两个角度,这样就可以知道,这个物体的某些点在投影平面上的坐标。这里等同于一个小孔成像的相机模型,也可以很好地表达成一个线性的约束。
在静止状态下我们已知传感器点的相对位置,当物体运动过之后,可以得到某些点的扫描观测值,因为它被照到,它会处在这个空间当中某两个面的交线上,这个可以很好的写成一个线性约束表达式,可以把它们联立起来,相当于做一个最优化的问题,我需要求解在满足这些约束情况下最优的旋转和平移。
这个问题其实是一个比较标准的问题,求解的方法也非常多,其实在视觉领域,对这类问题有很多人做过不同的方法,比如说你怎么样参数化你的旋转,就会有不同的方法,基本上这个应该算是一个比较成熟的问题。
算法流程图
以上我们提到的是激光系统的原理,但不要忘了,在头盔和手柄上还可以利用IMU。其实在有陀螺仪、加速器和磁力器的情况下,IMU本身也可以做定位工作,但是它有个很大的问题——会漂移。
其实我们对这个物体姿态有两个数据来源,一个是IMU,一个是激光系统,这两套系统理论上都可以独立对这个姿态进行估计,IMU的好处是采样频率高在短时间内相对来说比较精确,坏处是稍微长一点时间就会有较大漂移。而激光系统则是在大尺度下相对比较精确,但是它可能被遮挡和有误差。我们要做的工作之一就是怎么把这两个信号融合在一起。
这就是我们HyTrack定位系统的基本原理。
前文已经提到,Lighthouse 定位是 HTC Vive 的核心技术优势之一,而 Hypereal 也表示,基于这一整套源代码,第三方可以自行开发出一套带室内激光定位的VR设备。那么这一开源举措对业内会有怎样的影响呢?对 Vive 来说又意味着什么?
为此雷锋网询问了几位业内人士的看法。
一位同样从事 VR 空间定位领域,不愿具名的人士对雷锋网表示:
开源是一个非常好的举动,这种开放的做法必然加大国内的技术交流水平,推动国内VR行业的整体发展。
但激光定位是一套整体的工程,代码电路图只是整个技术环节中的一部分,如果要实现真正的产品化,还将面对大量的问题——软硬件的集成度还很低,大量的Know-how必须处理。正是因为这样,所以一些国内的从业者会选择与专业厂商进行适配,定向开源。
VR定位领域的技术研发,90%的功力要花在最后10%的优化上,只有做完这10%,才能真正达到国际大厂的水平。总体上这套代码足够业余爱好者搭建一个基础Demo实用,但如果真的要形成量产的产品,还有较长一段路要走。
实际上,国内另一家同样推出了激光定位方案的公司 G-Wearable 也将自家的技术开源了,但是只针对厂商。“因为这东西制造难度不低,就算开源,没有很认真的投入也做不出来。”G-Wearable CEO 郭成告诉雷锋网。
UCVR 联合创始人 & CEO 胡金晖认为,
Hypereal 的光塔定位技术和 Vive 很相似(或者说理论基础一样,实现方式大体一样),但在一些细节地方实现方式有不同。
体验效果的好坏其实来源于很多技术细节。比如我在西雅图学习 Vive 光塔技术的时候 Synapas 提到了多种产生误差的可能,和他们具体的解决方法。但从这两份文件里面没有提到细节,所以不好判断。
但有一点我很欣赏这个团队,他们把 Lighthouse 做出来了。不管别人再说抄袭也好怎样也好,能做出来就是王道,而且 Hypereal 也有自己的创新点 希望他们尽早以专利的形式将自己保护起来。
对于行业的意义主要还是在于精神层面 ,因为这种技术想被广泛授权有点难度,真的背后还是要有一个平台支持(套用 HTC 汪丛青的话)。精神层面就是能够给予中国技术流派 VR 公司一剂强心剂。
雷锋网编辑也曾体验过 Hypereal 的产品 demo,发现它可以提供接近 Vive 的体验,但仍存在抖动及稳定性欠缺等问题。
总体来说,Hypereal 开源受到业内欢迎,但其影响如何仍有待观察。至于对 Vive 的影响,显然还是有限的。