02 四旋翼无人机自主避障技术的研究---避障算法研究与改进

1.引言

上一篇文章详细叙述了避障系统所需要环境以及平台的搭建过程,通过上章的工作,无人机避障系统搭建完成,无人机可以检测路径上的障碍物,下一步需要在障碍物信息基础上运行算法得到安全的路径,这篇文章将对算法进行分析研究,本次所作研究是基于定高模式下的无人机自主飞行过程中的避障算法研究,在经典路径规划算法的基础上,分析算法存在的某些缺陷,针对具体问题,提出针对性的解决问题的方法的分析以及设想。

探测到障碍物以后,无人机有三种常见的避障处理方法:

(1)暂停或结束飞行,比如悬停等指令,返航或降落;

(2)规划绕障,根据预先存储的航线绕开;、

(3)自主绕障,飞控根据障碍自主修改航线。

暂停或结束飞行是最基本的处理方式,比较简单安全,而遇到大障碍时也必须这么做,规划绕障适用于小障碍,这种方法经济简单而且可靠性高,需要人参与日常勘测。自主绕障则需要飞机有避障算法,在机上重新生成航线。

无人机避障算法实质时对无人机飞行过程中路径规划的算法,根据无人机对飞行环境是否可知,避障算法大致分为两类:全局路径规划与局部路径规划,选择避障算法时,不仅仅要考虑算法有效性,还要考虑无人机自身的物理性能。

全局路径规划属于静态规划,是无人机在运动前已知飞行的所有环境信息,根据飞行路径上的障碍物信息,给出一条从出发位置到目标位置的安全路径,全局路径规划常用来寻找路径最优解,计算量偏大,实时性相对比较差;局部路径规划属于动态规划,是无人机飞行前对于飞行环境位置或局部位置,无人机在飞行过程中根据检测传感器实时获取路径上的障碍物信息实时计算路径,局部路径规划计算量偏小,实时性较好,但是过于依赖检测条件,对环境信息掌握不完全,会出现震荡现象。

本文主要分析A*算法与人工势场算法在避障方面的应用,分析全局路径规划与局部路径规划在无人机避障中起到的作用。

2.A*算法

A*算法,俗称A星算法,属于全局路径规划方法的一种,同时是一种最短路径搜索算法,在全局路径规划算法中效率相对较高,常被用于游戏开发中的路径规划,近些年逐渐被研究用于机器人以及无人机的避障应用中。

2.1 算法设计与实现

A星算法在Dijkstra算法基础上被提出,是经典的启发式算法之一,算法基础构成有:搜索区域、路径排序、开发列表以及启发函数。启发函数定义为


启发函数

其中,n表示当前机器所处的节点位置,f(n)表示当前节点的总启发函数,g(n)表示初始节点到第n个节点实际的路径距离,h(n)表示第n个节点到目标节点的最佳路径的估计距离,当探索下一个节点n+1时,示意图如图所示:


02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第1张图片
启发函数示意图

h(n)决定了 A 星算法的效率,在上述函数起到了主导性的作用,如果 h(n)能够准确的反映 n 节点与目标节点之间的距离,算法搜索到的路径就无限接近于最短路径。当 h(n)= 0 时,f(n)=g(n),此时 g(n)表示起始节点 S 到目标节点 M 的实际距离;当 h(n) 小于或等于节点 n 到目标节点 M 的路径代价时,算法的效率随着 h(n)的减小而降低, 因为 h(n)越小,算法中经过扩展而所需要计算处理的节点数越多,所以效率随之降低, 当 h(n)精确等于节点 n 到目标节点 M 之间的真实距离,此时算法运行效率最高,且所寻到的路径近似于最短路径。

对于函数 h(n),距离计算常用以下几种:曼哈顿距离、切比雪夫距离、欧式距离,具体定义不再叙述,对于平面上的两点起始点为(x1,y1),目标节点为(x2,y2),计算两点间的距离 h(n)有如下几个计算方式:


02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第2张图片

算法设计时使用栅格法建立搜索区域,将载体的在环境中的运动模拟为物体在栅格地图中的移动探索,将搜索区域建立为二维空间数组,障碍物与目标点位置在区域中的位置保持不变。

本次算法设计中,我们选择使用欧式距离公式,所以启发函数可以写为:


A星算法运行时,首先在搜索区域前建立两个表,即前面提到的openlist与closelist, openlist 用于存放等待搜索的节点,close list 用于存放障碍物以及探索过的节点,算法运行阶段,开始探索路径,重复的在两个表之间存放探索过的节点,针对下图,其中蓝色表示起始节点,红色表示目标点,黑色表示障碍物,算法避障过程中路径搜索步骤如下:


02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第3张图片
A星算法演示


02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第4张图片


02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第5张图片

使用 A 星算法用于路径规划时,探索路径只能向周围 8 个方向进行延伸,如图所示, 经过探索之后选取新的父节点,循环探索,知道找到目标点或者任务失败。


02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第6张图片
A星算法探索路线

在栅格地图上,经过 A*算法搜索路径,最终形成实际的安全避障路径并成功到达目标点位置,经探索形成路径示意图如图所示。


02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第7张图片
形成的路径

2.2 缺陷分析

这种搜索路径的方法常被称为 8 邻域法,这种算法形成的路径下,无人机只能向 8 个方向移动,在栅格地图中,经过搜索以后形成的路径如果存在夹角的话,那夹角约为 45 度,这样形成的路径转折点较多,不够平滑,且因此方法的限制,算法搜索的路径可能不是最优路径;A*算法属于全局路径规划算法,所以对于环境的感知检测要求极高, 相比于无人机未知的飞行环境,算法运行局限性极高。

3. 人工势场算法

人工势场算法(Artificial PotentialField,APF)是斯坦福大学教授Khatib提出的一种适用于无人驾驶设备的路径规划算法,最初是用来解决机械手及机器人实时避障问题的,APF 算法基本思想是在机器活动的地图范围内,人为的构建一个虚拟的力势场,将载体在空间上的运动转换为载体在人造势力场中的移动,最终载体在势力场中所受到的合理的牵引下到达目标位置。

在人为虚拟建立的这个势场中,将载体目标点位置以及障碍物简化为地图中的质点,目标位置点处建立一个引力势场,在地图上存在一个引力关系,方向由受力物体指向目标位置点,同时,障碍物位置点建立一个斥力势场,在地图上存在斥力,方向由障 碍物指向载体,如图所示。


02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第8张图片
人工势场示意图

当无人机移动在地图上时,一方面受到来自目标位置的吸引力,另一方面当进入到斥力影响范围时,无人机受到来自一个或者多个障碍物的斥力,在无人机移动过程中, 所受到的引力与斥力的大小与方向时刻发生变化,如图为无人机受力分析图。


02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第9张图片
受力分析

3.1 建立势场

人工势场有多种不同形式的势场函数描述,形成的避障路径会因为势场函数不同形式而有不同的变化,常用的描述势场的函数为梯度势场,此方法采用与位置相关的势场函数规划路径。



算法研究过程中,无人机虚拟为二维坐标中的点X=(x,y),无人机所受的引力以 及斥力随着与障碍物即目标点之间的距离变化而变化。

(1)引力势场


02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第10张图片


02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第11张图片


02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第12张图片


02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第13张图片


02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第14张图片


02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第15张图片

3.2 缺陷分析

与其他算法相比,人工势场算法有明显的优势,人工势场算法函数设计相对简单,核心即为虚拟势场的计算,运算复杂度低,属于局部路径规划算法,能够实时规划路径,且避障路径规划相对平滑,特性与无人机整体特性比较符合,适合应用于无人机的避障 路径规划,但同样因为算法核心较为单一,不可避免的存在部分缺陷,具体缺陷有如下几个: 

(1)局部最优解

这种现象又称为死锁,当无人机、障碍物以及目标点三者处于同一直线方向时,如图所示,无人机受到的目标点的引力以及障碍物的斥力处于同一直线,方向相反, 此时合力无法牵引无人机运动,无人机会在当前位置徘徊。


02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第16张图片
死锁示意图

(2)目标不可达问题 

此类问题又被称为GNRON问题,是人工势场算法缺陷问题中比较典型的一种, 顾名思义,此类问题指无人机无法到达目标点,引起这个问题的原因主要有以下这两点: 

1)目标点处于障碍物的影响范围之内 当目标点在障碍物的影响距离之内时,如图描述,无人机靠近目标点,同时也 靠近了障碍物,此时无人机所受引力减小,而来自于障碍物的斥力增大,斥力大于引力,合力方向并非指向目标点,无人机无法在合力的牵引下到达目标点。 

2)障碍物环境过于复杂,无人机通道狭窄 无人机飞过通道相对宽敞一点时,由于两侧障碍物形成的斥力势场影响,无人机能够勉强飞过此区域,只是飞行过程中,机身会在飞行通道中左右徘徊;而当无人机飞行路径障碍物林立且通道距离狭窄时,障碍物之间斥力场相互影响,引力作用几乎可以忽略,无人机受到多个大小相同,方向相反的斥力,无人机无法从斥力场中间穿过,而由于两侧无其他空间,导致无人机只能在障碍物附近徘徊。


02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第17张图片
影响示意图

3.3 算法改进

上一小节分析了人工势场法的几点缺陷,本节主要内容为针对算法的缺陷提出解决的方案。 (1)局部最优解 

当无人机与障碍物以及目标点三者处于同一直线上时,造成该类问题的主要原因时引力以及斥力的方向处于同一直线,所以针对方向问题,提出当无人机处于此类环境之 下时,首先检测到如果引力与斥力方向夹角为180 度,则认定无人机进入死锁判断,然后对引力增加一个增益系数,以角度形式附加,临时改变引力的方向,使无人机顺利在修改后的势场的引导下脱离在障碍物附近徘徊的情况,为不影响其他点的运行情况,仅在检测到缺陷问题时,引力函数更改为改进的,其他情况下引力保持原有函数不变,具体修改公式如下



(2)目标不可达问题 

GNRON问题的产生是因为当目标在障碍物的影响距离内时,总势场的全局最小值 不在目标位置,就此类问题海内外研究学者提出多种解决方法,研究方向主要从修改势场函数模型或者综合其他路径规划算法两方面展开,其中,修改势场函数是从结构上改变算法,已达到局部优化效果,期望能够减少或者消除此类局部极小值;综合其他算法是从局部极小值点方向出发,考虑在无人机遇到局部极小值时,通过不存在此类问题的算法与人工势场融合,使无人机跳出问题范围。 

一种解决 GNRON 问题的方法是综合其他路径规划算法,比如论文中提到的方法,综合 A*算法与人工势场法解决算法过程中的局部极小值点问题,利用 A*算法规划路径,作用于局部极值点,从而避免此类问题,顺利摆脱极小值点,然后继续使用人工势场法进行避障路径的计算,此种方法优势在于综合其他算法解决当前算法的缺陷,取长补短,算法相互融合,在条件判断下选择合适的算法进行路径规划。

还有一种解决方法是修改势场函数类,解决方法可以从修改斥力势场函数入手,新的斥力势场函数将无人机与机器人之间的相对关系作为考虑因素,使得总势场范围内, 全局最小值总是在目标点,修改之后的斥力势场函数为



02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第18张图片

m表示一个大于0的可调节参数数据。

除以上两种以外,本文还提出一种修改引力势场函数的方式,主要针对目标点被障碍物影响时,无人机无法到达目标点的问题,因为在地图创建以后,势场中有多个障碍物,相应的会存在多个斥力势场,但是势场中只有一种引力势场,将引力类比于斥力,增加一个目标物的影响范围,在无人机未达到目标点影响范围时,引力势场保持之前的不用变化,而当无人机进入目标点影响范围时,叠加引力分量,增加引力,使得引力足够大,以减小障碍物对无人机的作用,从而能够在足够大的引力的牵引作用下达到目标点,修改后引力势场函数为


02 四旋翼无人机自主避障技术的研究---避障算法研究与改进_第19张图片

4. 本文小结

本章主要研究了两种无人机避障路径规划算法:A*算法与人工势场算法。首先,介绍了 A*算法,并详细描述了 A*算法的设计与实现,针对 A*算法适用到无人机避障路 径规划中,基于无人机机动性以及固有特性考虑分析了 A*算法的缺陷,并介绍了针对 缺陷的解决办法,然后详细描述了人工势场法势场函数的建立,并在使用过程中提出人工势场算法存在的几个比较明显的缺陷,具体分析缺陷产生的原因,并针对部分问题提出了具备可行性的解决方法。

你可能感兴趣的:(02 四旋翼无人机自主避障技术的研究---避障算法研究与改进)