# A Dynamically Reconfigurable Autonomous Underwater Robot for Karst Exploration: Design and Experiment

Huu-Tho Dang, Lionel Lapierre, René Zapata, Benoît Ropars, Guillaume Gourmelen

► To cite this version:

Huu-Tho Dang, Lionel Lapierre, René Zapata, Benoît Ropars, Guillaume Gourmelen. A Dynamically Reconfigurable Autonomous Underwater Robot for Karst Exploration: Design and Experiment. Sensors, 2022, 22 (9), pp.3379. 10.3390/s22093379. [hal-03929843](https://hal.science/hal-03929843)

HAL Id: hal-03929843

https://hal.science/hal-03929843

Submitted on 9 Jan 2023

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
Article

# A Dynamically Reconfigurable Autonomous Underwater Robot for Karst Exploration: Design and Experiment

Tho Dang <fnref n="1" />*, Lionel Lapierre <fnref n="1" />*, Rene Zapata <fnref n="1" />, Benoit Ropars <fnref n="2" /> and Guillaume Gourmelen <fnref n="1" />

**Abstract:** This paper presents the design and experiment of an autonomous underwater robot which can change the geometric configuration of its actuators, according to mission requirements or environmental constraints. The robot consists of two subsystems: forward part with three thrusters and backward part with four thrusters. The position and orientation of these thrusters can be dynamically changed during missions. Being different from most of other reconfigurable underwater robots which were designed as linked-modules, our robot has a unified design. It is suitable for specific mission in confined environments (e.g., karst exploration) in which the robot has to modify its shape to go through a narrow section or align the most part of its thrusters in the direction of a strong current, for examples. The design procedure, from hardware to software, of the robot is presented and experimental results are shown to demonstrate the versatility of the robot. Furthermore, the discussion and comparison between our robot and other underwater robots with adaptable actuation geometry are presented to highlight advantages of our design. Finally, the idea of using our robot for classic docking problem, which has some common features with karst exploration requirements in using dynamically reconfigurable robots, is discussed.

**Keywords:** autonomous underwater robot; reconfigurable underwater robot

<figure><img src="image_2.png" /></figure>

check for
updates

**Citation:** Dang, T.; Lapierre, L.; Zapata, R.; Ropars, B.; Gourmelen, G. *A Dynamically Reconfigurable Autonomous Underwater Robot for Karst Exploration: Design and Experiment.* *Sensors* **2022**, *22*, 3379. https://doi.org/10.3390/s22093379

Academic Editors: Thor I. Fossen and Shafiqul Islam

Received: 10 February 2022

Accepted: 26 April 2022

Published: 28 April 2022

**Publisher's Note:** MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

<figure><img src="image_3.png" /></figure>

**Copyright:** © 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).

# 1. Introduction

## 1.1. *Karst Exploration*

Karst generally comprises a network of underground natural conduits, resulting from the dissolution of soluble rocks, limestone, dolomite, and gypsum. These aquifers drain groundwater on a large scale from their inland catchment basin to their marine exsurgences. They supply drinking water to millions of people worldwide and, during heavy rainfall, may host violent transfers of charge that can cause dramatic and sudden floods in fragile and unpredictable areas. The urgent need for management tools of underground resources requires a precise knowledge of the underlying conduit network, in terms of position, depth, geomorphology, and seasonal and episodic dynamics. Exploitation of this resource requires precise drilling, which must penetrate these conduits in a region with an appropriate morphology (pumping chamber), in order to reply to the pumping demand, also considering the seasonal variability of the resource availability and quality. Hydrogeological risk management requires having a precise knowledge of the hydrosystem dynamics, running models in order to predict floods occurrence, or afford this underground network with a dam flood control role [1]. It is thus of major importance to obtain reliable information about the position, geometry, and dynamics of these karstic networks along their entire development, from inland to marine resurgence. This is a crucial and urgent issue for public authorities in charge of prospection, protection, and active management of the groundwater resource in karstic regions.

<footnote n="1">¹ Laboratory of Informatics, Robotics and MicroElectronics (LIRMM) (UMR 5506 CNRS-UM), Université Montpellier, 161 rue Ada, CEDEX 5, 34392 Montpellier, France; zapata@lirmm.fr (R.Z.); gourmelen@lirmm.fr (G.G.)</footnote>

<footnote n="2">² Reeds Company, 199 rue Hélène Boucher, 34170 Castelnau-Le-Lez, France; ropars@lirmm.fr</footnote>

<footnote>* Correspondence: danghuu@lirmm.fr (T.D.); lapierre@lirmm.fr (L.L.)</footnote>
## 1.2. Reconfigurable Robots

In robotic fields, reconfigurable robots have been an attractive area because of their versatility. They can change their shape or configuration corresponding to specific mission requirements; therefore, the building cost may be reduced with one robot doing several works. Moreover, reconfigurable robots can be applied in complex tasks requiring adaptive configurations such as karst exploration or space applications. For instance, a clear operational reason for reconfigurable robots is to minimize power consumption. Robustness is also an advantage of reconfigurable robots in virtue of its flexibility. Readers can read the overview of these questions and other issues of modular self-reconfigurable robot system in [2,3].

In robot manipulators, the idea of reconfigurable robot was initially driven by manufacturing industry as shown in [4–7]. This has been extended to other fields of robotics such as land-based and underwater robot areas. The prominent idea for reconfigurable robot is a modular design concept in which the robot can connect or disconnect its corresponding modules [8,9]. For instance, a modular reconfigurable robot with perception-driven autonomy was proposed in [10], where the robot is able to complete complex tasks by reactively reconfiguring to meet the perceived environmental information. A floor cleaning robot with a reconfigurable mechanism was introduced in [11], where the robot reconfigures its morphology in response to its perceived environment to maximize coverage area. A reconfigurable snake robot was presented in [12]. The snake robot was also designed using modules; however, the robot can transform to various configurations without the rearrangement of modules. A gait planner is used to switch between configurations: snake gait, transforming gait, and walking gait.

In the underwater field, a guidance and control method for a reconfigurable unmanned underwater vehicle was introduced in [13]; however, the reconfigurability of the robot is based on the thruster's redundancy management, where the thruster's configuration is fixed. In [14], a reconfigurable robotic fish with undulating fins was developed; however, it is not a dynamically reconfigurable capability, just reconfiguring design parameters to achieve another version of the robot. Another reconfigurable robotic fish was introduced in [15]. The robot was designed in a modular way in order to build different morphologies, before operation. Reconfigurable magnetic-coupling thrusters for AUVs were introduced in [16–19]. The main idea here is based on the use of two coupled magnetic elements on which the thrusters are mounted and allowing for dynamically changing the direction of their thrust. Hence, the number of actuators is increased (doubled), as well as the cost of the system. Moreover, the magnetic filed between coupling magnets is easily disturbed by the metal parts of the robot structure. The idea of using magnetic coupling to build versatile a thruster configuration is also used in [20]. Reconfigurable AUV for Intervention (RAUVI project) was presented in [21–23]. This is an autonomous underwater robot equipped with one manipulator that allows the robot to perform manipulation tasks. The robot, inherited from Girona 500 AUV [24], is statically reconfigured with respect to different tasks. A prototype of a reconfigurable underwater robot with a bioinspired electric sense was introduced in [25]. The robot was designed as modules that can be detached or attached in order to adapt its configuration. In [26], a dynamics and control approach for modular and self-reconfigurable robotic systems was presented. Several benchmark examples are used to evaluate different configurations. In robotic systems, the reconfigurability can be found in any stage of the robotic architecture, from software to hardware, concepts of reconfigurable autonomy can be found in [27]. Nevertheless, in this paper, we only consider reconfigurability at actuation configuration. A static reconfigurable underwater robot, named *SeaDrone*, was introduced [28]. Four configurations of the robot corresponding to four underwater tasks were shown; however, this is performed statically before mission execution. A structure of a reconfigurable AUV/ROV for man-robot underwater cooperation was depicted in [29]. It can be mechanically modified with six possible layouts. The *SubSea Tech* company has been developed a reconfigurable robot,
called Tortuga, which can change the direction of horizontal thrusters [30]. Specifically, one thruster needs one motor to change its direction in horizontal plane.

In this study, we consider the generally admitted control architecture for marine systems: NGC (Navigation Guidance and Control) scheme, around which we can reify two other modules: the Actuation System (AS) and Sensorial Stage (SS) (see Figure 1). The sensorial stage provides the necessary information ($\eta^{Mes}$) based on the sensor measurement and prior knowledge of the environment to the navigation system, which is an input for the NGC system. Inside NGC, the navigation system provides the estimation of the system's state ($\hat{\eta}$) to the guidance system to compute an error function ($\epsilon$) with respect to the reference state ($\eta^d$). The control system is then in charge of computing the desired body-frame action ($\mathbf{F}_B^d$). Afterwards, the AS dispatches the desired body-frame action ($\mathbf{F}_B^d$) to the actuators set, in terms of individual actuation thrust. The reconfigurability of the actuation geometry is implemented at AS. Referring to the AS's structure depicted in Figure 2, based on the desired body-frame action ($\mathbf{F}_B^d$) (the output of the controller), the dispatcher ($\mathcal{D}$), considering the actuator allocation method (and eventually, redundancy management), computes the desired actuator vector ($\mathbf{F}_m^d$) that each actuator has to produce. The inverse actuator characteristics are then taken into account to compute the actuator inputs ($\mathbf{c}_m$) (classically PWM—Pulse Width Modulation). Once applied, $\mathbf{c}_m$ produces actual actuator vector ($\mathbf{F}_m$). The resulting vector $\mathbf{F}_B$ is produced according the actuator's configuration (A), which changes in function of the actuator's geometry.

<figure><img src="image_4.png" /><figcaption>Figure 1. The general diagram of Sensory Navigation Guidance and Control Actuation (S-NGC-A) [31].</figcaption></figure>

<figure><img src="image_5.png" /><figcaption>Figure 2. Actuation system scheme [31].</figcaption></figure>

### 1.3. *Karst Exploration with Robots*

Exploring a confined environment, e.g., karst, cave, or shipwreck, is particularly challenging because of the chaotic nature of the environment in terms of geomorphology and the resulting hydrodynamics effects. This yields the need for a flexible robot that can modify its shape and actuation configuration to dynamically adapt to environmental conditions. For instance, the robot should have a compact and slender shape (torpedo-like configuration) to cross narrow sections (i.e., narrow galleries) with strong current, isotropic
configuration for station-keeping, and to be capable of rotating about any axis for localized
inspection and data collection. A dynamically reconfigurable robot can minimize energy
consumption and be more robust thanks to the flexibility of its configuration. Indeed, given
a task, this robot can modify its configuration to minimize an energy cost function. For
instance, the robot has to carry out a mission such as diving to a desired depth, following
a path, and rotating about several axes to observe the environmental region of interest.
For a fixed-configuration robot, the controller is designed specifically to this configuration
(under-actuated or fully/over-actuated system). In contrast, a dynamically reconfigurable
robot can change its configuration with respect to the specific mission to reduce the efforts
to achieve the control objective; therefore, a cost function can be included in the design
of control strategy or control allocation method to minimize the energy consumption.
Moreover, the reconfigurability allows us to optimize the actuators geometry in function
of the control demand and the actuation inputs in function of some criteria, e.g., energy,
reactivity. Motivated by this context, the paper presents a dynamically reconfigurable
AUV, called an Umbrella Robot (UR), which can modify its actuation configuration with
respect to different tasks. In fact, our robot has seven thrusters whose directions and
positions can be adjusted during its operation, using two added actuators. The novelty
in our research is to propose a new mechanism for a dynamically reconfigurable robot,
which is different from others in the literature. In fact, other robots were designed for
changing the configuration statically or connecting/disconnecting their modules thanks
to the module-linked design. Our idea stems from a unified mechanism that can change
the robot's configuration dynamically. Moreover, in our design, only two added motors
can change the direction and orientation of all thrusters of the robot. This means that less
actuators are needed and more acting abilities are achieved. The main contributions of the
paper are described as follows:

1. A complete design (hardware and software)—a dynamically reconfigurable AUV.

2. An analysis of the reconfigurable capacity of the robot.

3. A presentation of experiments to demonstrate the robot's performance.

4. A comparison between our robot's design and others, and propose an application case—docking problem.

The rest of the paper is organized as follows: The design procedure is presented in Section 2. The reconfigurable capacity is analyzed in Section 3. Demonstration experiments are shown in Section 4. The comparison between our robot and others is discussed in Section 5, and an application case, i.e., the docking problem, is also mentioned in Section 6. Finally, conclusions and future works are discussed in Section 7.

## 2. Design

### 2.1. *General View*

A general view of the UR system is shown in Figure 3 in which the robot is shown with different configurations, i.e., forward thrusters in the "open" state in Figure 3a, "close-close" state for forward and backward thrusters as in Figure 3b, and "open-open" state (forward and backward sides) in Figure 3c. The robot carries seven thrusters: four thrusters in backward side and three thrusters in forward side. The main body of the UR is built by two tubes in which one is used for central processor and the other holds two DC motors (Direct Current motors) connected to two threaded rods (forward and backward sides), which are used to change configurations. Two battery packages (black tubes in Figure 3) are used for the robot. Waterproof cables are used for communicating between parts of the robot.

### 2.2. *Hardware Architecture*

We describe the hardware architecture of the UR in this section. The processor of UR is a Raspberry Pi 2. Raspberry Pi has many merits in computational capability and extensibility. The robot is equipped with a pressure sensor and an IMU sensor. One camera and six echosounders will be installed in the future. The thrusters of the robot are controlled by a PWM module, which communicates with Raspberry Pi using the I2C protocol. Two
DC motors with encoders are used to actuate the two threaded rods and to change the orientations and positions of thrusters. The principle architecture of UR is illustrated in Figure 4. Electronic Speed Controller (ESC) is provided for each thruster. Two DC motors are controlled by DC motor drivers. Battery packages with power converter card can supply electric power with several voltage levels for the whole robot.

<figure><img src="image_6.png" /><figcaption>**Figure 3.** The 3D model of Umbrella Robot. (a) Umbrella robot in open-forward and close-backward. (b) Umbrella robot in close-forward and close-backward. (c) Umbrella robot in open-forward and open-backward.</figcaption></figure>

<figure><img src="image_7.png" /><figcaption>**Figure 4.** The principle diagram of UR.</figcaption></figure>
## 2.3. Software Architecture

This section presents the software architecture of the robot from class modeling to dynamic state machine modeling. Because of the limitation of pages, some diagrams of the software design process are not given; for instance, the dynamic interaction modeling and integrated communication diagram.

### 2.3.1. Static and Object/Class Modeling

The object structuring diagram is shown in Figure 5. The software system includes four input classes, two output classes, a proxy class, two entity classes, and one state dependent class. The input classes, i.e., the IMU, pressure sensor, and two encoders, receive sensory data from sensors. The output classes, including DC motors and thrusters interfaces, communicate with the DC motors and thrusters. Two entity classes, i.e., UMSetZero and UmRData, are used to set up zero point (for changing UR's configurations) and to store operation data, respectively. One proxy class transfers data to an external device, such as a personal computer or laptop.

<figure><img src="image_8.png" /><figcaption>Figure 5. The object structuring diagram of UM Robot.</figcaption></figure>

### 2.3.2. Dynamic State Machine Modeling

The dynamic state machine diagram describes the robot's states during operations. The state machine follows the states of the robot as its transitions from the idle state to other states. The states are determined by following the use cases (turn on power/automatic, turn on power/manual, turn off, upload data). In the paper, only the dynamic state machine of *Turn on power/automatic* use case is shown as follows:

1. **Idle**: This is the initial state, in which the robot is idle, waiting for a specific time before starting missions (this time is saved for putting the robot into the water). In this state, the robot sets its umbrellas (i.e., forward and backward sides) into zero point and checks all initial conditions.

2. **Starting**: This state is entered when the waiting time of *Idle* state is elapsed and start command is sent to thrusters.
3. **Moving**: The robot is moving, rotating, or station-keeping. This depends on the control strategy.

4. **ChangeConfig**: This state is to be activated when the robot changes its configurations. In this state, the robot modifies the positions and orientations of thrusters, not doing anything else (i.e., another task).

5. **Moving/ChangeConfig**: The robot enters this state when a command to change configuration is received. The robot is still performing current missions and changing its configurations.

6. **Stopping**: The robot enters this state when the current mission is finished.

Figure 6 shows the transitions between states. The notation *condition/action* is used to describe the transition arrows.

<figure><img src="image_9.png" /><figcaption>**Figure 6.** The dynamic state machine modeling of *Turn on power/automatic* use case.</figcaption></figure>

The current version of Umbrella Robot at LIRMM, Montpellier University, is shown in Figure 7. For varying configuration, readers can follow a video link in Figure 7.

<figure><img src="image_10.png" /><figcaption>**Figure 7.** A prototype of Umbrella Robot https://www.youtube.com/watch?v=yBBCu1z3q-0&feature=youtu.be accessed on 8 February 2022.</figcaption></figure>

### 3. Reconfigurability

The reconfigurability of the robot is expressed by modifying two angles $α_F$ and $α_B$ (see Figure 8); therefore, the configuration matrix and the A matrix will change accordingly. In fact, the relation between thrusters forces and resulting forces (forces/torques with respect to body frame) is usually computed as follows:
<figure><img src="image_11.png" /><figcaption>Figure 8. Definitions of two angles $\alpha_F$ and $\alpha_B$ and other notations.</figcaption></figure>

$$ \mathbf{F}_B = \begin{pmatrix} \mathbf{F} \\ \mathbf{\Gamma} \end{pmatrix} = \mathbf{A}(\alpha_F, \alpha_B)\mathbf{F}_m \quad (1) $$

where $\mathbf{F}_B = [F_u \ F_v \ F_w \ \Gamma_p \ \Gamma_q \ \Gamma_r]^T \in \mathbb{R}^6$ is a vector of the resulting force in which $\mathbf{F} = [F_u \ F_v \ F_w]^T$ and $\mathbf{\Gamma} = [\Gamma_p \ \Gamma_q \ \Gamma_r]^T$, $\mathbf{A}(\alpha_F, \alpha_B) \in \mathbb{R}^{6 \times m}$, the thruster force vector $\mathbf{F}_m = [F_{m,1} \ F_{m,2} \ \dots \ F_{m,m}]^T \in \mathbb{R}^m$ is a vector of the thruster's forces, and $m$ is the number of thrusters, $m = 7 > 6$.

From the scheme of Umbrella Robot, the configuration matrix, $\mathbf{A}$, has a form as:

$$ \mathbf{A} = \begin{pmatrix} \mathbf{u}_1^B & \mathbf{u}_2^B & \dots & \mathbf{u}_m^B \\ \mathbf{r}_1^B \otimes \mathbf{u}_1^B & \mathbf{r}_2^B \otimes \mathbf{u}_2^B & \dots & \mathbf{r}_m^B \otimes \mathbf{u}_m^B \end{pmatrix} \\ = \begin{pmatrix} \mathbf{u}_1^B & \mathbf{u}_2^B & \dots & \mathbf{u}_m^B \\ \tau_1^B & \tau_2^B & \dots & \tau_m^B \end{pmatrix} = \begin{pmatrix} \mathbf{A}_1 \\ \mathbf{A}_2 \end{pmatrix} \quad (2) $$

where $m = 7$; $\mathbf{u}_i^B$ and $\mathbf{r}_i^B$ ($i \in \{1, \dots, 7\}$) are direction and position vectors of thrusters with respect to body frame. The operator $\otimes$ is a cross product, and $\tau_i^B = \mathbf{r}_i^B \otimes \mathbf{u}_i^B$. The $\mathbf{u}_1^B, \dots, \mathbf{u}_7^B$ and $\mathbf{r}_1^B, \dots, \mathbf{r}_7^B$ are identified as in Appendix A.

From equations $\mathbf{u}_i^B$ and $\mathbf{r}_i^B$, it is obvious to see that the configuration matrix ($\mathbf{A}$) depends on forward and backward angles, $\alpha_F$ and $\alpha_B$, respectively. By modifying these two angles, the configuration matrix will change. Table 1 shows the configuration matrix $\mathbf{A}$ corresponding to three cases. If $\alpha_F = \alpha_B = 45^\circ$, the robot is propelled with all thrusters oriented in the same direction, called *torpedo configuration*, and it can act along surge, pitch, and yaw degrees of freedom. This configuration corresponds to an under-actuated situation, and the system can be controlled as a torpedo-like system. Otherwise, if $\alpha_F = \alpha_B = 90^\circ$, the robot can act along the 6 DoFs, it is a fully actuated system (note that in the roll direction, the acting ability is quite small in our case); therefore, the acting capability of the robot is extended. In an arbitrary case, for instance $\alpha_F = 50^\circ, \alpha_B = 60^\circ$, the configuration matrix also shows that the robot can operate along 6 DoFs; however, the priority is also along u-axis (surge direction), and then the robot can be considered as a fully actuated system, but with different capability along a specific DoF. If two angles $\alpha_F$ and $\alpha_B$ vary at each time step, the online adaption of the configuration matrix can be achieved.
<table><caption>**Table 1.** Configuration matrix with some cases of two angles $\alpha_F$ and $\alpha_B$.</caption><thead><tr><th>Angles</th><th colspan="8">A Matrix</th></tr></thead><tbody><tr><td rowspan="4">α<sub>F</sub> = 45°<br>α<sub>B</sub> = 45°</td><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td></tr><tr><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td rowspan="4">α<sub>F</sub> = 50°<br>α<sub>B</sub> = 60°</td><td>-0.0435</td><td>0.1909</td><td>-0.0435</td><td>-0.0600</td><td>0.1909</td><td>-0.0600</td><td>-0.1909</td><td>0.0600</td></tr><tr><td>0.1953</td><td>-0.0600</td><td>-0.1953</td><td>0.1909</td><td>-0.0600</td><td>-0.1909</td><td>0.0600</td></tr><tr><td>0.9962</td><td>0.9962</td><td>0.9962</td><td>0.9659</td><td>0.9659</td><td>0.9659</td><td>0.9659</td><td>0</td></tr><tr><td>0.0755</td><td>0</td><td>-0.0755</td><td>0.2588</td><td>0</td><td>-0.2588</td><td>0</td><td>0</td></tr><tr><td rowspan="4">α<sub>F</sub> = 90°<br>α<sub>B</sub> = 90°</td><td>0.0436</td><td>-0.0872</td><td>0.0436</td><td>0</td><td>-0.2588</td><td>0</td><td>0.2588</td><td>0</td></tr><tr><td>-0.0052</td><td>-0.0052</td><td>0.0052</td><td>0.0155</td><td>-0.0155</td><td>-0.0155</td><td>-0.0155</td><td>0</td></tr><tr><td>-0.0630</td><td>0.2296</td><td>-0.0630</td><td>-0.0580</td><td>0.1417</td><td>-0.0580</td><td>-0.1417</td><td>0.0580</td></tr><tr><td>0.2287</td><td>-0.0598</td><td>-0.2287</td><td>0.1417</td><td>-0.0580</td><td>-0.1417</td><td>0.0580</td></tr><tr><td rowspan="4">α<sub>F</sub> = 90°<br>α<sub>B</sub> = 90°</td><td>0.7071</td><td>0.7071</td><td>0.7071</td><td>0.7071</td><td>0.7071</td><td>0.7071</td><td>0.7071</td><td>0</td></tr><tr><td>0.6124</td><td>0</td><td>-0.6124</td><td>0.7071</td><td>0</td><td>-0.7071</td><td>0</td><td>0</td></tr><tr><td>0.3536</td><td>-0.7071</td><td>0.3536</td><td>0</td><td>-0.7071</td><td>0</td><td>0.7071</td><td>0</td></tr><tr><td>-0.0424</td><td>-0.0424</td><td>0.0424</td><td>0.0424</td><td>-0.0424</td><td>-0.0424</td><td>-0.0424</td><td>0</td></tr><tr><td rowspan="2">α<sub>F</sub> = 90°<br>α<sub>B</sub> = 90°</td><td>-0.1575</td><td>0.3885</td><td>-0.1575</td><td>-0.0424</td><td>0.0566</td><td>-0.0424</td><td>-0.0566</td><td>0</td></tr><tr><td>0.3577</td><td>-0.0424</td><td>-0.3577</td><td>0.0566</td><td>-0.0424</td><td>-0.0566</td><td>0.0424</td></tr></tbody></table>

## Acting Ability

From Equation (1), we can see that the acting abilities along each DoF depends on the elements of matrix $A \in \mathbb{R}^{6 \times m}$ (with elements $a_{ij}$); therefore, we define the *acting ability* criterion for each DoF as:

$$ K_i = \sum_{j=1}^{m} a_{ij}^2 \qquad (3) $$

where $i \in \{u, v, w, p, q, r\}$, specifically, $u$—surge linear velocity, $v$—sway linear velocity, $w$—heave linear velocity, $p$—roll angular rate, $q$—pitch angular rate, and $r$—yaw angular rate; $a_{ij}$ (row $i$, column $j$) is an element of matrix $A$. In particular, *acting ability* along $u$-axis is $K_u = \sum_{j=1}^{m} a_{ij}^2$, note that $u$ corresponds to row-1, $v$ corresponds to row-2, $w$ corresponds to row-3, $p$ corresponds to row-4, $q$ corresponds to row-5, and $r$ corresponds to row-6.

For Umbrella Robot, two angles $\alpha_F, \alpha_B$ vary from 45° to 90°. We can illustrate variations of these capabilities as shown in Figure 9a. We can obviously choose the maximum value of the acting ability of each DoF; however, there exists a large deviation of acting abilities between DoFs. In particular, the acting abilities of 6 DoFs with $\alpha_F = \alpha_B = 90°$ are shown in Figure 9b.

This Figure 9 shows the acting ability (which is defined in Equation (3)) of the robot for each Degree of Freedom (DoF) (surge, sway, heave, roll, pitch, yaw) when its configuration is changed. Specifically, Figure 9a presents the variety of acting ability when varying two angles ($\alpha_F, \alpha_B$); Figure 9b presents the acting ability when these two angles equal 90°. One could note that the acting capability $K_p$ is very low. This is due to the fact that in the *open-open* configuration, all the thrusters are nearly crossing the $x$-axis of the system, thus inducing a very poor roll torque. Nevertheless, this degree of freedom can be statically compensated with a judicious placement of weighting parts (batteries) and buoyancy foam.
<figure><img src="image_12.png" /><figcaption>**Figure 9.** Acting abilities of UR. (a) Acting abilities along/about each DOF of UR with varying $α_F$ and $α_B$. (b) Acting abilities along/about each DOF of UR with $α_F = α_B = 90°$.</figcaption></figure>

## 4. Experiments

The objectives of the experiments were to validate the UR's basic operations in each major DoF (i.e., surge, heave, yaw, pitch controls), and an integrated mission (a combination in different tasks) with its reconfigurability (changing its configuration during a mission). Note that the UR uses the T200 thruster, which has the characteristic shown in Figure 10, as the actuators. The input of the thruster is PWM (range from 1100 (µs) to 1900 (µs)) that is the input to the Electronic Speed Controller (ESC) inside; however, in our experiments, this was limited from 1200 (µs) to 1800 (µs) for safety. The output of the thruster is the force.

<figure><img src="image_13.png" /><figcaption>**Figure 10.** T200 thruster's characteristics adapted from [32].</figcaption></figure>

The experiments were carried out in a swimming pool (see Figure 11) with specific missions, i.e., *yaw control*, *depth control*, *surge-pitch-yaw control*, and *finally an integrated mission*. The simple PD (Proportional Derivative) controllers were used in our experiments. The parameters of the controller are shown in Table 2.

<table><caption>**Table 2.** Parameters of the PD controllers.</caption><thead><tr><th></th><th>K<sub>p</sub></th><th>K<sub>D</sub></th></tr></thead><tbody><tr><td>Yaw control</td><td>10</td><td>2</td></tr><tr><td>Depth control</td><td>20</td><td>5</td></tr><tr><td>Surge-Pitch-Yaw control</td><td>10</td><td>3</td></tr><tr><td>Integrated Mission</td><td>15</td><td>4</td></tr></tbody></table>
<figure><img src="image_14.png" /><figcaption>Figure 11. Umbrella Robot at the swimming pool.</figcaption></figure>

4.1. *Yaw Control*

In this experiment, the desired yaw angle is set to 93° (initial yaw angle of the robot) and after to -93°. The objective was that the UR maintains an initial yaw angle (93°) and makes a turn to a second desired angle (-93°). In this test, the robot's configuration is chosen as α<sub>F</sub> = α<sub>B</sub> = 45° (the torpedo configuration); therefore, the position and direction of the thrusters are as seen in Figure 12a. The experimental results are shown in Figure 12. In particular, the real yaw angle of robot follows the desired yaw angle as in Figure 12b. Moreover, applied torques, outputs from controller, and PWM (Pulse Width Modulation) inputs of the thrusters are presented in Figure 12c,d, respectively. When the UR keeps the initial yaw angle, from 0-10 s, the outputs of the controller are almost zero and all thrusters do not rotate. When the desired yaw angle is changed, the controller delivers yaw torques to converge to the desired value (-93°), the time response of the system is around 15 s.

<figure><img src="image_15.png" /><figcaption>Figure 12. *Cont.*</figcaption></figure>
<figure><img src="image_16.png" /><figcaption>**Figure 12.** Yaw control of the UR. (a) Position and direction of thrusters of UR in the yaw control. (b) Yaw angles. (c) Applied torques. (d) PWM (µs) of thrusters.</figcaption></figure>

## 4.2. Depth Control

In this test, robot's configuration is set as $α_F = α_B = 70°$ (the position and direction of all thrusters are shown in the right upper-corner of Figure 13a) and the desired depth is set as a constant. The experimental results are shown in Figure 13. The mission was to control the robot to a desired depth as in Figure 13a. The depth error, that is the deviation between desired depth and real depth, converges to zero and remains stable as shown in Figure 13b. Only the force applied along the heave direction (output from the controller) is delivered as in Figure 13c. The PWM inputs of thrusters remain in a feasible region, except for Thruster 5, which reaches saturation around 2 s (Figure 13d). We can see that a simple controller can be used to control the robot to a desired depth.

<figure><img src="image_17.png" /><figcaption>**Figure 13.** Depth control of the UR. (a) Mission description, position, and direction of thrusters in the depth control. (b) Depth error = desired depth–real depth. (c) Applied forces. (d) PWM (µs) of thrusters.</figcaption></figure>

## 4.3. Surge-Pitch-Yaw Control

The objective of this experiment was to control the robot with different tasks, i.e., surge forward and maintain the pitch and yaw stability using the configuration as a torpedo-like shape. The robot's configuration is set up as $α_F = α_B = 45°$. All thrusters have the same directions as in the experiment of yaw control; however, in this test, the robot has to
maintain the desired pitch and yaw angles and to surge forward. Hence, the force $F_u = 25$ N is applied along the surge direction (Figure 14b). The experimental results are shown in Figure 14. Readers can see more with attached video links. Figure 14a shows that the Euler angles of the robot (roll, pitch, and yaw) remain stable during the mission. Moreover, applied torques (around pitch and yaw) produced to keep the stability of these angles are shown in Figure 14c. The PWM inputs of the thrusters are kept inside the feasible region (Figure 14d).

<figure><img src="image_18.png" /><figcaption>**Figure 14.** Surge, pitch, and yaw control https://youtu.be/1DzfYrsSaMM and https://youtu.be/9eFT7h-zX3s accessed on 8 February 2022. (a) Euler angles. (b) Applied forces. (c) Applied torques. (d) PWM (µs) of thrusters.</figcaption></figure>

## 4.4. An Integrated Mission

The final experiment proposes to validate the robot's performance with different configurations during a mission. In fact, in this test, the robot carries out a complex task, which is illustrated in Figure 15a. Specifically, it goes straight from point A to point B (surge-pitch-yaw control) ($α_F = α_B = 45°$) (the position and direction of all thrusters are as seen in the left upper-corner of Figure 15a), and then it changes configuration with $α_F = 85°$ and $α_B = 45°$ (the position and direction of all thrusters are as seen in the upper center of Figure 15a) and makes a turn 180° around point B. After that, it changes to a new configuration ($α_F = 85°$ and $α_B = 85°$) (the position and direction of all thrusters are as seen in the right upper-corner of Figure 15a) and performs a depth control in a fixed time from point B to point C. Finally, with the same configuration, the robot moves along the sway direction and maintains the depth control (see Figure 15a). The experimental results are shown in Figure 15. Note that the robot has to modify its configuration with respect to the task because of the directly uncontrollable command. For example, with $α_F = α_B = 45°$, the robot cannot be driven to a desired depth directly; it can be controlled indirectly by more complex strategy; however, it is not considered in the paper.

In this mission, the robot requires the time to change its configuration as in Figure 15b,c. It takes around 7 s and this time depends the power of the actuator being in charge of the change (DC motors). The control performance is achieved thanks to the convergence of depth error, the deviation between desired depth and real depth (depth control), and the change of yaw angle (making a turn) (see Figure 15b,c). Finally, it is easy to see that the
PWM inputs of the thrusters are also in the feasible region. We can see that the UR can implement different tasks with different configurations.

<figure><img src="image_19.png" /><figcaption>**Figure 15.** Integrated mission of Umbrella Robot. (a) Mission description, position, and direction of thrusters. (b) Depth error = desired depth–real depth. (c) Euler angles. (d) PWM (µs) of thrusters.</figcaption></figure>

Through all the above experiments, the UR shows the ability to control the 5 DoFs (i.e., surge, heave, sway, pitch, yaw) easily. For the roll-DoF, the acting ability of the robot is rather small and requires more effort to control the robot in this direction. Theoretically, for our robot, roll-DoF can be controllable (see Figure 9b); however, this was not implemented in the real test.

**5. Discussion and Comparison**

The Umbrella Robot (UR), a dynamically reconfigurable robot, has been proposed, designed, and tested. Generally, for a reconfigurable robot, its configuration can be changed statically or dynamically. It is obvious to see that a dynamic one is more versatile than a static one, especially for a challenging environment, such as a confined karst. In this section, we make a comparison between our robot and different reconfigurable underwater robots, i.e., *Tortuga* [33], *e-URoPe* [29], *RSM* [18], and *Amour 6* [34], which are shown in Figure 16. Note that, among them, only *Tortuga* and *RSM* are able to dynamically change configuration during a mission. For *e-URoPe* and *Amour 6*, several possible layouts can be adjusted statically depending on a specific mission. To this end, we assume that a DoF is called *controlled* if there exists at least one actuator that can deliver a force or torque directly along/about this DoF. Otherwise, it is called *uncontrolled*. A comparison between different kinds of robot on each DoF was carried out to see the versatility of each one. Thanks to our robot's configuration and four others, the comparison is shown in Table 3. In particular, we can see that our robot, UR, is *controlled* in all DoFs. For the *Tortuga* robot, all DoFs are *controlled* except pitch DoF. For the *e-URoPe* robot, six possible layouts can be adjusted for the mission. Of course, for each layout, there exist several DoFs *uncontrolled* (i.e., roll and pitch). For *RSM* robot, theoretically, four thrusters can change orientation in all directions and all DoFs are *controlled*; however, there is no real test for this robot.
Moreover, each thruster needs at least one actuator to drive, this raises the cost-effective issue and complexity in installation. The last robot, *Amour 6*, has three layouts in which pitch DoF cannot be controlled.

From a dynamic configuration perspective, we discuss our robot and *Tortuga*. Indeed, only our robot and *Tortuga* had real experiments in which the configuration had been changed during the mission. Following Figure 16a, the configuration matrix of the *Tortuga* robot depends on four angles ($\alpha_{1,2,3,4}$). For each thruster, one motor is needed to drive. The advantage of this mechanism is that each thruster can controlled separately; however, this raises the energy consumption, which is a problem for long-range missions and confined environments (e.g., karst). Otherwise, our robot only uses two added motors to change the direction and orientation of seven thrusters (see Table 4). This is a significant impact when we would like to design an over-actuated system that can be useful in the case of fault tolerance and endurance in long missions in confined environments. Furthermore, in order to evaluate a configuration design, we need performance criteria as in [31]. One of the important properties of the robot is its isotropic attribute, which means that the robot is able to act to the same degree in all DoFs. Based on the structure of the configuration matrices, our robot is more isotropic than the *Tortuga* robot. Of course, each robot's design has been proposed for each priority.

<figure><img src="image_20.png" /><figcaption>**Figure 16.** Different reconfigurable underwater robots. (a) *Tortuga* robot's configuration. (b) e-URoPe robot's configuration. (c) RSM robot's configuration. (d) *Amour 6* robot's configuration.</figcaption></figure>

<table><caption>**Table 3.** A comparison between different underwater robots.</caption><thead><tr><th></th><th>UR Robot</th><th>Tortuga</th><th>e-URoPe</th><th>RSM</th><th>AMOUR 6</th></tr></thead><tbody><tr><td>Surge</td><td>Controlled</td><td>Controlled</td><td>Controlled</td><td>Controlled</td><td>Controlled</td></tr><tr><td>Sway</td><td>Controlled</td><td>Controlled</td><td>Controlled</td><td>Controlled</td><td>Controlled</td></tr><tr><td>Heave</td><td>Controlled</td><td>Controlled</td><td>Controlled</td><td>Controlled</td><td>Controlled</td></tr><tr><td>Roll</td><td>Badly Controlled</td><td>Controlled</td><td>UnControlled</td><td>Controlled</td><td>Controlled</td></tr><tr><td>Pitch</td><td>Controlled</td><td>UnControlled</td><td>UnControlled</td><td>Controlled</td><td>UnControlled</td></tr><tr><td>Yaw</td><td>Controlled</td><td>Controlled</td><td>Controlled</td><td>Controlled</td><td>Controlled</td></tr><tr><td>Reconfig</td><td>Dynamic</td><td>Dynamic</td><td>Static</td><td>Dynamic</td><td>Static</td></tr></tbody></table>
<table><caption>**Table 4.** Added actuators/changed thrusters comparison between UR and Tortuga.</caption><thead><tr><td></td><td>UR Robot</td><td>Tortuga</td></tr></thead><tbody><tr><td>Added actuators</td><td>2</td><td>4</td></tr><tr><td>Changed thrusters</td><td>7</td><td>4</td></tr></tbody></table>

## 6. An Application Case

The advantages of our robot's flexibility can be clearly seen in the docking application. A docking system will enhance the endurance capability of AUVs for long-term missions while reducing operation costs and hazards. The functions of a docking station (DS) are normally for battery charging, and mission data download/upload without recovering the AUV back to a ship's board. Various forms of docking stations have been developed; however, they can be classified into three popular implementations, either a *fixed* docking station, *free-floating* docking station, or *mobile* docking station. The first one is firmly fixed to the seabed or integrated into a subsea station; the second type is buoyant and moored to the seabed or connected to a larger underwater vessel. The last one is normally towed behind a ship [35].

Mechanical configurations of docking stations comprise the unidirectional DS or the omnidirectional DS (see Figure 17). The unidirectional DS is a capture mechanism that consists of a funnel/cone-shaped entrance for catching torpedo-shaped AUVs (Figure 17a) [36]. The omnidirectional DS is a vertical structure including rigid poles or cables under tension, to which a vehicle is able to attach using a latching device (Figure 17b) [37]. The key advantage of this DS is to allow an AUV to approach from any direction and a simple navigation system can be used during the docking task.

<figure><img src="image_21.png" /><figcaption>**Figure 17.** Mechanical configurations of DS types. (a) Unidirectional DS; (b) Omnidirectional DS.</figcaption></figure>

The docking procedure can be divided into two major stages, known as the *homing stage* and *docking stage*. In the *homing stage*, an AUV has a high-speed approach to arrive in the close vicinity of the DS. In the *docking stage*, the AUV has a low-speed final approach that requires the vehicle to be controllable at a low speed to drive it into the DS entrance and to latch it in the DS. Moreover, this will remove constraints on the nature of the docking structure, will achieve greater control of alignment of the vehicle and docking during capture, and minimize docking forces. This implies a vehicle with control over four or more degrees of freedom at low speed. Another simpler DS will be designed for this kind of vehicle. This idea is called *soft-docking* approaches [37]. In the literature, most of the docking stations have been designed for torpedo-shaped AUVs. This can be clearly seen in Table 5. In fact, all robots were designed as under-actuated systems with three controllable DoF. This requires more complexity in building navigation, guidance, and control system of robots as well as docking station. Moreover, the *soft-docking* approach cannot be applied for these robots.
<table><caption>**Table 5.** Docking problem with different robots.</caption><thead><tr><th></th><th>Configuration</th><th>DS Type</th><th>Controllable DoF</th></tr></thead><tbody><tr><td>REMUS [36]</td><td></td><td></td><td></td></tr><tr><td>REMUS-100 [38]</td><td>Torpedo-shaped</td><td>Funnel-shaped DS</td><td>Surge, Pitch, Yaw</td></tr><tr><td>REMUS-600 [39]</td><td></td><td></td><td></td></tr><tr><td>Odyssey IIB [40]</td><td>Torpedo-shaped</td><td>Fixed<br>funnel-shaped DS</td><td>Surge, Heave, Yaw</td></tr><tr><td>Dorado [41]</td><td>Torpedo-shaped</td><td>Fixed<br>funnel-shaped DS</td><td>Surge, Heave, Yaw</td></tr><tr><td>WL-3 AUV [42]</td><td>Torpedo-shaped</td><td>Fixed<br>funnel-shaped DS</td><td>Surge, Pitch, Yaw</td></tr><tr><td>ISIMI [43]</td><td>Torpedo-shaped</td><td>Fixed<br>funnel/cone-shaped DS</td><td>Surge, Pitch, Yaw</td></tr><tr><td>Ifremer Asterx [44]</td><td>Torpedo-shaped</td><td>Mobile<br>funnel/cone-shaped DS</td><td>Surge, Heave, Yaw</td></tr><tr><td>Sparus II AUV [45]</td><td>Torpedo-shaped</td><td>Funnel/cone-shaped DS</td><td>Surge, Heave, Yaw</td></tr></tbody></table>

Motivated by the *soft-docking* approach, the UR's application for the docking problem is proposed as in Figure 18, and can be summarized as follows:

1. *Homing stage:* The UR uses a torpedo-like configuration to obtain a high speed to arrive close in the vicinity of the DS.

2. *Docking stage:* The UR changes its configuration to become a 6-DoF controllable vehicle in order to approach and latch onto the DS easily and to deal with environment disturbances. It is clear that, with a 6-DoF controllable AUV, the navigation, guidance, and control for the AUV and the docking station will be simpler.

<figure><img src="image_22.png" /><figcaption>**Figure 18.** Concept of docking procedure of UR robot.</figcaption></figure>

The advantages of the UR robot will enhance a docking solution thanks to its reconfigurability. It is similar to the application of the UR (Umbrella Robot) to karst exploration that
was mentioned before. Indeed, the robot needs a high-speed approach with the torpedo-like configuration to overcome a narrow conduit and to go fast to the target and then requires a low-speed profile (6-DoF controllable) to make observations or to collect samples.

## 7. Conclusions and Future Works

The paper proposes a dynamically reconfigurable AUV that can modify its configuration with respect to different mission requirements. The hardware and software designs of the robot are presented, such as class modeling and dynamic state machine modeling. The reconfigurable capacity of the robot has been introduced and analyzed thanks to the variation of the configuration matrix. Experimental results are shown to demonstrate the versatility of the robot. The discussion and comparison between our robot and four other underwater robots are also presented, and an application case (docking problem) is suggested and discussed; however, the robot has a limitation in roll rotation. An optimal shape of the robot to improve this drawback will be an interesting work. Moreover, when investigating adaptation to the variation of the robot's configuration, some challenging issues will be derived, such as an adaptive control strategy (i.e., switched controller between an under-actuated system and a fully/over-actuated system) and an adaptive control allocation. An energy-efficient path following, trajectory tracking, or docking implementation with the dynamically reconfigurable robot will be the subject of future research. Finally, we are looking forward to conduct experiments in a real karstic conduit.

**Author Contributions:** Conceptualization, T.D., L.L., R.Z., and G.G.; methodology, T.D., L.L., R.Z., and B.R.; software, T.D., L.L., and R.Z.; validation, T.D., L.L., and R.Z.; writing—original draft preparation, T.D.; writing—review and editing, L.L.; supervision, L.L. and R.Z.; project administration, L.L.; funding acquisition, L.L. All authors have read and agreed to the published version of the manuscript.

**Funding:** This project was supported by the LabEx NUMEV (ANR-10-LABX-0020) within the I-SITE MUSE (ANR-16-IDEX-0006) and the Region Occitanie (french FEDER funds).

**Institutional Review Board Statement:** Not applicable.

**Informed Consent Statement:** Not applicable.

**Acknowledgments:** The authors would like to thank Numev Labex, MUSE, Montpellier University; Region Occitanie; and FEDER for supporting this research.

**Conflicts of Interest:** The authors declare no conflict of interest.

## Abbreviations

The following abbreviations are used in this manuscript:

AUV Autonomous Underwater Robot

AS Actuation System

S-NGC-A Sensory Navigation Guidance Control Actuation

UR Umbrella Robot

ROV Remotely Operation Vehicle

IMU Inertial Measurement Unit

PWM Pulse Width Modulation

DoF Degree of Freedom

ESC Electronic Speed Controller

DS Docking Station

## Appendix A

The elements of configuration matrix, **A**, are presented in Table A1. Note that *d* and *d*<sub>*i*</sub>, *i* ∈ {*F*, *e*, *t*} are geometrical distances corresponding with the shape of the robot. *β*<sub>*i*</sub>, *i* ∈ {1, 2, ..., 7} is an angle.
<table><caption>Table A1. Elements of A matrix.</caption><tr><td><b>u</b><sub>1</sub><sup>B</sup> = <span style="font-size: 2.5em; vertical-align: middle;">(</span><table style="display: inline-table; vertical-align: middle; border-collapse: collapse; text-align: center;"><tbody><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">1/√2 (sinα<sub>F</sub>+cosα<sub>F</sub>)</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">√3/2√2 (-cosα<sub>F</sub>+sinα<sub>F</sub>)</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">1/2√2 (-cosα<sub>F</sub>+sinα<sub>F</sub>)</td></tr></tbody></table><span style="font-size: 2.5em; vertical-align: middle;">)</span></td><td><b>r</b><sub>1</sub><sup>B</sup> = <span style="font-size: 2.5em; vertical-align: middle;">(</span><table style="display: inline-table; vertical-align: middle; border-collapse: collapse; text-align: center;"><tbody><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">(d<sub>F</sub>+L<sub>F</sub>) - √d<sub>F</sub><sup>2</sup>+d<sub>F</sub><sup>2</sup>.cos(α<sub>F</sub>+β<sub>1</sub>)</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">- d<sub>F</sub>/2 - √3(d<sub>F</sub><sup>2</sup>+d<sub>F</sub><sup>2</sup>)sin(α<sub>F</sub>+β<sub>1</sub>)</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">√3/2 d<sub>F</sub> - √d<sub>F</sub><sup>2</sup>+d<sub>F</sub><sup>2</sup>sin(α<sub>F</sub>+β<sub>1</sub>)</td></tr></tbody></table><span style="font-size: 2.5em; vertical-align: middle;">)</span></td></tr><tr><td><b>u</b><sub>2</sub><sup>B</sup> = <span style="font-size: 2.5em; vertical-align: middle;">(</span><table style="display: inline-table; vertical-align: middle; border-collapse: collapse; text-align: center;"><tbody><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">cosα<sub>F</sub>+sinα<sub>F</sub>/√2</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">0</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">cosα<sub>F</sub>-sinα<sub>F</sub>/√2</td></tr></tbody></table><span style="font-size: 2.5em; vertical-align: middle;">)</span></td><td><b>r</b><sub>2</sub><sup>B</sup> = <span style="font-size: 2.5em; vertical-align: middle;">(</span><table style="display: inline-table; vertical-align: middle; border-collapse: collapse; text-align: center;"><tbody><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">(d<sub>F</sub>+L<sub>F</sub>) - √d<sub>F</sub><sup>2</sup>+d<sub>F</sub><sup>2</sup>.cos(α<sub>F</sub>+β<sub>2</sub>)</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">d<sub>F</sub></td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">√d<sub>F</sub><sup>2</sup>+d<sub>F</sub><sup>2</sup>sin(α<sub>F</sub>+β<sub>2</sub>)</td></tr></tbody></table><span style="font-size: 2.5em; vertical-align: middle;">)</span></td></tr><tr><td><b>u</b><sub>3</sub><sup>B</sup> = <span style="font-size: 2.5em; vertical-align: middle;">(</span><table style="display: inline-table; vertical-align: middle; border-collapse: collapse; text-align: center;"><tbody><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">1/√2 (sinα<sub>F</sub>+cosα<sub>F</sub>)</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">√3/2√2 (cosα<sub>F</sub>-sinα<sub>F</sub>)</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">1/2√2 (sinα<sub>F</sub>-cosα<sub>F</sub>)</td></tr></tbody></table><span style="font-size: 2.5em; vertical-align: middle;">)</span></td><td><b>r</b><sub>3</sub><sup>B</sup> = <span style="font-size: 2.5em; vertical-align: middle;">(</span><table style="display: inline-table; vertical-align: middle; border-collapse: collapse; text-align: center;"><tbody><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">(d<sub>F</sub>+L<sub>F</sub>) - √d<sub>F</sub><sup>2</sup>+d<sub>F</sub><sup>2</sup>.cos(α<sub>F</sub>+β<sub>3</sub>)</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">d<sub>F</sub>/2 + √3(d<sub>F</sub><sup>2</sup>+d<sub>F</sub><sup>2</sup>)sin(α<sub>F</sub>+β<sub>3</sub>)</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">√3/2 d<sub>F</sub> - √d<sub>F</sub><sup>2</sup>+d<sub>F</sub><sup>2</sup>sin(α<sub>F</sub>+β<sub>3</sub>)</td></tr></tbody></table><span style="font-size: 2.5em; vertical-align: middle;">)</span></td></tr><tr><td><b>u</b><sub>4</sub><sup>B</sup> = <span style="font-size: 2.5em; vertical-align: middle;">(</span><table style="display: inline-table; vertical-align: middle; border-collapse: collapse; text-align: center;"><tbody><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">cosα<sub>B</sub>+sinα<sub>B</sub>/√2</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">-cosα<sub>B</sub>+sinα<sub>B</sub>/√2</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">0</td></tr></tbody></table><span style="font-size: 2.5em; vertical-align: middle;">)</span></td><td><b>r</b><sub>4</sub><sup>B</sup> = <span style="font-size: 2.5em; vertical-align: middle;">(</span><table style="display: inline-table; vertical-align: middle; border-collapse: collapse; text-align: center;"><tbody><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">-(d<sub>F</sub>+√d<sub>F</sub><sup>2</sup>+d<sub>F</sub><sup>2</sup>.cos(α<sub>B</sub>+β<sub>4</sub>))</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">-(√d<sub>F</sub><sup>2</sup>+d<sub>F</sub><sup>2</sup>.sin(α<sub>B</sub>+β<sub>4</sub>))</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">-dt</td></tr></tbody></table><span style="font-size: 2.5em; vertical-align: middle;">)</span></td></tr><tr><td><b>u</b><sub>5</sub><sup>B</sup> = <span style="font-size: 2.5em; vertical-align: middle;">(</span><table style="display: inline-table; vertical-align: middle; border-collapse: collapse; text-align: center;"><tbody><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">cosα<sub>B</sub>+sinα<sub>B</sub>/√2</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">0</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">cosα<sub>B</sub>-sinα<sub>B</sub>/√2</td></tr></tbody></table><span style="font-size: 2.5em; vertical-align: middle;">)</span></td><td><b>r</b><sub>5</sub><sup>B</sup> = <span style="font-size: 2.5em; vertical-align: middle;">(</span><table style="display: inline-table; vertical-align: middle; border-collapse: collapse; text-align: center;"><tbody><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">-(d<sub>F</sub>+√d<sub>F</sub><sup>2</sup>+d<sub>F</sub><sup>2</sup>.cos(α<sub>B</sub>+β<sub>5</sub>))</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">d<sub>F</sub></td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">√d<sub>F</sub><sup>2</sup>+d<sub>F</sub><sup>2</sup>.sin(α<sub>B</sub>+β<sub>5</sub>)</td></tr></tbody></table><span style="font-size: 2.5em; vertical-align: middle;">)</span></td></tr><tr><td><b>u</b><sub>6</sub><sup>B</sup> = <span style="font-size: 2.5em; vertical-align: middle;">(</span><table style="display: inline-table; vertical-align: middle; border-collapse: collapse; text-align: center;"><tbody><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">cosα<sub>B</sub>+sinα<sub>B</sub>/√2</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">cosα<sub>B</sub>-sinα<sub>B</sub>/√2</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">0</td></tr></tbody></table><span style="font-size: 2.5em; vertical-align: middle;">)</span></td><td><b>r</b><sub>6</sub><sup>B</sup> = <span style="font-size: 2.5em; vertical-align: middle;">(</span><table style="display: inline-table; vertical-align: middle; border-collapse: collapse; text-align: center;"><tbody><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">-(d<sub>F</sub>+√d<sub>F</sub><sup>2</sup>+d<sub>F</sub><sup>2</sup>.cos(α<sub>B</sub>+β<sub>6</sub>))</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">√d<sub>F</sub><sup>2</sup>+d<sub>F</sub><sup>2</sup>.sin(α<sub>B</sub>+β<sub>6</sub>)</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">-d<sub>F</sub></td></tr></tbody></table><span style="font-size: 2.5em; vertical-align: middle;">)</span></td></tr><tr><td><b>u</b><sub>7</sub><sup>B</sup> = <span style="font-size: 2.5em; vertical-align: middle;">(</span><table style="display: inline-table; vertical-align: middle; border-collapse: collapse; text-align: center;"><tbody><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">cosα<sub>B</sub>+sinα<sub>B</sub>/√2</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">0</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">-cosα<sub>B</sub>+sinα<sub>B</sub>/√2</td></tr></tbody></table><span style="font-size: 2.5em; vertical-align: middle;">)</span></td><td><b>r</b><sub>7</sub><sup>B</sup> = <span style="font-size: 2.5em; vertical-align: middle;">(</span><table style="display: inline-table; vertical-align: middle; border-collapse: collapse; text-align: center;"><tbody><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">-(d<sub>F</sub>+√d<sub>F</sub><sup>2</sup>+d<sub>F</sub><sup>2</sup>.cos(α<sub>B</sub>+β<sub>7</sub>))</td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">-d<sub>F</sub></td></tr><tr><td style="border-bottom: 1px solid black; padding: 0 0.2em;">-(√d<sub>F</sub><sup>2</sup>+d<sub>F</sub><sup>2</sup>.sin(α<sub>B</sub>+β<sub>7</sub>))</td></tr></tbody></table><span style="font-size: 2.5em; vertical-align: middle;">)</span></td></tr></table>

## References

1. Jourde, H.; Roesch, A.; Guinot, V.; Bailly-Comte, V. Dynamics and contribution of karst groundwater to surface flow during Mediterranean flood. *Environ. Geol.* **2007**, *51*, 725–730. [CrossRef]

2. Yim, M.; Shen, W.M.; Salemi, B.; Rus, D.; Moll, M.; Lipson, H.; Klavins, E.; Chirikjian, G.S. Modular self-reconfigurable robot systems [grand challenges of robotics]. *IEEE Robot. Autom. Mag.* **2007**, *14*, 43–52. [CrossRef]

3. Liu, J.; Zhang, X.; Hao, G. Survey on research and development of reconfigurable modular robots. *Adv. Mech. Eng.* **2016**, *8*, 1687814016659597. [CrossRef]

4. Fukuda, T.; Nakagawa, S. Approach to the dynamically reconfigurable robotic system. *J. Intell. Robot. Syst.* **1988**, *1*, 55–72. [CrossRef]

5. Fukuda, T.; Nakagawa, S. Dynamically reconfigurable robotic system. In Proceedings of the 1988 IEEE International Conference on Robotics and Automation, Philadelphia, PA, USA, 24–29 April 1988; pp. 1581–1586.

6. Schmitz, D. *The CMU Reconfigurable Modular Manipulator System*; Technical Report; The Robotics Institute, Carnegie Mellon University: Pittsburgh, PA, USA, 1988.

7. Kereluk, J.A.; Emami, M.R. Task-based optimization of reconfigurable robot manipulators. *Adv. Robot.* **2017**, *31*, 836–850. [CrossRef]

8. Murata, S.; Kurokawa, H. Self-reconfigurable robots. *IEEE Robot. Autom. Mag.* **2007**, *14*, 71–78. [CrossRef]

9. Stoy, K.; Brandt, D.; Christensen, D.J. *Self-Reconfigurable Robots: An Introduction*; MIT Press: Cambridge, MA, USA, 2010.

10. Daudelin, J.; Jing, G.; Tosun, T.; Yim, M.; Kress-Gazit, H.; Campbell, M. An integrated system for perception-driven autonomy with modular robots. *Sci. Robot.* **2018**, *3*, eaat4983. [CrossRef]

11. Prabakaran, V.; Elara, M.R.; Pathmakumar, T.; Nansai, S. Floor cleaning robot with reconfigurable mechanism. *Autom. Constr.* **2018**, *91*, 155–165. [CrossRef]

12. Thakker, R.; Kamat, A.; Bharambe, S.; Chiddarwar, S.; Bhurchandi, K.M. Rebis-reconfigurable bipedal snake robot. In Proceedings of the 2014 IEEE/RSJ International Conference on Intelligent Robots and Systems, Chicago, IL, USA, 14–18 September 2014; pp. 309–314.

13. Caccia, M.; Veruggio, G. Guidance and control of a reconfigurable unmanned underwater vehicle. *Control. Eng. Pract.* **2000**, *8*, 21–37. [CrossRef]

14. Low, K.; Yu, J. Development of modular and reconfigurable biomimetic robotic fish with undulating fin. In Proceedings of the 2007 IEEE International Conference on Robotics and Biomimetics (ROBIO), Sanya, China, 15–18 December 2007; pp. 274–279.

15. Hu, Y.; Wang, L.; Zhao, W.; Wang, Q.; Zhang, L. Modular design and motion control of reconfigurable robotic fish. In Proceedings of the 2007 46th IEEE Conference on Decision and Control, New Orleans, LA, USA, 12–14 December 2007; pp. 5156–5161.

16. Chocron, O.; Mangel, H. Reconfigurable magnetic-coupling thrusters for agile AUVs. In Proceedings of the 2008 IEEE/RSJ International Conference on Intelligent Robots and Systems, Nice, France, 22–26 September 2008; pp. 3172–3177.
17. Chocron, O.; Prieur, U.; Pino, L. A validated feasibility prototype for AUV reconfigurable magnetic coupling thruster. *IEEE/ASME Trans. Mechatronics* **2013**, *19*, 642–650. [CrossRef]

18. Vega, E.P. Task-Based Design and Optimization of Reconfigurable Propulsion Systems for Autonomous Underwater Vehicles. Ph.D. Thesis, Université de Bretagne Occidentale, Brest, France, 2016.

19. Chocron, O.; Vega, E.P.; Benbouzid, M. Dynamic reconfiguration of autonomous underwater vehicles propulsion system using genetic optimization. *Ocean Eng.* **2018**, *156*, 564–579. [CrossRef]

20. Pugi, L.; Allotta, B.; Pagliai, M. Redundant and reconfigurable propulsion systems to improve motion capability of underwater vehicles. *Ocean Eng.* **2018**, *148*, 376–385. [CrossRef]

21. De Novi, G.; Melchiorri, C.; García, J.; Sanz, P.; Ridao, P.; Oliver, G. A new approach for a reconfigurable autonomous underwater vehicle for intervention. In Proceedings of the 2009 3rd Annual IEEE Systems Conference, Vancouver, BC, Canada, 23–26 March 2009; pp. 23–26.

22. Sanz, P.J.; Prats, M.; Ridao, P.; Ribas, D.; Oliver, G.; Ortiz, A. Recent progress in the RAUVI project: A reconfigurable autonomous underwater vehicle for intervention. In Proceedings of the Proceedings ELMAR-2010, Zadar, Croatia, 15–17 September 2010; pp. 471–474.

23. Prats, M.; Ribas, D.; Palomeras, N.; García, J.C.; Nannen, V.; Wirth, S.; Fernández, J.J.; Beltrán, J.P.; Campos, R.; Ridao, P.; et al. Reconfigurable AUV for intervention missions: A case study on underwater object recovery. *Intell. Serv. Robot.* **2012**, *5*, 19–31. [CrossRef]

24. Ribas, D.; Ridao, P.; Magí, L.; Palomeras, N.; Carreras, M. The Girona 500, a multipurpose autonomous underwater vehicle. In Proceedings of the Oceans 2011 IEEE-Spain, Santander, Spain, 6–9 June 2011; pp. 1–5.

25. Mintchev, S.; Stefanini, C.; Girin, A.; Marrazza, S.; Orofino, S.; Lebastard, V.; Manfredi, L.; Dario, P.; Boyer, F. An underwater reconfigurable robot with bioinspired electric sense. In Proceedings of the 2012 IEEE International Conference on Robotics and Automation, Saint Paul, MN, USA, 14–18 May 2012; pp. 1149–1154.

26. Meister, E.; Gutenkunst, A.; Levi, P. Dynamics and control of modular and self-reconfigurable robotic systems. *Int. J. Adv. Intell. Syst* **2013**, *6*, 66–78.

27. Dennis, L.A.; Fisher, M.; Aitken, J.M.; Veres, S.M.; Gao, Y.; Shaukat, A.; Burroughes, G. Reconfigurable autonomy. *KI-Künstliche Intell.* **2014**, *28*, 199–207. [CrossRef]

28. Moreno, E.; Chung, S.Y. SeaDrone: A modular and reconfigurable underwater robot for task optimization. In Proceedings of the OCEANS 2014-TAIPEI, Taipei, Taiwan, 7–10 April 2014; pp. 1–7.

29. Odetti, A.; Bibuli, M.; Bruzzone, G.; Caccia, M.; Spirandelli, E.; Bruzzone, G. e-URoPe: a reconfigurable AUV/ROV for man-robot underwater cooperation. *IFAC-PapersOnLine* **2017**, *50*, 11203–11208. [CrossRef]

30. SubseaTech. Tortuga Robot. Available online: https://www.subsea-tech.com/tortuga/ (accessed on 15 December 2021).

31. Dang, T.; Lapierre, L.; Zapata, R.; Ropars, B.; Lepinay, P. Over-Actuated Underwater Robots: Configuration Matrix Design and Perspectives. *Sensors* **2021**, *21*, 7729. [CrossRef]

32. BlueRobotics. Available online: https://bluerobotics.com/ (accessed on 8 February 2022).

33. Blond, M.; Simon, D.; Creuze, V.; Tempier, O. Optimal thrusters steering for dynamically reconfigurable underwater vehicles. *Int. J. Syst. Sci.* **2019**, *50*, 2348–2361. [CrossRef]

34. Doniec, M.; Detweiler, C.; Rus, D. Estimation of thruster configurations for reconfigurable modular underwater robots. In *Experimental Robotics*; Springer: Berlin/Heidelberg, Germany, 2014; pp. 655–666.

35. Yazdani, A.M.; Sammut, K.; Yakimenko, O.; Lammas, A. A survey of underwater docking guidance systems. *Robot. Auton. Syst.* **2020**, *124*, 103382. [CrossRef]

36. Allen, B.; Austin, T.; Forrester, N.; Goldsborough, R.; Kukulya, A.; Packard, G.; Purcell, M.; Stokey, R. Autonomous docking demonstrations with enhanced REMUS technology. In Proceedings of the OCEANS 2006, Boston, MA, USA, 18–21 September 2006; pp. 1–6.

37. Bellingham, J.G. Autonomous underwater vehicle docking. In *Springer Handbook of Ocean Engineering*; Springer: Berlin/Heidelberg, Germany, 2016; pp. 387–406.

38. Sarda, E.I.; Dhanak, M.R. Launch and recovery of an autonomous underwater vehicle from a station-keeping unmanned surface vehicle. *IEEE J. Ocean. Eng.* **2018**, *44*, 290–299. [CrossRef]

39. Piskura, J.C.; Purcell, M.; Stokey, R.; Austin, T.; Tebo, D.; Christensen, R.; Jaffre, F. Development of a robust Line Capture, Line Recovery (LCLR) technology for autonomous docking of AUVs. In Proceedings of the OCEANS 2016 MTS/IEEE Monterey, Monterey, CA, USA, 19–23 September 2016; pp. 1–5.

40. Feezor, M.D.; Sorrell, F.Y.; Blankinship, P.R.; Bellingham, J.G. Autonomous underwater vehicle homing/docking via electromagnetic guidance. *IEEE J. Ocean. Eng.* **2001**, *26*, 515–521. [CrossRef]

41. McEwen, R.S.; Hobson, B.W.; McBride, L.; Bellingham, J.G. Docking control system for a 54-cm-diameter (21-in) AUV. *IEEE J. Ocean. Eng.* **2008**, *33*, 550–562. [CrossRef]

42. Li, Y.; Jiang, Y.; Cao, J.; Wang, B.; Li, Y. AUV docking experiments based on vision positioning using two cameras. *Ocean Eng.* **2015**, *110*, 163–173. [CrossRef]

43. Park, J.Y.; Jun, B.h.; Lee, P.m.; Oh, J. Experiments on vision guided docking of an autonomous underwater vehicle using one camera. *Ocean Eng.* **2009**, *36*, 48–61. [CrossRef]
44. Rigaud, V.; Nicolas-Meunier, B. From manned to autonomous and hybrid underwater systems. In Proceedings of the 2015 IEEE Underwater Technology (UT), Chennai, India, 23–25 February 2015; pp. 1–10.

45. Palomeras, N.; Vallicrosa, G.; Mallios, A.; Bosch, J.; Vidal, E.; Hurtos, N.; Carreras, M.; Ridao, P. AUV homing and docking for remote operations. *Ocean Eng.* **2018**, *154*, 106–120. [CrossRef]