摘 要:针对海面油污清理,人工清理方法成本高、危害高,尤其无法适应恶劣天气下的复杂海况及易发生火灾的有毒油污环境。为此,引入装载油污清理设备的多艘无人艇协同清理海面油污成为一种必要方式。为了解决多艘无人艇之间的高效协作,提出了一种自定义直角路径规划算法。首先,将给定油污图像进行边缘轮廓提取、凸包点查找与聚类;其次,确定目标凸包点及其与多无人艇间的分配;然后,通过自定义直角法路径规划出由当前位置至目标凸包点的无碰撞路径。最后,进行对比仿真实验,验证了自定义直角路径规划算法规划出的路径转折点少、易于无人艇跟踪、更具可行性和优越性。
关键词:原油泄漏;海面油污清理;多无人艇;路径规划;图像处理
周旭; 葛愿; 李文战; 叶刚 电子测量技术 2021-12-31
0 引言
随着石油工业和海上运输业的发展,以及海洋经济活动的日益频繁,导致海上原油泄漏事故频繁发生。据统计,全世界每年有数百万吨的原油流入海洋[1]。原油泄漏不仅对人类的财产安全造成威胁,而且对海洋生物及生态环境造成了恶劣的影响[2]。我国海域面积达 473 万 2 km ,海岸线为 18000km。目前,由原油泄漏所导致的海洋污染问题在我国形势依然严峻,因此对于海洋油污的及时清理工作意义重大。
目前,清理海面油污的传统方法是人工驾驶船只使用围油栅将油污围控,并利用清理设备对油污进行清理回收。当面对较为复杂的海面环境时,如多雾、多雨等天气,工作人员将会因视线受阻而无法实时操纵船只;当作业面积过大时,则需大量船只和人员进行长时间工作,且由于油污中含有苯、芳香烃、硫化氢等有毒气体,不利于工作人员的身体健康[3]。针对人工清理方法的高成本及危害性问题,本文引入装载油污清理设备的无人艇代替人工完成油污清理工作。
无人艇是一种不需要人为操作、可完成各种任务的水面运动平台。由于其成本低、速度快、灵活性高等特点,越来越多的应用到海上、河流或湖泊的军事或民用领域上[4-5]。在军事领域上无人艇已广泛应用于扫雷、侦察和反潜作战等方面,在民用领域中无人艇主要应用于水文气象探测、环境监测和水上搜救等专项服务中[6-8]。为了更有效地完成任务,路径规划和路径控制技术在无人艇的工业应用和科学研究中发挥了重要作用,引起了人们的极大关注。无人艇路径规划技术是通过将航行环境中影响无人艇路径规划的信息提取出来并进行环境建模,然后在已建立的模型基础上规划出一条从起始节点到目标节点的无碰撞路径。其本质是一个具有复杂约束的系统优化问题[9-10]。目前常用的规划方法主要有人工势场法[11-12]、遗传算法[13]、粒子群算法[14-16]、A*算法[ 17-19]、快速行进算法[20-21]、 Dijkstra 算法[22-24]等。其中遗传算法高效且能够进行并行处理,但是利用遗传算法规划所得的路径缺乏收敛性和一致性,使得无人艇难以跟踪。相较于遗传算法,粒子群优化算法比较简单,但是针对不同的任务需求没有一种特定的理论来指导路径的生成,因此在实际应用当中还存在一定的局限性。在无人艇的路径规划当中,Dijkstra 方法以及 A*算法是两种较为有效的方法。利用这两种方法生成的路径具有很好的收敛性和一致性,但路径具有多个转折点,且转折角度过大,不利于无人艇在实际海洋环境下进行跟踪。
虽然上述算法在一定程度上可以进行路径规划,但在海面油污清理的应用中,这些算法适应性不足,规划出的路径有很大一部分贴近于油污边缘且路径转折点过多,不仅不利于无人艇跟踪,而且也不能有效执行清理任务计划。因此本文针对海面油污清理任务的特殊性,提出了一种自定义直角路径规划算法,通过此算法规划出的路径不仅可以自动规避油污区域,而且路径转折点较少,利于无人艇跟踪,可有效完成油污清理任务。最后,为验证所提方法的有效性和适应性,本文在 MATLAB 环境中进行了一定量的仿真实验。
1 问题描述
在本研究中,引入装载油污清理设备的多无人艇,协同作业解决海面油污清理问题。将给定假设经过处理后的油污图像作为输入,依据多无人艇目标凸包点分配策略和自定义直角路径规划算法为无人艇规划出一条安全、合理、可航行的路径,为此必须保证在多无人艇的清理下油污面积不断减少呈收缩趋势,以及规划出的路径转折点要少、不能穿越油污区域,便于无人艇跟踪。
本文拟采用三艘无人艇,并给定海面油污图像。假设海面油污不受风、浪、流等自然环境因素影响而扩散,油污清理以 T 分钟为一个周期且清理设备每分钟吸取油污量一定。首先对油污图像进行图像处理,提取出图像边缘轮廓并进行凸包点查找、聚类;然后用图像重心替代中心,计算每一类中凸包点到中心的距离,选出距离最远的点作为该类的凸包点即类凸包点;最后从所有类凸包点中选取距离中心最远的三个凸包点作为目标凸包点。无人艇在航行中首先运动到目标凸包点,以确保在油污清理开始时,其位置处在油污区域的最凸位置;然后当所有无人艇均到达目标凸包点后,无人艇开始沿着目标凸包点往图像中心运动并清理油污。这样,经过清理后可保证油污面积不断减少且成收缩趋势。本文采用自定义直角路径规划算法进行路径规划,可以规划出符合多无人艇进行油污清理工作所需求的路径,此方法在本文第三节详细阐述。据以上描述,油污清理问题整体方案设计流程图如 1。
2 油污图像处理
2.1 环境建模
进行路径规划时,需要将海域环境图进行处理。首先将图片进行二值化处理转换成黑白图像,即将像素点的灰度值变为 0 或 255,像素点的取值是通过给定的阈值进行判断。当该点的灰度值等于或超过阈值时判定为可航行区域;反之,判断为不可航行的障碍物区域。本文将油污分布区域归纳为黑色区域,白色区域认定为无人艇可航行区域。经过二值化处理后的图像,能够反映出海面油污区域和可航行区域,从而达到分割的效果,进而可对油污区域图像进行边缘轮廓提取,方便后续进行路径规划。
2.2 凸包点聚类与分配
图像边缘轮廓提取后,需要对图形凸包点进行查找和聚类,进而确定目标凸包点,其中聚类方法和目标凸包点的确定如下:假设存在 N 个凸包点,凸包点之间共存在 N 1 个间距。设置一个分区参考距离 d,将大于参考距离的间距总数记作 C。当 C 大于 3 时,凸包点划分为 C 类;当 C 小于 3 时,由于选用 3 艘无人艇,每艘无人艇都必须要选取一个凸包点作为目标凸包点,所以将凸包点划分为 3 类。凸包点聚类图如图 2 所示。其中类凸包点为每一类凸包点中距离中心最远的点如图3所示;当目标凸包点确定后,需要对多无人艇进行路径规划,无人艇依据就近原则选取目标凸包点。当出现多个无人艇距离同一目标凸包点距离相等时,指定一艘无人艇先选择,其他无人艇随机选择。
3 自定义直角路径规划方法
自定义直角路径规划是指以无人艇所在位置为初始点,以初始点与目标凸包点连线为直径做圆,并以此线段作为偏移线段;然后,以初始点作为固定点,以一定角度向偏离油污区域方向进行偏移,找出偏移后第一条不穿越油污区域的线段,并将该线段与圆的交点定义为目标圆点;接着,初始点与目标凸包点分别与目标圆点相连接,则得到一条从初始点到目标点的路径,形成此路径的两个线段夹角为直角;同理,以目标凸包点为固定点,利用上述方法操作并找到目标圆点,则得到一条从目标点到初始点的路径;最后,将两条路径的交点分别与初始点和目标凸包点相连,则得到最终路径。其方法示意图如下图 4 所示。
图 4 中,线 1 代表部分油污区域外轮廓,线 2 代表从初始点到达目标凸包点所规划出的路径,线 3 代表从目标凸包点到初始点所规划出的路径,线 4 代表经过两次路径规划得到的最终路径。
3.1 偏移方向判断规则
偏移方向判断规则:如果中心点位于初始点指向目标凸包点向量的左侧则顺时针偏移,反之逆时针偏移。如果中心点位于目标凸包点指向初始点向量的右侧则顺时针偏移,反之逆时针偏移。本文利用初始点指向目标凸包点向量与凸包点指向中心点向量的角度差来替代偏移规则中中心点位于初始点指向目标凸包点向量和目标凸包点指向初始点向量的左右情况来判断,判断规则如式(1)所示: _ 1 _ 1 _ 0 _ 1 _ 1 _ 1 _ 1 _ 0 _ 1 _ 1 s s s s s s s s s s ,逆时针偏向,顺时针偏向,顺时针偏向,顺时针偏向,逆时针偏向,逆时针偏向 (1) 式(1)中 _ s 为初始点指向目标凸包点的向量与水平轴夹角、1 为目标凸包点指向中心点的向量与水平轴夹角、为偏移角度。 _ s 和1 的计算公式如式(2)、(3)所示: _ arctan( 2(2) 1(2), 2(1) 1(1)) s p p p p (2) 1 arctan(A(2) 1(2),A(1) 1(1)) p p (3) 式(2)、(3)中 p1 为初始点坐标、 p2 为目标凸包点、A 为中心点坐标。偏移后线段与水平轴的夹角为 _ temp ,其取值与偏移方向有关,如式(4)所示: _ _ _ _ temp s temp s ,顺时针偏向,逆时针偏向 (4) 经 过 偏移后 初 始 点 与 圆 上 交 点 的 线 段 为 r temp r temp s _ 2 cos( _ _ ) ,此线段与圆的交点坐标计算公式如式(5)所示: (1) 1(1) _ cos( _ ) (2) 1(2) _ sin( _ ) c p r temp temp c p r temp temp (5)
3.2 目标圆点查找算法流程图
目标圆点查找算法如图 5 所示.
图 5 中初始线段是指初始点与目标凸包点连线线段, round x( ) 函数作用定义为四舍五入, n 的表达式如式(6)所示: 2 2 n round c p c p ( (2) 1(2)) ( (1) 1(1)) 2 2 (6)
4 仿真分析
本文在MATLAB中将所提算法与A*算法和RRT* 算法进行了对比仿真实验,验证了所提方法的可行性和优越性。表 1 为仿真实验参数表,其中 S 为无人艇在目标凸包点位置往中心点移动 T 分钟的距离值,即无人艇在清理油污过程中 T 分钟所前进的距离。
图 6、7 为给定初始状态海面油污图和第一次油污被清理后的图像即油污被无人艇清理 T 分钟后的图像。
规划后的路径分为区外路径和区内路径,区外路径为无人艇到达目标凸包点的航行路径,区内路径为油污清理设备清理油污时无人艇的航行路径。通过对比图8、图 9、图 10 和图 11,可清楚看到利用自定义直角算法规划出的路径转折点数为 0 或 1 且远少于 A*算法和 RRT*算法规划出的路径转折点数。同时,图中 A* 算法和 RRT*算法规划出的路径很大一部分更贴近油污边缘。由此可以推出以下结论,在适用于海面油污清理场景中,A*算法和 RRT*算法所规划出的路径不利于无人艇跟踪,且由于路径更贴近油污边缘,所以当无人艇沿油污边缘行驶时产生的波浪会对油污边缘造成影响,以至于在无人艇未到达目标凸包点之前由于波浪的影响导致之前计算的目标凸包点失效,进而导致油污清理方案不能够有效执行,不具适用性;同时,转折点过多也将会导致无人艇在运动过程中因多次转弯、调头等动作而带来更多的能量消耗。而本文所提算法则克服了 A*算法和 RRT*算法的不足,所规划出的路径效果更优,更有利于多无人艇按照路线航行和执行任务,更具适用性和优越性。
5 结论
本文针对海面油污清理问题,引入多无人艇协同作业完成油污清理工作,并提出一种自定义直角路径规划算法解决了无人艇之间的协作问题。通过将给定油污图像进行图像处理,得到图像边缘轮廓及其凸包点;然后确定目标凸包点,并与无人艇进行分配;最后利用所提算法,规划出无人艇当前位置至目标凸包点的无碰撞路径。仿真结果表明,所提算法能够高效规划出油污清理所需路径,具有一定的优越性和适用性。文中存在一些不足之处,如目标凸包点分配时,当两艘无人艇距离同一凸包点距离相同时,依据凸包点分配规则,规划出的路径可能出现在圆外,导致路径距离过长。针对此类问题,未来将会更深入的研究。