发明名称 一种用于目标发生器的目标实时路径规划方法
摘要 本发明公开了一种用于目标发生器的目标实时路径规划方法,通过采用模糊规则实现虚拟目标运行参数的实时计算,同时,目标动态检测环境中的动态障碍物,根据障碍物的威胁度与位置信息,规划一条新的路径实现动态避障,大大提高了目标发生器的智能性;在障碍物对目标威胁较小时,采用几何算法,有效地减小路径规划算法的复杂度,加快虚拟场景渲染速度并提高虚拟目标运动画面的连贯性;在障碍物对目标威胁较大时,采用模糊算法控制目标快速避开障碍物,有效避免由于位姿计算更新跟帧频率不同步而造成的跳帧或运动不连贯的现象,提高目标发生器的画面质量。
申请公布号 CN102831298A 申请公布日期 2012.12.19
申请号 CN201210266737.9 申请日期 2012.07.30
申请人 北京理工大学 发明人 陈晨;陈杰;张娟;竺文彬;于海心;连晓岩;陈是君
分类号 G06F19/00(2011.01)I 主分类号 G06F19/00(2011.01)I
代理机构 北京理工大学专利中心 11120 代理人 付雷杰;李爱英
主权项 1.一种用于目标发生器的目标实时路径规划方法,其特征在于,包括如下步骤:步骤1、将用户在虚拟场景中选择的所有的路径控制点中相邻的两点连接起来,最终将起点与终点之间连成具有多条线段的曲线,将该曲线作为目标的原始路径;步骤2、根据目标所在位置当前的虚拟环境的能见度、风向、地形地貌以及障碍物位置信息坐标目标的初始环境信息,计算目标的初始速度,具体方法为:对能见度s进行标准化处理,使能见度s在[0,100]内变化;同时,计算地形综合因子d=V+Δz,其中Δz=z<sub>t</sub>-z<sub>t-1</sub>,z<sub>t</sub>表示当前地形的高程值,z<sub>t-1</sub>表示上一秒地形的高程值,V表示地形的遮挡量,然后对地形综合因子d进行标准化处理,使其在[0,10]范围内变化;将目标的运动速度v的变化范围设定在[0,100],将能见度s和地形综合因子d作为输入变量,将目标的速度v作为输出变量,首先将输入变量模糊化:将能见度s的取值范围分成7段,0-20为负大SNB,20-30为负中SNM,30-40为负小SNS,40-50为零SNP,50-60为正小SPS,60-70为正中SPM,70-100为正大SPB;将地形综合因子的取值范围分成7段,0-2为负大DNB,2-3为负中DNM,3-4为负小DNS,4-5为零DNP,5-6为正小DPS,6-7为正中DPM,7-10为正大DPB;将输出的速度V的取值范围分成7段,0-20为负大VNB,20-30为负中VNM,30-40为负小VNS,40-50为零VNP,50-60为正小VPS,60-70为正中VPM,70-100为正大VPB;采用三角形函数作为能见度s、地形综合因子d和速度v的隶属度函数,建立49条模糊规则:<img file="FDA00001949574700011.GIF" wi="1782" he="181" /><img file="FDA00001949574700021.GIF" wi="1847" he="537" />将当前的能见度s和地形综合因子d输入到步骤2建立的49条模糊规则中,计算得到四个非零的输出速度v的模糊集VF1,VF2,VF3,VF4和对应的隶属度vf1,vf2,vf3,vf4;采用重心法计算得到速度v的精确值:v=(VF1×vf1+VF2×vf2+VF3×vf3+VF4×vf4)/(vf1+vf2+vf3+vf4),根据得到速度大小控制目标沿原始路径运动;步骤3、对目标的路径进行动态规划,具体方法为:S301、目标运动过程中,实时计算目标与障碍物中心的距离:<maths num="0001"><![CDATA[<math><mrow><mi>d</mi><mo>=</mo><msqrt><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>obs</mi></msub><mo>-</mo><msub><mi>x</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>obs</mi></msub><mo>-</mo><msub><mi>y</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>z</mi><mi>obs</mi></msub><mo>-</mo><msub><mi>z</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt><mo>,</mo></mrow></math>]]></maths>则dir=d<sub>now</sub>-d<sub>past</sub>;其中x<sub>obs</sub>,y<sub>obs</sub>,z<sub>obs</sub>为目标在虚拟环境中的当前位置坐标,障碍物中心的位置坐标为p<sub>t</sub>=(x<sub>t</sub>,y<sub>t</sub>,z<sub>t</sub>);dir表示目标当前与障碍物中心的距离d<sub>now</sub>和上一时刻目标与障碍物中心的距离d<sub>past</sub>的差;S302、判断dir的值:当dir>0时,控制目标按照原始路径以初始速度进行运动;当dir<0时,根据步骤S301中计算所得的距离,计算障碍物对目标的威胁值M:<maths num="0002"><![CDATA[<math><mrow><mi>M</mi><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>(</mo><mi>d</mi><mo>-</mo><msub><mi>d</mi><mi>s</mi></msub><mo>></mo><mn>0</mn><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mn>0.8</mn><mfrac><mrow><msub><mi>d</mi><mi>s</mi></msub><mo>-</mo><mi>d</mi></mrow><msub><mi>d</mi><mi>s</mi></msub></mfrac><mo>-</mo><mn>0.2</mn><mfrac><mi>dir</mi><mrow><mo>|</mo><mi>dir</mi><mo>|</mo></mrow></mfrac></mtd><mtd><mrow><mo>(</mo><mi>d</mi><mo>-</mo><msub><mi>d</mi><mi>s</mi></msub><mo>&le;</mo><mn>0</mn><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>其中<maths num="0003"><![CDATA[<math><mrow><msub><mi>d</mi><mi>s</mi></msub><mo>=</mo><mfrac><msup><msub><mi>v</mi><mi>t</mi></msub><mn>2</mn></msup><mrow><mn>2</mn><mo>&times;</mo><mrow><mo>(</mo><mn>0.083</mn><msub><mi>v</mi><mi>t</mi></msub><mo>-</mo><mn>0.618</mn><mo>)</mo></mrow></mrow></mfrac><mo>+</mo><mn>3.6</mn></mrow></math>]]></maths>为安全距离,v<sub>t</sub>为目标的当前时刻的速度;判断威胁值M与设定的反应安全阈值Ms的关系,所述反应安全阈值Ms表示运动目标能避开障碍物的最大威胁值;超过Ms运动目标将受到损伤;当计算得到的威胁值<img file="FDA00001949574700031.GIF" wi="222" he="105" />时,采用几何算法实现新路径最优规划,使虚拟目标以最短时间绕过障碍物,最终沿着原始路径行驶,具体方法为:实时计算目标的运动速度v<sub>t+1</sub>=v<sub>t</sub>-10×M,控制目标以时刻速度v<sub>t+1</sub>运动;记目标当前位置点O与下一个路径标记点A之间的线段为OA,计算目标当前位置O与障碍物左侧边缘点连线与线段OA之间的夹角θ<sub>1</sub>,计算目标当前位置点O与障碍物右侧边缘点连线与线段OA之间的夹角θ<sub>2</sub>;目标当前位置点O与较小夹角对应的边缘点C连线记为线段OC,障碍物外切圆与线段OC的交点记为D点,则以边缘点C为圆点,线段CD的长为半径的圆记为圆C,经过A点的圆C的切线记为AP,经过O点的圆C的切线记为OQ,与圆C相切且与直线AO平行的直线与AP和OQ的交点记为F和E,则控制目标沿路径OEFA绕过障碍物,最终目标回到原始路径,然后执行步骤3;当计算得到的威胁值满足<img file="FDA00001949574700032.GIF" wi="283" he="106" />时,目标的实时路径规划方法如下:将目标当前速度的方向和目标与下一个路径标记点连线之间的夹角定义为D0,将目标下一时刻需要输出的转向角定义为D1;将威胁值M和D0作为输入变量,将D1作为输出变量,建立模糊函数,同时规定M,D0和D1的隶属度函数采用三角形隶属度函数;将威胁值M在<img file="FDA00001949574700033.GIF" wi="190" he="105" />范围内均分成三段,分别定义为小、中和大,将D0的范围均分成7段,按照从小到大依次定义为NB、NM、NS、NP、PS、PM和PB,建立21条模糊规则:<img file="FDA00001949574700034.GIF" wi="1782" he="393" />将当前夹角D0和威胁值M和输入集输入到所述饿21条模糊规则中,得到输出转角D1的4个模糊集,分别为DF1、DF2、DF3和DF4,对应的隶属度分别为df1、df2、df3和df4;采用重心法将角度输出的模糊量转换成清晰量,得到:<maths num="0004"><![CDATA[<math><mrow><mi>D</mi><mn>1</mn><mo>=</mo><mfrac><mrow><mi>DF</mi><mn>1</mn><mo>&times;</mo><mi>df</mi><mn>1</mn><mo>+</mo><mi>DF</mi><mn>2</mn><mo>&times;</mo><mi>df</mi><mn>2</mn><mo>+</mo><mi>DF</mi><mn>3</mn><mo>&times;</mo><mi>df</mi><mn>3</mn><mo>+</mo><mi>DF</mi><mn>4</mn><mo>&times;</mo><mi>df</mi><mn>4</mn></mrow><mrow><mi>df</mi><mn>1</mn><mo>+</mo><mi>df</mi><mn>2</mn><mo>+</mo><mi>df</mi><mn>3</mn><mo>+</mo><mi>df</mi><mn>4</mn></mrow></mfrac><mo>;</mo></mrow></math>]]></maths>实时计算目标的运动速度:v<sub>t+1</sub>=v<sub>t</sub>-10×M,并控制目标以速度v<sub>t+1</sub>且沿转向角D1的方向运动;在目标运动中实时判断目标障碍物中心的距离,当两者之间的距离大于安全距离<img file="FDA00001949574700042.GIF" wi="608" he="127" />的两倍时,将此时目标所在的位置作为新的起始点,将障碍物前方的原始路径中的路径控制点中寻找,该路径控制点满足:与障碍物中心距离最近且该距离大于安全距离<img file="FDA00001949574700043.GIF" wi="637" he="127" />该路径控制点定义为新的终点,控制目标沿着新的起始点和新的终点的连线运动,当目标运动到原始路径上后,执行步骤3,直到目标运动到原始路径的终点,完成本次的实时路径规划。
地址 100081 北京市海淀区中关村南大街5号