APP下载

基于HTC VIVE的船舶固定水灭火模拟训练系统

2018-10-16任鸿翔

中国航海 2018年3期
关键词:消防栓模拟训练船员

陶 瑞, 任鸿翔

(大连海事大学 航海学院, 辽宁 大连 116026)

船舶火灾是威胁船舶运营安全的一大隐患,不仅会造成财产损失,还会危及船上人员生命。为检验船员对船上各部位可能发生的火灾的应急处理能力、对个人应变任务的熟悉程度及应急过程中船员之间的相互支援和协调程度,进行消防演练是很有必要的。[1]目前的船舶消防演习大多是在真实环境中进行的,花费大,污染环境,且受时间、资金等因素的限制,这些演习的实际作用相对有限。

近年来,虚拟现实技术在船舶消防领域的应用引起一定的关注。[2]尤其是针对非常复杂的场景和危险度较高的环境,虚拟现实技术展现出多方面的优势。[3]固定水灭火系统是船舶必备的一种最基本和最有效的灭火系统。本文对三维场景漫游、虚拟设备交互和虚拟辅助船员路径规划等关键技术进行研究,基于HTC VIVE虚拟现实头盔和Unity 3D引擎,开发船舶固定水灭火模拟训练系统。

1 系统方案设计

1.1 总体设计

当船舶发生火灾时,探火及失火报警系统发出警报。全体人员集合,按照应变部署表的要求到达指定集合位置。探火员穿戴消防设备进行探火,根据失火位置及火势确定灭火措施。当火灾发生在货舱、生活区等密闭空间内时,一般采用固定二氧化碳灭火系统灭火,同时采用固定水灭火系统进行外围冷却;当火灾发生在甲板等空旷位置时,可直接采用固定水灭火系统灭火。

固定水灭火系统是船舶消防系统的重要组成部分,由消防泵、消防栓、消防水带、水枪和国际通岸接头等组成。消防泵通过海水吸入阀吸入船外的海(江、河)水,通过消防水管、消火栓及水带上的消防水枪将其喷到船上发生火灾的部位,达到灭火目的。依据《SOLAS公约》对船舶防火内容的要求,固定水灭火系统的训练需由多人合作完成,具体训练内容包括:消防泵开关的操作、枪头的使用、消防水带的铺设与回收和消防栓的使用等。船舶固定水灭火系统训练流程见图1。

实现船舶固定水灭火模拟训练系统主要需完成3项任务,即:建立船舶消防设备的三维模型;实现各船舶消防设备的虚拟漫游和交互操作;使用消防设备完成消防训练。

1.2 协同工作方式

固定水灭火系统的训练需2~4人协作完成。在灭火训练中,主要考察学员对设备的熟悉程度及学员之间的协作能力。根据实际操作的需要及分工的不同,该系统设定水手1、水手2和水手3等3个角色。水手1负责打开消防泵,消防泵可通过吸入阀吸入船外的海(江、河)水,再通过水带将其喷到船上任何失火部位;水手2取出水带铺设到指定地点,并连接消防栓;水手3取出枪头,并连接水带。连接完毕之后,水手2打开消防栓阀门。由于水流流速过快,水带不易控制,水手2需迅速跑到水手3旁边辅助其喷水。

为提高系统的灵活性,本文设计两种协同方式,即:学员与虚拟辅助船员之间的协同和多个学员之间的协同。学员与虚拟辅助船员之间的协同是指学员选择一个角色,另外2个角色为虚拟辅助船员,学员可通过系统提供的辅助菜单“命令”辅助船员对设备进行操作,学员与虚拟辅助船员“配合”完成训练;多个学员之间的协同是指3个学员分别以3个水手的角色登录系统,学员通过局域网协同工作,并可在虚拟场景中看到另外2个学员的操作,3人协同完成训练。

1.3 开发工具及设备的选择

1.3.1Unity3D

Unity 3D 是一种性能卓越的三维虚拟现实开发平台,以图形化开发环境为首要方式,界面友好,具有强大的计算机程序编译能力。相比其他虚拟现实开发平台,Unity最大的特点是多平台开发,现已支持Windows、Mac OS及Android等平台,故该系统选择Unity 3D作为开发工具,实现固定水灭火系统的模拟训练功能。

1.3.2HTC VIVE头盔

传统的模拟训练系统一般使用键盘和二自由度的鼠标作为输入设备,使用二维显示器或投影屏幕作为输出显示设备。考虑到现实世界是三维空间,人们在生活中学习了很多操纵三维物体及在三维空间中运动的技能,能很好地理解三维空间的关系。[4]HTC VIVE头盔是目前市场上最新的虚拟现实头盔产品,通过3个部分为用户提供沉浸式体验:1个头戴式显示器、2个单手持控制器和1个能在空间内同时追踪显示器和控制器的定位系统。因此,该系统将HTC VIVE虚拟现实头盔应用于模拟训练系统中,通过头戴显示器呈现的三维立体场景给用户更强的沉浸感,利用三维交互方式使人机交互更为自然、和谐。

2 系统开发及关键技术

船舶固定水灭火模拟训练系统的主要开发流程见图2。

2.1 系统场景及界面搭建

2.1.1三维场景建模

建立逼真的船舶消防设备三维模型是模拟训练系统的基础。本文以巴拿马型散货船“长山海”轮为母型船,建立消防控制室及消防设备等三维实体模型。根据《STCW公约》的规定,船上至少配备2台独立的消防泵,放置于消防控制站,消防水带及消防栓按要求放置在船舶上。

前期在“长山海”轮上进行现场拍照和录像,并收集相关资料,制订模型制作及命名规则。在此基础上,制作船舶消防设备的几何模型,并为模型附上材质和贴图;随后,设置灯光位置和强度等对模型进行渲染[5];最后,将所有渲染好的模型整合到船上。图3和图4分别为部分消防设备的三维模型及“长山海”整船三维场景模型。

2.1.2立体式界面开发

传统的“HUD”式UI界面有2个特点[6]:

(1) HUD画面是离摄像机镜头最近的物体,其他物体都会被HUD挡住;

(2) HUD在屏幕上的位置是不变的,且有很多组件在屏幕的边缘。

这2点在VR中很难被接受。首先,距离太近会使学员的眼睛无法聚焦;其次,VR中的屏幕不是矩形的,边缘一般比较模糊,因此将UI放在边缘会看不清楚;同时,若位置是固定的,不受视野控制,则会变得更不自然。

本文采用“立体”式UI代替“HUD”式UI,即UI不再集中于一个平面上。将界面悬浮于VIVE手柄上方,当学员操作界面时,只需低头或将手柄拿到视野范围内即可。

该系统的立体界面主要包含环境设置、局域网联网、导航菜单、辅助命令菜单和设备提示信息等功能。环境设置可设置起火位置、火势大小和选择角色等(见图5);导航菜单位于主界面左上方,可使学员瞬移至整船某个位置,方便学员进行训练(见图6);辅助命令菜单位于主界面左上方,与导航菜单之间是互斥关系,实现学员与虚拟船员之间的“沟通”,完成灭火作业(见图7);提示信息位于主界面右下方,学员操作设备时,在提示信息界面内显示该设备的相关提示信息,包括设备名称、当前状态及操作提示信息等。UI整体布局见图8。

2.2 关键技术及实现

船上配备有众多消防栓和消防皮龙箱,当采用学员与虚拟辅助船员协同操作的方式时,学员操作设备的过程与虚拟船员不尽相同。学员通过射线瞬移的方式漫游至各处操作设备,虚拟船员则按照实时规划的路径到各处操作设备。本文从场景漫游、虚拟设备交互和路径规划等3个方面介绍关键技术及实现过程。

2.2.1场景漫游

该系统的漫游方式主要有连续漫游和快速瞬移2种。连续漫游类似于游戏中的角色控制移动,通过手柄圆盘键设置固定步长,连续控制视角进行移动。连续漫游的实现比较简单,在此不再赘述。快速瞬移的基本原理是从手柄上发出一条射线,射线与场景中的甲板或楼梯的相交点即为要瞬移的位置。由于船上空间狭小,当传统直线瞬移的前方有障碍物或目标位置高于出发点时,相交的传送点常常不准确,导致学员在使用过程中无法及时完成操作。

为此,采用贝塞尔曲线代替直线实现快速瞬移。当前方有障碍物或目标点高于出发点时,贝塞尔曲线是一条平滑的曲线,将以固定角度和固定长度的连线获得相交点的位置。

在空间给定n+1个点P0,P1,P2,…,Pn,利用式(1)构建的参数曲线即为n次贝塞尔曲线。[7]称P0,P1,P2,…,Pn各点为P(t)的控制顶点。

(1)

构造贝塞尔曲线的关键在于找到合适的控制点。在该系统中,采用三控制点构造二次参数贝塞尔曲线。设整个场景的世界坐标系为O-XYZ,手柄自身坐标系为O-UVN,在构造贝塞尔曲线之前,将场景中的物体设为可瞬移区域(甲板、楼梯等)和不可瞬移区域(墙壁、货舱盖等)。以手柄N轴(手柄的正前方)方向无障碍物为例进行说明(见图9)。当学员按下手柄的圆盘键时,以手柄在虚拟场景中的位置为起点A,向N轴方向发出一条射线L1(长度可根据实际情况调整)。此时进行碰撞判断,若射线没有碰撞任何物体,则以射线的终点B为起点,向世界坐标系的Y轴(正上方)反方向发出一条无限长的射线L2。若L2碰撞到的物体为可瞬移区域,则碰撞点即为要传送的位置C。点A、点B和点C即为需要的控制点。在得到曲线之后,改变其参数u得到一组曲线上的位置。在各位置上放置一个绿色球体,标志可瞬移,实现曲线的可视化(见图10)。若L2碰撞到的物体为不可瞬移区域,则用红色球体构造贝塞尔曲线,标志不可瞬移。利用贝塞尔曲线实现快速瞬移的流程见图11。

2.2.2虚拟设备交互

系统中的设备交互主要为学员通过手柄对虚拟场景中的设备进行操作,交互方式主要有射线方式和触碰方式2种。前者需判断手柄发出的射线是否与设备相交,后者需判断手柄是否与设备“接触”,若相交或接触,则学员可对设备进行具体操作。2种交互方式各有特点,其中:射线方式适用于被操作设备较密集的情况;触碰方式更适用于被操作设备比较分散的情况,如消防栓分散在场景内的多个位置的时候。不论采用哪种方式,都要进行碰撞检测。

场景中的设备若需感应碰撞,必须为其添加碰撞器。Unity引擎为对象提供盒子碰撞器(Box Colli-der)、球体碰撞器(Sphere Collider)、胶囊碰撞器(Capsule Collider)、网格碰撞器(Mesh Collider)和车轮碰撞器(Wheel Collider)等5种碰撞器。根据物体形状的特点选择碰撞器,可减少计算机的计算量,提高系统的流畅度。模拟设备交互操作的过程为

(1) 根据设备位置的不同,选择适当的交互方式;

(2) 为每个设备添加合适的碰撞器检测射线或触碰;

(3) 编写脚本,当检测到碰撞时,设备以编辑好的规律运动,实现设备操作的模拟。

2.2.3路径规划

船舶空间狭小、结构复杂,船上消防设备众多。当学员“命令”虚拟辅助船员去某一地点操作设备时,需解决虚拟辅助船员的路径规划问题。目前路径规划算法有很多,如人工势场法[8]、遗传算法[9]及A*算法[10]等。A*算法适用于场景环境信息已知、寻路过程中环境变化较少的情况。针对船舶特定的环境,选择A*算法进行虚拟船员的路径规划。

A*算法是人工智能中典型的启发搜索算法,利用启发信息找到以最小的代价通向目标节点的最优路径。该算法的核心是一个估价函数,即

f(n)=g(n)+h(n)

(2)

式(2)中:f(n)为从起始节点到目标节点的最短路径的代价和;g(n)为从起始节点到节点n的实际代价;h(n)为从节点n到目标节点的最短路径的估计代价。

A*寻路网格有基于单元的导航图、基于可视点的导航图和导航网格等3种。与前2种导航图相比,导航网格的优点是可进行精确的点到点移动,这对于船舶空间狭小的环境来说非常适合,故本文采用导航网格。具体实现过程如下。

(1) 网格铺设。根据“长山海”轮的实际情况,在确定需导航的范围之后,对模型分层进行标识,分为可行走区域层和障碍物层。给场景中的物体(如地面、楼梯等)添加网格碰撞器。按照物体的层级铺设导航网格。

(2) 角色设置。为虚拟船员添加角色控制器,防止其在寻路过程中被其他模型穿过。设置虚拟船员的高度和上楼梯坡度等参数,为每名船员添加A*寻路算法的脚本。创建动画状态机,根据实际情况切换站立、行走及操作设备等动画。

(3) 寻路过程。定义一个二维数组保存导航网格中的所有节点。创建2个节点列表,分别将可行走节点和不可行走节点添加到列表中,供A*算法寻路时调用。当学员“命令”虚拟船员打开消防栓时,虚拟船员即从当前节点开始寻路。用估价函数比较当前节点周围各节点的f值大小,选择代价较小的节点扩展,直到路径的目标节点,寻路结束。

2.2.4粒子特效

在固定水灭火系统训练中,消防枪喷出的水柱及火焰的渲染是一个难点。在虚拟环境中,大部分场景元素(如角色、物件、碰撞体等)都属于网格模型,一般利用3DS Max和Maya等工具建模,并导入到场景中;但若要在场景中模拟烟雾、火焰、云彩及水滴等效果,则需用到粒子系统。粒子系统会连续、高效地发射大量运动的简单粒子单元,以模拟各类复杂的自然现象和特技效果。粒子的模拟过程主要包括以下3个步骤:

(1) 初始化。确定模拟对象,分析物体的运动规律,对模拟对象的粒子数及每个粒子的生命值、位置、速度、加速度和颜色等信息进行初值设定。

(2) 绘制。选择大小合适的纹理,搭配合适的色彩,绘制粒子当前的状态。

(3) 更新。对所有粒子的生命周期、位置、速度、加速度和颜色等信息进行更新,以便下次绘制。

下面以火焰的渲染为例介绍其实现过程。火焰分为内焰、外焰和烟雾等3部分。在场景中创建3个Particle System分别模拟这3部分的效果。通过调节粒子数、粒子大小和颜色等特征项,在微观上实现对内焰、外焰和烟雾具体效果的调节;在Photoshop中制作火焰的纹理贴图,从宏观上表现火焰的整体效果;调节粒子的生命周期、速度等信息,使火焰符合实际场景,实现火焰的动态效果模拟(见图12);将三者结合在一起,使火焰模拟的效果更加逼真。水柱效果的实现与火焰效果的实现类似,此处不再赘述。

3 训练实例

基于以上技术,开发船舶固定水灭火模拟训练系统。下面仅以货舱失火,采用学员与虚拟辅助船员协同的方式开展固定水灭火训练为例进行说明。

设置起火位置和火势大小等环境信息(如图5所示)。按照图1所示的流程进行演习,学员与虚拟船员分工明确。驾驶室烟雾探测面板发出报警(见图13),值班驾驶员发出全船警报。在消防控制站打开消防泵,发现消防泵动力失常,“命令”虚拟船员打开应急消防泵(见图14)。学员漫游至货舱1,取出水带,铺设到指定地点,并连接消防栓;虚拟船员取出枪头(见图15),并连接水带。打开消防栓(见图16),对货舱壁进行降温。待火焰熄灭之后,回收整理消防设备,演习完毕。

学员在操作过程中,系统会完整地记录相关的操作步骤及结果数据。记录数据之后,采用专家法与隶属度函数[11]相结合的方式实现消防训练的评估。评估方法见文献[11],此处不再赘述。

4 结束语

本文基于HTC VIVE开发实现固定水灭火模拟训练系统,可为学员的操作提供更多自由度,捕捉学员的位置和手势来完成复杂的交互任务。该系统可降低培训成本,且培训不再受场地和时间的限制,培训效果较好。在后续研究中,可关注以下2方面:

1) 本文只针对固定水灭火系统的训练进行模拟,一个功能完备的船舶消防模拟训练系统还应包括自动喷水系统、固定二氧化碳灭火系统和固定泡沫灭火系统等其他灭火系统的模拟训练功能。

2) 提高火焰模拟的逼真度,并引入火灾蔓延模型。

猜你喜欢

消防栓模拟训练船员
我国注册船员超170万
超高消防栓(大家拍世界)
模拟训练(二)
模拟训练(十一)
模拟训练(十)
一种消防栓
中韩船员沉船遇难
流泪的消防栓