Facebook分享如何测量力反馈手套的感知延迟
本文作者:Facebook Reality Labs的软件工程师Forrest Smith
(映维网 2019年07月19日)我在大约一年多前加入Facebook Reality Labs(FRL)。我有幸与世界级的专家合作,并一起发明最前沿的新技术。遗憾的是,我付出的代价是不能再通过博客介绍我的工作。有关我工作的一切都是最高机密。但今天情况发生了变化。
我将介绍我负责的一个软件工程项目。它是如何带来意想不到的发现。是什么致使我们进行用户研究。这产生了一定的新发现。实际上,这篇博文只是简单介绍了FRL的一些研究。
1. 触觉手套演示
我们的一个研究项目是触觉手套。迈克尔·亚伯拉什曾在OC5大会通过一个简短的视频进行了展示:在视频中,一位用户正在穿戴一款触觉手套。在虚拟现实中,系统能够追踪并完全解释她的双手。当她用虚拟手触碰虚拟积木塔时,物理手套将产生触觉反馈。
这个演示的早期版本中存在一个问题:延迟。音频和触觉反馈明显滞后。用户是手触碰积木塔之后才开始感到或听到相应的反馈,彼此不是同步实现。
我喜欢优化问题。首个任务之一是测量。对于纯粹的软件问题,这十分简单。你可以发现各种用于分析代码性能的工具。但测量硬件延迟则更为困难。幸运的是,我有先例可以参考借鉴。
2. 游戏输入延迟
游戏开发商多年来一直在测量输入延迟。“感觉”好的游戏和“感觉”不好的游戏之间的区别很难解释,并且通常难以量化延迟。
输入延迟是一个简单的概念。从按下按钮到马里奥开始跳跃,这期间需要多长时间?从按下按钮到电视像素发生,这期间又需要多少毫秒?一种快速巧妙的测量方法是利用智能手机。你可以以240 FPS录制慢动作视频,然后计算帧数。
更好的方法涉及一种定制控制器。控制器接入包含LED的电路板。检测到按钮信号时,LED亮起。结合高速视频,你可以实现更精确的测量。
比这个更好的解决方案是,修改游戏并令其渲染黑色方块,然后黑色方块能够在按下按钮时变成白色。你可以将光传感器接到显示器,这样可以提供非常精确的测量。
3. 端到端延迟
现在我们知道应该如何测量延迟了。很好。
不尽然。上述方法是用于测量按钮到光子的视觉延迟。我们关心的是缝制在手套内的触觉致动器的延迟。摄像头可排不上用场。
更糟糕的是,我们没有按钮。我们采用的是先进的手部追踪系统。当物理模拟检测到虚拟双手的接触时,触觉反馈就将产生。
我们可以将触觉反馈单独拿出来,但我们关心的是演示体验的端到端延迟。这包括硬件追踪系统,内部软件,第三方软件,设备驱动程序和输出硬件。
下面是我们的测量解决方案:
我们将物理桌面与虚拟桌面对齐。当用户的物理手部轻敲物理桌面时,他们的虚拟手部同时将轻敲虚拟桌面。
然后我们使用两个麦克风。一个指向桌面并记录物理接触的声音。第二个是手套内部的接触式麦克风,其用于记录触觉响应。两个麦克风都输入至能够同步音频流的现场录音器。
接下来,我们不计算视频帧,而是通过Nuendo打开音频流。我们手动注释音频流,然后计算增量时间,亦即我们的端到端延迟。
我们的触觉延迟测量速度高达300毫秒。所有人都知道这很糟糕。但这是我们第一次拥有了具体的数字。
这段时间里面,大约有200毫秒来自于第三方软件。我们不是在开展传统项目。我们希望触觉设备能够以1000赫兹的频率运行。这会导致各种奇怪的边缘情况。一旦我们知道问题出自哪里,我们就能够调整行为并避免中间件的死亡螺旋。
我们的软件管道贯穿多个子系统。它们在多个线程上运行,并以不同的速率更新。
线程问题导致周期浪费,有时甚至是损坏的信号。FramePro是一个可视化多线程行为的优秀工具。
为了验证我们的修复,我们用示波器测量了触觉致动器。作为一个软件人,这对我来说是一种有趣的新体验。
4. 三模态延迟
细心的读者可能已经注意到Nuendo截图中的四个音频流。我的主要目标是衡量和改善触觉延迟。但由于我们的系统实际上属于三模态:我们关心触觉(手套),视觉(VR显示)和音频(耳机)。
为了测量这三者,我们记录了四个同步的音频流:
-
检测物理接触的桌面麦克风
-
检测手套触觉的接触式麦克风
-
用于检测Rift头显音频的麦克风
-
用于检测显示变化(黑色到白色)的光电二极管
我们同时使用接入USB的电容模拟板作为我们的物理触碰目标。这使得我们能够获取软件时间戳,后者可用来测量追踪系统的延迟。
利用这个工具,我们能够提高性能并生成以下信息图:
这时,我们的积木塔演示感觉已经好了很多很多。触觉反馈的延迟感和断开感已经有了很大的改善。用户能够在触及积木的同一时刻感受到触觉。
5. 感知同时性
人类的大脑非常奇特。人类非常善于根据多种感官信息来源来建立世界的心理模型。但有时我们的感官可能存在误导性。你可能已经注意到我之前的信息图中存在一个问题。视觉,触觉和音频的延迟不一样。触觉延迟不到100毫秒,而音频慢了大约40毫秒。
在我们优化演示内容的时候,有人询问是否可以禁用音频。接下来发生的事情令我感到震惊。触觉感觉更加敏感。我希望我能和你分享这段经历。启用音频后,触觉感觉很棒。关闭音频后,触觉感觉超级棒。不是更好,而是显著更好。我们兴奋地跑到办公室,并对大家进行测试,看看大家是否都能感受到这种差异。结果确实如此。
具体来说,大脑将多个感官信号融合到统一的感知事件中。当你看到,感觉到,并且听到你的手部轻敲桌面时,大脑将这三种感官刺激解释为单一的触碰事件。
当其中一个信号(如声音)稍微出现延迟时,大脑对其他刺激的感知将随之变化,因为声音会“捉住”其他刺激。这使得我们有种触觉发生的时间晚于实际接触时的感觉。
下面是奇异和有趣的地方。这种感知变化是自动的和非自愿的。即便你知道音频存在延迟,大脑都不会考虑延迟并进行纠正。无论人们如何专注于指尖触觉,延迟的音频仍然会导致你认为触觉的响应性有所降低。
6. 心理物理学
现在我们面前出现了各种有趣的问题。多少延迟属于太多呢?刺激需要同步吗?降低延迟和增加同步,哪个更重要呢?
为了开始回答上述问题,我们进行了一次心理物理实验。
我们的第一项研究十分简单。我们希望评估视觉和触觉刺激之间所能允许的延迟时间。这项测试在虚拟现实中进行,并且完整地追踪和解释双手。被试执行了操作虚拟立方体的任务。
为了模拟不同的延迟,我们通过写代码的方式来注入额外的延迟。为了允许我们尽早触发触觉刺激(甚至在手指触及表面之前),我们同时编写了一些简单的预测代码。这是一种模拟比我们系统所能允许的更低延迟的方法。我们的预测代码不适用于消费产品,但它在受控环境中运行良好,你能够告诉被试确切的行为方式。
如果在视觉响应后的不到50毫秒内播放触觉响应,大多数被试都会认为视觉和触觉刺激是同时发生。在我们的手套演示中,触觉响应仅在视觉响应后20毫秒内播放。
有趣的是,如果触觉响应比视觉响应早20毫秒以上播放,这种同时刺激感就不会出现。这是一个70毫秒的宽松窗口,但它不是以t = 0为中心。
7. 三模态同时性
我们的初步研究侧重于简单的双刺激测试。接下来,我们进行了一项更复杂的三模态同时性研究,包括视觉,触觉和声音。
这是一个非常难以建模和可视化的问题。我们已经有了数据,但分析仍在进行中。以下是初步结果:
这张图非常密集。我们下面将分解说明。
原点代表所有三种刺激都在同一时间发生的情况。对于图中的其他位置,其表示相对于视觉刺激的时间的不同步进行。X轴表示音频刺激相对于视觉刺激的延迟。正X值表示声音是在视觉出现后播放。负X值表示声音是在视觉出现前播放。Y轴类似,但这是相对于触觉刺激。颜色编码是被试将三种刺激评定为同时发生的百分比。
好了,这意味着什么呢?我发现了两件有趣的事情。
首先,“热点区域”不是以原点为中心。被试对在视觉刺激之前发生的触觉或音频刺激非常敏感。
然后,其形状更接近于椭圆。被试对触觉延迟的敏感度高于音频延迟。这种模态的异步性更加明显。相反,音频延迟往往更容易接受。这与先前的描述一致,即音频“捉住”触觉,甚至可能使其感觉上像是出现了延迟。
但是,目前要得出任何有力的结论还为时过早。我们的样本量非常小,我们的初步实验非常简单。我们发现,改变交互类型会对可接受的异步感影响很大。结果可能会随着不同的任务或不同类型的刺激而发生显著变化。我们向被试提出的调查问卷可能没有捕捉到积木块塔演示中遇到的微妙“延迟”梯度。
最后,我们希望提供“创建引人入胜的触觉用户体验”的指南。我们还没有走到那一步。我们对三态同时性的研究尚不完整。有人可能会说我们的旅程只完成了1%。不过,我们有一个不错的开局。
8. 最后的想法
这就是我今天的故事。我有幸能够研究一个有趣的问题。我们同时发现了意想不到的事情,而且我们对人类感知的原理有了更多的了解。非常感谢看到最后的读者。我非常喜欢这个项目的工作。很荣幸有机会与你分享。