基于Unity 3D的火灾逃生模拟系统的实现

2018-03-22 01:31杨镇豪
电子技术与软件工程 2018年1期
关键词:模拟系统嗅觉气味

杨镇豪

火灾是威胁公共安全以及人民生命、财产安全的灾害之一,传统火灾逃生安全教育方式大部分采用观看视频,图片等方式。针对传统的教育方式缺乏交互性和真实体验感的问题,提出在火灾逃生模拟系统中使用嗅觉交互和动作捕捉的交互方式,以Unity 3D游戏引擎作为开发工具,运用虚拟现实技术优化用户的体验,以达到增强安全教育效果的目的。

【关键词】虚拟现实 虚拟嗅觉 Unity 3D 火灾逃生 动作捕捉

1 引言

火灾是威胁公共安全以及人民生命、财产安全的灾害之一。就中国而言,在2016年,国内共接报火灾31.2万起,亡1582人,伤1065人,直接财产损失37.2亿元。由于人们缺少应对火灾突发事件的经验,在火灾发生时往往因为恐慌或者使用错误的处理方法而丧失逃生的机会。火灾逃生安全教育可以提高人们的消防安全意识,帮助人们掌握逃生处置知识,提高火灾逃生安全教育的质量有很重要的现实意义。而传统的火灾逃生安全教育方式有听讲座,看视频,图片等。但这样的教育形式缺少与学习者的交互,不能通过实践的方式让学习者产生深刻的印象。

虚拟现实技术(Virtual Reality)通过计算机搭建模拟场景,让用户借助必要的装备与虚拟环境进行交互,相互影响,增强用户对虚拟场景所相对应的真实场景的感受和体验。将虚拟现实技术应用于火灾逃生安全教育,可以让学习者与虚拟的火灾场景交互,让其实践所学的安全逃生知识,从而加深對面临火灾时正确的处理方法的印象,提升教育效果。

现以Unity 3D游戏引擎为开发工具,采用虚拟现实技术实现嗅觉交互和动作捕捉的交互方式,开发一款火灾逃生模拟系统。

2 火灾逃生模拟系统概述

火灾逃生模拟系统是一款安全教育型应用,应用中加入了嗅觉反馈和动作捕捉的交互方式,让用户体验更加逼真的场景,达到更好的教育效果。它通过kinect和嵌入气味散发装置的面罩增强用户与场景的交互,这些设备向计算机传输用户在场景中的位移信息,可以让用户在场景中按照所指示的安全路线逃离,并且在用户进入危险区域之后会散发出刺激性气味提醒用户处于危险状态,当用户偏离正确逃生路线时,则会对用户进行提醒直到用户回到正确的方向,虚拟场景使用双摄像头从两个角度分屏显示,用户通过佩戴VR眼镜盒观看场景,可以实现更立体的效果,使场景更加逼真。利用此系统可以达到良好的安全教育效果。

3 火灾逃生模拟系统的实现

选择Unity3D搭建场景,使用Maya制作和修改3D模型,使用Kinect捕捉用户位移,使用带有气味散发装置的面罩作为嗅觉反馈的工具。将3D模型导入Unity3D引擎中,把Kinect与人物模型连接,将气味散发装置通过蓝牙与Unity3D场景中的触发器连接。

3.1 Kinect与Unity 3D中的人物模型连接

Kinect系统是微软公司推出的体感摄像机,可以实现动作捕捉的功能,我们使用它来检测用户的位置信息并实时的传输给计算机,通过与3D场景中的人物模型绑定,用户就可以实现在虚拟场景中行走。首先需要在Kinect官网下载安装KinectSDK,之后将Kinect与计算机通过USB口连接,打开KinectStudio并点击Connected,连接成功之后可以看到成像如图1。之后将KinectWrapper.unitypackage包导入Unity3D中并创建一个Terrain,将里面的KinectSensorManager脚本添加在Terrain上,把KinectModelControllerV2这个脚本添加在人物模型上,在Hierarchy面板中完成绑定骨骼。

3.2 虚拟嗅觉

虚拟嗅觉技术可以让用户在虚拟场景中闻到与比较真实的气味,能够提高用户的沉浸感,增强虚拟场景的真实感。在火灾逃生模拟系统中,用户既要能够在虚拟场景中行走,又要可以闻到刺激性气味,所以气味散发装置需要轻便并且可以配戴在用户面部。为此我们设计了一款带有气味散发装置的面罩如图2。

中间的气味散发装置由一个单路继电器和400Ω的加热电阻构成,当装置打开时,电阻温度升高,将浸有烟草精油的硬板加热,使用户可以闻到刺激性气体。电池组模块由3000mAh,12V的18650锂电池构成,负责给气味散发装置供电。MCU与蓝牙传输模块由一个HC01蓝牙模块和51单片机最小系统版构成。当用户进入危险的火灾区域时,计算机会通过蓝牙传输一个信号给气味散发装置,气味散发装置中的加热片刺激性气体开始挥发,指示灯亮起如图3。当用户离开危险区域时,则会再传输一个信号给气味散发装置,加热停止,刺激性气体停止挥发,指示灯熄灭。

3.3 判定用户是否处于危险区域

将虚拟场景中的区域分为两种,一种是没有火焰的安全区域,一种是有火焰的危险区域,当用户移动到危险区域时,计算机则给气味散发装置发送开启信号。在虚拟场景里创建一个正方体并调整大小,使其覆盖火灾区域,调整它的透明度使其完全透明。给正方体和人物的3D模型都添加碰撞器,当与用户相连的人物3D模型与正方体发生碰撞时,则给气味散发装置发送一个开启信号,当碰撞停止时给气味散发装置发送一个关闭信号。代码如下:

voidOnTriggerEnter(Collider other) {

char[] ch = new char[] { 's' };

com.Send(ch);

}

voidOnTriggerExit(){

ComModel com = new ComModel();

com.Close();

}

3.4 导航功能

导航功能的作用是指引用户逃生出口的方向。指示箭头的方向会随着用户所在虚拟场景中位置的变化而旋转。指示标识旋转的角度计算如下:设用户当前所在位置的坐标为User(x2,z2),逃生出口的坐标为Goal(x1,z1),默认初始时箭头指向用户视野的正前方,则箭头需要旋转的角度为arctan

,当大于0时顺时针旋转,当

小于0时逆时针旋转,代码如下:

void Update () {

x1 = -44f; z1 = 111f;//逃生出口的x,z的值

x2=transform.position.x;//人物当前的x值

z2=transform.position.z;//人物模型当前的z值

a=x1-x2;b=z1-z2;

c=a/b*k;

double r1 = Math.Atan(c) / Math.PI * 180 ;//计算出要旋转的角度

r2 = (float)r1;//把转过的角度数值变成float类型

quad.transform.rotation = Quaternion.Euler(57.804f, r2, 50f);

}

当用户处于危险区域时,指示箭头会由绿色变成红色如图4。

4 结束语

观看视频,照片以及听讲座的火灾安全教育方式缺乏交互性和真实体验感,而火灾安全教育又是安全教育中的重点,我们使用Unity3D游戏引擎作为开发工具,结合嵌入式开发技术实现虚拟嗅觉,借助Kinect体感摄像机实现动作捕捉的交互方式,开发出具有交互性和较强真实感的火灾逃生模拟系统,用户可以使用此系统更好地体验火灾逃生的过程。

参考文献

[1]中国消防.中国消防2016年全国火灾数据统计发布,2017-01-18.

[2]赵沁平.虚拟现实综述[F].中国科学,2009(01):2-46.

[3]王广军.基于运动捕捉数据的交互式智能控制与虚拟仿真[D].安庆师范学院,2013.

作者单位

东北师范大学 吉林省长春市 130117

猜你喜欢
模拟系统嗅觉气味
基于STM32单片机的微电网模拟系统设计
气味来破案
基于ARM和Zigbee 的变压器试验培训模拟系统
让你的嗅觉降降温吧!
车祸撞没了嗅觉 怎么赔?
虚拟现实焊接培训模拟系统在焊工培训中的应用
这个“气味”不简单
红外通信模拟系统的设计