1. 前面的话
本文分享了来自ACM SIGGRAPH 2020的Tactile Rendering Based on Skin Stress Optimization,介绍了一种基于皮肤应力优化算法的触觉绘制算法,并在一个3自由度的顶针触觉装置上实现虚拟现实的仿真与交互。整个系统在已有论文所囊括的算法、实现方法的基础上,先后建立了机械触觉装置、触觉仿真模拟算法,在近似力学模型的选择中,重点置于数据驱动模型,应用TensorFlow进行了相关数据集的神经网络模型的搭建与训练,最终证实了在触觉模拟当中摩擦对模型的影响,并构建出了在考虑摩擦的情况下模拟应力误差显著减小、系统刷新频率显著提高的触觉绘制模型。
图中,虚拟手与真实手随动,与虚拟物体交互,每一帧都计算触觉激励,进而找到最有的触觉配置,对人手皮肤进行触觉反馈。
本文的主要工作如下:
1. 解决了在虚拟触觉模拟交互中缺乏设备和皮肤之间的机械相互作用的问题,进而解决了触觉应力中的轨迹依赖性或接触刚度问题;
2. 在触觉应力的模拟中,分别计算摩擦力和设备配置,从而可以有效处理轨迹依赖性;
3. 利用现代神经网络的高计算能力建立数据驱动模型,证实了摩擦应力对于虚拟触觉模拟的影响;
4. 在模型的渲染优化中,应用了Gauss-Newton 法,有效缩短了渲染的时间。
2. 研究现状
当虚拟手跟随用户的手进行虚拟现实交互的时候,在每一帧上计算模拟这个交互中的触觉刺激(或者说皮肤应力),并用其来找出产生最佳匹配刺激的触觉装置(这里应用了一种3自由度的顶针触觉装置)配置。
这种皮肤应力的模拟要在考虑摩擦应力(现有技术一般只能模拟压应力)的情况下,尽可能地准确、快速。
触觉的渲染与呈现可以大致分为两类:基于工具的和直接触摸的交互。
第一类主导了算法研究,因为可以使用笔触类型的设备与环境进行基于工具的交互。基于工具的渲染算法控制向用户显示的机械阻抗(位置或力),由于设备/算法的动觉动作和用户动作之间的延迟,它们受制于稳定性约束。大多数算法通过一个虚拟弹簧阻尼器系统将用户的动作耦合到一个虚拟工具上,从而实现稳定的渲染设计。近年来,研究的重点是通过各种碰撞检测和解决技术来最大限度地提高虚拟工具仿真的性能和质量。虚拟工具绘制方法也在不断探索,比如通过模拟用户的手的虚拟手,通过外骨骼手套提供手部的动觉交互。
第二类,也就是在直接接触交互,就是使用多种刺激技术直接刺激皮肤。三种流行的技术是活动表面、超声设备和可穿戴顶针。
活动表面,由一系列垂直销组成,或由气动执行器推动并通过粒子干扰硬化。对于后一种情况,Stanley和Okamura设计了一种预处理优化方法,利用设备的机械模拟模型来近似期望的输出表面。
超声波装置调节超声波换能器阵列的激活,以在空间中创建焦点压力点。
而本篇文献就是基于一种3自由度的可穿戴顶针。
通过穿戴式顶针和超声波设备,触觉刺激仅限于被动的皮肤外层,在这种情况下,触觉渲染不会因为延迟而出现稳定性问题,因此渲染算法的更新速率会影响可渲染交互的带宽,但不像动觉渲染那样影响稳定性。
这篇文献的意义之一是解决了在虚拟触觉模拟交互中,没有考虑到设备和皮肤之间的机械相互作用的问题,进而解决了触觉应力中的轨迹依赖性或接触刚度问题。
3. 总体方法
首先建立了一个顶针触觉装置作为试验台,其有三个自由度,将参考系定于指甲上,控制俯仰角、滚动角和相对距离。
其次建立了手指模拟模型来模拟皮肤应力。用虚拟现实仿真中的全手模型来定义目标的触觉刺激,用数值优化的手指-器件接触模型来评价试验器配置产生的刺激。需要注意的是,建立此模型时,雷伊卡洛斯大学团队不仅考虑了试验器配置(模拟压应力),同时兼顾了其的位移轨迹,用来实现对摩擦、震动的模拟。
再者,建立数据驱动的皮肤模型,模拟创建变形手指的应力分布。在2400个trajectories生成的28279个样品中,一半的数据用于神经网络训练,另一半用于测试。这个神经网络拥有18维的输入与10维的输出,隐藏层中有260个神经元。
模拟手指的变形时,计算当前摩擦状态描述符f,假设摩擦状态的时间相干性高,设触觉刺激(即皮肤压力)。
在渲染算法中,我们的目标是寻找虚拟触觉与目标刺激最匹配的设备配置,在形式上,我们将搜索最优设备配置表述为约束优化问题,其中c(x)≥0为设备的工作空间约束。最终在形式上,我们把寻找最优设备配置的问题表述为约束优化问题:
由于主子空间投影的正交性,在每个绘制帧开始时,我们可以将VE模拟的目标刺激投影到子空间,然后直接在子空间上进行优化,而不需要将应力描述符提升到整个空间。
数值优化方法利用Gauss-Newton法求解上述约束的非线性最小二乘。我们用拉格朗日乘子的二次程序来求解迭代。
由于约束集始终是可行的,并且Gauss-Newton近似保证了其的凸二次性,因此该问题具有唯一保证解。
对于试探性的步骤,我们应用行搜索来确保降低代价函数。每一项的第一次Gauss-Newton迭代在渲染帧时,我们通过将设备配置初始化到前一帧的结果来执行一个热启动(warm start)。
4. 实验验证
1. 定量实验验证
我们使用BioTac传感器通过与真实世界的物体手动交互来捕获一组测试序列,同时记录传感器读数。我们将这些值(即目标刺激)输入到我们的模型中,以获得算出的最佳的设备配置。最后,我们将 BioTac 传感器插入顶针装置,回放优化的装置序列,并将产生的刺激与目标刺激进行比较。
实验结果如下:
绿色:真实世界交互过程中记录的目标刺激;
红色:绘制算法产生的最佳匹配刺激;
蓝色:传感器在回放最佳设备配置时测量的实际刺激。
实验的结果是,对于训练集中的数据,刺激几乎是相同的。甚至对于杯子的边缘这种有在设备的工作空间内无法到达的数据的实验对象,此算法也会产生一个最佳的匹配近似。
2. 定性实验验证
使用 BioTac 与一组真实物体(从上到下:圆柱形泡沫,杯子,盒子)相互作用,以获得一系列目标触觉刺激。然后,我们运行基于优化的算法来计算最适合这些刺激的触觉设备配置。我们将呈现的设备配置与产生每个目标刺激的现实世界交互进行并排比较。
定性实验验证的结果是,模型较为成功地实现了虚拟触觉的仿真与模拟。
3. 用户体验实验
将其与其他两种方法进行了比较,测试了该方法对接触场景的识别能力。
右图是左图食指滑动场景的正视图和侧视图可视化,下图忽视了数据驱动的皮肤压力模型,触觉渲染无法产生依赖路径的皮肤变形。
一种方法是此算法的降级版本,其中皮肤应力描述被指垫上的总接触力所取代,其余保持不变。评估了识别接触位置(因变量)与绘制方法(自变量)的成功率,它向用户显示一个触点在手指垫的后面或前面的一个薄圆柱体。
另一种方法是接触相互作用的几何优化。第二个实验评估按触点或滑动触点区分(因变量)与绘制方法(自变量)的成功率,它向用户显示与同一圆柱体的接触,可以是简单的按压和释放,也可以是侧面的滚动。
在每个实验中,每个被试者都有2个测试,对应2个刺激进行区分,每个有8个略有不同的重复。每个实验的16个测试有大致相同的持续时间(约3秒),且呈现的顺序随机。实验对象被要求保持他们的手和手指基本不动,只接受触觉反馈。
上图展示了触摸虚拟物体的触感。
在每次测试中,实验人员会问“你有没有体验到手指垫后面的接触?”、“你有没有在手指垫的前部感受到接触?”等,实验对象用不到5秒的时间回答问题,然后由实验者对答案进行注释。
30人参与实验,每种方法10人。
实验结果为,本算法支持的实验识别成功率最高,特别是对于应力的定位实验,效果更好。
抓持物体。我们的算法在抓持物体时成功的提供触觉反馈。在抓持圆柱体的例子中,抓持姿态的精细变化产生了物体的平滑运动;在抓持方块的例子中,抖动物体产生了抓持摩擦力的变化。
5. 局限和未来方向
1. 数据驱动的神经网络的建立特别依赖于数据的预处理,对于不同用户的普适性不强;
2. 此的方法仅限于呈现由 VE 中的准静态模拟产生的低空间和时间带宽的效果。更高的空间带宽需要更精确的模拟模型,可能需要更好地处理局部非线性。
感谢李赫洋的校对
本文部分图片和文字来自公开文献
如有使用不当之处请私信告知
- END -
领取专属 10元无门槛券
私享最新 技术干货