Keywords

1 Introduction

Because of high flexibility and low cost, industrial robot is widely used in aerospace manufacturing, such as aircraft skin milling, blade grinding [1], and wing drilling [2]. However, compared with CNC machine tool, the problem of relative low positioning accuracy and stiffness still exists on the robot. Research [3] shows that both joint parameters and stiffness take a major influence on the positioning accuracy. As for aerospace parts, they usually require high machining accuracy. In addition, they are usually made of some hard processing materials such as stainless steel, titanium alloy and superalloy. When processing these materials, the robot may suffer serious deformation in the end-effector. Therefore, improving the stiffness and positioning accuracy becomes more important to extend the application of robotic aerospace manufacturing.

Many works have been developed around the positioning accuracy and stiffness. As for the positioning accuracy, it is mainly improved by error compensation and posture optimization. When the robot is in the empty load, the joint parameters errors are the main cause of positioning accuracy. Based on genetic algorithm, a compensation method of positioning error is proposed by Dolinsky [4]. The position error in the end-effector is mapped and compensated to the joint parameters. Mitsi [5] optimizes the position of robot base frame by minimizing the objective function, which is defined as the sum of squared element difference between real and nominal \( 4 \times 4 \) transformation matrix expressed in the robot end frame. Because there are differences in the dimension of each element (rotation matrix and translation vector) in the transformation matrix, this method cannot directly reflect the influence of robot positioning accuracy.

The research on stiffness improvement is mainly concentrated on three aspects: stiffness compensation [6, 7], posture optimization [8, 9] and robot structure optimization [10]. Zargarhsh [8] points out that there is an optimal posture with maximum stiffness for robotic drilling. An optimization index is also proposed to select the redundancy freedom. Based on ten DoF robot, Ming [11] applies the differential evolution algorithm to find the optimal posture configuration with optimal stiffness. Using KUKA KR270-2 robot, Colleoni [12] optimizes the workpiece posture by minimizing the tool average displacement, where the objective function is based on cutting force model and robot stiffness.

These methods above are mainly based on the individual joint parameter error or joint stiffness to improve the machining quality. For the aeronautical parts milling, both joint parameter error and stiffness are the major two factors causing positioning error, due to hard processing materials and high demand of machining quality. In this paper, an optimization method of robot posture is proposed by minimizing the absolute average machining error in the robotic milling system. The proposed method directly considers the effect of both joint parameter error and stiffness on machining error, which accords with the actual machining condition. Based on robot kinematics, the relationship between machining error and joint parameter error under the empty load is derived. Then the stiffness affecting the machining error is analyzed. Finally, the simulation experiment using ABB 6660 robot to mill the aircraft skin is executed to verify the availability of the proposed method.

2 Model of Milling Robot

The schematic of robotic milling is shown in Fig.Ā 3. Before milling, the robot base frame {B} can move straight on the guide rail, but it is fixed during the milling process. The guide rail is located on the global frame {G} and is along the \( x_{G} \) axis direction. The milling tool defined in the tool frame {T} is fixed in the robot end frame {E}, and the milling axis is defined at the \( z_{T} \) axis direction. The workpiece frame {W} is attached to the edge of aircraft skin that is to be milled. The tool path consists of four segments AB, BC, CD and DA, which are generated by offsetting the edge with tool radius. The tool path is dispersed into n cutter location (CL) points \( \left\{ {\varvec{p}_{1} \text{,}\;\varvec{p}_{2} \text{,} \cdots \varvec{p}_{i} , \cdots ,\varvec{p}_{n} } \right\} \) where a CL frame \( \left\{ {\varvec{p}_{i} } \right\} \) is attached to each point \( \varvec{p}_{i} \). For point \( \varvec{p}_{i} \), the allowance depth direction and feed direction are along the \( x_{pi} \) and \( y_{pi} \) axes, respectively. Note that the kinematic equation from global frame {G} to CL frame \( \left\{ {\varvec{p}_{i} } \right\} \) is as follows

$$ {}_{W}^{G} \varvec{T}{}_{Pi}^{W} \varvec{T} = {}_{B}^{G} \varvec{T}{}_{E}^{B} \varvec{T}{}_{T}^{E} \varvec{T}{}_{Pi}^{T} \varvec{T} $$
(1)

where \( {}_{{\psi_{2} }}^{{\psi_{1} }} \varvec{T} \) define the \( 4 \times 4 \) homogeneous transformation matrix for frame \( \psi_{1} \) to \( \psi_{2} \). Note the following symbols (Figs.Ā 1 and 2).

Fig.Ā 1.
figure 1

Multicoordinate frames in robotic milling system

Fig.Ā 2.
figure 2

Rotation \( \alpha_{i} \) of tool around \( z_{T} \) axis.

Fig.Ā 3.
figure 3

62 CL points at the tool path for aircraft skin milling

  1. (1)

    Symbol \( {}_{B}^{G} \varvec{T} \) denotes the transformation from global frame {\( T \)} to robot base frame {B}. Defining symbol L as the moving distance of frame {B} on the guide rail, the matrix \( {}_{B}^{G} \varvec{T} \) can be written as

    $$ {}_{B}^{G} \varvec{T}\left( L \right) = \left[ {\begin{array}{*{20}c} 1 & 0 & 0 & L \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} } \right] $$
    (2)

    where distance L is a variable to be determined for posture optimization.

  2. (2)

    Symbol \( {}_{Pi}^{T} \varvec{T} \) denotes the transformation from tool frame {\( T \)} to frame \( \{ \varvec{p}_{i} \} \). When frame \( \{ T\} \) and \( \{ \varvec{p}_{i} \} \) coincides with each other \( \left( {{}_{Pi}^{T} \varvec{T} = \varvec{I}} \right) \), the point \( \varvec{p}_{i} \) can be milled in correct position. However, the tool can still rotate around its \( z_{T} \) axis without affecting the milling. Therefore, there is a kinematic redundancy called angle \( \alpha_{i} \), which corresponds to the rotation angel of tool about the axis \( z_{T} \) at point \( \varvec{p}_{i} \). Then the matrix \( {}_{Pi}^{T} \varvec{T} \) can be written as

    $$ {}_{pi}^{T} \varvec{T}\left( {\alpha_{i} } \right){ = }\left[ {\begin{array}{*{20}c} {\cos \,\alpha_{i} } & { - \sin \,\alpha_{i} } & 0 & 0 \\ {\sin \,\alpha_{i} } & {\cos \,\alpha_{i} } & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} } \right] $$
    (3)

Then the robot posture \( {}_{E}^{B} \varvec{T} \) can be represented as

$$ {}_{E}^{B} \varvec{T} = \left( {{}_{B}^{G} \varvec{T}\left( L \right)} \right)^{ - 1} {}_{W}^{G} \varvec{T}{}_{pi}^{W} \varvec{T}\left( {{}_{T}^{E} \varvec{T}{}_{pi}^{T} \varvec{T}\left( {\alpha_{i} } \right)} \right)^{ - 1} $$
(4)

Therefore, the robot posture \( {}_{E}^{B} T \) is decided by the angle \( \alpha_{i} \,\left( {i = 1,2, \cdots n} \right) \) and distance \( L \). Because both the joint stiffness and joint geometric parameter are related to the robot posture. They have a great impact on the machining accuracy. In the following, optimizing the robot posture and machining accuracy based on both joint stiffness and joint geometric parameters is presented.

3 Posture Optimization

3.1 The Objective Function

To optimize the robot posture for machining accuracy, the objective function is defined as

$$ \hbox{min} \quad F\left( {\alpha_{1} \varvec{,}\alpha_{2} , \cdots ,\alpha_{n} ,L} \right) = F_{a} \left( {\alpha_{1} \varvec{,}\alpha_{2} , \cdots ,\alpha_{n} ,L} \right) + F_{k} \left( {\alpha_{1} \varvec{,}\alpha_{2} , \cdots ,\alpha_{n} ,L} \right) $$
(5)

where symbols \( F_{a} \) is the absolute average of the machining error \( a_{qi} \left( {L,\alpha_{i} } \right) \) affected by the joint parameter error, and symbol \( F_{k} \) is the absolute average of the machining error \( a_{ki} \left( {L,\alpha_{i} } \right) \) affected by the stiffness. For n CL points, there are \( \left( {n + 1} \right) \) parameters \( \left( {\alpha_{1} ,\alpha_{2} , \cdots \alpha_{n} ,L} \right) \) to be determined. The objective function F reflects the overall machining quality. The smaller value \( F \) means small machining error. The advantages of the objective function F are as follows. (1) As the two major factors affecting machining error, the joint parameter error and joint stiffness are considered. (2) Error \( a_{qi} \) and \( a_{ki} \) have same geometric dimensions, and both of they directly reflect the relationship between machining error and joint parameter/stiffness.

3.2 Machining Error \( a_{qi} \) with Respect to Joint Parameters

According to the Denavit Harvenberg (D-H) model, joint parameters can be represented \( \varvec{q} = \left[ {\begin{array}{*{20}c} {\varvec{a}^{\text{T}} } & {\varvec{\gamma}^{\text{T}} } & {\varvec{d}^{\text{T}} } & {\varvec{\theta}^{\text{T}} } \\ \end{array} } \right] \) where \( \varvec{a}_{6 \times 1} \), \( \varvec{\gamma}_{6 \times 1} \), \( \varvec{d}_{6 \times 1} \) and \( \varvec{\theta}_{6 \times 1} \) are the vectors of link length, link angel, joint distance and joint angle, respectively. By calibrating the robot joint parameter [1], the joint parameter error \( \Delta \varvec{q} \) can be obtained. Using \( \Delta \varvec{q} \), the end posture error matrix in its end frame {E} can be written as

$$ {}^{E}\Delta = {}_{E}^{B} \varvec{T}^{ - 1} \left( {\Delta {}_{E}^{B} \varvec{T}} \right) = {}_{E}^{B} \varvec{T}^{ - 1} \left( {{}_{E}^{B} \varvec{T}\left( {\varvec{q + }\Delta \varvec{q}} \right) - {}_{E}^{B} \varvec{T}\left( \varvec{q} \right)} \right) $$
(6)

When the error \( \Delta \varvec{q} \) is small, the matrix \( {}^{E}\Delta \) corresponds to a posture error vector \( ^{E} \varvec{D}_{E} = \left[ {\begin{array}{*{20}c} {{}^{E}\varvec{d}_{E} } & {{}^{E}\varvec{\delta}_{E} } \\ \end{array} } \right]{}^{\text{T}} \) where \( {}^{E}\varvec{d}_{E} \) and \( {}^{E}\varvec{\delta}_{E} \) denote the \( 3 \times 1 \) vectors of position error vector and orientation error vector, respectively. Define the transformation from the frame \( \{ \varvec{p}_{i} \} \) to end frame {E} as \( {}_{E}^{pi} \varvec{T} = \left( {{}_{T}^{E} \varvec{T}{}_{pi}^{T} \varvec{T}} \right)^{ - 1} = \left[ {\begin{array}{*{20}c} {{}_{E}^{pi} \varvec{R}} & {{}^{pi}\varvec{p}_{Eo} } \\ {\mathbf{0}} & 1 \\ \end{array} } \right]. \) Then according to the velocity adjoint transformation of differential motion, the posture error of point \( \varvec{p}_{i} \) in its frame \( \{ \varvec{p}_{i} \} \) can be calculated as

$$ {}^{pi}\varvec{D}_{pi} = \left[ {\begin{array}{*{20}c} {{}_{E}^{pi} \varvec{R}} & {\left[ {{}^{pi}\varvec{p}_{Eo} } \right]{}_{E}^{pi} \varvec{R}} \\ {{\mathbf{0}}_{3 \times 3} } & {{}_{E}^{pi} \varvec{R}} \\ \end{array} } \right]{}^{E}\varvec{D}_{E} = \text{Ad}_{\text{V}} \left( {{}_{E}^{pi} \varvec{T}} \right){}^{E}\varvec{D}_{E} $$
(7)

where symbol \( {}^{pi}\varvec{D}_{pi} \) denotes a \( 6 \times 1 \) vector, symbol \( \text{Ad}_{\text{v}} \left( \bullet \right) \) denotes the operator of velocity adjoint transformation, and symbol \( \left[ {{}^{pi}\varvec{p}_{Eo} } \right]_{3 \times 3} \) denotes the antisymmetric matrix of vector \( {}^{pi}\varvec{p}_{Eo} \). The posture error of the workpiece origin in its frame {W} can also be written as \( {}^{W}\varvec{D}_{W} = \text{Ad}_{\text{V}} \left( {{}_{E}^{W} \varvec{T}} \right){}^{E}\varvec{D}_{E} \). Before milling, it is assumed that the origin of workpiece is selected to locate the tool. Therefore, it can be regarded as that the tool origin can reach the workpiece origin accurately. Based on the workpiece origin, the relative posture error of point \( \varvec{p}_{i} \) is defined as \( \Delta {}^{pi}\varvec{D}_{pi} \). Since the allowance depth direction is along the axis \( x_{pi} \), the machining error affected by the joint parameter error can be written as

$$ a_{qi} = \left( {\Delta {}^{pi}\varvec{D}_{pi} } \right)^{T} \varvec{D}_{x} $$
(8)

where \( \varvec{D}_{x} = \left[ {\begin{array}{*{20}c} 1 & 0 & 0 & 0 & 0 & 0 \\ \end{array} } \right]^{\text{T}} \) is a \( 6 \times 1 \) matrix. EquationsĀ (6, 7 and 8) build the relationship between joint parameter errors to machining error.

3.3 Machining Error with Respect to Stiffness

In this section, the machining error caused by robot joint stiffness is derived. Define six-dimension milling wrench at point \( \varvec{p}_{i} \) as \( {}^{pi}\varvec{F}_{i} \). The wrench \( {}^{pi}\varvec{F}_{i} \) is represented in the frame \( \{ \varvec{p}_{i} \} \). Assume that the tool is fully rigid without deformation. According to the force adjoint transformation, the force screw at the origin of end frame {E} can be written as

$$ {}^{E}\varvec{F}_{E} = \left[ {\begin{array}{*{20}c} {{}_{pi}^{E} \varvec{R}} & {\mathbf{0}} \\ {\left[ {{}^{E}\varvec{p}_{pio} } \right]{}_{pi}^{E} \varvec{R}} & {{}_{pi}^{E} \varvec{R}} \\ \end{array} } \right] = \text{Ad}\left( {{}_{pi}^{E} \varvec{T}} \right){}^{pi}\varvec{F}_{i} $$
(9)

where \( {}_{pi}^{E} \varvec{T} = \left[ {\begin{array}{*{20}c} {{}_{pi}^{E} \varvec{R}} & {{}^{E}\varvec{p}_{pio} } \\ {\mathbf{0}} & 1 \\ \end{array} } \right] \) is the transformation matrix, \( \text{Ad}\left( \bullet \right) \) is the operator of force adjoint transformation, and \( {}^{E}\varvec{F}_{E} \) is expressed in its end frame {E}. Wrench \( {}^{E}\varvec{F}_{E} \) can be converted to \( {}^{B}\varvec{F}_{E} \) that is expressed in the base frame {B}. According to the robot dynamics, the deformation at the origin of robot end frame can be written as

$$ {}^{B}\varvec{D}_{Eo} \varvec{ = }\left( {\varvec{JK}_{\theta }^{ - 1} \varvec{J}^{\text{T}} } \right){}^{B}\varvec{F}_{E} $$
(10)

where \( {}^{B}\varvec{D}_{E} \) is a \( 6 \times 1 \) matrix and is expressed in the base frame {B}. Symbol \( \varvec{J}{ = }\varvec{J}\left(\varvec{\theta}\right) \) denotes the space Jacobian matrix and is related to the robot posture \( \varvec{\theta} \). Symbol \( \varvec{K}_{\theta } = \text{diag}\left( {k_{1} ,k_{2} , \cdots ,k_{6} } \right) \) is the joint stiffness matrix where \( k_{j} \) denotes the stiffness value of the jth joint. By transferring the error vector \( {}^{B}\varvec{D}_{E} \) to be expressed in the end frame {E}, the error at point \( \varvec{p}_{i} \) in its frame \( \{ \varvec{p}_{i} \} \) can be written as \( {}^{pi}\varvec{D}_{pi} = \text{Ad}_{\text{V}} \left( {{}_{E}^{pi} \varvec{T}} \right){}^{E}\varvec{D}_{E} \). Then the machining error caused by the robot stiffness can be written as

$$ a_{ki} = \left( {{}^{pi}\varvec{D}_{pi} } \right)^{T} \varvec{D}_{x} $$
(11)

where the machining error \( a_{ki} \) is along the direction of \( x_{pi} \) at point \( \varvec{p}_{i} \). EquationsĀ (9, 10 and 11) build the relationship between joint stiffness and machining error. It can be obtained that the machining error \( a_{ki} \) is related to milling wrench \( {}^{pi}\varvec{F}_{i} \), robot posture \( \varvec{J}\left(\varvec{\theta}\right) \), and the robot stiffness \( \varvec{K}_{\theta } \). Unlike the machining error \( a_{qi} \) with respect to joint parameter, machining error \( a_{ki} \) is always positive due to the milling wrench. Based on both machining error \( a_{qi} \) and \( a_{ki} \), the minimization problem of objective function F in (5) can be solved by genetic algorithm to calculate the variables \( \left( {\alpha_{1} \varvec{,}\alpha_{2} , \cdots ,\alpha_{n} ,L} \right) \). Then the robot posture can be obtained using (4).

4 Experiment

In this simulation experiment, the robot joint parameter error is given in TableĀ 1. And the milling wrench of each point \( \varvec{p}_{i} \) is \( {}^{pi}\varvec{F}_{i} = \left[ {\begin{array}{*{20}c} {500} & 0 & 0 & 0 & 0 & 0 \\ \end{array} } \right]^{\text{T}} \) where the moment is neglected for small value. The aircraft skin has a size of \( 700\;mm \times 800\;mm \) There are 62 CL points on the tool path of the skin edge. The moving distance L is at the range of \( \left[ {{ - }900\;mm,\,\,400\,mm} \right] \). For the angle variables \( \left( {\alpha_{1} \varvec{,}\alpha_{2} , \cdots ,\alpha_{n} } \right) \) where \( 0^{\text{o}} \le \alpha_{i} \le 360^{\text{o}} \), it can be simplified as the following two cases. (1) Each point \( \varvec{p}_{i} \) shares the same angle (\( \alpha_{1} = \alpha_{2} = \cdots = \alpha_{n} \)), since the sudden change of angel \( \alpha_{i} \) is improper for continuous and stable milling of four edges (AB, BC, CD, DA). (2) Each edge shares the same rotation angel (\( \alpha_{1} = \cdots = \alpha_{15} = \alpha_{AB} \), \( \alpha_{16} = \ldots = \alpha_{31} = \alpha_{BC} \), \( \alpha_{32} = \ldots = \alpha_{46} = \alpha_{CD} \), \( \alpha_{47} = \ldots = \alpha_{62} = \alpha_{DA} \)), when the four edges (AB, BC, CD and DA) are milled separately.

TableĀ 1. ABB 6660 joint parameters error.

4.1 Each Point Shares the Same Rotation Angle \( \alpha_{i} \)

When each point \( \varvec{p}_{i} \) share the same angle (\( \alpha_{1} = \cdots = \alpha_{62} = \alpha \)), the variables to be determined in the objective function (5) are reduced to two variables \( \left( {\alpha \,,L} \right) \) that can be calculated easily without using the genetic algorithm. FigureĀ 4 shows the result of machining error \( a_{ki} \) caused by joint stiffness. It reveals that error \( a_{ki} \) is more sensitive to the distance L than the angle \( \alpha \), since the robot stiffness is more sensitive to the position than the orientation. It also can be know that machining error \( a_{ki} \) is constant positive due to the milling wrench \( {}^{pi}\varvec{F}_{i} \). The minimum value of the average machining error \( a_{ki} \) is 0.831Ā mm when \( \left( {\alpha ,L} \right) = \left( {352.1^{\text{o}} , - 201.5\,mm} \right) \). FigureĀ 5 shows the machining error \( \left( {\left| {a_{qi} } \right| + \left| {a_{ki} } \right|} \right) \), which corresponds to the objective function F in (5). For \( \left( {\alpha ,L} \right) = \left( {98.4^{\text{o}} , - 30.4\;mm} \right) \), the machining error \( \left( {\left| {a_{qi} } \right| + \left| {a_{ki} } \right|} \right) \) is minimized with 1.211Ā mm(\( \left| {a_{qi} } \right|{ = }\,0.350\;mm \) and \( \left| {a_{ki} } \right|{ = }\,0.861\;mm \)). Therefore, the stiffness has a major influence on stiffness. The joint angle at each CL point is given in Fig.Ā 6. There is no sudden change of each joint during the milling process from the first point \( \varvec{p}_{1} \) to the last point \( \varvec{p}_{62} \), which corresponds to stable milling.

Fig.Ā 4.
figure 4

Average machining error \( a_{ki} \) with respect to variable \( \left( {\alpha ,L} \right) \)

Fig.Ā 5.
figure 5

Average machining error \( \left( {\left| {a_{qi} } \right| + \left| {a_{ki} } \right|} \right) \) with respect to variable \( \left( {\alpha ,L} \right) \)

Fig.Ā 6.
figure 6

The joint angle at each CL point when \( \left( {\alpha ,L} \right) = \left( {98.4^{\text{o}} , - 30.4\,mm} \right) \)

4.2 Each Edge Shares the Same Rotation Angle \( \alpha_{i} \)

When edge shares the same rotation angel \( \alpha_{i} \), the solved variables is reduced to \( S = \left( {\alpha_{AB} ,\alpha_{BC} ,\alpha_{CD} ,\alpha_{DA} ,L} \right) \). For the value \( S^{ * } = \left( {101.7^{o} ,11.3^{o} ,90.3^{o} ,\text{0}.\text{4}^{o} , - 30.5\;mm} \right) \), the objective function F is minimized with average machining error 0.958Ā mm (\( \left| {a_{qi} } \right|{ = 0} . 2 6 5\;mm \) and \( \left| {a_{ki} } \right| = 0.693\,mm \)). It is obvious that the machining error is reduced (0.958Ā mm VS 1.211Ā mm) when the variables are increased from \( \left( {\alpha ,L} \right) \) to \( \left( {\alpha_{AB} ,\alpha_{BC} ,\alpha_{CD} ,\alpha_{DA} ,L} \right) \). However, if the machining error \( a_{qi} \) is not considered, the \( a_{ki} \) may not reflects the real machining error. When Lā€‰=ā€‰āˆ’30.5Ā mm, the machining error \( \left( {\left| {a_{qi} } \right|{ + }\left| {a_{ki} } \right|} \right) \) with respect to CL point and rotation angel is shown in Fig.Ā 7. The red line shows the best solution \( S^{ * } \).The four edges have different rotation angles, which contribute to the reduction of average machining error.

Fig.Ā 7.
figure 7

Average machining error \( \left( {\left| {a_{qi} } \right| + \left| {a_{ki} } \right|} \right) \) with respect to CL point and rotation angle (Color figure online)

5 Conclusion

To improve the machining accuracy for robotic milling in aerospace skin, this paper proposes a new optimization method for robot posture. The contributions of this paper are listed as follows. (1) Both joint parameter error and stiffness are considered to optimize the objective function. The position of robot base frame and the rotation angle of milling tool at each CL point are used as redundant freedoms to solve the optimization problem. It helps to expand the scope of optimal solution. (2) The function relationship between machining error and stiffness/joint parameters error is derived. The proposed method can also be applied into robotic grinding and drilling. Future work will add more additional constraint on the posture optimization problem for more rational optimization results. The constraints include collision avoidance, singularity avoidance, joint limit avoidance and specific machining requirement.