第2章 无人艇局部危险避障算法研究

水面无人艇局部危险避障算法研究

Local Risk Obstacle Avoidance Algorithm of USV


博主 的硕士毕业论文

第2章 无人艇局部危险避障算法研究

2.1 无人艇局部危险避障概述

  作为一种无人操作的海洋自主运载器,水面无人艇既然具备自主能力,就需要与外界环境进行交互,从而需要能够进行全局路径规划,以及进行局部危险状况下的避障。
  水面无人艇的全局路径规划,为无人艇规划出了一条在已知静态海洋环境信息下的最优路径。无人艇在航行过程中,处在不可预见和高度动态的海洋环境中,障碍物很可能出现在已经规划好的全局路径上。无人艇必须对这些不可预测的事件以某种方式做出反应,使之仍然能顺利到达目标、完成任务,而可靠的避障算法正是提高无人艇智能化的主要障碍 [6] 。因此,在全局路径规划的基础上,还需要进行实时的局部危险避障,才能满足无人艇顺利执行任务的需求。目前,无人艇动态目标及危险区域的相关避障方法的研究,正是水面无人艇研究的热点和重要方向,也是一项实现无人艇智能化的关键技术 [2] 。  
  在无人艇航行过程中,无人艇必须对一些不可预知的事件(避障、风浪等)做出反应,根据传感器探测的数据调整航向和航速,进行局部危险避障,使无人艇仍能顺利到达目标。因此,局部危险避障必须速度快、实时和效率高 [18] ,但是如果缺乏全局路径规划的指导,局部危险避障将无法指导无人艇到达目的地,甚至很容易失去目标,掉入局部陷阱区域。然而如果没有局部危险避障,无人艇无法躲避未知危险事件,无法顺利到达目标点,全局路径规划的结果也将是徒劳的。因而对于无人艇的全局路径规划和局部危险避障来说,两者有着非常强的互补性,只有两者互相结合才能顺利可靠的完成无人艇的任务需要。
  所谓水面无人艇的局部危险避障,是指以全局路径为指导,通过传感器信息确定无人艇的实时位置,及得到局部范围内障碍物的分布情况;寻找一种满足一定评价标准的运动方案,调整航向和航速,高度智能化、自适应地避开海面上的静动态障碍物。
  处在海洋中进行自主航行的水面无人艇,在进行全局路径规划及局部危险避障时,需要满足一定的约束条件才可以规划出一条快速、稳定、可靠的无人艇避障路径。这些约束条件包括无人艇自身的航行机动约束、障碍物约束以及符合国际海上避碰规则公约的约束。
1) 航行机动约束
  水面无人艇在海面高速航行时不仅需要考虑无人艇的最小回转半径,还要考虑其与障碍物直接的安全距离约束和航行时无人艇较大的惯性。
  在复杂的海面环境中,无人艇处于无限流场中运动,因为自身的惯性较大,会导致无人艇在避障过程中出现较大的误差,导致避障失败。如果规划出的避障策略忽略了其最小回旋半径,则会导致输出角速度过大,从而出现侧滑甚至侧翻的事故;如果没有考虑与障碍物之间的安全距离约束,则无人艇微小的误差以及各种不确定性因素的出现,都可能造成无法弥补的损失。
2) 障碍物约束
  处在复杂海洋环境中做任务的水面无人艇,会遇到各种外在障碍物以及海风、海浪、海流的影响。而这些外在障碍物包括:海岸、湖岸、河岸,船只,浅水障碍(暗礁、沙洲、鱼类等),水面障碍物(浮标、桥梁等)。
3) 国际海上避碰规则公约的约束
  水面无人艇在海面航行过程中,为了避免对海上其它船只、人员的人身和财产安全及无人艇自身的安全造成威胁,在进行避障的过程中必须满足一定的规则。国际海上避碰规则公约(International Regulations for Preventing Collisions At Sea,1972 / COLREGS)的13、14、15条,分别对无人艇在航行过程中可能出现的碰撞局面:追越、正面相遇和交叉相遇做出了规定,详见第4.2节。
  在满足了各种约束的前提下可得到的避碰策略包括:
  ①不改变速度,但修改原路径;
  ②减速,在原轨迹上航行;
  ③速度大小和方向同时改变。

2.2 自主移动机器人危险避障算法

  国内对水面无人艇局部危险避障算法的研究虽然较少,但对自主移动机器人的研究较为广泛,在避障方面的研究也有不少成果,很多危险避障方法都可以经过改动引入到水面无人艇局部危险避障中来。
  在自主移动机器人领域里,局部危险避障充分体现了机器人的智能化。自主移动机器人的局部危险避障是指在机器人移动期间,接到传感器接收到的外界环境信息时,为了避免和真实环境中的障碍物碰撞,而改变机器人已规划的运行轨迹 [19] 。最终机器人的移动路径,即与最终目标位置和距最终目标的相对位置有关,又与传感器接到的当前或者最近信息有关。到目前为止,各国的研究者提出了许多避障算法,这些算法都不同程度的依赖于全局路径规划及地图和对于全局地图的精确定位,如Bug算法、向量场直方图法、气泡带法、曲率速度法、动态窗口法、Schlegel避障法等。下面简单的介绍几种典型的机器人避障方法。
1) Bug算法
  Bug算法 [20] 是避障算法中较为简单的一种,其基本思想就是在机器人前进的路途中遇到障碍物时,沿着障碍物的轮廓并绕开障碍物行进。在Bug算法的基本思想上,存在Bug1算法、Bug2算法、正切Bug算法这三种扩展方法。
2) 向量场直方图法
  针对使用Bug算法进行避障时,机器人的行为在每时刻都只与最近的传感器的读数有关,1991年Borenstein, J和Koren, Y提出了向量场直方图法 [21] (VFH,Vector Field Histogram)。该方法通过创建局部地图来描述围绕机器人的环境信息,以克服Bug算法的不足。VFH法虽然使得机器人可以在多障碍物中穿梭,但该方法并没有将机器人的动力学和运动学考虑进去,最终导致机器人在现实中很难完成该算法计算出的路径。后来在VFH算法的基础上,Ulrich和Borenstein又提出了VFH+ [22] 和VFH* [23]
  中国海洋大学的马闯等 [24] 也提出了一种改进的 VFH,实现了USV在三维空间内的实时避障。
3) 曲率速度法
  1996年Simmons提出了曲率速度法(CVM) [25] ,该方法可将机器人的运动学约束和某些动力学约束同时进行考虑。CVM法在刚开始就把机器人和环境中的物理约束考虑到速度空间中,而速度空间由转动速度ω和平移速度ν组成,且假定机器人是沿着曲率为c=ω/ν的圆弧前进。但正是因为该方法将障碍物的形状简化为圆形,会导致发生局部极小的现象。
  为了解决CVM法的不足,Ko和Simmons在1998年对CVM法进行了改进,提出了道路曲率法(LCM, Lane curvature method) [26] 。实验证明该方法比CVM法有更好的性能,但对于目标函数参数的选择要求较高。
4) 动态窗口法
  Fox,Burgard和Thrun在1996年首先提出了动态窗口法 [27] ,该方法将运动学约束考虑到了机器人的危险避障中。由于该方法没有全局的思考,又被称之为局部动态窗口法。该方法结合机器人的当前速度,将机器人的加速能力及时间周期考虑进去,选择能在下一周期内到达的速度空间(ν,ω)的动态窗口。然后将动态窗口收缩,保存那些确保机器人在碰到障碍之前能够停住的速度空间(ν,ω)。最后,将目标函数施加到动态窗口中被留下来的容许的速度元素,就可以选择新的运动方向,确定机器人下一步的速度和角速度,从而实现避障。
  然而局部动态窗口法并没有进行全局的考虑,所以Brock和Khatib于1999年提出了全局动态窗口法 [28] 。该方法可以无需完整的环境先验知识,使得动态窗口法具有了全局规划的优势。
  2008年,浙江大学电气工程学院的李国阳 [29] 等在动态窗口方法的基础上,提出了复杂环境下有导向动态窗口方法。并通过机器人进行实际的声呐导航实验,证明了该算法能够使机器人适应于非结构化、密集、复杂环境下的局部导航控制。
  哈尔滨工程大学的唐平鹏等 [30,31] 采用分层策略将动态窗口引用到了USV局部危险避障中,在艏向窗口和线速度窗口中分别利用切线法和弧线法求出避障角速度和线速度。并将角速度缓冲模型引入,以提升避障过程中艇体的稳定性。
5) 接近图法
  针对VFH在较为杂乱的空间中使得机器人不能较好避障的缺点,Minguez等提出了接近图法(nearness diagram,ND)。之后,Minguez等在ND算法的基础上加入了全局推理,得到了全局接近图法(global nearness diagram,GND)。
  哈尔滨工程大学的王敏捷等 [32,33] 便采用了近域图(ND)法进行局部避障,并引入模糊理论平滑速度输出,和将结合混沌思想的 Q 学习机制引入,来提高USV的自适应性。
6) ASL算法
  ASL算法 [34] 最先是为大型展览会机器人开发的避障算法,由瑞士联邦理工大学提出,使得机器人可以在十分拥挤的展览会中穿行。该算法将NF1、弹性带和动态窗口三种方法合并起来,通过不断的规划,可以得到使机器人平滑移动的路径。
  
  上面描述的方法都是非常经典的局部危险避障方法。然而,在自主移动机器人领域里,还有很多非常好的避障方法,如梯度法、加上动态约束法等。当然,随着智能算法的发展,如遗传算法、模糊逻辑算法、神经网络算法、蚁群算法、粒子群算法等,越来越多的学者也将一些智能算法引入机器人乃至USV的局部危险避障中来,也得到了不错的避障效果。
  如哈尔滨工程大学的祖伟 [35] ,就将粒子群优化算法(PSO)应用到了水下潜器在线实时路径规划,充分利用了该算法的全局寻优能力强和求解速度快的优点,很好的提高了路径规划的效率和性能。江苏科技大学的庄肖波,齐亮 [36] 将蚁群算法(ACA)引入避碰规划中,实现了USV对运动目标的避碰。

2.3 无人艇局部危险避障算法研究现状

2.3.1 国外无人艇局部危险避障算法研究现状

  国外对水面无人艇的研究起步较早,在局部危险避障方面世界各地也都展开了相应的研究,研究成果也颇为丰富。
  美国麻省理工学院海洋工程中心的Benjamin M R 等 [37] 提出了一种新的USV移动规划方法;该方法是基于行为控制框架的间隔规划多目标最优化算法,并依据国际海上避碰规则公约中的相关条例对避障动作进行选择;该方法能够很好的满足USV航行约束条件,并且实现多任务的同步。马里兰大学帕克分校的Svec P 等 [38] 提出了一种基于轨迹规划的可预见性算法,提到了三种基于路径规划的障碍物避障方法:方法一采用围绕各个障碍物的边缘前进,这种保守的方法来进行轨迹规划;方法二通过一个可预见的规划模块进行计算,该规划模块可通过预测海浪对当前路径的影响,来重新规划最新的轨迹;方法三是将启发式的A*算法与局部边界最优结合进行避碰。维拉诺瓦大学的Soltan R A 等 [39] 提出了基于非线性滑模控制的方法,该方法将轨迹规划、跟踪和协调控制结合起来进行考虑;但其限制因素是,只有当USV的初始化条件在期望的轨迹上时才能保证位置跟踪。美国海军圣地亚哥空间和海战系统中心Larson J等 [40] 采用Morphin算法 [41] 处理局部危险避障,将远场协商避障模块与近场反应式避障模块相结合来实现避障;但未考虑无人艇的运动特性和当前运动状态,使得其避障性能受到影响。
  意大利热那亚大学的Casalino G 等 [42] 将无人艇路径规划分为三层结构:第一层采用A*算法,根据当前环境下的静态障碍物计算得到全局路径;第二层通过对周围的运动障碍物信息进行分析,采用基于行为的方法来实现反应式危险避障,并局部修改第一层所设计的路径;第三层为当运动障碍物的信息不可用时,进行反应式危险避障。Caccia M等 [43] 提出了基于视线(1ine-of-sight,LOS)的规划算法,并应用在了“Sesamo”号USV上。
  英国普利茅斯大学的Naeem W等 [44] 提出了遗传算法非线性预测控制思想,应用在了“Springer”号双体USV上,进行实时避障。
  法国的Petres C等 [45] 采用人工势场法进行自动驾驶帆船的实时避障。
  韩国国立昌原大学的Lee S等 [46] 利用了模糊逻辑结合虚拟力场的方法,并满足国际海上避碰行为规则公约的相关约束实现了海上自动驾驶船舶的避碰。

2.3.2 国内无人艇局部危险避障算法研究现状

  国内在无人艇局部危险避障方面起步较晚,但目前也有所进展。
  哈尔滨工程大学的庄佳园等 [47] 设计了一种基于航海雷达图像处理的规划方法,采用Dijkstra算法搜索局部最佳路径。之后设计了一种符合国际海上避碰行为规则公约的相对坐标系动态避障方法,以处理USV的应激避障问题 [48] 。王敏捷等 [32,33] 便采用了近域图(ND)法进行局部避障,并引入模糊理论平滑速度输出,和将结合混沌思想的 Q 学习机制引入,来提高USV的自适应性。唐平鹏等 [30,31] 采用分层策略将动态窗口引用到了USV局部危险避障中,在艏向窗口和线速度窗口中分别利用切线法和弧线法求出避障角速度和线速度。并将角速度缓冲模型引入,以提升避障过程中艇体的稳定性。卢艳爽 [18] 采用了融合海事规则和障碍物信息不确定性建模的速度避障法,实现了USV的局部危险避障;其局限性在于USV航行路径要保证与已经规划好的路径非常近或处在该路径上,当已经规划好的路径穿过事先未知障碍物较多时,此方法会表现得很不理想。
  大连海事大学的王哲 [49] 建立了评判碰撞危险度的模型,深入分析了航速及航向改变对DCPA与TCPA的影响,建立了USV避碰系统的知识库。该方法适用于宽敞的海面,但不适用于狭水道及交通繁忙水域;且研究中只考虑了一个障碍物的情况,并未针对多个障碍物进行相关,具有一定的局限性。
  中国海洋大学的马闯等 [24] 在通过在USV上布置水上水下两层声纳来获取现实环境中障碍物的三维信息,提出了一种改进的 VFH算法,实现了USV在三维空间内的实时在线避障;但采用VFH法会出现局部最小的情况,并产生震荡轨迹。
  江苏科技大学的庄肖波,齐亮 [36] 将蚁群算法(ACA)引入避碰规划中,实现了USV对运动目标的避碰;但该方法容易出现停滞现象,收敛速度得不到保证。
  
  总的来说,国外在无人艇局部危险避障方面研究比较深入,也提出了各种危险避障方法,有些技术已经较为成熟并得到了实际应用。而国内这方面的研究起步较晚,相关的实际应用产品也较少,很多技术仅处在理论研究阶段 [33]

博主 的硕士毕业论文


===========文档信息============
版权声明:非商用自由转载-保持署名-注明出处
署名(BY) :dkjkls(dkj卡洛斯)
文章出处:http://my.csdn.net/dkjkls

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值