Keywords

1 Introduction

There is a many possibilities how to make the composite materials and how to use it. Some analyses and, case studies and material properties are presented in [1, 2]. Composites are used in many areas, like in automotive industry, aircraft industry [3] or in space industry [4]. Specific area of composites production technologies are technologies, which uses the robots for fibers placing. Robots allows to produce specific composite products very effective [3]. In generally it is possible to use one of two different ways, how to make a composite using robots. For products with large open surfaces is suitable to use a prepreg tape. It is possible to activate the prepreg tape by pressure and temperature immediately after placement [5] and it is no needed moulding anymore. This article will discuss the other way, the winding technology. It follows the article [6], where winding technology is described. The computation method for offline trajectory planning and practical example with open-shaped core is also described in [6]. In this article we will discuss how to use this method for core with closed-frame shape.

First advantage of used method is fact, that it can be used in many program languages and development environments (because it is simple and it don’t need special mathematical libraries or computation performance). Second great advantage is that we can generate variables, which are necessary to control the technology itself. In our case we needed to control also robots external axes. This three axes are to control of the winding speeds of three independent guide lines with coils (see Fig. 1). Positions of this guide lines along the main core defines the winding angles of fibers in all of three layers.

Fig. 1
figure 1

Picture (on left side) and diagram (on the right side) of the winding solution principle of the working head: 1 non sliding core, 2, 3, 4 rotating guide lines with coils for winding at desired angles, 5 guiderings, and 6 moving core for winding controlled by the robot

2 Trajectory Calculation

In the first step of algorithm is necessary to find such set of transformations (translational and rotational), which ensures identity between the vectors (h1, h2) and (b1, b2) for selected point Bi (see Fig. 2). The final transformation is generally the product of translated matrix \( {\mathbf{L}}_{i} \) and rotation matrix \( {\mathbf{Q}}_{i} \), i.e.

$$ {\mathbf{T}}_{i} = {\mathbf{L}}_{i} \cdot {\mathbf{Q}}_{i} . $$
(1)
Fig. 2
figure 2

Geometric scheme of the working head (on the left) and cross-section of the core (on the right)

We perform the calculation of the Euler angles of effector local coordinate system rotation in relation to robot basic coordinate system by decomposition of matrix \( {\mathbf{T}}_{i} \). Each rotation matrix can be written as a product of the matrices of rotation around the coordinate axes z, y and x, i.e.

$$ {\mathbf{Q}}_{i} = {\mathbf{Rot}}\left( {z,\,a_{i} } \right) \cdot {\mathbf{Rot}}\,(y,\;b_{i} ) \cdot {\mathbf{Rot}}(x,\;c_{i} ) $$
(2)

where matrices \( {\mathbf{Rot}}\,(z,a), \) \( {\mathbf{Rot}}\,(y,b) \) and \( {\mathbf{Rot}}\,(x,c) \) are in form

$$ \begin{aligned} {\mathbf{Rot}}(z,a_{i} ) & = \left( {\begin{array}{*{20}c} {\cos a_{i} } & { - \sin a_{i} } & 0 & 0 \\ {\sin a_{i} } & {\cos a_{i} } & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} } \right),\;{\mathbf{Rot}}(y,b_{i} ) = \left( {\begin{array}{*{20}c} {\cos b_{i} } & 0 & {\sin b_{i} } & 0 \\ 0 & 1 & 0 & 0 \\ { - \sin b_{i} } & 0 & {\cos b_{i} } & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} } \right), \\ {\mathbf{Rot}}(x,c_{i} ) & = \left( {\begin{array}{*{20}c} 1 & 0 & 0 & 0 \\ 0 & {\cos c_{i} } & { - \sin c_{i} } & 0 \\ 0 & {\sin c_{i} } & {\cos c_{i} } & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} } \right) \\ \end{aligned} $$

and a, b, c are the corresponding Euler angles. We note that the determination of Euler angles a, b and c is not unique [6]. Euler angles of rotation matrix

$$ {\mathbf{Q}}_{i} = \left( {\begin{array}{*{20}c} {q_{11} (i)} & {q_{12} (i)} & {q_{13} (i)} & 0 \\ {q_{21} (i)} & {q_{22} (i)} & {q_{23} (i)} & 0 \\ {q_{31} (i)} & {q_{32} (i)} & {q_{33} (i)} & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} } \right) $$

can be determined by following relations (in detail see [6])

$$ \begin{aligned} a_{i} & = ATAN2\left( {q_{21} (i),\,q_{11} (i)} \right), \\ b_{i} & = ATAN2\left( { - q_{31} (i),\,q_{11} (i)\cos a_{i} + q_{21} (i)\sin a_{i} } \right), \\ c_{i} & = ATAN2\left( {q_{13} (i)\sin a_{i} - q_{23} (i)\cos a_{i} ,\,} \right.\left. {q_{22} (i)\cos a_{i} - q_{12} \sin a_{i} } \right). \\ \end{aligned} $$
(3)

When calculating the angles of rotations a i , b i and c i in relation (3) we use the ATAN2 function (part of the library of most programming languages), which calculates the value of the function arctangent for argument \( {{arg_{1} } \mathord{\left/ {\vphantom {{arg_{1} } {arg_{2} }}} \right. \kern-0pt} {arg_{2} }} \) from two input parameters \( arg_{1} \) and \( arg_{2} \). Moreover, the signs of both input parameters are used to determine the quadrant in which the resulting value function is located (it is valid that \( - \pi < {\text{ATAN2}}(arg_{1} ,arg_{2} ) \le \pi \)).

Based on the knowledge of the translated matrix L i and Euler angles we can determine a new tool-center-point position \( TCP_{i} \). This position contains six values—three coordinates in Cartesian system (X, Y and Z) and three rotation angles (A, B and C). This values we can store in the robot native language. Described routine must be done for each of B i points, 1 ≤ i ≤ N. Range for variable N depends on the length of the axis o of the core and also on the distance between points (see [6]).

3 Practical Example

The considered composite with the closed frame-shaped profile (see Fig. 3a) serves for fastening of the window to the fuselage of the helicopter. This core is only 2D shape, so it is easy to show and understand how the algorithm works. But in general it is possible to use it also for 3D complicated shapes.

Fig. 3
figure 3

Closed-frame-core—the sizes (on the left) and in the frame core connected to the robot-end-effector (on the right)

Fig. 4
figure 4

Diagram showing the course of the TCP during the passage of the frame through the fibre-processing head—values of the first three parameters (on the left side) and values of the TCP angles (on the right side)

There are the basic measurements of the core on Fig. 3 and also there are marked values of the l variable. This variable is distance between start point B 1 (where l = 0, see Fig. 3a) and the selected point B i . Distance is measured along the axis o. This variable helps us to determine proper positions of the guide lines with fiber coils (which are connected as an external axis of the robot). The winding angles and core diameter are given, so we can easily evaluate the external axis position for each B i point, using l value for this point.

We used described algorithm of robot-end-effector trajectory calculation and generated source code in robot language. For our example we used a KUKA KR16 robot with KUKA KRC 4 controller. We implemented the algorithm in Delphi (Pascal language) and we generated source code in KRL (KUKA Robot Language). Generated code we tested in the KUKA Sim Pro software simulator first (see Fig. 5) and then on the robot in laboratory (see Fig. 3b). Obtained values are visualised on Fig. 4.

Fig. 5
figure 5

Graphic simulation of the position of the robot and the frame during winding at selected points of the trajectory

4 Conclusions

The described algorithm allows offline calculating the 3D trajectory of the robot-end-effector of the industry robot during the production of composites using the dry fiber winding technology on a core. The algorithm can be applied to any manufacturing process where it is necessary to determine the 3D trajectory of a robot-end-effector. Especially, this algorithm can be successfully used in the industrial production of specific composites, where is necessary to generate also trajectory for external equipment. The use of the described algorithm is completely independent of the type of production robot and software tools. The procedure for determining the trajectory of the robot-end-effector induces virtually no additional costs to the manufacturer and can significantly speed up the determination of the desired trajectory of the robot-end-effector.