基于Vicrowd模型的人群仿真研究
2015-01-09龚伟
龚 伟
(西南交通大学电气工程学院,四川 成都611756)
0 引言
大规模人群仿真即研究人群在各种环境下的运动特征与规律,建立大规模人群运动的仿真模型,在三维虚拟环境下展示人群的运动过程的仿真技术。人群的行为是由群体中的个体行为构成,它受外界环境及个体之间的相互影响。研究人群的行特点在许多领域有着较强的应用价值。
本文通过虚拟现实,对地铁站等场景中的乘客行走、聚集等行为进行仿真研究,这对大型公众设施的建设以及紧急状况下的疏散方案建立有重要意义。
1 人群仿真建模技术
人群是指某个时段在相同的环境下,为共同目标而组成的集合体。人群仿真模型,是对现实世界中人群行为特征的抽象。建立通用的人群运动模型是具有很大难度的,现实世界中每个人都是一个独立的智能体,每个人的立场、性格不相同,甚至对共同目标的认识也不尽相同,因此很难抽象出隐藏在复杂现象背后的共性特征。
Vicrowd模型的群体仿真技术克服了传统群体模拟的技术局限。本文基于此模型进行展开,并在Unity3d环境下,对此模型进行了实现。
1.1 Vicrowd模型介绍
Vicrowd作为一个通用的群体模拟系统模型,在人群模拟中起了非常重要的作用。该模型对人群的行为进行了系统的抽象,划分并定义了人群的不同属性、行为层次和控制层次,并且Vicrowd模型不受场景、情节和人群行为模式的限制,是比较通用的人群仿真建模方法。在这一模型下,群体中的个体心里、情绪等属性可以得到较好的体现。
ViCrowd模型把虚拟人群定义为三个不同的层次:人群(Crowd)、团队(Group)和个体(Agent)。团队由个体组成,人群由团队构成。团队的行为分为组行为,组行为又被分成个体行为。在同一组内的所有个体有共同的目标和趋势,因为它们有预定的行为,这个目标可以是一个点或一个区域。
Vicrowd模型定义了虚拟人行为的三个自由度层次,即被引导的、规划的和自治的。解释如下:
被引导行为:受到用户实时交互控制而激发的行为。规划行为:受到程序预先设定的脚本并控制的行为。自治行为:有虚拟人根据自身的知识、环境的影响等而自我激发并控制的行为。
其分层结构如图1所示。
1.2 Vicrowd模型实现
为了更真实地实现虚拟人群的行为,虚拟人群中的个体应具有高度的自治,能自动进行路径规划,产生从当前位置到目标位置的最优路径,引导虚拟人完成相应的目标。由于虚拟环境中存在各种静态或者动态的障碍物,因此需要对进行路径规格。
图1 Vicrowd模型分层结构图
在虚拟环境下,人群中具有不同的行为的个体不断对周围环境进行探测、感知,绝对当前的决策,采取相应的策略对目标路径进行规划。
1.2.1 信息感知
虚拟人群个体的信息感知主要通过视觉信息获取,碰撞检测的方式来实现。首先,虚拟人有一个圆形包围体,其半径即为碰撞区域的检测半径。其次,其还有一个感知半径,用于感知或者施加行为的影响半径。
人群个体在虚拟空间运动时,所感知的视觉信息时刻都在动态变化着,当障碍物(包括其他个体人)进入感知区域时,障碍物最外层的点与虚拟人中心的距离d必须大约个体的包围半径。
1.2.2 决策
规避从另外一面可以理解为从起始位置到终点的路径策略,由于虚拟个体处于一个动态变化的场景中,需要不断对周围环境进行检测,以更新个体信息。
本文采用了AStar算法,对整个虚拟环境进行栅格,采用广度优先的策略筛选出一条路径,使各个个体即不相互碰撞,由有相同的目标,显得更有条理。
1.2.3 行为调整
处于人群中的个体时刻受到周围环境的影响而改变自己相应的行为,比如一般状况下的跟随以及紧急状况下的排斥行为。
本文采用了物理力学模型,将各个影响抽象成物理中的受力,以合力的形式表现当前个体的行为。
综上所述,通过在每一个时间片刻内,采用BSP遍历所有人群中个体,不断检测周围其它个体和障碍物对当前个体的状态影响,分别以力的形式进行表现,合力决定了当前个体下一个时间片刻的行为。
2 总结
本文是基于Vicrowd模型,对人群仿真技术进行了研究和分析,并在Unity3D引擎对此进行了实现,取得了一定的成功,这些成果主要体现在对虚拟环境、人群行为的建模等方面。但是构建一个完善的人群仿真系统仍面临这许多的困难,这需要在以后进行优化。