本发明涉及航线规划技术领域,具体涉及一种基于无人机的山火监测自主航线规划方法、装置及系统。
背景技术:
现有技术无人机巡检整条航线的飞行高度普遍相同,如果运用在地势复杂的山区,有些低洼地点就可能因为高度不达标造成复飞的情况,降低了巡检的工作效率,因此亟需在规划的航线中加入地形变化的因素。
此外由于需要对山区的山火进行监控,还需要实时的根据山火动态更新航线,以实现无人机在复杂山区近地模式下的针对山火的精细化巡检。
技术实现要素:
有鉴于此,本申请提供一种基于无人机的山火监测自主航线规划方法、装置及系统,能够解决或者部分解决上述存在的问题。
为解决以上技术问题,本发明提供的技术方案是一种基于无人机的山火监测自主航线规划方法,包括:
s11:确定待规划航线的起点坐标和终点坐标,根据原始地理信息点云和预设高程值规划三维航线;
s12:接收山火疑似区域的坐标,计算山火疑似区域凸包;
s13:根据山火疑似区域凸包和预设安全飞行距离计算无人机安全飞行凸包;
s14:根据无人机安全飞行凸包更新三维航线。
优选的,所述s11的步骤包括:
s111:确定待规划航线的起点坐标和终点坐标;
s112:根据待规划航线的起点坐标和终点坐标、以及原始地理信息点云规划二维航线;
s113:根据原始地理信息点云计算地形的高度,根据地形的高度、预设高程值和二维航线规划三维航线。
优选的,所述s111的步骤包括:
s1111:接收待规划航线的起点坐标和终点坐标;
s1112:获取无人机的当前位置坐标;
s1113:将无人机的当前位置坐标与待规划航线的起点坐标和终点坐标中距离最近的点坐标设置为待规划航线的起点坐标,另一个点坐标设置为待规划航线的终点坐标。
优选的,所述s112的步骤包括:
s1121:计算待规划航线的起点坐标和终点坐标在直角坐标系下x方向的差值、y方向的差值;
s1122:根据预设的临时飞行宽度,以及航线的起点坐标和终点坐标在直角坐标系下y方向的差值计算飞行栅格单元数量,若飞行栅格单元数量为偶数则加1;
s1123:根据航线的起点坐标和终点坐标在直角坐标系下的x方向的差值、y方向的差值,以及飞行栅格单元数量计算每个飞行栅格单元的实际飞行宽度;
s1124:根据每个飞行栅格单元的实际飞行宽度通过递归方法计算拐角航线点;
s1125:判断每相邻两个拐角航线点之间的间距是否大于预设间距,若是,则在该相邻两个拐角航线点之间每间隔预设间距的位置增设监测航线点,获得包括航线起点、拐角航线点、监测航线点和航线终点的二维带状航线。
优选的,所述s113的步骤包括:
s1131:使用体素滤波下采样稀释原始地理信息点云,获得稀释后的点云;
s1132:根据二维航线里x轴和y轴的极值和预设范围值分别设置直通滤波中x轴和y轴的限定范围,对稀释后的点云进行裁剪,获得裁剪后的点云;
s1133:获取裁剪后的点云中最高点的高度,将其加上预设高程值得到初始高程值,将初始高程值设置到二维航线里,将二维航线的路径转化为初始三维航线点云;
s1134:对初始三维航线点云的每一个航线点使用k近邻方法计算k个邻近点的平均高程,再加上预设高程值,获得三维航线点云的每个航线点的实际高度,航线点包括拐角航线点和监测航线点;
s1135:将二维航线加上每个航线点点云的实际高度,获得三维航线。
优选的,所述s12的步骤包括:
s121:接收山火疑似区域的坐标,按照坐标值x值大小从小到大排序,得到的顶点序列为p1,p2,...,pn;
s122:将p1和p2放入山火疑似区域凸包中,从p3开始,当当前点在山火疑似区域凸包的逆时针方向时继续放入山火疑似区域凸包中,否则依次删除最近加入山火疑似区域凸包的点,直到新点在逆时针方向,重复这个过程,直到碰到最右边的pn,就求出了山火疑似区域凸包的下凸包;
s123:将pn和pn-1放入山火疑似区域凸包中,从pn-2开始,当当前点在山火疑似区域凸包的逆时针方向时继续放入山火疑似区域凸包中,否则依次删除最近加入山火疑似区域凸包的点,直到新点在逆时针方向,重复这个过程,直到碰到最左边的p1,就求出了山火疑似区域凸包的上凸包;
s124:依次判断山火疑似区域凸包上的点是否都在该凸包上,若不是则删除。
优选的,所述s13的步骤包括:
s131:计算山火疑似区域凸包的重心;
s132:根据山火疑似区域凸包的重心、山火疑似区域凸包的各个顶点坐标和预设安全飞行距离,计算出无人机安全飞行凸包的各个顶点坐标。
优选的,所述s14的步骤包括:
s141:计算三维航线和无人机安全飞行凸包的水平投影,获得二维航线和无人机安全飞行凸包投影;
s142:判断二维航线与无人机安全飞行凸包投影是否相交,若是,则进入s143,若否,则不动作;
s143:计算二维航线与无人机安全飞行凸包投影的交点;
s144:根据二维航线与无人机安全飞行凸包投影的交点依次删除二维航线中与无人机安全飞行凸包投影有交点的单段航线,在无人机安全飞行凸包投影区域重新规划临时航线获得临时三维航线,将临时三维航线添加到三维航线的删除点处,获得更新后的三维航线。
本发明还提供一种基于无人机的山火监测自主航线规划装置,包括:
三维航线规划模块,用于确定待规划航线的起点坐标和终点坐标,根据原始地理信息点云和预设高程值规划三维航线;
山火区域凸包计算模块,用于接收山火疑似区域的坐标,计算山火疑似区域凸包;
无人机飞行凸包计算模块,用于根据山火疑似区域凸包和预设安全飞行距离计算无人机安全飞行凸包;
三维航线更新模块,用于根据无人机安全飞行凸包更新三维航线。
优选的,所述三维航线规划模块包括:
起点终点确定单元,用于确定待规划航线的起点坐标和终点坐标;
二维航线规划单元,用于根据待规划航线的起点坐标和终点坐标、以及原始地理信息点云规划二维航线;
三维航线规划单元,用于根据原始地理信息点云计算地形的高度,根据地形的高度、预设高程值和二维航线规划三维航线。
优选的,所述山火区域凸包计算模块包括:
顶点坐标排序单元,接收山火疑似区域的坐标,按照坐标值x值大小从小到大排序,得到的顶点序列为p1,p2,...,pn;
下凸包计算单元,用于将p1和p2放入山火疑似区域凸包中,从p3开始,当当前点在山火疑似区域凸包的逆时针方向时继续放入山火疑似区域凸包中,否则依次删除最近加入山火疑似区域凸包的点,直到新点在逆时针方向,重复这个过程,直到碰到最右边的pn,就求出了山火疑似区域凸包的下凸包;
上凸包计算单元,用于将pn和pn-1放入山火疑似区域凸包中,从pn-2开始,当当前点在山火疑似区域凸包的逆时针方向时继续放入山火疑似区域凸包中,否则依次删除最近加入山火疑似区域凸包的点,直到新点在逆时针方向,重复这个过程,直到碰到最左边的p1,就求出了山火疑似区域凸包的上凸包;
凸包坐标确认单元,用于依次判断山火疑似区域凸包上的点是否都在该凸包上,若不是则删除。
优选的,所述无人机飞行凸包计算模块包括:
山火凸包重心计算单元,用于计算山火疑似区域凸包的重心;
无人机飞行凸包计算单元,用于根据山火疑似区域凸包的重心、山火疑似区域凸包的各个顶点坐标和预设安全飞行距离,计算出无人机安全飞行凸包的各个顶点坐标。
优选的,所述三维航线更新模块包括:
水平投影计算单元,用于计算三维航线和无人机安全飞行凸包的水平投影,获得二维航线和无人机安全飞行凸包投影;
航线相交判断单元,用于判断二维航线与无人机安全飞行凸包投影是否相交,若是,则进入航线交点计算单元,若否,则不动作;
航线交点计算单元,用于计算二维航线与无人机安全飞行凸包投影的交点;
三维航线更新单元,用于根据二维航线与无人机安全飞行凸包投影的交点依次删除二维航线中与无人机安全飞行凸包投影有交点的单段航线,在无人机安全飞行凸包投影区域重新规划临时航线获得临时三维航线,将临时三维航线添加到三维航线的删除点处,获得更新后的三维航线。
本发明还提供一种基于无人机的山火监测自主航线规划系统,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现上述基于无人机的山火监测自主航线规划方法的步骤。
本发明还提供一种可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于无人机的山火监测自主航线规划方法的步骤。
本申请与现有技术相比,其有益效果详细说明如下:本申请提供的基于无人机的山火监测自主航线规划方法,通过确定待规划航线的起点坐标和终点坐标,根据原始地理信息点云和预设高程值规划三维航线;接收山火疑似区域的坐标,计算山火疑似区域凸包;根据山火疑似区域凸包和预设安全飞行距离计算无人机安全飞行凸包;根据无人机安全飞行凸包更新三维航线的方法,实现了在规划的航线加入地形变化的因素,且实时的根据山火动态更新航线,实现了复杂山区近地模式下的精细化巡检。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于无人机的山火监测自主航线规划方法的流程示意图;
图2为本发明实施例提供的一种规划三维航线的方法流程示意图;
图3为本发明实施例提供的一种计算无人机安全飞行凸包的方法示意图;
图4为本发明实施例提供的一种根据无人机安全飞行凸包更新三维航线的方法流程示意图;
图5为本发明实施例提供的一种基于无人机的山火监测自主航线规划装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
为了使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步的详细说明。
现有技术的航线规划中,无人机巡检整条航线的飞行高度普遍相同,而如果运用在地势复杂的山区巡检,有些低洼地点就可能由于因为高度不达标,出现复飞的情况,这就降低了山区巡检的工作效率,此外由于需要对山区的山火进行监控,还需要实时的根据山火动态更新航线,以实现无人机在复杂山区近地模式下的针对山火的精细化巡检。
如图1所示,本发明实施例提供一种基于无人机的山火监测自主航线规划方法,包括:
s11:确定待规划航线的起点坐标和终点坐标,根据原始地理信息点云和预设高程值规划三维航线;
s12:接收山火疑似区域的坐标,计算山火疑似区域凸包;
s13:根据山火疑似区域凸包和预设安全飞行距离计算无人机安全飞行凸包;
s14:根据无人机安全飞行凸包更新三维航线。
需要说明的是,如图2所示,s11的步骤包括:
s111:确定待规划航线的起点坐标和终点坐标;
s112:根据待规划航线的起点坐标和终点坐标、以及原始地理信息点云规划二维航线;
s113:根据原始地理信息点云计算地形的高度,根据地形的高度、预设高程值和二维航线规划三维航线。
需要说明的是,s111的步骤包括:
s1111:接收待规划航线的起点坐标和终点坐标;
s1112:获取无人机的当前位置坐标;
s1113:将无人机的当前位置坐标与待规划航线的起点坐标和终点坐标中距离最近的点坐标设置为待规划航线的起点坐标,另一个点坐标设置为待规划航线的终点坐标。
具体的,获取无人机的当前位置,即无人机的起飞点,通过欧拉距离公式判断起飞点p(xp,yp,zp)与待规划航线起点s=(xs,ys,zs)和终点e=(xe,ye,ze)哪个更近,如下
需要说明的是,s112的步骤包括:
s1121:计算待规划航线的起点坐标和终点坐标在直角坐标系下x方向的差值、y方向的差值;
s1122:根据预设的临时飞行宽度,以及航线的起点坐标和终点坐标在直角坐标系下y方向的差值计算飞行栅格单元数量,若飞行栅格单元数量为偶数则加1;
s1123:根据航线的起点坐标和终点坐标在直角坐标系下的x方向的差值、y方向的差值,以及飞行栅格单元数量计算每个飞行栅格单元的实际飞行宽度;
s1124:根据每个飞行栅格单元的实际飞行宽度通过递归方法计算拐角航线点;
s1125:判断每相邻两个拐角航线点之间的间距是否大于预设间距,若是,则在该相邻两个拐角航线点之间每间隔预设间距的位置增设监测航线点,获得包括航线起点、拐角航线点、监测航线点和航线终点的二维带状航线。
具体的,首先计算三维水平投影的航线即二维航线,计算待规划航线的起点坐标和终点在直角坐标系下的x,y方向的差值diffx=xe-xs,diffy=ye-ys,diffx,diffy分别表示在x,y方向的差值,计算左右飞行的范围range,range=diffx+r,r为常数,根据实际情况定,并且根据无人机的对地高度和相机的视场角来计算临时飞行宽度step,计算需要几个飞行栅格单元seg,seg=diffy/step,若seg为偶数,seg=seg+1,这里的飞行栅格单元一般为奇数单元,如若飞行栅格单元的个数为偶数个,那么飞行栅格单元的个数增加一个,再通过x和y方向的差值计算每个飞行栅格单元的实际飞行宽度step,
需要说明的是,原始地理信息点云文件是通过激光雷达获取的las文件,s113的步骤包括:
s1131:使用体素滤波下采样稀释原始地理信息点云,获得稀释后的点云;
具体步骤包括:(1)通过voxelgrid滤波器创建体素栅格;(2)每个体素栅格内用体素栅格中的重心点来近似显示体素栅格中的其他点获得稀释后的点云。
s1132:根据二维航线里x轴和y轴的极值和预设范围值分别设置直通滤波中x轴和y轴的限定范围,对稀释后的点云进行裁剪,获得裁剪后的点云;
具体步骤包括:采用指定字段(x,y,z)指定坐标范围进行裁剪,通过航线拐角点、航线的起点坐标和终点坐标进行裁剪。即对点云数据先在x轴裁剪,范围为[最小的x-预设范围值,最大的x+预设范围值],保留范围内的点云,同理对y也是,同理对z也是。
s1133:获取裁剪后的点云中最高点的高度,将其加上预设高程值得到初始高程值,将初始高程值设置到二维航线里,将二维航线的路径转化为初始三维航线点云;
s1134:对初始三维航线点云的每一个航线点使用k近邻方法计算k个邻近点的平均高程,再加上预设高程值,获得三维航线点云的每个航线点的实际高度,航线点包括拐角航线点和监测航线点;
具体步骤包括:(1)对二维航线点云,通过k近邻法里面的kdtree查找距离最近的k个邻近点云,计算k个邻近点云的z轴方向平均值;(2)将k个邻近点云的z轴方向平均值加上高程差值,获得二维航线点云的高度信息;
s1135:将二维航线加上每个航线点点云的实际高度,获得三维航线。
具体的,对二维航线信息加入高程信息,实现近地飞行。根据地形信息计算高程信息,软件用到点云滤波算法和k近邻算法(k-nearestneighboralgorithm,简称knn算法)。主要使用顺序为:使用体素滤波下采样稀释点云,使用直通滤波裁剪不必要的点云,使用k近邻算法寻找当前航线点位置最近的多个点高程信息的平均值。软件通过点云滤波算法里面的voxelgrid滤波器对点云数据进行下采样,具体处理步骤是:1)软件通过voxelgrid滤波器对点云数据创建体素栅格(可把体素栅格想象成微小的空间三维体集合,这里的体素栅格边长设置为1m),2)每个体素内用体素中的重心点来近似显示体素中的其他点,不仅减少了点云的数量,还保持了点云的形状特征,3)缩小点云的范围,软件采用直通滤波对点云数据进行过滤,指定字段(x,y,z),指定坐标范围进行裁剪,可选择保留范围内的点还是范围外面的点。在这里通过航线点起点和终点位置信息,加上一定的参数(这里的参数是计算航线凸包后还要大一点的范围,确保规划航线区域的点云数据存在,而不在规划航线区域的点云尽可能的少),分别进行x,y轴方向的直通滤波,裁剪点云,减少后续计算量,4)软件对滤波后的点云,通过k近邻法里面的kdtree查找距离最近的k个邻居点云,计算k个点的z轴方向平均值,加上高程差信息,就是航线的高度。
需要说明的是,s12的步骤包括:
s121:接收山火疑似区域的坐标,按照坐标值x值大小从小到大排序,得到的顶点序列为p1,p2,...,pn;
s122:将p1和p2放入山火疑似区域凸包中,从p3开始,当当前点在山火疑似区域凸包的逆时针方向时继续放入山火疑似区域凸包中,否则依次删除最近加入山火疑似区域凸包的点,直到新点在逆时针方向,重复这个过程,直到碰到最右边的pn,就求出了山火疑似区域凸包的下凸包;
具体方法为:pi-1,pi为当前山火疑似区域凸包中的最后两个顶点,q为待判定的当前山火疑似区域凸包顶点,
s123:将pn和pn-1放入山火疑似区域凸包中,从pn-2开始,当当前点在山火疑似区域凸包的逆时针方向时继续放入山火疑似区域凸包中,否则依次删除最近加入山火疑似区域凸包的点,直到新点在逆时针方向,重复这个过程,直到碰到最左边的p1,就求出了山火疑似区域凸包的上凸包;
具体方法为:pi-1,pi为当前山火疑似区域凸包中的最后两个顶点,q为待判定的当前山火疑似区域凸包顶点,
s124:依次判断山火疑似区域凸包上的点是否都在该凸包上,若不是则删除;
具体方法为:采用向量的叉积判断,a=(x1,y1),b=(x2,y2),c=(x3,y3),a,b,c分别为当前计算点、当前凸包顶点栈里的第一个凸包点、当前凸包顶点栈里面的第二个凸包点,
具体的,在规划航线后遇到山火需要绕行,则计算出山火范围信息,在一定的安全距离上绕行,这里采用凸包来标识山火疑似区域,通过凸包算法里的基于水平序的andre算法计算如下:在山火疑似区域中,按照x从小到大排序(如果x相同,就按照y从小到大排序),删除水平面海拔低的重复点后得到的序列为p1,p2,...,pn(这里删除海拔比较低的点是防止遇到陡崖),然后把p1和p2放到凸包中,从p3开始,当前点在凸包”前进”方向的逆时针方向时继续,否则依次删除最近加入凸包的点,直到新点在逆时针方向,重复这个过程,直到碰到最右边的pn,就求出了“下凸包”,然后反过来从pn开始再做一次,求出“上凸包”,合并起来就是完整的凸包。具体判断该点是不是在凸包上,用的是向量的叉积判断的,a=(x1,y1),b=(x2,y2),c=(x3,y3),a,b,c分别为当前计算点,当前凸包顶点栈里的第一个凸包点,当前凸包顶点栈里面的第二个凸包点,
需要说明的是,s13的步骤包括:
s131:计算山火疑似区域凸包的重心;
具体步骤包括:(1)将山火疑似区域凸包内所有顶点的均值设置为预测重心点g(x,y),通过预测重心点将山火疑似区域凸包分割成n个三角形x1,x2,...xn,三角形的三个顶点坐标分别为a(x1,y1),b(x2,y2),c(x3,y3),计算每一个三角形的重心gs(xs,ys)坐标为
s132:根据山火疑似区域凸包的重心、山火疑似区域凸包的各个顶点坐标和预设安全飞行距离,计算出无人机安全飞行凸包的各个顶点坐标。
如图3所示,计算航线路径,通过等比例放大不规则多边形的算法规划航线,具体操作如下:需要向外扩张的距离,即预设安全飞行距离为l(l根据实际情况设置),则坐标
需要说明的是,如图4所示,s14的步骤包括:
s141:计算三维航线和无人机安全飞行凸包的水平投影,获得二维航线和无人机安全飞行凸包投影;
s142:判断二维航线与无人机安全飞行凸包投影是否相交,若是,则进入s143,若否,则不动作;
具体步骤包括:
(1)取航线投影上的相邻两个顶点a,b,计算无人机安全距离飞行凸包投影上所有顶点都在ab线的一侧,则该段航线没有与无人机安全距离飞行凸包相交,照此方法计算航线投影所有相邻点的单一航线,计算如下:
a(xa,ya),b(xb,yb),c(xc,yc),
(2)如果凸包所有顶点都在向量ab的同一方向,该航线与凸包没有相交,则不动作,如果单段航线向量积计算有顺时针方向和逆时针方向都有凸包点,那么就与凸包相交,保留与单段航线相交的两个凸包顶点;
s143:计算二维航线与无人机安全飞行凸包投影的交点;
具体方法包括:计算凸包与直线的交点,通过该相似三角形原理计算凸包与航线的交点,设置凸包与航线的交点坐标为p,
s144:根据二维航线与无人机安全飞行凸包投影的交点依次删除二维航线中与无人机安全飞行凸包投影有交点的单段航线,在无人机安全飞行凸包投影区域重新规划临时航线获得临时三维航线,将临时三维航线添加到三维航线的删除点处,获得更新后的三维航线。
具体步骤包括:(1)依次删除二维航线中与无人机安全飞行凸包投影有交点的单段航线。具体方法是:把二维航线里面在y轴方向的满足无人机安全飞行凸包范围[ymin,ymax]的航线点全部删除,[ymin,ymax]分别为无人机安全飞行凸包y的最小与最大值。记录删除航线点的位置,保留删除第一个航线点的前一个航线点简称前置带状航线点,保留删除航线点的最后一个航线点最后一个航线的后一个点简称后置带状航线点。
(2)在无人机安全飞行凸包投影区域重新规划临时航线获得临时三维航线,将临时三维航线添加到三维航线的删除点处,获得更新后的三维航线。具体方法是:判断在二维航线上第一个与无人机安全飞行凸包的交点,记录航线飞行方向。
如果航线飞行方向为逆时针方向,1)当前航线为绕着无人机安全飞行凸包逆时针方向飞行。2)通过s143计算出的单段航线与无人机安全飞行凸包的两个交点,用欧拉距离公式计算找到与前置二维航线点最近的点(无人机安全飞行凸包航线的起点),添加进临时航线里面。3)通过s142保留的与单段航线里的单个航点相交的两个无人机安全飞行凸包顶点,找到无人机安全飞行凸包航线起点在逆时针方向的无人机安全飞行凸包的顶点。具体方法是:ys<ye,y值较大的为凸包航线的第一顶点,ys>ye,y值较小的为凸包航线的第一顶点,ys,ye分别为航线的起点y坐标和航线的终点y坐标。依次把无人机安全飞行凸包顶点按照逆时针方向加入临时航线里面,直到无人机安全飞行凸包顶点全部添加完成。4)后续临时航线规划为绕过无人机安全飞行凸包回到二维航线继续飞行,具体方法,找到无人机安全飞行凸包里面的结束临时航线的顶点,一般为y轴上距离后置二维航线点最近的点。计算步骤:ys<ye,凸包里面y值最大的顶点为凸包航线的结束点,ys>ye,凸包里面y值最小的顶点为凸包航线的结束点,依次把无人机安全飞行凸包顶点按照逆时针方向加入航线里面,直到遇到无人机安全飞行凸包航线的结束点。5)后置二维航线点添加进当前临时航线点内,则临时航线点规划结束。把当前航线规范化(临时航点间距过大的点中间添加监测航线点。后续添加高程信息变成三维航线)。6)把临时航线添加删除航线点的起始位置,生成最终航线;
如果航线飞行方向为顺时针方向,1)当前航线为绕着无人机安全飞行凸包顺时针方向飞行。2)通过s143计算出的单段航线与无人机安全飞行凸包的两个交点,用欧拉距离公式计算找到与前置二维航线点最近的点(无人机安全飞行凸包航线的起点),添加进临时航线里面。3)通过s142保留的与单段航线里的单个航点相交的两个无人机安全飞行凸包顶点,找到无人机安全飞行凸包航线起点在顺时针方向的无人机安全飞行凸包的顶点。具体方法是:ys<ye,y值较大的为凸包航线的第一顶点,ys>ye,y值较小的为凸包航线的第一顶点,ys,ye分别为航线的起点y坐标和航线的终点y坐标。依次把无人机安全飞行凸包顶点按照顺时针方向加入临时航线里面,直到无人机安全飞行凸包顶点全部添加完成。4)后续临时航线规划为绕过无人机安全飞行凸包回到二维航线继续飞行,具体方法,找到无人机安全飞行凸包里面的结束临时航线的顶点,一般为y轴上距离后置二维航线点最近的点。计算步骤:ys<ye,凸包里面y值最大的顶点为凸包航线的结束点,ys>ye,凸包里面y值最小的顶点为凸包航线的结束点,依次把无人机安全飞行凸包顶点按照顺时针方向加入航线里面,直到遇到无人机安全飞行凸包航线的结束点。5)后置二维航线点添加进当前临时航线点内,则临时航线点规划结束。把当前航线规范化(临时航点间距过大的点中间添加监测航线点。后续添加高程信息变成三维航线)。6)把临时航线添加删除航线点的起始位置,生成最终航线。
如图5所示,本发明实施例还提供一种基于无人机的山火监测自主航线规划装置,包括:
三维航线规划模块21,用于确定待规划航线的起点坐标和终点坐标,根据原始地理信息点云和预设高程值规划三维航线;
山火区域凸包计算模块22,用于接收山火疑似区域的坐标,计算山火疑似区域凸包;
无人机飞行凸包计算模块23,用于根据山火疑似区域凸包和预设安全飞行距离计算无人机安全飞行凸包;
三维航线更新模块24,用于根据无人机安全飞行凸包更新三维航线。
需要说明的是,三维航线规划模块21包括:
起点终点确定单元,用于确定待规划航线的起点坐标和终点坐标;
二维航线规划单元,用于根据待规划航线的起点坐标和终点坐标、以及原始地理信息点云规划二维航线;
三维航线规划单元,用于根据原始地理信息点云计算地形的高度,根据地形的高度、预设高程值和二维航线规划三维航线。
需要说明的是,山火区域凸包计算模块22包括:
顶点坐标排序单元,接收山火疑似区域的坐标,按照坐标值x值大小从小到大排序,得到的顶点序列为p1,p2,...,pn;
下凸包计算单元,用于将p1和p2放入山火疑似区域凸包中,从p3开始,当当前点在山火疑似区域凸包的逆时针方向时继续放入山火疑似区域凸包中,否则依次删除最近加入山火疑似区域凸包的点,直到新点在逆时针方向,重复这个过程,直到碰到最右边的pn,就求出了山火疑似区域凸包的下凸包;
上凸包计算单元,用于将pn和pn-1放入山火疑似区域凸包中,从pn-2开始,当当前点在山火疑似区域凸包的逆时针方向时继续放入山火疑似区域凸包中,否则依次删除最近加入山火疑似区域凸包的点,直到新点在逆时针方向,重复这个过程,直到碰到最左边的p1,就求出了山火疑似区域凸包的上凸包;
凸包坐标确认单元,用于依次判断山火疑似区域凸包上的点是否都在该凸包上,若不是则删除。
需要说明的是,无人机飞行凸包计算模块23包括:
山火凸包重心计算单元,用于计算山火疑似区域凸包的重心;
无人机飞行凸包计算单元,用于根据山火疑似区域凸包的重心、山火疑似区域凸包的各个顶点坐标和预设安全飞行距离,计算出无人机安全飞行凸包的各个顶点坐标。
需要说明的是,三维航线更新模块24包括:
水平投影计算单元,用于计算三维航线和无人机安全飞行凸包的水平投影,获得二维航线和无人机安全飞行凸包投影;
航线相交判断单元,用于判断二维航线与无人机安全飞行凸包投影是否相交,若是,则进入航线交点计算单元,若否,则不动作;
航线交点计算单元,用于计算二维航线与无人机安全飞行凸包投影的交点;
三维航线更新单元,用于根据二维航线与无人机安全飞行凸包投影的交点依次删除二维航线中与无人机安全飞行凸包投影有交点的单段航线,在无人机安全飞行凸包投影区域重新规划临时航线获得临时三维航线,将临时三维航线添加到三维航线的删除点处,获得更新后的三维航线。
本发明还提供一种基于无人机的山火监测自主航线规划系统,包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序以实现上述基于无人机的山火监测自主航线规划方法的步骤。
本发明还提供一种可读存储介质,可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述基于无人机的山火监测自主航线规划方法的步骤。
图5所对应实施例中特征的说明可以参见图1-图4所对应实施例的相关说明,这里不再一一赘述。
以上对本发明实施例所提供的一种基于无人机的山火监测自主航线规划方法、装置和系统进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或方法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。