水面无人艇是一种支持无人操作的船舶[1]。随着人工智能的发展,船舶的智能化水平不断提高,智能船舶正在向着水面无人艇发展[2]。无人驾驶是无人艇的主要发展方向[3],在无人艇无人驾驶的运动规划中避障是一个很重要的问题,在多动态障碍物环境里存在更多的不确定性,使无人艇的动态避障更加复杂和困难[4]。
无人艇路径规划的评价标准是在障碍物工作环境中,从确定的起点到终点寻求一条安全可行的最优路径 [5]。路径规划可以分为侧重于路径最优的全局路径规划和侧重于安全避障的局部路径规划[6]。全局路径规划包含了所有的环境信息,局部路径规划则含有未知的环境信息[7]。全局路径规划算法实现的前提较为理想,当无人船的航行环境中存在未知或动态障碍物时,则需要采用局部路径规划算法来实现实时避障[8]。其中,A*算法、Dijkstra算法、D*算法等均为较常见的全局路径规划算法,而局部路径规划算法则有动态窗口法、人工势场法、遗传算法等[9]。
由于海上的环境中容易出现未知障碍物或者其他不确定因素,所以提高它的局部避障效率能更有效地提高其在复杂水况中的运行效率,减少能耗。局部路径规划算法中,DWA算法具有建模简单、搜索路径平滑等特点,但传统的动态窗口算法(Dynamic Window Approach,DWT)无法摆脱其运行效率低,容易陷入局部最优等缺点[10]。高宇等[11]通过动态窗口法建立无人船运动模型,并考虑避碰规则和障碍物因子,能有效地提高无人船的自主避障能力。但是未考虑动态障碍物的影响,无法模拟真实情况。程传奇等[12]通过融合A*算法和动态窗口法来研究的无人船动态路径规划。该方法很好地解决了动态避障以及陷入局部最优的问题。但面对复杂环境出现运行效率低等问题,同时只有单个动态障碍物,不具有普适性。齐款款等[13]提出一种改进A*算法与改进DWA算法相结合的动态路径规划方法,在 DWA 的评价函数中对障碍物进行分类并区别对待以及添加速度自适应因子,以提高避障灵敏度,提高了算法的效率,以及在复杂环境里的路径搜索能力,但其自适应参数只考虑了速度因子,缺乏灵活性。Zhang等[14]在传统DWA算法上加入了模糊逻辑系统,能根据障碍物的分布情况动态调整评价函数的权重,增强了DWA算法对复杂环境的适应性,但模拟环境中未设置动态障碍物,无法验证该算法的动态避障能力。
本文在动态窗口法的基础上融入了模糊算法,并加入了改进的A*算法提高了全局搜索能力。针对的是传统动态窗口法中评价函数的权重系数固定的问题,加入了模糊逻辑系统使评价函数的系数模糊化,将系数权重定在一定的范围内,能使无人艇在不同的环境中实时改变权重系数,能够提高无人艇的搜索效率和安全性。同时,增加了无人艇搜索环境中动态障碍物的数量,使仿真环境更加有真实性。
1 环境建模路径规划问题中,构建合适的环境地图是解决后续的问题的关键[15]。栅格地图能够将地图上的信息通过每个栅格赋予。为了模拟无人艇的航行状态,并且在相关的环境中仿真试验,例如在冰区中,漂浮的浮冰、固定的冰层以及冰山等。为了简化障碍物,且便于无人艇的路径规划,本文采用了栅格法来对搜索环境进行建模。建立二维直角坐标系,设栅格图规格为
{xi=a⋅[mod(i,N)−0.5],yi=a⋅[N+0.5−ceil(i/N)]。 | (1) |
式中:
假设无人艇的运动轨迹是由许多段微小圆弧组成,且每段圆弧都是基于无人艇当下的一组速度
{xt+1=xt+vtΔtcosθt,yt+1=yt+vtΔtsinθt,θt+1=θt+ωtΔt。 | (2) |
式中:xt、yt、θt为无人艇在
基于上述已建成的无人艇运动模型,为了得到无人艇的运动轨迹,需要采样多组无人艇的速度,即速度空间
1)无人艇受自身影响所能达到的范围:
Vm={(v,ω)|v∈[vmin,vmax],ω∈[ωmin,ωmax]}。 | (3) |
式中:
2)在一个时间间隔
Vd={(v,ω)|v∈[vc−vbΔt,vc+vaΔt]∧ω∈[ωc−ωbΔt,ωc+ωaΔt]}。 | (4) |
式中:
3)无人艇遇到障碍物所受到的约束:为了保障无人艇的安全,能在遇到障碍物时及时制动并保持一个安全距离。所以无人艇的速度要约束在一个范围内:
Va={(v,ω)|v⩽√2dist(v,ω)vb∧ω⩽√2dist(v,ω)ωb}。 | (5) |
式中:
DWT算法根据无人艇检测到的局部窗口环境信息,通过在线实时规划路径,检测窗口滚动前进,具有良好的避障能力。但是,动态窗口法无法保证搜索的是全局最优路径,且容易陷入局部最优的问题,所以加入了改进的A*算法进行全局路径规划。两者的融合保证动态路径规划全局规划的最优性。
本文设置的评价函数为:
G(v,ω)=αhead(v,ω)+βdist(v,ω)+γvel(v,ω)。 | (6) |
式中:
DWA算法的速度选择与评价函数的各项权重的分配有很大的影响,在避障的同时,也要追求搜索路径的优化以及提高搜索的效率,单一的权值找到的路径并不理想,所以需要实时调整轨迹评价函数的权值。本文选择了在动态窗口的基础上融合模糊控制算法。
图1为本文设计的一种三输入三输出的模糊控制器,将无人艇与目标点之间的方位角,无人艇与目标点之间的距离以及无人艇距离最近障碍物的距离作为输入变量。输出的变量为评价函数的3项权重系数
![]() |
图 1 模糊逻辑系统 Fig. 1 Fuzzy logic system |
模糊控制器的输入和输出变量采用了连续全域覆盖,可以用模糊控制器来调节无人艇在路径搜索时轨迹评价函数的权重系数。其中将无人艇与目标点之间的方位角设置为[−180°, 180°],模糊集为{XS, S, M, B, XB},保证了目标点始终在无人艇的搜索角度内。无人艇与目标点之间的距离设置为[0, 3],模糊集为{N, M, F}。无人艇与最近障碍物之间的距离为[0, 3],模糊集为{N, M, F}。评价函数的权重系数
输入变量的隶属度函数曲线如图2所示,输出变量的隶属度函数曲线如图3所示。
![]() |
图 2 输入的隶属度函数 Fig. 2 Input affiliation function |
![]() |
图 3 输出的隶属度函数 Fig. 3 The output affiliation function |
为了减少A*算法的转折,对A*算法增加了关键点策略。需要对A*算法采取2个措施:
1)提取转折点。在规划好的路径中,若当前节点与上一节点及其父节点在同一直线上,那么该节点的前一个节点即为冗余节点,将其删除,按这样的筛选方式遍历所有的节点,最终路径上的节点只剩下起点、转折点、终点。
2)删除冗余节点。基于上述转折点的提取后,仍有部分转折点是多余的,假设提取完转折点后的完整路径为
表1为在20×20的地图上,传统A*和改进后的A*算法在障碍物密度分别为10%、15%、20%、25%、30%的5个工况下所搜索出的路径中的节点数。可以得出改进后的A*算法相较于传统A*节点数减少,使得路径中的转折点减少,增加了无人船航行的安全性。
![]() |
表 1 A*算法改进前后的节点数 Tab.1 Number of nodes before and after A* algorithm improvement |
本文将改进A*算法融合了改进的DWA算法。提取了A*算法所规划的路径节点中的关键节点作为DWA算法的子目标点,无人艇将依次到达每个目标点,并在到达子目标点的一定范围内切换下一个目标点直至到达最终的目标点。整个算法的流程如图4所示。
![]() |
图 4 算法总体流程图 Fig. 4 Overall flowchart of the algorithm |
传统的DWA算法在遇见动态障碍物堵死在规划好的路径上的突发情况时,为了避开动态障碍物,会改变规划的路线,出现绕过附近障碍物的绕路问题如图5所示。绕路的选择会大大增加无人艇的路径长度,以及运行时间。在实际运用中,会增加无人艇的损耗,绕路也会增加无人船行驶中的不确定性和危险性。而本文在传统动态窗口算法的基础上融合了模糊算法,使得动态窗口评价函数的权重系数动态化,在遇见堵死的情况下,为了使无人艇不与动态障碍物碰撞,且不发生绕路情况,模糊算法将评价函数中速度的权重系数γ减小,使无人艇减速直至到与动态障碍物的安全距离如图6所示,待动态障碍物离开后,则转向并增大γ,加速从动态障碍物一侧通过。使得无人艇在不绕路的前提下安全通过。
![]() |
图 5 融合模糊算法算法改进绕路问题 Fig. 5 Fusion fuzzy algorithm to improve the detour problem |
![]() |
图 6 无人艇速度避障速度变化图 Fig. 6 Unmanned boat speed obstacle avoidance velocity variation chart |
为了确保本文改进DWA算法的优越性。使用仿真工具搭建模拟环境进行试验。所模拟的环境为20×20的栅格地图,每格的边长为1。起始点所在位置为(0.5,0.5),终点所在位置为(19.5,19.5),并设立了10%、15%、20%、25%、30%的5个障碍物密度不同的工况。无人艇开始运动初始角度为π/4。最大线速度为
本文所研究的动态路径规划是在原有的静态模拟环境中加入移动的障碍物,为了能更好地验证该算法的适用性,本文加入了多个动态障碍物。仿真试验分成了加入一个和多个动态障碍物的试验组。
4.1 单个动态障碍物在无人艇的行驶地图中加入一个动态障碍物,该动态障碍物的速度为0.008/s,为了验证该算法的适用性,设置了不同角度移动的动态障碍物,本文设置了0°、45°、90°等3组不同角度移动的动态障碍物如图7所示。每组在不同的工况下的路径长度以及路径规划的时间如表2所示。
![]() |
图 7 单个动态障碍物不同角度路径图 Fig. 7 Path diagram of a single dynamic obstacle from different angles |
![]() |
表 2 单个动态障碍物不同角度下的路径长度与运行时间表 Tab.2 Path lengths and running schedules at different angles for a single dynamic obstacle |
在上述单个动态障碍物的模拟中,可以得出融合了模糊算法的动态窗口法能提高无人艇路径搜索的效率,也能在各种动态障碍物环境中完成动态避障。为了验证该算法的普适性,设置了多个动态障碍物。如图8所示,在各种工况下,加入了2个相向运动的动态障碍物。提高了无人艇的避障难度,从表3中可以得出在各种密度的障碍物环境中均能完成动态避障,且在加入2个动态障碍物后,无人艇搜索的路径长度没有发生明显变化,所耗费的时间随着障碍物密度增加而逐步增加。
![]() |
图 8 2个动态障碍物路径图 Fig. 8 Two dynamic obstacle path diagrams |
![]() |
表 4 3个动态障碍物下的路径长度与运行时间 Tab.4 Path length and running time under three dynamic obstacles |
在单个动态障碍物中,模拟了3个角度的动态障碍物的避障,图9中将沿3个角度运动的动态障碍物放在同一环境中进行模拟,从表4中得出加入3个动态障碍物,无人艇依旧能很好的完成动态避障。同时也能兼顾良好的搜索效率。无人艇在3个动态障碍物同时出现的情况下能保证路径搜索的高效性,
![]() |
图 9 3个动态障碍物路径图 Fig. 9 Three dynamic obstacle path diagrams |
路径长度未发生较大变化,运行时间也是随着障碍物密度增加而增加。
可以从图10得出在5个工况下,多个动态障碍物所搜索的路径长度没有出现较大差异。得出在加入模糊逻辑算法后,无人艇能够很好地在多动态障碍物环境中进行路径搜索。无人艇路径搜索所耗费时间随着障碍物密集程度的增加也相应的有上升趋势,因为障碍物密集使得无人艇控制速度的权重相对较低,无人艇在全局路径的搜索过程中速度相对较慢,搜索时间变长也在合理的范围内。多个动态障碍物工况在低密度障碍物环境中运行时间高于单个动态障碍物工况,在高密度工况中多个动态障碍物与单个动态障碍物运行时间也会出现小幅度波动。从仿真的数据来看,模糊改进动态窗口法能有效地完成无人艇在多动态障碍物场景下的动态避障以及路径规划的要求,还提高了无人艇的路径搜索效率。
![]() |
图 10 无人艇动态避障路径长度与运行时间柱状图 Fig. 10 Histogram of dynamic obstacle avoidance path length and running time of unmanned vessel |
在模拟环境中加入多个动态的障碍物以实现无人艇的动态避障。本文提出了模糊算法改进的动态窗口法能根据环境信息实时调节评价函数的各个参数以实现更加灵活的动态避障,再结合A*算法能够为无人艇提供全局的路径规划。本文动态的模拟试验表明:模糊算法改进的动态窗口法能够有效的进行动态避障,能够改进传统DWA算法固定评价函数容易陷入死循环的问题,并能在多个动态障碍物环境下完成全局路径搜索。同时也保证了规划路径的长度以及时间,提高了无人艇搜索路径的效率,证明了本文所提出的改进方法的优越性。
综上表明,模糊算法改进的动态窗口法能满足无人艇的动态路径规划的要求。同时本文也存在着不足,没有考虑无人艇的船型及海上真实的风浪环境。并且该算法局限于二维的环境,对于真实环境而言有局限性。
[1] |
赵亮, 王芳, 白勇. 水面无人艇路径规划的现状与挑战[J]. 船舶工程, 2022, 44(4): 1−7+48. ZHAO L, WANG F, BAI Y. Current status and challenges of surface unmanned craft path planning[J]. Ship Engineering, 2022, 44(4): 1−7+48. |
[2] |
BAI C E, LI B H, XU X F, et al. Current status of unmanned ship research and internal structure outlook (in English)[J]. Journal of Marine Science and Application, 2022, 21(2): 47-58. DOI:10.1007/s11804-022-00276-9 |
[3] |
柳晨光, 初秀民, 谢朔, 等. 船舶智能化研究现状与展望[J]. 船舶工程, 2016, 38(3): 77−84+92.
|
[4] |
GUO B, GUO N, CEN Z. Obstacle avoidance with dynamic avoidance risk region for mobile robots in dynamic environments[J]. IEEE Robotics and Automation Letters, 2022, 7(3): 5850−5857.
|
[5] |
XING B, YU M, LIU Z, et al. A Review of path planning for unmanned surface vehicles[J]. J. Mar. Sci. Eng. 2023, 11, 1556.
|
[6] |
LI M, MOU J, HE Y, et al. Dynamic trajectory planning for unmanned ship under multi-object environment. J Mar Sci Tech, 2022, 27: 173–185.
|
[7] |
GUAN C, WANG S. Robot Dynamic path planning based on improved A* and DWA algorithms[C]//2022 4th International Conference on Control and Robotics (ICCR), Guangzhou, China, 2022.
|
[8] |
谭智坤, 张隆辉, 刘正锋, 等. 融合改进动态窗口法与速度障碍法的无人船局部路径规划[J]. 船舶力学, 2023, 27(3): 311-322. TAN Z K, ZHANG L H, LIU Z F, et al. Localized path planning for unmanned vessels by integrating the improved dynamic window method and velocity barrier method[J]. Ship Mechanics, 2023, 27(3): 311-322. DOI:10.3969/j.issn.1007-7294.2023.03.001 |
[9] |
姚进鑫, 刘丽桑, 何栋炜, 等. 融合优化A~*算法与动态窗口法的动态路径规划算法研究[J]. 重庆理工大学学报(自然科学), 2022, 36(7): 197-207. |
[10] |
GUO T, SUN Y, LIU Y, et al. An automated guided vehicle path planning algorithm based on improved A* and dynamic window approach fusion[J]. Appl. Sci. 2023, 13, 10326.
|
[11] |
高宇, 赵嵩郢. 基于动态窗口法的无人艇局部路径规划[J]. 船电技术, 2022, 42(7): 50-54. GAO Y, YING ZHAO S. Localized path planning for unmanned boats based on dynamic window method[J]. Ship Electricity Technology, 2022, 42(7): 50-54. DOI:10.3969/j.issn.1003-4862.2022.07.012 |
[12] |
程传奇, 郝向阳, 李建胜等. 融合改进A~*算法和动态窗口法的全局动态路径规划[J]. 西安交通大学学报, 2017, 51(11): 137-143. |
[13] |
齐款款, 李二超, 毛玉燕. 改进A*算法融合自适应DWA的移动机器人动态路径规划[J]. 数据采集与处理, 2023, 38(2): 451-467. |
[14] |
XHANG L Y, HAN Y, JIANG B. Research on path planning method of unmanned boat based on improved DWA algorithm[J]. Journal of Sensors, 2022, 2022.
|
[15] |
龚鹏, 李文博, 马庆升, 等. 基于改进A~*算法的无人车路径规划研究[J]. 组合机床与自动化加工技术, 2023(3): 17-20+24. |