Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Introduction

Underwater operations are costly and demanding. Remotely Operated Vehicles (ROVs) are usually employed in lieu of professional divers to perform these tasks. The advantages of this solution are clearly an inherently higher safety (no human involved) and an higher operational time. On the downside, ROVs require a support vessel equipped with a dynamic positioning system and a tether management system for handling the tether cable connecting the vessel to the ROV. In an effort to reduce costs of underwater operations, marine robotic research has taken two main paths: on the one hand improving ROVs autonomy , on the other hand paving the way for the use of autonomous UVMSs (Underwater Vehicle Manipulator Systems).

The DexROV project [1] is a recent EU Horizon 2020 (H2020) project that has the goal of reducing the costs of ROVs operations by increasing their autonomy. In this way, crew numbers onboard the ship can be reduced and can be transferred to an onshore control facility, from where they can control the ROVs operations. Naturally, controlling the ROV from a remote station through a satellite communication channel introduces heavy latency that must be properly taken into account. DexROV plans to solve this problem by using an advanced environment simulator, integrating a physics engine and a haptics engine. This environment will support a model-mediated teleoperation approach. Furthermore, as a robust approach to address communication latencies and disruptions, a cognitive engine relying on probabilistic movement/feedback manipulation primitives will be developed to analyze, interpret, and anticipate user interactions with the simulated environment and translate them into consistent high level commands that the ROV can execute autonomously in the real environment.

Another relevant project on the topic of underwater manipulation task is the recently started EU H2020 ROBUST project [2], whose main objective is to develop an autonomous, reliable, cost effective technology to map vast terrains, in terms of mineral and raw material contents, which will aid in reducing the cost of mineral exploration, currently performed by ROVs and dedicated support vessels and crew. Another objective is to identify, in an efficient and nonintrusive manner (minimum impact to the environment), the most rich mineral sites. To tackle these objectives, the ROBUST project proposes to use a fully autonomous UVMS. The robot should dive, identify the resources to be scanned and autonomously perform qualitative and quantitative in situ analyses, by positioning a laser, mounted on the end-effector of a manipulator, in close proximity of the rocks to be analyzed.

Research in the field of autonomous or semi-autonomous intervention is of course not limited to H2020 projects, but has roots that go back to early 90s, with the works of Woods Hole Oceanographic Institute on design and control of compliant underwater manipulators [3] and coordinated vehicle/arm control for teleoperation [4]. During that decade, two milestones were achieved. The AMADEUS project [5] demonstrated underwater dual arm autonomous manipulation in water tank experiments [6]. The second milestone was instead achieved within the UNION project [7], where for the first time the mechatronic assembly of an autonomous UVMS took place.

The following decade marked two further important milestones in underwater manipulation. The SAUVIM project [8, 9] tackled, for the first time, the problem of autonomous floating operations. However, considering the mass of the vehicle was 6 tons, while the arm weighted only 65 kg, the two subsystems were practically decoupled from a dynamic point of view. The second milestone was instead achieved within the EU project ALIVE [10, 11], which demonstrated how an UVMS could autonomously dock at a ROV-friendly panel, and successively perform fixed-base manipulation tasks.

The current decade has seen another important milestone, represented by the EU project TRIDENT [12, 13], where autonomous floating manipulation has been performed like in the SAUVIM project, but with the important difference that the arm and vehicle were much closer in terms of masses. The final demonstration took place in a harbor environment and the UVMS successfully recovered a mock-up of a black box from the seafloor [14, 15].

Finally, the authors have been involved in an Italian research project named MARIS [16], whose main objective was the development of control algorithms capable of integrating single [17], dual arm [18] and cooperative UVMSs [19] within a common control framework [20].

In this chapter, the kinematic control layer that has been used for the MARIS project, and is currently used and enhanced within the DexROV [21] and ROBUST projects will be presented. The focus is the kinematic control layer, because most ROV and arm commercial systems can only be controlled through velocity commands. A dynamic control layer (DCL) based on independent PI (proportional integrative) loops will be assumed, as this is the kind of control laws implemented by the commercial systems of the aforementioned projects.

The chapter is structured as follows. Basic definitions are reported in Sect. 2. Section 3 presents the common phases and control objectives in typical intervention missions. The successive Sect. 4 introduces the kinematic control layer and its core concepts, such as the phase definition, the activation functions, and the task hierarchy resolution. Section 5 reports a complete simulated execution of an intervention mission, as well as one free floating experiment of the MARIS project. Finally, the last section draws some conclusions and future line of developments.

2 Definitions and Preliminaries

2.1 Notation

Vectors and matrices are expressed with a bold face character, such as \(\mathbf M \) for matrices or \(\varvec{v}\) for vectors, whereas scalar values are represented with a normal font such as \(\gamma \). Given a matrix \(\mathbf M \) and a vector \(\varvec{v}\):

  • \(M_{(i,j)}\) indicates the element of \(\mathbf M \) at the i-th row and j-th column;

  • \(v_{(k)}\) refers to the k-th element of \(\varvec{v}\);

  • \(\mathbf M ^\#\) is the exact generalized pseudoinverse (see [22] for a review on pseudoinverses and their properties), i.e., the pseudoinverse of \(\mathbf M \) performed without any regularizations .

Further, less used notation will be introduced as needed.

Fig. 1
figure 1

The UVMS and its relevant frames: \(\langle v \rangle \) vehicle frame, \(\langle c \rangle \) camera frame, \(\langle e \rangle \) end-effector frame, \(\langle t \rangle \) tool frame, \(\langle g \rangle \) goal frame, \(\langle o \rangle \) object frame

2.2 Definitions

Let us consider a free floating UVMS, such as the one depicted in Fig. 1, and let us first introduce some basic definitions, often used throughout the chapter:

  • the system configuration vector \(\varvec{c} \in \mathbb {R}^n\) of the UVMS as

    $$\begin{aligned} \varvec{c} \triangleq \begin{bmatrix} {\varvec{q}} \\ \varvec{\eta } \end{bmatrix}, \end{aligned}$$
    (1)

    where \(\varvec{q} \in \mathbb {R}^{l}\) is the arm configuration vector and \(\varvec{\eta } \in \mathbb {R}^6\) is the vehicle generalized coordinate position vector, which is the stacked vector of the position vector \(\varvec{\eta }_1\), with components on the inertial frame \(\langle 0 \rangle \), and the orientation vector \(\varvec{\eta }_2\), the latter expressed in terms of the three angles yaw, pitch and roll (applied in this sequence) [23]. From the above definitions it results \(n = l + 6\);

  • the system velocity vector \(\dot{\varvec{y}} \in \mathbb {R}^n\) of the UVMS as

    $$\begin{aligned} \dot{\varvec{y}} \triangleq \begin{bmatrix} \dot{\varvec{q}} \\ \varvec{v} \end{bmatrix}, \end{aligned}$$
    (2)

    where \(\dot{\varvec{q}} \in \mathbb {R}^{l}\) is the joint velocities and \(\varvec{v} \in \mathbb {R}^{6}\) is the stacked vector of the vehicle linear and angular velocity vectors, with components on the vehicle frame \(\langle v \rangle \). To simplify the discussion, this chapter will assume the vehicle fully actuated, and the system velocity will be used as control vector. Details on how the proposed algorithm can be adapted for under-actuated vehicles are given in the Appendix;

  • a configuration dependent scalar variable \(x(\varvec{c})\) is said to correspond to an equality control objective when it is required to satisfy

    $$\begin{aligned} x(\varvec{c}) = x_0, \end{aligned}$$
    (3)

    or to an inequality control objective when it is required to satisfy

    $$\begin{aligned} x(\varvec{c}) \ge x_m \qquad \text {or}\qquad x(\varvec{c}) \le x_M, \end{aligned}$$
    (4)

    where the m and M subscripts indicate a minimum and maximum value respectively.

    Note that if m different variables \(x_i(\varvec{c})\) are considered, each of them corresponding to the i-th component of a vector \(\varvec{p} \in \mathbb {R}^m\), then it is possible to control the vector to any desired value. Thus, limiting the discussion to scalar objectives does not influence the generality of the approach. Furthermore, if \(x(\varvec{c})\) is the modulus of a certain vector \(\varvec{p}\), then it can be used to require a particular value for the norm of \(\varvec{p}\) (e.g., to nullify it), or to be below or above a given threshold. To ease the notation, the dependency of x on \(\varvec{c}\) is dropped from now on;

  • for such variables, we also consider the existing Jacobian relationship between x and the system velocity vector \(\dot{\varvec{y}}\) as

    $$\begin{aligned} \dot{x} = \varvec{g}^T(\varvec{c}) \dot{\varvec{y}}, \end{aligned}$$
    (5)

    where \(\varvec{g} \in \mathbb {R}^n\) is a vector. To simplify the notation, the dependency of \(\varvec{g}\) on \(\varvec{c}\) will not be repeated in the following.

  • a task is defined as tracking a given feedback reference rate \(\dot{\bar{x}}\) (see the remarks below), capable of driving the associated variable x toward the corresponding objective. Thus, for instance, a task is tracking at best a velocity reference rate generated to bring the arm’s end-effector in the required Cartesian position; The control objectives may have different priorities and the same holds for their associated tasks. The achievement of a task with lower priority should not interfere with the achievement of an active task (see Sect. 4.2) with higher priority, and tasks with the same priority should be achieved simultaneously, if possible. A set of tasks with different priorities is also called a hierarchy of tasks.

Remark 1: If our objective is zeroing the norm of a vector \(\varvec{p} = \begin{bmatrix}p_1,&\ldots ,&p_m\end{bmatrix}\), since the following equivalence holds

$$\begin{aligned} \Vert \varvec{p} \Vert = 0 \iff p_{i} = 0,\,\forall i \qquad i = 1, \ldots , m, \end{aligned}$$
(6)

instead of imposing its norm to be zero with a single equality objective, we can also consider separately all of its m components to be zero. The main difference between these two approaches is that in the first case we have to employ only one degree of freedom (d.o.f.) in the Cartesian space, while in the latter use m d.o.f. since we are separately controlling each of its components.

Remark 2: For equality or inequality control objectives, a suitable feedback reference rate \(\dot{\bar{x}}\) that drives our x toward any arbitrary point \(x^*\), where the objective is satisfied, is

$$\begin{aligned} \dot{\bar{x}} \triangleq \gamma (x^* - x),\,\gamma > 0, \end{aligned}$$
(7)

where \(\gamma \) is a positive gain to control the convergence speed. For inequality control objectives, Sect. 4.2 will explain how to disregard the reference rate whenever the variable lies within the desired range, in order to avoid overconstraining the system.

3 Underwater Intervention Missions and Related Control Objectives

3.1 Reference Mission and Relevant Phases

A typical reference mission carried out by an UVMS, involving manipulation and transportation, can be decomposed into the following sequential phases:

  1. 1.

    navigation: the vehicle should get in close proximity with the target object to be manipulated;

  2. 2.

    grasping: the UVMS must perform the grasping of the object;

  3. 3.

    transportation: the UVMS must transport the object to the target area;

  4. 4.

    deployment: whenever in close proximity with the target area, the object must be deployed in the required position.

Another mission, involving the inspection of a certain subsea structure, can be decomposed as follows:

  1. 1.

    navigation: the vehicle should get in close proximity with the target object to be inspected;

  2. 2.

    docking: the UVMS might need to dock to the underwater structure using an auxiliary arm;

  3. 3.

    inspection: the UVMS should perform the interaction with the structure (e.g., turn valve, plug connector, move a sensor on a surface).

At the end of the above phases, the UVMS can leave the target area and each of them can be assigned to a new mission.

In general, the execution of complex missions leads to identify different control phases, each one with its own control objectives. Obtaining a smooth transition between two consecutive phases will constitute a particular challenge to be solved.

3.2 Control Objectives Categories

The control objectives of the UVMS can be divided in five broad categories, which are listed in their natural descending order of priority:

  • physical constraints objectives, i.e., interacting with the environment;

  • system safety objectives, e.g., avoiding joint limits or obstacles;

  • objectives that are a prerequisite for accomplishing the mission, e.g., maintaining the manipulated object in the camera angle of view;

  • mission-oriented objectives, i.e., what the system really needs to execute to accomplish the user defined mission;

  • optimization objectives, i.e., objectives that do not influence the mission, but allow to choose between multiple solutions, if they exists.

3.3 Typical Underwater Control Objectives

This section reports some of the control objectives that a UVMS has to tackle in a typical mission, without a particular ordering. For each objective, the type (equality/inequality) and its category are reported in brackets:

  • Joint Limits (inequality, safety): the arm must operate within its joint limits, which means having the following inequality control objectives fulfilled:

    $$\begin{aligned} q_{i,m} \le q_i \le q_{i,M} \quad i = 1, \ldots , l \end{aligned}$$
    (8)

    where \(q_i\) is the i-th joint variable, \(q_{i,m}\) and \(q_{i,M}\) are the lower and higher joint bounds, and l is the total number of joints of the manipulator.

  • Manipulability (inequality, prerequisite): the arm must operate as far as possible from kinematic singularities, which means to keep the manipulability measure \(\mu \) [24] above a minimum threshold, i.e., \(\mu > \mu _m\).

  • Arm Reference Shape: maintain the arm in a preferred shape, which allows to perform repetitive tasks minimizing the internal motions and can also be used as an alternative method to ensure good manipulability.

  • Camera Occlusion (inequality, prerequisite): keep the arm links away from the camera system’s cone of vision to avoid unnecessary occlusions of the target object frame \(\langle o \rangle \), e.g., to avoid arm elbow interferences with the camera well before the grasping phases.

  • Force Regulation (equality, physical constraint): regulate to a constant value the force exerted by the end-effector. Let us define \(\lambda ^*\) as the desired force that the end-effector must exert on the environment and \(\lambda \) as the actual force, then the objective is to have \(\lambda = \lambda ^*\). Note that this regulation has to be done at kinematic level, since the underlying DCL is assumed as given.

  • Camera Centering (inequality, prerequisite): a stereo vision system is often used to obtain the position of the objected to be manipulated. To help in guaranteeing continuous visual contact with the target while approaching it, the norm of the misalignment vector between the camera and object frames \(\varvec{\xi }\) should be maintained lower than a given bound, e.g., \( \left\| \varvec{\xi }\right\| \le \xi _{M}\).

  • Horizontal Attitude (inequality, safety): avoid vehicle overturning. The norm of the misalignment vector \(\varvec{\varphi }\) between the absolute world frame z axis and the vehicle’s one should be lower than a give value, i.e., \(\left\| \varvec{\varphi } \right\| \le \varphi _M\). For vehicles and arms with comparable masses, such thresholds should be big enough to avoid excessive energy consumption whenever the arm moves its joints away from the center of buoyancy, tilting the vehicle. This objective should be considered only for fully actuated vehicles since for under-actuated ROVs or AUVs passively stable in roll and pitch these d.o.f. are not controllable.

  • Vehicle Position (inequality, mission execution): has the vehicle frame \(\langle v \rangle \) roughly aligned with a particular goal frame \(\langle g_v \rangle \). This could be required in order to bring the vehicle close to the area where the manipulation needs to be carried out. This goal requires the achievement of the following inequality conditions:

    $$\begin{aligned} \left\| \varvec{r}_v \right\| \le r_{v,M}, \quad \left\| \varvec{\vartheta }_v \right\| \le \vartheta _{v,M}, \end{aligned}$$
    (9)

    where \(\varvec{r}_v\) is the position error and \(\varvec{\vartheta }_v\) the orientation error.

  • End-effector/Tool-frame Position (equality, mission execution): this objective requires that the tool frame \(\langle t \rangle \), rigidly attached to the end-effector space, converges to a given goal frame \(\langle g \rangle \). In other words, the following two equality objectives must be eventually satisfied

    $$\begin{aligned} r_{(i)} = 0,\, i = 1,2,3\,;\quad \vartheta _{(i)} = 0,\,i = 1,2,3\,; \end{aligned}$$
    (10)

    where \(\varvec{r}\) is the position error and \(\varvec{\vartheta }\) the orientation error between the tool and goal frames. Note that the component by component zeroing has been used, in lieu of the norm zeroing, for achieving a straight convergence to the target (especially important for grasping tasks).

Moreover there can also be tasks directly specified at velocity level, which are useful for better controlling the overall behavior of the system, i.e.:

  • Arm motion minimization (equality, optimization ): in some cases (e.g., during transportation) it might be better if the arm minimizes its movements, leaving to the vehicle most of the work to move the end-effector. This allows to use the arm d.o.f. to compensate for the vehicle controller errors in tracking its reference velocity, as explained in Sect. 4.4;

  • Vehicle motion minimization (equality, optimization): it might be preferred to have the vehicle roughly stationary (e.g., during grasping and manipulation), since usually the arm exhibits better control performances than the vehicle.

In order to prioritize one of the two subsystems these two task should be mutually exclusive. Let us also remark that these tasks exploit any residual arbitrariness on their relevant control variables so it is a good practice to place them at the bottom of the task hierarchy, since all the higher priority tasks are related to the safety of the system (e.g., joint limits, force regulation, vehicle attitude) or a prerequisite to complete the mission (e.g., manipulability, camera centering).

4 A Unifying Control Framework

The control of an UVMS is achieved by solving a sequence of optimization problems, following the assigned priority of each control objective. This mechanism descends from the original task priority framework [25] that has been extended to also encompass scalar tasks corresponding to inequality control objectives [15], where each of them is assigned with a different priority, and successively to include clusters of control objectives with equal priorities [18, 26]. We will now recall the basic steps behind the algorithmic structure of the task priority based control layer.

4.1 Phase Control Priorities and Unified Task List

Each phase of a mission is characterized by its control objectives, and consequently by a hierarchy of tasks. Two phases may have multiple tasks in common, despite they might have a different priority order within each list. For instance, consider the following two lists of tasks (now abstractly labeled with alphabetic letters) for two different phases, where \(A \prec B\) denotes that A has higher priority than B:

$$\begin{aligned} \begin{aligned} \mathrm {P1}:\quad&A \prec B, C, D\\ \mathrm {P2}:\quad&A \prec D \prec C, E\\ \end{aligned} \end{aligned}$$

where ACD are in common, but with D at a different priority ordering w.r.t. C. Now consider the following merged list:

$$\begin{aligned} \mathrm {P1}, \mathrm {P2}:\quad A \prec D \prec B, C, D, E; \end{aligned}$$

It is clear that, through insertion/deletion of some of the entries, the two original lists can be reconstructed. To do so, the mechanism of activation functions will be exploited, as explained in the next section.

Before concluding, from now on tasks at the same priority level will be stacked together forming a so-called multidimensional task \(\dot{\bar{\varvec{x}}}_i\), where i indicates the priority level. For generality, we will consider scalar tasks as a particular case of the multidimensional ones, and consequently we shall indicate a prioritized task list simply as \(\dot{\bar{\varvec{x}}}_1, \ldots , \dot{\bar{\varvec{x}}}_N\). and the Jacobians relevant to the actual task velocities \(\dot{\varvec{x}}_1, \ldots , \dot{\varvec{x}}_N\) as \(\mathbf J _1, \ldots , \mathbf J _N\).

4.2 Activation Functions

Let us consider a multidimensional task, and let us consider an activation function associated to each j-th of its components, called \(a_{(j)}\), to be then organized in a diagonal activation matrix \(\mathbf A \), whose meaning is the following:

  • if \(a_{(j)} = 1\), the associated scalar task is called active and the corresponding actual \(\dot{x}_{(j)}\) should therefore track \(\dot{\bar{x}}_{(j)}\) as close as possible;

  • if \(a_{(j)} = 0\), the scalar task is termed inactive and the actual \(\dot{x}_{(j)}\) should be unconstrained;

  • if \(0< a_{(j)} < 1 \) the scalar task is termed in transition and the actual \(\dot{x}_{(j)}\) should smoothly evolve between the two previous cases.

In particular, the overall activation function \(a_{(j)}\) is the product of two functions

$$\begin{aligned} a_{(j)} \triangleq a^p_{(j)} a^i_{(j)}, \end{aligned}$$
(11)

which have the following specific purposes:

  • \(a^i_{(j)}\) is a function of the control objective variable \({x}_{(j)}\), and its purpose is to deactivate the task whenever the inequality objective is satisfied, to avoid overconstraining the system. Note that for equality control objectives it clearly holds that \(a^i_{(j)} = 1\);

  • \(a^p_{(j)}\) is a function of the mission phases, and is used to activate or deactivate a task during a phase transition. For example, it can be a function of the time elapsed within the current phase, allowing the proper activation of new tasks, and deactivation of objectives that are not anymore relevant.

More specifically, \(a^i_{(j)}\) is defined as follows for objectives of the type \(x_{(j)} \le x_{(j),M}\) (a similar function can be constructed for objectives \(x_{(j)} \ge x_{(j),m}\)):

$$\begin{aligned} a^i_{(j)} \triangleq {\left\{ \begin{array}{ll}1,&{} x_{(j)} > x_{(j),M}\\ s_j(x),&{} x_{(j),M}-\varDelta _{(j)} \le x_{(j)} \le x_{(j),M}\\ 0, &{} x_{(j)} < x_{(j),M}-\varDelta _{(j)}\\ \end{array}\right. } \end{aligned}$$
(12)

where \(s_j(x)\) is any sigmoid function exhibiting a continuous behavior from 0 to 1. The \(\varDelta _{(j)}\) value allows to create a buffer zone, where the inequality is already satisfied, but the activation value is still greater than zero, to prevent any chattering problem around the inequality control objective threshold. An example of such a function is reported in Fig. 2.

Fig. 2
figure 2

Example of activation function corresponding to a control objective \(x_{(j)} \le 0.1\), with \(\varDelta = 0.05\)

Let us briefly clarify how the activation function mechanism works with inequality control objectives through an example. Suppose that \(x_{(j),M} = 0.1\) and \(\varDelta _{(j)} = 0.05\) (this is the case depicted in Fig. 2). Then if we consider \(x^*\) in (7) equal to \(x_{(j),M}-\varDelta _{(j)} = 0.05\) (note that 0.05 is inside the validity region of the inequality objective) we have the following behavior:

  • When \(x_{(j)} > 0.1\), the task is active \(a^i_{(j)} = 1\) and the feedback reference rate defined in (7) will drive \(x_{(j)}\) toward the region where \(x_{(j),M} < 0.1\), in particular toward the point \(x^* = 0.05\).

  • When \(0.05< x_{(j)} < 0.1\), the task is in the transition zone \(0< a^i_{(j)} < 1\). The feedback reference rate will still try to drive \(x_{(j)}\) towards the point \(x^* = 0.05\). However, the priority of this task is not any longer fully enforced. Indeed, as \(a^i_{(j)}\) decreases from 1 to 0, lower priority tasks will have the opportunity to influence the current task, possibly pushing it to either its lower bound (0.05, not in conflict with the current task) or its upper bound (0.1, in conflict with the current task).

    Let us for a moment consider a continuous time, purely kinematic system. In the former case, the task will be simply completely deactivated. In the latter case \(x_{(j)}\) will decrease until the point where lower priority tasks’ influence on the current task matches the feedback reference rate, achieving a stable condition within the transition zone, where by definition the inequality control objective is satisfied. This behavior is enforced by the specific regularization mechanism that will be briefly presented in Sect. 4.3 and that can be found in [26].

    In practice, discrete time control system has to be used both at kinematic and dynamic velocity control level, where the latter is usually characterized by higher control rates. For given dynamic performances, which will depend on the control rate, gains and specific dynamic controller structure, a tuning of both kinematic gains and activation functions parameters is actually required to ensure that chattering phenomena do not appear. Since this may sometime result into a tedious trial-and-error process, research effort are currently devoted toward the possible formalization of specific procedures for the problem in hand.

  • Finally, when \(x_{(j)} < 0.05\), the task is inactive and the task velocity is determined only by the rest of the task hierarchy.

Remark: We have implicitly considered objectives of the type \(x_m< x < x_M\) as two separate ones. Note that if \(x_m\) and \(x_M\) are sufficiently spaced, i.e., \(x_m + \varDelta < x_M - \varDelta \), then they can be considered together by using as activation function the sum of the two activation functions, and by choosing an arbitrary point inside the validity of both inequality to construct the common reference rate in (7). This is actually what is done for the joint limits task implementation, since the minimum and maximum limits satisfy the above conditions.

4.3 Solution of the Task Hierarchy Problem

In the previous sections different concepts have been introduced. The UVMS needs to fulfil different control objectives. Tracking suitable feedback reference rates allows the UVMS to meet these objectives. We have termed this need as task. We have also seen that tasks should be activated and deactivated for two main reasons: either the current control phase does not require that specific objective and its related task, or the task corresponds to an inequality objective which is currently satisfied. For the reasons outlined above, whenever that situation occurs we do not want the control to be overconstrained. To comply with this need, activation functions have been introduced, which describe whether a given task should or not be fulfilled.

Having said that, the problem becomes that of tracking the given reference velocities, following the required priority order, and taking into account their corresponding activation values. The solution of this problem can be found solving the following sequence of minimization problems:

$$\begin{aligned} S_k \triangleq \left\{ \arg \mathrm {R\text {-}}\min _{\dot{\varvec{y}} \in S_{k-1}} \left\| \mathbf A _k (\dot{\bar{\varvec{x}}}_k - \mathbf J _k \dot{\varvec{y}}) \right\| ^2 \right\} ,\quad k = 1, 2, \ldots , N, \end{aligned}$$
(13)

where \(S_{k-1}\) is the manifold of solutions of all the previous tasks in the hierarchy.

The solution of each problem in (13) is not straightforward. It is well known that minimization problems can be invariant to weights (such is the role of \(\mathbf A _k\)) [27, 28]. For that reason, we have used the notation \(\mathrm {R\text {-}}\min \), to highlight the fact that we employ a special regularized pseudoinverse solution of that problem, as defined in [26]. In fact, the solution of the regularized minimization problem exploits the following definition of pseudoinverse operator \(\mathbf X ^{\#,\mathbf A ,\mathbf Q }\) for given non-negative definite matrices \(\mathbf A , \mathbf Q \), with dimensions equal to the rows and columns of \(\mathbf X \) respectively:

$$\begin{aligned} \mathbf X ^{\#,\mathbf A ,\mathbf Q } \triangleq \left( \mathbf X ^T\mathbf A \mathbf X + (\mathbf I -\mathbf Q )^T(\mathbf I -\mathbf Q ) + \mathbf V ^T\mathbf H \mathbf V \right) ^\# \mathbf X ^T \mathbf A \mathbf A , \end{aligned}$$
(14)

where \(\mathbf V \) is the right orthonormal matrix of the SVD decomposition of \(\mathbf X ^T\mathbf A \mathbf X + (\mathbf I -\mathbf Q )^T(\mathbf I -\mathbf Q )\). The matrix \(\mathbf H \) is a diagonal (singular value-oriented regularization ) matrix, whose elements \(h_{(i,i)}\) are bell-shaped, finite support functions (similar to the activation functions) of the corresponding singular value of the same mentioned SVD decomposition. As a brief insight, let us remark how the pseudoinverse operator explicitly depends on the weights \(\mathbf A \) (the activation function) and \(\mathbf Q \) (the nonorthogonal projection matrix). This fact allows the operator to avoid the problems of discontinuity arising from the invariance of the minimization w.r.t. the weights. The interested reader can find more details in [26].

Using the above operator for solving a hierarchy of tasks, a methodology termed iCAT task priority framework, results in the following algorithm:

$$\begin{aligned} \begin{aligned} \varvec{\rho }_{0}&= \varvec{0},&\mathbf Q _{0}&= \mathbf I , \end{aligned} \end{aligned}$$
(15)

then for \(k = 1, \ldots , N\)

$$\begin{aligned} \begin{aligned} \mathbf W _k&= \mathbf J _k \mathbf Q _{k-1} (\mathbf J _k \mathbf Q _{k-1})^{\#,\mathbf A _k,\mathbf Q _{k-1}}, \\ \mathbf Q _k&= \mathbf Q _{k-1} (\mathbf I - (\mathbf J _k \mathbf Q _{k-1})^{\#,\mathbf A _k,\mathbf I } \mathbf{J _k \mathbf Q _{k-1}}),\\ \varvec{\rho }_k&= \varvec{\rho }_{k-1} + \mathbf Q _{k-1} (\mathbf J _k \mathbf Q _{k-1})^{\#,\mathbf A _k,\mathbf I } \mathbf W _k \left( \dot{\bar{\varvec{x}}}_k - \mathbf J _k \varvec{\rho }_{k-1} \right) , \end{aligned} \end{aligned}$$
(16)

where

  • \(\varvec{\rho }_k\) is the control vector, which is computed in an iterative manner by descending the various priority levels;

  • \(\left( \dot{\bar{\varvec{x}}}_k - \mathbf J _k \varvec{\rho }_{k-1} \right) \) is the modified task reference that takes into account the contribution of the control vector \(\varvec{\rho }_{k-1}\) established at the previous iteration;

  • \(\mathbf Q _{k-1}\) is the projection matrix that is used to take into account the control direction (totally or partially) used by the higher priority tasks;

  • \(\mathbf W _k\) is a \(m \times m\) matrix, where m is the row-dimension of the task at the current priority level, whose effect is to modify the task reference \(\left( \dot{\bar{\varvec{x}}}_k - \mathbf J _k \varvec{\rho }_{k-1} \right) \) to avoid discontinuities between priority levels.

A further improvement that can be applied to this technique is to take into account velocity saturations at each priority level, following the methodology first proposed in [29]. To do so, the update equation of \(\varvec{\rho }_k\) is redefined as follows:

$$\begin{aligned} \varvec{\rho }_k = \varvec{\rho }_{k-1} + \text {Sat}\left( \mathbf Q _{k-1} (\mathbf J _k \mathbf Q _{k-1})^{\#,\mathbf A _k,\mathbf I } \mathbf W _k \left( \dot{\bar{\varvec{x}}}_k - \mathbf J _k \varvec{\rho }_{k-1} \right) \right) , \end{aligned}$$
(17)

where the function Sat(\(\cdot \)) implements the saturation proposed in [29].

The above task hierarchy resolution ends with the N-th manifold \(S_N = \{\dot{\varvec{y}} = \varvec{\rho }_N + \mathbf Q _N \dot{\varvec{z}}_N\,;\,\forall \dot{\varvec{z}}_N\}\). To ensure the continuity, a final minimization on the control vector needs to be performed [26], leading to the following final velocity control vector:

$$\begin{aligned} \dot{\varvec{y}} = \arg \mathrm {R\text {-}}\min _{\dot{\varvec{y}} \in S_{N}} \left\| \dot{\varvec{y}} \right\| ^2 = \varvec{\rho }_{N+1}. \end{aligned}$$
(18)

4.4 Vehicle Velocity Tracking Error Compensation Scheme

An important consideration when dealing with UVMS is that the two subsystem are characterized by very different dynamic performances. Indeed, it is well known that thrusters have nonlinear properties [30,31,32]. This nonlinearity, coupled with the higher mass of the vehicle compared to the manipulator’s one, makes the velocity control of the vehicle far less accurate than the arm’s one.

The proposed algorithm (16) solves the task hierarchy considering the vehicle and arm velocity together in the stacked vector \(\dot{\varvec{y}}\). However, for reasons states at the start of this section, inevitable vehicle velocity tracking errors will occur. To overcome this problem, the idea is to add, in parallel to (16), another task hierarchy resolution, where only the arm variables are subject to optimization . The actual vehicle velocity, as measured by onboard sensors, is used as a parameter to solve the task hierarchy.

This procedure leads to the following set of equations:

$$\begin{aligned} \begin{aligned} \mathbf W _k&= \mathbf J ^{a}_k \mathbf Q _{k-1} (\mathbf J ^{a}_k \mathbf Q _{k-1})^{\#,\mathbf A _k,\mathbf Q _{k-1}}, \\ \mathbf Q _k&= \mathbf Q _{k-1} (\mathbf I - (\mathbf J ^{a}_k \mathbf Q _{k-1})^{\#,\mathbf A _k,\mathbf I } \mathbf{J ^{a}_k \mathbf Q _{k-1}}),\\ \varvec{\rho }_k&= \varvec{\rho }_{k-1} + \text {Sat}\left( \mathbf Q _{k-1} (\mathbf J _k \mathbf Q _{k-1})^{\#,\mathbf A _k,\mathbf I } \mathbf W _k \left( \dot{\bar{\varvec{x}}}_k - \mathbf J ^{a}_k \varvec{\rho }_{k-1} - \mathbf J ^{v}_k \varvec{v} \right) \right) , \end{aligned} \end{aligned}$$
(19)

where now \(\varvec{\rho }_k \in \mathbb {R}^l\) contains only the arm joint velocities and each Jacobian \(\mathbf J _k\) has now been considered as its two separate vehicle contributions, i.e., \(\mathbf J _k \triangleq \begin{bmatrix} \mathbf J ^{a}_k&\mathbf J ^{v}_k \end{bmatrix}\). The resulting arm control law (19), since parametrized by the vehicle velocity \(\varvec{v}\), results to be the optimal one in correspondence of any vehicle velocity.

5 Simulation and Experimental Results

A series of experiments performed using the proposed task priority based kinematic controller are presented in this section. Experimental results on underwater grasping taken from the MARIS project are reported in the first subsection. The successive one presents a simulation of underwater pipe inspection with force regulation taken from the DeXROV project.

5.1 Approaching and Grasping

The following section presents the data collected during the MARIS project. The setup consisted in a UVMS composed of an under-actuated vehicle with controllable d.o.f. xy and yaw angle \(\psi \), and a 7 d.o.f. manipulator, with a 3-fingered gripper attached as shown in Fig. 3. Note that the z axis of the vehicle was disabled for safety reasons, since the trials were done in a pool with only 3 m of water. The vehicle was controlled at 10 Hz rate, while the arm was controlled at 33 Hz. The reference mission was approaching and grasping an underwater pipe, whose position was estimated using an onboard stereo camera [33] at an approximate frequency of 3 Hz.

Fig. 3
figure 3

(photo courtesy of the MARIS consortium)

The UVMS R2, used throughout the on-field experiments, while approaching an underwater pipe to grasp it

The first trial, depicted in Fig. 4 shows the generated joint velocities using the approach presented in Sect. 4, with the vehicle velocity compensation of Sect. 4.4. It can be noted that the vehicle feedback was particularly noisy on the angular velocity components. In order to compensate for the noisy feedback, the arm moved quite quickly, inducing actual oscillations in the system due to the dynamic coupling with the floating base.

Fig. 4
figure 4

MARIS experiment without vehicle velocity feedback filtering: a vehicle velocity feedback and b reference arm joint velocities

To cope with the above problem, a simple first-order filter on the vehicle feedback was introduced, with a cut-off frequency at angular frequency of 50 rad/s. New trials were then performed; one of these is depicted in Fig. 5a, where now the filtered velocity feedback is compared to the reference one along with the reference velocities for the arm. Let us note how the control successfully completed the grasp sequence despite the vehicle tracking inaccuracies thanks to the proposed compensation technique. From the Fig. 5b, it is possible to see that the generated joint velocities are smoother compared to the first trial, even though the multi-rate nature of the control and feedback can be appreciated. Figure 5c shows the time behavior of the activation function of the manipulability task. A video showing one of the experiments can be seen at the URL https://youtu.be/b3jJZUoeFTo.

Fig. 5
figure 5

MARIS experiment with vehicle velocity feedback filtering: a comparison of vehicle feedback (dashed lines) and reference velocity (solid lines), b reference arm joint velocities, c manipulability activation function

Finally, it must be noted how the experiments were necessarily preceded by a general tuning of all the parameters, ranging from the control gains of each task reference rate, to the size of the activation functions buffers \(\varDelta \).

5.2 Force Regulation

A series of simulations were carried out to test the effectiveness of the proposed algorithm including a force regulation task. The reference mission is the inspection of a pipeline weld. To carry out the inspection, a sensor attached to the end-effector must be put in contact with the pipe along all the weld. The shape of the inspected object is not known, although the knowledge of a two-dimensional reference path defined on an known underlying surface was assumed. The UVMS must regulate the force to a given reference value to maintain contact with the pipe without damaging the sensor’s probe and adapting to the unknown surface. We recall that this regulation is performed at kinematic level, with a dedicated task at the top of the task hierarchy. This is done by measuring the force normal, and generating a velocity along that direction proportional to the force error. This reference velocity, at dynamic level, will become an actual force. This further ensures that lower priority task do not generate velocity references along the direction of the physical constraint.

Compared to previous results [34], this simulation includes realistic saturation values for the vehicle generalized force/moments resulting at the vehicle frame and arm joint torques, other than an hydrodynamic model of the UVMS. The thruster dynamics have not been modeled; the vehicle tracking accuracy are attributed only to the inertia effects and dynamic control performances. In any case, the proposed velocity compensation technique takes into account the resulting effect and would not be different if the thruster dynamic was included in the simulation (Fig. 6).

Fig. 6
figure 6

Two snapshots of the force regulation experiments during the inspection of an underwater pipeline weld

In the simulation, the underlying DCL implements a PI control law. This case reproduces the actual implementation of DexROV, where the arm and vehicle DCLs are provided by the respective manufacturers and implementing global dynamic controllers, such as a computed torque, are not possible. The regulation of the force is done through a proportional term, since the underlying dynamic level already contains an integral part. The simulation shows that the regulation is accomplished despite different tasks are being activated and deactivated during the trial, e.g., the joint limits and manipulability ones. The proposed controller implements the saturation of reference joint and vehicle velocities as proposed in (17), to avoid generating unrealistic values. Finally, the simulation implements a multi-rate control, where the kinematic control is run at 100 Hz, while the DCL and the dynamic simulation runs at 1 kHz.

Figure 7a shows the force exerted on the pipe, which is very close to the desired value of 10 N. The spikes are in correspondence of the end of the legs, where the vehicle needs to move in a difference direction and where most of the vehicle velocity tracking inaccuracies occur. Those spikes were present also in the simulations presented in [34]; however, the saturation on the actuators increase this effect. Further investigations on how to mitigate these spikes despite saturation are currently ongoing. Finally, Fig. 7b presents the activation values of some tasks that are being activated and deactivated during the mission.

Fig. 7
figure 7

Pipeline inspection simulation: a force exerted by the end-effector on the pipe (desired value 10 N) and b activation values of the relevant tasks

6 Concluding Remarks

Oceans cover approximately 70% of Earth’s surface and represent an important source of resources. Unfortunately, the underwater environment poses great challenges to robotic systems, due to high pressures and hydrodynamic forces that are both nonlinear. A further important constraint is the low bandwidth of acoustic communications, which are the de facto standard since electromagnetic communications only work at very short ranges.

Despite such premises, underwater robotic systems capable of performing autonomous intervention tasks are a very active topic of research. In the future, the difference between ROV systems with advanced autonomy capabilities and completely autonomous UVMSs is expected to be less prominent. In fact, one of the trends is to imagine hybrid solutions where the robotic system autonomously navigates toward a target area, docks with a subsea structure and a tether cable, and then performs as a semi-autonomous ROV system. Such a solution is very interesting to reduce the maintenance costs of permanent underwater structures, especially for offshore platforms.

The employment of UVMSs can be of course predicted also for applications that do not target the offshore market. For example, exploration for resources with the possibility of in situ measurements, such as what is proposed in the ROBUST project, is very interesting and promising. Other applications might include the use of UVMSs for deep-sea archaeological sites.

This chapter has presented the overall kinematic control strategy of an UVMS, supported both by experimental results of the TRIDENT and MARIS projects, which is now currently refined in the scope of the DexROV and ROBUST projects. More investigation efforts are still necessary for what concerns interaction tasks with the environment, especially under the presence of saturation effects.

The chapter covered only control issues. However, perception, navigation , communication, and dynamic modeling are other fundamental topics for the development of autonomous underwater robotic systems. The interested reader can find further readings on these topics in the following survey papers and books [35,36,37,38,39,40].