1. 引言
交通运输作为国民经济发展的重要一环,是我国社会、经济、生活各个方面能够正常运行的基础前提,交通状态的好坏直接影响到物资给养运输的效率。事实上我国复杂的地质条件与多变的气候特征催生出了种类多变的自然灾害,严重威胁了交通基础设施的正常运转。近年来,我国应急管理部与交通运输部多次提出了应急管理体系能力建设的重要指示与应急管理信息化建设的意见。如今,传统的应急桌面推演与实地演练已无法满足应急管理人员的培训,同时存在演练环境不易搭建、场景单一且高成本等问题。为此借助计算机技术的帮助来提升应急处置人员的专业能力,辅助教育应急管理人员,促进信息技术与应急管理业务深度融合。
虚拟地理环境(Virtual Geographic Environments, VGE)是基于因特网的多用户虚拟三维环境,将现实世界中的人与虚拟世界中的三维图形表达相结合,是一个可用于模拟和分析复杂地学过程与现象,支持协同工作、知识共享和群体决策的集成化虚拟地理实验环境与工作空间 [1] 。目前在许多行业领域,国内外学者尝试以虚拟地理环境的形式,并结合游戏引擎中的技术,实现应急救援的教育与培训。其中,潘卫军 [2] 等人基于VR技术同时利用Unity3D研发机场应急救援虚拟演练平台;周柏贾 [3] 等人通过三维虚拟仿真地震灾害场景的发生发展过程和应急推演过程;朱新平 [4] 等人采用三维建模技术和粒子系统构建机场火灾虚拟场景,并基于Unity3D引擎实现教员和学员人机交互。Shamus P. Smith [5] 等人探讨了在消防演习疏散场景中计算机游戏技术的重用如何帮助虚拟环境的快速原型化。
运用计算机游戏引擎技术,能够弥补桌面推演存在的参演人员较少、只能查看文字记录、对救援场景的体验感不强等问题。并且相较于桌面推演能够提供更加绚丽的渲染效果和交互体验 [6] [7] [8] [9] ,相较于实地演练能够更加方便灵活,降低演习的成本。结合国内外学者的研究,现有的虚拟演练系统多面向火灾消防、地震救援等场所 [10] - [15] ,由于针对特定类型的场景设计相对单一,缺乏扩展性,而且面向道路交通行业的虚拟应急演练存在空白。因此,本文将虚拟地理环境的理念与交通行业的道路应急演练相结合,梳理交通行业道路应急预案和演练脚本,依据真实应急处置过程分析道路应急虚拟演练环境的功能及实现技术,采用模块化的设计理念构建虚拟演练情景库,研发基于虚拟演练场景的多用户网络协同互操作的原型系统,辅助北京市交通应急管理部门开展日常培训、线上应急演练和实战演练,提升综合应急保障能力。
2. 道路应急虚拟演练环境设计
2.1. 系统结构设计
道路应急演练的目的是提高应急反应能力,通过演练不断形成及时、快速、准确、安全、有效的应急响应机制,对真实的救援、道路快速抢通等工作起着关键作用 [16] 。应急虚拟演练以提升应急管理体系和能力现代化为目标,主要以互联网与计算机技术在安全应急领域中的融合应用为主。包括建设应急演练情景库、基于互联网平台开展道路应急风险仿真、应急演练以及处置措施的评估。基于上述需求,本系统面向多用户场景协同应急演练,如图1所示为道路应急虚拟演练系统设计。系统分为指挥调度层、情景仿真层、数据模型层、操作交互层和考核评价层。指挥调度层包括演练情景设定、灾情信息上报、装备队伍调度和演练过程评价功能。基于Web地图服务、Websocket的前端网络通信协议和基于RPC (Remote Procedure Call)框架的远程过程调用协议参与指挥调度,向情景仿真层传输数据。情景仿真层基于UE4的桌面三维渲染,接收指挥层数据,调用情景库中的数据。包含三维地形场景、突发事件仿真和用户处置行为。数据模型层是模块化构建的三维情景库,包括场景中的天气与时间、三维地形和材质贴图、各类突发事件的模拟、演练装备模型、视频和音频等流媒体数据。操作交互层包括演练场景规则与信息同步接口、用户输入接口与角色行为接口,根据情景库内容调用对应的处置交互接口,返回仿真层。最后是考核评价层,记录此次演练的内容,基于评估体系量化评价。

Figure 1. Design of a virtual road emergency drill system
图1. 道路应急虚拟演练系统设计
2.2. 系统流程框架
道路应急虚拟演练系统的总运行流程框架如图2所示。首先,由指挥组指定演练目标,可按照应急预案、应急处置流程安排演练任务或直接进行无脚本的演练,此时各个用户根据自身角色登入不同的用户组;其次,导演组设定突发事件的类型、规模并发布预警信息,此时演练组内的用户根据自身的角色执行应急调度相关任务;再次,导演组可使用预设的或进行模块化定制灾害场景,用于接下来的灾害情景仿真和演练组的灾害处置相关任务;最后,评估组根据全程的演练记录,结合评估体系进行评估打分。在演练任务开展后观摩组可实时浏览本次应急虚拟演练的全过程。

Figure 2. Virtual road emergency drill process framework
图2. 道路应急虚拟演练流程框架
应急演练训练的是应急反应能力,要求场景多变、内容丰富,提高随机应变能力 [17] [18] ;要求演练人员做到分工明确,各部门协同配合,提高工作效率。为满足日常培训与线上应急演练的要求,道路应急虚拟演练系统具备了以下特点:1) 真实的场景渲染,即应急虚拟演练环境对地理环境中各实体的客观表达,具有逼真的渲染效果,提供身临其境的视觉效果;2) 科学的情景仿真,即基于数学模型计算,科学的进行推演,实现事故灾害的模拟仿真;3) 定制化演练环境,即突出事故灾害的突发与复杂多变特点,系统采用模块化的虚拟场景编辑方式,可将不同类型、规模的事故与不同的场景结合,实现演练环境的三维动态定制;4) 实时的协同操作,即支持多用户以多身份登入系统,扮演不同角色,实现在同一应急演练环境内的实时交互、协同演练的效果。
3. 道路应急虚拟演练系统研发
道路应急虚拟演练系统主要是针对应对道路突发灾害的组织调度能力和应急处置能力,面向多用户协同应急演练培训。为此本系统主要基于UE4游戏引擎以及Web前端开发技术进行研发,包括应急调度演练子系统和演练环境仿真与处置子系统。应急调度演练子系统是培训演练人员进行信息上报、人员装备协调等应对随机突发灾害事件的响应能力。演练环境仿真与处置子系统是模拟仿真路面塌陷、山体滑坡和桥下积水这三类场景,并培训演练人员处于灾情事故现场时的事故处置能力。系统的总体实现技术路线如图3所示。系统研发主要有三项关键技术:1) 三维场景构建技术;2) 突发事件情景仿真;3) 多用户网络协同技术。
3.1. 三维演练场景构建技术
道路应急虚拟演练系统主要是针对路面塌陷、山体滑坡和桥下积水这三类事故场景进行三维场景构建,为丰富演练场景内容,增加场景的扩展性,采用模块化设计理念,构建可动态调整的灾害情景库。情景库包括演练环境模块和演练交互模块。其中环境模块包括场景、天气和时间模块,且该模块参数根据预警等级动态调整。交互模块包括事件、操作和装备模块。事件模块包含多种突发事件情景、装备模块包含场景与处置所需的三维模型、操作模块包含了完整的应急处置流程动作。
场景内的三维实体模型通过3DMax三维建模软件制作,包括交通领域的三维模型如路障、护栏、水泵等;具有骨骼的三维模型如应急人员、铲车、拖车等。对于人物车辆等三维模型制作骨骼、动画,最终导出成.fbx文件格式导入UE4引擎中。
构建三维地形场景分为三维地形构建和地形材质构建,由于现实中的自然生态环境复杂多样,不同的地貌之间不存在明确的分界线,因此给不同的地形材质分配一定的权重进行材质混合,达到地形材质柔和过度的效果以实现错综复杂的地貌环境。当地形变化过于剧烈时,会遇到材质贴图过度拉伸的现象,因此全局场景采用一致纹理方法解决。指定投射纹理贴图的方向,并按全局单位(而非纹理贴图大小的百分比)进行比例调整,来避免面对特殊地形时贴图的过度形变。

Figure 3. Technical route of the virtual road emergency drill system
图3. 道路应急虚拟演练系统技术路线

Figure 4. Principle of distance conversion
图4. 距离转换原理
随着地形和材质精细程度的提升,对于硬件计算的压力也将提高,为了降低资源消耗提高渲染速度,又保留场景逼真效果,将用户的可视范围划分为近距离、过渡区域和远距离三类可视范围,如图4所示。将近距离范围的贴图依照图片的高度属性上下拉伸,远距离范围的贴图则不予拉伸,而过渡区域的贴图随着视距的增大,拉伸效果逐渐降低。基于以上构建距离转换算法(1)。
(1)
式(1)中Clamp函数对内部值起限制作用,内部值超出最大值则输出最大值,反之输出最小值,处于范围内输出自身值;di为任意可视点i的距离;dmin为近距离范围的终点距离;dmax为远距离范围的起点距离;H为最大高度,通过计算得到过度区域的拉伸值区间。再由式(2)计算出贴图偏移向量H,其中h1为凸出偏移参数;h2为凹陷参数;v为全局空间的顶点法线向量。
基于可视域的距离转换效果如图5所示,红色为近距离区域,绿色为远距离区域,中间的过渡色为过渡区域(图5(a))。最后赋予材质贴图,通过距离转换算法处理,保留了处于视野近处的贴图细节,并且降低处于远处视野的贴图细节(图5(b))。

(a) 可视域划分 (b) 应用效果
Figure 5. Distance conversion based on visual field
图5. 基于可视域的距离转换
3.2. 突发事件情景与处置仿真
3.2.1. 突发事件虚拟情景仿真
突发事件虚拟情景仿真根据事故类型包括塌陷仿真、滑坡仿真和水体仿真。为了构建更加真实的演练环境,利用Cinema 4D (以下简称C4D)三维动画渲染软件和UE4游戏引擎实现突发事件的仿真。C4D是一款具有极高的运算速度和强大的渲染插件的三维动画渲染软件,广泛应用于广告、电影、工业设计等方面。其中动力学仿真(Dynamic Simulations)模块提供了模拟真实物理环境的功能,可以实现例如重力、风力、质量、刚体、柔体等效果。
相较于水体仿真,塌陷和滑坡的过程相对复杂,利用C4D的动力学仿真实现地面塌陷和山体滑坡的效果。通过对现实事故发生过程变化进行观察,分析其运动规律,将复杂的运动过程抽象成几类简单的运动过程的集合。以地面塌陷为例,如图6所示,塌陷的过程可以抽象为由上层的刚体(路面,图6(a))和下层的柔体(土壤,图6(b))叠加而成的运动过程,通过刚体动力学和柔体动力学模拟上下层的运动状态。最后将运动过程叠加并添加材质贴图形成完整的仿真效果。

Figure 7. Analysis on the effect of water flow
图7. 水流影响分析
出于对运行效率的考量采用基于纹理变换的流体模拟复现水体的视觉效果,水的基本流动原理可以理解为二维图像的UV偏移,水平方向是U,垂直方向是V,通过偏移的二维向量用来决定水的流向。当水流没有物体阻碍时(图7(a)),只需对二维图像进行一个方向的偏移。当水流接触物体时并不是直线穿过(图7(b)),水流会受物体影响,基于流体力学原理分析,水流方向会随物体轮廓进行偏移。另外水流方向并不是完全一致,随着与物体距离的增大,水流流向的改变效果会逐渐减弱,当距离足够远后,水流方向将不受影响(图7(c))。以二维图像偏移的思路分析,使用符号距离场(SDF)的概念:
(3)
以球形为例,由式(3)可知p为空间内部任意一点,c为球心,r是球体的半径(p和c都是向量表示)。当p点在球体的内部,则f(p)小于0,如果点在球体的外部,则f(p)大于0,当p点刚好处于边界上,则f(p)等于0。
(4)
在得到贴图的距离信息后,采用梯度定义(4),计算相交位置的点法线信息来确定贴图的拉伸方向。
(5)
使用向前微分计算偏导数,尽可能减小h,在
处计算f。
(6)
由式(6)可知,通过位于曲面上的点处SDF的梯度来计算该曲面的法线n。
(7)
由式(7)可知,p1为贴图拉伸幅度,p2为用来调节过渡的软硬程度,将自身的纹理贴图坐标乘以曲面法线n,可以产生一个柔和的沿着相交区域点法线方向向外的过渡效果。而目前过渡太均匀,整体流动的大方向关系不明确,需要添加方向性。
(8)
式(8)可知,在曲面法线n基础上,再加一个水流的流动方向向量s,最后将切空间的向量转换成场景空间的向量。其中i,j为单位向量;p2为阻力强度;p3为水流速度;u、v为纹理坐标。图8显示了上述三种事件模拟效果。
3.2.2. 突发事件应急处置仿真
突发事件应急处置仿真是根据应急预案等文本材料,对不同类型突发事件相对应的应急处置流程进行可视化的渲染。处置流程可分为相对简单笼统的文本类信息报送和相对复杂具体的处置工作,但相较于信息报送,具体的实际处置工作大多数需要与周围环境进行交互。在模拟周边环境时,通常会交给物理引擎去处理,但有时需要更加准确地判定一个环境的性质,以便构建交互动作 [19] [20] ,就需要通过射线检测方法来实现,如图9所示。

Figure 9. Principle of line trace detection
图9. 射线检测原理
射线检测原理是根据指定的起点A和终点B,引擎会发射一条由A到B的线段,线段会与AB之间的物体对象发生碰撞,并把碰撞点的位置、法线等信息返回给我们。类似于蝙蝠通过超声波来判断障碍物。基于射线检测原理,可以得到人员与场景内某一位置或某物体的具体方向和距离信息,用以判断演练人员是否可以执行某些操作。
3.3. 多用户网络协同技术
多用户网络协同技术主要面向演练环境仿真与处置子系统。其过程先由导演组定制并创建演练环境,随后用户以不同的身份加入到演练环境中。多用户网络协同有两种方式,一种是局域网联机,另外一种是外网联机,需要有独立的服务器。独立服务器顾名思义是指客户端和服务器端是相互独立的,但无论是何种网络协同方式,只存在一个服务器端。
最常用的通信机制是通过RPC (Remote Procedure Call)机制进行的,是一种利用网络手段,将函数调用和执行分开的方式。通信机制分为三种,如表1所示:1) Server函数,即客户端调用,服务器执行;2) Client函数,即服务器调用,客户端执行;3) Multicast函数,即服务器调用,服务器和所有客户端执行。在虚拟演练环境中服务器对虚拟演练环境状态拥有主控权力,如果机器之间的数据出现差异,都一律以服务器为准。因此把拥有主控权力的对象当作是服务器,反之则为客户端。任何与虚拟演练环境规则或状态相关的变量以及参与复制同步的对象,都以服务器的为准,而客户端的变量或对象是从服务器复制而来的。

Table 1. RPC communication mechanism
表1. RPC通信机制
3.4. 系统应用实例
以重大防汛突发事件为例:可能出现路面积水、路面沉陷,桥下大范围积水,路侧山体塌方或较大面积山体滑坡等情况。基于本平台开展道路应急虚拟演练,指挥组安排演练任务,导演组设定具体的场景、事故类型、事故规模等参数,由情景库生成对应的虚拟场景。部分事件情景如图10~12所示。演练成员依照上述的情景编制抢险方案(人员、机械设备配置情况),并在虚拟的事故场景中执行灾害处置动作如图13所示。到达虚拟事故现场码放路障与警示牌,根据事故类型执行相应的操作,如驾驶铲车清理滑坡体、搬运砖块修补水毁边坡、操作水泵清理积水等处置工作,要求演练人员协同完成。最后对整体虚拟演练过程进行记录方便后续评估打分。
由图10~13应用效果可知本文构建的道路应急虚拟演练环境不局限于某个固定的灾害场景,是由情景库将场景组合而成,系统涉及灾害情景类型多样,根据演练需要可进行模块化定制,提高演练的丰富度;可同时进行多种虚拟场景的演练,并且在应急响应的过程中可随时升级事件等级,提高演练的灵活性。
4. 总结
相较于传统桌面推演,虚拟的事故现场能够为演练人员提供较强的体验感,参演人员不需要聚集在同一个地方,具有较高的便利性;没有人数限制,非关键人员也可以登陆系统进行虚拟应急演练,提升对交通应急处置流程的熟悉程度。相较于实地演练,实施成本低、可多次重复、内容随机性强。结合上述优点可辅助应急人员开展日常培训、线上应急演练和实战演练指挥调度。
本系统以互联网与计算机仿真技术在安全应急领域中的融合应用为主,满足日常培训与线上应急演练的要求,为交通应急行业人员提供了符合真实应急业务的、科学的虚拟演练环境。结合三维动画渲染软件和UE4游戏引擎模拟真实的道路突发事件场景,并在尽量保持帧数稳定的前提下,提高场景效果。本系统的核心在于演练环境中事故现场和处置过程的仿真,为了提升虚拟演练的灵活性,情景库中储存了多种场地,可与滑坡、积水和塌陷等事件组合出不同的情景;并且多种参数如天气、事故类型与规模等,受预警等级影响,避免演练流程单一。对于应急调度演练子系统只进行信息上报和人员装备协调工作。后续工作需要扩充该子系统的功能,丰富应急准备阶段内容。添加一些随机事件,使虚拟演练环境丰富化、灵活化,避免死板的遵循应急演练脚本,为道路应急演练提供一种全新的演练环境——虚拟协同演练环境,从而提高现实应急演练中虚拟现实技术应用实践水平,推动未来应急元宇宙的发展。
基金项目
北京市自然科学基金(8202013);国家自然科学基金(41771413)。
NOTES
*通讯作者。