**1. Introduction**

The *Actuation System* (AS) is an important part of marine robots. The AS groups the different actuators carried by the system. Following the generic Navigation–Guidance– Control (NGC) structure, the AS is in charge of realizing the desired force (**F***<sup>d</sup> <sup>B</sup>*) provided by the control system (see Figure 1).

**Figure 1.** NGC structure augmented with the actuation system and sensorial stage.

**Citation:** Dang, T.; Lapierre, L.; Zapata, R.; Ropars, B.; Lepinay, P. Over-Actuated Underwater Robots: Configuration Matrix Design and Perspectives. *Sensors* **2021**, *21*, 7729. https://doi.org/10.3390/s21227729

Academic Editors: Reza Ghabcheloo and Antonio M. Pascoal

Received: 15 October 2021 Accepted: 18 November 2021 Published: 20 November 2021

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

**Copyright:** © 2021 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/).

Following Figure 1, the sensorial stage using sensors measurement and prior knowledge of the environment provides to the navigation system the necessary information to compute an estimation of the system state (*η***ˆ**). Then, the guidance system uses this estimation and the reference system state (*ηd*) provided by the mission controller to compute the error function (*ε*). The control system is then in charge of computing the desired force (**F***<sup>d</sup> <sup>B</sup>*) in order to reduce the error function to zero. Note that classically, this desired force is expressed in the body-frame. Afterwards, the *actuation system* produces in the environment a resulting force (**F***B*), which should be as close as possible to **F***<sup>d</sup> <sup>B</sup>*. Note that, in this paper, the desired force (**F***<sup>d</sup> <sup>B</sup>*) and resulting force (**F***B*) are (6 × 1) vectors and include force and torque elements. Inside the AS block, referring to Figure 2, the desired force (**F***<sup>d</sup> <sup>B</sup>*) is the output of the controller. Then, the dispatcher (*D*) considers the actuator allocation method (and eventually, redundancy management) to compute the desired actuator force (**F***<sup>d</sup> <sup>m</sup>*) that each actuator has to produce. The inverse actuator characteristics are then considered in order to compute the actuator inputs (**c***m*). Once applied, **c***<sup>m</sup>* can produce actuator forces (**F***m*). The resulting force **F***<sup>B</sup>* is produced with respect to the actuator configuration (**A**). The properties of the AS are indeed dependent on the actuator configuration (position and attitude of the actuators with respect to the body-frame), actuator dynamics (response characteristics), and dispatcher (control allocation, redundancy management) (see Figure 2) and afford the system different properties. Let us consider in the following that *n* is the number of Degrees of Freedom (DoFs) of the system and *m* is the number of actuators. If the system carries less actuators than DoFs, it is said to be *underactuated* (in that case, **A** will be an (*n* × *m*) matrix where *n* > *m*). Long-range Autonomous Underwater Vehicles (AUVs) and, for the terrestrial case, unicycle wheeled vehicles belong to this category [1]. In that case, specific nonlinear guidance strategies have to be used [2]. If the system carries more actuators than DoFs, it is said to be *redundant* (*n* < *m*). Then, there are different solutions (**c***m*) to produce an identical resulting force (**F***B*). Indeed, *D* is one of the multiple possible inverses of **<sup>A</sup>**, classically *<sup>D</sup>* <sup>=</sup> **<sup>A</sup>**+, where **<sup>A</sup>**<sup>+</sup> is the Moore–Penrose pseudo-inverse. The properties of the AS play a pivotal role in the system performances, in terms of achievable dynamics, maneuverability, robustness, and dependability. The properties of an *overactuated* system have been studied in aerospace control, where critical safety is required [3], and for marine vehicles [4], where the harsh oceanic condition may easily produce actuator failure. Redundancy was also used in [5] in order to compensate different and unknown actuator responses. The domain of robotic manipulators has also extensively studied this question of redundancy, especially with recent works on humanoid robotics, where the task function approach [6] has been used to concurrently achieve equilibriums [7], walking pattern following [8], and multicontact management [9].

**Figure 2.** Actuation system scheme.

For a global evaluation of an *actuation system*, we should of course consider many factors, including redundancy management, the control allocation method, the actuator characteristics (inverse and direct), and the actuator configuration. This paper focuses on the study of the actuator configuration; for other problems, the readers can refer to [5] and the references therein.

Different performance criteria related to the actuator configuration design have been proposed. For mobile manipulation, the *manipulability index* [10] measures the manipulation capability of the end-effector. Intuitively, this index regards the set of all end-effector

velocities, which is realizable by joint velocities. This set is called the hyper-manipulability ellipsoid. This index is quantified by computing the hyper-manipulability ellipsoid's properties. Based on these properties, there are different ways to quantify the manipulability index, including the volume of the hyper-manipulability ellipsoid, the ratio of the minimum and maximum radii of the hyperellipsoid, and the minimum radius of the hyperellipsoid. The selection depends on the purpose of evaluation. When the uniformity of manipulating ability is important, the ratio of two radii of the hyperellipsoid is chosen (the optimal value will be close to one). Otherwise, the minimum radius of the hyperellipsoid is suited for the case where the minimum manipulating ability might be critical [11]. Another criterion, *attainability* [12–14], was studied using workspace volume estimation.

In the underwater robotics field, the *manipulability index*, *energetic index*, and *force index* were introduced in [15], and the manipulability index was applied in [16]. Specifically, the *manipulability index* is used to measure the system's ability to exert a desired force with a specific actuator configuration. Therefore, the closer to one this index is, the better the robot's isotropy is, i.e., the robot can exert the same forces/torques in any direction. The *energetic index* is a measurement of the variation of system energy when the direction of the desired force changes. This is evaluated by measuring the energy consumption when the direction of a normalized desired force changes over a 3D sphere. The basic idea of the energetic index is to keep the system's energy consumption constant and as low as possible when the direction of action changes. The *force index* is used to measure the ratio between the actual maximum value and the minimum value of realizing forces. However, these studies only considered a given and fixed actuator configuration. Regarding the design of the actuator configuration of an overactuated underwater robot, a general problem is how to achieve an optimal configuration considering different performance indices. This is a challenging issue that raises two specific questions:


This paper focuses on the design of the actuator configuration for an overactuated underwater robot with the contributions outlined below:


This paper focuses on the design of an actuator configuration of an overactuated underwater robot, which optimizes different performance indices. Mathematically, an actuator configuration is a mapping from an actuator force vector to a resulting force vector (*note that these vectors include force and torque elements*). Since we considered an underwater robot equipped with thrusters, the mapping is from a thruster force vector (**F***<sup>m</sup>* space) to a body-frame vector (**F***<sup>B</sup>* space) (see Figure 3). The mapping operator is a matrix, which has different names in the literature such as: control effectiveness matrix [4,17], static transformation matrix [18], geometrical distribution of thrusters [19], configuration matrix [16]. In this paper, the mapping of an actuator configuration is called a *configuration matrix*, denoted as **A**.

**Figure 3.** Actuator configuration mapping.

The paper is organized as follows. The notations are given in Section 2. The problem formulation and performance indices are described in Section 3. The problem's solution is displayed in Section 4. Simulation results and analyses are depicted in Section 5. Real experiments are depicted in Section 6. Finally, conclusions and future works are discussed in Section 7.

### **2. Notation**

This section provides most of notations used in the whole paper. However, further notations are introduced when needed. In order to illustrate the notations, a given robot configuration is shown in Figure 4, and detailed explanations are given in Table 1.

**Figure 4.** A given robot configuration.


### **3. Problem Formulation**

The relation between the desired force (**F***<sup>d</sup> <sup>B</sup>*) and resulting force (**F***B*) depends on different elements (see Figure 2). This paper only focuses on the actuator configuration. Therefore, three assumptions were considered:


#### *3.1. Model of the Actuator Configuration*

This part describes how to model an actuator configuration of an overactuated underwater robot equipped with thrusters. A thruster is modeled by the position and direction of the force produced with respect to the body-frame of the robot. The position of the *i*th thruster is described by a unit position vector **r***<sup>i</sup>* and the distance *di* to the system's Center of Mass (CM) in the body-frame. The direction of the *i*th thruster is represented by a unit direction vector **u***<sup>i</sup>* with respect to the body-frame as in Figure 5, and the *i*th thruster induces a force with the magnitude denoted as *Fm*,*i*. The relation of the thruster force vector and resulting force vector (note that this space includes force elements (**F**) and torque elements (**Γ**)) is described in Equation (1).

**Figure 5.** Actuator configuration model.

$$\mathbf{F}\_B = \mathbf{A} \mathbf{F}\_m = \begin{pmatrix} \mathbf{F} \\ \Gamma \end{pmatrix} \tag{1}$$

where **F***<sup>B</sup>* = [*Fu Fv Fw Fp Fq Fr*] *<sup>T</sup>* <sup>∈</sup> <sup>R</sup>6, **<sup>A</sup>** <sup>∈</sup> <sup>R</sup>6×*m*, **<sup>F</sup>***<sup>m</sup>* = [*Fm*,1 *Fm*,2 ... *Fm*,*m*] *T* <sup>∈</sup> <sup>R</sup>*m*, and *<sup>m</sup>* is the number of thrusters, *<sup>m</sup>* <sup>&</sup>gt; 6. The configuration matrix **<sup>A</sup>** is described as:

$$\begin{aligned} \mathbf{A} &= \begin{pmatrix} \mathbf{u}\_1 & \mathbf{u}\_2 & \cdots & \mathbf{u}\_m \\ d\_1 \mathbf{r}\_1 \otimes \mathbf{u}\_1 & d\_2 \mathbf{r}\_2 \otimes \mathbf{u}\_2 & \cdots & d\_m \mathbf{r}\_m \otimes \mathbf{u}\_m \end{pmatrix} \\ &= \begin{pmatrix} \mathbf{u}\_1 & \mathbf{u}\_2 & \cdots & \mathbf{u}\_m \\ \mathbf{r}\_1 & \mathbf{r}\_2 & \cdots & \mathbf{r}\_m \end{pmatrix} = \begin{pmatrix} \mathbf{A}\_1 \\ \mathbf{A}\_2 \end{pmatrix} \end{aligned} \tag{2}$$

where **<sup>A</sup>**<sup>1</sup> and **<sup>A</sup>**<sup>2</sup> <sup>∈</sup> <sup>R</sup>3×*<sup>m</sup>* are submatrices of **<sup>A</sup>**, which correspond to the force and torque elements, respectively. It is obvious to see that *τ<sup>T</sup> <sup>i</sup>* .**u***<sup>i</sup>* = 0. This is one constraint of the configuration matrix.

In this paper, we assumed that all distances from the thruster positions to the center of the body-frame are the same, *di* = *dj* = *const*, *i*, *j* = 1, ... , *m*. Without loss of generality, we can assume that *di* = 1, *i* = 1, . . . , *m*.

#### *3.2. Manipulability Index*

As mentioned before, the manipulability index was first introduced in [20] for manipulator mechanisms, and there are different ways to quantify the manipulability index. This paper focuses on the isotropic property of a marine robot. Then, the ratio between the maximum and minimum radii of the manipulability ellipsoid was chosen (see Figure 6). Because of the units' consistency, the matrices that relate to the force space, **A**1, and torque space, **A**2, were investigated separately. However, because of our assumption on *di*, the manipulability index is defined as the condition number of the configuration matrix:

$$I\_{\rm m} = \mathbb{C}and(\mathbf{A}) = \frac{\sigma\_{\rm max}}{\sigma\_{\rm min}} \tag{3}$$

where *σmax* and *σmin* are the maximum and minimum singular values of the configuration matrix, **A**, respectively.

**Figure 6.** Manipulability ellipsoid with mapping.

Following Figure 6, the manipulability index investigates the resulting force ellipsoid, which is realizable by the thruster forces (**F***m*) such that **F***m* ≤ 1 (see Theorem in Appendix A). If *Im* = 1, the robot is isotropic, or if *Im* = ∞, the robot cannot act along at least one direction.

#### *3.3. Energetic Index*

Energy is very important for marine robots, and the energy consumption of robots depends on many factors such as the mechanical design, the environmental effects, and the specific mission. In order to evaluate the energy performance of an underwater robot, the energetic index was introduced in [15]. Being different from this, in our paper, the twonorm of the thruster force vector, *pE* = **F***<sup>m</sup>*2, was used to quantify the energy that an underwater robot consumes to produce forces and torques, which can be calculated as follows in Equation (4):

$$p\_E = \|\mathbf{F}\_m\|\_2 = \sqrt{\sum\_{i=1}^m F\_{mi}^2} = \|\mathbf{A}^+.\mathbf{F}\_B^d\|\_2 \tag{4}$$

The energetic index is proposed to measure the variation of the energy consumption of an underwater robot when the direction of the desired force changes. It is quantified by computing the energy consumption when a unit desired force vector, (**F***<sup>d</sup> <sup>B</sup>*), changes over the unit hypersphere (see Figure 7 for a 3D sphere). Because of the units' consistency, however, the force and torque sphere were computed separately.

For the force sphere case, the unit desired force vector includes a unit vector of force elements and a zero vector of torque elements. For the torque sphere case, the unit desired force vector includes a zero vector of force elements and a unit vector of torque elements. Intuitively, this can be expressed as:

$$\mathbf{F}\_B^d = \begin{pmatrix} \mathbf{F} \\ \mathbf{I} \end{pmatrix} = \begin{cases} \begin{pmatrix} \mathbf{u}\_\circ \\ \mathbf{0} \end{pmatrix}, & \text{for the force sphere} \\ \begin{pmatrix} \mathbf{0} \\ \mathbf{u}\_\circ \end{pmatrix}, & \text{for the torque sphere.} \end{cases} \tag{5}$$

where **u***<sup>s</sup>* = [cos *α* cos *β* sin *α* cos *β* sin *β*] *<sup>T</sup>* is a unit vector in spherical coordinates with *α* ∈ [−*π*, *π*] and *β* ∈ [−*π*/2, *π*/2].

According to these two cases, the norm of the thruster force vector was also divided into two cases as follows:

$$p\_E = \begin{cases} p\_{Ef} = ||\mathbf{A}^+ \left( \begin{smallmatrix} \mathbf{u}\_b \\ \mathbf{0} \end{smallmatrix} \right) ||\_\prime & \text{for the force sphere case} \\ p\_{E\Gamma} = ||\mathbf{A}^+ \left( \begin{smallmatrix} \mathbf{0} \\ \mathbf{u}\_s \end{smallmatrix} \right) ||\_\prime & \text{for the torque sphere case.} \end{cases} \tag{6}$$

**Figure 7.** The rotation of the unit desired vector in the 3D sphere.

The energetic index is defined as:

$$I\_{\varepsilon} = \frac{1}{S} \int\_{S} (w\_{\varepsilon f} p\_{Ef} + w\_{\varepsilon \Gamma} p\_{E\Gamma}) dS \tag{7}$$

where *S* is the area of the three-dimensional sphere, *pE f* , *pE*<sup>Γ</sup> are the subvectors of *pE* corresponding to the force sphere and the torque sphere case, respectively, and *we f* and *we*<sup>Γ</sup> are the weighting coefficients. Note that the weighting coefficients were chosen to normalize the difference between the force and torque spheres. These choices depends on the robot's characteristics. However, because of the normalization of the spheres, it is normal to assign one to these coefficients.

#### *3.4. Workspace Index*

The term workspace volume was first introduced in [13] for manipulator mechanisms. In this paper, the work space index was used to measure the volume of the attainable regions of the resulting force space with respect to (w.r.t.) the body-frame. In general, the characteristics of thrusters always have limitations, namely saturations and dead-zones (in this index, the dead-zone is not considered). This yields the polytope of the thruster force space, the **F***<sup>m</sup>* space, denoted as M. By properly choosing the configuration matrix, **A** = (**A**1**A**2)*T*, the volume of the resulting force space for the force, the F*<sup>F</sup>* space, and the resulting force space for the torque, the F*<sup>T</sup>* space, can be maximized (see Figure 8). Note that the resulting spaces for the force and torque were studied separately because of the units' consistency.

In general, the set M of thruster forces is known (with the given saturations of thrusters), so M is a polytope and F*<sup>F</sup>* and F*<sup>T</sup>* are also polytopes (under the **A1** and **A2** linear transform actions). We define the workspace index as:

$$I\_w = \omega\_{wf} Vol(\mathbb{F}\_F) + \omega\_{w\tau} Vol(\mathbb{F}\_T) \tag{8}$$

where *Vol* is the volume of a polytope and *ωw f* and *ωw<sup>τ</sup>* are the weighting coefficients.

In control perspectives, the larger the space's volumes are, the less control effort is need. The design objective was to maximize the workspace index, *Iw*. Normally, the set M is convex and its vertices are known. It is easy to find the vertices of F*<sup>F</sup>* and F*T*. Of course, F*<sup>F</sup>* and F*<sup>T</sup>* are also convex sets (because of the linear transformation). This problem becomes a volume computation of convex polytopes.

**Figure 8.** Space mapping (**v***<sup>i</sup>* is denoted as the vertex).
