Robots with two manipulators operating in a single working zone under the same control system are known as two-handed robots. Robots with two manipulators are capable of more complex operations than robots with a single manipulator. An important characteristic of such robots is the accuracy of relative motion of the output elements in assembly and other tasks. The manipulators are located on a single mobile platform or on a fixed base (Fig. 1). It is important to determine the angular and linear errors in relative motion of the robot grips.

Fig. 1.
figure 1

Two-handed robots.

To determine the linear error in relative manipulation, we find the radius vector of an arbitrary point of the output element for each manipulator [1]

$$\bar {r} = \bar {r}\left( {{{q}_{i}}} \right),\,\,\,\,i = 1, \ldots ,n,$$
(1)

where n is the number of degrees of freedom for the manipulator; and qi are the generalized manipulator coordinates. Differentiating Eq. (1) with respect to the time, we obtain

$${\text{d}}\bar {r} = \sum\limits_{i = 1}^n {\frac{{\partial \bar {r}}}{{\partial {{q}_{i}}}}} {\text{d}}{{q}_{i}}.$$
(2)

Replacing the differentials by finite variables, we find the vector corresponding to the linear position error for a characteristic point in the grip of each manipulator. This point may be the origin of the coordinate system attached to the grip

$$\overline {\Delta {{r}_{k}}} = \sum\limits_{i = 1}^n {\frac{{\partial \bar {r}}}{{\partial {{q}_{i}}}}} \Delta {{q}_{i}},$$
(3)

where ∆qi is the error of the programmed generalized coordinates; k = 1, 2.

For the characteristic point of the grip, the linear error may be written without differentials in the form [1]

$${{\bar {\upsilon }}_{k}} = \sum\limits_j {{{{\bar {\omega }}}_{j}}{{{\bar {r}}}_{{jn}}}} + \sum\limits_i {{{{\bar {\upsilon }}}_{i}}} ,$$

where j is the number of the rotary pair; i is the number of the translational pair; \({{\bar {\omega }}_{j}}\) is the vector corresponding to the relative angular velocity in pair j; \({{\bar {\upsilon }}_{i}}\) is the vector corresponding to the relative linear velocity in pair i; and \({{\bar {r}}_{{jn}}}\) is the radius vector connecting the center of pair j with the characteristic point of the grip.

In Eq. (1), we replace the differentials with finite displacements

$$\Delta {{\bar {r}}_{k}} = \sum\limits_j {\Delta {{\varphi }_{j}}{{{\bar {e}}}_{j}}{{{\bar {r}}}_{{jn}}}} + \sum\limits_i {\Delta {{S}_{i}}{{{\bar {e}}}_{i}}} ,$$

where \(\Delta {{\varphi }_{j}}\) is the error of the programmed coordinates in the rotary pairs; \(\Delta {{S}_{i}}\) is the error of the coordinates in the translational pairs; and \({{\bar {e}}_{j}},\,\,{{\bar {e}}_{i}}\) are unit vectors corresponding to the kinematic pairs.

It follows from Eq. (2) that the linear error of each manipulator depends on the errors in the kinematic pairs and the position of the manipulator in the working zone.

To determine the relative velocities of points of the manipulator grips, we use the equation

$${{\bar {\upsilon }}_{1}} = {{\bar {\upsilon }}_{2}} + {{\bar {\upsilon }}_{{12}}}.$$

Hence

$${{\bar {\upsilon }}_{{12}}} = {{\bar {\upsilon }}_{2}} - {{\bar {\upsilon }}_{1}},$$

where \({{\bar {\upsilon }}_{1}}\) and \({{\bar {\upsilon }}_{2}}\) are the velocity vectors of points of the grips in the first and second manipulators, respectively; and \({{\bar {\upsilon }}_{{12}}}\) is the relative velocity of the points.

Switching to small linear displacements, we find from Eq. (3) that

$$\overline {\Delta {{r}_{{12}}}} = \overline {\Delta {{r}_{1}}} - \overline {\Delta {{r}_{2}}} ,$$

where \(\overline {\Delta {{r}_{{12}}}} \) is the linear error in the relative position of the manipulators; and \(\overline {\Delta {{r}_{1}}} \) and \(\overline {\Delta {{r}_{2}}} \) are the linear errors of the first and second manipulators, respectively.

Switching to the moduli of the vectors \(\overline {\Delta {{r}_{{12}}}} {\text{,}}\) \(\overline {\Delta {{r}_{1}}} {\text{,}}\) \(\overline {\Delta {{r}_{2}}} {\text{,}}\) we write

$$\left| {\Delta {{r}_{{12}}}} \right| = \left| {\overline {\Delta {{r}_{1}}} } \right| + \left| {\overline {\Delta {{r}_{2}}} } \right|.$$

As an example, we determine the kinematic error of a two-handed robot with six degrees of freedom, containing both rotary and translational pairs (Fig. 2).

Fig. 2.
figure 2

Two-handed manipulator with six degrees of freedom.

In the motionless coordinate system OXYZ, the position of point С3 in element 3 of the manipulator АВС3 is determined by vector \(\overline {O{{C}_{3}}} = {{\bar {r}}_{3}}{\text{.}}\) The position of point C4 in element 4 of manipulator EDC4 is determined by vector \(\overline {O{{C}_{4}}} = {{\bar {r}}_{4}}.\)

The linear error of the two-handed robot is determined by the vector difference

$$\overline {\Delta {{r}_{{34}}}} = {{\bar {r}}_{4}} - {{\bar {r}}_{3}}.$$
(4)

Note that each vector \(\overline {{{r}_{3}}} \) and \(\overline {{{r}_{4}}} \) includes an error that depends on many factors. The most significant is the error \(\Delta {{q}_{i}}~\) in implementing the generalized coordinates of the manipulators.

For each manipulator

$$\Delta {{\bar {r}}_{3}} = \sum\limits_{i = 1}^3 {\frac{{\partial {{{\bar {r}}}_{3}}}}{{\partial {{q}_{i}}}}\Delta {{q}_{i}},} \,\,\,\,i = 1,2,3,$$
$$\Delta {{\bar {r}}_{4}} = \sum\limits_{i = 1}^6 {\frac{{\partial {{{\bar {r}}}_{4}}}}{{\partial {{q}_{i}}}}\Delta {{q}_{i}},} \,\,\,\,i = 4,5,6,$$

where \(\overline {\Delta {{r}_{3}}} \) and \(\overline {\Delta {{r}_{4}}} \) are the errors in vectors \({{\bar {r}}_{3}}\) and \({{\bar {r}}_{4}}{\text{,}}\) respectively; and qi are the generalized coordinates of the manipulators.

From Eq. (4), we determine the modulus of the linear error

$$\left| {\overline {\Delta {{r}_{{34}}}} } \right| = \left| {\overline {\Delta {{r}_{3}}} } \right| + \left| {\overline {\Delta {{r}_{4}}} } \right|.$$

Note that determination of the linear error from Eq. (3) with differentiation leads to an unwieldy expression, especially if the manipulators have many degrees of freedom. Therefore, it is more expedient to use Eq. (4), in rewritten form

$$\left| {\overline {\Delta {{r}_{{34}}}} } \right| = \left| {\sum\limits_{i = 1}^3 {\Delta {{q}_{i}}{{{\bar {e}}}_{i}} \times {{{\bar {r}}}_{{i3}}}} } \right| + \left| {\sum\limits_{j = 4}^6 {\Delta {{q}_{j}}{{{\bar {e}}}_{j}} \times {{{\bar {r}}}_{{j4}}}} } \right|,$$

where i = 1, 2, 3; j = 4, 5, 6. The generalized coordinates are as follows

$$\begin{gathered} {{q}_{1}} = {{\varphi }_{1}};\,\,\,\,{{q}_{2}} = {{\varphi }_{2}};~\,\,\,\,{{q}_{3}} = \,~\,{{S}_{3}}; \\ ~{{q}_{4}} = {{S}_{4}};\,\,\,\,~{{q}_{5}} = {{\varphi }_{5}};\,\,\,\,~{{q}_{6}} = {{\varphi }_{6}}. \\ \end{gathered} $$

We may write the vectors \(\overline {\Delta {{r}_{3}}} \,\,{\text{and}}\,\,\overline {\Delta {{r}_{4}}} \) in the expanded form

$$\left\{ {\begin{array}{*{20}{c}} {\overline {\Delta {{r}_{3}}} = \Delta {{\varphi }_{1}}{{{\bar {e}}}_{1}} \times \left( {\overline {AB} + \overline {B{{C}_{3}}} } \right) + \Delta {{\varphi }_{2}}{{{\bar {e}}}_{2}} \times \overline {B{{C}_{3}}} ;} \\ {\overline {\Delta {{r}_{4}}} = \Delta {{\varphi }_{6}}{{{\bar {e}}}_{6}} \times \left( {\overline {ED} + \overline {C{{D}_{4}}} } \right) + \Delta {{\varphi }_{5}}{{{\bar {e}}}_{5}} \times \overline {D{{C}_{4}}} .} \end{array}} \right.$$
(5)

The vectors in Eq. (5) are determined in projections onto the Cartesian axes OXYZ, with specified manipulator positions.

For manipulator ABC3

$$\left[ {\overline {AB} } \right] = {{\left[ {{{l}_{1}},~0,~0} \right]}^{T}},~\,\,\,\,{{l}_{1}} = AB;$$
$$\begin{gathered} \left[ {\overline {BC} } \right] = \left[ {{{S}_{3}}{\kern 1pt} \cos {\kern 1pt} {{\varphi }_{2}}{\kern 1pt} \cos {\kern 1pt} {{\varphi }_{1}},~{{S}_{3}}\cos {\kern 1pt} {{\varphi }_{2}}{\kern 1pt} \sin {\kern 1pt} {{\varphi }_{1}},~\,{{l}_{1}}} \right. \\ {{\left. { + \,\,{{S}_{3}}{\kern 1pt} \sin {\kern 1pt} {{\varphi }_{2}}} \right]}^{T}}; \\ \end{gathered} $$
$$~\left[ {{{{\bar {e}}}_{1}}} \right] = {{\left[ {0,~0,~1} \right]}^{T}};\,\,\,\,~\left[ {{{{\bar {e}}}_{2}}} \right] = {{\left[ {\cos {\kern 1pt} {{\varphi }_{1}},~\sin {\kern 1pt} {{\varphi }_{1}},~0} \right]}^{T}};~$$
$$\left[ {\overline {{{e}_{3}}} } \right] = {{\left[ {\cos {\kern 1pt} {{\varphi }_{2}}{\kern 1pt} \cos {\kern 1pt} {{\varphi }_{1}},\cos {\kern 1pt} {{\varphi }_{2}}{\kern 1pt} \cos {\kern 1pt} {{\varphi }_{1}},\sin {\kern 1pt} {{\varphi }_{2}}} \right]}^{T}}.$$

For manipulator \(ED{{C}_{4}}{\text{,}}\) in view of symmetry, we have analogous expressions with switched subscripts.

The angular error in the relative position of two solids may be determined by means of the error matrix [2]. This is the transition matrix from a coordinate system fixed in one body to that fixed in the other body, which is rotated by three small Euler angles. The matrix includes the values of the three Euler angles. However, the matrix does not express the angular error by a single value.

A method of determining the angular error of a manipulator was proposed in [3]. This method is based on the d’Alembert–Euler theorem that there exists a single axis and angle of rotation permitting the rotation of a solid from one position to another. Therefore, the angular error of a manipulator is assumed to be the vector

$$\overline {\Delta \varphi } = \sum\limits_j {{{{\overline {\Delta q} }}_{j}}} ,\,\,\,\,j = 1, \ldots ,k,$$

where k is the number of rotary pairs in the manipulator; and \(\overline {\Delta {{q}_{j}}} \) are the rotational vectors in rotary pairs. Those vectors are added by the summation rule for small rotations.

Using the transition matrix between coordinate systems associated with the system elements, we write

$$\overline {\Delta \varphi } = \sum\limits_j {{{L}_{{ij}}}\Delta {{q}_{j}}{{{\bar {e}}}_{j}}} ,$$

where \({{L}_{{ij}}} = \prod\limits_{i = 1}^n {{{L}_{{i - 1}}}} \) is the third-order transition matric from system j associated with element j to system i associated with the output element; \(\Delta {{q}_{i}}\) is the rotational error in the jth rotary pair; and \({{\bar {e}}_{j}}\) is the unit vector of the axis for pair j.

Analogously to the linear errors, the moduli of the angular errors of the first and second manipulators are added.

The error in the angular position of element 3 \(AB{{C}_{3}}\) (Fig. 2) is

$$\overline {\Delta {{\Psi }_{3}}} = \overline {\Delta {{\Psi }_{1}}} + \overline {\Delta {{\Psi }_{2}},} $$

where the vectors \(\overline {\Delta {{\Psi }_{1}}} = \Delta {{\Psi }_{1}}{{\bar {e}}_{1}}\) and \(\overline {\Delta {{\Psi }_{2}}} = \Delta {{\Psi }_{2}}~{{\bar {e}}_{2}}\) correspond to the angular errors in the position of elements 1 and 2.

The angular position errors of elements 2 and 3 are the same.

The angular position errors of element 4 \(ED{{C}_{4}}\) is

$$\overline {\Delta {{\Psi }_{4}}} = \overline {\Delta {{\Psi }_{5}}} + \overline {\Delta {{\Psi }_{6}}} ,$$

where the vectors \(\overline {\Delta {{\Psi }_{5}}} = \Delta {{\Psi }_{5}}{{\bar {e}}_{5}}\) and \(\overline {\Delta {{\Psi }_{6}}} = \Delta {{\Psi }_{6}}{{\bar {e}}_{6}}.\) correspond to the angular errors in the position of elements 5 and 6.

If the positions of points \({{C}_{3}}\,\,{\text{and}}~\,\,{{C}_{4}}\) are the same, we obtain the relative angular error

$$\left| {\overline {\Delta {{\Psi }_{{34}}}} } \right| = \left| {\overline {\Delta {{\Psi }_{1}}} } \right| + \left| {\overline {\Delta {{\Psi }_{2}}} } \right| + \left| {\overline {\Delta {{\Psi }_{5}}} } \right| + \left| {\overline {\Delta {{\Psi }_{6}}} } \right|.$$

CONCLUSIONS

We have obtained expressions for the linear and angular errors of a two-handed robot with six degrees of freedom

The linear error of relative manipulation by a two-handed robot depends on the position of the manipulator grips in the working zone and on the error of all the generalized coordinates of both manipulators.

The angular error of relative manipulation depends only on the total number of rotary pairs in the manipulators.