虚拟船厂、船舶交互仿真实验教学系统设计与应用

2019-07-02 12:12:44陈浩政高良田郭春雨袁利毫
实验室研究与探索 2019年6期
关键词:船厂船舶实验教学

刘 旸, 陈浩政, 高良田, 郭春雨, 袁利毫, 乔 岳

(1.哈尔滨工程大学 船舶工程学院, 哈尔滨 150001; 2.中国舰船研究院, 北京 100000)

0 引 言

船舶制造是集水、电、气、重型机械装配一体作业的高危行业,在校园内很难完成这样的大型装备类专业实验,以往主要依靠校企联合培养模式。受到船厂施工作业的限制,学生在船厂学习的时间有限、参观内容有限,另外船厂能提供的师资力量有限、不能共享学习资源,且实验资金耗费较大。

虚拟船厂、船舶交互仿真实验教学系统的研发是为学生建立开放式实验教学环境,使学生通过 “互联网”[1]实现虚拟船厂、船舶实验资源的完全共享,在三维场景中自由体验和探索,实现人机互动,并且学生能够自行检验学习效果,不受时间、空间和实验条件的限制,可完成远程实验,实现教学资源的最大化共享[2-3]。虚拟船厂、船舶交互仿真实验教学系统作为课堂教学和船厂实地实验的辅助和补充资源,虚实结合[4],提供一种有危险性的大型装备实验新的实验教学和考核模式[5],同时,让学生掌握时代发展新生的学习工具和学习模式,给予他们更多获取知识的渠道和能力。

虚拟现实(Virtual Reality,VR)是目前国内外科技界关注的一大热点[6],VR技术是一种综合应用各种技术构造逼真的人工模拟环境,并能有效地模拟人在自然环境中的各种感知行为的高级人机交互技术[7]。VR技术一直受到质量与速度的瓶颈限制,导致基于公共网络的真三维虚拟现实系统应用受限[8]。本文建立的虚拟船厂、船舶交互仿真实验教学系统采用多细节层次(Levels of Detail,LOD)、分层调用、烘焙等技术,一是将虚拟场景均衡建模,确保拥有高质量画面效果的前提下模型文件最小;二是实现场景模型文件网络智能加载,确保系统流畅运行[9]。同时利用各种VR设备实现三维虚拟场景的全沉浸式体验,实现虚拟系统的功能要求和效果。

1 系统开发流程

虚拟船厂船舶交互仿真实验教学系统的开发流程如图1所示。

图1 系统开发流程图

(1) 首先采用3DMax创建虚拟船厂和船舶的三维模型,将需要进行人机交互的结构分离成独立的模型。

(2) 利用Photo Shop处理好所有模型的材质贴图,并完成贴图工作。

(3) 将模型保存为.FBX格式文件并导入到Unity3D中,在Unity3D场景中添加摄像机和灯光,设置碰撞检测面,同时进行渲染烘焙生成最终的纹理贴图。

(4) 应用GUI组件在主界面上显示导航图,以第一人称和高空视角编程实现系统的漫游。应用Visual Studio C#语言实现仿真系统的教学、考核和交互功能。

(5) 通过Unity3D的跨平台功能将其发布为网页版,使虚拟船厂和船舶仿真系统实现跨平台使用。

(6) 基于高端虚拟设备HTC Pro头盔和Omni跑步机编写接口程序,开发全沉浸虚拟交互系统,并应用虚实融合设备实现整个实验过程的可观察性。

2 系统功能设计与实现

(1) 参考原型选择。综合国内几大设备与工艺一流的大型船舶制造企业,配合船舶与海洋工程专业教学内容,将其布局方案、建造流程与工艺按照材料码头—钢料堆场—钢料预处理—钢料加工—平、曲分段建造—舾装集配—喷涂—总组—进坞—下水—码头舾装这一建造流程来设计[10],再配以办公区、生活区和相应的设备设施,形成一座功能齐全的现代化船舶制造企业,各类场景、设备按照1∶1设计制作。

散货船是我国三大运输船舶类型之一,同时也是船舶工程专业本科生教学常用船型[11],具有典型性。考虑到专业课程学习对整船感受较少,虚仿软件容易配合,尤其船舶是各类机电设备和可燃物品密集型产品,易燃、易爆,船厂实习不易参观,因此将虚拟船舶学习内容放在船体结构构件、甲板设备与布置、消防救生设备布置、国际海事组织(IMO)安全标志、上建舱室布置标准等方面。系统以57 000 t巴拿马型散货船作为母型船,该船长190 m,宽32 m,主甲板高17.85 m,1∶1建立虚拟场景。

(2) 系统结构设计。造船厂是大型复杂制造企业,船舶是结构复杂设备众多的大型工业产品,因此开发虚拟船厂、船舶交互仿真实验教学系统是一项复杂的虚拟操作系统工程。系统结构设计上要兼顾环境仿真、操作仿真以及虚拟设备交互仿真等环节,应用Unity3D和Visual Studio C#软件搭建系统的总体结构主要分为5个部分:虚拟船厂、虚拟船舶、教学与考核系统、场景仿真和漫游系统、虚拟交互系统。系统框图如图2所示,系统需构建的资源如图3所示。图4为建设完成的部分虚拟船厂、船舶场景。

(3) 教学与考核功能设计。系统采用语音教学和图文教学等方式配合虚拟场景的认知和学习。系统语音教学采用两种方式:一是碰撞触发语音,考虑到虚拟现实软件的沉浸感,设置了语音碰撞检索开关,当漫游到开关边界时,系统自动打开语音教学开关,这种方式适合在较开阔空间使用,不会造成触发误判。二是在车间内部和舱室设备较密集处,采用点击触发语音,通过鼠标点击语音教学按钮开启语音教学内容,如图5(a)所示。图文教学方式主要是点击按钮、设备、标志时弹出学习对话框,如图5(c)所示为手动报警器的学习界面。

图2 系统结构框图

图3 系统建设资源汇总

(a) 鸟瞰船厂

(b) 厂区和车间内景

(c) 虚拟船舶

(d) 设备、舱室与结构

为了学生能够方便评价自身的学习效果,系统内置了100道与场景配合的考题,以第1次答题累积分数,评分在系统左上角实时更新,如图5(d)所示。如果回答错误,在试题下方显示正确答案,如图5(b)所示。

(a) 语音教学

(b) 答题系统

(c) 图文教学

(d) 考核系统

虚拟船厂、船舶交互仿真系统系统分为学生端和教师端。学生端具有登陆、教学、导航、安全教育和参观装备选择等系统功能和模块,教师端主要进行学生用户和考核成绩的管理。

(4) 用户体验设计。为增强漫游时的真实感体验,基于Unity3D开发虚拟船厂、船舶仿真系统的第一人称视角漫游功能,见图4(b),当学生在操作仿真系统时,可根据自身的需求控制漫游方向和视角,以及跑、跳、登高、跳转等动作,对应的键盘、鼠标和虚拟手柄功能键见表1。由于虚拟船厂占地辽阔,车间、场地众多,制造流程复杂,同时开发了鸟瞰高空视角,见图4(a)。启动后系统带领用户按造船流程完成高空漫游体验。系统与外界交互采用了多种方式,即可使用鼠标、键盘通过普通电脑链入互联网操作,也可使用虚拟头盔、手柄、跑步机等虚拟外设完全“沉浸”在虚拟系统中,获得更逼真的虚拟现实体验。

表1 功能键对照表

3 系统关键技术

3.1 Unity3D渲染优化方法

渲染优化方法是为了控制在最终渲染时,每帧画面绘制的多边形数目,以保证模型的实时显示能够顺畅进行,本系统采用的是 LOD[12]技术。LOD是指使用若干细节层次不同的模型来表示场景中同一个对象,通过对象与摄像机的距离远近,来决定对象显示的细节多少,在透视摄像机下,距离摄像机越远,实际显示的大小越小,所以选用合理的低细节层次模型,既能保证使用者看不出明显的显示效果损失,也能使渲染系统的负载大幅度降低。优化过程如下:

(1) 应用模型轻量化软件,将不同格式的资源模型处理成高、中、低3种复杂程度的.FBX模型,导入Unity3D进行测试,满意后保存。

(2) 建立一个空的Game Object,为其添加LOD属性。在LOD Group设置里面按照模型的层级添加模型,一个物体的所有层级模型添加在一个Game Object下。

(3) 根据相机的预览调节LOD Group的LOD效果,即确认高、中、低3种层级模型转换的距离,满意后保存。

3.2 分层调用技术

当需要进入某个舱室或场景学习时再调用相应的模型,例如当使用者在船舶主甲板漫游时,上层建筑和船体内部的三维模型不必调用。因此可将系统划分为若干个调用层次和调用区域,根据用户的需求智能加载。这样可以将虚拟船厂和船舶仿真系统拆分,化整为零,避免CPU一次性加载的模型量过大,减少系统运行等待时间,提升使用体验。

3.3 烘焙贴图技术

将完成材质贴图的三维模型在3DMax中添加光源效果处理,三维模型会对光产生反射,通过渲染,三维模型会产生阴影、倒影,增加了三维模型的真实度。若想保留这种特效可以选择两种方式,一种是直接加光照信息赋予三维模型,即烘培贴图技术(Render To Textures)。另外一种在漫游程序中添加光源设定程序。使用烘培贴图技术将光照信息赋予贴图之上,使光照信息变成了贴图的一部分,不需要CPU计算,这种光照贴图使用上与普通贴图没有区别,运行加载速度非常快。这种方法去除了编译程序时复杂的光能传递计算,消除了加载复杂光能传递使漫游效果的不稳定性,有利于网络虚拟仿真软件提高运行效率。烘培贴图过程如下:

(1) 设置照明、反射、透明度等参数到满意为止,渲染出图;

(2) 选择Render To Textures选项,进入烘培贴图的窗口,在Output Path选项中设置烘培贴图保存路径;

(3) 选择要处理的模型,单击Add,选择CompleteMap,此选项包含其他选项所有的设置特点,称为完整烘培。在该界面下单击Render To Textures窗口渲染,得到光照条件下的烘培贴图,烘培贴图会自动贴回模型上。如图6所示,为虚拟船娱乐室沙发的烘焙贴图效果。

(a) 娱乐室沙发烘焙贴图效果

(b) 烘焙贴图

3.4 用户批量导入技术

为方便系统对用户的管理,设定只有管理员录入的用户才可以登录本系统。当用户数量众多时,单个录入效率较低,因此系统开发了用户批量导入的外挂程序。如图7所示,打开批量导入对话框,找到用户账号的文件,设置用户初始密码,弹出导入成功提示界面,即可将用户账号批量导入到账户系统管理数据库中。

图7 批量导入用户界面

3.5 全沉浸VR技术

系统选用高端虚拟现实设备HTC Pro和Omni跑步机等可穿戴设备,开发全沉浸虚拟交互模块。HTC Pro采用激光扫描定位,定位器采用Lighthouse室内定位技术,依靠激光和光敏传感器来确定头戴显示器和控制器的位置,可在6 m2内自由移动,精度可达1.94 mm。画面组合后分辨率可达2 880×1 600 PPI,刷新频率为90 Hz,视场角为110°,数据显示延迟为22 ms,不易产生虚拟病。

Light house技术的原理[13]是定位器通过内嵌的红外发光二极管阵列对外闪烁,通知操控手柄及头戴式显示设备开始新一轮的扫描周期并保持同步状态,然后通过内嵌的直流电动机轮流带动镭射激光发生器生成一个面型的激光栏,激光栏先是横扫过设定区域内的操控手柄及头戴式显示设备,得到x轴的角度值及其到达时间,然后激光栏竖向扫描设定区域内的操控手柄及头戴式显示设备,得到y轴角度值及其到达时间,最后根据这些参数,计算出操控手柄与头戴式显示设备在设定空间内的位置。

Steam VR Plugin是基于Open VR开发的针对虚拟现实头戴式显示设备应用的Unity3D通用API插件。通过Unity Asset Store获取API插件,对VR头戴式显示设备进行控制与管理,实现与Unity3D场景的各种交互功能(见图8(a)、(b))。手柄控制器功能设置部分程序如下:

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class HTCControllerLeft : MonoBehaviour

{SteamVR_TrackedObject trackedObject;

public float TranslateSpeed = 1f;

public float RotationSpeed = 10f;

private void Awake()

{trackedObject=GetComponent( );}

void Start( )

{ }

void Update( )

{var device = SteamVR_Controller.Input((int)trackedObject.index);

if (device.GetTouch(SteamVR_Controller.ButtonMask.Trigger))

{Debug.Log("按了“trigger”“扳机键”");}

if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Trigger))

{Debug.Log("按下了“trigger”“扳机键”");}

if (device.GetTouchUp(SteamVR_Controller.ButtonMask.Trigger))

{Debug.Log("松开了 “trigger” “扳机键”");}}

(a) VR开发设备

(b) 头盔中显示的虚拟跳转功能

(c) 手柄控制器功能设计

应用Omni针对Unity3D开发的专用插件资源包OmniSDKUnity开发虚拟跑步机应用程序。OmniSDKUnity包含用于唤醒、控制及访问Omni外部设备的API及接口,一个角色控制器预制件,一个示例场景和少量的UI、材质等可用资源,可实现虚拟世界中无限范围的自由行走、跑步等高沉浸度的体验(见图8(a)),其开发流程图如图9所示。

3.6 虚实融合技术

为教师能实时观察和指导学生的实验过程,通常可采取两类方法。一类是为实验者创建虚拟人模或虚拟手模,将实验者动作数据捕捉到虚拟人或虚拟手上[14]。前者需要购置全身惯性动作捕捉设备(服),

图9 Omni跑步机开发流程图

一般只针对部分有特殊需求的专业。后者仅展示手部的虚拟操作,一般对手部动作要求较高的实验经常采用。以上方式系统开发成本较高,系统研发周期较长。另一类是通过一定的算法和调试,使用虚实融合设备将实验者人像与虚拟场景融合,实现虚实叠加效果,这类方法制作成本较低,更有利于教师评价学生实验过程和效果。

本系统使用蓝屏法[15]解决现实环境前后背景分离问题。图像前后背景合成公式为:

Co=Cf+(1-αf)Ck

(1)

式中:Cf为前景色;Ck为背景色;Co为合成图像,αf为f点处的透明度值。当背景色Ck为单色时,Ck接近常数,通过录像设备实时捕捉场景中动态画面的前、背景色,将数字信号输入到抠像机中,通过调节式(1)中αf值去除背景色,从而获得人像画面,再与虚拟系统传输过来的数字信号叠加起来,通过终端显示设备呈现出来,如图10所示。

(a) 现实场景

(b) 虚拟叠加效果

为提高虚实叠加的准确程度,需要调节实验者身高与虚拟环境比例一致。一个简单的做法是在虚拟环境中建立人体身高标尺(见图10(b)),该标尺与虚拟景物比例一致。固定摄像机,将人像投摄到虚拟环境中,调节焦距将实验者身高调整到虚拟标尺中相应的身高处即可。

4 系统应用

虚拟船厂、船舶交互仿真实验教学系统主要配合船舶设计原理、计算机辅助船舶设计与制造、船舶设备与舾装、船厂实习等课程相关教学内容。在课堂教学、虚拟实验教学的同时,配合模型教具的应用。如图11所示,为配合本软件系统设计的各类实验教具,包括船厂布局组合模型、分段装配模型、总段装配模型、船体结构剖视模型等。其中船体结构剖视模型按实船1∶200纵剖打印,长1.54 m,分艏、舯、艉3段结构,船体各部位板架结构清晰可见。实验课成绩既考虑虚拟系统的自动评分成绩,也包括操作过程评分、模型装配和实验报告的成绩。在虚拟仿真教学的基础上,尽可能地让学生接触实际,充分体现虚实结合、互相补充、能实不虚的原则[16]。

图11 分段装配、船厂布局和船模教具

5 结 语

本文介绍的基于Unity 3D和 Visual Studio C#开发的虚拟船厂、船舶交互仿真实验教学系统,将VR技术、网络技术、先进教学方法引入到虚拟仿真实验教学中来,组建了学习、漫游、考评一体化的实验平台,并结合传统实验教学,为师生创建了可完全共享的开放式实验教学资源,弥补了教学手段缺乏改革创新、学生学习兴趣不高[17]、优质教学资源匮乏等问题。

随着三维建模技术和VR技术的不断发展,VR软件的沉浸感、交互性和构想性将会更加精美,未来将不断升级和完善虚拟船厂的细节功能、开发其他类型船舶的实验和考评系统,在相应课程中积极应用辅助教学活动。

猜你喜欢
船厂船舶实验教学
致船厂
鸭绿江(2021年17期)2021-10-13 07:05:48
《船舶》2022 年度征订启事
船舶(2021年4期)2021-09-07 17:32:22
小议初中化学演示实验教学
甘肃教育(2020年4期)2020-09-11 07:42:36
电容器的实验教学
物理之友(2020年12期)2020-07-16 05:39:20
大连辽南船厂
对初中化学实验教学的认识和体会
甘肃教育(2020年8期)2020-06-11 06:10:04
船舶!请加速
人大代表的“扶贫船厂”
人大建设(2019年7期)2019-11-18 05:39:46
BOG压缩机在小型LNG船舶上的应用
船舶压载水管理系统
中国船检(2017年3期)2017-05-18 11:33:09