舰船科学技术  2026, Vol. 48 Issue (6): 168-173    DOI: 10.3404/j.issn.1672-7649.2026.06.022   PDF    
基于Gazebo的喷冲式ROV作业仿真与控制验证
陈徽1, 杨柯1, 王猛2     
1. 中国计量大学 机电工程学院,浙江 杭州,310018;
2. 上海交通大学 船舶海洋与建筑工程学院,上海,200240
摘要: 仿真平台可为喷冲式ROV提供快速迭代验证的虚拟环境、优化作业计划、识别并规避潜在风险。本文针对喷冲式ROV搭建了仿真平台,用于算法验证和全流程作业仿真。该平台基于ROS和Gazebo搭建,通过编辑模型与海洋环境文件在Gazebo中集成,实现了作业可视化显示;借助Gazebo中的API编写控制插件、传感器插件以及多作用点扰动力插件模拟ROV的行为、感知和作业扰动力;通过话题通信机制完成Gazebo与ROS之间的实时动态交互;采用PD控制器和跟踪算法完成控制系统设计;最后分析全流程作业状态集、制定作业计划,配置仿真参数完成了全流程仿真。通过仿真实现了作业可视化、多作用点作业扰动力模拟、下潜悬停和循缆跟踪等功能,验证了仿真平台和控制策略的有效性。本文创新性地建立了多作用点扰动力模型;建立了基于插件的模块化仿真框架;设计了基于状态机的全流程作业仿真策略,为深海ROV作业仿真提供了新的技术解决方案。
关键词: 喷冲式ROV     Gazebo     全工作流程仿真    
Operational simulation and control verification of jetting ROV based on gazebo
CHEN Hui1, YANG Ke1, WANG Meng2     
1. College of Mechanical and Electrical Engineering, China Jiliang University, Hangzhou 310018, China;
2. School of Ocean and Civil Engineering, Shanghai Jiao Tong University, Shanghai 200240, China
Abstract: The simulation platform provides a virtual environment for rapid iterative verification of jet-propelled ROVs, optimizes operational plans, and identifies and mitigates potential risks. This paper describes the development of a simulation platform for jet-propelled ROVs, designed for algorithm verification and full-process operational simulation. The platform is built on ROS and Gazebo, integrating edited models and marine environment files within Gazebo to enable operational visualization; Control plugins, sensor plugins, and multi-point disturbance force plugins are developed using Gazebo's API to simulate the ROV's behavior, perception, and operational disturbance forces; real-time dynamic interaction between Gazebo and ROS is achieved through a topic communication mechanism; a PD controller and tracking algorithm are employed for control system design; finally, the entire operational state set is analyzed, an operational plan is formulated, and simulation parameters are configured to complete the full-process simulation. Through simulation, functions such as operation visualization, multi-point operation disturbance force simulation, descent hovering, and cable tracking were realized, verifying the effectiveness of the simulation platform and control strategy. This paper innovatively established a multi-point disturbance force model; established a plugin-based modular simulation framework; and designed a state machine-based full-process operation simulation strategy, providing a new technical solution for deep-sea ROV operation simulation.
Key words: jet ROV     Gazebo     full workflow simulation    
0 引 言

随着海上系统(风电场、石油、天然气等)的发展,海底电缆和管道已成为穿越海洋区域的关键通信与传输纽带[1]。直接铺设在海底的电缆容易受到船舶锚泊钩挂、基岩摩擦以及生物腐蚀造成的损坏[2]。将电缆埋入海底可有效避免上述损坏,因此有必要研究和优化海底开沟埋缆技术。目前用于海底开沟的设备类型主要有犁式开沟、机械式开沟和喷冲式开沟[3]3种。犁式开沟机本身无动力,靠母船拖拽行走,对母船要求高,不能间歇性运行;机械式开沟机在作业过程中存在结构复杂、性能低的缺点;与前2种相比,喷冲式开沟机具有自行走能力、结构简单以及开沟性能优越[4]。因此,兼具喷冲开沟和自行走能力的开沟机,是未来的主流发展方向。

喷冲式ROV主要功能模块由射流破土系统、行进机构、控制系统和传感器等部分构成。在喷冲作业中会受到复杂环境的干扰,其扰动力不确定性高、不容易建模。在设计抗干扰控制算法时,通常需要大量实验进行测试与优化,实验成本高昂且耗时较长。因此,有必要开发一套针对喷冲式ROV的专用仿真平台[5]

水下机器人领域有多款仿真环境,如UWSim、URSim、UUV Simulator、Stonefish、DAVE和HoloOcean等[611]。起初UWSim[6]被广泛应用,但该模拟器在动力学仿真方面有所欠缺[9];URSim[7]是在Unity平台开发的,此模拟器在物理保真度与高级渲染之间进行了折中处理[10];Stonefish开发了独特的模拟框架,直接使用OpenGL实现了水面和水下渲染[912];HoloOcean建立在UE4之上,渲染效果较好,但其主要模型和传感器都是集成在UE4中实现[11 - 13];UUV Simulator和DAVE模拟器是在Gazebo平台开发的,该模拟器可以通过物理引擎自动生成动力学模型,在物理保真度与高级渲染之间,更加注重物理层面的精确性[810]。除此之外Gazebo和ROS之间有丰富的通信接口,采用ROS和Gazebo联合开发从模拟器到实物平台可移植性较好、可以提高代码复用性[14],因此是本研究的首选模拟器。

本文采用ROS和Gazebo联合构建适合喷冲式ROV的仿真平台,结合PD控制以及轨迹跟踪算法,实现了喷冲式ROV全工作流程仿真。

1 喷冲式ROV仿真平台

本文依托ROS作为模块间通信的核心架构,结合Gazebo平台的物理引擎和可视化环境建模能力,搭建喷冲式ROV仿真平台。

1.1 可视化部分

可视化部分集成了本体模型、作业母船与电缆模型、海洋环境、环境光与灯光模组以及轨迹可视化插件等,如图1所示。

图 1 可视化仿真框图 Fig. 1 Visual simulation block diagram

集成步骤主要分为三部分:模型集成、环境与灯光集成以及轨迹可视化插件集成。

模型集成包含喷冲式ROV本体模型、作业母船与电缆模型。以本体模型为例介绍集成步骤:

步骤1 在Solidworks中将本体模型拆分成ROV本体、推进器、喷冲臂及抽吸臂4部分;

步骤2 依次建立各零部件的坐标系和旋转轴;

步骤3 借助SolidWorks to URDF Exporter插件定义各坐标系的父子关系;

步骤4 转换成相对应SDF模型文件包;

步骤5 在Solidworks中查看三维模型的参数并配置在SDF文件中。

作业母船及电缆模型采用本体模型同样的方法集成到Gazebo中。环境与灯光集成采用的是UUV Simulator项目中的ocean模型文件[8]。利用SDF文件结合材质脚本与纹理贴图实现。天空背景通过动态云层与Gazebo自带的天空纹理共同渲染实现;海洋环境通过加载局部定义的海洋模型,渲染出动态水波的效果;沙地则是使用一个高度贴近零的平整盒子模型,加载指定沙地材质文件,通过对模型文件进行重复纹理贴图生成细致均匀的沙地外观。在此基础上进一步调整海洋世界中的环境光并为ROV加入前后灯光模组,渲染海底世界。

轨迹可视化插件通过继承VisualPlugin父类调用可视化API,自行编写可视化插件实现ROV轨迹可视化功能。

1.2 运动控制部分

为了在Gazebo中更好的模拟ROV的运动控制行为,我们需要对ROV自身所涉及的控制组件,以及在作业过程中所受到的外力进行分析。

喷冲式ROV不仅拥有控制本体底层运动的推进器组件,同时还拥有用于开沟作业的喷冲臂、抽吸臂控制组件,如图2所示,喷冲式ROV在工作过程中包含多种干扰力。

图 2 ROV本体模型及外力分析 Fig. 2 ROV ontology model and external force analysis

仿真运动控制部分需要集成控制组件(推进器插件、执行机构控制插件)、力控组件(多个干扰力插件、水动力插件等)。为了能够实时获得ROV状态反馈,还应有本体运动和设备状态感知插件,如图3所示。

图 3 运动控制仿真框图 Fig. 3 Motion control simulation block diagram

Gazebo中通过编写插件来模拟ROV的行为与感知。编写插件时需继承所需API的父类(ModelPlugin、WorldPlugin和VisualPlugin等)。同时,在插件中预留话题接口实现话题的订阅和发布,完成Gazebo与ROS之间的动态交互。所需的重要插件如下:

1) 推进器插件。分别借助Link和Joint下的API(AddForce和SetVelocity)将ROS通信发布的推进器力值与相对应的螺旋桨转速作用在推进器桨叶质心。

2) 执行机构控制插件。借助API预留主旋转轴旋转角度与速度接口,利用SDF文件实现的并联机构完成液压杆的从动。

3) 多作用点扰动力插件。通过在等效扰动力位置定义虚拟连杆,借助API将力值作用在虚拟连杆上。由于Gazebo中加入摩擦后仿真时间较长,将坐底摩擦力等效在底部滑靴面心处。喷冲和抽吸干扰力依据高速浸没射流机理,估算射流反作用力;坐底摩擦力通过坐底压力与摩擦系数估算力值,施加在4个等效作用点位置;脐带缆本身为零浮力,考虑到研究的ROV本体较大,因此脐带缆干扰力对于本体影响相对较小,主要由水动力产生,借助水阻力公式进行估算其力值大小。多作用点作业扰动模拟相较于单点扰动仿真模型更能体现干扰力的空间分布和精准建模。

4) 水动力插件。通过接收本体运动信息并结合阻力系数实时计算水动力。水动力计算如式(1)[1516],其中速度为ROV对于洋流的相对速度,扰流力通过初始化时配置洋流绝对速度的方式添加。

$ \left\{\begin{aligned} & {F}_{a}={C}_{a}\rho Va,\\ &{M}_{a}={C}_{A}I\alpha ,\\ &{F}_{h}=-\frac{1}{2}{C}_{d}\rho {A}_{p}\left| {v}_{r}\right| {v}_{r},\\ &{M}_{hx}=-\frac{\rho }{64}({C}_{dy}{h}^{4}+{C}_{dz}{L}^{4})w\left|{w}_{x}\right| {w}_{x},\\ &{M}_{hy}=-\frac{\rho }{64}({C}_{dx}{h}^{4}+{C}_{dz}{w}^{4})L\left|{w}_{y}\right| {w}_{y},\\ &{M}_{hz}=-\frac{\rho }{64}({C}_{dy}{w}^{4}+{C}_{dx}{L}^{4})h\left| {w}_{z}\right| {w}_{z}。\end{aligned}\right. $ (1)

式中:$ {F}_{a}、{M}_{a} $为附加质量力和力矩;$ {C}_{a}、{C}_{A} $为附加质量系数和附加转动惯量系数;$ a、\alpha $为物体加速度和角加速度;$ \rho V $为与物体体 积相同的流体质量;$ I $为附加转动惯量;$ {F}_{h}、{M}_{h} $为水阻力和力矩,$ {C}_{d} $为阻力系数;$ {A}_{p} $为法向的投影面积;$ \rho $为流体密度;$ {v}_{r} $为物体与流体间的相对速度;$ {w}_{i} $为旋转速度,$ w、h、L $为三边尺寸。

5) 本体运动和状态感知插件。分别借助Model下的相应API获得模型的位置、姿态、线速度、角速度、加速度,通过话题将以上数据对外发布。

2 喷冲式ROV控制系统设计

喷冲式ROV具有四水平推进器和四垂直推进器。定深、定艏相以及循线跟踪控制是保证ROV完成开沟作业的必要功能。

2.1 推力分配

推进器布置见图2,水平推进器与前向夹角为30°,垂直推进器与垂向夹角为15°。

设空间布置的第$ k $个推进器中心相对ROV质心$ {C}_{t} $位置矢量为$ {r}_{k} $,推力大小为$ {F}_{k} $。则ROV所受推力、力矩矢量和为:

$ \begin{cases} {\left[\begin{array}{ccc} X & Y & Z \end{array}\right]}^{\mathrm{{T}}}=\displaystyle\sum\limits_{k=1}^{8}{F}_{k},\\ {\left[\begin{array}{ccc} K & M & N \end{array}\right]}^{\mathrm{{T}}}=\displaystyle\sum\limits_{k=1}^{8}{r}_{k}\times {F}_{k},\\ \tau ={\left[\begin{array}{cccccc} X & Y & Z & K & M & N \end{array}\right]}^{\mathrm{{T}}},\\ \tau =B\cdot F,\\ F={B}^+\cdot \tau 。\end{cases} $ (2)

通过式(2),借助伪逆$ {B}^{+} $可将6维的期望力/力矩向量$ \tau $直接映射为8维的推进器推力向量$ F $,实现了超定系统的最小二乘最优解,完成了从控制指令到执行机构的有效转换。

2.2 跟踪控制

定深、定艏相属于ROV的基础运动功能,是实现循线跟踪控制的前提。采用的PD控制器为:

$ u(t)={K}_{p}\left(e(t)+{T}_{d}\frac{{\mathrm{d}}e(t)}{{\mathrm{d}}t}\right)。$ (3)

式中:$ u(t) $为控制输出;$ e(t) $为控制误差;$ {K}_{p} $为放大系数;$ {T}_{d} $为微分时间常数。

开沟埋缆作业采取预先铺设电缆再开沟埋缆,期望路径通常分解成路径点的形式。路径跟踪细分为跟踪ROV的艏向、前向行进速度以及横向偏差,如图4所示。

图 4 路径跟踪算法 Fig. 4 Path-following algorithm

ROV的期望艏向根据前一个路径点$ {p}_{k-1} $的坐标和当前路径点$ {p}_{k} $的坐标计算得到:

$ {\psi }_{d}=\arctan \left(\frac{{y}_{k}-{y}_{k-1}}{{x}_{k}-{x}_{k-1}}\right)。$ (4)

横向偏差$ \Delta {L}_{y} $为:

$ \begin{array}{c} \Delta {L}_{y}=\sqrt{{\left({x}_{d}-x\right)}^{2}+{\left({y}_{d}-y\right)}^{2}}\cdot \cos \left({\alpha }_{L}\right)=\\ L\cdot \cos \left({\alpha }_{L}\right)。\end{array} $ (5)

式中:$ L $为位置偏差;$ {\alpha }_{L} $为艏向偏差。

最终的控制模型可表示为:

$ \tau =\left[\begin{array}{c} X\\ Y\\ N \end{array}\right]=\left[\begin{array}{c} {K}_{p1}\left({u}_{d}-u\right)+{K}_{d1}\left({\dot{u}}_{d}-\dot{u}\right)\\ {K}_{p2}\Delta {L}_{y}+{K}_{d2}\Delta {\dot{L}}_{y}\\ {K}_{p3}\left({\psi }_{d}-\psi \right)+{K}_{d3}\left({\dot{\psi }}_{d}-\dot{\psi }\right) \end{array}\right] 。$ (6)

式中:$ {\psi }_{d}、{u}_{d}、{p}_{d}({x}_{d},{y}_{d}) $均为期望值;$ \psi 、u、Q(x,y) $为实际值;$ {K}_{pi} $为比例系数;$ {K}_{di} $为微分系数;$ \tau $为计算得到的控制力和力矩。

2.3 基于ROS的控制系统实现

在ROS框架下设计了rov_control功能包,包含跟踪算法、PD控制器及推力分配器。为实现ROV的动态控制,将编译生成的共享库(.so文件)嵌入SDF配置文件加载进Gazebo仿真平台。借助ROS通信机制,rov_control功能包能够与Gazebo实现实时数据交互,从而在Gazebo界面中动态展示ROV的运动状态。ROV控制系统框图如图5所示。

图 5 ROV控制系统框图 Fig. 5 ROV control system block diagram

整个系统控制流程如下:

步骤1 初始化阶段。将SDF文件载入Gazebo仿真平台,在可视化界面中呈现出ROV本体模型与预设仿真环境,同时Gazebo物理引擎自动生成ROV的动力学模型。启动/thruster、/disturb、/execute话题订阅,以及/sensor话题发布。同时,水动力插件借助传感器数据产生力并作用在ROV本体上,rov_control功能包也被激活并处于待命状态。

步骤2 作业准备阶段。rov_control功能包开始订阅/start话题,判断作业是否启动,默认状态为未启动。

步骤3 作业执行阶段。接收到作业指令,系统将通过/sensor话题获取传感器数据,计算每个推进器所需推力,并通过/thruster话题将数据发送给推进器插件。

步骤4 干扰力和控制指令发布。通过/disturb和/execute话题完成预设的干扰力值和对应阶段控制指令的发布。

3 喷冲式ROV全流程仿真验证

通过对全流程作业状态集分析,完成喷冲式ROV全流程仿真验证。喷冲式ROV作业流程如图6所示。

图 6 作业全流程 Fig. 6 The whole process of operation

在布放阶段,作业船将ROV释放至水中,随后设备开始下潜,到达一定深度后开始悬停寻缆,最后跨骑坐底。下潜阶段先是垂推固定50%的推力下潜,接近悬停高度时采用位置点跟踪控制。

开沟作业阶段,设备进行喷冲臂及抽吸臂的下放,随后开始循缆开沟,开沟完成后执行设备复位。

回收阶段,设备完成作业后开始离底悬停,检查有无电缆缠绕,然后逐步上浮至水面。

本文主要对下潜、悬停寻缆、跨骑坐底、预动作、循缆开沟、设备复位、离底悬停、上浮8个工况进行仿真(见图7)。仿真参数如表1所示。

图 7 仿真可视化界面 Fig. 7 Simulation visualization interface

表 1 仿真条件参数表 Tab.1 Simulation condition parameter table

预动作与设备回收阶段通过配置执行机构插件的参数进行喷冲臂及抽吸臂下放和复位的模拟;开沟作业阶段跟踪预设轨迹进行循缆仿真。开沟过程中配置干扰力参数,模拟ROV遭受的喷冲干扰力、抽吸干扰力、脐带缆干扰力和坐底摩擦力等。干扰力通过插件施加在模型上,同时通过前馈补偿借助算法作用在推进器上。

基于ROS话题通信的状态机驱动架构,实现工作流程与Gazebo仿真环境的实时交互。状态管理节点负责维护ROV当前作业状态,通过发布/rov/current_state话题向各功能模块广播状态信息;同时订阅传感器数据话题/rov/sensor,根据深度、位置等反馈信息触发状态转换。当满足预设条件时,状态管理节点发布状态转换命令至/rov/state_transition话题,各插件模块接收命令后自动调整仿真参数和控制策略。

全流程三维实际轨迹如图8所示,布放、作业与回收3个阶段分别对应图的左、中、右三部分,其中作业路径由两段直线和两段圆弧构成。

图 8 全流程三维轨迹 Fig. 8 Three-dimensional trajectory of the whole process

下潜和上浮阶段,速度最终稳定在了0.86 m/s。开沟作业时前向行进速度符合期望速度,稳定在了0.08 m/s(见图9)。

图 9 速度曲线 Fig. 9 Velocity curve

在直线阶段误差接近为0,圆弧阶段有微小误差,符合预期(见图10)。

图 10 跟踪误差曲线 Fig. 10 Tracking error curve

图11LF、RF、LR、RR分别为左前、右前、左后、右后4个位置。左右对称布置,直线阶段左右两推力基本一致。圆弧阶段,水平左右推力需要依据艏相变化做相反调整;垂推需做相应调整使ROV稳定。作业阶段推进器推力均未超出最大推力值。

图 11 推力曲线 Fig. 11 Thrust curve
4 结 语

本文搭建了喷冲式ROV的全流程仿真平台,用以测试验证喷冲式ROV的控制算法。该仿真平台整合了喷冲式ROV的动力学模型、多种控制器和传感器,借助Gazebo物理引擎实现了对水环境和干扰力的模拟。其中ROS作为通信框架,实现了系统组件间的信息交互和数据处理。本研究结合特种ROV作业方式利用插件机制实现了多源扰动模拟、海底可视化环境优化,多作用点扰动模拟较单点集中式建模更贴合喷冲式ROV多源干扰特性;完成了作业全流程仿真,分析仿真数据验证了仿真平台的有效性;最终形成了特种ROV仿真验证环境。

参考文献
[1]
ATANGANA NJOCK P G, ZHENG Q, ZHANG N, et al. Perspective review on subsea jet trenching technology and modeling[J]. Journal of Marine Science and Engineering, 2020, 8(6): 460. DOI:10.3390/jmse8060460
[2]
LU Z, CAO C, GE Y, et al. Research on improving the working efficiency of hydraulic jet submarine cable laying machine[J]. Journal of Marine Science and Engineering, 2021, 9(7): 745. DOI:10.3390/jmse9070745
[3]
李文涛, 葛彤. 挖沟机相关技术进展[J]. 船海工程, 2010, 39(4): 146-150. DOI:10.3963/j.issn.1671-7953.2010.04.046
[4]
YU Z, JIN Z, WANG K, et al. Design and study of mechanical cutting mechanism for submarine cable burial machine[J]. Journal of Marine Science and Engineering, 2023, 11(12): 2371. DOI:10.3390/jmse11122371
[5]
YANG X, ZHANG Q, WANG C, et al. Development and construction of a simulation platform for a new R-ROV[C]//2022 12th International Conference on CYBER Technology in Automation, Control, and Intelligent Systems (CYBER). Baishan, China: IEEE, 2022.
[6]
PRATS M, PEREZ J, FERNANDEZ J J, et al. An open source tool for simulation and supervision of underwater intervention missions[C]//2012 IEEE/RSJ International Conference on Intelligent Robots and Systems. Vilamoura-Algarve, Portugal: IEEE, 2012.
[7]
KATARA P, KHANNA M, NAGAR H, et al. Open source simulator for unmanned underwater vehicles using ROS and unity3D[C]//2019 IEEE Underwater Technology (UT). Kaohsiung, Taiwan: IEEE, 2019.
[8]
MANHAES M M M, SCHERER S A, VOSS M, et al. UUV simulator: A gazebo-based package for underwater intervention and multi-robot simulation[C]//Oceans 2016 MTS/IEEE Monterey. Monterey, CA, USA: IEEE, 2016.
[9]
CIESLAK P. Stonefish: An advanced open-source simulation tool designed for marine robotics, with a ROS interface[C]//Oceans 2019 - Marseille. Marseille, France: IEEE, 2019.
[10]
ZHANG M M, CHOI W S, HERMAN J, et al. DAVE aquatic virtual environment: toward a general underwater robotics simulator[C]//2022 IEEE/OES Autonomous Underwater Vehicles Symposium (AUV). Singapore: IEEE, 2022.
[11]
POTOKAR E, ASHFORD S, KAESS M, et al. Holoocean: an underwater robotics simulator[C]//2022 International Conference on Robotics and Automation (ICRA). Philadelphia, PA, USA: IEEE, 2022.
[12]
GRIMALDI M, CIESLAK P, OCHOA E, et al. Stonefish: Supporting machine learning research in marine robotics[A]. arXiv, 2025.
[13]
POTOKAR E, LAY K, NORMAN K, et al. Holoocean: a full-featured marine robotics simulator for perception and autonomy[J]. IEEE Journal of Oceanic Engineering, 2024, 49(4): 1322-1336. DOI:10.1109/JOE.2024.3410290
[14]
NOORI F M, PORTUGAL D, ROCHA R P, et al. On 3D simulators for multi-robot systems in ROS: MORSE or Gazebo?[C]//2017 IEEE International Symposium on Safety, Security and Rescue Robotics (SSRR). Shanghai, China: IEEE, 2017.
[15]
LIN C C, CHEN R C, LI T L. Experimental determination of the hydrodynamic coefficients of an underwater manipulator[J]. Journal of Robotic Systems, 1999, 16(6): 329-338. DOI:10.1002/(SICI)1097-4563(199906)16:6<329::AID-ROB2>3.0.CO;2-5
[16]
Şafak K K, Adams G G. Dynamic modeling and hydrodynamic performance of biomimetic underwater robot locomotion[J]. Autonomous Robots, 2002, 13(3): 223-240. DOI:10.1023/A:1020516108579