APP下载

基于数据手套的虚拟物理实验室系统的设计与实现

2020-10-26

科教导刊·电子版 2020年22期
关键词:手套虚拟现实物体

(东北大学软件学院 辽宁·沈阳 110000)

0 引言

随着近年来高等教育实验教学改革和实验项目信息化建设的不断推进,为响应国家教育部关于开展示范性虚拟仿真实验教学项目建设的号召,充分利用信息技术与高等教育实验教学深度融合、教育资源共建共享的先进机制,拓展实验教学内容的广度和深度、延伸实验教学的时间和空间、提升实验教学的质量和水平,搭建高灵活性、互动性、操作复杂性的物理实验室系统对数字化教育平台建设具有重要意义。本文利用包括基于物理的实时渲染技术在内的多种数字还原技术,结合应用广泛的虚拟现实开发平台,以数据手套作为交互设备,通过若干个典型的中学物理实验的仿真还原,设计并实现一个虚拟物理实验系统,验证物理实验在虚拟现实平台的可操作性以及数据手套在虚拟物理实验中便捷、精确和直观的交互方式。

1 相关技术

1.1 Unity引擎

Unity引擎是一款被广泛使用的实时3D开发工具,由于其成熟的开发流程、丰富的开发资源,近年来被用作虚拟现实内容的首选开发平台。其优秀的跨平台特性也为虚拟现实和多体感交互开发提供了便利。

1.2 3DMax

3D Studio Max,常简称为3d Max或3ds Max,是Discreet公司开发的基于 PC平台的三维动画渲染和制作软件。3ds Max是广为人熟知的3D内容制作工具,性价比较高、易于上手且插件资源丰富,广泛应用于广告、影视、工业设计、建筑设计、三维动画、多媒体制作、游戏、以及工程可视化等领域。

1.3 Substance Painter

Substance Painter是一款基于物理效果的材质制作工具,在追求真实质感表达的3D仿真类项目中,常被用于制作逼真的材质效果。

1.4 PBR技术

PBR全称是Physically Based Rendering,基于物理的渲染,是时下非常流行的拟真渲染技术。基于物理的渲染技术使用物理原理来模拟光和物质之间的相互作用。它是利用真实世界的原理和理论,通过各种数学方法推导或简化或模拟出一系列渲染方程,并依赖计算机硬件和图形API渲染出拟真画面的技术。

1.5 数据手套

数据手套是一种多模式的虚拟现实硬件,可进行虚拟场景中抓取、移动、旋转等操作,也可利用它的多模式性,控制场景漫游。本项目采用的数据手套为Noitom Hi5(图1),采用惯性动作捕捉技术实现对手部姿态的获取。NoitomHi5手套配备7颗9轴高性能惯性传感器,可达到低于5ms的延迟,在腕部还提供振动模块,可以在使用时产生震动触觉反馈,增加虚拟现实中的沉浸感。

图1:Noitom Hi5数据手套

2 系统设计

2.1 场景设计

本系统主要由五个虚拟场景组成:一个主场景、三个主题场景和一个多人合作场景。在场景设计上遵循场景风格服务场景功能的原则。

如图2所示,主场景用于基本实验操作,为使用者进行中学物理实验提供虚拟场所,仿真实验的主要目的则在于通过仿真程序来实现真实世界的实验,在节省器材资源和降低实验风险的情况下产生相同于真实实验甚至实现真实实验达不到的效果。

图2:主场景与实验器材

为了满足以上需求,在实验选取方面,选取以下实验:(1)验证动量守恒定律;(2)牛顿摆球;(3)描述小电珠的伏安特性曲线;(4)影响滑动摩擦力大小的因素;(5)利用气垫导轨验证牛顿第二定律。

主题场景则提供寓教于乐的交互场景,每个主题场景都以一个中学物理知识模块为主题,将该模块内的知识灵活搭配,创造一个具体的环境以锻炼学生使用本模块所学物理知识解决实际问题的能力。

2.2 交互功能设计

本系统为“多体感”的虚拟物理实验室系统,“多体感”是指交互方式上将涉及数据手套、虚拟现实平台等多元交互设备的使用。在向虚拟实验系统中引入复杂交互设备的同时,提高交互设备为使用者带来的体验升级便成为系统开发的重要内容,本部分内容将从操作的功能分析、交互设计、具体实验的交互开发这三个方面阐述本系统的开发工作。

2.2.1 操作功能分析

人物漫游:使用者通过VR设备对虚拟场景进行观察,并可在场景中移动的功能。

物体交互:使用者通过数据手套与模型交互的功能。通过对数据手套进行逻辑控制,让使用者能在虚拟环境中触碰、抓取、移动、操作实验器材。

2.2.2 操作功能模块设计

操作功能包括使用者在虚拟场景内的移动、观察,以及与实验器材的交互操作,如抓取、触摸、旋转等。如图3所示,本系统在用户的模型手背上添加了操作按钮,激活此按钮后,用户手掌中心将生成一个控制移动的虚拟摇杆,操作摇杆即可在虚拟场景中任意移动。

图3:控制移动的虚拟摇杆

2.2.3 实验交互功能模块设计

实验交互功能是对每个物理实验操作仿真的具体实现,包括器材交互和UI交互。对于不同的器材,需要设计与其实际使用相适应的交互方式,如电学元件的连接、砝码的夹取等。本部分以“探究影响滑动摩擦力大小的因素”实验为例,展示相关设计。

由图4实验流程图可以看出,在该实验中,用户需要完成对小车及其上砝码的放置操作。砝码的放置需要使用镊子进行夹取,通过限制交互手段、UI提示等多种方法向用户说明仪器的操作规范。此外,在UI系统和实验操作流程中采用正交化的设计方式,可以在确保操作自由度的同时,避免因操作顺序错误出现的逻辑冲突。

图4:“探究影响滑动摩擦力大小的因素”实验流程

3 系统实现

3.1 场景模型与特效制作

完成本项目场景制作的PBR流程:使用3ds max进行多边形建模、拆分UV后导入substancepainter完成法线、AO贴图的制作,绘制材质贴图,最后将模型和材质贴图导入unity引擎中进行配置并对场景进行打光和烘焙。

在Unity渲染方面,采用静态烘焙和实时渲染相结合的方式,对于可运动的实验器材采用实时渲染,而对于静止不动的场景物体则使用静态烘焙节约性能并合并模型网格。如图5所示,对于主题场景中的一些特效,如电流激光等,则使用unity的粒子系统实现。

图5:电磁学主题场景中的粒子特效

3.2 实验器材的物理仿真

(1)小球碰撞验证动量守恒:为使小球遵循动量定理,在引擎中使用物理材质,并将Bounciness属性设为最大。赋予小球碰撞体和刚体组件,在刚体组件中设置质量参数以使引擎进行正确的物理计算。

(2)托盘天平的仿真模拟:天平仿真的一大难题在于物理计算的精度和模型质心的位置问题。最后采用这样的优化方法:在模型部分将托盘天平横梁的坐标轴设置在其旋转中心,并冻结将此物体坐标轴使其只能绕定轴旋转。天平的效果通过包围多个碰撞盒实现。

(3)描述小电珠的伏安特性曲线:电路的模拟需要通过脚本进行逻辑电路处理来实现。由于每个部件的旋钮处都需要判断是否有导线连接,因此在每一个部件的导线接口上添加一个触发器进行统一管理。

(4)不同粗糙表面的模拟:通过调节轨道物理材质中有关动摩擦因数的属性数值来实现。

3.3 数据手套交互实现

3.3.1 数据手套的导入配置

本项目直接使用数据手套开发商提供的SDK进行开发。数据手套软件部分的交互逻辑主要分为识别可交互物体、分类可交互物体、抓取、触碰等。项目中需要按如下步骤对项目进行配置:(1)相关插件的导入;(2)项目设置;(3)场景物体的层级设置;(4)物理检测设置;(5)虚拟现实配置;(6)数据手套模型配置。

3.3.2 数据手套的交互配置

场景中数据手套交互的物体分为三类:单体物体、按钮/触发器、组合物体。针对不同类别的物体交互配置的步骤如下:

(1)单体物体:向所有可交互单体的根节点添加用于交互管理的组件,并对特定单体添加用于处理各类交互事件、注册/取消注册交互、识别交互类型和交互物体ID的组件。在完成组件的设置后,需要设置单体的层级、添加刚体组件并设置物理学属性,同时添加一个不渲染,但使用相同网格的子物体,设置为触发器,用于对目标物体的触发检测。

(2)按钮/触发器:按钮/触发器与单体物体相似,但不需要添加子物体。

(3)组合物体:组合物体组合物体通常包含多个模型,需要先解散原有的层级结构,将各部分子模型都调整为同一层级,再在该层级的基础上,对每个模型使用单体物体的设置。

3.3.3 数据手套的交互逻辑

虚拟物理实验操作的交互理念是尽可能还原真实的操作。所以数据手套的交互也将遵循这个原则。相较于单独使用vr controller,数据手套在仿真体验方面更接近真实操作,也更符合用户的使用习惯。如图6所示,利用数据手套将现实中的实验交互方式映射到虚拟场景中变成了一件相对容易的事情,通过在手部模型上增加触发器检测点,可以与实验设备建立起交互联系。除数据手套SDK所提供的识别交互物体、触碰、抓取的交互逻辑外,项目还需解决使用者在使用过程中对于一些设备的特定交互方式,比如在空手状态下不可抓取砝码,这些特定的逻辑通过脚本检测加以实现。

图6:数据手套使用户能以自然的交互方式操作仪器

4 系统测试

4.1 数据手套交互测试

表1:数据手套交互测试用例表

分析表1,交互部分的问题可分为两类:

第一类问题:由于数据手套精度无法准确模拟手指运动导致一些操作难以模拟。此类问题可通过增加触发器与锁定位置的方法解决。

第二类问题:由于物理模拟存在的限制,导致无法直接用简单的抓取操作进行交互,否则会有器材部件出现偏移的情况。此类问题主要分三步解决:第一步是以部件的限制轨道作为参考系确认部件的运动方式;第二步将移动部件设置为限制轨道部件的子物体;第三步是根据第一步确定的运动方式限制轴向并通过脚本加以修正。

4.2 数据手套硬件性能测试

表2:数据手套精度测试

表3:数据手套灵敏度测试

表4:数据手套响应范围测试

表5:数据手套容错率测试

表6:数据手套连接稳定性测试

测试结果总结:

有关数据手套的精度,如(表2)(表5)所示,部分情况下手套模型与现实手部的动作并不完全一致,在实际手指第一指节旋转90°时模型手却已经握拢。但不影响本项目所选实验的交互。如(表3)所示,在不出现定位丢失的情况下,手套的输出灵敏度可达到标称的180Hz,可以满足绝大多数情况下的使用。(表4)的测试结果则表明,活动场地不宜超过以接收器为圆心、半径5米的圆形。

综上所述,手套整体性能表现良好,精度、灵敏度、容错率、稳定性(表6)可以充分满足开发需求,响应范围虽有限(6m),但也足以支持本项目的开发需求。

5 总结

实践表明,在进行步骤简化和设计修正下,数据手套运用于虚拟物理实验室中能够模拟绝大部分中学物理实验的手部操作,结合拟真的虚拟实验场景,可以对现实中的物理实验进行有效还原。数据手套与虚拟实验的有效配合还可以加快实验速度、提高专注度和沉浸感。但目前数据手套的仍存在精度低等诸多问题。总体来说,数据手套在仿真教学中具有广泛的前景,多体感交互技术将是现代化教学的重要趋势,随着软硬件技术的不断升级,细节问题终将解决,届时,多体感交互与虚拟现实技术将在教育领域发挥更大的作用。

猜你喜欢

手套虚拟现实物体
神秘的白手套
REALITY BITES
虚拟现实技术向科幻小说借灵感
悬浮的鸡蛋
浅谈虚拟现实