一种飞行器路径规划方法及装置

文档序号:5554 发布日期:2021-09-17 浏览:29次 英文

一种飞行器路径规划方法及装置

技术领域

本申请涉及飞行器

技术领域

,特别的,尤其涉及一种飞行器路径规划方法及装置。

背景技术

路径规划的主要目的是为飞行器提供可靠的飞行路径,也就是使得飞行器能够更加便利地从一个位置飞行到另一个位置。特别地,在超视距环境下,进行飞行器自主地规划飞行将大大降低飞行器操作者的操作难度。一般地,路径规划分为两个阶段:第一个阶段是全局路径规划;第二个阶段是根据飞行器运动学和动力学约束以及具体的局部环境条件,将飞行器的初始航路改进为可飞路径,也叫做局部路径规划,其中路径规划部分最重要的约束莫过于“可飞行”与“安全”。

目前行业内比较著名的开源自驾仪并没有支持复杂的路径规划方法,例如Apm、Pixhawk很少将避障与躲避危险考虑到路径规划之中。在地面站中,一般把航点序列用直线连接起来而直接构成飞行路径,不具备对路径上的障碍物绕过的能力,这意味着最流行的开源项目不提供障碍物躲避功能的算法。

发明内容

鉴于现有技术中存在的问题,本申请提供了一种飞行器路径规划方法及装置,用以解决复杂环境下,空间中存在较多障碍物、障碍物分布、外形不均匀情况下飞行器的自主决策最优路径的问题。

为了实现上述目的,本申请提供了以下技术方案:

一种飞行器路径规划方法,预先获取待规划飞行器飞行区域的全局环境的三维点云地图,该方法包括:

按照预设条件对所述三维点云地图进行处理,得到所述三维点云地图在三维空间中的不可通行区域和危险区域,以及栅格空间矩阵;

对所述栅格空间矩阵进行预处理,利用空间聚类算法对所述三维空间进行聚类,得到空间聚类结果;

利用所述空间聚类结果进行预处理,得到表述聚簇间可达性的无向图;

根据预设路径规划要求确定从初始点到终点的最优路径,所述最优路径为最安全路径、最短路径或综合最优路径。

进一步的,该方法还包括:

将所述栅格空间矩阵中的点映射到实际坐标空间的坐标,并通过建立人工势场将所述最优路径进行光滑处理,使得所述待规划飞行器在立体空间中平滑飞行。

优选的,所述将所述栅格空间矩阵中的点映射到实际坐标空间的坐标,并通过建立人工势场将所述最优路径进行光滑处理,具体为:

对所述栅格空间矩阵中的所有航点的坐标进行映射,使得其坐标从栅格空间的形式转变为实际空间的坐标;

选取最近的两个聚簇中心航点建立所述人工势场;

通过所述人工势场将所述最优路径进行光滑处理。

优选的,所述按照预设条件对所述三维点云地图进行处理,得到所述三维点云地图在三维空间中的不可通行区域和危险区域,以及栅格空间矩阵,具体为:

根据所述待规划飞行器的预设飞行条件确定所述三维点云地图在三维空间中的所述不可通行区域和所述危险区域;

根据预设精度要求确定栅格尺寸,并对所述三维点云地图进行栅格化处理,生成空间属性相似的超空间,依据所述超空间构建所述栅格空间矩阵。

优选的,所述栅格空间矩阵的构建方法,包括:

对于原地图坐标为(x,y,z)的点,其属于栅格空间坐标为(x//Step,y//Step,z//Step)的栅格(//是整除的意思);

若栅格空间各点坐标最小值依次为Xmin,Ymin,Zmin,(Xmin,Ymin,Zmin≤0,最大值依次为Xmax,Ymax,Zmax,则可见Map矩阵大小为Xmax-Xmin,Ymax-Ymin,Zmax-Zmin,为Xbound,Ybound,Zbound;;

将坐标为(x′,y′,z′)的栅格空间的栅格属性存储于MAP[x′-Xmin][y′-Ymin][z′-Zmin]的数组元素中,构建所述栅格空间矩阵。

优选的,所述根据预设路径规划要求确定从初始点到终点的最优路径,具体为:

根据所述预设路径规划要求确定对应的代价函数;

以所述代价函数为目标函数,通过A*搜索方法或迪杰斯特拉算法确定从初始点到终点的所述最优路径。

优选的,所述代价函数为:

若采用“路径综合最优”为目标,其所述代价函数为f(i,j)=D(i,j);

若采用“路径距离最短”为目标,则所述代价函数为f(i,j)=DS(i,j);

若采用“最优安全路径”为目标,则所述代价函数为f(i,j)=Da(i,j)。

一种飞行器路径规划装置,预先获取待规划飞行器飞行区域的全局环境的三维点云地图,该装置包括:

第一处理单元,用于按照预设条件对所述三维点云地图进行处理,得到所述三维点云地图在三维空间中的不可通行区域和危险区域,以及栅格空间矩阵;

第二处理单元,用于对所述栅格空间矩阵进行预处理,利用空间聚类算法对所述三维空间进行聚类,得到空间聚类结果;

第三处理单元,用于利用所述空间聚类结果进行预处理,得到表述聚簇间可达性的无向图;

第四处理单元,用于根据预设路径规划要求确定从初始点到终点的最优路径,所述最优路径为最安全路径、最短路径或综合最优路径。

一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在的设备执行如上述所述的飞行器路径规划方法。

一种飞行控制系统,所述飞行控制系统包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如上述所述的飞行器路径规划方法。

本申请所述的飞行器路径规划方法及装置,预先获取待规划飞行器飞行区域的全局环境的三维点云地图,该方法按照预设条件对所述三维点云地图进行处理,得到所述三维点云地图在三维空间中的不可通行区域和危险区域,以及栅格空间矩阵;对所述栅格空间矩阵进行预处理,利用空间聚类算法对所述三维空间进行聚类,得到空间聚类结果;利用所述空间聚类结果进行预处理,得到表述聚簇间可达性的无向图;根据预设路径规划要求确定从初始点到终点的最优路径。

本申请通过空间聚类算法,将空间划分为性值相似的“超空间”,并在此基础之上考虑最短路径搜索,同时使得离散方法的计算复杂度大幅降低,并生成连续的、满足要求的路径,隐形之中考虑了飞行器的动力学条件,由此可知,本申请可以解决在复杂环境下,空间中存在较多障碍物、障碍物分布、外形不均匀情况下飞行器的自主决策最优路径的问题。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例公开的一种飞行器路径规划方法的流程示意图;

图2为本申请实施例公开的栅格化过程说明示意图;

图3为本申请实施例公开的用来展示SLIC算法在“空间簇聚类”的效果示意图;

图4为本申请实施例公开的通过调试相关参数,进而获得更为精细的结果的效果示意图;

图5为本申请实施例公开的通过调试相关参数,进而获得更为精细的结果的另一效果示意图;

图6为本申请实施例公开的用来展示SLIC算法在立体空间的应用效果示意图;

图7为本申请实施例公开的一种飞行器路径规划装置的结构示意图;

图8为本申请实施例公开的一种飞行控制系统的结构示意图。

具体实施方式

申请人在研究中发现,常见的路径规划算法按照对地图的处理方法,主要包括离散方法与连续方法,其中:对于地图的离散方法需要将连续的空间离散化,并继续处理,可分为随机采样法(RRT算法、SBL算法)和图搜索算法(往往需要将实际连续的地图转化为离散的图后,再利用A*算法、动态规划算法等方法进行地图搜索)。

现有技术中,首先很多算法将障碍物和飞行器当作质点考虑,而在复杂环境下,空间狭小,不能简单的把物体视为质点考虑。启发式的智能算法比如粒子群算法、蚁群优化方法,实质上是用启发式方法实现代价函数的最优化,而并没有从本质上解决复杂环境下障碍物多、不规则的特点,相应的也就只能解决满足“可飞行”要求,而难以完成“安全”要求;其次,大多数方法并针对障碍物分布复杂的室内情况,往往只使用于条件空旷、障碍物外形规则的情况。例如人工势场法在具有多障碍物的情况下,由于大量障碍物的斥力场存在,很容易使得飞行器陷入局部“鞍点”,进而无法行动,且对于不规则的障碍物,比较难以设置合适的引力场,使得飞行器对障碍物进行规避。最后,常见的路径规划方法多为二维环境下陆地机器人的规划方法,例如RRT方法;诸如A*等启发式搜索算法或者动态规划类的方法,虽然也能适用于三维区域,但是其算法复杂度很高,且需要规整的地图表达,对于复杂环境下不规则的障碍物则难以进行描述。

为了解决上述缺点,本申请提供一种飞行器路径规划方法及装置,其目的在于:如何解决复杂环境下,空间中存在较多障碍物、障碍物分布、外形不均匀情况下飞行器的自主决策最优路径的问题。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请需要做基本假设,首先,已获得全局环境的三维点云地图,已知障碍物的位置坐标(不存在为探索信息的区域,如若确实有未探索区域,则可以选择探索后完善地图信息,或直接将其置为“不可通行区域”),即飞行器路径规划前需要获取所在空间的障碍物信息,比如用激光雷达、毫米波雷达、视觉传感器建立的障碍物形体、坐标信息;其次,不考虑传感器对于自身位置估计带来的误差,即认为其能够正确定位;最后,所有与坐标有关的数值,其单位均为cm。需要说明的是,关于三维点云地图的构建与障碍物的位置获取在本申请中不做具体讨论。

请参见附图1,为本申请实施例提供的一种飞行器路径规划方法流程示意图。如图1所示,本申请实施例提供了一种飞行器路径规划方法,预先获取待规划飞行器飞行区域的全局环境的三维点云地图,该方法包括如下步骤:

S101:按照预设条件对所述三维点云地图进行处理,得到所述三维点云地图在三维空间中的不可通行区域和危险区域,以及栅格空间矩阵。

本申请实施例中,上述所述按照预设条件对所述三维点云地图进行处理,得到所述三维点云地图在三维空间中的不可通行区域和危险区域,以及栅格空间矩阵,具体为:

根据所述待规划飞行器的预设飞行条件确定所述三维点云地图在三维空间中的所述不可通行区域和所述危险区域;

需要说明的是,所述不可通行区域和所述危险区域可以根据待规划飞行器存在的“地面效应”、“天花板效应”以及“壁面效应”,来确定地图三维空间中的“不可通行区域”与“危险区域”,其中,“不可通行区域”指飞行器的任何一部分均不能进入的区域,如“有障碍物的区域”、根据其空气动力特性所计算得到的不允许进入的区域,均属于“不可通行区域”;“危险区域”指会使得其空气动力特性发生变化,从而操作困难,存在危险的区域,栅格化过程说明请参见附图2所示。

例如,设一款飞行器其长、宽、高为a、b、h,其桨盘半径为R。根据其地面效应要求,其飞行时要求飞行器离地面至少具有Bound1的高度;根据其其天花板效应,要求其飞行时离天花板至少具有Bound2的距离;根据其壁面效应,其水平维度距离障碍物至少具有Bound3的距离。一般地,Bound属性为桨盘半径R的函数。

那么则对于任意坐标为(x0,y0,z0)的障碍物点,对属于集合N的点标记为“有障碍物”,集合N定义如下:

N={(x,y,z)x∈[x0-Bound3,x+Bound3],y∈[y0-Bound3,y+Bound3],z∈[z0-Bound1,z+Bound2]}

那么,可以认为飞行器的“飞行尺寸”为:

(afly,bfly,cfly)=(a+2*Bound3,b+2*Bound3,h+Bound1+Bound2)

具体地,根据飞行器存在的“地面效应”、“天花板效应”、“壁面效应”,确定地图三维空间中的“不可通行区域”与“危险区域”,对三维点云地图进行如下“增广”操作。

例如,设一款飞行器其长、宽、高为a、b、h,其桨盘半径为R。根据其地面效应要求,其飞行时要求飞行器离地面至少具有Bound1′的高度;根据其其天花板效应,要求其飞行时离天花板至少具有Bound2′的距离;根据其壁面效应,其水平维度距离障碍物至少具有Bound3′的距离。其中,满足Bound1′≥Boundi,i=1,2,3,那么则对于任意坐标为(x0,y0,z0)的障碍物点,对属于集合M的点标记为“有障碍物”,集合M定义如下:

M={(x,y,z)|x∈[x0-Bound3′,x+Bound3′],y∈[y0-Bound3′,y+Bound3′],z∈[z0-Bound1′,z0+Bound2′]}

根据预设精度要求确定栅格尺寸,并对所述三维点云地图进行栅格化处理,确定地图三维空间中的“不可通行区域”与“危险区域”,生成空间属性相似的空间栅格,依据所述空间栅格构建所述栅格空间矩阵。

在本申请实施例中,栅格空间矩阵的构建具体为:

首先,在原有地图的坐标原点与直角坐标系上,以Step为最小精度,即步长,生成新的空间栅格矩阵。这里建议Step取值为其中a,b,h为第一步中所述的飞行器尺寸。其中,栅格矩阵中的各个元素代表原空间的“通过属性”,即“安全区域”、“危险区域”、“不可通行区域”。

其次,对空间中任意Step*Step*Step范围内的空间格点中,若20%以下的点信息均为“有障碍物”,则将该栅格属性为“安全区域”;其次地,若存在50%以上的点信息为“有障碍物”,则该栅格属性为“不同通行区域”;最后将其它情况下的栅格定义为“危险区域”。在栅格空间下,飞行器尺寸对应为记作(a′,b′,h′);飞行尺寸对应为记作(a′fly,b′fly,h′fly)。

具体地,构建方式如下:对于原地图坐标为(x,y,z)的点,其属于栅格空间坐标为(x//Step,y//Step,z//Step)的栅格(//是整除的意思)。若栅格空间各点坐标最小值依次为Xmin,Ymin,Zmin,(Xmin,Ymin,Zmin≤0,最大值依次为Xmax,Ymax,Zmax,则可见Map矩阵大小为Xmax-Xmin,Ymax-Ymin,Zmax-Zmin,为Xbound,Ybound,Zbound;并将坐标为(x′,y′,z′)的栅格空间的栅格属性存储于MAP[x′-Xmin][y′-Ymin][z′-Zmin]的数组元素中。其中,属性为“安全区域”的栅格,赋值为0,为“危险区域”的栅格赋值为1,为“不可通行区域”的栅格赋值为2.

S102:对所述栅格空间矩阵进行预处理,利用空间聚类算法对所述三维空间进行聚类,得到空间聚类结果。

需要说明的是,空间聚类算法可以是SLIC聚类方法,其本质上是一种特殊的K-means聚类方法,其采用了局部搜索的方式,大幅度提高了聚类速度。本申请实施例中,引入“超空间”概念,即“空间性质”相似的空间聚簇。

可见,一个好的“超空间”聚簇分割算法,应该符合以下特征:

1)“超空间”的边界应该很好地贴合于“空间性质存在较大差异”的边界。

2)作为一个预处理步骤,使用“超空间”来降低计算复杂度时,“超空间”的计算速度要快,内存高效,使用简单。

3)当用于分割目的时,“超空间”分割既要提高速度又要提高结果质量。

本申请实施例中,对于“超空间”简单称为“聚簇”,具体的算法步骤如下:

首先,初始化:

a)定义参数:

为了生成形状均匀的聚簇,且期望在满足安全性指标的情况下,飞行器在这些超空间聚簇内能够安全飞行,设置超空间其初始长宽高Sa=a′+ka,Sb=b′+kb,Sh=h′+kh,其中ka,kb,kh为人为定义的参数,建议ka,kb取值为“壁面效应”规定的“不可通行区域”边界值Bound3,kh为“天花板效应”规定的“不可通行区域”边界值,取为Min{Bound1,Bound2},这时算法容易取得较小的“安全通过截面”。

b)初始化超空间聚簇质心位置

依次放将栅格空间坐标为位置设为聚簇质心,其中i,j,k的取值如下:

c)适当移动初始化的“超空间质心”位置:

避免质心处在边界上,将质心移到“聚簇”中心位置。具体地,若点坐标为(x0,y0,z0),对于其周围点(x,y,z),其中:

x∈[x0-2,x0+2],y∈[y0-2,y0+2],z∈[z0-2,z0+2]

满足如下条件:Map[x0][x0][x0]=Map[x][y][z],则可成为质心,进过移动质心操作后,对每一个聚簇k,其质心坐标ck=[xk,yk,zk]

其次,定义距离度量:

距离度量:空间中各个栅格点除了固有的(xi,yi,zi)坐标的空间性质,在飞行中实际上还具有“安全性性值”。对于所有的空间中的不存在障碍物的点,统计其邻域内属性为“危险区域”的点数,得到“危险区域”密度di,“不可通行区域”的密度ni,以及根据Map数组得到的相应的安全属性值mapi,得到安全特征空间的向量(di,ni,mapi)。以上为给出的参考指标,用户也可自定义满意的参考数值。

定义空间中任意两点i,j的欧氏距离:

定义安全距离:

由于欧式空间的坐标数值与安全特征空间中的距离取值范围不同,其中距离空间的取值为而安全空间的距离取值为需要对其进行如下的归一化处理:

其中:Ns为聚簇内距离最大的值,Na为聚簇内安全距离最大的值;

由于各聚簇内性值迥异,计算Ns与Na也有极高的时间复杂度,可以采用如下的归一化距离:

其中,m为自定义参数。当m取值较大时,位置空间距离权重大,最终所得聚簇更为规整;当m取值较小,安全属性权重更大,能对空间的安全属性差异有更好的划分。

然后,进行聚类,具体算法步骤如下:

定义聚簇搜索范围为S1=2*Sa,S2=2*Sb,S3=2*Sh,对初始化聚簇中心Ck=[xk,yk,zk],初始化参数的记录数组label与distance,对每一个栅格i,初始化栅格的标签label[i],即栅格i所属的聚簇为label[i];初始化栅格i到最近超空间质心的最小距离distance[i],初值为一个足够大的正数;

循环执行以下步骤,直到残差小于一个阈值,或者达到循环要求Epoch。根据实践经验,不超过10次的聚类效果已足矣,一般不需要特别根据环境特点设置残差;进行更多次迭代一般不会增强效果:

更新各个聚簇中心Ck坐标,其值为标签为k的栅格的各属性的质心位置;

End

最后,孤立分量连接,最后,在通过K-means方法对空间栅格聚类后,建议对小联通分量的栅格进行重新分配,原因主要如下,由于搜素区域比较大,而且空间属性可能出现不均匀情况,会出现镶嵌在某个簇中孤立的、不同簇的联通分量,比如搜索范围S1*S2*S3邻域,相对于飞行器安全通过截面,是一个较大的距离,可能存在一些孤立的连通分量镶嵌在其它聚簇之中;这种时候倾向于把这些栅格分配给附近属性类似的聚簇。

分配完毕后,计算各个超空间的属性,即质心与安全属性,其值为聚簇质心与安全属性平均值,代表该超空间聚簇的属性,即对于超空间聚簇k,其属性为:

[xk,yk,zk,dk,nk,mapk]

其中[xk,yk,zk]为其空间属性,为空间聚簇的空间质心;[dk,nk,mapk]为其安全属性,为聚簇点在安全向量空间的质心,在本申请实施例中,可以认为聚簇空间内的所有点均具有相似的性质。

S103:利用所述空间聚类结果进行预处理,得到表述聚簇间可达性的无向图。

本步骤中,在步骤S102中获得了同质化的空间聚簇,但是并不意味着每一个聚簇都能够使得飞行器通过。显然,只有聚簇“足够大”且“足够安全”,才能够允许飞行器安全的进入这一个聚簇空间。本申请实施例中的预处理方式是对空间聚类结果进行图联通处理,因此只对符合上述要求的聚簇进行图G的节点映射与联通工作。在这一步中,为符合要求的超像素一一映射为图G的节点,具体地要求如下:

对于一个聚簇:考虑xmax-xmin,ymax-ymin,zmax-zmin,其中下标max表示该聚簇中,相应维度的最大值,下标min表示最小值;则设空间聚簇的通过参数:

(xpass,ypass,zpass)=(xmax-xmin,ymax-ymin,zmax-zmin)

自定义参数athresh,hthresh,作为飞行器的安全通过截面的水平维度与垂直维度。一般的,默认选取为第一步所述的栅格空间的飞行尺寸a′fly的作为athresh,Max{b′fly,c′fly}作为hthresh,选取满足Max{xpass,ypass}≥athresh,zpass≥hthresh的聚簇为满足空间要求的聚簇;在安全参数上,至少要求mapi<1或mapi<mthresh,并有di<dthresh,ni<nthresh,此处mthresh,dthresh,nthresh为自定义参数,含义依次为对于聚簇点“整体安全性”、“不可进入性质”与“危险性”的评估;三者值越低,则代表该聚簇越安全,最终利于筛选出更安全的区域。

现在得到了图G的点集合V={V1,V2,…,Vt},用数组HashMap记录图G中任意一点Vi与其相对应的超像素的关系,有HashMap[i]=ki

进一步,本申请实施例中开始对节点的联通工作,可以采取如下方法:当两个超空间在欧式空间的质心距离的小于距离L时,认为其实两块空间是可以直接联通的,即飞行器可以安全的从一个聚簇飞行到另一个聚簇。其中L为自定义参数,表示对于聚簇质心距离的容忍程度,当L较大时,表示对空间连通性容忍度高,会在更多的节点对间建立边;反之,则建立的边更少。

S104:根据预设路径规划要求确定从初始点到终点的最优路径。

本申请实施例中,上述所述根据预设路径规划要求确定从初始点到终点的最优路径,具体为:根据所述预设路径规划要求确定对应的代价函数;以所述代价函数为目标函数,通过A*搜索方法或迪杰斯特拉算法确定从初始点到终点的所述最优路径。

本申请实施例中,各“超空间聚簇”的质心为从起始点到终点的中间航点。实际应用中,还可以确定“最短路径”和“综合最优路径”,若采用“路径综合最优”,其代价函数f(i,j)=D(i,j);若采用“路径距离最短”为目标,则可以用f(i,j)=DS(i,j);而本申请实施例中需要确定的是“最优安全路径”,因此,采用“路径最安全”为目标,则用f(i,j)=Da(i,j)。

无论是对于上述哪一种目标,其搜索的目标均为使得代价函数取值f(Start,End)最小,其中Start指初始节点,End指目标节点,对应于距离最小,安全性最高,或者均衡距离最小与安全性的方案。

若图为稀疏图,则采用A*搜索方法,若为稠密图,则使用迪杰斯特拉算法。

若|E|>|V|*log2(|V|),则为稠密图,反之,为稀疏图。

进一步的,若采用迪杰斯特拉方法,则步骤描述如下:

1)设置相应数据结构,引入一个辅助数组VD,它的每个元素VDi表示从起始点到达点i的最短代价。设S为访问过的节点哈希表,初始化S,其中只有一个元素Start,即源点。设Path为路径记录数组,Path[i]表示从源点到达目标点End过程中,第i步到达的节点。

2)初始化VD。考虑源点Start,对与其直接连通的节点Vk,将D[k]置为从从源点到节点Vk的代价f(Start,k)。其余则置为正无穷或足够大的数。

3)执行以下步骤,直到V-S为空集

a)选择Vj,使得D[j]=Min{D|Vj∈V-S}

b)修改与Vj连通的所有节点Vk,使得D[k]=D[j]+f(j,k)

c)在路径记录表Path的中,增加节点Vj

若采用A*搜索方法,则步骤描述如下:

设置函数f(n,k)为节点n到达节点k的真实代价,h(n,k)为从节点n到k的启发式信息,g(n,k)为从节点n到k的预估代价,值为f(n,k)+h(n,k)。

在此处h(n,k)为用户自定义的启发式信息,启发式信息的要求为:

h(n,k)<=h*(n,k)

其中h*(n,k)为从n点到k点所需要的真实代价。此处,由于在欧几里得空间中满足三角不等式,此处的启发式信息建议定义为从点n到k的直线代价,即认为两个节点在图G<V,E>中有边直接连通时,计算所得到的代价。

(1)数据初始化:

a)设置数据结构Open表,为代价最小的优先队列,存放等待拓展的节点。

b)设置Close表,为优先队列,存放已被探索的节点结构。

c)其中结构中记录了被探索节点信息,搜索路径的预估代价与具体路径。

d)初始化Open表,将初始点Start置入其中。

(2)循环执行以下步骤,直到目标点End被放入Close表中,终止搜索

a)从Open表表头取出当前代价最小节点Vi

b)将与其直接连通的节点放入Open表中;

c)计算各点启发式信息h(Start,ki)。

d)将Vi放入close表中,将所有与Vi连接的点均放入Open表中。

本步骤根据以上目标,能获得满足要求的最优安全路径查询第四步的HashMap数组可得到最优安全路径对应的聚簇的路径:

{HashMap[k1],HashMap[k2],...,HashMap[kt]}

该路径记作Pathgird,可以进行索引操作,即Pathcluster[i]=HashMap[k1],即路径中第i个航点为聚簇或者,得不到一条到达终点的路径,其原因可能是环境确实不能使得飞行器通过,也可能是由于上述步骤中的自定义参数要求过高。

进一步的,若能获得最优安全路径,则执行步骤S105;否则可以通过提高对自定义参数mthresh,dthresh,nthresh来获取一条可行性较大的指导路径,辅助操作者人为手动飞行的方法。

S105:将所述栅格空间矩阵中的点映射到实际坐标空间的坐标,并通过建立人工势场将所述最优路径进行光滑处理,使得所述待规划飞行器在立体空间中平滑飞行。

本申请实施例中,上述所述将所述栅格空间矩阵中的点映射到实际坐标空间的坐标,并通过建立人工势场将所述最优路径进行光滑处理,具体为:

对所述栅格空间矩阵中的所有航点的坐标进行映射,使得其坐标从栅格空间的形式转变为实际空间的坐标;选取最近的两个聚簇中心航点建立所述人工势场;通过所述人工势场将所述最优路径进行光滑处理。

具体的,本申请实施例中,首先,对Pathgird中所有航点的坐标进行映射,使得其坐标从栅格空间的形式转变为实际空间的坐标。进行如下操作:

若下标为Pathgird[i]的聚簇,其属性为:[xi,yi,zi,di,ni,mapi]

则该聚簇所对应的航点坐标为:

([xi*Step+Xmin,yi*Step+Ymin,zi*Step+Zmin])

其中,参数Step,Xmin,Ymin,Zmin在步骤S101中定义,由此生成了中间航点序列(P1,P2,...,Pm),其中,Pm为最终的目标点。

对于由于第五步所得到的中心航点为折线,且距离较近,使得飞行器依据航点飞行时轨迹不平滑。现采取对最近的两个聚簇中心航点建立势场,使得飞行器的轨迹趋于连续。并在航线领域建立障碍物势场,避免其与障碍物发生碰撞。

其主要流程如下:

(1)已知现在飞行器所处位置为p∈R3,定义p为飞行器的质心位置。向量pwp1示下一个航路点,向量pwp2表示pwp1之后的航点。

具体地,初始化当前位置P为起点,设pwp1=P1,pwp2=P2,根据如下势场生成方法,得到控制输入“加速度”u。期望在当前所处位置,飞行器能够以一种平滑的路径逼近向量pwp1、pwp2所在直线,并抵达pwp2位置。(注意,以上向量均为列向量)。

根据解析几何,可知当前位置与期望路径的距离为||P-Pperp||,其中Pperp为垂足,具体的有如下关系:

化简可得到:p-Pperp=A(p-Pwp2),其中,矩阵A为其几何含义为,当p满足:A(p-Pwp2)=03×1,表示飞行器位置p处于向量Pwp1-Pwp2所在直线上,那么,可以定义控制器输入量u为:其中,k0,k1,k2为自定义的参数,取值为正整数,Δp=p-Pwp2,v为多旋翼飞行器当前速度,Sat为方向饱和函数,其定义如下:其中,x为向量,a为标量,||x||为无穷范数,为向量x各元素绝对值中的最大者。

本申请实施例中可以通过设置k0,k1,k2的取值达到生成不同轨迹的目的。具体地,讨论如下:

当k0=1,k1=0,k2∈R+,此时飞行器将直接跳过航点Pwp1,而直接飞向点Pwp2

当k0=0,k1=1,k2∈R+时,飞行器将直接飞向期望路径;

当k0∈R+、k1∈R+、k2∈R+时,当越大时,飞行器轨迹越贴近于沿直线飞向Pwp2;反之,则路径越贴近于直线i(Pwp1-Pwp2)+Pwp1,即期望路径;

参数k2并不改变控制量u的方向,只改变u的大小。当k2取值较大时,控制量u越小,这意味着飞行器在飞行中加速度越小;反之,则加速度越大。

(2)当抵达Pwp2,其为航点序列的Pi时,判断下一个航点是否为终点Pm,如果是,则采取直线飞行的方法;如果不是,则更新p=Pi,Pwp1=Pi+1,Pwp1=Pi+2执行步骤(1),生成新的虚拟控制量加速度u。

通过本申请实施例,可以通过图3来展示SLIC算法在“空间簇聚类”的效果,可以看到所生成的“空间簇”边界区分度良好,且形体尺寸大多比较规整,除非处在“性质变化极度复杂”的区域。一般的,在室内的“障碍物有无”的情况近似于“二值图像”,情况远远没有图中展示的复杂,因此所得到的空间聚簇将会具有规则的形态,比如近似于矩形。

进一步的,可以通过调试相关参数,进而获得更为精细的结果,如图4所示,还可以通过调试相关参数,如定义距离度量”的“参数m”,使得所得的空间聚簇对于“空间同质性”要求更高,即所得到的聚簇“簇内性质更为相似,簇间性质更为不同”。具体的,在这里是将参数m缩小,所得如图5所示。但也可以看到,聚簇的形态不如上面规则。这意味着得到的聚簇空间表示,不利于飞行器飞行。进一步的,如图6所示,展示了SLIC算法在立体空间的应用,可见,在性质均匀的白色部分,分割所得到的“空间簇”形态非常良好。

与现有技术中存在的路径规划方法相比,本申请提供的路径规划方法有如下优点:

本申请引入了先进、高效的SLIC聚类方法,其运行的时间复杂度与栅格数成线性关系;并综合使用了离散方法与连续方法,突破当前室内复杂环境的全局规划困难的问题。通过使用多种方法降低了运算复杂度,如选用合适尺度的栅格,对地图进行栅格化,在能够满足精确性需求的基础上,初步降低地图信息的复杂度;利用SLIC聚类方法对栅格化地图进一步聚类,生成空间属性相似的超空间,这样大大减少了搜索过程的节点数,加速规划。通过巧妙的采用“超空间聚簇”思想,可以将一个大型障碍物、大空间分割成许多与飞行器尺度接近的聚簇,并有效解决道路图、单元分解等地图预处理方法没有很好划分出同属性单元的问题,这使得对于障碍物规避方面,避免完全将障碍物与飞行器当作质点考虑,使得自主生成的规划路径更加精确、安全。通过巧妙地根据飞行器动力学限制、尺寸限制,将超空间聚簇的大小设计为飞行器飞行尺寸,这使得将飞行器的飞行通过性问题转化为对“超空间聚簇的安全属性”考虑问题;将动力学限制转化为对空间聚类的设置合适的距离阈值,转化为图的连通性问题,从而改善了一般图搜索不能体现动力学约束的问题。

另外,本申请引入离散化方法,给出一条优秀的可行路径,使得在可行路径周围利用人工势场法而不易于陷入局部最优点成为可能;同时引入了人工势场法对规划路径进行平滑处理,使得飞行器在立体空间中飞行更加平滑,且引入了方向饱和函数的技巧,使得飞行器控制量在出现超过阈值的时候,依旧能够保持未溢出时的飞行方向;同时引入人工势场可以有效避免自定义参数设计不恰当造成的飞行器与障碍物碰撞问题。本申请属于一种“先离散处理、后连续处理;先全局、后局部”的框架性的指导方案。

本申请实施例提供的一种飞行器路径规划方法,预先获取待规划飞行器飞行区域的全局环境的三维点云地图,该方法按照预设条件对所述三维点云地图进行处理,得到所述三维点云地图在三维空间中的不可通行区域和危险区域,以及栅格空间矩阵;对所述栅格空间矩阵进行预处理,利用空间聚类算法对所述三维空间进行聚类,得到空间聚类结果;利用所述空间聚类结果进行预处理,得到表述聚簇间可达性的无向图;根据预设路径规划要求确定从初始点到终点的最优路径。本申请实施例通过空间聚类算法,将空间划分为性值相似的“超空间”,并在此基础之上考虑最短路径搜索,同时使得离散方法的计算复杂度大幅降低,并生成连续的、满足要求的路径,隐形之中考虑了飞行器的动力学条件。由此可知,本申请实施例可以解决在复杂环境下,空间中存在较多障碍物、障碍物分布、外形不均匀情况下飞行器的自主决策最优路径的问题。

请参阅图7,基于上述实施例公开的一种飞行器路径规划方法,本实施例对应公开了一种飞行器路径规划装置,预先获取待规划飞行器飞行区域的全局环境的三维点云地图,该装置包括:

第一处理单元701,用于按照预设条件对所述三维点云地图进行处理,得到所述三维点云地图在三维空间中的不可通行区域和危险区域,以及栅格空间矩阵;

第二处理单元702,用于对所述栅格空间矩阵进行预处理,利用空间聚类算法对所述三维空间进行聚类,得到空间聚类结果;

第三处理单元703,用于利用所述空间聚类结果进行预处理,得到表述聚簇间可达性的无向图;

第四处理单元704,用于根据预设路径规划要求确定从初始点到终点的最优路径,所述最优路径为最安全路径、最短路径或综合最优路径;

第五处理单元705,用于将所述栅格空间矩阵中的点映射到实际坐标空间的坐标,并通过建立人工势场将所述最优路径进行光滑处理,使得所述待规划飞行器在立体空间中平滑飞行。

进一步的,所述第五处理单元705用于:

对所述栅格空间矩阵中的所有航点的坐标进行映射,使得其坐标从栅格空间的形式转变为实际空间的坐标;

自起点到终点,依次选取最近的两个聚簇中心航点建立所述人工势场;

通过所述人工势场将所述最优路径进行光滑处理。

进一步的,所述第一处理单元701用于:

根据所述待规划飞行器的预设飞行条件确定所述三维点云地图在三维空间中的所述不可通行区域和所述危险区域;

根据预设精度要求确定栅格尺寸,并对所述三维点云地图进行栅格化处理,生成空间属性相似的空间栅格,依据所述空间栅格构建所述栅格空间矩阵。

进一步的,所述第四处理单元704用于:

根据所述预设路径规划要求确定对应的代价函数;

以所述代价函数为目标函数,通过A*搜索方法或迪杰斯特拉算法确定从初始点到终点的所述最优路径。

所述飞行器路径规划装置包括处理器和存储器,上述第一处理单元、第二处理单元、第三处理单元、第四处理单元和第五处理单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来达到解决复杂环境下,空间中存在较多障碍物、障碍物分布、外形不均匀情况下飞行器的自主决策最优路径的问题。

本申请实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述飞行器路径规划方法。

本申请实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述飞行器路径规划方法。

本申请实施例提供了一种飞行控制系统,如图8所示,该飞行控制系统80包括至少一个处理器801、以及与所述处理器连接的至少一个存储器802、总线803;其中,所述处理器801、所述存储器802通过所述总线803完成相互间的通信;处理器801用于调用所述存储器802中的程序指令,以执行上述的所述飞行器路径规划方法。

本文中的飞行控制系统可以是服务器、PC、PAD、手机等。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:

按照预设条件对所述三维点云地图进行处理,得到所述三维点云地图在三维空间中的不可通行区域和危险区域,以及栅格空间矩阵;

对所述栅格空间矩阵进行预处理,利用空间聚类算法对所述三维空间进行聚类,得到空间聚类结果;

利用所述空间聚类结果进行预处理,得到表述聚簇间可达性的无向图;

根据预设路径规划要求确定从初始点到终点的最优路径,所述最优路径为最安全路径、最短路径或综合最优路径。

进一步的,该方法还包括:

将所述栅格空间矩阵中的点映射到实际坐标空间的坐标,并通过建立人工势场将所述最优路径进行光滑处理,使得所述待规划飞行器在立体空间中平滑飞行。

进一步的,所述将所述栅格空间矩阵中的点映射到实际坐标空间的坐标,并通过建立人工势场将所述最优路径进行光滑处理,具体为:

对所述栅格空间矩阵中的所有航点的坐标进行映射,使得其坐标从栅格空间的形式转变为实际空间的坐标;

自起点到终点,依次选取最近的两个聚簇中心航点建立所述人工势场;

通过所述人工势场将所述最优路径进行光滑处理。

进一步的,所述按照预设条件对所述三维点云地图进行处理,得到所述三维点云地图在三维空间中的不可通行区域和危险区域,以及栅格空间矩阵,具体为:

根据所述待规划飞行器的预设飞行条件确定所述三维点云地图在三维空间中的所述不可通行区域和所述危险区域;

根据预设精度要求确定栅格尺寸,并对所述三维点云地图进行栅格化处理,生成空间属性相似的空间栅格,依据所述空间栅格构建所述栅格空间矩阵。

进一步的,所述栅格空间矩阵的构建方法,包括:

对于原地图坐标为(x,y,z)的点,其属于栅格空间坐标为(x//Step,y//Step,z//Step)的栅格(//是整除的意思);

若栅格空间各点坐标最小值依次为Xmin,Ymin,Zmin,(Xmin,Ymin,Zmin≤0,最大值依次为Xmax,Ymax,Zmax,则可见Map矩阵大小为Xmax-Xmin,Ymax-Ymin,Zmax-Zmin,为Xbound,Ybound,Zbound;;

将坐标为(x′,y′,z′)的栅格空间的栅格属性存储于MAP[x′-Xmin][y′-Ymin][z′-Zmin]的数组元素中,构建所述栅格空间矩阵。

进一步的,所述根据预设路径规划要求确定从初始点到终点的最优路径,具体为:

根据所述预设路径规划要求确定对应的代价函数;

以所述代价函数为目标函数,通过A*搜索方法或迪杰斯特拉算法确定从初始点到终点的所述最优路径。

进一步的,所述代价函数为:

若采用“路径综合最优”为目标,其所述代价函数为f(i,j)=D(i,j);

若采用“路径距离最短”为目标,则所述代价函数为f(i,j)=DS(i,j);

若采用“最优安全路径”为目标,则所述代价函数为f(i,j)=Da(i,j)。

本申请是根据本申请实施例的方法、设备(系统)、计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种无人驾驶特种车辆姿态测量方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!