[发明专利]一种流体环境影响下的群体行为控制方法有效

专利信息
申请号: 201410564383.5 申请日: 2014-10-22
公开(公告)号: CN104299265B 公开(公告)日: 2017-07-25
发明(设计)人: 卢光辉;温泉;陈雷霆;蔡洪斌;曹跃;邱航;崔金钟 申请(专利权)人: 电子科技大学;东莞电子科技大学电子信息工程研究院
主分类号: G06T17/00 分类号: G06T17/00;G06T17/30
代理公司: 成都中亚专利代理有限公司51126 代理人: 何渊
地址: 611731 四川省*** 国省代码: 四川;51
权利要求书: 暂无信息 说明书: 暂无信息
摘要: 发明提供了一种在流体环境影响下的群体行为控制方法。在基于物理的流体仿真方面,通过求解计算流体动力学方程(Navier‑Stokes方程)中的平流项、外力项和压力项,更新流体的水平集、速度等物理量,基于GPU(Graphic Processing Unit)完成流体的仿真计算。在基于势能场的群体行为规划方面,对于局部势能场和全局势能场进行有效的融合。从而在保证路径最优的同时,提高运算效率。在流体环境对于群体行为的影响方面,主要是通过对于个体(Agent)产生作用力来影响最终的导航力,以达到对于群体行为控制的目的。本发明能够有效地实现流体环境影响下的群体行为控制的真实效果。
搜索关键词: 一种 流体 环境 影响 群体 行为 控制 技术
【主权项】:
一种流体环境影响下的群体行为控制方法,其特征在于,该方法包括以下步骤:步骤1,初始化流体的水平集、速度,对流体的水平集和速度进行平流:在初始化流体的物理量之前,需要初始化流体的仿真网格,然后根据网格创建3D纹理,保存流体的初始状态;通过逆向处理和使用隐式积分法计算平流,从每个网格单元逆时追踪粒子轨道,得到它以前的位置,并到开始的网格单元,复制那个位置的量,将这种平流方法应用到速度和水平集上,得到中间的速度和水平集信息;步骤2,处理静态场景物体,生成静态局部势能网格:步骤2.1,采用二维向量数组进行存储,数组值代表地理网格顶点上的势能值,向量方向代表势能梯度下降方向,大小代表势能对周围物体的作用力大小;采用双线性插值进行计算二维空间任意点上的平滑势能作用力;设和分别代表网格顶点p上的势能;L为网格大小;X和Y分别代表距格子边的距离;则势能如公式(6)所示:F→=(L-X)(L-Y)p→1+X(L-Y)p→2+(L-X)Yp→3+XYp→4---(6)]]>步骤2.2,对于规则物体,采用其边沿及其平行扩展作为势能等高线,因此势能方向垂直几何边缘,势能大小采用类似库伦力的方式计算,为了方便描述,引入两个参数‑‑‑影响范围δ和影响力度λ,影响范围δ表示几何体对其边界以外周围δ单位以内的点存在影响:影响力度λ表示几何体对影响范围以内的点的影响程度比例参数,则几何体外部且距离边缘的最短距离向量为上的点所受的势能如公式(7)计算求得:S→=λ(δ-|V→|)/(|V→|·|V→|)·V→---(7)]]>当点处于几何体边沿时,势能大小为无穷大;当处于作用范围边缘时,势能大小为0;为了简化考虑,所有处于几何体内部的点所受力大小为无穷大;所有处于物体作用范围δ外的点所受力大小为0;当一个点受到多个几何体的势能作用时,采用矢量叠加方式处理,从而可以方便地进行几何体的添加和删除操作;步骤2.3,使用采样方式近似计算地形梯度,设v1…v8为网格顶点p周围的八个顶点,将该九个顶点垂直映射到地形上,求得对应8个三维空间向量中与水平面夹角最大的向量Vmax;取Vmax方向作为梯度V的方向:Vmax与水平面夹角的正切值作为梯度V的大小;地形产生的势能将叠加到已求得的势能当中,假设在地形某点处的地形曲面梯度为V,行走难度为λ,则该点的势能使用公式(8)求得:F=‑λ*V   (8);步骤3,根据静态局部势能网格,针对每个网格点,生成对应的全局势能网格:求解对目标点A的全局导航势能,将全局网格精度设为局部网格的1/3,构建一张路径拓扑图,图中每条线段的权值采用公式(9)计算:其中F(i)表示i点的局部势能,意思为从顶点A开始,以局部格子大小为采样步长,直到顶点B,所有采样点上的局部势能作用力大小之和,Len(AB)表示顶点A到顶点B的距离,分别代表局部势能和距离对全局势能的影响权值;当完成对每条线段的权值计算后,就可以求出整个全局势能场,整个运算过程并不求出每条到达A点的单独路径,而是在每个网格点上存储一个指向其最近邻接点的向量作为全局路径导航作用力;步骤4,处理动态物体,更新周围网格:动态物体在一定时间内运行的路径会形成一个几何图形,利用该几何图形的静态计算模型即为该物体的动态计算模型;处理动态物体中的行为个体,为了准确反映行为个体间的相互避让作用关系,个体信息被放入周围网格,网格大小一般取行为个体的感知半径大小,行为个体根据其当前所在位置,将其势能信息放入相应格子中,每个行为个体直接从其附近的格子中获悉周围是否有其他个体,从而进行避让;行为个体从其所在格子及周围的九个格子中获得行为个体信息,当行为个体从一个格子走入另外一个格子后,行为个体从前一个格子中注销,然后注册到另外一个格子中;步骤5,对于路径规划所需要考虑的因素进行计算:因素主要是指目的地的位置和个体所受的作用力;路径规划是指个体为了到达目的地所选择的路径;目的地的位置使用全局的最小势能表示;如果全局中有若干个目的地,则令这些目的地的势能具有同样的大小,即同时保持全局最小;当群体中个体的目的地信息确定之后,接下来最重要的因素就是群体中个体所受到的作用力;通过个体所受到的作用力,可以得到加速度,从而对于个体的速度产生影响;假设个体是以环境所能允许的最大速度行进,这里的环境是指上下坡的坡度以及人流量的大小因素;计算个体速度如公式(1)所示:v=u(x,θ)nθ   (1)其中,u表示最大速度场,x为个体所在位置,θ表示速度的方向,nθ=[cosθ,sinθ]T表示在θ方向上的单位向量,上述的个体速度v没有考虑周围环境的影响,这里使用g表示周围环境的影响,即是个体受到周围环境的作用力,对于g来说,它是可以动态变化的,通过动态变化的环境作用力可以帮助个体规避动态的障碍物;将上述因素结合起来考虑,下面描述个体进行路径规划需要考虑的因素;总的来说,个体会选择到达目的地的最短路径,假定D为从地点x到目的地的路径集合,一个位于x的个体选择的路径P∈D,按照如下公式(2)所示:L+T+g   (2)其中,L表示路径的长度,T表示所消耗的时间,g表示环境作用力;这里的公式(2)描述了路径规划所需要考虑的三个因素,即路径长度、通过路径的时间和所受的环境作用力,通过这三个因素的权衡,可以得到最终所选择的路径;步骤6,处理流体环境,计算流体环境对于周围个体产生的作用力,并计算最终的导航力:导航力是通过对于个体的受力进行分析之后,得到的最终的合力,它会影响个体如何运动,处理流体环境,计算流体环境对于周围个体产生的作用力,并计算个体最终的导航力时,又进一步包括:步骤6.1,对流体区域所在的网格进行切片,在每个切片上区分是个体还是流体;对于每一个切片来说,个体区域和流体区域分别使用不同数值进行标记,这样就能区分每一个切片上的个体区域和流体区域;然后,做一次最终遍历,根据每一个切片,把数值复制到流固3D纹理中去;步骤6.2,对于流体网格进行切片;然后,将网格切片与个体网状模型进行相交操作;在将切片与网状模型相交时,通过将个体网状模型划分成三角形图元来实现;在得到三角形图元与切片的交点之后,通过插值即可得到流体与个体相交的边界点;然后,创建一个新的边界3D纹理,用于存放边界点的信息;在得到边界3D纹理之后,通过对于边界点周围的单元进行判断,得到边界点处的法向,将边界点的法向存储于一个新的3D纹理;步骤6.3,考虑流体环境对于个体施加的作用力,通过将个体所受的全部作用力进行矢量合成之后,即可得到最终的导航力,流体环境对于个体施加的作用力如公式(3)所示:DivAp=Div(-u*Δt+b)---(3)]]>其中,Div表示流体网格上的离散化的散度求解符号,对于A和b来说,c是一个3×m的雅克比矩阵,m代表个体模型自由度的数量,令[n1...nk]为边界点即流体与个体相交点的法线向量,则M为个体模型的质量矩阵;S为一个k×n的选择矩阵,用来选择耦合处的压力p,k表示流体与个体的相交点的数量,n表示流体单元的数量;向量Sp则是包含了个体周围的所有压力值;Sp中的每一个分量pi都对个体施加了一个为(Δx)2pini的压力;其中的是矩阵c对于时间的导数,s*为个体的中间速度;u*为流体的中间速度场;根据上述公式(3),求出流体环境对于个体产生的压力p,也即流体环境对于个体施加的作用力;通过对于个体所受作用力进行合成之后,即可得到最终的个体导航力;步骤7,根据最终的导航力产生的加速度,得到个体的速度,通过速度来实现个体的路径规划以及规避障碍物:根据最终的导航力所产生的加速度,可以得到个体的速度,通过速度来实现个体的路径规划和规避障碍物;在公式(2)描述的路径规划所需的开销基础之上,下面给出最优路径的选择方法;假定有一个函数φ,这个函数描述了一条路径;该路径上任意点的开销与最优路径都是一样的;直觉上来说,对于任何个体,最优的策略就是沿着这个函数梯度的相反方向移动,这是降低路径开销最为迅速的方式;事实上,函数φ可以按照下述方式精确定义:在目标点φ=0,其他的地方φ满足如下方程(4):||▽φ(x)||=C    (4)其中,单位开销C是由梯度▽φ的方向来得到;令a(x)为位于位置x的个体受到的导航力所产生的加速度,结合公式(1)可以得到速度的计算如公式(5)所示:v=-u(x,θ)▿φ(x)||▿φ(x)||+a(x)---(5)]]>其中,v表示速度,u(x,θ)由个体的位置和运动方向而得的最大速度场;由于u与群体密度ρ密切相关;因此,在求解u的时候,根据群体密度的不同,将密度划分为高密度、低密度和中等密度这三种情况来分别进行求解;步骤8,求解流体环境的压力项,得到流体的最终速度,并调整边界点处的水平集信息:求解流体环境的压力项,得到流体的最终速度,并调整边界点处的水平集信息;在步骤1中对于流体速度的平流所得到的是中间的散度速度,这个中间速度需要减去压力项的梯度才能得到最终的无散度速度;因此,需要求解压力项;对于压力项的求解采用了Jacobi迭代的方法;这里需要注意的一点是,在步骤1中并没有考虑流体环境与个体的相互作用;由于流体环境对于个体会施加一个作用力,同时个体对于流体环境也会施加一个反作用力;这个反作用力会影响边界点处流体的压力项,因此边界点处流体的速度也会发生改变;同时,需要根据边界点处的流体速度对于水平集进行修正,才能得到最终的水平集信息;步骤9,对于流体环境与个体的边界进行处理,使两者在边界处满足自由滑动边界条件:自由滑动边界条件就是流体不能流进个体和从个体中流出,但是允许沿着个体的表面自由流动,这个条件表示流体的速度与个体的速度在边界法向方向上的分量是一样的,如公式(27)所示:ufluid·n=usolid·n   (27)为了满足自由滑动边界条件,使用的方法是:首先,计算出个体的速度在边界法向方向上的分量;然后,使用这些分量替换相邻流体单元中的法向方向上的分量;通过使用这种方法,在流体环境与个体的边界处满足了自由滑动边界条件。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学;东莞电子科技大学电子信息工程研究院,未经电子科技大学;东莞电子科技大学电子信息工程研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201410564383.5/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top