一种引入黑区的A*和蚁群混合算法的快递无人机航迹规划方法与流程

文档序号:16147910发布日期:2018-12-05 16:51阅读:292来源:国知局

本发明属于无人机路径规划领域,涉及一种无人机航迹规划,具体涉及一种引入黑区的a*和蚁群混合算法的快递无人机航迹规划方法。

背景技术

现如今无人机已经应用到了许多领域,伴随着快递行业的迅速发展,快递也逐渐变成人们生活中的刚性需求。然而随着各大快递公司竞争的日益激烈,人们对快递运输所消耗时间和成本的要求变得越来越高。然而由于陆地上的交通等因素的限制,如今陆地运输快递时间已很难有较大的突破了。因此使用无人机对快递进行运输则成为各大快递公司所关注的重点。近10年来中国快递始终保持高速发展。年复合增长率高达40%,并且其业务量由2006年的30亿件增长到2017年的400亿件。并且在近3年来快递业务量增长尤为惊人。国内外各大快递公司都大力发展无人机快递。由此可以预见未来无人机快递走向普及化只是一个时间问题。无人机快递凭借其成本低、效率高、迅速性等优势使得无人机的普及化指日可待。然而稳定的智能无人机必须需要一套灵敏度高并且自动化程度高的智能巡航系统。

而现有技术中无人机航迹规划常见的有是a*和蚁群混合算法规划,但每种算法都有其各自的优点和缺陷,现有技术中也都是独立使用,由于原理不同放在一起使用具有一定的困难。



技术实现要素:

本发明的目的是提供一种引入黑区的a*和蚁群混合算法的快递无人机航迹规划方法,克服a*和蚁群混合算法各自的缺点,综合两者的优点,提出一种规划无人机航迹更优的算法。

为了解决上述技术问题,本发明采用的技术方案是:

一种引入黑区的a*和蚁群混合算法的快递无人机航迹规划方法,其特征在于,包括以下步骤:

步骤一、首先确定障碍坐标和网点快递柜坐标,忽略禁飞区和障碍物,使用蚁群算法做出一条轨迹;

步骤二、确认航线的起始点、途经点以及终点,连接各网点快递柜,确定初始航线;

步骤三、建立网格点,设定网格长宽均为s米,沿障碍物或禁飞区边缘建立至少3个网格点的裕度,障碍物网格和其周围裕度的网格定义为黑区,按照上述所述的方法对每个障碍物或禁飞区建立黑区;

步骤四、判断每段航线所在线段是否经过障碍物,判断方法为每隔l米选取该段航线上的点(x,y)是否满足在黑区边缘顶点所在的集合内;

步骤五、如果航线经过黑区,则先确认航线的起始点、途经点以及终点,从起点开始判断,依次使用a*算法,直至航线均绕过所有障碍物或禁飞区为止,完成快递无人机航迹规划。

作为改进,所述步骤一中,蚁群算法的步骤如下:

步骤1.1首先初始化,在n个城市中随机放入m只蚂蚁,且将当前蚂蚁所在的城市加入到该蚂蚁的禁忌表中,此时,各边上的信息素含量是相等的,并设τij(0)=c(c为常数);

步骤1.2t时刻,蚂蚁从城市i转移到城市j的转移概率选择路径,同时将城市j加入禁忌表中;

步骤1.3判断蚂蚁k的禁忌表中是否包含有所有城市,若是,则蚂蚁k完成一次周游,蚂蚁k所走过的路径便是一个可行解;否则回到步骤1.2;

步骤1.4经过n时刻,当蚂蚁完成一次周游时,各路径信息素含量要根据下面公式调整:

式中为蚂蚁k由点i向点j转移的概率;α表示轨迹的相对重要性,β表示能见度的相对重要性;τij(t)表示t时刻路径ij的信息素含量;ηij(t)表示t时刻路径ij的能见度,一般取ηij=1/dij,dij表示城市i到城市j的距离;allowedk表示可供蚂蚁k选择的城市;

步骤1.5判断是否达到最大迭代次数,是,求出蚂蚁的周游的最小值,所对应的路径即为最短路径;否,则回到步骤1.1。

作为改进,步骤五中,a*算法的流程为

步骤2.1基本参数设置,输入一个矩阵,其中包含了起始点、终点、障碍物点,并且设置可供选择路径表open表和已经经过的路径表close表;

步骤2.2将起点放入close表中,并且将起始点上下左右4个节点放入open表中;

步骤2.3根据下面公式计算出open表中4个点的路径代价f,选取代价最小的节点a;

f=g+h

上式中,g表示当前方格距离起始方格的欧式距离,h表示当前方格距离终点方格的路径耗费;

步骤2.4将点a放入close表中,清空open表;

步骤2.5判断当前close表中是否有终点节点,如果有则程序结束;如果没有则进入步骤2.6;

步骤2.6将当前点的上下左右4个节点放入open表中,计算open表中路径代价最小的节点,将其存入到close表中并清空open表;

步骤2.7判断close中是否包含终点,是,则结束程序;否,则回转到步骤2.6。

作为改进,步骤三中,设定网格长宽s范围为1-4m。

作为改进,步骤三中,建立黑区所采用的网格点裕度为3-6个。

本发明的有益效果是:

本发明引入黑区将a*和蚁群混合算法混合使用,克服a*和蚁群混合算法各自的缺点,综合两者的优点,提出一种规划无人机航迹更优的算法,使得规划的无人机航迹更合理,路径更短,无人机耗能更少。

附图说明

图1为无人机对于障碍物的两种越障方式;

其中图1中a障碍物比较高,对障碍物绕行,图1中b障碍物不高,从其顶部越过。

图2无人机预期航线与实际航线对比图。

图3为禁飞区误差范围规划图。

图4为a*算法表示图。

图5为a*算法f、g、h值表示图。

图6为a*算法行径表表示图。

图7为a*算法规划线路图。

图8为a*算法规划航迹流程图。

图9为蚁群算法流程图。

图10为边缘网格建立示意图。

图11为结合a*算法与蚁群算法程序流程图。

图12为模拟网点快递柜选点图。

图13为网点快递柜选点坐标示意图。

图14为图13中利用蚁群算法在matlab编写的程序中计算出送达到各网点快递柜并返回的最短路径图。

图15为a*算法与蚁群算法航迹规划图。

上述图4至图7中方格内的数字表示方格的序号。

具体实施方式

下面结合附图对本发明进行举例说明,以下未详述部分均采用现有技术。

1黑区

为了保证无人机的迅速性,本发明将无人机飞越障碍物的方式分为了2种,当前的飞行高度是h,障碍物高楼高度为h楼,设定的飞行方式变换阈值为hs。

1:当障碍物的高度与无人机的飞行高度差低于飞行方式变换阈值时,即h楼-h≤hs,则无人机选择直接从顶部飞过如图1(b)所示。

2:当障碍物的高度高于飞行方式变换阈值时,即h楼-h>hs,则无人机选择从改障碍物侧面绕飞如图1(a)所示。

飞行方式一(顶部越过),能让无人机一直处于最大航速,减少了因为加减速过程中的带来的电能和时间上的消耗。但是其缺点是由于无人机要克服重力做功,带来了一定能量上的损耗。在三维空间中我们可根据具体的实际情况合理的使用飞行方式一和飞行方式二(绕行)。

无人机在飞行过程之中会受到环境因素的影响,导致在飞行的过程之中无人机不会完全遵循预定的飞行轨迹进行飞行。但是无人机会实时的对无人机的飞行状态进行调整。使无人机大致遵循飞行轨迹,如图2所示。同时禁飞区在实际情况下都是一个不规则的形状下。

为了防止无人机误入禁飞区。我们则将禁飞区人为的扩大为矩形abcd,并且称这个矩形为黑区。如图3所示,其中hmin为无人机的飞行误差其距离可以根据不用的无人机具体情况进行设定。黑区的主要作用是提前对禁飞区进行了外部轮廓描述。当无人机经过禁飞区时,无人机可以直接沿着禁飞区的表面的各个边飞行。而不是遇见了禁飞区就被动的选择绕飞。并且当无人机遇见高楼等复杂的建筑时,不需要重新实时的寻找路线,只需要描绘出黑区即可。这一针对禁飞区主动处理的方式能够使得无人机在遇见障碍物时能够以最短的反应时间和最快的速度避开该障碍物。

a*算法

a*算法十分适合于二维平面路径的避障与路径探索。它可以利用最小的代价找到最短的路径。

如图4所示,一个平面被分割成了5*7个方格,并用数字1-35标记作为方格的序号,以便下面表示,图5至图7中数字意义一样。图中11、18、25组成的区域代表障碍区域,16的区域代表起点,20的区域代表终点。其中每个方格均为正方形,边长定义为10,只考虑无人机的横向和纵向的移动。令f为路径代价。

f=g+h公式(1)

在公式(1)中g表示当前方格距离起始方格的欧式距离,h表示当前方格距离终点方格的路径耗费。令起始点为n(x,y)、终点坐标为goal(x,y)。

上式中,n.x,n.y分别表示起始点的横纵坐标,goal.x,goal.y分别表示终点的横纵坐标。

在图5之中,在方格的左上角为起点到路径代价f,f的值越小则对应的代价越小。a*算法引入了open表和close表,open表中包含的是当前可供选择的路径。close表中包含了已经经过的路径。在此时open表中含有方格9、15、17、23,而close表中含有方格16。由于此时方格17所消耗的代价最小,因此下一步无人机则会前往方格17。与此同时则在open表中把方格17移除,把方格17添加到close表中。

当无人机由方格16走到方格17之后,如图6所示,此时方格10与方格24所消耗的代价是相同的,此时则随机选择一个作为无人机的路径。

同理,如此反复直到将终点方格纳入到close表中。即为图7所示,就可以得到无人机的航路。

a*算法的流程为

(1)基本参数设置。输入一个矩阵,其中包含了起始点、终点、障碍物点,并且设置可供选择路径表open表和已经经过的路径表close表。

(2)将起点放入close表中,并且将起始点上下左右4个节点放入open表中。

(3)根据公式(1)计算出open表中4个点的路径代价f,选取代价最小的节点a。

(4)将点a放入close表中,清空open表。

(5)判断当前close表中是否有终点节点,如果有则程序结束;如果没有则进入步骤(6)。

(6)将当前点的上下左右4个节点放入open表中。计算open表中路径代价最小的节点,将其存入到close表中并清空open表。

(7)判断close中是否包含终点,是,则结束程序,否,则回转到步骤(6),整个流程如图8所示。

蚁群算法

蚁群算法是一种源自于生物的仿生随机优化算法。利用蚂蚁之间的合作特性可以寻找出最短路径。

信息素:信息是蚂蚁之间的通信方式。蚂蚁在搜索过程之中会根据该路径信息素的强弱来进行路径的选择。

禁忌表:在算法之中蚂蚁每经过一个路径就将该路径添加到自己的禁忌表中,之后就不会再对该路径进行搜索。

令每个路径在初始时刻的信息素含量是相同的,蚂蚁k(k=1,2,3,......,m)在运动过程中,依据每条路径上的信息素含量来决定下一目标,及蚂蚁k在t时刻由位置i转移到位置j的概率为:

式中为蚂蚁k由点i向点j转移的概率;α表示轨迹的相对重要性,β表示能见度的相对重要性;τij(t)表示t时刻路径ij的信息素含量;ηij(t)表示t时刻路径ij的能见度,一般取ηij=1/dij,dij表示城市i到城市j的距离;allowedk表示可供蚂蚁k选择的城市。

此式表达的意思即,蚂蚁在选择路径时的判断依据是该路径上所遗留的信息素,该路径信息素含量高则选择该路径概率则高。另外为了防止形成局部最优解。经过n个时刻,蚂蚁完成一次循环,路径上的信息素含量需要做以下调整。

公式(5)中ρ表示路径上信息素的持久性,由于轨迹衰减度随着时间的推移,以前留下的信息逐渐丢失,1-ρ则表示信息消失程度。表示第k只蚂蚁在本次循环中留在路径ij上的信息素,δτij表示在本次循环中路径ij上的信息素增量,lk表示第k只蚂蚁环游一周的路径长度,q为常数。

蚁群算法的步骤如下:

(1)首先初始化,在n个城市中随机放入m只蚂蚁,且将当前蚂蚁所在的城市加入到该蚂蚁的禁忌表中。此时,各边上的信息素含量是相等的,并设τij(0)=c(c为常数);

(2)t时刻,蚂蚁从城市i转移到城市j的转移概率选择路径,同时将城市j加入禁忌表中;

(3)判断蚂蚁k的禁忌表中是否包含有所有城市,若是,则蚂蚁k完成一次周游,蚂蚁k所走过的路径便是一个可行解;否则回到步骤(2)。

(4)经过n时刻,当蚂蚁完成一次周游时,各路径信息素含量要根据公式(4)调整:

(5)判断是否达到最大迭代次数,是,求出蚂蚁的周游的最小值,所对应的路径即为最短路径。否,则回到步骤(1),整个流程如图9所示。

a*与蚁群混合算法在航迹规划应用

a*算法虽然在处理2点之间的障碍物上有很好的效果,但是a*算法不能解决巡航的问题。然而蚁群算法则在解决巡航问题是有着得天独厚的优势,但是蚁群算法在绕过障碍物的规划上效果并不是很好。因此就将a*算法与蚁群算法进行融合从对快递无人机进行航迹规划。

算法步骤如下:

步骤一、首先确定障碍坐标和网点快递柜坐标,忽略禁飞区和障碍物,使用蚁群算法做出一条轨迹;

步骤二、确认航线的起始点、途经点以及终点,连接各网点快递柜,确定初始航线;

步骤三、建立网格点,设定网格长宽均为s米,沿障碍物或禁飞区边缘建立至少3个网格点的裕度,障碍物网格和其周围裕度的网格定义为黑区,按照上述所述的方法对每个障碍物或禁飞区建立黑区;

步骤四、判断每段航线所在线段是否经过障碍物,判断方法为每隔l米选取该段航线上的点(x,y)是否满足在黑区边缘顶点所在的集合内;

步骤五、如果航线经过黑区,则先确认航线的起始点、途经点以及终点,从起点开始判断,依次使用a*算法,直至航线均绕过所有障碍物或禁飞区为止,完成快递无人机航迹规划。

流程如图11所示

应用仿真

以某学校为应用地点。假设城市区分散点调度中心位于地点1号教学楼,如图12所示,需要送达的快递柜地点分别位于图中的a~l点,假设快递无人机需要运送的快件总质量符合要求,图12中,上为正北方向,地图比例约为14mm:50m(米),并设j所在的正北方向(经线)与l的正南方向(纬线)的交叉点为地图原点,则其他选点的坐标分别为(根据实际距离来计算,单位:米)。

表1快递网点坐标表

将上述快递网点在2维平面中标识出来即如图13。

即需要绘制出一条由城市区集散分点送达到各网点快递柜并返回的最短路径。此时假设无禁飞区等高楼干扰。将坐标数据导入到matlab编写的程序中,并设置相关参数,设置轨迹的相对重要性α=1;能见度的相对重要性β=5;蚂蚁总数m=30;轨迹的持久性ρ=0.8;迭代次数为100次。所得到的最短路径图如图14所示。

2)建立方格点坐标,方格边长5米,依建筑物建立黑区,确定黑区各顶点坐标。根据仿真模型,设置图形范围为1000*80(米),即设置方格数为200*160个。导入黑区数据,起终点数据,其中黑区数据使用图10所示规则进行处理。建立二维平面矩阵,矩阵中起点使用5表示,终点使用2表示障碍物使用1表示,可通行点使用0表示,map即二维数组类型为int型。分别对各黑区作近似处理,得到各黑区顶点坐标如表2所示。

表2黑区坐标

(3)判断航迹是否经过禁飞区,若经过使用a*算法进行绕飞的路径规划,若不经过则保持航迹,绘制出的仿真图如图15所示。

在图15之中灰白色部分表示为障碍,灰色部分为可飞行区域,线条为所规划出来的航迹其中直线部分为算法判断没有经过障碍物保留原蚁群算法的航迹线,折线为a*算法规划出来的路线。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1