Next Article in Journal
Predicting the Motion of a USV Using Support Vector Regression with Mixed Kernel Function
Next Article in Special Issue
Real-Time Emergency Collision Avoidance for Unmanned Surface Vehicles with COLREGS Flexibly Obeyed
Previous Article in Journal
A Na+/H+-Exchanger Gene from Penaeus monodon: Molecular Characterization and Expression Analysis under Ammonia Nitrogen Stress
Previous Article in Special Issue
Fault-Tree-Analysis-Based Health Monitoring for Autonomous Underwater Vehicle
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

An Open-Source Benchmark Simulator: Control of a BlueROV2 Underwater Robot

1
AAU Energy, Aalborg University, 6700 Esbjerg, Denmark
2
Department of Mechanical and Electrical Engineering, University of Southern Denmark, SDU, 6400 Sønderborg, Denmark
*
Author to whom correspondence should be addressed.
J. Mar. Sci. Eng. 2022, 10(12), 1898; https://doi.org/10.3390/jmse10121898
Submission received: 28 October 2022 / Revised: 15 November 2022 / Accepted: 20 November 2022 / Published: 5 December 2022
(This article belongs to the Special Issue Advances in Marine Vehicles, Automation and Robotics)

Abstract

:
This paper presents a simulation model environment for the popular and low-cost remotely operated vehicle (ROV) BlueROV2 implemented in Simulink™ which has been designed and experimentally validated for benchmark control algorithms for underwater vehicles. The BlueROV2 model is based on Fossen’s equations and includes a kinematic model of the vehicle, the hydrodynamics of vehicle and water interaction, a dynamic model of the thrusters, and, lastly, the gravitational/buoyant forces. The hydrodynamic parameters and thruster model have been validated in a test facility. The benchmark model also includes the ocean current, modeled as constant velocity. The tether connecting the ROV to the top-site facility has been modeled using the lumped mass method and is implemented as a force input to the ROV model. At last, to show the usefulness of the benchmark model, a case study is presented where a BlueROV2 is deployed to inspect an offshore monopile structure. The case study uses a sliding mode controller designed for the BlueROV2. The controller fulfills the design criteria defined for the case study by following the provided trajectory with a low error. It is concluded that the simulator establishes a benchmark for future control schemes for position control and trajectory tracking under the influence of environmental disturbances.

1. Introduction

The area of remotely operated vehicles (ROVs) and autonomous underwater vehicles (AUVs) has rapidly developed, with several decades of experience, both in research (see, for example, the study described in [1]) and industrial applications of increasing complexity, both in terms of missions and levels of automation (see for example [2] on cooperative navigation). Regarding the latter, many control algorithms have been proposed, both for simulated and actual vehicles. However, it is generally not immediate to compare control algorithms between them. Indeed, while some articles comparing newly-proposed control laws for ROV stabilization to previous algorithms can easily be found [3,4,5,6,7,8], it is primarily based on simulation models for which the actual physical replica is not easily accessible or affordable, thereby limiting the comparability between control algorithms and the extent of the benchmarking attempt.
More recently, the industry has also evolved towards more affordable products meant for researchers, students, or hobbyists, several of which are proposed under the open-source paradigm (see, for example, OpenROV, OpenROV Trident, BlueROV2) [9]. The advantages of open software and hardware solutions lie in their cost-effectiveness compared to conventional solutions and that they allow increasingly faster development, modifications, and improvements. Among these solutions, the widely-popular BlueROV2 [10] combines an open-source architecture with components of sufficiently good quality, allowing relatively advanced missions (see, for example, [11,12,13]).
Several robot simulators have previously been developed, some of which are specific for underwater robots [14,15,16]. However, the simulators for underwater robots are generally based on a user-defined model, such as the UUV Simulator [14] package for Gazebo or the Simu2VITA [15] block for Simulink™, which makes it challenging to use as a benchmark for control algorithms. Furthermore, these simulators neglect the tether force many underwater robots use for top-site communications or power [17]. The present paper aims at bridging the gap between simulation for control systems and experimental testing by proposing a MATLAB™ and Simulink™ open-source package of the tethered BlueROV2 for the control community as a benchmark in simulation toward full deployment on the same well-known platform. MATLAB™ and Simulink™ have been chosen as they are well-known to the control community and offer various toolboxes to implement advanced control and missions. These missions could be measuring reefs [18], monitoring and removal of marine growth on offshore structures [3,19,20], water quality and ecology monitoring [21], detection of oil plumes [22], fish farm net monitoring [23], etc.
Section 2 will be dedicated to the presentation of the BlueROV2 platform in terms of hardware (frame, thrusters, sensors). In Section 3, we recall the dynamic equations of motions of underwater vehicles propelled by thrusters using the well-known η - ν Fossen notation [24]. The parameters of this model are then identified for the particular case of the BlueROV2 in Section 4, and the model is then validated using experimental data. Since the tether attached to the ROV has a significant impact on the dynamics, it is included in the overall model, see Section 6. Section 7 proposes a sliding-mode controller meant as a benchmark for the community to compare against subsequent controllers. Section 8 then starts with the presentation of a modular simulator fully implemented in MATLAB™ and Simulink™ and based on the model from Section 3 and the parameters from Section 4. Appendix B provides a detailed guide to using the simulator. Section 9 examines a case study on offshore monopile inspection to demonstrate the use of the proposed simulator. Finally, a few concluding remarks end the paper. The proposed simulator can be found at Github in Supplementary Materials, accessed on 1 October 2022.

2. BlueROV2: An Open-Source Underwater Vehicle

The BlueROV2 is a tethered ROV. The tether is used for communication between the vehicle and a top-side unit. The vehicle can be powered either through the tether or by an onboard battery. The ROV comes with various onboard sensors, including a pressure transmitter, leak detection sensors, a power sense module, an Inertial Measurement Unit (IMU), and a magnetometer. The IMU consists of an accelerometer and a gyroscope. The IMU and magnetometer are integrated in a Pixhawk. The open-source software architecture allows adding additional sensors such as an Underwater Acoustic Positioning System (UAPS), Doppler Velocity Log (DVL), camera vision, sonar, lasers, etc. Software implementation of the sensors on the physical hardware can be done on the Pixhawk through ArduSub or on the Raspberry Pi using the MAVLink protocol. However, the simulator is based on MATLAB™and Simulink™, and therefore implementation on the physical hardware is not considered. A list of common sensors and their properties is shown in Table 1, where the associated state measurements are given according to the notation used in the model presented in the next section.
The main control board on the BlueROV2 is a Raspberry Pi 3, which is connected to a top-side computer through an Ethernet connection. Besides the Raspberry Pi 3, the electronic tube contains a Pixhawk. The Ethernet communication is transferred top-side through a Fathom-X Tether Interface, which provides a long-distance Ethernet connection over a single twisted pair of wires. The hardware and interfaces of the BlueROV2 is shown in Figure 1.
Blue Robotics Inc.’s heavy configuration kit is installed as additional equipment on the BlueROV2, which includes two additional T200 thrusters, such that the thrusters can be paired to move in all degrees of freedom. This modification is illustrated in Figure 2. The difference in thruster allocation between the normal and the heavy configuration is shown in Figure 3 and Table 2, the most noticeable difference is that the heavy configuration is controllable in pitch. Tools can be installed for specific operations, such as a gripper (purchased together with the BlueROV2), a water jet [3], etc.

3. Mathematical Modeling

In the following, we will distinguish between the body or b-frame and world or n-frame as illustrated in Figure 4, where the respective degrees of freedom are visualized in each frame.
In this section, we recall the standard mathematical model of an underwater vehicle, to which the BlueROV2 applies. This model is based on the following few assumptions:
Assumption 1.
The vehicle is assumed to be rigid, and 6 degrees of freedom are considered.
Assumption 2.
The ROV is assumed symmetric around the front-back, port-starboard and the top-bottom axes.
Assumption 3.
The body axes coincide with the principles axes of inertia.
Assumption 4.
The origin of the b-frame is located at the center of mass of the vehicle.
Remark 1.
The Assumptions 1–4 are common when modeling underwater vehicles [26].
Assumption 5.
The ocean current is modeled as a constant irrotational flow in the n-frame. The current is projected on the ROV as a change in velocity. Waves are neglected.
Remark 2.
The Assumption 5 is a simplified model of the current, as ocean currents are mainly caused by tidal movements and can be dependent on both the local climate and the geographic characteristics [27]. Furthermore, the current velocity varies both with space and time. However, from a control perspective where the current acts as a disturbance to the system, the time dependency can be neglected due to the relatively slowly varying current compared to the dynamics of the controlled system [26].
In the following, we will use the well-known compact η - ν Fossen notation (first proposed in [28]), itself gathering in a vectorial form elements of the SNAME nomenclature (see [29,30], and a list of the variables and parameters used hereafter summarized in Table 3). It is given by
η ˙ = J ( η ) ν
M ν ˙ + C ( ν ) ν + D ( ν ) ν + g ( η ) = τ + τ t e t
where ν = [ u , v , w , p , q , r ] T is the vector of body-fixed velocities (surge, sway, heave, roll, pitch and yaw) and η = [ x , y , z , ϕ , θ , ψ ] T is the vector combining the positions and Euler angles with respect to the n-frame. The vector τ = [ X , Y , Z , K , M , N ] T contains the forces and moments applied to the vehicle.
Equation (1) represents the kinematic equations of motion, where
J ( η ) = J 1 ( η ) 0 3 × 3 0 3 × 3 J 2 ( η ) ,
and
J 1 ( η ) = cos ψ cos θ sin ψ cos ϕ + cos ψ sin θ sin ϕ sin ψ sin ϕ + cos ψ cos ϕ sin θ sin ψ cos θ cos ψ cos ϕ + sin ϕ sin θ sin ψ cos ψ sin ϕ + sin θ sin ψ cos ϕ sin θ cos θ sin ϕ cos θ cos ϕ
J 2 ( η ) = 1 sin ϕ tan θ cos ϕ tan θ 0 cos ϕ sin ϕ 0 sin ϕ / cos θ cos ϕ / cos θ ,
where let us recall that J 2 ( η ) is not defined when θ = { π , π } [ 2 π ] .
The constant, symmetric and strictly positive definite inertia matrix M = M R B + M A combines the rigid-body inertia matrix M R B given by
M R B = m I 3 × 3 0 3 × 3 0 3 × 3 I c
with I c = d i a g { I x , I y , I z } , and the added-mass and inertia matrix, which we assume to be diagonal containing the added-mass coefficients, so that we have
M A = d i a g { X u ˙ , Y v ˙ , Z w ˙ , K p ˙ , M q ˙ , N r ˙ } .
Skew-symmetric Coriolis matrix C ( ν ) = C R B ( ν ) + C A ( ν ) also combines rigid-body and hydrodynamics effects, with
C R B = 0 0 0 0 m w m v 0 0 0 m w 0 m u 0 0 0 m v m u 0 0 m w m v 0 I z r I y q m w 0 m u I z r 0 I x p m v m u 0 I y q I x p 0
and
C A = 0 0 0 0 Z w ˙ w Y v ˙ v 0 0 0 Z w ˙ w 0 X u ˙ u 0 0 0 Y v ˙ v X u ˙ u 0 0 Z w ˙ w Y v ˙ v 0 N r ˙ r M q ˙ q Z w ˙ w 0 X u ˙ u N r ˙ r 0 K p ˙ p Y v ˙ v X u ˙ u 0 M q ˙ q K p ˙ p 0
At low-speed, the hydrodynamic damping matrix D ( ν ) = D + D n ( ν ) is considered without coupling, so that we have the diagonal matrices containing the linear and nonlinear damping coefficients
D = d i a g ( X u , Y v , Z w , K p , M q , N r )
and
D n ( ν ) = d i a g X u | u | | u | , Y v | v | | v | , Z w | w | | w | , K p | p | | p | , M q | q | | q | , N r | r | | r | ) ,
the latter diagonal matrix representing quadratic damping.
Taking into account Assumption 4, the vector of restoring forces (gravitational and buoyancy forces) g ( η ) is expressed as
g ( η ) = ( W B ) sin θ ( W B ) cos θ sin ϕ ( W B ) cos θ cos ϕ y b B cos θ cos ϕ z b B cos θ sin ϕ z b B sin θ x b B cos θ cos ϕ x b B cos θ sin ϕ + y b B sin θ .
where W = m g and B = ρ g are the gravity and buoyancy forces, respectively ( ρ the water density and ∇ the volume of fluid displaced by the vehicle), and ( x b , y b , z b ) are the coordinates of the center of buoyancy expressed in the b-frame.
An ROV like the BlueROV2 is typically actuated by a number r of fixed thrusters. In order to link the vector τ to the voltages V i applied to each thruster i ( i { 1 , , r } ), we use the expression
τ = T K ( s ) F ( V )
with V = [ V 1 , , V r ] T denoting thruster voltages in column vector F ( V ) . Matrix T R 6 × r is the so-called thrust configuration matrix (see [24]):
T = [ t 1 , , t r ]
thereby, we obtain the thruster mixing matrix, where each column vector t i links the force F i created by each thruster to vector τ :
t i = ε i r i × ε i
where ε i is a unit vector representing the orientation of thruster i and r i is the distance between the point of application of the force F i and the center of the b-frame.
The diagonal matrix K ( s ) contains unity DC-gain transfer functions accounting for the dynamic relation between V i and the force F i , i.e., we have
K ( s ) = d i a g ( K 1 ( s ) , , K r ( s ) ) .

4. Parameter Identification and Model Validation

This section covers the identification procedure and validation of model parameters listed in Table A1. Table A1 specifies whether the parameter is determined from experiments, from a CAD-model, or obtained from other sources.

4.1. Thruster Model

The BlueROV2 in heavy configuration is built with eight T200 thrusters. The numbering and loci follow the definition of the manufacturer [31]. The thruster orientation, ε i , location, r i , is given in Table A1. The thrusters are located in a circular pattern and the rotation matrix used is denoted
J 3 ( α ) = cos α sin α 0 sin α cos α 0 0 0 1
A nonlinear regression to normalized input voltages and measured force, F ( V ) , is obtained from experiments conducted in prior work [4]. The regression given for V i [ 1 , 1 ] is
F i ( V i ) = 140.3 V i 9 + 389.9 V i 7 404.1 V i 5 + 176.0 V i 3 + 8.9 V i
The thruster dynamics is described by the diagonal transfer function matrix K ( s ) = d i a g ( K 1 ( s ) , , K r ( s ) ) . The diagonal elements are equal and obtained from system identification on experimental data published by MathWorks [32]. The following third order transfer function with unity DC-gain was identified
K i ( s ) = 6136 s + 108700 s 3 + 89 s 2 + 9258 s + 108700
The maximum velocities and forces of each direction of motion are shown in Table 4.

4.2. Hydrodynamic Damping

The hydrodynamic damping coefficients given in Equations (10) and (11) are determined in a comparative study of the model output and from a series of experiments conducted in a 1.15 m deep 6.1 m diameter pool. The experiments are designed such that the ROV is actuated individually and in open-loop in all 6-DOF, one at a time, at an interval of several input voltages. Each experiment is conducted twice, where the first instance is used for estimating coefficients and the latter is used for validation. Rather than actuating the thrusters individually, the thrusters are actuated using the standard ArduSUB software allowing for actuating along the 6-DOF directly. The individual thruster input is logged during the experiments and used as input to the model.
The ROV is actuated in each direction of motion from just above the deadzone of the thrusters at 20% input to 100% input, with a step-wise increase of 10%. As an example of one of these tests, Figure 5 compares the experimental data and the model output given 50% input in the surge direction. Position feedback is obtained by using a UAPS Short BaseLine (SBL) location system. The disturbance from tether forces is reduced by manually maneuvering the tether in the direction of the ROV, but it has not been possible to eliminate this disturbance entirely. As a consequence, a proportional feedback controller is used for regulating to a constant depth to ensure that the ROV does not hit the pool bottom or water surface during the surge and sway-direction experiments.
As seen in Figure 5, the thrusters are activated after 20 s. The quasi-static part of the motion is used for determining the velocity and consequently the difference between the simulation model and experimental measurements. Figure 6 shows the error for an interval of inputs from just above the deadzone of the thrusters to maximum input, from 20% to 100% input. The largest model discrepancy for both the surge and sway direction of motion is approximately 10%.
Hydrodynamic coefficients related to the heave motion are estimated and validated by performing an experiment where the ROV is submerged at the bottom of the pool and actuating thrusters in the negative heave direction. The heave motion is determined using the pressure sensor. Figure 6 shows that the heave motion model error for the thrust input of 20% is 15% and that the error reduces for larger inputs.
Rotational motion in pitch, roll, and yaw is validated using the integrated Inertial Measurement Unit (IMU) for angular velocity measurement. It is necessary to fully rotate the ROV during the rotational drag tests. This requires an input of more than 30%. Therefore, for the rotational motions, the input given is from 30% to 100% with a step-wise increase of 10%. The model discrepancy for pitch, roll, and yaw is seen in Figure 7. Roll motion error is seen to increase at higher inputs to approximately 10%. The largest discrepancy between the model and experiment for pitch and yaw rotation is 10% and 12%, respectively.
The error bars shown in Figure 6 and Figure 7 show the error between the corrected simulation model and the validation data. There is no clear pattern in the error to further optimize the second order polynomial model. If the hydrodynamic model should be further improved, this requires more precise measurements along with more tests to obtain knowledge about the tendency of the error. This has not been deemed necessary.

4.3. Added Mass

Added mass coefficients presented in Equation (7) are estimated from Eidsvik method [33], which builds upon the experimental work outlined by Det Norske Veritas (DNV) [34]. Eidsvik shows that the relative error of the empirical estimations in translational and rotational degrees of freedom are 10–20% and 30–100%, respectively. The method requires overall dimensions and projected areas of the ROV. The method also requires that the difference in overall dimensions is not larger than 10%. The BlueROV2 in heavy configuration violates this requirement as the width is 20% larger than the length, and the estimated added mass coefficients may be susceptible to further error than predicted by Eidsvik. This will lead to a difference between the model and the physical robot in the acceleration phase. The overall dimensions and projected areas are given in Table 5 and are found using a CAD model of the ROV. L, H, and W, denote the length, height, and width. The notation for the projected areas is given such that the subscript shows the normal direction to the area in the b-frame. The resulting added mass coefficients are found in Table A1.

5. Ocean Current

The current effect is implemented as an additional velocity term that does not change in the water column. The velocity term in the equations of motions given in Equation (2) is thereby transformed to be in terms of relative velocity shown in Equation (20),
M r b v ˙ + C r b v v + g ( η ) ) + M A v ˙ r + C A v r v r + D v r v r = τ + τ tet
where the relative velocity is given by v r = v v c . As it is assumed that the current is irrotational, the vector for the water particles velocity in b-frame v c becomes
v c = R υ c
where,
υ c = u ˙ c , j ˙ c , w ˙ c , 0 , 0 , 0
where u ˙ c , j ˙ c , w ˙ c is the n-frame water particle velocity in north, east and down direction, respectively. As the current is represented in n-frame, this velocity can be transformed into b-frame by the inverse rotation matrix such that it can be implemented in the model represented in b-frame.
From Equation (8), it is shown that C r b is parameterized independent of linear velocity, and it is assumed that the current is slowly varying, so that the velocity can be assumed to be constant. Therefore, Equation (20) can be reduced to
M v ˙ + C ( v ) v + D v r v r + g ( η ) = τ + τ tet

6. Tether Model

In most underwater applications, the tether is used for communication and power from the top-side, therefore it is a necessity. However, the tether also disturbs the ROV due to the forces generated by the drag and underwater currents [35]. The proposed simulator also includes the dynamics of the tether linking the BlueROV2 underwater vehicle to the top-site base. In order to model the tether, we use a lumped-mass approach, whereby the cable is idealized as a set of n + 1 lumped masses connected together by n weightless cylinders [36,37].
Let p i R 3 , i { 0 , , n } represent the position of node/lumped mass i in the n-frame, and v i : = p ˙ i the corresponding velocity vector. In this setting, p 0 is directly linked to the above-mentioned base, whose position is possibly time-varying, i.e., p 0 = p b ( t ) , while p n is attached to the ROV. Hence, regarding the tether dynamics, let us group the remaining p i s and v i s into the vectors
p t = [ p 1 T , p 2 T , , p n 1 T ] T
and
v t = [ v 1 T , v 2 T , , v n 1 T ] T .
The dynamics associated with the tether position and velocity vectors p t and v t are summarized by the mass-spring-damper-like expression
M t v ˙ t + D t v t + k t = 0
where M t is a diagonal matrix of n 1 elements
M t , i = 1 2 M i 1 + M i + M a , i 1 + M a , i
where M i R 3 × 3 is the mass matrix of node i and M a , i R 3 × 3 is the added mass matrix of the corresponding cylinder. Similarly, the damping terms of diagonal matrix D t are given by
D t , i = P i 1 P i + F i
where P i , the internal damping of the tether, is expressed as
P i = C t ( v i v i 1 ) T r i | r i | r i | r i |
where C t is a damping constant, and r i : = p i + 1 p i is the vector between two consecutive nodes.
The tether being assumed to be neutrally buoyant, the external force F i acting on element i of the tether represents only hydrodynamic drag. Then, force F i is the sum of its normal and tangential components
F i = F , i + F , i
where
F , i = 1 2 ρ d t C v , i | v , i | | r i |
and
F , i = 1 2 ρ d t C v , i | v , i | | r i | ,
where d t is the diameter of the tether, v , i and v , i are the normal and tangential components of the flow velocity of the i-th cylinder, while C and C are their respective drag coefficients. The normal and tangential velocity components are obtained through the expressions
v , i = ( υ c v i ) T r i r i | r i | 2
with υ c representing the water current velocity, expressed in the n-frame and
v , i = υ c v i v , i .
The term k t in (26) is given by
k t , i = T i
where the axial tension T i of the i-th node is given by
T i = E t A t , i l 0 , i r i 1 l 0 , i | r i | ,
The force acting on the ROV τ tet is the end node of the axial tension.

Tether ROV Interaction

In the following, the ROV and tether interaction is demonstrated by letting the tethered ROV be free floating with a current velocity of [ 0.3536 , 0.3536 , 0 ] in the n-frame and initialized at [ 0 , 0 , 15 ] . The tether is 15 m in length and with the tether parameters from Table A1. In Figure 8, a 3D plot of the ROV and tether is shown. This shows that the tether is initially lagging behind the ROV, but straightens out after 30 s. After 100 s, the ROV is approximately at the surface, and after 150 s, the force in x,y,z is constant, which is shown in Figure 9. When comparing the forces from Figure 9 to the maximum thrust force of the ROV seen in Table 4, it is clear that the tether has a large effect on the ROV. The movement in the Down-North and Down-East directions are shown in Figure 10. The range from 100–150 s is left out due to the change in position being minor. From Figure 10, it can be seen that the ROV moves further East compared to North, which is due to the drag force being larger.
A video of the free floating ROV and tether with a constant current velocity of [ 0.3536 , 0.3536 , 0 ] in the n-frame can be found in the attached video named “Tether-ROV interaction” or at Github in Supplementary Materials.

7. Control Algorithms for Benchmarking

7.1. Sliding Mode Control

Sliding mode control (SMC) is a popular choice for control of underwater vehicles due to its ability to deal with nonlinear systems subject to uncertainties and bounded disturbances [38]. Moreover, it requires relatively low computer power to compute. The objective, for the sliding-mode controllers implemented on the BlueROV2 (one for each DOF), is to follow a pre-defined reference path given as
η r = [ x r , y r , z r , ϕ r , θ r , ψ r ] T ,
where we assume that the time-derivatives of η r exist and are bounded.
In the following, we design 6 sliding-mode controllers, one for each DOF, where η i is the i-th component of earth-fixed vector η . Then, we rewrite in component-form the system described by Equations (1) and (2) so that we have, for each component η i ,
η ¨ i = f i ( η i , η ˙ i , t ) + τ ¯ i ,
where f i ( η i , η ˙ i , t ) is an unknown but bounded time-varying nonlinear function, with the explicit time dependence representing the coupling between the different DOFs. Control input τ ¯ i is the i-th component of vector τ ¯ , which is in turn given by τ ¯ = [ J T ( η ) M J 1 ( η ) ] 1 J T ( η ) τ . Defining now the tracking error of each of the 6 DOF as e i : = η i η r , i (with η r , i being the i-th component of vector η r in Equation (37)), the tracking error dynamics for each DOF is given by
e ¨ i = f i ( η i , η ˙ i , t ) η ¨ r , i + τ ¯ i .
From there, define first, for each DOF, the sliding variable
σ i : = e ˙ i + c 0 , i e i ,
where c 0 , i is a strictly positive constant.
Computing the time-derivative of σ i and using expression from Equation (39), we obtain
σ ˙ i = e ¨ i + c 0 , i e ˙ i = f i ( η i , η ˙ i , t ) η ¨ r , i + τ ¯ i + c 0 , i e ˙ i .
Choose then the following sliding-mode control law:
τ ¯ i = τ ¯ i , n o m + τ ¯ i , d i s ,
where the role of the so-called nominal control law τ ¯ i , n o m is to cancel the known terms in Equation (41) and is given by
τ ¯ i , n o m = η ¨ r , i c 0 , i e ˙ i ,
so that Equation (41) is transformed into
σ ˙ i = σ i , d i s + f i ( η i , η ˙ i , t ) .
Finally, given the bound on unknown dynamics f i ,
| f i ( η i , η ˙ i , t ) | f ¯ i ,
where f ¯ i is a strictly positive constant, the discontinuous control law τ ¯ i , d i s reads
τ ¯ i , d i s = k i s g n ( σ i ) ,
where k i is a strictly positive tuning gain, and where s g n ( σ i ) is the signum function. Using standard Lyapunov analysis, the sliding-mode controller in Equations (40), (42), (43) and (46) can be proven to make the sliding variable σ i converge to the so-called sliding surface σ i = 0 in finite time as long as tuning gain k i is chosen such that k i > f ¯ i . Note that having the bound f ¯ i is a mild but realistic assumption, as the vehicle is generally assumed to evolve in a constraint set of operations, with limited velocities.
To avoid the well-known chattering phenomenon caused by the use of the signum function in the discontinuous control law, one typically uses continuous approximations such as a sigmoid function, i.e., we have
s g n ( σ i ) σ i | σ i | + ϵ i ,
where ϵ i is a strictly positive tuning parameter. Note that the right-hand side term of Equation (47) approaches the signum function as parameter ϵ i goes to 0. Whenever the signum function in Equation (46) is replaced by the sigmoid function of Equation (47), the sliding variable does not reach 0 in finite time, but a so-called boundary layer of thickness ϵ i around 0, i.e., after a finite time t r , we have | σ i ( t ) | ϵ i for all t t r .

8. Simulator

The model of the BlueROV2 is found in Section 2, and together with the parameters found in Section 4 and the tether model found in Section 6 is implemented in a MATLAB™ and Simulink™ model. The controllers from Section 7 are also implemented for all six degrees of freedom. The behavior of the BlueROV2 is visualized with a simple 3D graphic environment, which is implemented in the simulator. The simulator will be demonstrated in a case study in Section 9. A simple block diagram of the simulator is shown in Figure 11, it shows how the equations of this paper are implemented in the simulator. A video of the simulator can be found in the attached files “Case study of simulator” or at Github in Supplementary Materials. The simulator will be updated occasionally. An implicit solver is recommended due to stiffness in the system of equations, e.g., ode15s in Simulink™. A detailed guide going through each step of setting up the simulator can be found in Appendix B.

9. Case Study-Offshore Mono Pile Inspection

In the this section, a case study will be carried out to demonstrate the simulator. Subsea inspections are a necessity in a variety of applications, such as in the oil and gas industry and the offshore wind industry. The case study will be based on an inspection of a monopile. The monopile is based on a realistic offshore wind turbine foundation of 6 m in diameter placed at depth of 25 m [39].
Offshore wind turbine operators have to account for a layer of marine growth when designing foundations for the offshore wind turbines, this increases the amount of steel used per installation [19]. An alternative to over-sizing the foundation is to remove the marine growth, so that it does not reach a thickness that is damaging to the structural integrity. The oil and gas operators to avoid an increase in surface area, which would decrease the fatigue life of the structure by cleaning the offshore structures periodically. However, cleaning requires annual inspections of the structure both before and after a cleaning job [40]. Before a cleaning job, inspections are needed to estimate the thickness of the marine growth to determine if it has reached a critical level, after a cleaning job inspections are carried out to verify that the marine growth has been removed and to inspect the structure for cracks to determine the structural integrity [19]. Wind turbine foundations that have been designed to withstand the marine growth layer must also be inspected for cracks, which in some cases also requires cleaning [40].

9.1. Design Criteria

The criteria for a successful inspection is for the ROV to take a picture at steps of one meter along the depth of the monopile with a relative distance of one meter between the camera and the monopile. The camera will be mounted along the surge direction in the ROV’s b-frame. The control parameters for the SMC has been designed according to Section 7.1, and can be seen in Table 6. The control parameters has been tuned initially based on simulations and then re-tuned from experimental data [3]. The noise variances and time delays in the feedback of the simulation will based on a DVL (u,v,w), a laser and camera (x,y), an IMU ( ϕ , θ ,p,q), a magnetometer ( ψ ,r) and a pressure sensor (z), see Table 1. The thruster allocation matrix in Section 3 is implemented in the simulation, but has not been considered in the control design.
The trajectory that the ROV will follow is shown in Figure 12. It is calculated based on Table 7. The initial conditions of the ROV, water current, and tether length can be seen in Table 8. Note that the trajectory is not optimally designed, thus the ROV will not follow the shortest path.

9.2. Simulation Results

In this section, a brief overview of the simulation results from the case study will be presented. The pose, η , of the ROV is seen in Figure 13 and Figure 14. The controller is able follow the trajectory with a low error, even though the ROV is influenced by the tether forces shown in Figure 15, the water current, a delay of 0.1 s in x and y from the DVL and the sensor noises. The ROV is initialized away from the trajectory to show that the controller is able to stabilize the ROV on the trajectory before it starts the mission. The starting point of the trajectory is at [ 2.83 , 2.83 , 25 , 0 , 0 , 0.75 pi] with respect to the n-frame. The controller stabilizes the ROV at the reference within 20 s. Afterwards the ROV follows the trajectory, where it takes a picture at an interval of one meter in depth, from the bottom of the structure to 5 m below the surface. From Figure 13, it can be noted that the controller has a difficulty following the trajectory when the ROV is moving in the negative x and y directions, this is caused by the ocean current pushing the ROV and tether in the opposite direction. There is a similar helping effect when the ROV moves in the positive x and y direction. In Figure 15, the tether force is shown, and it should be noted that the force fluctuates due to the interaction between the actively controlled ROV and the tether. Similar fluctuations are not seen in Figure 9, where the ROV is only acting as a passive weight. In Table 9, an average of the absolute force and an average of the 5% largest forces are displayed. The impact from the tether is analyzed as statistical forces for each direction and given as a percentage of the maximum thrust force in that direction. For example, the ROV uses 38% of the thrust power to compensate for the 5% largest forces. It should be noted that this percentage is the ideal case since the ROV uses the same thrusters to surge and sway.

10. Concluding Remarks

This paper presented a dynamic BlueROV2 Simulator including a model of the tether connecting the ROV to the surface. The simulator is published in a MATLAB™ and Simulink™ environment. The simulator is designed to be used by the control community as a digital platform to implement control algorithms on and benchmark control algorithms. The dynamic model of the BlueROV2 is built on Fossens equations for underwater vehicles, which are widely used to model similar robotic platforms. The parameters have been found and validated using a combination of CAD software and physical experiments. The tether has been modeled using a lumped-mass approach which is an approximation of the standard finite element method. The tether model is included as it has a large impact on the dynamics of the ROV and is a necessity to do missions requiring large data transmissions, such as video feedback. A case study is presented where the ROV is deployed to inspect a monopile structure, and sliding mode control is implemented in the simulator to fulfill the task. The case study demonstrates the usefulness of the BlueROV2 simulator and the results establish a benchmark for future control schemes for positioning and orientation trajectory tracking. The simulator has been designed to be general purpose and all parameters can be changed in the App in MATLAB™ to fit a specific vehicle. It is possible to add additional blocks in the simulator for more advanced missions such as obstacle avoidance, optimal trajectory tracing, etc. Furthermore, additional disturbances can be added by applying the force to Equation (2), this could be water waves for vehicles working close to the surface or a reaction force from a tool.

Supplementary Materials

The following supporting information can be downloaded at: https://www.mdpi.com/article/10.3390/jmse10121898/s1. Case study of Simulator; ROV Simulator; Tether-ROV Interaction.

Author Contributions

Conceptualization, M.v.B., J.L., S.P., F.F.S. and J.J.; modeling, M.v.B., J.J. and F.F.S.; experiments, M.v.B. and F.F.S.; code, M.v.B., F.F.S. and E.U.; writing—original draft preparation, M.v.B., J.L., S.P., F.F.S. and J.J.; writing—review and editing, M.v.B., J.L., S.P., F.F.S. and J.J.; visualization, M.v.B., F.F.S. and J.L.; supervision, S.P. and J.L.; funding acquisition, S.P. and J.L. All authors have read and agreed to the published version of the manuscript.

Funding

The research is part of the ACOMAR project which is funded by the Energy Technology Development and Demonstration Program (EUDP), journal number 64020-1093.

Data Availability Statement

The data presented in this study are available on request from the authors. The proposed Simulink™ simulator can be found in the attached folder under “ROV simulator” or at Github in Supplementary Materials.

Acknowledgments

The authors would like to thank for the support from the Energy Technology Development and Demonstration Program (EUDP) via the “ACOMAR–Auto Compact Marine Growth Remover” project (J.No. 64020-1093). Thanks also to our project partners SubC Partner, Sihm Højtryk, Mati2ilt, Total E&P Denmark, Siemens Gamesa Renewable Energy and EIVA, and our colleagues from Aalborg University, for many valuable discussions and technical support.

Conflicts of Interest

The authors declare no conflict of interest.

Appendix A

The detailed list of the values of the BlueROV2 parameters is given in Table A1.
Table A1. Evaluation of parameters.
Table A1. Evaluation of parameters.
NotationValueUnitOrigin
g 9.82 m s 2 -
ρ 1000 kg m 3 -
m 13.5 kgExperimental
0.0134 m 3 Experimental
I x 0.26 kg · m 2 CAD
I y 0.23 kg · m 2 CAD
I z 0.37 kg · m 2 CAD
( x g , y g , z g ) ( 0 , 0 , 0 ) mDefined
( x b , y b , z b ) ( 0 , 0 , 0.01 ) mCAD
r i for i = { 1 , 2 , 3 , 4 } J 3 ( α i ) 0.156 0.111 0.085 T for α i = { 0 , 5.05 , 1.91 , π }
ε i for i = { 1 , 2 , 3 , 4 } J 3 ( β i ) 1 / 2 1 / 2 0 T for β i = { 0 , π 2 , 3 π 4 , π } mCAD
r i for i = { 5 , 6 , 7 , 8 } J 3 ( γ i ) 0.120 0.218 0 T for γ i = { 0 , 4.15 , 1.01 , π }
ε i for i = { 5 , 6 , 7 , 8 } 0 0 1 T
X u 13.7 Ns m
X u | u | 141.0 Ns 2 m 2
Y v 0 Ns m
Y v | v | 217.0 Ns 2 m 2
Z w 33.0 Ns m
Z w | w | 190.0 Ns 2 m 2 Experimental
K p 0 Ns m
K p | p | 1.19 Ns 2 m 2
M q 0.8Ns
M q | q | 0.47Ns 2
N r 0Ns
N r | r | 1.5Ns 2
X u ˙ 6.36 kg
Y v ˙ 7.12 kg
Z w ˙ 18.68 kg[33]
K p ˙ 0.189 kg m 2
M q ˙ 0.135 kg m 2
N r ˙ 0.222 kg m 2
m t e t 0.043 kgm 1 Experimental
d t e t 0.0075 mExperimental
C n t e t 1.2 [41]
C t t e t 0.01 [41]
C t e t 100Nsm 1 [41]
E t e t 6.437 × 10 10 N/m 2 [41]

Appendix B. Documentation

Appendix B.1. Installing the Simulation Software

The app can be found at the website Github or in the attachments in Supplementary Materials. Install the app by running the “ROV Simulator.mlappinstall” installation file. A window will appear where you have to accept the installation of the ROV Simulator app. Agree to this and the app is now installed.

Appendix B.2. Launching the App

To launch the app for the first time, open MATLAB and chose the APPS pane in the top of the screen, as seen in Figure A1. Then, locate and click the icon named “ROV Simulator”.
Figure A1. App launch from within MATLAB.
Figure A1. App launch from within MATLAB.
Jmse 10 01898 g0a1
When the app is launched for the first time, certain initial parameters are designated. These are set to follow the structure of this report. To add or change any of these parameters, the following tabs within the graphical user interface of the app can be used.

Appendix B.3. Simulation Options

The first section is the simulation options pane. To quickly start the simulation, the “Open Simulation” button can be pressed in Figure A2.
Figure A2. Overview of the simulation options pane within the ROV simulator app.
Figure A2. Overview of the simulation options pane within the ROV simulator app.
Jmse 10 01898 g0a2
Before the simulation is launched, the initial settings of the robot can be changed. It is possible to change both initial positions and velocities. Using the checkbox, it is possible to enable or disable visualization of the ROV and its movements. By disabling visualization within the simulation, the simulation speed can be increased. The controller or the references subsystem can be opened using the buttons in the lower left part.

Appendix B.4. Parameters

Within this section, it is possible to add or change the robot and environment parameters used for the simulation. An overview of this section is seen in Figure A3.
Figure A3. Overview of the robot and environment parameters pane within the ROV simulator app.
Figure A3. Overview of the robot and environment parameters pane within the ROV simulator app.
Jmse 10 01898 g0a3
The individual parameters of the robots as well as environments can be changed by editing the corresponding parameter-field. User created robots and environments can be deleted by using the thrash-can located next to the drop-down list. To choose a robot or environment, click the desired one on either of the drop-down lists. To add a new robot or environment, choose “Add New” option from within the drop-down list. If the projected area is updated within the robot parameters, the added mass can be recalculated using the “Update Added Mass” button using the approach described in Section 4.3. Any changes can be saved using the save buttons.
All parameters chosen within this section are saved locally and transferred directly to the simulation file. Parameters are also updated within each run if changed in the GUI.

Appendix B.5. Thrusters

This section is used to define the saturation force supplied by the individual thrusters as well as determining the location, orientation and direction of the thrusters located on the robot. This section refers to Equation (13). The upper and lower limits used for saturating the thrusters in simulations can be changed in their respective text fields. As seen in Figure A4, it is possible to switch between predefined thruster allocations for the BlueROV2 and BlueROV2 heave configuration. Using the “No. of thrusters” spinner, the number of thrusters can be changed between 2 to 8. The location, orientation and direction of each thruster with respect to a movement in any of the six degrees of freedoms can be edited by changing the values within their respective text-fields. Using the “Reset TAM” button, the thruster allocation matrix can be reset to the initial BlueROV2 heavy configuration. Remember to save any changes using the “Save TAM” button.
Figure A4. Overview of the thruster parameters pane within the ROV simulator app.
Figure A4. Overview of the thruster parameters pane within the ROV simulator app.
Jmse 10 01898 g0a4

Appendix B.6. External Forces

In this section, it is possible to enable or disable external forces on the ROV.
As seen in Figure A5 it is possible to enable or disable the effects from ocean currents Section (Section 5) and the tether from Section (Section 6). An extra option is added in order to add custom external forces in any of the six degrees of freedom, this is edited under “Manual forces”. It is possible to edit the different parameters of any of the three forces within the text-fields grouped together with the forces.
Figure A5. Overview of the external forces pane within the ROV simulator app.
Figure A5. Overview of the external forces pane within the ROV simulator app.
Jmse 10 01898 g0a5

Appendix B.7. Sensor Disturbances

Multiple sensors can be used to determine the position and velocity of the robot. These sensors can be associated with disturbances such as noise, delay, and drift. This section enables the user to add the effect of such disturbances to any of the 12 states. The sensors included in the software correspond to those found in Table 1.
As seen in Figure A6, all position and velocity states are located in the top left of the section. Using the individual drop-down menus of each state, sensor disturbances can be selected. If “Ideal” is selected, no sensor disturbance will affect the selected state. In the bottom of the section, a table is located containing seven specific sensors as well as one custom sensor. The table displays the following parameters for each of the sensors. It contains state-measurements, sampling time, delay, variance and drift. It is not possible to change the state-measurements of any of the sensors; however, the rest of the settings can be edited by using a double click on any of the fields. The sampling time should be set in Hz, and can not be equal to nor less than zero. The delay of sensor measurements can be set in seconds, the variance is either set in meters, radians or radians per second, with regards to which states the sensor measures. The drift of the sensor is set as an increase in meters or radians per second. Only the reference generator as well as the controller subsystems should be edited, settings of the remaining subsystems can be edited from the app. The scopes in the bottom of the block diagram allow for viewing positions and velocities for both b-frame and n-frame. As a further remark, the simulations are based upon two simulation files, with and without the visualization option. All subsystems are added as reference subsystems, meaning that it does not matter in which of the simulation files these are edited, since they are loaded into both. The app and simulation files are tested for use with MATLAB and Simulink 2021b and 2022a.
Figure A6. Overview of the Sensor disturbances pane within the ROV simulator app.
Figure A6. Overview of the Sensor disturbances pane within the ROV simulator app.
Jmse 10 01898 g0a6

Appendix B.8. Simulation Structure

Figure A7 shows the Simulink block diagram of the simulation model. If the visualization option is disabled, their corresponding blocks will be removed.
Figure A7. Overview of the simulation structure of the simulation file as seen in Simulink.
Figure A7. Overview of the simulation structure of the simulation file as seen in Simulink.
Jmse 10 01898 g0a7

References

  1. Healey, A.J.; Lienard, D. Multivariable sliding mode control for autonomous diving and steering of unmanned underwater vehicles. IEEE J. Ocean. Eng. 1993, 18, 327–339. [Google Scholar] [CrossRef] [Green Version]
  2. Willcox, S.; Goldberg, D.; Vaganay, J.; Curcio, J. Multi-vehicle cooperative navigation and autonomy with the bluefin CADRE system. In Proceedings of the IFAC (International Federation of Automatic Control) Conference, Heidelberg, Germany, 15 September 2006; pp. 20–22. [Google Scholar]
  3. von Benzon, M.; Sorensen, F.; Liniger, J.; Pedersen, S.; Klemmensen, S.; Schmidt, K. Integral Sliding Mode control for a marine growth removing ROV with water jet disturbance. In Proceedings of the 2021 European Control Conference (ECC), Delft, The Netherlands, 29 June–2 July 2021. [Google Scholar] [CrossRef]
  4. Pedersen, S.; Liniger, J.; Sørensen, F.F.; Schmidt, K.; Benzon, M.v.; Klemmensen, S.S. Stabilization of a ROV in three-dimensional space using an underwater acoustic positioning system. IFAC-PapersOnLine 2019, 52, 117–122. [Google Scholar] [CrossRef]
  5. Kuhn, V.N.; Drews Jr, P.L.J.; Gomes, S.C.P.; Cunha, M.A.B.; Botelho, S.S.d.C. Automatic control of a ROV for inspection of underwater structures using a low-cost sensing. J. Braz. Soc. Mech. Sci. Eng. 2015, 37, 361–374. [Google Scholar] [CrossRef]
  6. Eslami, M.; Chin, C.S.; Nobakhti, A. Robust Modeling, Sliding-Mode Controller, and Simulation of an Underactuated ROV Under Parametric Uncertainties and Disturbances. J. Mar. Sci. Appl. 2019, 18, 213–227. [Google Scholar] [CrossRef]
  7. Keviczky, T.; Borrelli, F.; Fregene, K.; Godbole, D.; Balas, G.J. Decentralized Receding Horizon Control and Coordination of Autonomous Vehicle Formations. IEEE Trans. Control Syst. Technol. 2008, 16, 19–33. [Google Scholar] [CrossRef] [Green Version]
  8. Selvakumar, J.; Selvakumar, J.; Asokan, T.; Asokan, T. Station keeping control of underwater robots using disturbance force measurements. J. Mar. Sci. Technol. 2016, 21, 70–85. [Google Scholar] [CrossRef]
  9. Willners, J.S.; Carlucho, I.; Luczy’nski, T.; Katagiri, S.; Lemoine, C.; Roe, J.; Stephens, D.W.; Xu, S.J.; Carreno, Y.; Pairet, È.; et al. From market-ready ROVs to low-cost AUVs. In Proceedings of the OCEANS 2021: San Diego–Porto, San Diego, CA, USA, 20–23 September 2021; pp. 1–7. [Google Scholar]
  10. Robotics, B. BlueROV2: The World’s Most Affordable High-Performance ROV. In BlueROV2 Datasheet; Blue Robotics: Torrance, CA, USA, June 2016. [Google Scholar]
  11. Wilby, A.; Lo, E. Low-Cost, Open-Source Hovering Autonomous Underwater Vehicle (HAUV) for Marine Robotics Research based on the BlueROV2. In Proceedings of the 2020 IEEE/OES Autonomous Underwater Vehicles Symposium (AUV), St. Johns, NL, Canada, 30 September–2 October 2020; IEEE: Piscataway, NJ, USA, 2020; pp. 1–5. [Google Scholar]
  12. Chua, A.; MacNeill, A.; Wallace, D. Democratizing ocean technology: Low-cost innovations in underwater robotics. In Proceedings of the EGU General Assembly Conference Abstracts, Online, 4–8 May 2020; p. 10190. [Google Scholar]
  13. Manzanilla, A.; Reyes, S.; Garcia, M.; Mercado, D.; Lozano, R. Autonomous navigation for unmanned underwater vehicles: Real-time experiments using computer vision. IEEE Robot. Autom. Lett. 2019, 4, 1351–1356. [Google Scholar] [CrossRef]
  14. Manhães, M.M.M.; Scherer, S.A.; Voss, M.; Douat, L.R.; Rauschenbach, T. UUV Simulator: A Gazebo-based package for underwater intervention and multi-robot simulation. In Proceedings of the OCEANS 2016 MTS/IEEE Monterey, Monterey, CA, USA, 19–23 September 2016; IEEE: Piscataway, NJ, USA, 2016. [Google Scholar] [CrossRef]
  15. de Cerqueira Gava, P.D.; Nascimento Júnior, C.L.; Belchior de França Silva, J.R.; Adabo, G.J. Simu2VITA: A General Purpose Underwater Vehicle Simulator. Sensors 2022, 22, 3255. [Google Scholar] [CrossRef] [PubMed]
  16. Potokar, E.; Ashford, S.; Kaess, M.; Mangelson, J. HoloOcean: An Underwater Robotics Simulator. In Proceedings of the 2022 International Conference on Robotics and Automation (ICRA), Philadelphia, PA, USA, 23–27 May 2022. [Google Scholar]
  17. Bogue, R. Robots in the offshore oil and gas industries: A review of recent developments. Ind. Robot 2020, 47, 1–6. [Google Scholar] [CrossRef]
  18. Rofallski, R.; Tholen, C.; Helmholz, P.; Parnum, I.; Luhmann, T. Measuring artificial reefs using a multi-camera system for unmanned underwater vehicles. Int. Arch. Photogramm. Remote Sens. Spat. Inf. Sci.-ISPRS Arch. 2020, 43, 999–1008. [Google Scholar] [CrossRef]
  19. Pedersen, S.; Liniger, J.; Sørensen, F.F.; von Benzon, M. On Marine Growth Removal on Offshore Structures. In Proceedings of the OCEANS 2022-Chennai, Chennai, India, 21–24 February 2022; pp. 1–6. [Google Scholar] [CrossRef]
  20. Liniger, J.; Jensen, A.L.; Pedersen, S.; Sørensen, H.; Mai, C. On the Autonomous Inspection and Classification of Marine Growth on Subsea Structures. In Proceedings of the 2022 OCEANS Conference & Exposition, Oceans 2022, Chennai, Chennai, India, 21–24 February 2022; IEEE Press: Piscataway, NJ, USA, 2022. [Google Scholar]
  21. Boogaard, F.; de Lima, R.; de Graaf, R. Innovative water quality and ecology monitoring using underwater unmanned vehicles: Field applications, challenges and feedback from water managers. Water 2020, 12, 1196. [Google Scholar]
  22. Wang, Y.; Thanyamanta, W.; Bulger, C.; Bose, N. Experimental study to make gas bubbles as proxies for oil droplets to test AUV detection of oil plumes. Appl. Ocean Res. 2022, 121, 103080. [Google Scholar] [CrossRef]
  23. Betancourt, J.; Coral, W.; Colorado, J. An integrated ROV solution for underwater net-cage inspection in fish farms using computer vision. SN Appl. Sci. 2020, 2, 1946. [Google Scholar] [CrossRef]
  24. Fossen, T.I. Marine Control Systems–Guidance. Navigation, and Control of Ships, Rigs and Underwater Vehicles; Marine Cybernetics: Trondheim, Norway, 2002; ISBN 82-92356-00-2. [Google Scholar]
  25. BlueRobotics. BlueROV2 Assembly; BlueRobotics: Torrance, CA, USA, 2021. [Google Scholar]
  26. Antonelli, G. Underwater Robots, 4th ed.; Springer International Publishing AG: Cham, Switzerland, 2018; Volume 123. [Google Scholar] [CrossRef]
  27. Veritas, D.N. Environmental Conditions and Environmental Loads; Det Norske Veritas: Oslo, Norway, 2021. [Google Scholar]
  28. Fossen, T.I. Nonlinear Modelling and Control of Underwater Vehicles. Ph.D. Thesis, The Norwegian Institute of Technology, Trondheim, Norway, 1991. [Google Scholar]
  29. SNAME: The Society of Naval Architects and Marine Engineers. Nomenclature for Treating the Motion of a Submerged Body Through a Fluid; Technical and Research Bulletin No. 1–5; SNAME: Alexandria, VA, USA, 1950. [Google Scholar]
  30. Gertler, M.; Hagen, G.R. Standard Equations of Motion for Submarine Simulation; Technical Report; David w Taylor Naval Ship Research and Development Center: Bethesda, MD, USA, 1967. [Google Scholar]
  31. BlueRobotics. BlueROV2 Heavy Configuration Retrofit Kit; BlueRobotics: Torrance, CA, USA, 2021. [Google Scholar]
  32. MathWorks Student Competitions Team. MATLAB and Simulink Robotics Arena: From Data to Model; MATLAB Central File Exchange; 2022. Retrieved 24 November 2022. Available online: https://www.mathworks.com/matlabcentral/fileexchange/65919-matlab-and-simulink-robotics-arena-from-data-to-model (accessed on 1 October 2022).
  33. Eidsvik, O.A. Identification of Hydrodynamic Parameters for ROV’s. Master’s Thesis, The Norwegian Institute of Technology, Trondheim, Norway, 2015. [Google Scholar]
  34. Det Norske Veritas (DNV). Modelling and Analysis of Marine Operations; DNV: Oslo, Norway, 2011. [Google Scholar]
  35. McLain, T.W.; Rock, S.M. Experimental Measurement of ROV Tether Tension. In Proceedings of the Intervention/ROV ’92, San Diego, CA, USA, 10–12 June 1992. [Google Scholar]
  36. Hall, M.; Goupee, A. Validation of a lumped-mass mooring line model with DeepCwind semisubmersible model test data. Ocean Eng. 2015, 104, 590–603. [Google Scholar] [CrossRef] [Green Version]
  37. Driscoll, F.; Lueck, R.; Nahon, M. Development and validation of a lumped-mass dynamics model of a deep-sea ROV system. Appl. Ocean Res. 2000, 22, 169–182. [Google Scholar] [CrossRef]
  38. Slotine, J.J.E.; Li, W. Applied Nonlinear Control; Prentice Hall: Englewood Cliffs, NJ, USA, 1991; pp. 276–310. [Google Scholar]
  39. HOFOR Wind A/S. Offshore and Onshore Technical Project Description nr. 13-97289-2; Technical Report; Energinet.dk: Fredericia, Denmark, 2021. [Google Scholar]
  40. Anderson, M. Nondestructive testing of offshore structures. NDT Int. 1987, 20, 17–21. [Google Scholar] [CrossRef]
  41. Souza, E.C.D.; Maruyama, N. Intelligent UUVs: Some issues on ROV dynamic positioning. IEEE Trans. Aerosp. Electron. Syst. 2007, 43, 214–226. [Google Scholar] [CrossRef]
Figure 1. Hardware and interfaces on BlueROV2, green boxes represents sensors, black boxes represents processing units/control units, the yellows boxes represents actuators, and the dashed blue line illustrates the cut between onboard hardware and topside hardware.
Figure 1. Hardware and interfaces on BlueROV2, green boxes represents sensors, black boxes represents processing units/control units, the yellows boxes represents actuators, and the dashed blue line illustrates the cut between onboard hardware and topside hardware.
Jmse 10 01898 g001
Figure 2. Two illustrations of the BlueROV2 with and without heavy configuration, respectively.
Figure 2. Two illustrations of the BlueROV2 with and without heavy configuration, respectively.
Jmse 10 01898 g002
Figure 3. A comparison of the thruster configuration of the normal and heavy BlueROV2. The blue thrusters are the clockwise thrusters, and the green are the counterclockwise thrusters. The red arrow is the positive surge direction [25]. (a) BlueROV2 normal configuration. (b) BlueROV2 heavy configuration.
Figure 3. A comparison of the thruster configuration of the normal and heavy BlueROV2. The blue thrusters are the clockwise thrusters, and the green are the counterclockwise thrusters. The red arrow is the positive surge direction [25]. (a) BlueROV2 normal configuration. (b) BlueROV2 heavy configuration.
Jmse 10 01898 g003
Figure 4. The reference and world frame with all degrees of freedom in each respective frame.
Figure 4. The reference and world frame with all degrees of freedom in each respective frame.
Jmse 10 01898 g004
Figure 5. Simulation model and experimental measurements for the surge-direction with positive 50% open-loop input. The error between these is shown as the blue bar at an input of 0.5 in Figure 6.
Figure 5. Simulation model and experimental measurements for the surge-direction with positive 50% open-loop input. The error between these is shown as the blue bar at an input of 0.5 in Figure 6.
Jmse 10 01898 g005
Figure 6. Model and experimental data comparison for surge, sway, and heave. Each of the bars represents a test similar to the one shown in Figure 5.
Figure 6. Model and experimental data comparison for surge, sway, and heave. Each of the bars represents a test similar to the one shown in Figure 5.
Jmse 10 01898 g006
Figure 7. Model and experimental data comparison for roll, pitch, and yaw. Each of the bars represents a test similar to the one shown in Figure 5.
Figure 7. Model and experimental data comparison for roll, pitch, and yaw. Each of the bars represents a test similar to the one shown in Figure 5.
Jmse 10 01898 g007
Figure 8. Free floating ROV and tether with a current velocity of [ 0.3536 , 0.3536 , 0 ] in the n-frame. Initialized at [0,0,15] in x,y and z, respectively. The blue box represents the ROV at position [9.68,9.94,5.70]. The faded black lines shows the trajectory of the tether and ROV and the green lines show the future path.
Figure 8. Free floating ROV and tether with a current velocity of [ 0.3536 , 0.3536 , 0 ] in the n-frame. Initialized at [0,0,15] in x,y and z, respectively. The blue box represents the ROV at position [9.68,9.94,5.70]. The faded black lines shows the trajectory of the tether and ROV and the green lines show the future path.
Jmse 10 01898 g008
Figure 9. Tether force in n-frame on the free floating ROV, current velocity of [ 0.3536 , 0.3536 , 0 ] in the n-frame.
Figure 9. Tether force in n-frame on the free floating ROV, current velocity of [ 0.3536 , 0.3536 , 0 ] in the n-frame.
Jmse 10 01898 g009
Figure 10. Cross-section of the tether and ROV in the North (b), East (a) and Down direction from time 0 to 100 s.
Figure 10. Cross-section of the tether and ROV in the North (b), East (a) and Down direction from time 0 to 100 s.
Jmse 10 01898 g010
Figure 11. A simple overview of the simulator as it is implemented in Simulink™.
Figure 11. A simple overview of the simulator as it is implemented in Simulink™.
Jmse 10 01898 g011
Figure 12. Trajectory of the inspection campaign. The vertical lines are the inspection trajectory and the horizontal lines are the reference change.
Figure 12. Trajectory of the inspection campaign. The vertical lines are the inspection trajectory and the horizontal lines are the reference change.
Jmse 10 01898 g012
Figure 13. Position in x,y and z.
Figure 13. Position in x,y and z.
Jmse 10 01898 g013
Figure 14. Orientation in ϕ , θ and ψ .
Figure 14. Orientation in ϕ , θ and ψ .
Jmse 10 01898 g014
Figure 15. Tether force in x,y and z.
Figure 15. Tether force in x,y and z.
Jmse 10 01898 g015
Table 1. List of common sensors used for the BlueROV2.
Table 1. List of common sensors used for the BlueROV2.
Sensor TechnologyStateSample RateDelayVariance (Filtered)
Pressure SensorD20 Hz -1.5 × 10−5 m
Inertial Measurement Unit ϕ , θ 1000 Hz -1 × 10−5 rad to 2.5 × 10−5 rad
Magnetometer/compass ψ 1000 Hz -
Laser-Camerax,y20 Hz -2 × 10−6 m
Sonarx,y40 Hz -
Short BaselineN,E4 Hz 1.2 s1 × 10−3 m to 1.3 × 10−3 m
Doppler Velocity Logu,v15 Hz0.1 s0.3 cm to 0.8 cm
Table 2. Difference between thruster combination to motion on normal and heavy configuration.
Table 2. Difference between thruster combination to motion on normal and heavy configuration.
MotionNormal BlueROV2Heavy BlueROV2
SurgeT1, T2, T3 and T4T1, T2, T3 and T4
SwayT1, T2, T3 and T4T1, T2, T3 and T4
HeaveT5 and T6T5, T6, T7 and T8
RollT5 and T6T5, T6, T7 and T8
PitchUncontrollableT5, T6, T7 and T8
YawT1, T2, T3 and T4T1, T2, T3 and T4
Table 3. Definitions of variables.
Table 3. Definitions of variables.
NotationDescription
C , C R B , C A System/rigid-body/added-mass Coriolis
-centripetal matrix
D Vector of damping forces
F , M External forces and moments acting on the
vehicle in the b-frame
g Vector of restoring forces
J Coordinate transformation matrix
M , M R B , M A System/rigid-body/added-mass inertia matrix
mTotal mass of the vehicle
p , q , r Angular velocities in the b-frame
u , v , w Linear velocities in the b-frame
v Linear velocity vector in the b-frame
X , Y , K , N u ˙ r ˙ Added mass coefficients in the b-frame
x , y , z Translation in the n-frame
x b , y b , z b Body-fixed reference frame (b-frame)
η Vector of position and orientation in the n-frame
ν Velocity vector in the b-frame
ρ Water density
τ Vector of control inputs
ϕ , θ , ψ Euler’s angles in the n-frame
ω Angular velocity vector in the b-frame
Table 4. Maximum velocities and forces in b-frame.
Table 4. Maximum velocities and forces in b-frame.
Movement in b-FrameMaximum VelocityMaximum Thrust Force
x ˙ m a x 0.72 ms 1 85 N
y ˙ m a x 0.63 ms 1 85 N
z ˙ m a x 0.71 ms 1 120 N
p m a x 5.2 ms 1 26 Mm
q m a x 4.9 ms 1 14 Nm
r m a x 3.6 ms 1 22 Nm
Table 5. Overall dimensions and projected areas of the BlueROV2 heavy configuration.
Table 5. Overall dimensions and projected areas of the BlueROV2 heavy configuration.
NotationValueUnit
L × H × W 0.46 × 0.38 × 0.58 m
A u 0.0877 m 2
A v 0.1131 m 2
A w 0.2049 m 2
Table 6. Tuned control parameters for SMC.
Table 6. Tuned control parameters for SMC.
Controller α C 0 ϵ s L b
Surge0.530.031.17
Sway0.530.031.04
Heave0.120.050.70
Roll0.10.40.12.01
Pitch0.10.40.11.83
Yaw0.120.12.05
Table 7. Parameters for planning the campaign.
Table 7. Parameters for planning the campaign.
DescriptionValueUnit
Diameter of the monopile6m
Distance to monopile1m
Camera angle 2.09 rad
Height of monopile25m
Inspection range5–25m
Velocity of the ROV 0.2 ms 1
Table 8. Tether and ROV parameters.
Table 8. Tether and ROV parameters.
DescriptionValueUnit
Initial position ( x i , y i , z i ) [ 0 , 5 , 25 ] m
Initial orientation ( ϕ i , θ i , ψ i ) [ 0 , 0 , 0 ] rad
Current velocity [ 0.21 , 0.21 , 0 ] ms 1
Initial velocity of the ROV [ 0 , 0 , 0 ] ms 1
Initial angular velocity of the ROV [ 0 , 0 , 0 ] rads 1
Length of tether35m
Table 9. Average and maximum tether forces during the inspection campaign. The number in parentheses is the percentage of the maximum thrust force.
Table 9. Average and maximum tether forces during the inspection campaign. The number in parentheses is the percentage of the maximum thrust force.
MotionAverage of theAverage of the 5% Largest
Absolute ForcesAbsolute Forces
x21.1 N (25%)31.9 N (38%)
y19.3 N (23%)28.7 N (34%)
z12.2 N (10%)21.2 N (18%)
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

von Benzon, M.; Sørensen, F.F.; Uth, E.; Jouffroy, J.; Liniger, J.; Pedersen, S. An Open-Source Benchmark Simulator: Control of a BlueROV2 Underwater Robot. J. Mar. Sci. Eng. 2022, 10, 1898. https://doi.org/10.3390/jmse10121898

AMA Style

von Benzon M, Sørensen FF, Uth E, Jouffroy J, Liniger J, Pedersen S. An Open-Source Benchmark Simulator: Control of a BlueROV2 Underwater Robot. Journal of Marine Science and Engineering. 2022; 10(12):1898. https://doi.org/10.3390/jmse10121898

Chicago/Turabian Style

von Benzon, Malte, Fredrik Fogh Sørensen, Esben Uth, Jerome Jouffroy, Jesper Liniger, and Simon Pedersen. 2022. "An Open-Source Benchmark Simulator: Control of a BlueROV2 Underwater Robot" Journal of Marine Science and Engineering 10, no. 12: 1898. https://doi.org/10.3390/jmse10121898

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop