著录项信息
专利名称 | 基于稀疏A*算法和遗传算法的航迹规划方法 |
申请号 | CN201210274571.5 | 申请日期 | 2012-08-03 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2013-01-16 | 公开/公告号 | CN102880186A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G05D1/10 | IPC分类号 | G;0;5;D;1;/;1;0查看分类表>
|
申请人 | 北京理工大学 | 申请人地址 | 北京市海淀区中关村南大街5号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京理工大学 | 当前权利人 | 北京理工大学 |
发明人 | 耿庆波;刘建英;刘世岳 |
代理机构 | 暂无 | 代理人 | 暂无 |
摘要
本发明涉及一种基于稀疏A*算法和遗传算法的航迹规划方法,属于无人机航迹规划技术领域。本方法针对航迹规划的特点,首先利用SAS算法规划出初始参考航迹,它把约束条件结合到算法搜索中去,可以有效的删除搜索空间中的无用节点,缩短了搜索时间;当无人机实时飞行出现突发威胁时,利用遗传算法进行实时的航迹规划,生成局部最优或者近似最优的航迹,直到威胁消除,UAV返回到原全局最优参考航迹继续飞行。该发明提出的方法具有较好的实时性和快速性,搜索到的航迹更逼近实际的无人机最优航迹;可应用于复杂环境下的机器人路径规划、城市车辆路径规划等技术领域。
1.基于稀疏A*算法和遗传算法的航迹规划方法,其特征在于:包括如下步骤:
步骤1:飞行环境建模;
无人机UAV飞行环境规划的三维规划空间表示为几何空间区域{(x,y,
z)|0≤x≤Xmax,0≤y≤Ymax,0≤z≤Zmax};采用数字化栅格的方法将规划空间离散为若干个单元栅格;
步骤2:设置无人机航迹规划的初始条件,包含规划的起始点、目标点、威胁分布及地形信息,具体实现方法如下:
首先,给定经步骤1栅格化后的飞行环境规划空间中每个单元的高程信息;
然后,将飞行任务中的威胁模型化:将威胁的地理位置、高度和影响范围威胁指数转化为离散化规划空间中的单元信息;
最后,在飞行环境模型和威胁模型建立后,根据任务要求,在离散化规划空间中找到起始点S和目标点G(xg,yg,zg);所述起始点S位于栅格顶点;
步骤3:根据任务要求,利用SAS算法生成全局最优的参考航迹;具体实现方法为:
步骤3.1,在与当前航迹点相邻的栅格顶点中,排除不满足约束条件的点,将其余的相邻栅格顶点作为下一步可能的航迹点;所述约束条件为:
1)受到无人机最大爬升/下滑角的限制,当前航迹点的相邻点中正上和正下方的点不做为下一步的可能航迹点;
2)最低飞行高度约束:根据任务要求计算出航线离地高度的最小值Hmin;搜索过程中对每一个给定的节点,只有当它与当前点之间的路径上的每一点的离地高度都大于或等于Hmin时,则把它作为可能的航迹点;若小于Hmin,则判断此点是无效航迹点;
3)航迹距离约束条件:搜索过程中长度大于航迹的最大允许长度dmax的航迹被认为是无效航迹,具体判断方法为
D(x)+SL(x)≤dmax (1)
其中D(x)是从起始位置到当前点经过的真实距离,SL(x)是从当前点到达目标的直线距离;不满足航迹距离约束条件的点不能作为下一航迹点;
4)最大拐弯角约束:受到最大拐弯角的限制,下一步可能的航迹点必须保 证无人机的实际拐弯角大于允许的最大拐弯角;
5)最小航迹约束:记最小航迹长度为lmin,i表示第i段航迹,该约束条件可表示为:
li≥lmin,i=1,2,…,n-1 (2);
所述1)、2)、3)、4)和5)的约束条件需同时满足;
在初步判断出无人机下一步的可能航迹点后,从当前航迹点开始,计算下一步可能航迹点的代价值gi:
式中li表示第i段航迹的长度,hi为第i个飞行节点的飞行高度,fTAi表示第i段航迹的威胁指数;w1为li的系数、w2为hi的系数、w3为fTAi的系数;
步骤3.2,计算步骤3.1得到的可能的航迹点到目标位置的代价估值ui,(xi,yi,zi)为第i点的坐标值,(xg,yg,zg)为目标点的坐标;
2 2 2
ui=(xi-xg)+(yi-yg)+(zi-zg) (4)
步骤3.3,计算步骤3.1得到的各个可能的航迹点总的航迹代价fi:
fi=gi+ui (5)
将fi按大小顺序排列,放入OPEN表中,从建立的OPEN表中选择fi最小的点作为下一个航迹点放入CLOSED表中;在初始化时,将起始点S放入OPEN表,CLOSED表置空;
步骤3.4,将步骤3.3得到的下一个航迹点作为下一步循环的当前航迹点,继续按照步骤3.1至步骤3.3所述方法寻找下一航迹点,直到某一点与目标点G的距离小于L为止,航迹搜索过程结束;所述L为根据栅格边长而预先给定的一个常数;
步骤3.5,从得到的CLOSED表中的最后航迹点开始向上回溯,直到起始点,再加入目标点,最终得到从起始到目标的全局最优飞行参考航迹;
步骤4:UAV沿步骤3确定的最优参考航迹飞行,当出现突发威胁时,启动基于遗传算法的UAV三维航迹规划算法进行在线局部航迹规划,生成局部最优或者近似最优的航迹;具体实现过程如下:
步骤4.1,根据突发威胁的情况,确定局部航迹规划的起始点、终止点和威胁指数;
步骤4.2,根据步骤4.1确定的起始点、终止点,随机生成m条染色体,每条染色体表示一条飞行航迹;所有航迹的第一个和最后一个节点的坐标相同;所述m条染色体包含了可行航迹和不可行航迹;
步骤4.3,计算步骤4.2得到的每一条航迹J的适应值F(J)
其中,C(J)为航迹代价,n为航迹的节点个数;
Cmax为m条染色体中所有可行航迹中的最大代价;
对于可行航迹,只需要根据m条染色体计算它的航迹代价;对于不可行航迹的适应值,与它本身的约束违背量以及m条染色体有关,如果m条染色体没有可行航迹,Cmax为0;
步骤4.4,选取局部最优航迹;具体方法为:
按照比例适应度分配的选取方法,从m条染色体中选取S个染色体组成繁殖池;对于某个染色体i,其适应度为Fi,则其被选择的概率Pi为
步骤4.5,根据预先设计的概率机制,选择相应的进化算子作用于被选出的S个染色体;由于每次进化都要利用平滑算子和定向扰动算子,所以,平滑算子和定向扰动算子被选择的概率为1;
步骤4.6,通过进化算子的作用生成新个体,将新生成的个体加入到染色体中,按照步骤4.3的方法计算新个体的适应值;
步骤4.7,将扩展后的染色体中适应值较小的S个染色体删除,使其恢复到原来的染色体大小;
步骤4.8,重复步骤4.4至步骤4.7,判断是否满足终止条件:迭代过程进行到预先给定的最大次数,或者最优个体在若干次迭代中其适应值保持不变;当 满足了终止条件,则从m条染色体中选出适应值最小的染色体作为所求航迹;
步骤5:UAV沿步骤4得到的局部最优航迹飞行,直到威胁消除,UAV返回到步骤3得到的全局最优参考航迹继续飞行;
至此,就实现了基于SAS和遗传算法的航迹规划过程。
2.根据权利要求1所述的基于稀疏A*算法和遗传算法的航迹规划方法,其特征在于:
在实际规划过程中,将x、y、z坐标轴分别按不同分辨率划分单元大小,从而得到离散化的规划空间。
3.根据权利要求1所述的基于稀疏A*算法和遗传算法的航迹规划方法,其特征在于:
所述的进化算子包括如下形式:
(1)交叉算子
交叉算子是指将两条航迹重新组合,生成两条新的航迹;被作用的航迹可以是可行的,也可以是不可行的;作为父个体的两个染色体节点数可以相同也可以不同;
(2)扰动算子
扰动算子是指随机地改变航迹的一个中间节点的坐标;该航迹可以是可行的,也可以是不可行的;如果所选航迹是可行的,则在可行范围内加以较小扰动,以提高航迹的适应值;如果所选航迹是不可行的,则可适当增大扰动幅度,以期获得可行的航迹;
(3)插入算子
插入算子是指在两个相邻的航迹节点中间随机地插入一个新的航迹节点;一般地,在违背最低飞行高度约束,或者是穿越威胁区域的航迹段,采用该算子得到的子个体其性能可能提高;
(4)删除算子
删除算子是指删除航迹的一个中间节点;该航迹可以是可行的,也可以是不可行的;
如果所选航迹是不可行的,该中间节点可以随机的选取;如果所选航迹是可行的,则节点的选取需要给予某些启发式信息;如果没有信息表明需要删除节点,则以一个很小的概率来确定是否删除;
(5)交换算子
交换算子是指交换任意两个相邻节点的先后顺序以减小拐弯角;该算子只作用于不可行航迹;如果两个相邻航迹节点不满足最大拐弯角约束,通过交换 它们的顺序可能减小拐弯角;如果两相邻节点处航迹拐弯角越大,选择它们进行交换的概率越大;
(6)平滑算子
平滑算子是指通过“切除尖角”将航迹平滑化;该算子随机选择一航迹节点,在与该航迹节点相连的两航迹段上各插入一新的节点,然后删除开始选择的节点;如果某节点处航迹拐弯角越大,选择它进行平滑的概率越大;该算子只作用于不可行航迹;
(7)定向扰动算子
该算子为实现有效的目标进入方向而设计,且只作用于目标的前一个节点;如果要求满足有效的目标进入方向,则所有目标的航迹都将按该方向进行初始化;在进化过程中,目标的前一个节点只能用该算子进行作用;作用后的坐标由下式给出:
其中,x′n-1,y′n-1,z′n-1为经定向扰动算子作用后第n-1点的坐标,t>0是一个随机实数。
基于稀疏A*算法和遗传算法的航迹规划方法\n技术领域\n[0001] 本发明涉及一种基于稀疏A*算法和遗传算法的航迹规划方法,属于无人机航迹规划技术领域。\n背景技术\n[0002] 无人机(Unmanned Aerial Vehicle,UAV)具有自动起降(发射)、自动驾驶、自动导航、自动快速准确定位、自动信息采集与传送等功能,特别适合代替人在危险、恶劣和极限的环境下完成特定的工作和任务,于是在军事、测绘、航空航天、商业等领域有着广泛应用。作为任务规划系统(Mission Planning System)的核心之一,航迹规划是一门伴随现代信息技术而发展起来的高新技术。准确地说,无人机航迹规划就是在综合考虑UAV到达时间、燃料消耗、威胁以及飞行区域等因素的前提下,为无人机规划出一条最优,或者是最满意的飞行航迹,以保证圆满完成飞行任务。飞行器航迹规划问题的目标函数复杂,涉及到大量信息的处理,为了简化计算,航迹规划常采用分层规划:先在整个搜索空间进行参考航迹规划,然后缩小搜索空间,在以参考航迹为中线的安全走廊内进行细致航迹规划。\n[0003] 无人机航路规划有多种方法,如动态规划法、A*搜索法、Voronoi图算法、人工势能法、蚁群算法、遗传算法等。它们之间各有优缺点,其中动态规划可以得到问题的最优解,但具有维数爆炸的特性,计算任务艰巨;A*算法计算简单,容易实现,但启发函数的选取限制了解的全局最优性;Voronoi图法一般应用于低维路径规划中;人工势场法和蚁群算法则容易陷入局部最优。近年来,遗传算法因其具有大规模全局搜索能力而受到重视。\n[0004] (1)A*算法,2000年,Robert J Szcaerba等提出了一种改进的A*算法,称为稀疏A*算法(Sparse A*Search),简称SAS算法。在规划环境中把不可行的航迹点列为不寻优区域,再将可行的航迹空间分割为多个子空间,在每个子空间中根据航迹代价函数来决定哪些点应该加入到OPEN表中。这种算法的搜索时间比以往的搜索时间大大的缩短,节省很大的计算机内存空间。\n[0005] (2)模拟退火算法,Kirkpatrick等在1982年将退火的思想引入到了组合优化邻域,特别是解决NP完全组合优化问题。模拟退火算法源于对固体的物理退火过程的模拟,采用Metropolis接受准则,用冷却进度表的参数控制算法的进程,使算法在多项式时间里给出一个近似最优解。正是利用了该方法能够解决局部极值特点,在航迹规划中将许多具有全局优化能力的算法与模拟退火算法相结合,都得到了较好的效果。\n[0006] (3)蚁群算法(Ant Algorithm),蚁群算法是通过蚂蚁的信息交流和相互协作来实现路径搜索,包括适应阶段和协作阶段。在适应阶段待选解根据已有的信息不断调整自身结构,协作阶段候选解之间通过信息交流来产生性能好的解。\n[0007] (4)粒子群优化算法(ParticleSwarm Optimization,PSO),粒子群优化算法是一种群体智能算法,是模拟鸟群和鱼群等觅食过程中迁徙和聚集的行为。PSO算法是利用个体之间的相互协作来搜索最优解,利用的是生物群体信息共享的思想,既具有容易实现又具有深刻的智能背景,既适合科学研究,又特别适合工程应用的特点。在航迹规划方面这两种方法也应用的比较多。\n[0008] (5)遗传算法,遗传算法(GeneticAlgoriethm GA)是基于自然选择和基因遗传学原理的搜索算法。遗传算法是一种新的全局最优搜索算法,简单实用,适合并行处理,在许多邻域特别是在求解组合优化的问题中得到了广泛的应用,成为求解函数优化问题的强有力的工具。遗传算法的基本操作包括编码、群体生成、适应度函数的构造、遗传操作等。遗传算法的优化速度受到搜索空间的大小、编码方式、适应度函数的复杂度、群体的规模、编码的长度、交叉及变异的概率以及代沟的影响。目前许多学者对于算法的改进大多都是在这几方面进行的。\n[0009] 基于A*算法的SAS算法,能规划一条全局最优的航迹,但存在陷入局部搜索的问题。利用遗传算法则可以很好地解决上述问题,遗传算法对全局的把握能力较强,通过进化算子可以很快实现航迹的变化,避免反复的局部搜索。但遗传算法是基于种群的,容易陷入局部最优解。\n发明内容\n[0010] 本发明的目的是为解决无人机航迹规划容易存在陷入局部搜索的问题,提出一种基于稀疏A*算法(SAS)和遗传算法的航迹规划方法。\n[0011] 本发明将SAS与遗传算法结合起来进行航迹规划。在任务执行前,先利用SAS算法生成一条全局最优的航迹。然后UAV一边沿生成的航迹向目标飞行,一边探测环境信息。\n一旦UAV探测到新的环境信息妨碍到飞行任务的执行,它立即将航迹前面一定距离的节点作为新的起始点进行局部航迹规划生成新的航迹。然后UAV沿新的航迹飞行,知道安全时再返回到原来的航迹上沿原航迹飞行。\n[0012] 本发明的目的是通过下述技术方案实现的。\n[0013] 步骤1:飞行环境建模。\n[0014] UAV飞行环境规划的三维规划空间表示为几何空间区域((x,y,z)|0≤x≤Xmax,\n0≤y≤Ymax,0≤z≤Zmax)。本发明中采用数字化栅格的方法将规划空间离散为若干个单元栅格。在实际规划过程中,将x、y、z坐标轴分别按不同分辨率划分单元大小,从而得到离散化的规划空间。\n[0015] 步骤2:设置无人机航迹规划的初始条件,包含规划的起始点、目标点、威胁分布及地形信息,具体实现方法如下:\n[0016] 首先,给定经步骤1栅格化后的飞行环境规划空间中每个单元的高程信息。\n[0017] 然后,将飞行任务中的威胁模型化:将威胁的地理位置、高度和影响范围等威胁指数转化为离散化规划空间中的单元信息。\n[0018] 最后,在飞行环境模型和威胁模型建立后,根据任务要求,在离散化规划空间中找到起始点S和目标点G(xg,yg,zg)。所述起始点S位于栅格顶点。\n[0019] 步骤3:根据任务要求,利用SAS算法生成全局最优的参考航迹。具体实现方法为:\n[0020] 步骤3.1,在与当前航迹点相邻的栅格顶点中,排除不满足约束条件的点,将其余的相邻栅格顶点作为下一步可能的航迹点。所述约束条件为:\n[0021] 1)受到无人机最大爬升/下滑角的限制,当前航迹点的相邻点中正上和正下方的点不做为下一步的可能航迹点。\n[0022] 2)最低飞行高度约束:根据任务要求计算出航线离地高度的最小值Hmin。搜索过程中对每一个给定的节点,只有当它与当前点之间的路径上的每一点的离地高度都大于或等于Hmin时,则把它作为可能的航迹点。若小于Hmin,则判断此点是无效航迹点。\n[0023] 3)航迹距离约束条件:搜索过程中长度大于航迹的最大允许长度dmax的航迹被认为是无效航迹,具体判断方法为\n[0024] D(x)+SL(x)≤dmax (1)\n[0025] 其中D(x)是从起始位置到当前点经过的真实距离,SL(x)是从当前点到达目标的直线距离。不满足航迹距离约束条件的点不能作为下一航迹点。\n[0026] 4)最大拐弯角约束:受到最大拐弯角的限制,下一步可能的航迹点必须保证无人机的实际拐弯角大于允许的最大拐弯角。\n[0027] 5)最小航迹约束:记最小航迹长度为lmin,i表示第i段航迹,该约束条件可表示为:\n[0028] li≥lmin(i=1,2,…, n-1) (2)\n[0029] 所述1)、2)、3)4)和5)的约束条件需同时满足。\n[0030] 在初步判断出无人机下一步的可能航迹点后,从当前航迹点开始,计算下一步可能航迹点的代价值gi:\n[0031] \n[0032] 式中li表示第i段航迹的长度,hi为第i个飞行节点的飞行高度,fTAi表示第i段航迹的威胁指数。w1为li的系数、w2为hi的系数、w3为fTAi的系数。\n[0033] 步骤3.2,计算步骤3.1得到的可能的航迹点到目标位置的代价估值ui,(xi,yi,zi)为第i点的坐标值,(xg,yg,zg)为目标点的坐标。\n[0034] ui=(xi-xg)2+(yi-yg)2+(zi-zg)2 (4)\n[0035] 步骤3.3,计算步骤3.1得到的各个可能的航迹点总的航迹代价fi:\n[0036] fi=gi+ui (5)\n[0037] 将fi按大小顺序排列,放入OPEN表中,从建立的OPEN表中选择fi最小的点作为下一个航迹点放入CLOSED表中。特殊地,在初始化时,将起始点S放入OPEN表,CLOSED表置空。\n[0038] 步骤3.4,将步骤3.3得到的下一个航迹点作为下一步循环的当前航迹点,继续按照步骤3.1至步骤3.3所述方法寻找下一航迹点,直到某一点与目标点G的距离小于L为止,航迹搜索过程结束。所述L为根据栅格边长而预先给定的一个常数。\n[0039] 步骤3.5,从得到的CLOSED表中的最后航迹点开始向上回溯,直到起始点,再加入目标点,最终得到从起始到目标的全局最优的飞行参考航迹。\n[0040] 生成的飞行航迹表示为三维空间中的一系列航迹点,相邻航迹点之间用直线段连接。一条航迹实际上是一组节点序列{S,P1,…,Pn-1,G},P1,…,Pn-1为中间航迹节点。\n[0041] 步骤4:UAV沿步骤3确定的最优参考航迹飞行,当出现突发威胁时,启动基于遗传算法的UAV三维航迹规划算法(Evolutionary Route Planner,ERP)进行在线局部航迹规划,生成局部最优或者近似最优的航迹。具体实现过程如下:\n[0042] 步骤4.1,根据突发威胁的情况,确定局部航迹规划的起始点、终止点和威胁指数。\n[0043] 步骤4.2,根据步骤4.1确定的起始点、终止点,随机生成m条染色体,每条染色体表示一条飞行航迹。所有航迹的第一个和最后一个节点的坐标相同。所述m条染色体包含了可行航迹和不可行航迹。\n[0044] 步骤4.3,计算步骤4.2得到的每一条航迹J的适应值F(J)\n[0045] \n[0046] 其中,C(J)为航迹代价,n为航迹的节点个数。\n[0047] \n[0048] Cmax为m条染色体中所有可行航迹中的最大代价。\n[0049] 对于可行航迹,只需要根据m条染色体计算它的航迹代价;对于不可行航迹的适应值,与它本身的约束违背量以及m条染色体有关,如果m条染色体没有可行航迹,Cmax为\n0。本发明采用的航迹评价方法,不但包含航迹的代价,还要考虑航迹的各种约束条件。\n[0050] 所述航迹的各种约束条件在步骤3.1中提到,具体包括最小航迹长度、最大拐弯角、最大爬升/下滑角、航迹距离约束和最低高度限制。约束违背量为根据航迹约束条件进行正规化处理后得到。\n[0051] 步骤4.4,选取局部最优航迹。具体方法为:\n[0052] 按照比例适应度分配的选取方法,从m条染色体中选取S个染色体组成繁殖池。对于某个染色体i,其适应度为Fi,则其被选择的概率Pi为\n[0053] \n[0054] 步骤4.5,根据预先设计的概率机制,选择相应的进化算子作用于被选出的S个染色体。由于每次进化都要利用平滑算子和定向扰动算子,所以,平滑算子和定向扰动算子被选择的概率为1。\n[0055] 所述的进化算子包括如下形式:\n[0056] (1)交叉算子\n[0057] 交叉算子是指将两条航迹重新组合,生成两条新的航迹。被作用的航迹可以是可行的,也可以是不可行的。作为父个体的两个染色体节点数可以相同也可以不同。\n[0058] (2)扰动算子\n[0059] 扰动算子是指随机地改变航迹的一个中间节点的坐标。该航迹可以是可行的,也可以是不可行的。如果所选航迹是可行的,则在可行范围内加以较小扰动,以提高航迹的适应值;如果所选航迹是不可行的,则可适当增大扰动幅度,以期获得可行的航迹。\n[0060] (3)插入算子\n[0061] 插入算子是指在两个相邻的航迹节点中间随机地插入一个新的航迹节点。一般地,在违背最低飞行高度约束,或者是穿越威胁区域的航迹段,采用该算子得到的子个体其性能可能提高。\n[0062] (4)删除算子\n[0063] 删除算子是指删除航迹的一个中间节点。该航迹可以是可行的,也可以是不可行的。如果所选航迹是不可行的,该中间节点可以随机的选取;如果所选航迹是可行的,则节点的选取需要给予某些启发式信息。如果没有信息表明需要删除节点,则以一个很小的概率来确定是否删除。\n[0064] (5)交换算子\n[0065] 交换算子是指交换任意两个相邻节点的先后顺序以减小拐弯角。该算子只作用于不可行航迹。如果两个相邻航迹节点不满足最大拐弯角约束,通过交换它们的顺序可能减小拐弯角。如果两相邻节点处航迹拐弯角越大,选择它们进行交换的概率越大。\n[0066] (6)平滑算子\n[0067] 平滑算子是指通过“切除尖角”将航迹平滑化。该算子随机选择一航迹节点,在与该航迹节点相连的两航迹段上各插入一新的节点,然后删除开始选择的节点。如果某节点处航迹拐弯角越大,选择它进行平滑的概率越大。该算子只作用于不可行航迹。\n[0068] (7)定向扰动算子\n[0069] 该算子为实现有效的目标进入方向而设计,且只作用于目标的前一个节点。如果要求满足有效的目标进入方向,则所有目标的航迹都将按该方向进行初始化;在进化过程中,目标的前一个节点只能用该算子进行作用。作用后的坐标由下式给出:\n[0070] \n[0071] 其中,x′n-1,y′n-1,z′n-1为经定向扰动算子作用后第n-1点的坐标,t>0是一个随机实数。\n[0072] 步骤4.6,通过进化算子的作用生成新个体,将新生成的个体加入到染色体中,按照步骤4.3的方法计算新个体的适应值。\n[0073] 步骤4.7,将扩展后的染色体中适应值较小的S个染色体删除,使其恢复到原来的染色体大小。\n[0074] 步骤4.8,重复步骤4.4至步骤4.7,判断是否满足终止条件:迭代过程进行到预先给定的最大次数,或者最优个体在若干次迭代中其适应值保持不变。当满足了终止条件,则从m条染色体中选出适应值最小的染色体作为所求航迹。\n[0075] 步骤5:UAV沿步骤4得到的局部最优航迹飞行,直到威胁消除,UAV返回到步骤3得到的全局最优参考航迹继续飞行。\n[0076] 至此,就实现了基于SAS和遗传算法的航迹规划过程。\n[0077] 有益效果\n[0078] 使用本发明将SAS算法与遗传算法相结合进行航迹规划。采用稀疏A*算法(SAS)进行参考航迹规划,得到全局最优的航迹规划。由于SAS算法是A*算法的改进,它将无人机的物理约束条件结合到搜索算法中,删除了一些不可用节点,在一定程度上也减小了无人机航迹规划的计算量。\n[0079] 在线航迹规划中,对无人机的实时性要求很严格,采用遗传算法进行在线航迹规划,得到航迹的局部调整,满足无人机对实时性的要求。\n[0080] 传统A*算法要收敛到最优解需要很长的时间和极大的内存需求,通常随规划区域的增大呈指数增长,而且生成的环境不能满足无人机的约束条件。本发明采用SAS算法进行UAV的三维环境搜索,在扩展节点时,通过把约束条件结合到搜索算法中去,有效地减小了搜索空间,缩短了搜索时间;搜索到的航迹更逼近实际的无人机最优航迹。同时,本发明也可应用于复杂环境下的机器人路径规划、城市车辆路径规划等技术领域。\n附图说明\n[0081] 图1为本发明的航迹规划流程图;\n[0082] 图2为具体实施方式中数字化栅格的规划空间表示,图中数字是高程信息;\n[0083] 图3为本发明的在线航迹规划流程图,表示了在线航迹规划过程的具体过程;\n[0084] 图4为具体实施方式中遗传算法中的染色体结构,包括三个坐标值和无人机的状态值;\n[0085] 图5为具体实施方式中遗传算法中的七种进化算子;\n[0086] 图6为具体实施方式中静态环境中航迹规划的航迹图;\n[0087] 图7为具体实施方式中动态环境中航迹规划的航迹图。\n具体实施方式\n[0088] 为了更好的说明本发明的目的和优点,下面结合附图和实施例对本技术方案做进一步详细说明。\n[0089] 步骤1:飞行环境建模。\n[0090] UAV飞行环境规划的三维规划空间表示为几何空间区域((x,y,z)|0≤x≤Xmax,\n0≤y≤Ymax,0≤z≤Zmax)。本发明中采用数字化栅格的方法将规划空间离散为若干个单元。在实际规划过程中,将x、y、z坐标轴划分为单位1的单元,即每个栅格的变长为单位\n1,从而得到离散化的规划空间。\n[0091] 步骤2:设置无人机航迹规划的初始条件,包含规划的起始点、目标点、威胁分布及地形信息,具体实现方法如下:\n[0092] 首先,给定经步骤1栅格化后的飞行环境规划空间中每个单元的高程信息。如图\n2所示。\n[0093] 然后,将飞行任务中的威胁模型化:将威胁的地理位置、高度和影响范围等威胁指数转化为离散化规划空间中的单元信息。\n[0094] 最后,在飞行环境模型和威胁模型建立后,根据任务要求,在离散化规划空间中找到起始点S和目标点G(xg,yg,zg)。所述起始点S位于栅格顶点。目标点不一定在栅格顶点上。\n[0095] 步骤3:根据任务要求,利用SAS算法生成全局最优的参考航迹。具体实现方法为:\n[0096] 步骤3.1,当前航迹点的下一步可能的航迹点为与其相邻的栅格顶点,但有一些是不满足约束条件的,不能做为下一步的可能航迹点,判断依据为:\n[0097] 1)无人机最大爬升/下滑角的限制,当前航迹点的相邻点中正上和正下方的点不做为下一步的可能航迹点。因此,所述当前航迹点的相邻点为离散化规划空间中的栅格顶点,且不包括正上和正下方的点。假定最大允许爬升/下滑角为θ,该约束表示为:\n[0098] \n[0099] 2)最大拐弯角的限制,记ai=(xi-xi-1,yi-yi-1),设最大允许拐弯角为Φ,则最大拐弯角约束表示为:\n[0100] \n[0101] 3)最低飞行高度约束:根据任务要求计算出航线离地高度的最小值Hmin。搜索过程中对每一个给定的节点i,只有当它与当前点之间的路径上的每一点的离地高度都大于或等于Hmin时,则把它作为可能的航迹点。若小于Hmin,就认为此点是无效航迹点。则该约束可表示为:\n[0102] Hi≥Hmin(i=1,2,…,n) (12)[0103] 4)航迹距离约束条件为:搜索过程中长度大于航迹的最大允许长度dmax的航迹被认为是无效航迹。其中D(x)是从起始位置到当前点经过的真实距离,SL(x)是从当前点到达目标的直线距离。具体判断方法为\n[0104] D(x)+SL(x)≤dmax (13)\n[0105] 5)最小航迹约束的限制,记最小航迹长度为lmin,i表示第i段航迹,该约束条件可表示为:\n[0106] li≥lmin=(i=1,2,…,n-1) (14)\n[0107] 根据1)、2)、3)、4)和5)的判断条件,在当前航迹点的相邻点中排除了无效航迹点,初步判断出无人机下一步的可能航迹点。\n[0108] 然后从当前航迹点开始,计算每一个下一步可能航迹点的代价值gi:\n[0109] \n[0110] 式中li表示第i段航迹的长度,hi为第i个飞行节点的飞行高度,fTAi表示第i段航迹的威胁指数。w1为li的系数、w2为hi的系数、w3为fTAi的系数。通过W1对li的限制来减少飞行距离,缩短飞行器在战区飞行的时间,同时又能节省油耗;通过w2对hi的调节能够利用地形的遮挡作用减小被雷达发现的概率,达到隐蔽飞行的目的;w3限制UAV不要与已知的地面威胁距离太近,使得UAV尽量在威胁较小的区域飞行。\n[0111] 步骤3.2,计算每一个下一步可能航迹点到目标点G(xg,yg,zg)的代价估值ui,(xi,yi,zi)为第i点的坐标值。\n[0112] ui=(xi-xg)2+(yi-yg)2+(zi-zg)2 (16)\n[0113] 步骤3.3,计算每一个下一步可能航迹点的总的航迹代价fi\n[0114] fi=gi+ui (17)\n[0115] 将fi按大小顺序排列,放入OPEN表中,从建立的OPEN表中选择fi最小的点作为下一个航迹点放入CLOSED表中。初始化时,将起始点S放入OPEN表,CLOSED表置空。\n[0116] 步骤3.4,将步骤3.3得到的下一个航迹点作为当前航迹点点,继续按照步骤3.1至步骤3.3所述方法寻找下一航迹点,直到某一点与目标点G的距离小于L为止,航迹搜索过程结束。\n[0117] \n[0118] 步骤3.5,从得到的CLOSED表中的最后航迹点开始向上回溯,直到起始点,再加入目标点,最终得到从起始到目标的全局最优的参考航迹。\n[0119] 生成的飞行航迹表示为三维空间中的一系列航迹点,相邻航迹点之间用直线段连接。一条航迹实际上是一组节点序列{S,P1,…,Pn-1,G},P1,…,Pn-1为中间航迹节点。\n[0120] 当搜索空间很大时,搜索算法所需要的内存空间是巨大的。本发明通过限制OPEN表的大小减少了内存需求。将OPEN表中的节点进一步按从小到大的顺序排列,当这个固定大小的OPEN表被装满了数据而又有新的节点需要存储是,比较OPEN表中代价最大的节点和新节点的代价。若新节点的代价小,则删除代价最大的节点,并将新节点按代价大小插入OPEN表中。否则丢弃新节点。\n[0121] 步骤4:UAV沿步骤3确定的最优参考航迹飞行,当出现突发威胁时,启动基于遗传算法的UAV三维在线航迹规划算法进行在线局部航迹规划,在线航迹规划的流程如图3所示,生成局部最优或者近似最优的航迹。具体实现过程如下:\n[0122] 步骤4.1,根据突发威胁的情况,确定局部航迹规划的起始点、终止点和威胁指数。\n[0123] 步骤4.2,根据步骤4.1确定的起始点、终止点,随机生成m条染色体,每条染色体表示一条飞行航迹。所有航迹的第一个和最后一个节点的坐标相同。所述n条染色体包含了可行航迹和不可行航迹。\n[0124] 本发明设计了一种变长度的实值基因编码方式,染色体的每一个节点除了记录航迹节点的空间坐标(xi,yi,zi)外,还包括状态变量bi。如图4所示。\n[0125] 步骤4.3,计算步骤4.2得到的每一条航迹J的适应值F(J)\n[0126] \n[0127] 其中,C(J)为航迹代价,n为航迹的节点个数。\n[0128] \n[0129] Cmax为m条染色体中所有可行航迹中的最大代价。在上式中,不可行航迹的适应值不但与它本身的约束违背量有关,还与m条染色体有关,对于可行航迹,只需要计算它的航迹代价即可。如果m条染色体没有可行航迹,Cmax为0。本发明采用的航迹评价方法,不但包含航迹的代价,还要考虑航迹的各种约束条件。\n[0130] 所述航迹的各种约束条件具体包括最小航迹长度、最大拐弯角、最大爬升/下滑角、航迹距离约束和最低高度限制。\n[0131] 步骤4.4,按照比例适应度分配的选取方法,从m条染色体中选取S个染色体组成繁殖池。对于某个染色体i,其适应度为Fi,则其被选择的概率Pi为\n[0132] \n[0133] 步骤4.5,根据预先设计的概率机制,选择相应的进化算子作用于被选出的S个染色体。由于每次进化都要利用平滑算子和定向扰动算子,所以,平滑算子和定向扰动算子被选择的概率为1。\n[0134] 所述的进化算子包括如下形式,其具体作用形式如图5所示:\n[0135] 1.交叉算子\n[0136] 交叉算子是指将两条航迹重新组合,生成两条新的航迹。被作用的航迹可以是可行的,也可以是不可行的。作为父个体的两个染色体节点数可以不同。\n[0137] 2.扰动算子\n[0138] 扰动算子是指随机地改变航迹的一个中间节点的坐标。该航迹可以是可行的,也可以是不可行的。如果所选航迹是可行的,则在可行范围内加以较小扰动,以提高航迹的适应值;如果所选航迹是不可行的,则可适当增大扰动幅度,以期获得可行的航迹。\n[0139] 3.插入算子\n[0140] 插入算子是指在两个相邻的航迹节点中间随机地插入一个新的航迹节点。一般地,在违背最低飞行高度约束,或者是穿越威胁区域的航迹段,采用该算子得到的子个体其性能可能提高。\n[0141] 4.删除算子\n[0142] 删除算子是指删除航迹的一个中间节点。该航迹可以是可行的,也可以是不可行的。如果所选航迹是不可行的,该中间节点可以随机的选取;如果所选航迹是可行的,则节点的选取需要给予某些启发式信息。如果没有信息表明需要删除节点,则以一个很小的概率来确定是否删除。\n[0143] 5.交换算子\n[0144] 交换算子是指交换任意两个相邻节点的先后顺序以减小拐弯角。该算子只作用于不可行航迹。如果两个相邻航迹节点不满足最大拐弯角约束,通过交换它们的顺序可能减小拐弯角。如果两相邻节点处航迹拐弯角越大,选择它们进行交换的概率越大。\n[0145] 6.平滑算子\n[0146] 平滑算子是指通过“切除尖角”将航迹平滑化。该算子随机选择一航迹节点,在与该航迹节点相连的两航迹段上各插入一新的节点,然后删除开始选择的节点。如果某节点处航迹拐弯角越大,选择它进行平滑的概率越大。该算子只作用于不可行航迹。\n[0147] 7.定向扰动算子\n[0148] 该算子为实现有效的目标进入方向而设计,且只作用于目标的前一个节点。如果要求满足有效的目标进入方向,则所有目标的航迹都将按该方向进行初始化;在进化过程中,目标的前一个节点只能用该算子进行作用。作用后的坐标由下式给出:\n[0149] \n[0150] 其中,x′n-1,y′n-1,z′n-1为经定向扰动算子作用后第n-1点的坐标,t>0是一个随机实数。\n[0151] 步骤4.6,通过进化算子的作用生成新个体,将新生成的个体加入到染色体中,计算新个体的适应值。\n[0152] 步骤4.7,将扩展后的染色体中适应值较小的S个染色体删除,使其恢复到原来的染色体大小。\n[0153] 步骤4.8,重复步骤4.4至步骤4.7,判断是否满足终止条件,即迭代过程进行到预先给定的最大次数,或者最优个体在若干次迭代中其适应值不变,若满足,则从m条染色体中选出适应值最小的染色体作为所求航迹;若不满足,则修改迭代的最大次数值,重复步骤\n4.4至步骤4.7。\n[0154] 步骤5:UAV沿步骤4得到的局部最优航迹飞行,直到威胁消除,UAV返回到步骤3得到的全局最优参考航迹继续飞行。\n[0155] 实施例:\n[0156] 首先建立飞行环境模型,选取相关参数。利用SAS算法进行离线航迹规划。本实施例采用以下参数值:\n[0157] ●代价函数中系数W1=W2=W3=1/3,\n[0158] ●最小航迹段长度为4km;最低飞行高度为35m;最大拐弯角和最大爬升/下滑角分别为30°和35°;\n[0159] ●最小航迹段长度为2km;\n[0160] ●最大路径距离为起始点和目标点之间直线距离的1.5倍;\n[0161] ●交叉算子的概率选为0.25,扰动算子、插入算子、删除算子和交换算子的概率选为0.1,平滑算子和定向扰动算子的概率选为1;\n[0162] ●种群大小为60,每次迭代选取30条航迹进行操作,即p=60、S=30;\n[0163] 结合本发明前面的内容,建立飞行空间,并结合上述给定的约束条件建立搜索空间。对待搜索区域中的每一个栅格的顶点,判断是否满足步骤3.1约束条件,如果满足则计算其总的航迹代价,并将它按代价的大小插入到OPEN表中。从中选出最小代价的节点,放入CLOSED表中,然后将其父节点指针指向当前节点。否则舍弃。反复这个寻找的过程,直到到达目标点为止。\n[0164] 初始参考航迹规划完成后,无人机将按参考航迹飞行,当出现突发状况,使无人机偏离预先设定的航迹或者出现突发威胁,将启动遗传算法进行在线航迹再规划。将航迹前面一定距离的节点作为新的起始点进行航迹规划生成新的航迹,随机生成确定大小的p种群,评价每一条航迹,如果满足终止条件,则结束,否则随机选取S个个体组成繁殖池,根据预先给定的概率机制选择进化算子作用于被选出的个体,并将新的个体加入到种群中,计算新个体的适应值,再将扩展后的种群中最差的S个个体删除,使其恢复到原来种群的大小。反复迭代,直到找到满足约束条件的航迹为止。\n[0165] 仿真与分析\n[0166] 1)静态环境航迹规划:静态环境航迹规划指飞行空间中只有固定障碍物,静态障碍物的位置分别为(2,2,3),(3.5,2.5,4),(4.5,3.5,6),(5.5,5.5,7)和(6,5,7),仿真结果如图6所示。\n[0167] 2)动态环境航迹规划:动态环境航迹规划指飞行空间中不仅包含静态障碍物还包括突发的动态移动障碍物,在图7中有两个移动障碍物,仿真结果如图7所示。\n[0168] 从以上仿真结果中可以看出,运用本发明中的方法,不仅可以迅速的到达目标位置,还能有效地避碰。当存在动态障碍物时,尽管规划的时间增长,但仍能有效的避免碰撞,在满足要求的时间内到达目标,并且从中可以看到规划不会陷入局部最小点。
法律信息
- 2016-09-28
未缴年费专利权终止
IPC(主分类): G05D 1/10
专利号: ZL 201210274571.5
申请日: 2012.08.03
授权公告日: 2014.10.15
- 2014-10-15
- 2013-02-27
实质审查的生效
IPC(主分类): G05D 1/10
专利申请号: 201210274571.5
申请日: 2012.08.03
- 2013-01-16
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2008-10-15
|
2008-04-24
| | |
2
| |
2010-06-09
|
2008-10-17
| | |
3
| |
2011-06-01
|
2011-01-27
| | |
4
| |
2010-12-29
|
2010-09-03
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |