郭银景,刘 琦,鲍建康,徐 锋,吕文红
1.山东科技大学 电子信息工程学院,山东 青岛266590
2.青岛智海牧洋有限公司,山东 青岛266590
3.山东科技大学 电气与自动化工程学院,山东 青岛266590
4.山东科技大学 交通学院,山东 青岛266590
自主水下潜航器(Autonomous Underwater Vehicle,AUV)具有快捷灵活、活动领域广阔、隐蔽性好等特点,在军事和民用领域得到了广泛的应用[1-2]。避障就是当AUV上的传感器检测到周围出现障碍物时[3],能够以最快的时间和最小的成本完成躲避障碍物的动作,并且在成功避开障碍物之后按照航线继续前进。
应用避障算法解决问题的具体步骤如下:首先要根据AUV所处的海洋环境完成模型的建立,然后依据所建立的模型和全局信息完成全局路径规划,当全局规划的线路上出现障碍物时则进行局部路径规划完成避障[4]。随着算法的改进和升级,人工势场法、遗传算法、模糊逻辑算法等被广泛应用于避障领域[5-6]。李建文等[7]为了解决遗传算法在规划避障路径时存在的计算数据量庞大和有尖峰现象等问题,提出了将障碍物简化为多边形并进一步分成三角形的改进型方法。Pan等[8]为了提高遗传算法寻找最优避障路径的效率和精度,提出了遗传蚂蚁混合算法,通过该算法可缩短寻优时间,提高算法效率。Sun等[9]针对水下机器人移动避障过程中存在的不确定性,提出了一种新型的带加速/中断(A/B)模块的模糊推理系统,所设计的推理系统能够成功、有效地完成三维避障路径规划。为了使规划出来的避障路径最优,Sun等[10]在文献[9]的基础上对原来的模糊集进行优化,克服了模糊边界主观性大的问题,将优化策略与模糊设计相结合,可以保证生成一条最优的三维避障路径。Ming等[11]提出了一种新的自适应蚁群算法和基于粒子群优化融合的模糊规则优化算法,通过该算法可以实现AUV在复杂水下环境中的智能路径规划。
但是遗传算法和模糊逻辑算法均存在计算时间长且计算量大的问题[6,12],并且模糊控制算法具有很大的偶然性,难以实现水下精确避障。而人工势场法具有算法结构简单明了、反应速度快捷等优势,因此该算法在AUV的避障路径规划领域中得到了广泛的应用[13],并逐渐成为主流的避障算法。
人工势场法是Khatib于1986年提出的一种虚拟力法[14],该方法可以将AUV在水下的运动视为一种在虚拟人工受力场中的运动,通过所生成的势场进行路径规划。
人工势场法的原理就是,在障碍物周围和不希望AUV进入的区域生成斥力势场并对其产生斥力[15],在目标点位置和希望AUV进入的区域生成引力势场并对其产生引力,对AUV所受的引力和斥力进行矢量合成,在合力的作用下使得AUV沿着无障碍物的路径运动[16]。AUV在人工势场中受到的作用力如图1所示。
图1 AUV在人工势场中的受力分析
定义合理的引力势场函数和斥力势场函数是保证人工势场法得以应用的关键,通过对势场函数进行负梯度运算可以求得引力函数和斥力函数。通过引、斥力函数可以计算出AUV在不同环境中受到的引力和斥力,进而求得合力[17-18],势场模型如图2所示。引力势场函数和斥力势场函数的常规定义如下。
图2 引力和斥力势场模型图
常规的引力势场函数定义如式(1)所示:
式中,katt为大于0的引力场系数常量,ℓ(x-xg)为AUV距离目标点的直线距离。
特朗普此次挑起中美贸易战,直接原因在于中美贸易的失衡,而其深层目的则是为了试图重演1980年代美日贸易战以遏制中国复兴,同时在11月美国国会中期选举前拉票。
Uatt(x)的形状类似“低谷”,目标点处具有最低的引力势能。对引力势场函数进行负梯度运算可得引力函数,如式(2)所示:
常规斥力势场函数定义如式(3)所示:
式中,krep为大于0的斥力场系数常量,ℓ(x,x0)为AUV距离障碍物的直线距离,ℓ0为障碍物的最大影响范围。
Urep(x)形状类似“高地”,障碍物处具有最高的斥力势能。对斥力势场函数进行负梯度运算可得斥力函数,如式(4)所示:
因此,AUV受到的合力为F合=Fatt+Frep。
人工势场法就是利用合力来控制AUV的运动方向。由式(1)可知目标点距离AUV越远引力势场势能就越大,在目标点处引力势能为0。由式(3)可知障碍物距离AUV越近斥力势场势能就越大,在障碍物处斥力势能为无穷大[19]。在合力的作用下,引导AUV向目标点运动并且可以顺利避开运动路径上的障碍物[19],但是当人工势场法应用于水下避障时会存在以下几个问题:
(1)未考虑复杂水下环境的问题。水下环境中存在许多形状不规则的静态障碍物(如海底礁石等)和复杂多变的动态障碍物(如其他AUV等[20]);水下环境与地面环境相比有着本质的区别,在海洋中海流对AUV的影响远大于陆地上风速对机器人的影响[21]。因此,AUV在航行过程中,不仅要准确地避开复杂的水下障碍物,还要考虑海流因素的影响。
(2)目标不可达问题。目标不可达问题又称GNRON问题[22],当AUV接近目标点时,其所受到的引力逐渐减小,若此时目标点恰好在障碍物的影响范围内,其所受到的斥力却在增大并且与引力方向相反,就会使得AUV停在某一点或发生抖动现象,导致无法到达目标点[17]。
近年来,国内外的研究人员针对上面提出的三个问题,对人工势场法进行了一定的改进和优化,改进后的人工势场法可以提高AUV顺利准确地完成避障路径规划任务的能力,并且提高了避障路径规划的质量[23]。王芳等[25]用栅格法进行环境建模,并且根据障碍物对不同节点的影响程度改进人工势场法。此方法可以在多障碍物的环境中完成避障,但未考虑动态障碍物的影响,而且使用栅格法会极大地增加计算量。李沛伦等[26]在传统人工势场的基础上引入速度势场函数,将静态势场转变为动态势场,并且分析了定常海流对避障路径规划的影响,但是未研究复杂海流对路径规划的影响。
解决此类问题需要考虑多障碍物复杂环境因素、AUV自身因素和海流等因素[27]。在考虑复杂不规则障碍物和AUV自身因素方面,杨健等[13]将AUV在进行变加速运动和减速转向运动时的运动特性考虑到势场模型之中,在进行避障路径规划时既考虑了障碍物等因素,也将AUV的自身特性加入其中。经过改进的人工势场可以保证AUV在单障碍物和复杂多障碍物环境中均可以成功避开障碍物到达目标点。但是面对复杂多障碍物环境,AUV需要进行多次的变速转向运动,因此在该环境下需要较长的避障路径和避障时间。文献[28]提出一种基于人工势场法的H∞的避障控制方法。该方法通过设置期望深度来防止AUV与海床或障碍物相撞,并通过高度控制器设置一个最大操作深度来限制AUV的最大下潜深度。该方法对所有海底地形遵守所需深度和高度的安全限制,不会发生任何碰撞。文献[29]将机器人正面障碍物的速度信息添加到斥力模型的建立中,该信息会对机器人产生额外的控制斥力,在新斥力的作用下可以使机器人平稳地绕过障碍物顺利到达目标点。经过改进的人工势场法在多障碍物的复杂动态环境中可以达到较好的避障效果,并且可以避免机器人进入局部极小值点。文献[30]利用动态窗口法对势场法进行改进,通过动态的检测函数可以提前发现局部陷阱并顺利避开,还通过提高最小危险系数和考虑障碍物速度等信息的方式来改进势场函数。此改进方法可以保证机器人在复杂环境中在遇到动态障碍物时及时准确地做出避障判断。目前大部分改进算法的适用环境是环境中的部分信息已知且环境中随机移动的障碍物较少[31],对于完全未知的环境缺乏进一步的研究,因此未来的工作可以扩展到信息未知和存在多个随机移动障碍物的环境中。
在考虑海流因素影响方面,文献[16]和文献[32]为了实现对动态障碍物的躲避,引入速度势场函数将静态势场转变为动态势场,并且考虑了水平方向上的定常海流对水下滑翔机运动的影响,实验结果表明该方法在有海流的情况下可以成功避开静态和动态障碍物。文献[33]和文献[34]提出了一种将改进的人工势场法和速度合成算法进行结合的路径规划算法。该方法既可以在存在海流的环境下避开海底复杂障碍物,又可以缩短到达目标点的时间和路径长度,提高避障路径规划的效率。在速度合成算法中,AUV的合成速度分析如图3所示,考虑海流因素前后的避障路径规划如图4所示。Cao等[35]在文献[33]的基础上提出一种结合置信函数(BF)的速度矢量综合方法,除了采用速度矢量综合法调整AUV运动方向抵消海流影响外,还采用BF方法对非碰撞路径进行动态规划,这样可以指导AUV实现更高效、更自适应的路径规划。文献[24]仅考虑了恒定海流的影响,不能完全适应存在复杂可变海流的海洋环境。王奎民等[36]综合考虑海洋中复杂障碍物和海流因素对避障路径规划的影响,将复杂海流和涡流等强影响因素考虑到势场模型中,通过改进的势场法可以极大地提高AUV对海洋环境的适应性。以上改进算法都只考虑了定常海流对避障路径规划的影响,存在一定的局限性。随着AUV续航能力的不断提升,未来AUV所执行的任务一定能突破有限海域和特定时间的限制,那时海流的方向和大小可能不再恒定不变,因此未来需要考虑在时变海流下如何高效地完成避障路径规划任务。
图3 考虑海流因素时的AUV合成速度
对于目标不可达问题可以通过改变势场函数的常规定义或修正斥力势场函数的公式参数等方法来解决[38]。在改变势场函数的常规定义方面,Li等[32]提出一种用指数函数来定义新的势场函数的方法。该方法可以有效地解决常规定义的势场函数中存在的梯度变化快、导致错误避障判断的问题,使用指数函数定义势场函数可以提高对避障路径稳定性的控制效果,但是此方法仅考虑了固定目标点的情况,存在一定的局限性。文献[37]和文献[38]提出加入机器人与目标点的相对距离和相对速度,以及机器人与障碍物的相对角度、速度和加速度作为约束条件对势场函数进行改进,可以有效地解决因陷入局部最优造成的目标不可达问题,但是该方法存在参数精度低,且解决问题的时间过长等问题。
在修正斥力势场函数方面,文献[39]和文献[40]将目标点和AUV之间的直线距离作为调节因子加入到斥力势场函数中对其进行修正,可有效地解决目标点在障碍物附近时的目标不可达问题,但是当调节因子过大时会使AUV不受斥力,从而导致避障失效。郜辉等[41]提出一种动态改进障碍物影响范围的方法,可以使目标点摆脱障碍物的影响,从而解决目标点与障碍物距离很近时的目标不可达问题,算法改进前后的路径对比如图5所示。Geva等[42]通过在斥力势场函数中添加动态斥力增益因子来解决目标不可达问题。该因子根据障碍物对机器人影响程度的不同,其值大小也会存在差异,因子数值的大小可以通过模糊控制器进行动态调节。针对目标不可达问题,绝大多数的改进方法都是在目标点固定的情况下实现的,若让AUV到达一个动态目标点,则以上的改进方法将不再有效。因此未来应考虑将目标点与AUV的相对速度加入到势场模型当中,从而得到一个更加完善的势场模型,在该模型下无论设置固定的目标点还是动态的目标点,AUV均可以顺利到达。
图4 考虑定常海流因素前后的避障路径规划
图5 人工势场法改进前后避障路径对比
上述几种改进方法的对比如表1所示。
表1 针对目标不可达问题改进方法对比
解决此类问题主要通过设置虚拟引导点(包括虚拟目标点和障碍物)引导AUV逃离局部极小值点[43]。郜辉等[41]提出在局部极小值点处随机产生一个子目标点,子目标点可以产生一个吸引力使机器人逃出局部极小点位置,算法改进前后的路径对比如图6所示。除了设置子目标点外,还可以设置虚拟障碍点[44],潘洲等[45]根据机器人和目标点连线与障碍物两侧的夹角不同,分成三种情况动态添加虚拟障碍点,不仅可以减少避障路径规划时间,提高规划效率,而且也减小了完成路径规划的代价。Azzabi等[46]提出一种新的排斥势函数,其可以在检测到局部极小值时激活虚拟逃逸力,使机器人能够摆脱死锁位置,顺利地避开目标方向上的障碍物。为了使逃逸力的方向更加明确,Liang等[47]在对势场函数进行改进的基础上,提出了一种扇形划分的方法,即以局部极小值点为圆的中心,将圆等分成60个扇形,确定障碍物所属的扇形区域a,然后将虚拟障碍物设置在(a+1,a+15)范围内,从而对机器人产生一个额外的斥力,使其成功跳出局部极小值点。通过扇形划分的方法可以使新斥力的方向更加精准,并且等分的角度越小斥力的方向就越精确,但是如果等分的角度过小,将会延长机器人扫描并确定障碍物所在区域的时间,从而在一定程度上影响人工势场法避障的实时性。
图6 增加子目标点前后的避障路径对比
为了摆脱添加引导点的复杂性,Milad等[48]提出了一种势场填充策略来避开局部极小值点,即对全局进行搜索,若发现局部极小值点,就对此点的势场进行填充,从而消除该局部极小值点。为了防止搜索过程进入一个死循环,还设置了最大搜索时间,当达到最大搜索时间或到达目标点时,停止搜索。另外,本文还提出了利用回归搜索算法对避障路径进行优化,但是该方法存在振荡和路径平滑度不足的问题。
上述几种改进方法的对比如表2所示。
表2 针对局部极小值问题改进方法对比
近几年来,国内外研究人员提出通过组合算法的方式来提高人工势场法的避障效果[50]。组合避障算法既保留了人工势场法原理简单、反应迅速的优点,又可以在一定程度上克服算法本身的缺点,对避障路径进行进一步的优化[47]。
Song等[51]针对传统人工势场法本身存在的缺陷,除了通过添加速度矢量对势场函数进行修改外,还利用模糊控制算法,根据不同的障碍物环境对斥力势场的影响因素进行实时的调整。这种组合算法的结构简单,容易实现,且寻找最优避障路径效果较好,可以提高机器人躲避障碍物的自适应性和实时性。潘无为等[52]针对多AUV的避碰与避障控制问题,提出了一种将人工势场法与虚拟结构相互结合的多AUV避障控制算法。该算法可以使得多AUV在保持编队阵型的基础上,避免与行进过程中遇到的障碍物以及AUV之间的碰撞。段建民等[15]除了改进人工势场模型之外,还结合遗传算法中的并行搜索方法寻找最优避障路径。该方法能够在复杂的静态和动态环境中实现避障,并找到最佳或接近最佳的避障路径。组合避障算法与传统算法的优缺点对比如表3所示。
表3 避障算法优缺点对比图
AUV避障算法需要在传统机器人避障算法的基础上考虑海洋因素的影响,这往往难以同时兼顾实时性、复杂环境约束、水下机器人性能约束等要求,人工势场法由于原理简单等优势,被广泛应用于避障领域[55]。经过国内外研究人员对人工势场法的不断改进,已经可以基本解决目标不可达和局部极小等问题,将海流因素考虑进人工势场法中是保证该算法适用于AUV水下避障的关键,国内外专家也针对定常海流和涡流的影响,对势场法进行了相应的改进,并且取得较好的避障效果。未来可以从如下几方面对人工势场法进行改进:
(1)AUV陷入局部极小值点从而导致无法到达目标点问题是人工势场算法存在的主要问题,并且国内外提出的许多改进方法大多是为了解决AUV、目标点和障碍物共线时造成的局部极小值问题,但是水下环境复杂,多障碍物同时存在的情况相当普遍,而目前针对多障碍物所造成的局部极小值问题的研究相对较少。因此未来需要构建更加完善的势场函数模型,从根本上解决局部极小值问题。
(2)在实际应用中,带有海流约束的避障路径规划问题广泛存在。对于AUV而言,将时变海流约束条件加入到势场函数模型中是十分必要的,但是势场模型的基本特征增大了其加入的难度,若能通过适当的方式将时变海流的影响转化到目标或障碍物上,并通过引力函数和斥力函数直接表现出来,将有效地解决此类问题。
(3)每一种避障算法都有各自的优缺点和使用范围,为了实现优势互补,国内外研究人员更倾向于将多种算法进行融合,经过算法融合可以找到局部路径规划的最优解。如文献[56]和文献[57]提出将势场法与模糊逻辑算法进行相互配合,可以在保证完成避障任务的同时优化避障路径,使规划的路径更加光滑精确。未来可以将局部路径规划算法与全局路径规划算法进行相互融合,使得避障路径的规划体系更加完善。
(4)人工势场算法自身存在的一个不足就是不具备寻优的功能,通过人工势场法生成的路径可以实现避障任务但未必是最优避障路径[16]。因此,可以将人工势场法未来的研究方向放在如何通过自身算法的改进实现寻找最优路径的功能。目前人工势场法主要是通过与优化算法进行融合来寻找全局最优路径,在未来的研究中,可以考虑在规划避障路径时将AUV受到的作用力和避障时所做的功同时考虑,使得到的结果更加接近于最优解或近似最优解。