Facebook分享如何测量力反馈手套的感知延迟
作者:CQITer小编 时间:2019-07-22 01:04
我在大约一年多前加入Facebook Reality Labs(FRL)。我有幸与世界级的专家合作,并一起发明最前沿的新技术。遗憾的是,我付出的代价是不能再通过博客介绍我的工作。有关我工作的一切都是最高机密。但今天情况发生了变化。
我将介绍我负责的一个软件工程项目。它是如何带来意想不到的发现。是什么致使我们进行用户研究。这产生了一定的新发现。实际上,这篇博文只是简单介绍了FRL的一些研究。
1. 触觉手套演示
我们的一个研究项目是触觉手套。迈克尔·亚伯拉什曾在OC5大会通过一个简短的视频进行了展示:在视频中,一位用户正在穿戴一款触觉手套。在虚拟现实中,系统能够追踪并完全解释她的双手。当她用虚拟手触碰虚拟积木塔时,物理手套将产生触觉反馈。
这个演示的早期版本中存在一个问题:延迟。音频和触觉反馈明显滞后。用户是手触碰积木塔之后才开始感到或听到相应的反馈,彼此不是同步实现。
我喜欢优化问题。首个任务之一是测量。对于纯粹的软件问题,这十分简单。你可以发现各种用于分析代码性能的工具。但测量硬件延迟则更为困难。幸运的是,我有先例可以参考借鉴。
2. 游戏输入延迟
游戏开发商多年来一直在测量输入延迟。“感觉”好的游戏和“感觉”不好的游戏之间的区别很难解释,并且通常难以量化延迟。
输入延迟是一个简单的概念。从按下按钮到马里奥开始跳跃,这期间需要多长时间?从按下按钮到电视像素发生,这期间又需要多少毫秒?一种快速巧妙的测量方法是利用智能手机。你可以以240 FPS录制慢动作视频,然后计算帧数。
更好的方法涉及一种定制控制器。控制器接入包含LED的电路板。检测到按钮信号时,LED亮起。结合高速视频,你可以实现更精确的测量。
比这个更好的解决方案是,修改游戏并令其渲染黑色方块,然后黑色方块能够在按下按钮时变成白色。你可以将光传感器接到显示器,这样可以提供非常精确的测量。

3. 端到端延迟
现在我们知道应该如何测量延迟了。很好。
不尽然。上述方法是用于测量按钮到光子的视觉延迟。我们关心的是缝制在手套内的触觉致动器的延迟。摄像头可排不上用场。
更糟糕的是,我们没有按钮。我们采用的是先进的手部追踪系统。当物理模拟检测到虚拟双手的接触时,触觉反馈就将产生。
我们可以将触觉反馈单独拿出来,但我们关心的是演示体验的端到端延迟。这包括硬件追踪系统,内部软件,第三方软件,设备驱动程序和输出硬件。

下面是我们的测量解决方案:
我们将物理桌面与虚拟桌面对齐。当用户的物理手部轻敲物理桌面时,他们的虚拟手部同时将轻敲虚拟桌面。

然后我们使用两个麦克风。一个指向桌面并记录物理接触的声音。第二个是手套内部的接触式麦克风,其用于记录触觉响应。两个麦克风都输入至能够同步音频流的现场录音器。
接下来,我们不计算视频帧,而是通过Nuendo打开音频流。我们手动注释音频流,然后计算增量时间,亦即我们的端到端延迟。

我们的触觉延迟测量速度高达300毫秒。所有人都知道这很糟糕。但这是我们第一次拥有了具体的数字。
这段时间里面,大约有200毫秒来自于第三方软件。我们不是在开展传统项目。我们希望触觉设备能够以1000赫兹的频率运行。这会导致各种奇怪的边缘情况。一旦我们知道问题出自哪里,我们就能够调整行为并避免中间件的死亡螺旋。
我们的软件管道贯穿多个子系统。它们在多个线程上运行,并以不同的速率更新。
线程问题导致周期浪费,有时甚至是损坏的信号。FramePro是一个可视化多线程行为的优秀工具。
为了验证我们的修复,我们用示波器测量了触觉致动器。作为一个软件人,这对我来说是一种有趣的新体验。
4. 三模态延迟




