1 Introduction

Underwater surveying and intervention operations involving manned underwater vehicle exposed the operator to extreme and dangerous conditions such as underwater pressure, visual visibility and oxygen supply problems. These problems can be overcome by substituting human operators with underwater robots. Several researchers have been focusing on the development of autonomous and semi-autonomous underwater robots for intervention tasks utilizing robotic arms or manipulators [15]. These robots are called underwater vehicle-manipulator system (UVMS).

A problem related to the design of manipulator for underwater applications is waterproof mechanism. For instance, several manipulator designs utilized oil seals and O-rings for waterproofing the motors inside the joints of the manipulators [2, 4]. The same method was also used in our previous manipulator design [6, 7]. In some other research designs, oil-filled manipulator joints were utilized to compensate high underwater pressure [2, 5]. Unfortunately, these seals may deteriorate in time if exposed to high underwater pressure. Moreover, oil-filled manipulator joints have the possibility of leaking where maintenance can be difficult. However, the main challenge in designing UVMS for medium and small-sized underwater robots is the control system. It is difficult to control the UVMS because the robot body is easily effected by the movement of the arms due to the lightweight design of the body. Consequently, the end-tips of the manipulator may not reach the desired position due to the non-existence of force compensating the reaction of the robot body. Therefore, it is highly important to consider the kinematic and dynamic controls for the overall control system based on the coupled effects of robot body and manipulators. Many studies have proposed various underwater robot control strategies for single-arm UVMS, and verified it through computer simulations [811]. However, there are only a few experimental studies performed in actual underwater environment. Furthermore, there are also less studies that are focusing on control system for dual-arm UVMS. Based on the problems described above, in our previous work, we have proposed digital resolved acceleration control (RAC) methods for the control system of a single-arm UVMS [6, 7] and dual-arm UVMS [12]. In [12], the effectiveness of the proposed RAC method was demonstrated through computer simulations. While in this work, the effectiveness of the proposed method is demonstrated through experiments using an actual dual-arm UVMS.

Table 1 Physical parameters of underwater robot

The paper consists of three sections. First, this paper describes the mechanical design of a dual-arm manipulator. Then, a new control method for a dual-arm UVMS that was introduced in our previous work will be presented briefly. Next, the effectiveness of the proposed control method is verified through actual underwater experiment using an underwater robot equipped with the newly designed dual-arm UVMS.

2 Design of the manipulator

Fig. 1
figure 1

a Joint prototype, b neodymium magnet coupling, c neodymium magnets configuration

Fig. 2
figure 2

2-link underwater manipulator

Fig. 3
figure 3

Dual-arm underwater robot

We have developed a dual-arm UVMS consisting of two units of 2-link manipulator attached on an underwater robot. The robot base (vehicle) is equipped with six units of commercial thrusters (single propeller) from Mitsui Engineering and Shipbuilding that allow it to move in 3-dimensional space. Both manipulators move in horizontal plane, where each is driven by two rotational joints containing servo actuators and magnetic coupling mechanisms. Figure 1a shows the actual photo of the proposed joint prototype. The joint prototype consists of 2 parts: a waterproof cylindrical case attached to a static U-shaped bracket and a movable U-shaped bracket. The waterproof cylindrical case contains Futaba RS301CR electric servo motors as actuators. The servo produces a maximum torque of 7.1 (kg cm) when supplied with 7.4 (V) of voltage supply. Waterproofed manipulator joint designs without using oil seals are made possible by utilizing magnetic couplings as shown in Fig. 1b. Figure 1b shows a set of the designed magnetic coupling consisting of an inner disc (diameter 60 mm, thickness 10 mm) and a piece of outer disc. Torque can be transmitted between the two discs due to the axially configured magnets, where the north pole of a magnet attracts the south pole of an opposite magnet and vice versa. Both discs are made of duralumin alloy, where each disc is embedded with 8 pieces of neodymium permanent magnets. Each neodymium magnet has a diameter of 14 mm and thickness of 5 mm. Figure 1c shows the magnetic poles arrangement patterns of the magnets. Figure 2 shows an actual image of a 2-link underwater manipulator which uses the proposed joint prototype. Figure 3 shows an actual image of dual-arm UVMS that is being developed which consists of a robot base and dual-arm 2-link manipulator. Table 1 shows the physical parameters of the robot.

3 Modelling

In this section, a brief explanation of a dual-arm underwater robot’s model, kinematics equation, momentum equation and equation of motion are described. Then, the proposed RAC method is explained.

Figure 4 shows the model of a dual-arm UVMS considered in this paper, consisting of the inertial and vehicle coordinate frame. Here, inertial coordinate frame is introduced to describe the motion of the entire UVMS system. Symbols used in the model are defined as follows:

\(n^*\) :

Number of joint of arm \(*\) (\(*\)=R Right arm, \(*\)=L Left arm)

\({\varSigma }_I\) :

Inertial coordinate frame

\({\varSigma }_0\) :

Vehicle coordinate frame

\({\varSigma }_i^*\) :

Link \(i\) coordinate frame of arm \(*\) (\(*\)=R Right arm, \(*\)=L Left arm)

\({}^i\varvec{R}_j^*\) :

Coordinate transformation matrix from \(\varSigma _j^*\) to \(\varSigma _i^*\)

\(\varvec{p}_e^*\) :

Position vector of manipulator end-tip with respect to \({\varSigma _I}\)

\(\varvec{p}_i^*\) :

Position vector of origin of \(\varSigma _i^*\) with respect to \(\varSigma _I\)

\(\varvec{r}_0\) :

Position vector of origin of \(\varSigma _0\) with respect to \(\varSigma _I\)

\(\varvec{r}_i^*\) :

Position vector of the centre of mass for link \(i^*\) with respect to \(\varSigma _I\)

\(\dot{\varvec{r}}_0\) :

Linear velocity vector of origin of \(\varSigma _0\) with respect to \(\varSigma _I\)

\(\dot{\varvec{r}}_e^*\) :

Linear velocity vector of manipulator end-tip with respect to \(\varSigma _I\)

\(\varvec{\psi }_0\) :

Roll-pitch-yaw attitude vector of \(\varSigma _0\) with respect to \(\varSigma _I\)

\(\varvec{\psi }_e^*\) :

Roll-pitch-yaw attitude vector of end-tip of manipulator with respect to \(\varSigma _I\)

\(\varvec{\omega }_i^*\) :

Angular velocity vector of \(\varSigma _i^*\) with respect to \(\varSigma _I\)

\(\varvec{\omega }_e^*\) :

Angular velocity vector of manipulator end-tip with respect to \(\varSigma _I\)

\(\phi _i^*\) :

Relative angle of joint \(i^*\)

\(\varvec{\phi }\) :

Relative joint angle vector (\(=[ \left( \varvec{\phi }^\mathrm{R} \right) ^T, \left( \varvec{\phi }^\mathrm{L} \right) ^T ]^T\)), and (\(\varvec{\phi }^*= [ \varvec{\phi }_1^*, \ \varvec{\phi }_2^*, \ \ldots , \ \varvec{\phi }_n^*]^T\))

\(\varvec{k}_i^*\) :

Unit vector indicating a rotational axis of joint \(i^*\)

\(m_i^*\) :

Mass of link \(i^*\)

\(\varvec{M}_{a_i}^*\) :

Added mass matrix of link \(i^*\) with respect to \(\varSigma _i^*\)

\(\varvec{I}_i^*\) :

Inertia tensor of link \(i^*\) with respect to \(\varSigma _i^*\)

\(\varvec{I}_{a_i}^*\) :

Added inertia tensor of link \(i^*\) with respect to \(\varSigma _i^*\)

\(\varvec{x}_0\) :

Position and attitude vector of \(\varSigma _0\) with respect to \({\varSigma _I}\) (\({=}[ \varvec{r}_0^T, \ \varvec{\psi }_0^T ]^T\))

\(\varvec{x}_e^*\) :

Position and attitude vector of \(*\) manipulator end-tip with respect to \({\varSigma _I}\) (\({=}[ \left( \varvec{p}_e ^*\right) ^T, \ \left( \varvec{\psi }_e^*\right) ^T ]^T\))

\(\varvec{\nu }_0\) :

Linear and angular vector of \(\varSigma _0\) with respect to \({\varSigma _I}\) (\({=}[ \dot{\varvec{r}}_0^T, \ \varvec{\omega }_0^T ]^T\))

\(\varvec{\nu }_e^*\) :

Linear and angular vector of \(*\) manipulator end-tip with respect to \({\varSigma _I}\) (\({=}[ \left( \dot{\varvec{r}}_e ^*\right) ^T, \ \left( \varvec{\omega }_e ^*\right) ^T ]^T\))

\(\varvec{a}_{g_i}\) :

Position vector from joint \(i^*\) to the centre of mass for link \(i^*\) with respect to \(\varSigma _I\)

\(\varvec{a}_{b_i}^*\) :

Position vector from joint \(i^*\) to buoyancy centre of link \(i^*\) with respect to \(\varSigma _I\)

\(l_i^*\) :

Length of link \(i^*\)

\(D_i^*\) :

Width of link \(i^*\)

\(V_i^*\) :

Volume of link \(i^*\)

\(\rho\) :

Fluid density

\(C_{d_i}^*\) :

Drag coefficient of link \(i^*\)

\(\varvec{g}\) :

Gravitational acceleration vector

\(\varvec{E}_j\) :

\(j \times j\) unit matrix

\(\tilde{\varvec{r}}\) :

Skew-symmetric matrix defined as \(\tilde{\varvec{r}} = \begin{bmatrix} 0&-z&y \\ z&0&-x\\ -y&x&0 \end{bmatrix}, \quad \varvec{r}=\begin{bmatrix} x \\ y \\ z \end{bmatrix}\)

Fig. 4
figure 4

Model of a dual-arm underwater robot

3.1 Kinematics and momentum equations

The kinematics and momentum equations of the dual-arm UVMS are derived based on the work done in [6].

First, from Fig. 4, the end-tip velocity vector \(\varvec{v}_e^{*}\) is derived based on the time derivative of the end-tip position vector \(\varvec{p}_e^{*}\) (\(*=\)R Right arm, L Left arm) as shown below:

$$\begin{aligned} \varvec{v}_e^{*}= \varvec{v}_0 + \tilde{\varvec{\omega }}_0 (\varvec{p}_e^{*}- \varvec{r}_0) + \sum _{i=1}^n \left\{\tilde{\varvec{k}}_i^{*}(\varvec{p}_e^{*}- \varvec{p}_i^{*}) \right\} \dot{\phi }_i^{*}. \end{aligned}$$
(1)

Furthermore, the relationship between the end-tip angular velocity vector \(\varvec{\omega }_e^{*}\) and joint velocities is expressed as

$$\begin{aligned} \varvec{\omega }_e^{*}= \varvec{\omega }_0 + \sum _{i=1}^n \varvec{k}_i^{*}\dot{\phi }_i^{*}. \end{aligned}$$
(2)

From Eqs. (1) and (2) the following kinematics equation of the dual-arm UVMS is obtained:

$$\begin{aligned} \varvec{\nu }_e^{*}= \varvec{A}^{*}\varvec{\nu }_0+\varvec{B}^{*}\dot{\varvec{\phi }}^{*}\end{aligned}$$
(3)

where

$$\begin{aligned} \varvec{A}^{*}= \begin{bmatrix} \varvec{E}_3&-(\tilde{\varvec{p}}_e^{*}- \tilde{\varvec{r}_0}) \\ \varvec{0}&\varvec{E}_3 \end{bmatrix},\quad \varvec{B}^{*}= \begin{bmatrix} \varvec{b}_1^{*}&\varvec{b}_2^{*}&\cdots&\varvec{b}_n^{*}\end{bmatrix} \end{aligned}$$

and \(\varvec{b}_i^{*}= [ \{ \tilde{\varvec{k}}_i^{*}(\varvec{p}_e^{*}- \varvec{p}_i^{*}) \}^T, \ \left( \varvec{k}_i^{*}\right) ^T ]^T\).

Here, \(\varvec{A}\) and \(\varvec{B}\) are matrices consisting of position and attitude of robot base and manipulator’s joint angles, respectively. Next, let \(\varvec{\eta }\) and \(\varvec{\mu }\) be a linear and an angular momentum of the robot which also consists of hydrodynamic added mass tensor \(\varvec{M}_{a_{i}^{*}}\) and added inertia tensor \(\varvec{I}_{a_{i}^{*}}\) of link \(i^{*}\). Then

$$\begin{aligned} \varvec{\eta } = \varvec{M}_{T_{0}} \dot{\varvec{r}}_{0} + \varvec{\eta }^\mathrm{R} + \varvec{\eta }^\mathrm{L} , \end{aligned}$$
(4)
$$\begin{aligned} \varvec{\mu } = \varvec{I}_{T_{0}} \varvec{\omega }_{0} + \tilde{\varvec{r}}_{0} \varvec{M}_{T_{0}} \dot{\varvec{r}}_{0} + \varvec{\mu }^\mathrm{R} + \varvec{\mu }^\mathrm{L} \end{aligned}$$
(5)

where

$$\begin{aligned} \varvec{v}_e^{*}= \varvec{v}_0 + \tilde{\varvec{\omega }}_0 (\varvec{p}_e^{*}- \varvec{r}_0) + \sum _{i=1}^n \,\,\left\{\tilde{\varvec{k}}_i^{*}(\varvec{p}_e^{*}- \varvec{p}_i^{*}) \right\}\,\, \dot{\phi }_i^{*}. \end{aligned}$$

and \(\varvec{M}_{T_{i}}^{*}= m_i^{*}\varvec{E}_3 + {}^I \varvec{R}_i^{*}{}^{i} \varvec{M}_{a_{i}}^{*}{}^{i} \varvec{R}_I^{*}\), while \(\varvec{I}_{T_{i}}^{*}= {}^I \varvec{R}_i^{*}({}^{i} \varvec{I}_i^{*}+ {}^{i} \varvec{I}_{a_i}^{*}) {}^{i} \varvec{R}_I^{*}\). Here, linear and angular velocities at the centre of mass for link \(i^{*}\) are described as

$$\begin{aligned} \dot{\varvec{r}}_{i}^{*}= \varvec{v}_{0} + \tilde{\varvec{\omega }}_{0} ( \varvec{r}_{i}^{*}- \varvec{r}_{0} ) + \varvec{J}_{v_{i}}^{*}\dot{\varvec{\phi }}^{*}, \end{aligned}$$
(6)
$$\begin{aligned} \varvec{\omega }_{i}^{*}= \varvec{\omega }_{0} + \varvec{J}_{\omega _{i}}^{*}\dot{\varvec{\phi }}^{*}, \end{aligned}$$
(7)
$$\begin{aligned} \varvec{J}_{v_i}^{*}= \begin{bmatrix} \varvec{j}_{i_{1}}^{*}&\varvec{j}_{i_{2}}^{*}&\cdots&\varvec{j}_{i_{i}}^{*}&\varvec{0}&\cdots&\varvec{0} \end{bmatrix}{,} \\ \varvec{J}_{\omega _{i}}^{*}= \begin{bmatrix} \varvec{k}_1^{*}&\varvec{k}_2^{*}&\cdots&\varvec{k}_{i}^{*}&\varvec{0}&\cdots&\varvec{0} \end{bmatrix} \end{aligned}$$

where \(\varvec{j}_{i_{j}}^{*}= \varvec{k}_{j}^{*}\times (\varvec{r}_{i}^{*}- \varvec{p}_{j}^{*})\). Therefore, from Eqs. (4)–(7), the following momentum equation for a dual-arm UVMS is obtained:

$$\begin{aligned} \varvec{s} = [\varvec{\eta }^{T}, \ \varvec{\mu }^{T}]^{T} = \varvec{C} \varvec{\nu }_0 + \varvec{D} \dot{\varvec{\phi }} \end{aligned}$$
(8)

where

$$\begin{aligned} &\varvec{C} = \begin{bmatrix} \varvec{c}_{11}&\varvec{c}_{12} \\ \varvec{c}_{21}&\varvec{c}_{22}\end{bmatrix}, \\ &\varvec{D} = \begin{bmatrix} \varvec{d}_{11}^\mathrm{R}&\varvec{d}_{12}^\mathrm{R}&\cdots&\varvec{d}_{1{n^\mathrm{R}}}^\mathrm{R}&\varvec{d}_{11}^\mathrm{L}&\varvec{d}_{12}^\mathrm{L}&\cdots&\varvec{d}_{1{n^\mathrm{L}}}^\mathrm{L} \\ \varvec{d}_{21}^\mathrm{R}&\varvec{d}_{22}^\mathrm{R}&\cdots&\varvec{d}_{2{n^\mathrm{R}}}^\mathrm{R}&\varvec{d}_{21}^\mathrm{L}&\varvec{d}_{22}^\mathrm{L}&\cdots&\varvec{d}_{2{n^\mathrm{L}}}^\mathrm{L} \end{bmatrix} , \\ &\varvec{c}_{11} = \displaystyle \varvec{M}_{T_0} + \sum _{i=1}^{n^\mathrm{R}} \varvec{M}_{T_i}^\mathrm{R} + \sum _{i=1}^{n^\mathrm{L}} \varvec{M}_{T_i}^\mathrm{L} , \\ &\varvec{c}_{12} = \displaystyle - \sum _{i=1}^{n^\mathrm{R}} \varvec{M}_{T_i}^\mathrm{R} ( \tilde{\varvec{r}}_i^\mathrm{R} - \tilde{\varvec{r}}_0 ) - \sum _{i=1}^{n^\mathrm{L}} \varvec{M}_{T_i}^\mathrm{L} ( \tilde{\varvec{r}}_i^\mathrm{L} - \tilde{\varvec{r}}_0 ), \\ &\varvec{c}_{21} = \displaystyle - \tilde{\varvec{r}}_0 \varvec{M}_{T_0} + \sum _{i=1}^{n^\mathrm{R}} \tilde{\varvec{r}}_i^\mathrm{R} \varvec{M}_{T_i}^\mathrm{R} + \sum _{i=1}^{n^\mathrm{L}} \tilde{\varvec{r}}_i^\mathrm{L} \varvec{M}_{T_i}^\mathrm{L}, \\ &\varvec{c}_{22} = \displaystyle \varvec{I}_{T_0} + \sum _{i=1}^{n^\mathrm{R}} \varvec{I}_{T_i}^\mathrm{R} - \sum _{i=1}^{n^\mathrm{R}} ( \tilde{\varvec{r}}_i^*- \tilde{\varvec{r}}_0 ) \varvec{M}_{T_i}^\mathrm{R} ( \tilde{\varvec{r}}_i^\mathrm{R} - \tilde{\varvec{r}}_0 ) \\ &\qquad+ \sum _{i=1}^{n^\mathrm{L}} \varvec{I}_{T_i}^\mathrm{L} - \sum _{i=1}^{n^\mathrm{L}} ( \tilde{\varvec{r}}_i^*- \tilde{\varvec{r}}_0 ) \varvec{M}_{T_i}^\mathrm{L} ( \tilde{\varvec{r}}_i^\mathrm{L} - \tilde{\varvec{r}}_0 ), \\ &\varvec{d}_{1i}^*= \displaystyle \sum _{j=i}^{n^*} \varvec{M}_{T_i}^*\tilde{\varvec{k}}_i^*( \varvec{r}_j^*- \varvec{p}_i^*), \\ &\varvec{d}_{2i}^*= \displaystyle \sum _{j=i}^{n^*} \varvec{I}_{T_j}^*\varvec{k}_i^*+ ( \tilde{\varvec{r}}_i^*- \tilde{\varvec{r}}_0 ) \varvec{M}_{T_j}^*\tilde{\varvec{k}}_i^*( \varvec{r}_j^*- \varvec{p}_i^*). \end{aligned}$$

Here, \(\varvec{C}\) is matrix for mass and \(\varvec{D}\) is matrix for inertia momentum. Both are included with hydrodynamic added mass and added inertia momentum which we assumed to be constant. In the real world, the added mass and added inertia momentum are inconstant. However, this is compensated using RAC method which will be introduced later in this section.

3.2 Equation of motion

Considering the hydrodynamic forces described above and using the Newton–Euler formulation, the following equation of motion can be obtained:

$$\begin{aligned} \varvec{M}(\varvec{q})\dot{\varvec{\zeta }}+\varvec{N}(\varvec{q},\varvec{\zeta })\varvec{\zeta }+\varvec{f} = \varvec{u} \end{aligned}$$
(9)

where \({\varvec{q}}^T = [\varvec{r}_0^T, \ \varvec{\psi }_0^T, \ \varvec{\phi }^T ]\) and \({\varvec{\zeta }}^T = [\varvec{\nu }_0^T,~\dot{\varvec{\phi }}^T ]\), \(\varvec{\psi }_0\) is robot base attitude (roll-pitch-yaw) vector, \(\varvec{M}(\varvec{q})\) is the inertia matrix consists of added mass \(\varvec{M}_{a_{i}}^{*}\) and inertia \(\varvec{I}_{a_{i}}^{*},\) \(\varvec{N}(\varvec{q}, \varvec{\zeta })\) is the vector of Coriolis and centrifugal forces, and \(\varvec{f}\) is the vector consists of drag, gravitational and buoyant forces and moments. \(\varvec{u}\) is the input vector consisting of force and torque vectors provided by thrusters and joint torques, where \(\varvec{u} = [ \varvec{f}_0^T,~\varvec{\tau }_0^T,~\varvec{\tau }^T_m ]^T\). \(\varvec{f}_{0}^{T}\) and \(\varvec{\tau }_{0}^{T}\) are the force and torque vectors of the robot, \(\varvec{\tau }^{T}_{m}\) is the torque vector for manipulator joints. Furthermore, the relationship between robot’s angular velocity \(\varvec{\omega }_{*}\) and rotational velocities \(\dot{\varvec{\psi }}_\dagger = [\dot{\psi }_{r_\dagger }, \ \dot{\psi }_{p_\dagger }, \ \dot{\psi }_{y_\dagger } ]^{T}\) (\(\dagger =0,\ e_{\mathrm{R}},\ e_{\mathrm{L}}\)) is described as

$$\begin{aligned} \varvec{\omega }_\dagger = \varvec{S}_{\varvec{\psi }_\dagger } \dot{\varvec{\psi }}_\dagger \end{aligned}$$
(10)

where

$$\begin{aligned} \begin{array}{lll}\varvec{S}_{\varvec{\psi }_\dagger } = \begin{bmatrix} \cos \psi _{p_\dagger } \cos \psi _{p_\dagger }&- \sin \psi _{y_\dagger }&0 \\ \cos \psi _{p_\dagger } \sin \psi _{p_\dagger }&\cos \psi _{y_\dagger }&0 \\ \sin \psi _{p_\dagger }&0&1 \end{bmatrix}. \end{array} \end{aligned}$$

Thus, the relationship between \(\dot{\varvec{q}}\) and \(\varvec{\zeta }\) is described as

$$\begin{aligned} \varvec{\zeta } = \varvec{S} \dot{\varvec{q}} \end{aligned}$$
(11)

where \(\varvec{S} = \mathrm{blockdiag} \left\{ \varvec{E}_3, \varvec{S}_{\varvec{\psi }_0}, \varvec{E}_{\left( {n^{\mathrm{R}}+n^{\mathrm{R}}} \right) } \right\}\).

4 Resolved acceleration control (RAC)

The relationship between the desired velocities of robot base and manipulator’s end-tips \(\varvec{\beta }\) and the required robot base acceleration and manipulator joints angular acceleration \(\varvec{\alpha }\) can be expressed by differentiating Eqs. (3) and (8) with respect to time. As a result, the following equation can be obtained:

$$\begin{aligned} \varvec{W}(t) \varvec{\alpha }(t) = \varvec{\beta }(t) + \varvec{f}(t) - \dot{\varvec{W}}(t) \varvec{\upsilon }(t) \end{aligned}$$
(12)

where

$$\begin{aligned} \varvec{W} = \begin{bmatrix} \varvec{C+E_6}&\varvec{D} \\ \varvec{A}&\varvec{B} \end{bmatrix},\,\, \ \varvec{\alpha } = \begin{bmatrix} \dot{\varvec{\nu }}_0 \\ \ddot{\varvec{\phi }} \end{bmatrix},\,\,\,\, \varvec{\beta } = \begin{bmatrix} \dot{\varvec{\nu }}_0 \\ \dot{\varvec{\nu }}_e \end{bmatrix}, \,\,\,\\ \varvec{f} = \begin{bmatrix} \dot{\varvec{s}} \\ \varvec{0} \end{bmatrix}, \,\,\,\ \varvec{\upsilon } = \begin{bmatrix} \varvec{\nu }_0 \\ \dot{\varvec{\phi }} \end{bmatrix},\,\,\, \ \dot{\varvec{\phi }} = \begin{bmatrix} \dot{\varvec{\phi }}^R \\ \dot{\varvec{\phi }}^L \end{bmatrix}, \,\,\,\ \dot{\varvec{\nu }}_e = \begin{bmatrix} \dot{\varvec{\nu }}_e^\mathrm{R} \\ \dot{\varvec{\nu }}_e^\mathrm{L} \end{bmatrix}, \\ \varvec{A} = [ {\varvec{A}^R}^T,~{\varvec{A}^L}^T ]^T \varvec{B} = \mathrm{blockdiag} \{ \varvec{B}^\mathrm{R},\varvec{B}^\mathrm{L} \} \end{aligned}$$

and \(\dot{\varvec{s}}\) is the external force including hydrodynamic force and thrust of the thruster which act on the base.

Then, Eq. (12) is descritized with sampling period \(T\), and by applying \(\varvec{\beta }(t)\) and \(\dot{\varvec{W}}(t)\) to the backward Euler approximation, the following equation can be obtained:

$$\begin{aligned} T \varvec{W}(k) \varvec{\alpha }(k-1)&= \varvec{\nu }(k) - \varvec{\nu }(k-1)+ T\varvec{f}(k) \nonumber \\&\quad- \{ \varvec{W}(k) - \varvec{W}(k-1) \} \varvec{\upsilon }(k) \end{aligned}$$
(13)

where \(\varvec{\nu } = \left[ \varvec{\nu }_0^T,~~ \varvec{\nu }_e^T \right] ^T\). Note that computational time delay is introduced to Eq. (13), and the discrete time \(kT\) is abbreviated to \(k\).

From Eq. (13) the desired acceleration (resolved acceleration) for the robot base and desired angular acceleration of each joints \(\varvec{\alpha }_d(k)\) is defined as follows:

$$\begin{aligned} \varvec{\alpha }_d(k)&= \dfrac{1}{T}\varvec{W}(k)^{+} \left\{ \varvec{\nu }_d(k+1) - \varvec{\nu }_d(k) \right. \nonumber \\&\left.\quad + \varvec{\varLambda } \varvec{e}_{\nu }(k) + T \varvec{f}(k) \right\} \end{aligned}$$
(14)

Moreover, the desired velocity for the robot base and both manipulator’s end-tips \(\varvec{\nu }_d(k)\) is defined as follows:

$$\begin{aligned} \varvec{\nu }_d(k)&= \dfrac{\varvec{S}_{0e}}{T} \left\{ \varvec{x}_d(k) - \varvec{x}_d(k-1) + \varvec{\varGamma } \varvec{e}_x(k-1) \right\} \end{aligned}$$
(15)

where \(\varvec{e}_{\nu }(k) = \varvec{\nu }_d(k) - \varvec{\nu }(k)\), \(\varvec{e}_x(k) = \varvec{x}_d(k) - \varvec{x}(k)\) and \(\varvec{S}_{0e} = {\mathrm{blockdiag}} \{ \varvec{E}_3, \varvec{S}_{\psi 0}, \varvec{E}_3, \varvec{S}_{\psi e_{\mathrm{R}}}, \varvec{E}_3, \varvec{S}_{\psi e_{\mathrm{L}}} \}\). \(\varvec{W}{(k)}^{+}\) is the pseudoinverse of \(\varvec{W}\), \(\varvec{x}_d\) is the desired value of \(\varvec{x} = [ \varvec{x}_0^T, \left( \varvec{x}_0^{\mathrm{R}} \right) ^T, \left( \varvec{x}_0^{\mathrm{L}} \right) ^T ]^T\). \(\varvec{\varLambda}={\rm diag}\{\lambda_{i} \}\) is the position error and attitude error feedback gain matrices. \(\varvec{\varGamma } ={\rm diag}\{\gamma_{i} \}\) is the velocity error and angular velocity error feedback gain matrices. Here, \(i=\)1, \(\ldots\), 18 (robot base DOF + joints DOF).

From Eqs. (13), (14) and (15), if \(\lambda _i\) and \(\gamma _i\) are selected to satisfy \(0<\lambda _i<1\) and \(0<\gamma _i<1\), respectively, and the convergence of the acceleration error, \(\varvec{e}_\alpha (k) = \varvec{\alpha }_d (k) - \varvec{\alpha }(k)\), tends to zero as \(k\) tends to infinity, then the convergence of \(\varvec{e}_{\nu } (k)\) and \(\varvec{e}_x (k)\) to zero as \(k\) tends to infinity can be ensured.

5 Experiments and results

Fig. 5
figure 5

Experimental setup

We have conducted a preliminary experiment to verify the effectiveness of the proposed control system described in the previous section. Figure 5 shows the experimental setup for the experiment. The experiment was carried out in a test tank. The tank specifications are 3 m wide, 2 m long and 2 m deep. The position and attitude of the robot can be calculated by monitoring the movement of three LEDs light sources via CCD cameras as shown in Fig. 5. The data from CCD cameras were converted to position data using an X-Y video tracker. A coordinate system with x, y and z axes is fixed to the test tank as shown in the figure. Using this setup, the centre position and attitude angles of the robot with respect to the coordinate system fixed on the test tank can be measured.

In real underwater tasks, the robot performs various missions utilizing manipulators such as collecting specimens and manipulating tools. Therefore, for accurate object manipulation, station-keeping control is a very important capability for an underwater robot with robotic arms. Figure 6 shows the motion of the UVMS during experiment from three different views. In the experiment, the desired end-tip positions were set up along a straight path from the initial positions to the desired positions. At the same time, the robot base was in station-keeping condition. The movement trajectories of both manipulator’s end-tips were measured. Additionally, the position and attitude of the robot base were also measured. The RAC method is estimated to enable the control of end-tips of both manipulators robot base by considering the external forces. Thus, we estimated that RAC method may reduce the errors between the actual and desired positions and attitude of the end-tips.

The experiment was carried out under the following condition. As the robot base needed to be in station-keeping condition during the experiment, the initial position of the robot base was [0, 0, 0] m, and initial attitude was [0, 0, 0] m. As shown in Fig. 6, the initial angle for the first and second joints of the right manipulator were −45° and 90°. While, the initial angle for the first and second joints of the left manipulator were 45° and −90°. Figure 6 also shows the desired end-tip positions of both left and right manipulators were at [0, 0.135, 0] m and [0, -0.135, 0] m. The data sampling period was \(T=1/60\;{\rm s}.\)

The feedback gains for robot base were \(\lambda _1=\lambda _3=0.15\) and \(\lambda _2=0.2\) for position error, \(\lambda _4=0.6\), \(\lambda _5=\lambda _6=0.5\) for attitude error, \(\gamma _1=0.004\), \(\gamma _2=0.01\) and \(\gamma _3=0.008\) for velocity error, \(\gamma _4=0.05\), \(\gamma _5=0.1\) and \(\gamma _6=0.005\) for angular velocity error. The feedback gains for both end-tips of the manipulators were \(\lambda _7=\lambda _8=\lambda _{13}=\lambda _{14}=0.6\) and \(\lambda _9=\lambda _{15}=0.6\) for position error, \(\lambda _{10}=\lambda _{11}=\lambda _{12}=\lambda _{16}=\lambda _{17}=\lambda _{18}=0.0\) for attitude error, \(\gamma _7=\gamma _8=\gamma _{13}=\gamma _{14}=0.6\) and \(\gamma _9=\gamma _{15}=0.0\) for velocity error, \(\gamma _{10}=\gamma _{11}=\gamma _{12}=\gamma _{16}=\gamma _{17}=\gamma _{18}=0.0\) for angular velocity error.

Fig. 6
figure 6

UVMS motion during experiment

Fig. 7
figure 7

Experimental results

Figure 7a to h shows the results of the experiment. Figure 7a shows a time history of the positions of the end-tips of both left and right manipulators moving from the initial positions to the desired positions. Figure 7b and c shows the thrusters control inputs for the robot base translational and rotational motions. Both of these figures show the thrust forces that were required to counteract the forces generated from both arm movements. Figure 7d shows the robot base position errors on x, y and z axes during the movement of the manipulators. The figure shows that the robot base was able to maintain position errors within \(\pm 0.02\;{\rm m}.\) Figure 7e shows significantly larger movements on the rotational motion of the robot especially on yaw direction. However, the robot was still able to maintain attitude errors within \(\pm 0.04\;{\rm rad}\). Furthermore, 15 s after the start of the experiment, the error on yaw direction began to decrease gradually. The recorded attitude errors are considered to be acceptable, considering the large size of the robot base. The translational and rotational motions of the robot base were excited due to the effect caused by the motions of both manipulators and the thrusters performances. The main purpose of the proposed RAC method is to control both end-tips of the manipulators to move to desired positions. Figure 7f shows the control input for both arm joints. Figure 7g and h shows that the RAC method achieved its purpose, where although the robot base produced significant position and attitude errors, the end-tips position errors are within the range of \(\pm 0.02\) to \(\pm 0.03\;{\rm m}\). Furthermore, the end-tips are still able to follow the desired trajectories despite the influence from the hydrodynamic forces due to the coupled effects of robot base and manipulators.

6 Conclusion

This paper presents the mechanical design of a newly developed 2-link manipulator for a dual-arm UVMS. The paper also demonstrated the results of control experiment for a dual-arm UVMS using the proposed RAC method described in [12]. The experiment results showed the effectiveness of the proposed RAC method.