发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于改进A星算法的无人机路径规划方法和装置。
依据本发明的一个方面,提供了一种基于改进A星算法的无人机路径规划方法,所述方法包括:
构建无人机飞行区域的三维栅格地图,确定飞行起点和终点位置,并初始化A星算法模型;
识别并标记所述飞行区域中的障碍物,对所述障碍物进行处理;
根据对障碍物的处理结果生成障碍物权重系数,对所述A星算法模型的评价函数进行加权;
基于加权后的评价函数规划所述无人机的路径。
在一些实施方式中,构建无人机飞行区域的三维栅格地图,确定飞行起点和终点位置,并初始化A星算法模型包括:
构建并初始化三维栅格地图的栅格节点,设置起点及终点的栅格节点信息,初始化各个起点、终点搜索分支的开放列表和封闭列表。
在一些实施方式中,识别并标记所述飞行区域中的障碍物,对所述障碍物进行处理包括:
通过预设的障碍物识别模型识别出飞行区域中的障碍物;
根据障碍物的轮廓识别出障碍物的类型,对不同类型的障碍物分别进行处理。
在一些实施方式中,对不同类型的障碍物分别进行处理包括:
对弧型障碍物进行网格化处理;和/或,
对凹型障碍物进行凸处理。
在一些实施方式中,根据对障碍物的处理结果生成障碍物权重系数,对所述A星算法模型的评价函数进行加权包括:
以当前三维栅格地图中障碍物的数量或者所占栅格数量与所述三维栅格地图的栅格总量之比为障碍物权重系数;
根据所述障碍物权重系数的反正切函数值确定启发式函数的权重;
根据当前节点到终点的距离与起点到终点的距离之比确定当前节点的代价函数的权重;
基于所述启发式函数与其权重的乘积和所述代价函数和其权重的乘积之和,得到所述评价函数。
在一些实施方式中,基于加权后的评价函数规划所述无人机的路径包括:
预设路径中节点与障碍物之间的安全距离阈值,若当前路径中的节点与所述障碍物之间的距离超过所述安全距离阈值时,则放弃当前路径。
在一些实施方式中,所述方法还包括:
利用弗洛伊德算法确定路径中各节点中的最短距离,减少路径上的拐点数量,实现路径的平滑优化。
依据本发明的另一个方面,提供了一种基于改进A星算法的无人机路径规划装置,所述装置包括:
初始化模块,适于构建无人机飞行区域的三维栅格地图,确定飞行起点和终点位置,并初始化A星算法模型;
识别模块,适于识别并标记所述飞行区域中的障碍物,对所述障碍物进行处理;
加权模块,适于根据对障碍物的处理结果生成障碍物权重系数,对所述A星算法模型的评价函数进行加权;
规划模块,适于基于加权后的评价函数规划所述无人机的路径。
依据本发明的又一方面,提供了一种垂直起降无人机,其特征在于,包括:处理器以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据上述实施方式中任一项所述的基于改进A星算法的无人机路径规划方法。
依据本发明的再一方面,提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现根据上述中任一项基于改进A星算法的无人机路径规划方法。
由上述可知,为了支持复杂环境下的路径规划,本申请首先识别无人机在飞行中可能遇到的不规则障碍物,对障碍物进行网格化或者凸处理,减少路径设计中的干涉情况,并且利用环境地图中的障碍物权重系数对代价函数进行改进,通过结合无人机运动约束和安全阈值,改进了A 星算法,从而能够规划出具有更大平滑度的最优最短路径。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的基于改进A星算法的无人机路径规划方法的流程示意图,所述方法包括如下的步骤:
步骤S110,构建无人机飞行区域的三维栅格地图,确定飞行起点和终点位置,并初始化A星算法模型;
步骤S120,识别并标记所述飞行区域中的障碍物,对所述障碍物进行处理;
步骤S130,根据对障碍物的处理结果生成障碍物权重系数,对所述A星算法模型的评价函数进行加权;
步骤S140,基于加权后的评价函数规划所述无人机的路径。
上述实施例公开的技术方案首先识别无人机在飞行中可能遇到的不规则障碍物,以减少路径设计中的干涉情况,并且利用环境地图中的障碍物权重系数对其中的代价函数进行改进,改进了A 星算法,从而能够规划出具有更大平滑度的最优最短路径。
在一些实施例中,步骤S110构建无人机飞行区域的三维栅格地图,确定飞行起点和终点位置,并初始化A星算法模型包括:
构建并初始化三维栅格地图的栅格节点,设置起点及终点的栅格节点信息,初始化各个起点、终点搜索分支的开放列表和封闭列表。
执行A星算法的可以采用如下的流程:构建改进A星算法的评价函数,包括启发式函数和成本函数;初始化三维栅格地图的栅格节点,设置起点及终点的栅格节点信息,初始化各起点、终点搜索分支的开放列表和封闭列表;对于起点和多个终点,采用正向搜索与反向搜索相结合的方式,将飞行起点作为起始节点、其他点作为终点,并以到其他点的距离之和为启发项,建立多条A星算法的搜索分支;通过依次扩展每个搜索分支的开放列表中路径代 价最小的节点及其邻接节点进行搜索;然后判断各个搜索分支的开放列表是否为空:若为非空,则将开放列表中评价函数值最小的键值对纳入封闭列表,并记录更新各个搜索分支的最新节点;判断各个搜索分支的封闭列表中是否出现了重合节点:若出现了重合节点,则确定重合节点为一个分离点;以该分离点为起点节点、以搜索分支封闭列表中剩余未交汇的最新节点为目标节点,返回执行;若未出现重合节点,则依次将各个搜索分支中当前最新节点的邻接节点及相应路径代价值作为键值对一同纳入开放列表中,返回执行;直至目标节点数目为零,表示完成所有路径的搜索;将各个搜索分支搜索得到的路径拼接,获得飞行路径。
在一些实施例中,步骤S120识别并标记所述飞行区域中的障碍物,对所述障碍物进行处理包括:
通过预设的障碍物识别模型识别出飞行区域中的障碍物;
根据障碍物的轮廓识别出障碍物的类型,对不同类型的障碍物分别进行处理。
在一些实施例中,上述的对不同类型的障碍物分别进行处理包括:
对弧型障碍物进行网格化处理包括:首先确定弧形障碍物外缘线的网格,以及它的定位网格,然后,执行多边形处理,并将每个弧形网格的定位点连接起来形成多边形。上述利用了粗糙集的思想,得到近似弧形障碍物的多边形,提高了障碍物规避的精度和速度,避免了局部循环。
对凹型障碍物进行凸处理,凸填充过程从确定网格图中每个多边形顶点的坐标开始。多边形顶点记为S1,S2,⋯,Sm,其中m为多边形顶点数,如果相邻两条边形成的内角大于180度,则对应的顶点Si为凹点,否则,该顶点为凸点。在路径搜索算法中,如果路径点落入凹区,则下一个路径点必须放置在凹区之外,才能完成飞行任务。而凹区域影响无人机路径质量,增加无效路径点数量,影响求解速度。其凸化填充的示意图如图2所示。
在一些实施例中,步骤S130根据对障碍物的处理结果生成障碍物权重系数,对所述A星算法模型的评价函数进行加权包括:
以当前三维栅格地图中障碍物的数量或者所占栅格数量与所述三维栅格地图的栅格总量之比为障碍物权重系数;
根据所述障碍物权重系数的反正切函数值确定启发式函数的权重;
根据当前节点到终点的距离与起点到终点的距离之比确定当前节点的代价函数的权重;
基于所述启发式函数与其权重的乘积和所述代价函数和其权重的乘积之和,得到所述评价函数;其中,所述启发式函数定义为起点到终点的距离之和。
具体的,通过A星算法规划的路径中存在许多拐点和大角度,不利于无人机的飞行。为此,该实施例做了如下的改进:A 星算法的评价函数由代价函数g和启发式函数h组成,算法的最优搜索性能取决于启发式函数的选择。改进的A星算法在启发式函数中引入障碍物权重系数,如下式所示,障碍物权重系数表达了栅格地图的复杂度,并对环境信息进行了分析。障碍物权重系数定义为当前栅格地图中障碍物的数量与整个栅格地图中网格单元的数量之比。设n为障碍物网格单元数,无人机起点和终点坐标分别表示为(xs, ys)、(xg,yg)。
其中g(n)为起点到当前节点的代价,h(n)为当前节点到终点的启发式函数值,(xn,yn)为当前节点的坐标,a为代价函数g(n)的权值。系数a的计算方法为当前节点到终点的距离与起点到终点的距离之比。改进算法设置自适应启发式函数的权值。当障碍物权重系数K较小时,自适应启发 式函数的权重增大。改进后的A星算法减小了搜索空间,提高了路径规划的速度,有效地减少了路径的拐点和拐点。当障碍权系数较大时,减小启发式函数的权值,增加搜索空间,避免算法陷入局部优化。
在一些实施例中,步骤S140基于加权后的评价函数规划所述无人机的路径包括:
预设路径中节点与障碍物之间的安全距离阈值,若当前路径中的节点与所述障碍物之间的距离超过所述安全距离阈值时,则放弃当前路径。
具体的,结合图3所示,改进的A星算法设置路径节点与障碍物之间的安全距离,以防止无人机与障碍物碰撞。将障碍物到路径的垂直距离OE(从O点到KG线的垂直距离)与预先设定的安全距离阈值进行比较,判断所规划的路径是否安全可行。
在一些实施例中,所述方法还包括:
利用弗洛伊德算法寻找路径中各节点中的最短距离,减少路径上的拐点数量,实现路径的平滑优化。
结合图4所示,算法优化路径对比如图4所示。如图4所示,A星算法得到的路径(S,S1,S2,S3,S4,S5,S6,S7,S8,G),这条路径有很多拐点, 导致平滑性较差。 弗洛伊德(Floyd)算法可以消除冗余的路径节点,有效地减少了拐点,优化了路径长度。Floyd算法结合无人机的运动特性,提高了路径的平滑度。
通过判断两个节点之间是否存在障碍物,以及考虑安全距离阈值D 和连接到障碍物的两个节点之间的距离,可以确定路径是否可行。比如,该实施例中最后得到路径(S,S1,S7,G)。
依据本发明的另一个方面,参见图5所示,提供了一种基于改进A星算法的无人机路径规划装置,所述装置500包括:
初始化模块510,适于构建无人机飞行区域的三维栅格地图,确定飞行起点和终点位置,并初始化A星算法模型;
识别模块520,适于识别并标记所述飞行区域中的障碍物,对所述障碍物进行处理;
加权模块530,适于根据对障碍物的处理结果生成障碍物权重系数,对所述A星算法模型的评价函数进行加权;
规划模块540,适于基于加权后的评价函数规划所述无人机的路径。
在一些实施例中,初始化模块510适于:
构建并初始化三维栅格地图的栅格节点,设置起点及终点的栅格节点信息,初始化各个起点、终点搜索分支的开放列表和封闭列表。
在一些实施例中,识别模块520适于:
通过预设的障碍物识别模型识别出飞行区域中的障碍物;
根据障碍物的轮廓识别出障碍物的类型,对不同类型的障碍物分别进行处理。
在一些实施方式中,识别模块520进一步适于:
对弧型障碍物进行网格化处理;
对凹型障碍物进行凸处理。
在一些实施方式中,加权模块530适于:
以当前三维栅格地图中障碍物的数量或者所占栅格数量与所述三维栅格地图的栅格总量之比为障碍物权重系数;
根据所述障碍物权重系数的反正切函数值确定启发式函数的权重;
根据当前节点到终点的距离与起点到终点的距离之比确定当前节点的代价函数的权重;
基于所述启发式函数与其权重的乘积和所述代价函数和其权重的乘积之和,得到所述评价函数;
其中,所述启发式函数定义为起点到终点的距离之和。
在一些实施方式中,规划模块540适于:
预设路径中节点与障碍物之间的安全距离阈值,若当前路径中的节点与所述障碍物之间的距离超过所述安全距离阈值时,则放弃当前路径。
在一些实施方式中,所述装置还适于:
利用弗洛伊德算法寻找路径中各节点中的最短距离,减少路径上的拐点数量,实现路径的平滑优化。
需要说明的是,上述各装置实施例的具体实施方式可以参照前述对应方法实施例的具体实施方式进行,在此不再赘述。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于改进A星算法的无人机路径规划装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的上述基于改进A星算法的无人机路径规划方法。
图6示出了本发明垂直起降无人机实施例中控制部分的结构示意图,本发明具体实施例并不对垂直起降无人机的具体实现做限定。
如图6所示,该垂直起降无人机的控制部分可以包括:处理器(processor)602、通信接口(Communications Interface)604、存储器(memory)606、以及通信总线608。
其中:处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。通信接口604,用于与其它设备比如客户端或其它服务器等的网元通信。处理器602,用于执行程序610,具体可以执行上述用于垂直起降无人机的上述基于改进A星算法的无人机路径规划方法实施例中的相关步骤。
具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
处理器602可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。垂直起降无人机包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器606,用于存放程序610。存储器606可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序610具体可以用于使得处理器602执行上述基于改进A星算法的无人机路径规划方法实施例对应的操作。
应该注意的是上述实施例对本申请进行说明而不是对本申请进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。