基于改进人工势场算法的无人船路径规划
作者: 叶军林 何建林 陈孟祥
摘要:针对无人船路径规划中传统势场算法存在的问题,如容易进入局部极小点、航行路径不平滑、在复杂航行环境中目标不可达等,提出了一种改进的人工势场方法。通过增加距离影响因子和改进斥力场函数,解决了上述问题;在无人船行进过程中,通过动态调整斥力参数,并增加逃逸力,使目标点成为全局势场中的最小点;通过在Matlab平台上进行仿真实验,验证了改进后的人工势场方法的有效性。实验结果表明,改进的方法能够克服目标不可达问题和局部极小值问题,同时在计算量和路径规划步数方面具有一定的优势。
关键词:路径规划;人工势场;局部极小值;斥力函数
中图分类号: TP391. 9 文献标识码:A
文章编号:1009-3044(2023)35-0010-06
开放科学(资源服务)标识码(OSID)
0 引言
无人式水面航行器也称水面无人船/艇(Unmanned Surface Vehicle,USV) ,问世已有 70余年的历史,但相比于无人机/车系统,无人船/艇是一种较为陌生的无人化、智能化作业平台。无人船一般用于代替人员执行各种水域复杂任务,其中路径规划技术在无人船舶自主导航中具有极其重要的应用价值。作为核心技术,路径规划旨在解决无人船在存在固定或移动障碍物的环境中如何安全航行的问题。其主要任务是搜索出一条从起点到目标点的路径,该路径既要保证安全无碰撞,又要达到最优或接近最优的效果。
当前,路径规划技术已经相当成熟,并且广泛应用。其中,一些常见的规划方法包括Dijkstra算法、A*算法、人工势场法、模糊算法、粒子群算法、遗传算法、非线性模型预测算法,以及这些算法的改进和融合。Dijkstra算法的优点在于较高的最短路径搜索成功率,然而,该算法的缺点也显而易见。由于需要遍历所有顶点,算法效率较低。A*算法的优点是算法较为简单,易于实现,并且扩展节点数量较少。它能够保证全局最优解的收敛性,然而该算法的缺点是启发函数h(n)的选择不容易。如果启发函数h(n)涉及的信息越多,计算量就会增加,从而导致算法效率降低;相反,如果启发函数提供的信息较少,则算法的准确性可能较差。模糊控制法是一种利用人类已有的驾驶经验结合模糊的环境信息的方法,通过查询表格来确定实时的路径规划策略。然而,这种方法在避障方面的准确度较低。粒子群算法具有随机搜索算法的特点,然而对于高维度的复杂问题,粒子群算法可能会出现早熟收敛现象,导致收敛性能较差,并且无法保证达到最优解。
相较于其他算法,人工势场法在实际无人船路径规划问题中具有较快的反应速度、较高的实时性和较少的计算量,因此在实践中得到广泛应用。然而,在复杂的航行环境中,无人船可能会出现目标不可达和局部最小点问题,导致行进路线规划失效[1]。
针对人工势场法的缺点,国内外学者提出了多种解决方案。其中包括在使用原势场模型的同时消除或逃离局部极小点,构建新的势场函数,以及与智能优化算法相结合[2]。在本文中,采用指数函数构建了一个新的势场函数模型,并根据无人船与障碍物距离的实时调整势场函数的参数,判定无人船陷入局部极小点时增加逃逸力。通过这种方法,解决了传统人工势场法中目标不可达和局部最小点问题,实现了对无人船路径的实时规划。
1 传统人工势场算法在海域环境中的应用
1.1 目标任务
图1为南方某港口,港口内有工作繁忙的船只以及障碍物。现有一艘无人船需要穿过众多障碍物行进到出海口D点完成采集信息任务,采用传统人工势场算法实现该艘无人船从起始点A到目标终点D的路径规划,航迹如图中黑色虚线所示。
1.2 传统人工势场算法做路径规划
人工势场法是通过模拟粒子在势场中的运动,将无人船的路径规划问题转化为在势场中的运动问题。在人工势场法中,通常将目标点视为吸引子(attraction) ,将障碍物视为斥力(repulsion) 。无人船会受到目标点的吸引力和障碍物的斥力影响,从而生成一条避开障碍物、朝向目标点的路径。人工势场法包括吸引子势场和斥力势场两个基本组成部分。吸引子势场(Attraction Field) :吸引子势场用来引导无人船朝向目标点,通常采用逆距离的方式定义吸引子势场,即目标点越近,吸引力越强;这样,无人船会受到目标点的吸引力,朝着目标点移动。斥力势场(Repulsion Field) :斥力势场用来避开障碍物,障碍物被视为斥力源,斥力的大小和距离成反比;当机器人接近障碍物时,斥力增大,使无人船受到斥力的作用而避开障碍物。通过在空间中叠加吸引子势场和斥力势场,无人船会受到吸引力和斥力的综合影响,从而产生一个合适的移动方向。无人船根据当前位置和势场的梯度信息,选择一个最优的方向进行移动,实现路径规划,如图2所示。
1.3 传统人工势场算法模型
无人船能从港口起始点A航行到目标终点D,是因为无人船航行过程中受到吸引子势场的作用,吸引子势场为矢量,大小取决于无人船当前位置与目标终点的距离,方向由无人船指向目标终点。吸引子势场的表达式如式(1) 所描述。
[Uatt=12kx-xg2+y-yg2] (1)
式中为k为吸引子势场参数,(x,y) 和([xg,yg])分别是为无人船运动当前时刻在坐标轴位置和目标终点位置。
吸引力定义为吸引子势场的负梯度[3],如式(2) 所示。
[Fatt=-∇Uatt= -kx-xg,-ky-yg] (2)
吸引力的大小为:
[|Fatt|=k x-xg2+y-yg2] (3)
由式(3) 知无人船离目标点距离愈远,引力越大,反之亦然。
无人船在起始位置A点受到的斥力势场由表达式(4) 所描述。
[Urep=12m1ρ-1ρo ,ρ<ρo0 ,ρ≥ρo ] (4)
式中,m为斥力势场系数,[ρ]为无人船当前位置与障碍物之间的距离,[ρo]为障碍物对无人船的斥力势场影响距离。求取排斥力势场函数[Urep]的负梯度即可得到排斥力表达式(5) 。
[Frep=-∇Urep= mρ2 1ρ-1ρo[∂Urep∂x,∂Urep∂y]] (5)
障碍物对无人船的斥力大小函数为:
[|Frep|=mρ2 1ρ-1ρo ,ρ<ρo0 ,ρ≥ρo] (6)
根据公式(6) 的观察,当无人船靠近障碍物时,它受到的斥力与无人船与障碍物之间的距离成反比。为了更清晰地表示无人船受到的排斥力,将其分解到xy坐标系上。排斥力与坐标轴的夹角可以通过式(7) 计算。
[θ=cos-1(x-xdx-xo2+y-yo2)] (7)
排斥力在xy坐标轴的分量为:
[|Frep-x|=|Frep|cosθ ,ρ<ρo0 ,ρ≥ρo]
[|Frep-y|=|Frep|sinθ ,ρ<ρo0 ,ρ≥ρo] (8)
无人船在航行过程中收到的总势场为U=[Urep]+[Uatt],总合力为F=[Fatt]+[Frep]。
1.4 经典人工势场法路径规划问题
结合1.1节的目标任务可知:在理想情况下,无人船受到目标点的吸引子势场和障碍物的斥力势场的联合作用,会自动识别路径中的障碍物并避开,不断接近目标点,实现整个航行。然而,有时在特定情况下,出现了局部极小点的情况,导致无人船在某个位置停止而无法继续沿规划路径前进。在图3路径规划仿真中,当无人船经过航迹点B时,起始位置A、障碍物位置B和目标终点位置D位于同一直线上,此时,目标终点D对无人船的吸引力和障碍物B对无人船的斥力叠加后为零,这将导致无人船的运动陷入局部极小值。这种情况是人工势场法的一个局限性,称为局部最小点问题。图4是在传统人工势场路径规划下遇见的无人船在目标处震荡的问题。
2 改进人工势场算法
针对无人船路径规划中的目标不可达和限于目标极小点问题,可以考虑以下解决方法。动态调整势场参数:通过动态调整势场函数的参数,可以改变吸引力和斥力的权重,从而优化路径规划结果;可以根据实际情况,根据障碍物的距离、目标点的位置等因素,自适应地调整参数,以提高路径可达性。引入逃逸力机制:在势场法中引入逃逸力,可以帮助无人船从局部最小点中脱离出来;逃逸力可以根据当前位置和势场梯度的信息,提供一个额外的推力,使无人船能够跳出局部最小点并重新搜索更优路径。逃逸力的大小和方向可以根据具体需要进行调整。
2.1 解决目标点不可达问题
大多数学者对人工势场的改进主要集中在斥力势场函数上,其中使用的函数通常是基于无人船与障碍物相对位置的倒数的二次函数。然而,这种函数在实际应用中存在一些问题,因为即使无人船做出轻微的移动,势场的强度会发生剧烈变化,这对路径判断造成了困扰。鉴于此,本文选择使用指数函数来改进斥力势场函数,以减缓斥力场强度的变化速度。
同时,为了解决目标不可达的问题,引入了目标点与无人船相对位置的考虑。通过将改进的斥力势场函数乘以一个因子,使得目标点位置的斥力为零,可以确保无人船朝着目标点的方向移动而不受斥力的干扰。改进后的斥力势场函数如式(9) 所示[4,9]。
[Urep=12m1ρ-1ρo2 [1-exp(-x-xg2+y-yg2r2)] ,ρ<ρo0,ρ≥ρo] (9)
对式(9)的斥力势场函数求负梯度即可分解为两个方向的排斥力[Frep-x]和[Frep-y],[Frep-x]的方向由障碍物指向无人船,[Frep-y]的方向由无人船指向目标,大小如式(10) 所示。
[[Frep-x=-∇xUrep= -m 1ρ-1ρo2x-xgexp(-x-xg2+y-yg2r2] ]
[+m [1-exp(-x-xg2+y-yg2r2)1ρ-1ρox-xoρ3]]
[Frep-y=-∇yUrep= -m 1ρ-1ρo2y-ygexp(-x-xg2+y-yg2r2]]
[+m [1-exp(-x-xg2+y-yg2r2)1ρ-1ρoy-yoρ3]]] (10)
由式(10) 可知:当无人船接近目标点,[x-xg2+y-yg2→0],可推导出斥力的合力大小[|Frep|→0]。
在这个改进的斥力势场函数中,当无人船靠近目标点附近的障碍物时,无人船受到的排斥力为零。这意味着无人船不再受到障碍物的排斥力的影响,并且只受到目标点的引力作用,使得无人船能够在目标点附近自由移动,解决了传统人工势场算法中的目标点不可达问题。
2.2 解决局部极小点问题