灯塔激光定位技术之HTC Vive的Lighthouse工作原理

Lighthouse 激光定位技术开源了,开源的内容主要包括以下三个部分:

  1. 硬件部分, Hypereal 激光定位系统硬件部分设计与实现细节都在此次开源中有介绍,内容涉及电路与嵌入式软件。开源涉及的组件均由 Hypereal 激光定位系统原理性验证机版本总结整理而来,去除了验证系统设计中其他与定位特性无关的内容。系统整体结构上分为相对独立的两大在这里插入代码片部分,分别是作为定位信标的激光线束扫描灯塔与被定位设备。
  2. 软件部分,Hypereal 的定位设备,包括 IMU 和 Light Sensor 的驱动程序以及 sample 程序都彻底提供。有了这些驱动程序,VR HMD 和解决方案提供商能很容易获取被定位设备的姿态和位置信息,灯塔的位置和状态,并和 Hypereal 定位算法库集成,第三方可以把 HYPEREAL 的灯塔定位方案集成到自己的 SDK 或者应用中。
  3. 算法部分,Hypereal 直接提供了一个完整的灯塔定位算法库,包括所有的核心算法模块:灯塔扫描和 IMU 数据的解析和处理,姿态求解算法,数据融合算法,双灯塔融合算法,运动预测算法等等。算法库框架完全基于模块化设计,开发者可以基于此框架一键式进行算法研究和定制开发工作。

头动跟踪是VR头显非常重要的技术指标。要做到头动跟踪,最传统的方法是使用惯性传感器,就像我们每日都用的智能手机那样。但是惯性传感器只能测出转动(绕XYZ三轴转动,称之为三个自由度),无法测量出移动(沿XYZ三轴移动,另外三个自由度,合起来称之为六自由度)。另外一点,就是惯性传感器的误差比较大——想要VR头显的误差达到理想水平,可能需要洲际导弹上的惯导系统。所以说更精确和自由的跟踪头部运动,需要额外手段的辅助。
在这里插入图片描述
如上图,就是Lighthouse的基站Vive没有采取通常的使用光学镜头和马克点的定位系统。它使用的这套定位系统叫做Lighthouse,由两个基站构成:每个基站里有一个红外LED阵列,两个转轴互相垂直的旋转的红外激光发射器。转速为10ms一圈。基站的工作状态是这样的:20ms为一个循环,在循环开始的时候红外LED闪光,10ms内X轴的旋转激光扫过整个空间,Y轴不发光;下10ms内Y轴的旋转激光扫过整个空间,X轴不发光。

高速摄影机下的Lighthouse基站Valve在头显和控制器上安装了很多光敏传感器。在基站的LED闪光之后就会同步信号,然后光敏传感器可以测量出X轴激光和Y轴激光分别到达传感器的时间。这个时间就正好是X轴和Y轴激光转到这个特定的,点亮传感器的角度的时间,于是传感器相对于基站的X轴和Y轴角度也就已知了;分布在头显和控制器上的光敏传感器的位置也是已知的,于是通过各个传感器的位置差,就可以计算出头显的位置和运动轨迹。如下图所示
在这里插入图片描述
Lighthouse的原理解释;图自Hizook从理论来讲,Lighthouse的精度依赖于系统的时间分辨率。这也就意味着,光敏传感器的分布之间需要一定的距离,设备不能制造的太小。光敏传感器本身也有一定宽度,如果传感器“挤”在一起,间距达到了传感器本身的宽度量级,那么测角本身就会出现误差了。Lighthouse具体能支持多高的测角精度,Valve并没有给出数据。同时,Valve也表示,需要至少5个传感器才能够保证一个刚体的6自由度跟踪。

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

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

Lighthouse并不是没有缺点——可以说,就现在所接触的设备而言,Vive目前并仍然是开发机状态,在某些基本问题上HTC仍然需要对硬件进行改进。Lighthouse的两个基站里有旋转部件,所以其可靠性尚待检验;基站本身的安装和校准的要求实在是相当精密,对一般消费者而言,门槛过高。作为VR从业者,我们仍然前前后后花了差不多两个下午的时间才真正将Lighthouse调试安装完毕,达到精密完美的状态。而且,高速旋转的部件带来了基站的震动——这种震动会导致跟踪变得不精确,手柄经常出现抖动和跳变的情况。需要将基站固定的十分牢固,才能够获得比较满意的效果。而且,基站震动久了就会变松,用户需要时不时的重新固定。
  下面将谈谈有关的算法原理
  主要基于此数学模型
在这里插入图片描述
此模型基于的图片如下:
在这里插入图片描述
我们通过光学系统所得到的其实是两个角度,这样就可以知道,这个物体的某些点在投影平面上的坐标。这里等同于一个小孔成像的相机模型,也可以很好地表达成一个线性的约束。

在静止状态下我们已知传感器点的相对位置,当物体运动过之后,可以得到某些点的扫描观测值,因为它被照到,它会处在这个空间当中某两个面的交线上,这个可以很好的写成一个线性约束表达式,可以把它们联立起来,相当于做一个最优化的问题,我需要求解在满足这些约束情况下最优的旋转和平移。

这个问题其实是一个比较标准的问题,求解的方法也非常多,其实在视觉领域,对这类问题有很多人做过不同的方法,比如说你怎么样参数化你的旋转,就会有不同的方法,基本上这个应该算是一个比较成熟的问题。
算法流程图如下:
算法流程图
以上我们提到的是激光系统的原理,在头盔和手柄上还可以利用IMU。其实在有陀螺仪、加速器和磁力器的情况下,IMU本身也可以做定位工作,但是它有个很大的问题——会漂移。

其实我们对这个物体姿态有两个数据来源,一个是IMU,一个是激光系统,这两套系统理论上都可以独立对这个姿态进行估计,IMU的好处是采样频率高在短时间内相对来说比较精确,坏处是稍微长一点时间就会有较大漂移。而激光系统则是在大尺度下相对比较精确,但是它可能被遮挡和有误差。即主要工作之一就是怎么把这两个信号融合在一起。
以上就是HyTrack定位系统的基本原理。

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值