# Kinematic aspects of a robot-positioner system in an arc welding application

Anatol Pashkevich, Alexandre Dolgui, Konstantin Semkin

► To cite this version:

Anatol Pashkevich, Alexandre Dolgui, Konstantin Semkin. Kinematic aspects of a robot-positioner system in an arc welding application. Control Engineering Practice, 2003, 11 (6), pp.633-647. 10.1016/S0967-0661(02)00177-6. emse-00704692

HAL Id: emse-00704692

https://hal-emse.ccsd.cnrs.fr/emse-00704692

Submitted on 3 Aug 2021

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

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

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

Distributed under a Creative Commons Attribution 4.0 International License
# Kinematic aspects of a robot-positioner system in an arc welding application

Anatoly P. Pashkevich<sup>a,b,*</sup>, Alexandre B. Dolgui<sup>a</sup>, Konstantin I. Semkin<sup>b</sup>

This paper focuses on the kinematic control of a redundant robotic system taking into account particularities of the arc welding technology. The considered system consists of a 6-axis industrial robot (welding tool manipulator) and a 2-axis welding positioner (workpiece manipulator) that is intended to optimise a weld joint orientation during the technological process. The particular contribution of the paper lies in the area of the positioner inverse kinematics, which is a key issue of such system off-line programming and control. It has been proposed a novel formulation and a closed-form solution of the inverse kinematic problem that deals with the explicit definition of the weld joint orientation relative to the gravity. Similar results have also been obtained for the known problem statement that is based on a unit vector transformation. For both the cases, a detailed investigation of the singularities and uniqueness-existence topics have been carried out. The presented results are implemented in a commercial software package and verified for real-life applications in the automotive industry.

**Keywords:** Robotic manipulators; Inverse kinematics; Robotic positioner; Arc welding

## 1. Introduction

Welding technology is a traditional application area of industrial robots, so it encourages intensive research and development of sophisticated model-based control and programming tools. Such software systems allow to optimise some process parameters, which directly influences the product quality and the working cycle of the system. Besides, the model-based programming allows one to complete most of the process preparation actions without access to the workcell, and therefore, to make the robotic systems competitive for small-batch manufacturing. However, there are still a number of theoretical problems, which at the present stage are overcome in industry by combining simulation with the

expertise of the designer. This paper concentrates on one of such problems, the kinematic control of a redundant robot-positioner system.

Such emphasis on the kinematics is originated from the dual nature of the robotic system control and programming, which requires defining both a logical structure of the manufacturing task and specifying spatial relations that are presented as motion parameters. Obtaining these spatial relations is a very tedious and time-consuming process, which is typically about 10–100 times longer than the product welding circle (Bolmsjö, 1999; Pashkevich, 1996). And even the application of the off-line programming systems does not reduce this time drastically, while the robot idle time (when the robot cannot be used for the production because of the programming) is obviously decreased.

In the arc welding, the kinematic capabilities of a 6-axis robot are not usually sufficient to ensure the required working envelope and/or the desired orientations of the technological tool (the welding torch). The robot must move the tool along the weld joint with the

<footnote><sup>a</sup>Industrial Systems Optimisation Laboratory, Industrial Engineering Department, University of Technology of Troyes, 12, rue Marie Curie B.P. 2060, France</footnote>

<footnote><sup>b</sup>Robotic Laboratory, Department of Automatic control, Belorussian State University of Informatics and Radioelectronics, 6 P. Brovka St., Minsk 220600, Byelorussia</footnote>

<footnote>*Corresponding author. Tel.: +375-172-398-673; fax: +375-172-310-914. Present address: Robotic Laboratory, Department of Automatic Control, Belorussian State University of Informatics and Radioelectronics, 6 P. Brovka St., Minsk 220600, Byelorussia.</footnote>

<footnote>E-mail addresses: pap@gw.bsuir.unibel.by (A.P. Pashkevich), dolgui@univ-troyes.fr (A.B. Dolgui).</footnote>
<figure><img src="image_2.png" /><figcaption>Fig. 1. Welding robotic station.</figcaption></figure>

prescribed velocity and orientation relative to the joint, while the weld must be also properly oriented relative to the gravity vector. For this reason, a typical welding station (Fig. 1) includes several computer-controlled machines: a 6-axis industrial robot (tool manipulator); a 1–2-axis positioner (object manipulator); and, optional, a 2–3-axis gantry (robot manipulator).

Such an arrangement forms a redundant kinematic system, which usually does not possess a closed-form solution for the inverse kinematics of all the machinery. Because of the complexity of this problem, it is usually decomposed in several separate tasks, which are solved sequentially:

* Optimising the *weld joint orientation* relative to the gravity vector (subject to the positioner kinematic constrains).

* Optimising the *welding tool orientation* relative to the weld joint (subject to the joint technological and geometrical constraints).

* Optimising the *robot base location* (subject to the robot and gantry kinematic constraints).

Each of these steps requires multiple coordinate transformations for the corresponding machines (both direct and inverse ones). However, in the robotic literature, the main research activity focuses on the 6 d.o.f. and redundant robots, which are investigated in detail (Lee, Woernle, & Hiller, 1991; DeMers & Kreutz-Delgado, 1997; Kauschke, 1996; Hsu, 1993; Perdereau & Drouin, 1996 and others). To our knowledge, only Bolmsjö (1987) and Nikoleris (1990) from the Lund Institute of Technology (Sweden) investigated the positioner kinematics for the welding applications. And even in sophisticated industrial packages, such as ROBCAD (Tecnomatix Technologies) and IGRIP (Deneb Robotics), the optimisation process (“redundant kinematic chain balancing”) is still semi-automatic and employs the direct/inverse kinematics for robots, but only direct kinematics for positioners.

This paper extends the results of Bolmsjö and Nikoleris by proposing closed-form solutions for the

optimal weld joint orientation problem and includes a careful investigation of the singularities and solution existence issues. There are also proposed expressions for the positioner configuration indices, which ensure a unique solution of the problem for a single input and continuous solutions for a sequence of inputs defining the welding path. The latter is extremely important for the coordinated control of the positioner and the robot in the Cartesian space, when change of the configuration during welding is not allowed.

The remainder of this paper is organised as follows. Section 2 describes the kinematic control architecture and introduces the kinematic description of the welds. Section 3 is devoted to a formal statement of the weld joint orienting problems. In Section 4, the direct kinematic model of a general welding positioner is derived. Section 5 gives the inverse kinematic solution as well as a detailed investigation of the singularities and uniqueness-existence issues. In Section 6, an industrial implementation is presented and real-life industrial applications are described. And, finally, Section 7 summarises the main contributions of this paper.

## 2. Kinematic control architecture

### 2.1. *Control hierarchy*

In contrast to the early robotic manipulators, in which capabilities were limited by the servo-control of separate joint axes, the modern industrial robotic systems should implement the *task-level control* that essentially simplifies the manufacturing task definition for the end user (Bolmsjö & Nikoleris, 1993; Nikoleris, Bolmsjö, Olsson, & Brink, 1994). It results in including a kinematic control module as a built-in part of the hierarchical control system, where the high-level command is sequentially decomposed to the lower level ones, up to the axis drives and the process variable controllers. However, in spite of the apparent simplicity, defining of a particular content of each control level requires development of specific mathematical methods that take into account particularities of the relevant technology.

For the arc welding applications, five levels of control are typically used (Fig. 2). The highest of them highly relies on the kinematic modelling and deals with obtaining the optimal technological and geometrical parameters, such as the orientation angles of the weld joint and the welding gun, the weld sequence, the weld speed, etc. The fourth level performs appropriate coordinate transformations via the direct/inverse kinematics of all mechanical components (robot, positioner, gantry). The remaining three levels deal with the implementing of tool/workpiece movements in the Cartesian space, in the manipulator axis space and,
<figure><img src="image_3.png" /><figcaption>Fig. 2. Multi-level control hierarchy.</figcaption></figure>

finally, in the motor shaft space. (It should be noted that for some manipulators, the interrelation between the axis angle and the motor shaft angle is non-trivial.)

At present, control techniques for all the above-mentioned hierarchical levels are being intensively developed. For instance, advanced commercial controllers already include the forward dynamic models, which essentially improve the operational speed and accuracy. However, various aspects of the fourth and the fifth control levels are still subject of research and only limited industrial applications are reported.

This paper focuses on the kinematic aspects of the robot-positioner system (which are essential for the second control level), assuming that the simultaneous motion of the robot and the positioner are aimed at providing the optimal workpiece orientation relative to the gravity during welding. Since in the modern controllers such motions are implemented in the “master-slave” mode (when a robot follows the moving weld joint), the main attention is paid to the positioner

direct/inverse kinematics, as well as to the definition of the weld joint world orientation in terms of the technological requirements.

## 2.2. Kinematic description of the welds

The spatial location of the welding object, as a general rigid body, can be defined by a single frame that incorporates six independent parameters (three Cartesian coordinates and three Euler angles). However, defining geometry of each weld requires some additional efforts, depending on the joint profile. Since capabilities of modern commercial robotic systems allow to process two basic types of the contours (linear and circular), only these cases are considered below.

For the linear joints, a moving frame with the specific definition of the axes can describe the weld geometry. In this paper, this frame is defined so that:

* the $X_w$-axis is directed along the weld joint (Fig. 3);

* the $Y_w$-axis specifies the weld torch approaching direction (which is normal to the weld joint);

* the $Z_w$-axis completes the right-hand oriented frame and thus shows the “weaving” direction.

It should be noted that, in practice, it is prudent to define the $Y_w$-axis as the bisectrix of the corresponding weld joint surfaces.

Taking into account the above definitions, the kinematic model of the linear weld relative to the WB-frame (i.e., the workpiece base frame, see Fig. 3) can be described by the following homogenous parametric equation:

$$WB\mathbf{W}(l) = \left[ \frac{\mathbf{n}_w^s}{0} \middle| \frac{\mathbf{s}_w^s}{0} \middle| \frac{\mathbf{n}_w^s \times \mathbf{s}_w^s}{0} \middle| \frac{\mathbf{p}_w^s + l \cdot \mathbf{n}_w^s}{1} \right]_{4 \times 4}, \quad (1)$$

where the parameter $l$ is the welding torch displacement, the left superscript “WB” refers to the workpiece base coordinate system, the right superscript “s” and the subscript “w” denote starting point of the weld, $\mathbf{n}_w^s$ is the unit vector of the welding direction (axis $X_w$), $\mathbf{s}_w^s$ is the unit vector of the approaching direction (axis $Y_w$),

<figure><img src="image_4.png" /><figcaption>Fig. 3. Definition of the weld frames for the linear weld.</figcaption></figure>
<figure><img src="image_5.png" /><figcaption>Fig. 4. Definition of the weld frames for the circular weld.</figcaption></figure>

and $\mathbf{p}_w^s$ is the position vector of the weld starting point. It should be stressed that the vectors $\mathbf{n}_w^s, \mathbf{s}_w^s, \mathbf{P}_w^s$ are defined relative to the WB-frame and, in practice, they are easily derived from the workpiece 3D CAD model.

For the circular joints, a similar approach is used, but the moving frame is computed to ensure the tangency of the welding path and the $X_w$-axis at every point (Fig. 4). It is evident that the initial frame is subject to the rotational transformation and the weld kinematics is described by the following parametric equation:

$$ W_B(l) = \left[ \frac{\mathbf{R}_e(l/r) \cdot \mathbf{R}_w^s}{\mathbf{0}_{1 \times 3}} \middle| \frac{\mathbf{R}_e(l/r)(\mathbf{p}_w^s - \mathbf{p}_e) + \mathbf{p}_e}{1} \right]_{4 \times 4}, \quad (2) $$

where the parameter $l$ and the sub/superscripts “WB”, “w”, “s” have the same meaning as in (1), the orthogonal 3 × 3 matrix is expressed as $\mathbf{R}_w^s = [\mathbf{n}_w^s \ \mathbf{s}_w^s \ \mathbf{n}_w^s \times \mathbf{s}_w^s]$ and defines the orientation of the weld frame at the starting point, $r$ is the radius of the circular welding joint, $\theta = l/r$ is the angle of rotation, the vector $\mathbf{p}_e$ defines the position of the circle centre, and $\mathbf{R}_e(\theta)$ is the general rotation matrix (Fu, Gonzalez, & Lee, 1987) around the axis, which is determined by the unit vector $\mathbf{e} = [e_x \ e_y \ e_z]^T$ (see Fig. 4):

$$ \mathbf{R}_e(\theta) = \begin{bmatrix} e_x^2 V_\theta + C_\theta & e_x e_y V_\theta - e_z S_\theta & e_x e_z V_\theta + e_y S_\theta \\ e_x e_y V_\theta + e_z S_\theta & e_y^2 V_\theta + C_\theta & e_y e_z V_\theta - e_x S_\theta \\ e_x e_z V_\theta - e_y S_\theta & e_y e_z V_\theta + e_x S_\theta & e_z^2 V_\theta + C_\theta \end{bmatrix}_{3 \times 3}, \\ C_\theta = \cos(\theta), \quad S_\theta = \sin(\theta), \quad V_\theta = 1 - \cos(\theta). \qquad (3) $$

As in the previous case, the required vectors $\mathbf{n}_w^s, \mathbf{s}_w^s, \mathbf{P}_w^s$ and $\mathbf{e}, \mathbf{p}_e$, as well as the radius $r$, may also be easily derived from the workpiece 3D model using capabilities of the modern graphical simulation systems to generate straight lines, planes and circles.

Thereby, expressions (1)–(3) completely define spatial location (i.e., the position and the orientation) of the weld joint relative to the WB-frame (workpiece base), which should be adjusted by the positioner to optimise the weld orientation relative to the world coordinate system (see Fig. 1). Hence, the absolute (world) location of the weld joint is described by the product of the

homogenous matrices

$$ {}^0\mathbf{W}(l) = [ {}^0\mathbf{T}_{PB} \cdot \mathbf{P}(\mathbf{q}) \cdot {}^0\mathbf{T}_{WB} ] \cdot {}^0\mathbf{W}(l), \quad (4) $$

where the left superscript “0” refers to the world coordinate system, the matrix ${}^0\mathbf{T}_{PB}$ defines the absolute (world) location of the positioner base PB, the matrix ${}^0\mathbf{T}_{WB}$ describes the workpiece base WB location relative to the positioner mounting flange PF, and the matrix function $\mathbf{P}(\mathbf{q})$ is the positioner direct kinematic model, while $\mathbf{q}$ is the vector of the positioner joint coordinates.

To ensure good product quality and to increase the welding speed, the weld joint should be properly oriented relative to the gravity. The exact interrelations between these parameters are not sufficiently well known and require empirical study in each particular case. But practising engineers have developed a rather simple rule of thumb that is widely used for both the on-line and off-line programming: “the weld should be oriented in the horizontal plane so that the welding torch is vertical, if possible” (Bolmsjö, 1987). It is obvious that the simulation-based approach requires numerical measures of the “horizontality” and the “verticality”, which are proposed below.

Let us assume that the $Z_0$-axis of the world coordinate system is strictly vertical (i.e. directed opposite to the gravity vector), and, consequently, the $X_0Y_0$-plane is horizontal. Then, the weld orientation relative to the vector of gravity can be completely defined by two angles:

* The weld slope $\theta \in [-\pi/2; \pi/2]$, i.e. the angle between the vector of the welding direction ${}^0\mathbf{n}_w$ and the $X_0Y_0$ plane.

* The weld roll $\xi \in (-\pi; \pi]$, i.e. the angle between the vector of the approaching direction ${}^0\mathbf{s}_w$ and the vertical plane that is parallel to the vector ${}^0\mathbf{n}_w$ and the axis $Z_0$ (Fig. 5).

The numerical expressions for $\theta, \xi$ can be obtained directly from the definition of the RPY-angles (Fu et al., 1987; Craig, 1989), taking into account that the weld orientation $(\theta, \xi) = (0, 0)$ corresponds to the horizontal direction of the axis $X_w$ and the vertical direction of the $Y_w$ (see Fig. 5):

$$ {}^0\mathbf{W}_R = \mathbf{R}_z(\psi) \cdot \mathbf{R}_y(\theta) \cdot \mathbf{R}_x(\pi/2 - \xi), \quad (5) $$

where ${}^0\mathbf{W}_R$ is the 3 × 3 orientation submatrix of the 4 × 4 matrix of the weld location; $\mathbf{R}_x, \mathbf{R}_y, \mathbf{R}_z$ are the 3 × 3 rotation matrices around the axes X, Y, Z, respectively, and $\psi$ is the yaw angle which is non-essential for the considered problem. Multiplication of these matrices leads to

$$ {}^0\mathbf{W}_R = \begin{bmatrix} C_{\psi} C_{\theta} & C_{\psi} S_{\theta} C_{\xi} - S_{\psi} S_{\xi} & C_{\psi} S_{\theta} S_{\xi} + S_{\psi} C_{\xi} \\ S_{\psi} C_{\theta} & S_{\psi} S_{\theta} C_{\xi} + C_{\psi} S_{\xi} & S_{\psi} S_{\theta} S_{\xi} - C_{\psi} C_{\xi} \\ -S_{\theta} & C_{\theta} C_{\xi} & C_{\theta} S_{\xi} \end{bmatrix}, $$
<figure><img src="image_6.png" /></figure>

<figure><img src="image_7.png" /><figcaption>Fig. 5. Definition of the weld orientation angles $(\theta, \xi)$.</figcaption></figure>

where C and S denote, respectively, cos(.) and sin(.) of the corresponding angle specified at the subscript. Therefore, the weld joint orientation angles $\theta, \xi$ can be derived as follows:

$$ \theta = \operatorname{atan2} \frac{-^0\!n_w^z}{\sqrt{(^0\!s_w^x)^2 + (^0\!a_w^z)^2}}, \quad \xi = \operatorname{a} \tan 2 \frac{^0\!a_w^z}{^0\!s_w^z}, \quad (6) $$

where $^0\!n_w, ^0\!s_w, ^0\!a_w$ are the corresponding column vectors of the orthogonal matrix $^0\!W_R$. Taking into account the interrelations between these vectors, the angles $\theta, \xi$ can be finally expressed as functions of the weld joint direction $^0\!n_w$ and the approaching

direction $^0\!s_w$

$$ \theta = \operatorname{atan2} \frac{-^0\!n_w^z}{\sqrt{(^0\!n_w^x)^2 + (^0\!n_w^y)^2}}, \quad (7) $$

$$ \xi = \operatorname{atan2} \frac{^0\!n_w^x \cdot ^0\!s_w^y - ^0\!n_w^y \cdot ^0\!s_w^x}{^0\!s_w^z}, \quad (8) $$

In the singular case, if $n_w \approx [0 \ 0 \pm 1]$ and consequently $\theta \approx \pm \pi/2$, the matrix $^0\!W_R$ becomes

$$ ^0\!W_R = \begin{bmatrix} 0 & \cos(\psi + \xi) & \sin(\psi + \xi) \\ 0 & \sin(\psi + \xi) & -\cos(\psi + \xi) \\ -1 & 0 & 0 \end{bmatrix} $$

for $\theta = \pi/2$

or

$$ ^0\!W_R = \begin{bmatrix} 0 & -\cos(\psi - \xi) & \sin(\psi - \xi) \\ 0 & -\sin(\psi - \xi) & -\cos(\psi - \xi) \\ 1 & 0 & 0 \end{bmatrix} $$

for $\theta = -\pi/2$.

Hence, the expression for $\xi$ degenerates (the uncertainty $0/0$) and $\xi$ can take any value from the half-open interval $(-\pi; \pi]$. In this case, as follows from the geometrical meaning, the weld joint is directed strictly vertically and the approach vector completely lies in the horizontal plane. So, any value of $\xi$ is equivalent from the physical point of view, if $\theta \approx \pm \pi/2$.

It should be noted that it is possible to introduce an alternative definition of the weld roll, which is non-singular for all values of the weld slope. It is $\xi' \in [0; \pi]$ which is the angle between the approaching direction $^0\!s_w$ and the vertical axis $Z_0$ (see Fig. 5):

$$ \xi' = \operatorname{atan2} \frac{\sqrt{(^0\!s_w^x)^2 + (^0\!s_w^z)^2}}{^0\!s_w^z}, \quad (9) $$

As in the case of the angles $(\theta, \xi)$, the description $(\theta, \xi')$ also defines the 3rd row of the weld joint orientation matrix $^0\!W_R$; however, the sign of the component $a_w^z$ may be chosen arbitrary:

$$ W_R = \begin{bmatrix} * & * & * \\ * & * & * \\ -S_\theta & C_{\xi'} & \pm \sqrt{1 - S_\theta^2 - C_{\xi'}^2} \end{bmatrix}. $$

Hence, the interrelation between both the definitions of the roll angle $\xi$ and $\xi'$ is given by the equation

$$ \cos(\theta) \cos(\xi) = \cos(\xi') \quad (10) $$

and both $(\theta, \xi)$ and $(\theta, \xi')$ may be used equally.
### 3. Weld joint orienting problems

In the robotic welding station, the desired orientation of the weld relative to the gravity is achieved by means of the positioner, which adjusts the slope and the roll angles $(\theta, \xi)$ by alternating its axis coordinates. Using the kinematic model (4) and the definitions from the previous section, the problems of the welding joint orientation can be stated as follows:

**Direct Problem.** For given values of the positioner axis coordinates $\mathbf{q}$, as well as known homogenous transformation matrices $^0\mathbf{T}_{PB}$, $^{PF}\mathbf{T}_{WB}$ and the weld frame location relative to the object base $\mathbf{W}$, find the weld frame orientation in the world coordinate system $^0\mathbf{W}$ and the slope/roll orientation angles $(\theta, \xi)$.

**Inverse Problem 1.** For given values of the slope/roll orientation angles $(\theta, \xi)$, as well as known homogenous transformation matrices $^0\mathbf{T}_{PB}$, $^{PF}\mathbf{T}_{WB}$ and the weld frame location relative to the object base $\mathbf{W}$, find the values of the positioner axis coordinates $\mathbf{q}$.

There is also another statement of the inverse problem for the welding positioner (Nikoleris, 1990) that deals with a reduced version of expression (4), which describes only a single unit vector transformation:

$$ ^0\mathbf{s}_w = [^0\mathbf{T}_{PB} \cdot \mathbf{P}(q) \cdot ^{PF}\mathbf{T}_{WB}]_{3 \times 3} \cdot \mathbf{s}_w, \quad (11) $$

where the unit vectors $^0\mathbf{s}_w$ and $\mathbf{s}_w$ define the weld approach direction relative to the world coordinate system and the object base, respectively. Using the accepted notations, this formulation can be stated as follows.

**Inverse Problem 2.** For given values of the world coordinates of the weld approach vector $^0\mathbf{s}_w$, as well as for known homogenous transformation matrices $^0\mathbf{T}_{PB}$, $^{PF}\mathbf{T}_{WB}$ and the normal vector orientation relative to the object base $\mathbf{s}_w$, find the values of the positioner axis coordinates $\mathbf{q}$.

It should be stressed that both the formulations require two independent input parameters (two angles or a unit vector); however, they differ by the elements of the matrix $^0\mathbf{W}_R$ they deal with. Thus, the first formulation deals with the third row of the $3 \times 3$ matrix $^0\mathbf{W}_R$, which includes only the Z-coordinates $[n_z \ s_z \ a_z]$ that are not sensitive to the rotation around the gravity. In contrast, the second formulation operates with the second column $[s_x \ s_y \ s_z]^T$ of this matrix, which incorporates the X, Y-coordinates that are sensitive to the mentioned rotation. As a result, the second approach does not allow achieving the desired weld slope and roll simultaneously. Therefore, the second formulation of the inverse problem is less reasonable from the technological point of view.

The only case when the second formulation is sensible, is the so-called “optimal weld orientation”, for which the approaching vector is strictly vertical (i.e. $^0\mathbf{s}_w = [0 \ 0 \ 1]$) and, consecutively, the weld direction vector $^0\mathbf{n}_w = [* \ * \ 0]$ lies in the horizontal plane. But the first formulation also successfully tackle this case, as it corresponds to $(\theta, \xi) = (0, 0)$. However, the second formulation can be successfully applied in the case, which is singular for the first formulation $(\theta = \pm \pi/2)$, when defining the roll angle does not make sense. It is achieved by reformulating the problem, i.e. replacing the approaching vector by the weld direction vector, which must be directed vertically (i.e. $^0\mathbf{n}_w = [0 \ 0 \pm 1]$). For this reason, both formulations of the inverse problem will be considered below.

While applying the inverse formulation to real-life problems, it should also be taken into account that engineering meaning of the slope and the roll is not sensitive to the sign of these angles. For instance, the negative slope can be easily replaced by the positive one if the weld starting and ending points are interchanged. Also, the positive and negative rolls are equivalent with respect to the gravity force. Therefore, four cases $(\pm \theta, \pm \xi)$ must be investigated while orienting the weld joint for a particular manipulating task. A similar conclusion is valid for the alternative definition of the weld orientation angles $(\theta, \xi')$, where $\xi' > 0$; but two cases $(\pm \theta, \xi')$ yield four different matrices $^0\mathbf{W}_R$.

### 4. Direct kinematic problem

As follows from Eq. (4), successive multiplications of the corresponding homogenous matrices gives, for the given axis coordinates $\mathbf{q}$, the full world location (position and orientation) of the weld frame. Then, the required angles $(\theta, \xi)$ or $(\theta, \xi')$ are extracted from the matrix $^0\mathbf{W}_R$ in accordance with expressions (6)–(9). Therefore, the only problem is to find the matrix $\mathbf{P}(\mathbf{q})$ that describes the transformation from the positioner base to its mounting flange (or the face plate).

Because the weld joint orientation relative to the gravity is completely defined by two independent parameters, a universal welding positioner has two axes. Though, the simplest robotic cells also utilise 1-axis positioners (turntables and turning rolls) that are not capable of providing the full weld orientation but also increase a potential of the welding station. Robotic manufactures also produce 5-axis positioners that are, in fact, a combination of two 2-axis machines that are placed into the robot workspace in turn (using the 5th axis), to make possible changing the workpiece while the robot is welding on the other side. Therefore, the 2-axis positioner can be considered as the basic orienting component of the welding station, so the remainder of
<figure><img src="image_8.png" /><figcaption>Fig. 6. The 2-axis positioners: the balance (a) and roll-tilt (b).</figcaption></figure>

this Section is devoted to the positioners with two degrees of freedom.

While building the positioner model, it should be taken into account that the intersection point of the positioner axes may be located above the faceplate, to be closer to the workpiece centre of gravity (Fig. 6a). Such a design allows avoiding large payload moments that are specific for heavy and bulky objects. But in some cases, this point may lie above the plate (Fig. 6b). For this reason, it is prudent to release the usual constraint that assumes locating of the positioner base frame at the intersection of its two axes.

The kinematic model of the general 2-axis positioner is presented in Fig. 7. It includes four linear parameters ($a_1, d_1, a_2, d_2$) and one angular parameter $\alpha$ that defines the direction of the $Axis_1$. Without loss of generality, the $Axis_2$ is assumed to be normal to the faceplate and directed vertically when $q_1 = 0$. The geometrical meaning of the parameters is clear from the figure.

Similar to other manipulators, the kinematics of the positioner can be described by the Denavit-Hartenberg model (Fu et al., 1987). However, for the considered 2-axis system, it is more convenient to use a product of elementary transformations that can be derived directly from the Fig. 7:

$$ \mathbf{P}(q_1, q_2) = {}^{\mathrm{PB}}\mathbf{T}_1 \cdot \mathbf{R}_x(q_1) \cdot {}^{\mathrm{B}}\mathbf{T}_2 \cdot \mathbf{R}_z(q_2), \quad (12) $$

where

$$ {}^{\mathrm{PB}}\mathbf{T}_1 = \mathbf{T}_x(a_1) \cdot \mathbf{T}_z(d_1) \cdot \mathbf{R}_y(-\alpha), $$

$$ {}^{\mathrm{B}}\mathbf{T}_2 = \mathbf{R}_y(\alpha) \cdot \mathbf{T}_x(a_2) \cdot \mathbf{T}_z(d_2) $$

and $\mathbf{T}_x(\cdot), \mathbf{T}_z(\cdot), \mathbf{R}_x(\cdot), \mathbf{R}_z(\cdot)$ are the $4 \times 4$ homogenous transformation matrices that describe, respectively, the

<figure><img src="image_9.png" /><figcaption>Fig. 7. The coordinate frames of the 2-axis positioner.</figcaption></figure>

translation and rotation along (or around) the axes specified by the subscript.

Substituting the regular expressions for the translational and rotational matrices into Eq. (12) yields the final result for the non-trivial components of the positioner transformation matrix $\mathbf{P}(q_1, q_2)$:

$$ \begin{aligned} n_x &= (C_1 + C_{\alpha}^2 V_1) C_2 - S_{\alpha} S_1 S_2, & n_y &= S_{\alpha} S_1 C_2 + C_1 S_2, \\ n_z &= C_{\alpha} S_{\alpha} V_1 C_2 + C_{\alpha} S_1 S_2, & & \end{aligned} \quad (13) $$

$$ \begin{aligned} s_x &= -(C_1 + C_{\alpha}^2 V_1)S_2 - S_{\alpha}S_1C_2, \\ s_y &= -S_{\alpha}S_1S_2 + C_1C_2, \\ s_z &= -C_{\alpha}S_{\alpha}V_1S_2 + C_{\alpha}S_1C_2, & & \end{aligned} \quad (14) $$

$$ a_x = C_{\alpha}S_{\alpha}V_1, \quad a_y = -C_{\alpha}S_1, \quad a_z = C_1 + S_{\alpha}^2V_1, \quad (15) $$

$$ \begin{aligned} p_x &= (C_1 + C_{\alpha}^2 V_1) \cdot a_2 + C_{\alpha} S_{\alpha} V_1 \cdot d_2 + a_1, \\ P_y &= S_{\alpha} S_1 \cdot a_2 - C_{\alpha} S_1 \cdot d_2, \\ p_z &= C_{\alpha} S_{\alpha} V_1 \cdot a_2 + (C_1 + S_{\alpha}^2 V_1) \cdot d_2 + d_1, & & \end{aligned} \quad (16) $$

where, similar to Section 2, the vectors $n, s, a, p$ define the upper $3 \times 4$ block of the matrix $\mathbf{P}$, and $C, S, V$ denote, respectively, $\cos(\cdot), \sin(\cdot), \operatorname{vers}(\cdot)$ of the angle specified at the subscript. It should be noted that compared with the model proposed by Bolmsjö (1987), the developed one includes less geometrical parameters while it also describes the general case. Besides, the obtained expressions are less awkward and more computationally efficient than the known ones.

Therefore, expressions (13)–(16) completely define the direct kinematics of the 2-axis positioner. But the obtained model can be also reduced to describe the kinematics of the general 1-axis mechanism (see Appendix A). It is achieved by fixing $Axis_1$ or $Axis_2$ and choosing an appropriate value of $\alpha$. For instance, for the turntables, the only axis variable is $q_2$ while $q_1 = 0$. But for the turning rolls the axis variable is $q_1$, while $q_2 = 0$ and $\alpha = 0$.

## 5. Inverse kinematic problems

In accordance with Section 3, solving the inverse kinematic problem for the positioner means finding the axis angles ($q_1, q_2$) that ensure the desired world orientation of the weld joint, which is defined by the pair of the orientation angles (Problem 1) or by the unit vector (Problem 2). Let us consider these cases separately.

### 5.1. Solution of the Inverse Problem 1

Since the weld joint orientation angles $(\theta, \xi)$ or $(\theta, \xi')$ completely define the third row of the orthogonal $3 \times 3$ matrix ${}^0\mathbf{W}_R$, the basic kinematic equation (4) can be
rewritten as

$$ \eta^T \cdot {}^0\mathbf{W}_R = \eta^T \cdot [{}^0\mathbf{T}_{PB} \cdot \mathbf{P}(\mathbf{q}) \cdot {}^{\mathrm{PF}}\mathbf{T}_{WB}]_{3 \times 3} \cdot \mathbf{W}_R, \quad (17) $$

where the subscript “3 × 3” denotes the rotational part of the corresponding homogenous transformation matrix and $\eta^T = [0 \ 0 \ 1]$. Then, after the appropriate matrix multiplications, it can be converted to the form

$$ \mathbf{v}^T = \eta^T \cdot \mathbf{P}(\mathbf{q})_{3 \times 3}, \quad (18) $$

where

$$ \mathbf{v}^T = [-S_{\theta} \quad C_{\theta}C_{\xi} \quad C_{\theta}S_{\xi}] \cdot [{}^{\mathrm{PF}}\mathbf{T}_{WB} \cdot \mathbf{W}]_{3 \times 3}^{\mathrm{T}} $$

and, without loss of generality, the transformation ${}^0\mathbf{T}_{PB}$ is assumed not to include the rotational components other than $\mathbf{R}_z$. Further substitution in accordance with (13) yields three mutually dependent scalar equations of two unknowns ($q_1, q_2$):

$$ \begin{aligned} C_{\alpha}S_{\alpha}V_{1}C_{2} + C_{\alpha}S_{1}S_{2} &= v_{x}, \\ C_{\alpha}S_{1}C_{2} - C_{\alpha}S_{\alpha}V_{1}S_{2} &= v_{y}, \\ C_{1} + S_{\alpha}^{2}V_{1} &= v_{z}, \end{aligned} \quad (19) $$

where $v_x, v_y, v_z$ are the corresponding components of the vector $\mathbf{v}$. The third of these equations can be easily solved for $q_1$:

$$ q_1 = \pm \operatorname{acos} \frac{v_z - S_{\alpha}^2}{C_{\alpha}^2}. \quad (20) $$

The value of $q_2$ can be found by solving the first and the second equations for $C_2$ and $S_\alpha$:

$$ \begin{aligned} C_2 &= (S_1 v_y + S_\alpha V_1 v_x)/C_\alpha(S_\alpha^2 V_1^2 + S_1^2), \\ S_2 &= (S_1 v_x - S_\alpha V_1 v_y)/C_\alpha(S_\alpha^2 V_1^2 + S_1^2). \end{aligned} $$

This leads to the following expression for $q_2$:

$$ q_2 = \operatorname{atan2} \frac{S_1 v_x - S_\alpha V_1 v_y}{S_1 v_y + S_\alpha V_1 v_x}. \quad (21) $$

Therefore, Eqs. (18) and (19) represent the closed-form solution of the first inverse problem, which in the general case for given weld orientation angled $(\theta, \xi)$ or $(\theta, \xi')$ yields two pairs of the positioner axis angles $(q_1, q_2)$.

## 5.2. Solution of the Inverse Problem 2

For the second formulation, the input data defines the second column of the matrix ${}^0\mathbf{W}_R$, so the basic kinematic equation (4) can be rewritten as follows:

$$ {}^0\mathbf{W}_R \cdot \boldsymbol{\eta} = [{}^0\mathbf{T}_{PB} \cdot \mathbf{P}(\mathbf{q}) \cdot {}^{\mathrm{PF}}\mathbf{T}_{WB}]_{3 \times 3} \cdot \mathbf{W}_R \cdot \boldsymbol{\eta}, \quad (22) $$

where $\boldsymbol{\eta} = [0 \ 0 \ 1]^T$. Then, after the appropriate matrix multiplications, this equation can be converted to the form

$$ \mathbf{u} = \mathbf{P}(\mathbf{q})_{3 \times 3} \cdot \mathbf{w}, \quad (23) $$

where

$$ \mathbf{w} = [{}^{\mathrm{PF}}\mathbf{T}_{WB} \cdot \mathbf{W}]_{3 \times 3} \cdot \boldsymbol{\eta}, \quad \mathbf{u} = [{}^0\mathbf{T}_{PB}]_{3 \times 3}^{\mathrm{T}} \cdot {}^0\mathbf{W}_R \cdot \boldsymbol{\eta} $$

and the subscript “3 × 3” means the upper left 3 × 3 submatrix of the corresponding homogenous matrix (i.e. its orthogonal rotational part).

Further expansion of $\mathbf{P}(\mathbf{q})$ in accordance with (12) and relevant regrouping yields

$$ [\mathbf{R}_y(-\alpha) \cdot \mathbf{R}_x(-q_1) \mathbf{R}_y(\alpha)]_{3 \times 3} \cdot \mathbf{u} = [\mathbf{R}_z(q_2)]_{3 \times 3} \cdot \mathbf{w}, \quad (24) $$

or, in a detailed form,

$$ \begin{bmatrix} (1 - S_{\alpha}^2 V_1) & & & \\ & -\frac{S_{\alpha}S_1}{C_1} & & \\ & -\frac{S_{\alpha}S_1}{C_{\alpha}V_1} & -\frac{C_1}{C_{\alpha}S_1} & \\ & & -\frac{C_{\alpha}C_1V_1}{(1 - C_{\alpha}^2 V_1)} & \end{bmatrix} \cdot \begin{bmatrix} u_x \\ u_y \\ u_z \end{bmatrix} = \begin{bmatrix} C_2 & -S_2 & 0 \\ S_2 & C_2 & 0 \\ 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} w_x \\ w_y \\ w_z \end{bmatrix}. $$

It leads to the following scalar equations:

$$ \begin{aligned} (1 - S_{\alpha}^2 V_1)u_x + S_{\alpha}S_1u_y + S_{\alpha}C_{\alpha}V_1u_z &= C_2w_x - S_2w_y, \\ -S_{\alpha}S_1u_x + C_1u_y + C_{\alpha}S_1u_z &= S_2w_x + C_2w_y, \\ S_{\alpha}C_{\alpha}V_1u_x - C_{\alpha}S_1u_y + (1 - C_{\alpha}^2 V_1)u_z &= w_z \end{aligned} \quad (25) $$

from which the third one can be transformed to the form

$$ C_{\alpha}u_{xz} \cdot C_1 + C_{\alpha}u_y \cdot S_1 = (u_z - w_z) + C_{\alpha}u_{xz} $$

and solved for $q_1$:

$$ q_1 = \operatorname{atan2} \frac{u_y}{u_{xz}} \pm \operatorname{acos} \frac{(u_z - w_z) + C_{\alpha}u_{xz}}{C_{\alpha} \cdot \sqrt{u_{xz}^2 + u_y^2}}, \quad (26) $$

where $u_{xz} = S_{\alpha}u_x - C_{\alpha}u_z$.

It should be noted that these two alternative solutions for $q_1$ correspond to different “configurations” of the positioner, which are strictly defined below. Besides, both the solutions must be adjusted to the feasible interval $(-\pi, \pi]$, since the sum of a tan 2(.) and a cos(.) can be out of the mentioned limits.

To find the value of $q_2$, let us consider the first two equations of system (25) and solve them for $C_2$ and $S_2$:

$$ \begin{aligned} C_2 &= (w_x \cdot v_x + w_y \cdot v_y)/(w_x^2 + w_y^2), \\ S_2 &= (w_x \cdot v_y - w_y \cdot v_x)/(w_x^2 + w_y^2), \end{aligned} \quad (27) $$

where

$$ v_x = u_x + S_\alpha(S_1 u_y - V_1 u_{xz}), \quad v_y = C_1 u_y - S_1 u_{xz}. $$

It leads to the following expression for $q_2$:

$$ q_2 = \operatorname{atan2} \frac{w_x \cdot v_y - w_y \cdot v_x}{w_x \cdot v_x + w_y \cdot v_y}. \quad (28) $$

Therefore, Eqs. (26) and (28) represent the closed-form solution for the second inverse problem, which in the general case for given unit vectors $(\mathbf{u}, \mathbf{w})$ yields two pairs of the positioner axis angles $(q_1, q_2)$.

## 5.3. Solution existence and singularities

As follows from Eqs. (20), (21) and (26), (28), the inverse kinematic problems possess solutions for certain
sets of input data only which can be treated as the
positioner “orientation workspace”. So, for some inputs,
the computation may fail and a solution does not exist
(if, for instance, a cos argument is out of the interval
[-1; 1]). In other cases, the singularities arise if any value
of q₁ or q₂ satisfies the kinematic equation (if, for
example, both arguments of a tan 2 are equal to zero).

For the first inverse problem, a detailed investigation
of Eq. (20) shows that the value of q₁ can be definitely
computed if and only if

$$
-\cos(2\alpha) \le v_z \le 1. \tag{29}
$$

Taking into account the geometrical meaning of $v_z$, which is the scalar product of the unit vectors extracted from the third rows of the orthogonal matrices $^0\mathbf{W}_R$ and $[^{\mathrm{PF}}\mathbf{T}_{WB} \cdot \mathbf{W}_R]_{3 \times 3}$ (see Eqs. (17), (18)), and denoting

$$
v_z = \cos(\chi), \quad \chi \in [0; \pi] \tag{30}
$$

this condition can be presented as follows:

**Proposition 1a.** For Inverse Problem 1, the values of $q_1$ can be computed definitely from expression (20) if and only if the angle $\chi$ between Z-axes of the conjugate frames $^0\mathbf{W}_R^\mathrm{T}$ and $[^{\mathrm{PF}}\mathbf{T}_{WB} \cdot \mathbf{W}_R]_{3 \times 3}^\mathrm{T}$ describing, respectively, the desired world orientation of the weld joint and its orientation relative to the positioner faceplate is less than $(\pi - 2\alpha)$ or equal to it:

$$
0 \le \chi \le \pi - 2\alpha. \tag{31}
$$

For a typical industrial application case, when the Z-
axis of the workpiece frame is parallel to the positioner
Axis<sub>2</sub>, expression (29) can also be rewritten as

$$
v_z = -S_{\theta} \cdot n_w^z + C_{\theta} C_{\xi} \cdot s_w^z + C_{\theta} S_{\xi} \cdot a_w^z \ge -C_{2\alpha}. \quad (32)
$$

The corresponding value of $q_2$ is uniquely defined by
expression (21) if either its numerator or denominator is
not equal to zero. A detailed investigation of the
opposite case yields $v_z = 1$ and consequently $q_1 = 0$
(the case of $v_z = -1$ is excluded because of inequality
(29)). So, the existence and uniqueness of solutions for
$q_2$ are subject to the following proposition:

**Proposition 1b.** For Inverse Problem 1, the value of $q_2$ (for given $q_1$) can be computed uniquely from Eq. (21) if and only if the Z-axes of the conjugate frames $^0\mathbf{W}_R^\mathrm{T}$ and $[^{\mathrm{PF}}\mathbf{T}_{WB} \cdot \mathbf{W}_R]_{3 \times 3}^\mathrm{T}$ are not coincide, i.e. $\chi > 0$. Otherwise, if these axes coincide (i.e. $\chi = 0$), then $q_1 = 0$ and any value of $q_2$ satisfies the kinematic equation.

Therefore, for the first inverse problem, the singular-
ity exists only with respect to the positioner Axis<sub>2</sub>, while
it is oriented strictly vertically and upward (i.e. when
$q_1 = 0$).

However, for the second inverse problem, the singu-
larity may also arise for Axis₁. As follows from the
analysis of Eq. (26), the a tan 2 function is indefinite if

$u_{xz} = 0$ and $u_y = 0$. Moreover, the corresponding kinematic equations are converted to the identity, if $u_z = w_z$. So any value of $q_1$ is a solution for such input data. The corresponding condition can also be presented as the parallelism of the vector **u** and **Axis**₁, as well as the equality for the z-components of **u** and **w**, i.e.

$$
\mathbf{u} = [\pm C_{\alpha} \quad 0 \quad \pm S_{\alpha}]^{\mathrm{T}}, \quad \mathbf{v} = [* \ \ * \ \pm S_{\alpha}]^{\mathrm{T}}. \quad (33)
$$

To ensure definite computing of $q_1$, it is additionally
required that the a cos argument in Eq. (26) belongs to
the interval [-1; 1]. After appropriate rearranging, this
condition can be presented as

$$
|S_{\alpha}(C_{\alpha}u_{x} + S_{\alpha}u_{z}) - w_{z}| \le C_{\alpha}\sqrt{1 - (C_{\alpha}u_{x} + S_{\alpha}u_{z})^{2}}.
$$

After denoting the angles between the vectors **u**, **v** and
the **Axis**₁, **Axis**₂, respectively, as **μ**, **η**

$$
C_{\alpha}u_{x} + S_{\alpha}u_{z} = \cos(\mu), \quad w_{z} = \cos(\eta), \qquad (34)
$$

and assuming that $(\mu, \eta) \in [0; \pi] \times [0; \pi]$, this inequality
can be rewritten as

$$
\sin(\alpha - \mu) \le \cos(\mu) \le \sin(\alpha + \mu). \tag{35}
$$

This yields the following domain for (μ, η):

$$
\begin{align}
& \mu + \alpha - \pi/2 \le \eta \le \mu - \alpha + \pi/2, \nonumber \\
& -\mu - \alpha + \pi/2 \le \eta \le -\mu + \alpha + 3\pi/2. \tag{36}
\end{align}
$$

So, the results for $q_1$ can be summarised as follows:

**Proposition 2a.** For Inverse Problem 2, the values of $q_1$ can be computed definitely from expression (26) if and only if the angles $\mu, \eta$ between the positioner $\text{Axis}_1$, $\text{Axis}_2$ and the vectors $\mathbf{u}, \mathbf{w}$, respectively, satisfy inequalities (36) and, additionally, $\mu \ne 0$ and $\pi$. Otherwise, if $(\mu, \eta) = (0, \pi/2 \pm \alpha)$, any value of $q_1$ satisfies the kinematic equation.

As follows from Fig. 8, the highest “reachability” in
the positioner **u**-space is achieved for $\eta \in [\pi/2 - \alpha; \pi/2 + \alpha]$. And, in contrast, if $\eta = 0$ or $\pi$, the “workspace” is
reduced to a single cone with the parameter $\mu = \pi/2 - \alpha$ or $\pi/2 + \alpha$.

<figure><img src="image_10.png" /><figcaption>Fig. 8. The reachable region on the $(\mu, \eta)$ plane.</figcaption></figure>
In accordance with Eq. (26), computing of $q_2$ can fail only in the case of $w_x = w_y = 0$, i.e. for $\eta = 0$ or $\pi$. Geometrically, it corresponds to the vector **w**, which is normal to the positioner faceplate and, consequently, cannot be alternated by rotation around the Axis2. So, the existence and uniqueness of solutions for $q_2$ are subject to the following proposition:

**Proposition 2b.** For Inverse Problem 2, the value of $q_2$ (for given $q_1$) can be computed uniquely from expression (27), if and only if the angle $\eta$ between the positioner Axis2 and the vectors **w** satisfies the conditions $\eta \neq 0$ and $\pi$. Otherwise, if $\eta = 0$ or $\pi$, any value of $q_2$ satisfies the kinematic equation (provided that the solution for $q_1$ exists).

Therefore, for the second inverse problem, the singularity may exist for both axes, when **u** is parallel to Axis1 or **w** is parallel to Axis2.

## 5.4. Positioner configurations

Similar to other manipulating systems, the positioner inverse kinematics is non-unique because of the existence of two solution branches (see “±” sign in Eqs. (20) and (26)). However, both the off-line programming and the real-time control require distinguishing between them to ensure continuity of the positioner motions. For this reason, the direct kinematics must yield an additional output, the configuration index $M = \pm 1$ describing the positioner posture, which is also used as an additional input for the inverse transformation, to produce a unique result.

For the first inverse problem, the configuration index is defined trivially (see Eq. (20)), as the sign of the coordinate $q_1$:

$$M_1 = \operatorname{sgn}(q_1). \qquad (37)$$

But for the second problem, such an index must identify the sign of the second term only (see Eq. (26)). So it should be defined as

$$M_2 = \operatorname{sgn}\left(q_1 - \operatorname{atan2}\left(\frac{u_y}{u_{xz}}\right)\right). \qquad (38)$$

From the geometrical point of view, the index $M_2$ indicates the relative location of two planes passing the Axis1. The first of them is obtained by rotating of the $X_0Z_0$-plane around Axis1 by the angle $q_1$. And the second plane is passed via Axis1 and the vector **u**. It should be also noted that the index $M_2$ substantially differs from the traditional one for robotics orientation index $M_5 = \operatorname{sgn}(q_5)$ (Canudas de Wit, Siciliano, & Bastin, 1996; Sciavicco & Siciliano, 1996), which describes the wrist configuration of the typical 6 d.o.f. manipulator.

## 5.5. Optimal orienting of the weld joint

As adopted by practising engineers, the optimal weld orientation is achieved when the approaching vector is strictly vertical and, consecutively, the weld direction vector lies in the horizontal plane, i.e. $(\theta, \xi) = (0, 0)$ and $^0s_w = [0 \ 0 \ 1]$. Let us investigate this particular case in details.

For both the inverse problems, substitution of the values $(\theta, \xi)$ and the vector $^0s_w$ into Eqs. (20), (21) and (26), (28) yields the similar result:

$$\begin{align}
q_1 &= \pm \operatorname{acos} \frac{s_w^z - S_\alpha^z}{C_\alpha^2}, \\
q_2 &= \operatorname{atan2} \frac{S_1 \cdot s_w^x - S_\alpha V_1 \cdot s_w^y}{S_1 \cdot s_w^y + S_\alpha V_1 \cdot s_w^x}. \tag{39}
\end{align}$$

So the condition of the solution existence (36) is reduced to

$$s_w^z \geq -C_{2\alpha} \quad \text{or} \quad \eta \leq \pi - 2\alpha. \qquad (40)$$

This means that the “working space” of the positioner does not include the cone with the downward directed central axis and the aperture angle $4\alpha$. And, thereby, the corresponding welds cannot be optimally oriented. But it can be proved that applying the first inverse problem with the input parameter

$$\xi' = \max\{0; 2\alpha + \eta - \pi\}, \qquad (41)$$

the orientation of such welds can be essentially improved and approached to the optimal one. The corresponding “suboptimal” solution is defined by the axis angles

$$q_1 = \pi, \quad q_2 = -\operatorname{atan2}(s_w^y/s_w^x), \qquad (42)$$

i.e. the exact equalities are achieved for the first and second equations of system (19), while for the third one the residual is minimised only. Another approach, which is based on the simultaneous optimisation of all residuals is presented in Appendix B.

## 5.6. Comparison with other techniques

The main contribution of this paper is the novel formulation and the closed-form solution of the inverse kinematic problem for the robotic positioner, which takes into account the complete orientation of the weld joint with respect to the gravity. Besides, a new, computationally more efficient, solution for the known inverse problem has been obtained which deals with only the partial definition of the weld orientation.

In comparison with other results, the proposed approach does not require a heuristic-based iterative search (Bolmsjö, 1987) or a solution of two quadratic equations and their root checking by a substitution (Nikoleris, 1990). In addition, the proposed definition of
the weld orientation allows investigating the permissible tolerances with respect to the optimal weld orientation.

## 5.7. Generalisation of the results

In the general case, the robotic welding station may also include a 3-axis or a 1-axis positioner which manipulates the workpiece. For the 3-axis positioner, the proposed model can be expanded by adding the rotational term $R_z(q_0)$ to the left-hand side of (12), which corresponds to $R_z(\psi)$ in (5). So the kinematic equations (17) and (22) can be analytically solved for $q_0$ after computing $q_1$ and $q_2$ provided that the additional constraint is imposed to resolve the redundancy. It should be also noted that the kinematics of the 3-axis positioner is similar (up to a certain degree) to the kinematics of a robotic wrist, which is studied in detail in Wampler (1989) and Pashkevich (1997). However, the wrist axes are usually perpendicular to each other, while the welding positioners are not subject to this constraint.

The direct kinematic model of the general 1-axis positioner can be easily derived from (12) and (16) by eliminating $Axis_2$ and setting $q_2 = 0$. However, because of limited capabilities of such machine, the inverse kinematic problems should be modified by replacing the exact equalities (18) and (23) with the residual minimisation condition. In this case, both the inverse problems are also resolved analytically. For instance, for the first inverse problem, the least-squares solution of Eq. (18)

$$[\mathbf{v}^T - \boldsymbol{\eta}^T \cdot \mathbf{P}(q_1)_{3 \times 3}] \cdot [\mathbf{v}^T - \boldsymbol{\eta}^T \cdot \mathbf{P}(q_1)_{3 \times 3}]^T \rightarrow \min_{q_1}, \quad (43)$$

after the unit vector and the orthogonal matrices multiplication yield

$$\boldsymbol{\eta}^T \mathbf{P}(q_1)_{3 \times 3} \mathbf{v} \rightarrow \max_{q_1} \quad (44)$$

that leads to the homogenous trigonometric equation

$$v_y \cdot C_1 + (S_\alpha v_x - C_\alpha v_z) \cdot S_1 = 0, \quad (45)$$

which is solved using the methodology applied above. (However, one of the two possible solutions must be rejected because it gives the maximum of (43) instead of the minimum; see Appendix A for details.)

The presented 2-axis positioner model can be also generalised by releasing the typical industrial constraint with respect to the $Axis_2$ that is assumed to be strictly vertical while $q_1 = 0$. This generalisation can be done by replacing the matrix product $R_y(-\alpha)R_x(-q_1)R_y(\alpha)$ in Eq. (12) by $R_y(-\alpha_1)R_x(-q_1)R_y(\alpha_2)$ that courses only a slight modification of the analytical expressions describing the kinematic models.

# 6. Industrial implementation

The algorithms developed here have been successfully implemented on the manufacturing floor, as a novel component of the ROBOMAX CAD package (Buran Co, Russia-USA). This package is a powerful integrated system for the computer-aided design and the off-line programming of the welding robotic cells (Kurkin, Kukareko, & Pashkerich, 1998). The core of ROBOMAX has been developed in Robotic Laboratory of BSUIR (Minsk, Belarus) in cooperation with several other technical universities, and now the package has been widely used in the Russian automotive industry. In particular, it has been successfully applied by leading Russian automotive companies, e.g. for the manufacturing line design for the LADA cars and the GAZEL lorries and mini-vans (Lobzin et al., 1999). In contrast to other robotic CAD packages, which employ a lot of interactive tools, ROBOMAX incorporates a number of numerical routines which enable the user to design the welding robotic cells (lines) in the semi-automatic mode. In particular, it includes the software tools for the automatic robot placement, distribution of the weld joints among the robots and optimisation of the robotic cell layout. It should be stressed that all the above-mentioned tools require fast and reliable coordinate transformations for the welding positioner which have been considered in this paper.

Thus, using the proposed direct and inverse kinematic routines, the designer can optimise the spatial location of both a single weld and a collection of welds. In the case of a single weld, the user can directly input the desired angles $(\theta, \xi)$ to obtain the coordinates $(q_1, q_2)$ or, alternatively, he can choose these coordinates in the interactive mode, picking a point from the plots (Figs. 9 and 10) describing the functions $\theta(q_1, q_2)$, $\xi(q_1, q_2)$ or $\xi'(q_1, q_2)$. For the collection of the weld joints, the positioner kinematic models are employed in the Pareto-optimisation algorithm that yields a compromise solution, optimising the orientation of the “worst welds” from the given set. The developed routines are also

<figure><img src="image_11.png" /><figcaption>Fig. 9. 3D plot of the function $\xi'(q_1, q_2)$.</figcaption></figure>
<figure><img src="image_12.png" /><figcaption>Fig. 10. The contour plot of the function $\xi'(q_1, q_2)$.</figcaption></figure>

utilised for the weld clustering, i.e. for dividing them in
groups that are processed separately, for different
positioner postures.

As reported by the manufacturing experts from the
GAZ Company (Lobzin et al., 1999), ROBOMAX has
been successfully applied to the design of four welding
lines (consisting of 35 robots) for the lorry production of
the Gazel family. The primary problems during the
design were the optimal robot placement, the manufac-
turing task clustering (i.e. distribution of 432 welds
among robots) and the off-line programming of the
corresponding robot-positioner systems. These pro-
blems were solved using the relevant ROBOMAX tools,
which utilise the kinematic routines that are discussed in
the paper. During the design, there were compared
several solutions created using different software
packages. The best of them was the ROBOMAX
solution, which required only 35 robots to fulfil the
manufacturing task (while the alternative designs
required at least 2 robots more). Besides, all of the 432
welds were accessible in the optimal (or sub-optimal)
orientation, while some of the alternative designs
required eliminating several welds from the robotic
processing (and, consequently, they were left for manual
welding). Hence, the developed technique has yielded
the solution, which ensure better quality because of the
proper workpiece orientation during the welding and
elimination of the manual operations.

The recent application of ROBOMAX is the design of
a robotic welding station for a new LADA car
(AutoVAZ Co, Russia). The station includes four
KUKA robots and a positioner with 7 d.o.f. (Fig. 11),
which is actually a combination of three 2-axis
positioners. The workpiece consists of two longerons,
two floor connectors, an engine mounting flange, and a
conductor plate with fixture jigs and clamps. The
manufacturing task was divided among the robots
taking into account the total length of the welds
(1120 mm), number of the overlap welding layers (both
straight and weaved), and the relative spatial location of

<figure><img src="image_13.png" /><figcaption>Fig. 11. Robotic station for the welding of the longerons.</figcaption></figure>

the weld joints. It resulted in the distribution of from 6
to 8 weld joints per robot. Then, using the ROBOMAX
“autoplace” tool, a primary layout of the robotic cell
was created, which takes into account the kinematic
capabilities of the relevant robot-positioner systems
separately. Then, in the final stage, the design was
optimised and verified for the complete workcell with
four robots and the positioner. The program in SRCL-
language was also created (Siemens Robot Control
Language) for the robot controllers with a cycle time of
23.3 s. As follows from the results of the industrial tests,
the proposed kinematic algorithms ensure the required
properties of the weld joint orientation during the
processing, and allow to avoid the kinematic singula-
rities which are difficult to eliminate while using other
techniques.

7. Conclusions

The developed technique allows to coordinate move-
ments of two manipulators (the robot and the posi-
tioner) taking into account the particularities of the
welding technology. Combining their kinematic descrip-
tions with technological knowledge, it becomes possible
to implement the multi-level control and to plan the
optimal weld path for both the linear and the circular
joints (or piecewise linear/circular ones). By using this
technique together with the workpiece CAD-data, it is
also possible to achieve an essential time reduction of
the design and programming for the robotic welding
station.

The particular contribution of this paper deals with
the inverse kinematics of the 2-axis positioner, which is a
key issue in the coordinated kinematic control of the
welding robotic system. It has been proposed the novel
formulation and the closed-form solution of the inverse
problem that deals with the explicit definition of the
weld joint orientation relative to the gravity. Similar
results have been also obtained for the known problem
statement (Bolmjo and Nikoleris) that is based on the unit vector transformation. For both the cases, a detailed investigation of the singularities and the uniqueness-existence topics have been carried out.

The obtained results have been implemented in the commercial software that is already used in the Russian automotive industry. These results will also encourage further research in the task-level control of the welding robotic systems, such as optimising of the weld sequence and the optimal weld joint clustering in accordance with the dynamic capabilities of the robot and the positioner.

## Acknowledgements

The authors gratefully acknowledge Vladimir Markov and Sergej Marmuzevich (Buran Co, Moscow) for their support and collaboration in the industrial implementation of the work leading to this paper. They also appreciate the financial support of the INTAS through the project 2000-757.

## Appendix A. Inverse problems for the 1-axis positioner

As mentioned in Section 5.7, the developed technique can be also applied to the case of the 1-axis positioner, which is used in some industrial applications. However, it should be taken into account that because of the lack of the degrees of freedom, the 1-axis positioner is not able to provide a complete required weld orientation (in the general case). So, for such machines, the inverse kinematic problems can be stated in a modified form, as a minimisation of the corresponding residuals of the kinematic equations.

### A.1. Solution of the first inverse problem

For the first problem, Eq. (18) must be replaced by the expression

$$[\mathbf{v}^{\mathrm{T}} - \boldsymbol{\eta}^{\mathrm{T}} \cdot \mathbf{P}(q_1)_{3 \times 3}] \cdot [\mathbf{v}^{\mathrm{T}} - \boldsymbol{\eta}^{\mathrm{T}} \cdot \mathbf{P}(q_1)_{3 \times 3}]^{\mathrm{T}} \rightarrow \min_{q_1},$$

which after the multiplication and rearranging (and taking into account that $\mathbf{v}^{\mathrm{T}}\mathbf{v} = 1$, $\boldsymbol{\eta}^{\mathrm{T}}\boldsymbol{\eta} = 1$ and $\mathbf{PP}^{\mathrm{T}} = \mathbf{I}$) is reduced to

$$\boldsymbol{\eta}^{\mathrm{T}} \mathbf{P}(q_1)_{3 \times 3} \mathbf{v} \rightarrow \max_{q_1}.$$

The corresponding scalar form can be obtained directly from Eqs. (18) and (19):

$$C_{\alpha} S_{\alpha} V_{1} \cdot v_{x} + C_{\alpha} S_{1} \cdot v_{y} + (C_{1} + S_{\alpha}^{2} V_{1}) \cdot v_{z} \rightarrow \max_{q_1}.$$

Differentiating this expression with respect to $q_1$ yields the following equation:

$$v_y \cdot C_1 + (S_\alpha v_x - C_\alpha v_z) \cdot S_1 = 0$$

which in the non-singular case has two solutions but only one of them gives the desired minimum of the residual (provided that $\alpha \in (0; \pi/2)$):

$$q_1 = \tan 2v_y / (-S_\alpha \cdot v_x + C_\alpha \cdot v_z),$$

where all notations are taken from Section 5.1.

### A.2. Solution of the second inverse problem

For the second problem, Eq. (23) must be replaced by the expression

$$(\mathbf{u} - \mathbf{P}(q_1)_{3 \times 3} \cdot \mathbf{w})^{\mathrm{T}} \cdot (\mathbf{u} - \mathbf{P}(q_1)_{3 \times 3} \cdot \mathbf{w}) \rightarrow \min_{q_1}$$

which after corresponding transformation is reduced to

$$\mathbf{u}^{\mathrm{T}} \cdot \mathbf{P}(q_1)_{3 \times 3} \cdot \mathbf{w} \rightarrow \max_{q_1}.$$

For the 1-axis positioner, the rotational part of the homogenous matrix $\mathbf{P}(q_1)$ is the following:

$$\mathbf{P}(q_1) = \begin{bmatrix} C_1 + C_{\alpha}^2 V_1 & -S_{\alpha} S_1 & C_{\alpha} S_{\alpha} V_1 \\ S_{\alpha} S_1 & C_1 & -C_{\alpha} S_1 \\ C_{\alpha} S_{\alpha} V_1 & C_{\alpha} S_1 & C_1 + S_{\alpha}^2 V_1 \end{bmatrix}.$$

So, differentiating the objective function with respect to $q_1$ gives the following equation:

$$[u_x \quad u_y \quad u_z] \cdot \begin{bmatrix} -S_{\alpha}^2 S_1 & -S_{\alpha} C_1 & C_{\alpha} S_{\alpha} S_1 \\ S_{\alpha} C_1 & -S_1 & -C_{\alpha} C_1 \\ C_{\alpha} S_{\alpha} S_1 & C_{\alpha} C_1 & -C_{\alpha}^2 S_1 \end{bmatrix} \cdot \begin{bmatrix} w_x \\ w_y \\ w_z \end{bmatrix} = 0.$$

This is transformed to the scalar form

$$[(u_x w_y - u_y w_x)S_\alpha + (u_y w_z - u_z w_y)C_\alpha] \cdot C_1 + [(S_\alpha^2 u_x w_x + C_\alpha^2 u_z w_z) - (u_x w_z + u_z w_x)C_\alpha S_\alpha] \cdot S_1 = 0.$$

The obtained equation also has (in the non-singular case) two solutions, but only one of them gives the desired minimum of the residual:

$$q_1 = -\tan 2 \frac{(u_x w_y - u_y w_x)S_\alpha + (u_y w_z - u_z w_y)C_\alpha}{(S_\alpha^2 u_x w_x + C_\alpha^2 u_z w_z) - (u_x w_z + u_z w_x)C_\alpha S_\alpha}.$$

To prove this, it is necessary to present the objective function as a linear function of $C_1$ and $S_1$ and substitute both of the solutions to it.

### A.3. Optimal orienting of the weld joint

To find the solution for the special case, when the weld joint direction is horizontal and the welding torch is vertical, let us apply the second inverse problem solution with the input vector $\mathbf{u} = [0 \ 0 \ 1]^{\mathrm{T}}$. The direct substitution of these values gives (provided that $\alpha \in (0; \pi/2)$):

$$q_2 = \tan 2 \frac{w_y}{-(S_\alpha w_x - C_\alpha w_z)},$$

which looks similar to the general solution of the first inverse problem.
# Appendix B. Optimisation-based solution of the inverse problem for the 2-Axis positioner

As it is proved in Section 5.3, for the 2-axis positioner, for certain the set of input data, the exact solution of the inverse problem does not exist. So, in this case the inverse problems may be also reformulated in the similar way (see Appendix A), as the minimisation of the corresponding residuals.

## B.1. Solution of the first inverse problem

Similar to the 1-axis positioner case, the minimisation of the residual square sum is replaced by

$$J = \eta^T P(q_1, q_2)_{3 \times 3} v \rightarrow \max_{q_1, q_2}$$

whose corresponding scalar form is

$$J = (C_{\alpha}S_{\alpha}V_{1}C_{2} + C_{\alpha}S_{1}S_{2}) \cdot v_{x} + (C_{\alpha}S_{1}C_{2} - C_{\alpha}S_{\alpha}V_{1}S_{2}) \cdot v_{y} + (C_{1} + S_{\alpha}^{2}V_{1}) \cdot v_{z} \rightarrow \max_{q_{1}, q_{2}}$$

Differentiating this expression with respect to $q_1$ and $q_2$ yields the following system of equations:

$$(S_{\alpha}S_{1}C_{2} + C_{1}S_{2}) \cdot v_{x} + (C_{1}C_{2} - S_{\alpha}S_{1}S_{2}) \cdot v_{y} - (C_{\alpha}S_{1}) \cdot v_{z} = 0,$$

$$(-S_{\alpha}V_{1}S_{2} + S_{1}C_{2}) \cdot v_{x} - (S_{1}S_{2} + S_{\alpha}V_{1}C_{2}) \cdot v_{y} = 0,$$

which may be also presented as

$$(S_{\alpha}S_{1}v_{x} + C_{1}v_{y}) \cdot C_{2} + (C_{1}v_{x} - S_{\alpha}S_{1}v_{y}) \cdot S_{2} = C_{\alpha}S_{1}v_{z},$$

$$(S_{1}v_{x} - S_{\alpha}V_{1}v_{y}) \cdot C_{2} - (S_{\alpha}V_{1}v_{x} + S_{1}v_{y}) \cdot S_{2} = 0.$$

From the second equation, it can be obtained that

$$S_2 = \pm \frac{S_1 v_x - S_\alpha V_1 v_y}{\sqrt{S_1^2 + S_\alpha^2 V_1^2} \cdot \sqrt{v_x^2 + v_y^2}},$$

$$C_2 = \pm \frac{S_\alpha V_1 v_x + S_1 v_y}{\sqrt{S_1^2 + S_\alpha^2 V_1^2} \cdot \sqrt{v_x^2 + v_y^2}}$$

Substituting these expressions into the first equation gives

$$\frac{S_1(S_\alpha^2 V_1 + C_1)(v_x^2 + v_y^2)}{\sqrt{S_1^2 + S_\alpha^2 V_1^2} \cdot \sqrt{v_x^2 + v_y^2}} = \pm C_\alpha S_1 v_z.$$

Then, taking into account that $[v_x v_y v_z]^T$ is the unit vector and factoring out, the equation for $q_1$ can be transformed to

$$\frac{S_1}{\sqrt{S_1^2 + S_\alpha^2 V_1^2}} \cdot [(S_\alpha^2 V_1 + C_1)\sqrt{1 - v_z^2} \mp C_\alpha v_z \sqrt{S_1^2 + S_\alpha^2 V_1^2}] = 0.$$

Provided that $S_1 \neq 0$, the last equation can be rewritten as

$$(S_{\alpha}^2 V_1 + C_1) \sqrt{1 - v_z^2} = \pm C_{\alpha} v_z \sqrt{S_1^2 + S_{\alpha}^2 V_1^2}.$$

Then, after computing squares of both the sides and rearranging, it is transformed to the product

$$[v_z - (S_{\alpha}^2 V_1 + C_1)] \cdot [v_z - (S_{\alpha}^2 V_1 + C_1)] = 0$$

which gives two possible cases for root finding. The first of them, when $v_z = S_{\alpha}^2 V_1 + C_1$, corresponds to a straightforward solution of the kinematic equation and, obviously, yields a minimum of the residuals. While the second case, when $v_z = -(S_{\alpha}^2 V_1 + C_1)$, corresponds to the residual maximum.

In the singular case, when $S_1 = 0$, i.e. $q_1 \in \{0; \pi\}$, the objective function derivatives are equal to zero if

$$(S_2 v_x + C_2 v_y) \cdot C_1 = 0, \quad (S_2 v_x + C_2 v_y) \cdot V_1 = 0.$$

It gives two sub-cases to investigate, which are $q_1 = 0$ and $\pi$. If $q_1 = 0$ (i.e. $C_1 = 1$ and $V_1 = 0$), the value of the objective function $J$ is equal to $v_z$. Otherwise, if $q_1 = \pi$ (i.e. $C_1 = -1$ and $V_1 = 2$), the objective is equal to $(S_{2\alpha} - C_{2\alpha}v_z)$. Therefore, if the exact inverse kinematic solution does not exist (i.e. $v_z \le -C_{2\alpha}$), the optimization-based formulation yields

$$q_1 = \pi, \quad q_2 = -\tan 2(v_y/v_z).$$

The geometrical meaning of this result is the following: the welds that are directed “partially downward” must be “overturned” using the capabilities of $Axis_1$ and “approached” to the vertical line (i.e. the gravity) using the capabilities of $Axis_2$.

## B.2. Solution of the second inverse problem

Similar to the 1-axis positioner case, the minimisation of the residual square sum is replaced by the maximisation of

$$J = \mathbf{u}^T \cdot \mathbf{P}(q_1, q_2)_{3 \times 3} \cdot \mathbf{w} \rightarrow \max_{q_1, q_2}$$

and its scalar form can be presented as

$$J = [u_{x0} + S_{\alpha}(u_{xz}C_1 + u_yS_1)] \cdot [C_2w_x - S_2w_y] + [u_yC_1 - u_{xz}S_1] \cdot [S_2w_x + C_2w_y] + [u_{z0} - C_{\alpha}(u_{xz}C_1 + u_yS_1)] \cdot w_z,$$

where

$$u_{xz} = S_{\alpha}u_x - C_{\alpha}u_z, \quad u_{x0} = u_x - S_{\alpha}u_{xz},$$

$$u_{z0} = u_z + C_{\alpha}u_{xz}.$$

Computing of the derivatives with respect to $q_1$ and $q_2$ yields the following system of equations:

$$(a_1 C_1 + a_2 S_1) C_2 + (a_3 C_1 - a_4 S_1) S_2 = -b_1 C_1 + b_2 S_1,$$

$$(b_3 + a_4 C_1 + a_3 S_1) C_2 + (b_4 + a_2 C_1 - a_1 S_1) S_2 = 0,$$
where

$$a_1 = u_{xz}w_y - S_\alpha u_y w_x, \quad a_2 = S_\alpha u_{xz}w_x + u_y w_y,$$

$$a_3 = u_{xz}w_x + S_\alpha u_y w_y, \quad a_4 = S_\alpha u_{xz}w_y - u_y w_x,$$

$$b_1 = C_\alpha u_y w_z, \quad b_2 = C_\alpha u_{xz} w_z, \quad b_3 = u_{x0} w_y,$$

$$b_4 = u_{x0} w_x.$$

From the second equation it can be obtained that

$$S_2 = \mp \frac{b_3 + a_4 C_1 + a_3 S_1}{R}, \quad C_2 = \pm \frac{b_4 + a_2 C_1 - a_1 S_1}{R},$$

where

$$R^2 = [D - C_\alpha^2 B^2 + 2S_\alpha u_{x0}B] \cdot (w_x^2 + w_y^2),$$

$$D = u_{xz}^2 + u_y^2 + u_{x0}^2, \quad B = u_{xz} C_1 + u_y S_1.$$

Substituting these expressions into the first equation gives

$$\frac{C_{\alpha}^{2}AB - S_{\alpha}Au_{x0}}{\sqrt{B - C_{\alpha}^{2}B^{2} + 2S_{\alpha}u_{x0}B}} \sqrt{1 - w_{z}^{2}} = C_{\alpha}Aw_{z},$$

$$\text{where } A = u_y C_1 - u_{xz} S_1.$$

Then, after computing squares of both the sides and rearranging, it is transformed to the product, which gives three cases for root finding:

$$C_{\alpha}^{2}B - S_{\alpha}u_{x0} = \mp C_{\alpha}w_{z} \quad \text{and} \quad A = 0.$$

The first of them, with the “minus” sign, corresponds to a straightforward solution of the kinematic equation and, obviously, yields a minimum of the residuals. While the second case, with the “plus” sign, corresponds to the residual maximum.

If $A = 0$ and, correspondingly,

$$q_1 = \operatorname{atan} 2(\pm u_y / \pm u_{xz}),$$

the objective function derivatives are equal to zero if

$$(u_{x0} + \sqrt{u_{xz}^2 + u_y^2}) \cdot (C_2 w_y + S_2 w_x) = 0.$$

Therefore, the second angle can be expressed as

$$q_2 = \operatorname{atan} 2(\mp w_y / \pm w_x).$$

It gives four sub-cases to choose the right combination of the signs “±”, depending on the particular vectors **u** and **w**. The geometrical meaning of this result is the following: first, the vector **w** must be rotated around **Axis**₂ to be located in the plane $X_0Z_0$; then, it should be rotated around **Axis**₁ to achieve the same angle with respect to this plane as the vector **u**.

## References

Bolmsjö, G. (1987). A kinematic description of a positioner and its application in arc welding robots. *Proceedings of the second international conference on developments in automated and robotic welding*, paper no. 2. London: The Welding Institute.

Bolmsjö, G. (1999). Programming robot welding systems using advanced simulation tools. *Proceedings of the international conference on the joining of materials: JOM-9, Helsingør, Denmark* (pp. 284–291).

Bolmsjö, G., & Nikoleris, G. (1993). Task planning for welding applications. *Proceedings of the IEEE international conference on systems, man and cybernetics—systems engineering in the service of humans*, vol. 1, Le Touchet, France (pp. 515–519).

Canudas de Wit, C., Siciliano, B., & Bastin, G. (1996). *Theory of robot control*. Berlin: Springer.

Craig, J. (1989). *Introduction to robotics, mechanics and control*. Reading, MA: Addison-Wesley Publication.

DeMers, D., & Kreutz-Delgado, K. (1997). Inverse kinematics of dexterous manipulators. *Neural systems for robotics* (pp. 75–116). New York: Academic Press.

Fu, K. S., Gonzalez, R. C., & Lee, C. S. G. (1987). *Robotics: Control, vision and intelligence*. New York: McGraw-Hill.

Hsu, P. (1993). Coordinated control of multiple manipulator systems. *IEEE Transactions on Robotics and Automation*, 9(4), 400–410.

Kauschke, M. (1996). Closed form solutions applied to redundant serial link manipulators. *Mathematics and Computers in Simulation*, 41, 509–516.

Kurkin, N. S., Kukareko, E. P., & Pashkevich, A. P. (1998). Software package ROBOMAX for the computer-aided design of the welding manufacturing lines. *Handbook—Engineering Journal*, 8(1), 33–37 (in Russian).

Lee, H. Y., Woernle, C., & Hiller, M. (1991). A complete solution for the inverse kinematic problem of the general 6R robot manipulator. *ASME Journal of Mechanical Design*, 113, 481–486.

Lobzin, N. I., Lokshin, S. M., Kulikov, S. M., Kurkin, N. S., Legezo, A. A., Markov, V. A., & Marmuzevich, S. S. (1999). Application of Robomax CAD package for the development of welding and assembling robotic lines for the cabin of the Gazel lorry. In A. V. Kazakov (Ed.), *Russian welding industry*, Mashinostroenije, Moscow, Russia, No. 4 (pp. 24–29) (in Russian).

Nikoleris, G. (1990). A programming system for welding robots. *International Journal for the Joining of Materials*, 2(2), 55–61.

Nikoleris, G., Bolmsjö, G., Olsson, M., & Brink, K., (1994). Task oriented programming and control. *Proceedings of the European robotics and intelligent systems conference, EURISCON 94*, Malaga, Spain, August, 1994 (pp. 840–845).

Pashkevich, A. P. (1996). *Computer-aided design of industrial robots and robotic cells for assembling and welding* (107pp). Minsk, Belarus: Belorusian State University of Informatics and Radio-Eleelectronics (Russian).

Pashkevich, A. (1997). Real-time inverse kinematics for robots with offset and reduced wrist. *Control Engineering Practice*, 5(10), 1443–1450.

Perdereau, V., & Drouin, M. (1996). Hybrid external control for two robot coordinated motion. *Robotica*, 14, 141–153.

Sciavicco, L., & Siciliano, B. (1996). *Modeling and control of robot manipulators*. New York: McGraw-Hill.

Wampler, C. W. (1989). Inverse kinematic functions for redundant spherical wrists. *IEEE Transactions on Robotics and Automation*, 5(1), 106–111.