本发明属于虚拟现实仿真技术领域,尤其涉及一种基于群体效应的应急人群疏散仿真方法及系统。
背景技术:
人群仿真已被广泛应用于模拟紧急场景,在仿真模拟中了解人类的行为,处理群体间的多样性,更快的从公共建筑物撤离,挽救更多的生命。而紧急情况是一种无法预见的,当紧急情况出现时,人们往往是缓慢的响应疏散报警,走熟悉的路线,而不是从最近的出口逃离。这些危险行为都是因为对环境的不熟悉,没有立刻意识到危险情况,遵循他人的不安全行为。并且在人群疏散过程中还会出现拱现象、障碍物的影响、干扰、羊群行为、流体行为等。从安全模拟角度,人群仿真可以改善紧急疏散中人群的移动的安全路线,识别建筑物中更安全的行为,也可以总结如何建造更安全的建筑物。
在人群疏散模拟中个体需要朝向目标导航,避免碰撞并展示其他人类行为。现已经开发出许多人群转向算法来逼真地模拟人群移动到他们的目标。人群涉及两个或更多对象,具有不同的特征。他们在同一地点,同一时间段内为了同一目的而互相交流和互动。但环境的建模以及个体建模都相当的复杂,工作量很大,对于大量的人群疏散仿真还是具有一定的局限性的。科技的迅速发展,应相应新的需求,需要有更加真实,高效的方法来实现大规模的人群疏散仿真。
技术实现要素:
针对现有技术中的不足,本发明提出一种基于群体效应的应急人群疏散仿真方法及系统。利用unity3d的软件优势,更加便捷的搭建场景,利用基于位置的动力学框架,碰撞预测模型、避免模型和社会模型来建模,以及自带的动画控制器,使人群疏散仿真的过程更加流畅、稳定、高效。
作为本发明的第一方面,提供了基于群体效应的应急人群疏散仿真方法;
基于群体效应的应急人群疏散仿真方法,包括:
步骤(1):在unity3d场景下搭建场景模型和个体模型;
步骤(2):创建场景与个体之间的交互关系,创建个体与个体之间的交互关系,生成应急场景;
步骤(3):在应急场景中,实现基于群体效应的应急人群疏散仿真;
作为本发明的进一步改进,所述步骤(1)包括:
步骤(11):利用maya建模软件,根据获取的场景参数,按照设定比例生成一个场景模型;将场景模型导入到unity3d场景中,在场景模型中设置光源的位置和摄像机的位置,对场景进行绘制和渲染;
所述场景参数,包括:场景尺寸、建筑物或道路;
所述场景模型,是指根据现实场景模拟的虚拟场景模型,包括场景尺寸、建筑物、道路、障碍物和环境出口;
所述对场景进行绘制和渲染,包括:种植花草树木,加入水潭、喷泉、天空、光照、雾效、风等,对路面、建筑物进行美化;
步骤(12):对场景进行划分,划分出可行走区域和不可行走区域,对地面进行导航网格烘培,标识出所有出口;
步骤(13):利用maya建模软件,依据采集的个体尺寸搭建个体模型,将个体模型导入到unity3d场景中,在unity3d场景中使用动画控制器为个体模型添加animatorcontroller动画控制组件,并为个体模型添加动画控制脚本;
所述个体尺寸,包括:个体模型的身高、体重、身体半径;
所述动画控制脚本,记载走、跑、前进、后退、侧移、弯腰或坐下的基本动作;
步骤(14):创建个体模型预设体prefab,对个体模型进行实例化:在unity3d场景中为个体模型添加navmeshagent自动寻路组件,并添加寻路控制脚本,寻路控制脚本用于在事件发生时,获取个体模型自身位置与出口的距离,搜索个体模型到达最近安全出口的最短路径。
作为本发明的进一步改进,所述步骤(2)的步骤为:
步骤(21):在unity3d场景中,创建空对象gameobject,将空对象gameobject更名为manager,创建危险事件,并添加危险事件发生的控制脚本;
所述危险事件发生的控制脚本,包括:控制火灾或爆炸发生的脚本,事件发生后的音效以及视觉效果;
步骤(22):控制危险事件的发生或结束,危险事件发生三分钟后报警打开,报警一分钟后广播打开,通知人群危险事件发生的类型和地点,指导群众撤离;
步骤(23):假设环境中有n个人,每个个体模型i用固定大小的粒子表示,i=1,2,3,…,n;个体的位置
为每个个体添加混合速度、碰撞约束、碰撞预测、避免碰撞模型、最大速度或加速度限制;
步骤(24):设时间间隔δt=1/48秒,个体的视野范围为3米,出口处的人群最大流量设置为1.37p/m/s;
所述混合速度是指:
其中,设α=0.0385;
所述碰撞约束,是指:
c(xi,xj)=||xi-xj||-(ri+rj),(2)
其中,c(xi,xj)表示个体间的距离,xi表示个体i的位置,xj表示个体j的位置,ri表示个体i的体积半径,rj表示个体j的体积半径。如果c(xi,xj)大于等于零,则表示两个个体之间不能相互碰撞;
所述碰撞预测,是指:
c=||xi-xj||2-(ri+rj)2,(6)
其中,τ表示碰撞时间,a表示速率的平方,b表示速率与个体距离的乘积,c表示个体间的相隔距离,
所述避免碰撞模型,是指:
将d分解为接触法线和切向分量如下:
dt=(d·e)e,(11)
ds=d-dt,(12)
其中
其中,d表示相对总位移,
作为本发明的进一步改进,所述步骤(3)的步骤为:
步骤(31):在unity3d环境下启动控制危险事件对象;
步骤(32):危险发生后,每个个体获得危险信号,利用寻路控制脚本搜索去往最近出口的最短路径,同时把危险信号传递给设定距离范围内的周围个体,周围每个个体接收信息,获取自身位置,规划疏散路径;
步骤(321):假设从时刻n到时刻n+1;利用时间间隔δt将时刻n到时刻n+1划分为若干个时间段;
定义个体i的位置为
在n+δt时间点,个体i的预测位置
在n+δt时间点,个体j的预测位置
计算确切的碰撞时间τ:
其中τ0是设置的固定常数。
估计碰撞时间
得到个体i在碰撞前倒数第一个时间间隔点的位置
得到个体j在碰撞前倒数第一个时间间隔点的位置
在下一时间间隔δt,个体i和个体j在
步骤(322):给个体i和个体j使用碰撞约束:
c(xi,xj)=||xi-xj||-(ri+rj),(2)
解决个体i和个体j在位置
步骤(323):计算从时间
步骤(324):将相对位移d分解为接触法线分量dt和接触切向分量ds;
dt=(d·e)e,(11)
ds=d-dt,(12)
其中,
步骤(325):接触切向分量ds被分配给
n+1时刻的个体位置x′i,j为:
步骤(326):计算个体i的n+1时刻的速度
当速度
计算个体j的n+1时刻的速度
当速度
重复步骤(321)到步骤(326),直到人群离开危险区域,到达安全出口;
步骤(33):在摄像机下观察场景中个体的移动情况,均到达指定安全位置后,结束应急人群疏散仿真。
所述步骤(33)在场景中设置多个摄像机,从场景的各个方向观察,一个主摄像机设在场景的上方,俯视整个场景,观察人群的移动情况,再设置若干个分摄像机,分别位于场景的东西南北,观察各个位置的人群疏散。
作为本发明的第二方面,提供了基于群体效应的应急人群疏散仿真系统;
基于群体效应的应急人群疏散仿真系统,包括:存储器、处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成上述任一方法所述的步骤。
作为本发明的第三方面,提供了一种计算机可读存储介质;
一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器运行时,完成上述任一方法所述的步骤。
与现有技术相比,本发明的有益效果是:
第一,unity3d本身具有很强大的现实场景创建功能,能很好地模拟现实场景中的任何效果,场景的可视化,以及三维动画的应用程序开发工具和大量的数据包可以更加便捷的为开发者提供高效的开发平台。
第二,将基于位置的动力学作为模拟多个体动力学的替代离散算法。群体无缝地相互传递,以及以最小干扰。使用不同密度的基于位置的动力学约束混合物,对不同密度的个体组进行了新颖的基于位置的动力学方法论证。
提出了具有自适应刚度的新型碰撞约束,它作为摩擦接触实际碰撞的现实预处理器,具有足够的刚度来强制非穿透。方案的灵活性,有趣的模式和紧急行为。
与现有方法相比,基于位置的动力学的优点是时间步长大,稳定性好,易于控制。强大的并行框架可以以最小的运行时间成本轻松地融入更复杂的人群行为。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1是本发明的流程图;
图2是步骤(321)碰撞预测图;
图3是步骤(322)碰撞约束图;
图4是步骤(323)总相对位移图;
图5是步骤(324)位移分量图;
图6是步骤(325)避免碰撞图;
图7是本发明的逻辑关系示意图。
具体实施方式
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
作为本发明的第一个实施例,如图1和图7所示,基于群体效应的应急人群疏散仿真方法,包括:
步骤(1):在unity3d环境下搭建场景模型和个体模型;
步骤(2):创建场景与个体之间和个体与个体之间的交互关系,生成应急场景;
步骤(3):在应急场景中,实现基于群体效应的应急人群疏散仿真。
步骤(1)的步骤为:在unity3d环境下搭建场景模型和个体模型:
步骤(11):利用maya建模软件,根据获取的场景参数,按照设定比例生成一个场景模型。将场景模型导入到unity3d中,在场景中设置光源的位置和摄像机的位置,对场景进行绘制和渲染;
所述场景参数,包括:场景尺寸、建筑物或道路;
所述场景模型,是指根据现实场景模拟的虚拟场景模型,包括场景大小,建筑物,道路,障碍物,环境出口;
所述对场景进行绘制和渲染,包括:种植花草树木,加入水潭、喷泉、天空、光照、雾效、风等,对路面、建筑物进行美化;
步骤(12):对场景进行划分,划分出可行走区域和不可行走区域,对地面进行导航网格烘培,标识出所有出口;
步骤(13):利用maya建模软件,依据采集的个体尺寸建模。将个体模型导入到unity3d场景中,使用unity3d软件中的动画控制器为个体模型添加animatorcontroller动画控制组件,并为个体模型添加动画控制脚本;
所述个体尺寸,包括:个体模型的身高、体重、身体半径;
所述动画控制脚本,记载走、跑、前进、后退、侧移、弯腰、坐下等基本动作;
步骤(14):创建个体模型预设体prefab,对个体模型进行实例化;在unity3d场景中为个体模型添加navmeshagent自动寻路组件,并添加寻路控制脚本,寻路控制脚本用于在事件发生时,获取个体模型自身位置与出口的距离,搜索个体模型到达最近安全出口的最短路径;
所述步骤(2)的步骤为:创建场景与个体之间和个体与个体之间的交互关系,生成应急场景:
(21)在unity3d场景中,创建空对象gameobject,更名为manager,建立ui控制个体模型和危险事件,并添加控制脚本;
(22)控制危险事件的发生或结束,危险事件发生三分钟后报警打开,报警一分钟后广播打开,通知人群危险事件发生的类型和地点,指导群众撤离;
(23)采用基于位置的动力学框架,碰撞预测模型和避免模型来建模。利用基于位置的动力学的效率和稳定性,以数十万个个体的交互速率运行。对拉格朗日公式中的每个个体的行为进行详细建模。模拟短程和远程避碰,以模拟稀疏和密集的人群。用计划速度来增加试验性粒子运动,以确定个体的优选速度,并将这些位置投影到约束流形上以消除碰撞配置。局部短程相互作用表现为个体之间的碰撞和摩擦接触,如粒状材料的离散模拟。结合了一个碰撞约束来建模集体行为,并提出了一个处理潜在未来碰撞的新约束;
(241)速度混合。用
α∈[0,1],在所有的模拟中,设置α=0.0385;
(242)碰撞约束。使用标准的基于位置的方法对具有不均等距离约束的局部粒子接触进行建模:
c(xi,xj)=||xi-xj||-(ri+rj),(2)
其中ri和rj是个体模型i和j的体积半径,以模拟相邻个体之间的摩擦行为,c(xi,xj)≥0约束个体不能互相碰撞;
(243)碰撞预测。设计一个基于位置的约束。像幂定律一样,主要术语是碰撞时间τ,定义为两个个体i和j在将来接触彼此的时间。表示为
c=||xi-xj||2-(ri+rj)2.(6)
个体i和j在下一个时间步长的预测位置是
使用τ来估计i和j之间的未来碰撞状态。首先使用(3)计算确切的碰撞时间。有效情况为0<τ<τ0,其中τ0是固定常数。删除无效案例后,处理剩余的碰撞对。定义
在下一δt时间,个体向前迈进会在
在
(244)避免模型。进一步提出一种用于人群碰撞的回避模型。上一步骤中的碰撞预测约束将导致个体减速,因为碰撞时沿着接触法线的运动,这在密集场景中是不可取的。而该碰撞响应的切向分量是需要的,这有效地使个体仅响应于预测的碰撞而滑动。因此,我们只保留这种碰撞中的切向运动。计算总相对位移为
它可以分解为接触法线和切向分量如下:
dt=(d·e)e,(11)
ds=d-dt,(12)
其中
(245)基于研究设定个体的初始速度范围,v=0.9+rand(0,0.5);
(246)最大速度限制。约束解决后,进一步限制个体的最大速度,以更好地逼近真实的人类行为;
(247)墙壁和障碍物。个体可以与环境中的墙壁和其他静态障碍物相互作用。防止个体在墙壁和其他静态障碍物上运动,为墙壁和静态障碍物添加碰撞体,并设置质量无限大。
(248)每一步预测的时间间隔δt=1/48秒。个体的视野范围为3米,出口处的人群最大流量设置为1.37p/m/s。
所述步骤(3)的步骤为:在应急场景中,实现基于群体效应的应急人群疏散仿真:
步骤(31):在unity3d环境下启动控制危险事件对象;
步骤(32):危险发生后,每个个体获得危险信号,利用寻路功能搜索去往最近出口的最短路径,同时把危险信号传递给设定距离范围内的周围个体,周围每个个体接收信息,获取自身位置,规划疏散路径。例图3决策影响模型。
步骤(321):假设从时刻n到时刻n+1;利用时间间隔δt将时刻n到时刻n+1划分为若干个时间段;如图2所示;
定义个体i的位置为
在n+δt时间点,个体i的预测位置
在n+δt时间点,个体j的预测位置
计算确切的碰撞时间τ:
其中τ0是设置的固定常数。
估计碰撞时间
得到个体i在碰撞前倒数第一个时间间隔点的位置
得到个体j在碰撞前倒数第一个时间间隔点的位置
在下一时间间隔δt,个体i和个体j在
步骤(322):给个体i和个体j使用碰撞约束,如图3所示;
解决个体i和个体j在位置
步骤(323):计算从时间
步骤(324):将相对位移d分解为接触法线分量dt和接触切向分量ds;如图5所示;
dt=(d·e)e,(11)
ds=d-dt,(12)
其中,
步骤(325):接触切向分量ds被分配给
n+1时刻的个体位置x′i,j为:
步骤(326):计算个体i的n+1时刻的速度
当速度
计算个体j的n+1时刻的速度
当速度
重复步骤(321)到步骤(326),直到人群离开危险区域,到达安全出口;
步骤(33):在摄像机下观察场景中个体的移动情况,均到达指定安全位置后,结束应急人群疏散仿真。
作为本发明的第二个实施例,提供了基于群体效应的应急人群疏散仿真系统;
基于群体效应的应急人群疏散仿真系统,包括:存储器、处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成上述任一方法所述的步骤。
作为本发明的第三个实施例,提供了一种计算机可读存储介质;
一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器运行时,完成上述任一方法所述的步骤。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。