虚拟化学实验的实现系统和方法

文档序号:1710210 发布日期:2019-12-13 浏览:26次 >En<

阅读说明:本技术 虚拟化学实验的实现系统和方法 (System and method for implementing virtual chemical experiment ) 是由 张永策 李莹 于 2019-08-20 设计创作,主要内容包括:本发明公开了一种虚拟化学实验的实现系统和方法,包括:实验场景模块:用于组建目标化学实验所涉及的虚拟实验工作站、虚拟仪器、虚拟器具和虚拟化学试剂;实验流程模块:用于设置目标化学实验中虚拟仪器、虚拟器具和/或虚拟化学药品的操作顺序;交互模块:用于设置目标化学实验包含的人机交互规则。基于本发明的虚拟化学实验的实现系统和方法,可快速高效地完成虚拟实验开发、且具有良好可扩展性和可移植性等优点。(the invention discloses a system and a method for realizing a virtual chemical experiment, which comprises the following steps: an experiment scene module: the system comprises a virtual experiment workstation, a virtual instrument, a virtual appliance and a virtual chemical reagent, wherein the virtual experiment workstation, the virtual instrument, the virtual appliance and the virtual chemical reagent are used for establishing a target chemical experiment; an experiment flow module: the operation sequence is used for setting the operation sequence of virtual instruments, virtual appliances and/or virtual chemicals in the target chemical experiment; an interaction module: the method is used for setting the man-machine interaction rules contained in the target chemical experiment. The system and the method for realizing the virtual chemical experiment can quickly and efficiently complete the development of the virtual experiment and have the advantages of good expandability, transportability and the like.)

虚拟化学实验的实现系统和方法

技术领域

本发明涉及计算机领域,特别涉及一种虚拟化学实验的实现系统和方法。

背景技术

随着信息技术的快速发展以及国家高等教育水平的不断提高,化学实验的教学内容和教学方式都发生了巨大的变化。在这样的发展背景下,传统的化学实验已经不能满足高校学生对于自主实践实验的需求。随着虚拟仿真实验技术的成熟,人们开始认识到虚拟仿真实验在教育领域的应用价值,它除了可以辅助高校的科研工作,在实验教学方面也具有如利用率高,易维护等诸多优点。

近年来,中国的许多高校都根据自身科研和教学的需求建立了一些虚拟仿真实验。但是由于缺乏便捷、专业的开发软件,虚拟化学仿真实验在准确性、专业性、可扩展性等方面存在诸多问题。

发明内容

有鉴于此,本发明提供一种虚拟化学实验的实现系统和方法,以解决现有虚拟化学实验的存在的开发问题。

本发明提供一种虚拟化学实验的实现系统,包括

实验场景模块:用于组建目标化学实验所涉及的虚拟实验工作站、虚拟仪器、虚拟器具和/或虚拟化学试剂;

实验流程模块:用于设置目标化学实验中虚拟仪器、虚拟器具和虚拟化学试剂的操作顺序;

交互模块:用于设置目标化学实验包含的人机交互规则。

本发明还提供一种虚拟化学实验的实现方法,包括:

组建目标化学实验所涉及的虚拟实验工作站、虚拟仪器、虚拟器具和/或虚拟化学试剂;

设置目标化学实验中所述虚拟仪器、虚拟器具和虚拟化学试剂的操作顺序,设置目标化学实验包含的人机交互规则。

基于本发明的虚拟化学实验的实现系统和方法,可快速高效地完成虚拟实验开发、且具有良好可扩展性和可移植性等优点。

附图说明

图1为本发明虚拟化学实验的实现系统的第一结构图;

图2为本发明虚拟化学实验的实现系统的第二结构图;

图3为本发明虚拟化学实验的实现方法的流程示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

如图1所示,本发明的虚拟化学实验的实现系统,包括:

实验场景模块:用于组建目标化学实验所涉及的虚拟实验工作站、虚拟仪器、虚拟器具和/或虚拟化学试剂;

实验流程模块:用于设置目标化学实验中所述虚拟仪器、虚拟器具和/或虚拟化学试剂的操作顺序;

交互模块:用于设置目标化学实验包含的人机交互规则。

进一步地,为了便于实验场景模块开发,如图2所示,该系统还包括:模型库;

模型库包含参数可调的多种虚拟实验工作站、虚拟仪器、虚拟器具和/或虚拟化学试剂,供场景模块调用。

例如,可以利用3DMAX制作多种虚拟化学实验的模型,模型包括:分析天平、锥形瓶、烧杯、干燥器、称量瓶、细口瓶、滴定管、指示剂瓶、滴管容量瓶、洗耳球、移液管等。

以250mL锥形瓶的建模为例。首先打开3DMAX软件,新建一个以仪器名称命名的文件。在文件中按照250mL锥形瓶的实际尺寸建立一个圆柱体外形。在编辑器中更改圆柱体的节点数,选中将圆柱体的上表面,将其删除,然后再编辑器中选中添加壳的命令,手动调整其厚度,使锥形瓶有一定厚度。在材质编辑器中编辑好玻璃材质,将编辑好的玻璃材质赋给锥形瓶。在锥形瓶的瓶体上按照锥形瓶的弧度添加一个面,同时,新建一个锥形瓶体积标识的材质,选择做好的250mL刻度图片,完善体积标识的材质,将此材质赋给锥形瓶上的面。用合并功能将面和锥形瓶合并成一个物体。按照锥形瓶的形状,复制出一个锥形瓶,重新命名为液体,将液体的锥形瓶瓶口处删除,选中液体的上边缘并使用壳命令,将液体的模型上部封上。新建一个液体的材质,将材质赋给液体模型。将液体模型与锥形瓶模型用合并命令合并到一起。

实验场景模块:将目标化学实验中涉及到的模型(包括目标化学实验所涉及的虚拟实验工作站、虚拟仪器、虚拟器具和/或虚拟化学试剂)整体拖入编辑界面当中的场景框,按照操作规则将模型摆放好。

实验流程模块:构建目标化学实验的StepControlle脚本,用来定义控制模型(目标化学实验所涉及的虚拟实验工作站、虚拟仪器、虚拟器具和/或虚拟化学试剂)操作(或拆装)顺序。

交互模块:为目标化学实验仪器设置人机交互规则并编写脚本。人机交互规则与交互的动作一对一对应。交互的动作包括点击(Click)、拖拽(Drag)、旋转(Rotate)、滑动(ScreenDrag)和长按(LongPress)、多点操作、虚拟3D等。每个动作中都包含了触发物、被触发物、触发操作时间、摄像机与触发物的距离、操作内容提示和摄像机位置信息、摄像机旋转角度等。

如图2所示,人机交互规则包括:点击操作规则、拖曳操作规则、旋转操作规则、多点操作规则和虚拟3D规则等。

化学虚拟实验,既可以满足了学生对动手操作的需求,同时又不受环境和实验条件的限制,让每一个学生都能动手实践,清晰地观看化学实验反应现象和条件的效果,能够最大限度的使学生对于化学实验的原理和实验现象有清晰的认识。

基于本发明的虚拟化学实验的实现系统,降低了开发难度,可快速高效地完成虚拟实验开发、且具有良好可扩展性和可移植性等优点。

为了便于开发,本发明的虚拟化学实验的实现系统可以基于虚拟仿真软件unity3D实现,基于unity3D实现本发明的实验场景模块、实验流程模块和交互模块,实现更快更简单的搭建仿真实验环境。同时unity3D可发布版本至Windows、Mac、Wii、iPhone、WebGL、Windows phone和Android工作站,可以满足同时在各种终端发布的需求。

人机交互是虚拟化学实验最大的优点,也是锻炼用户动作操作的主要途径,下面给出几种典型化学虚拟仪器的交互规则示例。

(1)移液管

实际操作中使用移液管的操作如下:用右手拿移液管或吸量管上端合适位置,食指靠近管上口,中指和无名指张开握住移液管外侧,拇指在中指和无名指中间位置握在移液管内侧,小指自然放松;左手拿洗耳球,持握拳式,将吸耳球握在掌中,尖口向下,握紧吸耳球,排出球内空气,将吸耳球尖口***或紧接在移液管(吸量管)上口,注意不能漏气。慢慢松开左手手指,将洗涤液慢慢吸入管内,直至刻度线以上部分,移开吸耳球,迅速用右手食指堵住移液管(吸量管)上口。

为了模拟实际操作,本发明提出下述的移液管的多点操作规则,包括:

步骤21:获取用户触碰点的坐标;

步骤22:判断触碰点的坐标是否位于第一指定区域、第二指定区域和第三指定区域,第一指定区域为移液管的上端左侧,第二指定区域为移液管的上端右侧,第三指定区域为移液管的上口,如果是,执行步骤23,如果否,提示用户调整不在指定区域的触碰点的位置,返回步骤21;

步骤23:检测第三指定区域的触碰点是否离开第三指定区域,如果是,执行步骤24;

步骤24:启动计时,并基于计时的时长实时改变移液管的液位,在计时过程中,实时检测第三指定区域是否出现触碰点,如果是,停止计时,执行步骤25;

步骤25:比较移液管的当前液位与目标液位的相对位置,如果当前液位高于目标液位,则返回步骤23,如果当前液位处于目标液位的预设范围,则完成任务,如果当前液位低于目标液位的范围,则提示用户取液失败。

多点操作交互规则需使用右手三个手指,拇指触点touch1和中指持管触点touch3,食指触点touch2控制管口的密封,多点触控可以模拟三个手指的空间相对位置和液位控制。

其中,将移液管在场景中的世界坐标通过矩阵变换计算得出在屏幕坐标的位置坐标ScrPos,多点操作交互规则在每一帧监听屏幕点击事件,和各个触点的位置。当大拇指触点touch1和中指touch3的位置分别位于移液管两侧时,将touch1和touch3坐标的中点二维坐标,增加一个预先设置好的Z轴坐标(离摄像机的距离),将中点二维坐标转化为三维场景中的坐标,将中点的三维坐标与移液管的三维坐标关联,移液管可以实现跟随两只手指在屏幕上的滑动在场景中移动。

同时,当食指在屏幕上的触点touch2的松开时,移液管中的液体会以一定的速度S降低。当食指再次按在管口范围内时,液面停止下降。

令,移液管内液体的初始体积为Vz,单位为毫升(ml);液体流出速度为S,单位为毫升每秒(ml/s),食指松开的总时间为t,单位为秒(s)。

则,剩余体积v=Vz-S*t。剩余体积v与当前液位具有明确的对应关系,根据剩余体积v更新当前液位。

另外,利用曲线liqLine来模拟液面下降的速度,可以使实验效果更加真实。建立一个X轴和Y轴都是0到1的二维坐标系,X用来表示液面从最低点到最高点,Y轴表示液面变化的速率,liqLine表示这条曲线。基于曲线liqLine或函数liqLine,当把X轴坐标作为参数传入时,就可以得到对应Y轴的数值,并将Y轴的变化参数使用到公式中,和固定的下降速度相乘,得出更贴近实际,更真实的液面高度。得出的液面高度,可以随移液管的内壁形状来调整变化的速率。

(2)分液漏斗

分液漏斗的实际操作包括洗涤放气,主要涉及旋转操作规则,为了实现分液漏斗的旋转操作,本发明的虚拟器具包括姿态控制属性,姿态控制属性用于设置虚拟器具的目标姿态与智能终端的目标姿态传感器或目标姿态控制设备关联。

当虚拟器具分液漏斗与智能终端的陀螺仪构建关联关系后,智能终端的真实空间姿态跟分液漏斗的虚拟空间姿态一致,旋转手机即可实现对分液漏斗的旋转操作。

虚拟分液漏斗旋转操作的另一种实现方式为:将分液漏斗设置为摄像机的子物体,然后将摄像机与陀螺仪传感器关联,摄像机的真实空间姿态跟分液漏斗的虚拟空间姿态一致,利用陀螺仪传感器来感知摄像机在当前三维空间中的姿态,然后将姿态变化映射到虚拟场景中的摄像机上,分液漏斗继承摄像机的姿态,完成了分液漏斗跟随手机旋转。由于摄像机在虚拟空间有明确的三维坐标,通过摄像机与陀螺仪建立关联,能更加便捷地构建:智能终端的真实空间姿态与分液漏斗的虚拟空间姿态的映射关系。

分液漏斗旋转时,由于分液漏斗的形状特殊,当中的液体表现出的液面高度会有所不同,当旋塞的一边朝上时,由于下侧体积较大,液面会相对较低。而当旋塞一侧旋转到朝下时,液面相对会有所升高。所以要在旋转的过程中保持液体体积不变,需随时更新液面的高度。

下面给出分液漏斗的液面更新方法:

步骤31:建立分液漏斗自身的局部坐标系,该局部坐标系随着分液漏斗旋转移动,Y方向始终为分液漏斗中心点指向塞盖的方向;

步骤32:将当前局部坐标零点指向Y方向最大量程刻度线的向量记为虚拟空间世界坐标系中的向量V,计算向量V与世界坐标系平面法向向量的夹角A;

步骤33:计算h=|V|×cos(A),d=(当前液体体积/总容积)×h;

其中h是分液漏斗装满液体时,液面在Y轴的投影,d是当前体积的液体的对应的高度值。

步骤34:当A大于90度,更新当前液面高度为局部坐标系原点的世界坐标Y值与(h-d)的和,当A小于90度,更新当前液面高度为局部坐标系原点的世界坐标Y值与d的和,返回步骤32。

分液漏斗还涉及摇晃操作,设置分液漏斗与智能终端的加速度计关联,使得智能终端加速度计的Y方向分量与分液漏斗的虚拟空间的Y方向分量一致。

摇晃操作规则:通过监听分液漏斗在虚拟空间的Y方向分量的变化量来判断是否为有效摇匀,具体如下:

步骤41:获取上一帧分液漏斗在虚拟空间的Y方向分量,并记为Y1;获取当前帧分液漏斗在虚拟空间的Y方向分量,并记为Y2;

步骤42:计算Δy=Y1-Y2;

步骤43:判断Δy是否大于预设值,如果是,为有效摇匀操作,如果否,为无效摇匀操作。

上一帧与当前帧的间隔可以根据需要设定,例如0.5秒或其他值。

此外,还可以设置有效摇匀的满足次数,例如5次“Δy是否大于预设值”则表示器具内的液体摇晃均匀,具体次数可以根据需要设定。

在液体摇晃均匀之前,器具内的液体分层,不同层的液体采用不同的颜色表示,假设器具内包含2种液体A和B,分层显示的方法包括:

步骤51:获取当前液体A和B在世界坐标系中的y坐标;

步骤52:判断A和B的y坐标是否均大于边界的顶点(显示液体的最高点),如果是,不显示分层,如果否,执行步骤53;

步骤53:如果液体A的高度大于液体B,则在液体A高于液体B的部分显示液体A的颜色,其余部分的液体显示液体B的颜色;如果液体A的高度小于于液体B,则在液体B高于液体A的部分显示液体B的颜色,其余部分的液体显示液体A的颜色。

(3)AR环境中的手套

本发明设计了通过AR对于手识别,可以部分体验手穿入手套的方向和角度,增加体验感,采用ARKit开放库识别手平面,可以实现AR的识别与叠加,识别之后手部的移动可以控制虚拟手的移动和手套的交互动画。

目前的多数的AR算法都无法保证精确度,本发明旨在应用智能终端简便的传感系统,初步体验AR实验中的一些操控。

具体包括:

步骤61:通过摄像机获取当前真实场景图像;

步骤62:解析当前真实场景图像中的“手”的特征点;

步骤63:基于仿射变换矩阵导入“手套”的3D模型,使得“手套”的第一预设特征点与“手”的第二预设特征点关联并重合,通过与真实场景的视频进行合并后,一起显示在AR呈现设备或其他设备上;

其中,通过对当前真实场景图像和相机位置信息进行分析,获得虚拟“手套”的3D模型在相机视平面投影的仿射变换矩阵。

步骤64:判断“手套”是否与其他物体发生触碰,如果是,根据碰撞物体的碰撞位置,播放相应动画。

其中,“手套”上预先设置了“碰撞检测模块”,由“碰撞检测模块”触发“手套”的触碰事件。

当目标化学实验包含至少两个子场景时;

场景模块可扩展为:用于组建每个子场景涉及的虚拟实验工作站、虚拟仪器、虚拟器具和/或虚拟化学试剂;

实验流程模块可扩展为:用于设置各子场景的执行顺序和每个子场景涉及的虚拟实验工作站、虚拟仪器、虚拟器具和/或虚拟化学试剂的操作顺序

交互模块可扩展为:用于设置每个子场景包含的人机交互规则。

本发明还提供一种虚拟化学实验的实现方法,如图3所示,该方法包括:

S301:组建目标化学实验所涉及的虚拟实验工作站、虚拟仪器、虚拟器具和/或虚拟化学试剂;

S302:设置目标化学实验中虚拟仪器、虚拟器具和虚拟化学试剂的操作顺序,设置目标化学实验包含的人机交互规则。

当目标化学实验包含至少两个子场景时,图3的方法可以扩展为:

组建每个子场景涉及的虚拟实验工作站、虚拟仪器、虚拟器具和/或虚拟化学试剂;

设置各子场景的执行顺序和每个子场景涉及的虚拟实验工作站、虚拟仪器、虚拟器具和/或虚拟化学试剂的操作顺序,设置每个子场景包含的人机交互规则。

其中,交互规则包括:点击操作规则、拖曳操作规则、旋转操作规则、摇晃操作规则、多点操作规则和/或虚拟3D规则。

进一步地:该方法通过调用模型库组建子场景或组建目标化学实验所涉及的虚拟实验工作站、虚拟仪器、虚拟器具和/或虚拟化学试剂,其中模型库包含参数可调的多种虚拟实验工作站、虚拟仪器、虚拟器具和/或虚拟化学试剂。

进一步地,虚拟器具包括姿态控制属性,姿态控制属性用于设置虚拟器具的目标姿态与智能终端的目标姿态传感器或目标姿态控制设备关联。

当虚拟器具为移液管,移液管的多点操作规则包括:

步骤21:获取用户触碰点的坐标;

步骤22:判断触碰点的坐标是否位于第一指定区域、第二指定区域和第三指定区域,第一指定区域为移液管的上端左侧,第二指定区域为移液管的上端右侧,第三指定区域为移液管的上口,如果是,执行步骤23,如果否,提示用户调整不在指定区域的触碰点的位置,返回步骤21;

步骤23:检测第三指定区域的触碰点是否离开第三指定区域,如果是,执行步骤24;

步骤24:启动计时,并基于计时的时长实时改变移液管的液位,在计时过程中,实时检测第三指定区域是否出现触碰点,如果是,停止计时,执行步骤25;

步骤25:比较移液管的当前液位与目标液位的相对位置,如果当前液位高于目标液位,则返回步骤23,如果当前液位处于目标液位的预设范围,则完成任务,如果当前液位低于目标液位的范围,则提示用户取液失败。

当虚拟器具为分液漏斗,分液漏斗的液面更新规则包括:

步骤31:建立以分液漏斗底部为原点的局部坐标系,局部坐标系随着分液漏斗旋转移动,Y方向始终为分液漏斗中心点指向塞盖的方向;

步骤32:将当前局部坐标零点指向Y方向最大量程刻度线的向量记为虚拟空间世界坐标系中的向量V,计算向量V与世界坐标系平面法向向量的夹角A;

步骤33:计算h=|V|×cos(A),d=(当前液体体积/总容积)×h;

步骤34:当夹角A大于90度,更新当前液面高度为局部坐标系原点的世界坐标Y值与(h-d)的和,当夹角A小于90度,更新当前液面高度为局部坐标系原点的世界坐标Y值与d的和,返回步骤32。

当虚拟器具为AR手套,AR手套的虚拟3D规则包括:

步骤61:通过摄像机获取当前真实场景图像;

步骤62:解析当前真实场景图像中的“手”的特征点;

步骤63:基于仿射变换矩阵导入“手套”的3D模型,使得“手套”的第一预设特征点与“手”的第二预设特征点关联并重合,通过与真实场景的视频进行合并后,一起显示在AR呈现设备或其他设备上;

步骤64:判断“手套”是否与其他物体发生触碰,如果是,根据碰撞物体的碰撞位置,播放相应动画。

进一步地,该方法还包括:设置目标化学实验涉及的颜色变化规则。

进一步地,该方法还包括:设置目标化学实验的光源模式,光源模式至少包括:方向光源、点光源、面光源、聚光灯。

需要说明的是,本发明的虚拟化学实验的实现方法的实施例,与虚拟化学实验的实现系统的实施例原理相同,相关之处可以互相参照。

以上所述仅为本发明的较佳实施例而已,并不用以限定本发明的包含范围,凡在本发明技术方案的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种冠心病教学模型

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!