海上船舶无人驾驶自主航行过程中,需要能够实时感知周围环境,准确识别障碍物,并自主规划出一条安全无碰撞的航线[1]。然而,海洋环境的复杂性和不确定性给无人船的自主航行带来了严峻挑战。海浪、海流、暗礁、其他船只以及未知的障碍物等,都可能成为无人船航行过程中的潜在威胁。因此,如何实现无人船在复杂海洋环境中的自动避障,成为了一个亟待解决的关键问题。
为此众多学者在此方面展开大量研究,如刘淑霞等[2]依据国际海上避碰准则精简速度选择范围,预测障碍物动态以确定无碰撞航行路径,同时纳入海洋环境扰动,利用横向误差调整漂角以优化航行方向,从而在复杂海域中实现高效自动避障,但是该方法适应性受限。Xue等[3]利用改进的近端策略优化算法和基于门控循环单元的神经网络,使海上船舶无人驾驶能够准确判断碰撞情况,并给出合理的避障行为,在包含动态和静态障碍物的复杂环境中实现有效避障。但该方法通常需要大量的计算资源来进行模型训练和实时推理,且在资源受限的海上船舶无人驾驶平台上,深度强化学习算法的高计算需求可能成为一个挑战。张乃天等[4]为了增强海上船舶无人驾驶自动避障路径的安全性和简化其复杂性,对快速行进法进行了改良,具体做法是引入时间场函数以促使海上船舶无人驾驶在远距离避开障碍物,并设计梯度拐点评价函数来减少路径中的转向次数。但是该方法对于动态障碍物的实时避障能力可能有限。当海洋中出现突发障碍物或障碍物运动轨迹发生变化时,该方法可能无法及时做出有效的避障决策。谭智坤等[5]针对无人船的运动特性进行优化,通过引入障碍物搜索角策略以及全新评估函数,使无人船能够灵活穿梭于密集障碍区域而不发生碰撞,但是该方法在路径规划过程中可能会受到多种因素的影响,如障碍物形状、大小、位置以及无人船的运动特性等。这些因素的变化可能导致算法的不稳定性,影响无人船的避障效果。
人工势场法作为一种在机器人领域较早被提出的人工智能算法,通过将移动物体所处的环境抽象为一个势力场,目标点抽象为一个引力极,障碍物抽象为一个斥力极,使得机器人在这2种力的共同作用下,沿着合力方向朝目标点前进,产生非常平滑的避障运动轨迹,适用于机器人的路径规划和避障[6]。因此提出基于人工智能技术的海上船舶无人驾驶自动避障方法,并分析其性能。该方法的创新点和优势如下:
1)构建无人驾驶船舶的动力以及运动学模型,模拟其在海上的运行情况,提供了更为真实和可靠的环境基础;
2)采用人工智能技术中的改进人工势场法,使得船舶在面对复杂障碍物分布和目标路径时,能够更灵活地调整其运动轨迹,避免陷入局部最优解。综合考虑障碍物对船舶的斥力以及目标点为船舶的引力,使得避障过程更加符合实际航行需求。
3)计算船舶所受总势场,能够实时反映船舶当前位置与障碍物和目标点之间的相对关系,从而动态调整预设航向,提高避障的灵活性。
4)设计基于PD控制器的避障控制方法,以实际航向与预设航向之间的偏差及其变化率为输入,输出舵机舵摆角度,实现船舶的自动避障,提高了避障控制的精度和稳定性,还增强了船舶对复杂环境的适应能力。
1 海上船舶无人驾驶自动避障方法 1.1 海上船舶无人驾驶运动模型与避障控制器设计构建无人驾驶船舶在海上运行的四自由度运动数学模型,模拟其海上运行情况,海上船舶无人驾驶动力学模型表达式为:
$ \boldsymbol{MV}+\boldsymbol{CV}+\boldsymbol{DV}+\boldsymbol{G}=\boldsymbol{F}+\boldsymbol{F}\mathrm{_{ruddte}}+\boldsymbol{F_{\mathrm{wave}}}。$ | (1) |
式中:
海上船舶无人驾驶运动学模型表达式为:
$ \left[ \begin{gathered} x \\ y \\ z \\ \phi \\ \end{gathered} \right] = {\boldsymbol T} \cdot {\boldsymbol V}。$ | (2) |
式中:
无人驾驶船舶的实际航向与预设航向之间的偏差描述为:
$ \Delta \phi = \phi - {\phi _d} 。$ | (3) |
式中:
将实际航向与预设航向之间的偏差
$ \delta = {K_p} \cdot \Delta \phi + {K_d} \cdot \Delta \dot \phi 。$ | (4) |
式中:Kp、Kd分别为PD控制器的比例、导数增益。
1.2 基于人工智能技术的无人驾驶船舶自动避障 1.2.1 基于人工势场法的避障策略人工势场法作用下,无人驾驶船舶会受到势场的负梯度作用,无人驾驶船舶将负梯度视为航行过程中受到的虚拟作用力,同时航行过程中障碍物会对船舶产生斥力,目标点会对船舶产生引力。构建无人驾驶船舶的人工势场模型,将船舶位置、目标点位置分别用q、qg;将虚拟势场、虚拟引力场、虚拟斥力场分别用
$ U\left( q \right) = {U_{att}}\left( q \right) + {U_{rep}}\left( q \right),$ | (5) |
$ \boldsymbol{F}(q)=-\nabla\boldsymbol{U}\left(q\right)=-\left(\nabla U_{att}\left(q\right)+\nabla U_{rep}\left(q\right)\right)。$ | (6) |
式中:
针对无人驾驶船舶空间位姿q(x, y),存在:
$ \nabla\boldsymbol{U}\left(q\right)=\left[\begin{gathered}\frac{\mathrm{\partial}U}{\mathrm{\partial}x} \\ \frac{\mathrm{\partial}U}{\mathrm{\partial}y} \\ \end{gathered}\right]。$ | (7) |
则海上障碍物、船舶航行目标点的势场为:
$ \nabla U_{att}\left(q\right)=\frac{1}{2}\xi p_g^2(q),$ | (8) |
$ \nabla U_{rep}\left(q\right)=\left\{\begin{gathered}\frac{1}{2}\eta\left(\frac{1}{p(q)}-\frac{1}{p_0}\right),\rho(q)\leqslant\rho_0,\\ 0,\rho(q) > \rho_0。\\ \end{gathered}\right. $ | (9) |
式中:
无人驾驶船舶受到的引力
$ \boldsymbol{F}_{att}(q)=-\xi(q-q_g),$ | (10) |
$ \boldsymbol{F}_{rep}(q)=\frac{\eta}{\rho^2(q)}\left(\frac{1}{p(q)}-\frac{1}{p_0}\right)\nabla p(q)。$ | (11) |
式中:
最终海上船舶无人驾驶在引力和斥力的矢量和(即合力)的作用下,在海上进行避障航行。
1.2.2 改进人工势场法人工势场法在进行海上船舶无人驾驶避障路径规划过程中,存在障碍物附近航行目标点不可达问题,为此引入安全距离最小值,充分衡量船舶与目标点的相对距离,改进人工势场法的斥力函数,表达式为:
${ U'_{rep}\left(q\right)=\left\{\begin{gathered}\eta\left(\frac{1}{p(q)-d}-\frac{1}{p_0-d}\right)(q-q_g)^n,\rho(q)\leqslant\rho_{0,} \\ 0,\rho(q) > \rho_0。\\ \end{gathered}\right. }$ | (12) |
式中:
$ F'_{rep}=-\nabla U'_{rep}\left(q\right)=\left\{\begin{gathered}F_{rep1}+F_{rep2},\ \rho(q)\leqslant\rho_{0。} \\ 0,\ \rho(q) > \rho_0。\\ \end{gathered}\right. $ | (13) |
利用改进后人工势场法求解斥力,并计算海上船舶无人驾驶受到的合力,实现船舶的自动避障。
1.2.3 海上船舶无人驾驶自动避障实现在无人驾驶船舶自动避障过程中,将船舶所在位置受到的总势场U(q)的方向视为其避障操作的预设航向,在尾舵调控作用下实现海上避障,即:
$ \phi_d=\arctan(U(q))。$ | (14) |
具体实现步骤为:
步骤1 风海上航行环境初始化,采集无人驾驶船舶周围环境信息,识别障碍物位置,构建障碍物集合
步骤2 对船舶与障碍物Oi相对距离li进行求解,并对比其与障碍物影响距离L0,筛选获取目标障碍物集合
步骤3 依据式(8)和式(13)分别计算引力和斥力势场,再利用式(5)计算船舶受到的总势场,并利用式(14)获取船舶预设航向。
步骤4 无人驾驶船舶利用船舶预设航向信号采用PD控制器利用式(4)计算船舶舵机舵摆角度,控制船舶避开障碍物向目标点航行。
步骤5 若达到目标点则结束避障任务,否则,跳转回步骤3进行避障判断,直至达到目标点。
2 结果分析为验证本文提出方法的应用效果,以某已知环境的海域为实验区域,应用Matlab 仿真平台搭建不同障碍物条件下的虚拟环境进行避障实验,实验用无人驾驶船舶的原型为型号为海洋探索者X1的船舶。
设定无人驾驶船舶在多障碍物密集分布环境航行,且障碍物与目标点接近,衡量此时其避障效果,结果见图1。分析可知,在面对多障碍物密集分布情况下,应用人工势场法在面对障碍物时陷入了局部最优解而导致航行停止,对应的坐标为(62, 59),结合图1(b)分析可知,此时受到的合力为0,导致无法继续行进;而改进人工势场法的船舶可以顺利规划出到达目标点的避障路径,成功躲避障碍物,并未产生碰撞现象。说明改进人工势场法可以有效避免接近目标点的障碍物导致的目标不可达问题,实现成功避障的同时完成路径规划。从图1(c)可知,本文方法能够良好实现无人驾驶船舶对阶跃输入的跟踪,并通过航向控制成功实现避障与航行控制。
![]() |
图 1 多障碍物密集分布环境下的避障结果 Fig. 1 Obstacle avoidance results in a densely distributed environment with multiple obstacles |
在实际海上船舶航行中,复杂动态障碍物场景下本文方法获取的避障结果见图2。可知,本文方法可以进行复杂移动障碍物的避障,保障无人驾驶船舶的安全航行。在初始时刻,船舶检测到前方和侧向均有移动障碍物。根据计算结果,船舶迅速调整航向,以避免与前方障碍物发生碰撞。同时,侧向的障碍物也被纳入考虑范围,随着时间的推移,船舶继续航行,并成功避开了前方的障碍物。侧向的障碍物也被持续监控,以确保船舶在实际应用中,整个航行过程都能保持安全距离。在最终时刻,船舶已经成功避开了所有移动障碍物,并继续沿着预定的航线向y轴方向航行。在实际应用中的整个避障过程,船舶展现出了出色的灵活性和适应性,能够迅速应对复杂多变的海洋环境。
![]() |
图 2 移动障碍物场景避障效果 Fig. 2 Obstacle avoidance effect in moving obstacle scenes |
本文提出的避障方法在多障碍物密集分布环境和复杂动态障碍物场景下均展现出了出色的避障效果。在多障碍物密集分布环境中,能够成功规划出到达目标点的避障路径,有效避免了目标不可达问题。同时,该方法还能够良好实现无人驾驶船舶对阶跃输入的跟踪,并通过航向控制成功实现避障与航行控制。在复杂动态障碍物场景下,能够对移动障碍物进行实时检测和预测,并根据在实际应用中的实时情况快速调整航向,成功避开所有障碍物,并继续沿着预定的航线航行安全航行。
[1] |
孙帅, 许志远, 玄世龙, 等. 基于贪心算法的无人船实时避碰算法[J]. 船舶工程, 2022, 44(4): 14-18+29. |
[2] |
刘淑霞, 李立刚, 金久才, 等. 基于漂角估计的无人船局部动态避障方法[J]. 电光与控制, 2023, 30(1): 103-108+119. DOI:10.3969/j.issn.1671-637X.2023.01.018 |
[3] |
XUE D, WU D, YAMASHITA A S, et al. Proximal policy optimization with reciprocal velocity obstacle based collision avoidance path planning for multi-unmanned surface vehicles[J]. Ocean Engineering, 2023(4), 1.1−1.118.
|
[4] |
张乃天, 陈世才, 蒙子昕. 基于改进快速行进法的水面无人船全局路径规划[J]. 上海海事大学学报, 2023, 44(3): 5-11. |
[5] |
谭智坤, 张隆辉, 刘正锋, 等. 融合改进动态窗口法与速度障碍法的无人船局部路径规划[J]. 船舶力学, 2023, 27(3): 311-322. DOI:10.3969/j.issn.1007-7294.2023.03.001 |
[6] |
翟丽, 张雪莹, 张闲, 等. 基于势场法的无人车局部动态避障路径规划算法[J]. 北京理工大学学报, 2022, 42(7): 696-705. |