Inverse kinematics of five-axis machines near singular configurations

Inverse kinematics of five-axis machines near singular configurations

ARTICLE IN PRESS International Journal of Machine Tools & Manufacture 47 (2007) 299–306 www.elsevier.com/locate/ijmactool Inverse kinematics of five-...

591KB Sizes 0 Downloads 38 Views

ARTICLE IN PRESS

International Journal of Machine Tools & Manufacture 47 (2007) 299–306 www.elsevier.com/locate/ijmactool

Inverse kinematics of five-axis machines near singular configurations Knut Sørby Department of Production and Quality Engineering, Norwegian University of Science and Technology, NO-7491 Trondheim, Norway Received 3 March 2006; accepted 27 March 2006 Available online 15 May 2006

Abstract In five-axis milling, singular configurations of the machine axes may cause tool path errors or collisions between the tool and parts of the milling machine. This paper presents an algorithm for calculating the inverse kinematics of five-axis machines close to singular configurations. The algorithm modifies the exact inverse kinematics in order to give robustness to singularities at the expense of a small tool orientation deviation. The kinematics of a five-axis machine with non-orthogonal rotary axes is analyzed. The forward kinematics is developed, and a closed form solution of the inverse kinematics is presented. The kinematics and the singularity algorithm are implemented in a postprocessor, and machining tests are conducted to verify the algorithms. r 2006 Elsevier Ltd. All rights reserved. Keywords: Postprocessor; Inverse kinematics; Five-axis milling; Singularity

1. Introduction The kinematics of five-axis machines has captured the attention of many researchers for several years. While postprocessing cutter location (CL) data for a conventional three-axis machine is a geometrically simple task, postprocessing for a five-axis machine is more complex due to the rotary axes. The problems are related to solutions for forward and inverse kinematics, the linearization of the tool path, and the positioning of the machine axes near a kinematic singularity. Today, postprocessing is usually performed off-line as a part of the NC program preparation. In the future we will probably see a stronger tendency towards real-time postprocessing on the machine control units [1], which increases the demand for fast and robust calculation of the inverse kinematics. Takeuchi and Watanabe [2] presented principles for linearization and feed rate control. They also discussed control of the spindle speed, based on varying tool/ workpiece contact point. Forward and inverse kinematics for different kinds of five-axis machines have been presented and discussed in many papers, for example, by Lee and She [3]. Kinematic chain design and the usability Tel.: +47 73 59 03 74; fax: +47 73 59 71 17.

E-mail address: [email protected]. 0890-6955/$ - see front matter r 2006 Elsevier Ltd. All rights reserved. doi:10.1016/j.ijmachtools.2006.03.011

of different kinds of five-axis machines are discussed by Bohez [4] and Tutunea-Fatan and Feng [5]. A common method for avoiding problems near the singular configuration of five-axis machines is to retract the tool along the tool axis [6]. This method will cause interrupts in the tool path and is therefore undesirable in simultaneous five-axis machining. The problem of singular configuration is discussed by Affouard et al. [1] who developed a method for avoiding the machine singularity through a tool path planning algorithm in the CAD/CAM system. Another method for reducing the machining error near singularities, by optimizing the sequence of machineaxis rotations, has been proposed by Munlin et al. [7]. Most of the literature to be found on inverse kinematics for five-axis machines focuses on machines with orthogonal rotary axes. This paper presents the forward kinematics and closed form solution for the inverse kinematics for a five-axis machine with non-orthogonal rotary axes, e.g. the Deckel Maho DMU 50 eVolution. Linearization of the tool path is discussed, and a new algorithm for positioning the machine axes close to the singular configuration is presented. 2. Forward and inverse kinematics Inverse kinematics is used to determine the set of axis variables (e.g. X, Y, Z, B, and C) that will produce the

ARTICLE IN PRESS K. Sørby / International Journal of Machine Tools & Manufacture 47 (2007) 299–306

300

desired CL (x, y, z, i, j, and k) given in the CL data file. Postprocessing primarily utilizes the inverse kinematics. The forward kinematics is used to calculate the CL from the machine axis variables. This is used in postprocessors for checking tool path accuracy in the linearization algorithm. 2.1. The DMU 50 eVolution A photo of the rotary table of the DMU 50 eVolution five-axis milling machine is shown in Fig. 1, and a sketch of the side view of the machine is presented in Fig. 2. A special feature of the machine is that the rotary axes (B axis and C axis) are non-orthogonal. The angle between the two axes is 45 . The center axes of the two rotary axes cross in a point at a vertical distance d from the fixed coordinate frame x0 y0 z0 . The working range of the B axis is ½0 ; 180 , and the working range of the C axis is ð1; 1Þ. In the NC file the C-axis position is given with the range ð180 ; 180 . Using the B and C axes, every tool orientation perpendicular to the surface of the half of a sphere can be achieved. 2.2. Forward kinematics The following coordinate frames are defined to derive the kinematic equations for the machine:  x0 y0 z0 : The base coordinate frame, located in the center of the table surface when B ¼ C ¼ 0 .  x1 y1 z1 : A translation of x0 y0 z0 at a distance d along z0 .  x2 y2 z2 : A rotation of x1 y1 z1 at an angle þ45 around x1 . Frame x0 y0 z0 , frame x1 y1 z1 and frame x2 y2 z2 are fixed; they do not move with the machine axes.

Fig. 2. Side view sketch of a five-axis machine with non-orthogonal rotary axes. Shown with the B axis in B ¼ 0 position.

 x3 y3 z3 : A rotation of x2 y2 z2 at an angle B around z2 .  x4 y4 z4 : A rotation of x3 y3 z3 at an angle 45 around x3 .  x5 y5 z5 : A translation of x4 y4 z4 at a distance d along z4 . The frame x5 y5 z5 is always located at the center of the machine table, also after the B axis has been rotated.  xw yw zw : The workpiece coordinate frame. Obtained by rotating x5 y5 z5 at an angle C around z5 .  xt yt zt : A frame fixed to the milling tool with the origin at the tool tip. A homogenous matrix that transforms the coordinates of a point from frame xn yn zn to frame xm ym zm is denoted by T nm . By using the convenient shorthand notation sin f ¼ sf and cos f ¼ cf the transformation matrices for the frames defined above are written as follows: 2 3 1 0 0 0 60 1 0 07 6 7 (1) T 10 ¼ 6 7, 40 0 1 d 5 0 0 2

1

0

0

0

6 0 c45 6 T 21 ¼ 6 4 0 s45 0 2

cB 6 sB 6 T 32 ¼ 6 40 0 2

Fig. 1. Non-orthogonal rotary axes in a milling machine.

1 0

07 7 7, 05

s45 c45

0

0

sB cB

0 0

0

1

3 0 07 7 7, 05

0

0

1

1 0 6 0 c45 6 T 43 ¼ 6 4 0 s45 0 0

0 s45 c45 0

3 (2)

1

3 0 07 7 7, 05 1

(3)

(4)

ARTICLE IN PRESS K. Sørby / International Journal of Machine Tools & Manufacture 47 (2007) 299–306

2

1

pffiffiffi z ¼ 12½ 2XsB þ ðY þ Z  dÞcB  Y þ Z þ d.

0

60 6 T 54 ¼ 6 40

1 0

0 0 7 7 7, 1 d 5

0

0

0

1

sC

0

0

cC 0

0 1

07 7 7, 05

0

0

1

2

cC

6 sC 6 Tw ¼ 6 5 4 0 0 2

0

3

0

1 60 6 T t0 ¼ 6 40

0 1 0

3 0 X 0 Y7 7 7. 1 Z5

0

0

0

2.3. Inverse kinematics 3 (6)

(7)

1

T tw ¼ T 5w T 45 T 34 T 23 T 12 T 01 T t0 ,

(8)

where T tw is a function of the machine axis variables, i.e. X, 1 Y, Z, B, and C. By using the fact that T nm ¼ ðT m n Þ , Eq. (8) can be expressed by use of Eqs. (1)–(7): 1 5 1 4 1 3 1 2 1 1 1 t T tw ¼ ðT w 5 Þ ðT 4 Þ ðT 3 Þ ðT 2 Þ ðT 1 Þ ðT 0 Þ T 0 .

i 6j 6 6 4k 0

x

2

3

0 0 7 6 7 y7 60 07 7 ¼ T tw 6 7. 41 05 z5 1 0 1





pffiffi 2 2 ½XsC þ ðY þ Z þ 12½Y þ Z  d

 dÞcC sB  ðY þ Z  dÞcB sC þ XcC cB ,

pffiffi 2 2 ½ðY þ Z  dÞsC  XcC sB þ XsC cB þ 12½ðY þ Z  dÞcC cB þ ðY  Z þ dÞcC ,

0 1 2 3 4 5 w ðT tw Þ1 ¼ T w t ¼ T t T 0T 1T 2T 3T 4T 5 ,

(17)

a set of equations are derived, which are used for finding the closed form solution to the inverse kinematics problem: 2 3 2 3 2 3 a11 a12 i x 0 0 6 a21 a22 7 6 j y7 60 07 6 7 6 7 6 7 (18) 6 7 ¼ Tw 7¼6 7. t 6 4 a31 a32 5 4k z 5 41 05 a41 a42 0 1 0 1

2.3.1. B-axis inverse solution Eq. (18) will be used for finding the solution for X, Y, Z and C. However, the inverse solution for the B axis can be derived directly from Eq. (13) in the previous section: B ¼ arccos ð2k  1Þ.

(19)

This solution is valid for all possible values of the B axis, i.e. 0 pBp180 . (10)

The forward kinematics found from the matrix multiplications in Eq. (10) are pffiffiffi i ¼ 12ð 2cC sB  sC cB þ sC Þ, pffiffiffi j ¼ 12ð 2sC sB þ cC cB  cC Þ, k ¼ 12 þ 12cB ,

The inverse kinematics for a five-axis machine can be found either as a closed form solution (analytical solution) or as an iterative numerical solution. Iterative numerical methods for calculating the inverse kinematics involve a large number of numerical operations. Calculation of the closed form solutions is faster than numerical methods, which is advantageous if postprocessing is performed realtime on the machine control unit. For a closed form solution it is also easy to apply rules for which one of several possible inverse solutions can be selected [8]. By using Eq. (10) and the relation

(9)

The orientation of the z axis of the tool coordinate frame relative to the workpiece coordinate frame is found in the third column of T tw . The tool tip position relative to the workpiece is found in the fourth column. Therefore, the CL data for a given set of machine axis variables can be found with the equation 3

(16)

(5)

The coordinate transformation from the milling tool’s coordinate frame to the workpiece coordinate frame can be expressed by a set of transformation matrices:

2

301

ð11Þ ð12Þ ð13Þ

ð14Þ

ð15Þ

2.3.2. C-axis inverse solution To find the solution of the C-axis position the following equation obtained from Eq. (18) can be used: pffiffiffi a31 ¼ 12f½ð1  cos BÞi þ 2 sin Bj sin C pffiffiffi þ ½ 2 sin Bi þ ðcos B  1Þj cos C þ ð1 þ cos BÞkg ¼ 1.

ð20Þ

From Eq. (13) it is clear that cos B can be substituted by 2k  1. In the range 0 pBp180 , sin B is always positive. Therefore, we can use the following substitution: pffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi pffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi sin B ¼ 1  cos2 B ¼ 2k  4k2 . (21) Eq. (20) is then rewritten as qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi a31 ¼ ½ð1  kÞi þ 2ðk  k2 Þj sin C qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi þ ½ 2ðk  k2 Þi þ ðk  1Þj cos C þ k2 ¼ 1.

ð22Þ

ARTICLE IN PRESS K. Sørby / International Journal of Machine Tools & Manufacture 47 (2007) 299–306

302

The value of a31 is the component of the cutter orientation vector ½i j k along the z axis of the tool coordinate frame, as a function of C. Since the vector ½i j k is a unit vector, it can be shown that a31 p1 for any value of C. The expression a31 has its maximum at C þ n360 ; consequently there exists only one solution for Eq. (22) in the range 180 oCp180 . Eq. (22) can be written in the form a sin C þ b cos C ¼ 1,

(23)

where a¼

ð1  kÞi þ

qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi 2ðk  k2 Þj

(24)

1  k2

and b¼

qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi 2ðk  k2 Þi þ ðk  1Þj 1  k2

.

(25)

Since the cutter orientation is defined by a unit vector, i.e. i2 þ j 2 þ k2 ¼ 1, it can be shown that a2 þ b2 ¼ 1, which implies that the solution of Eq. (23) is sin C ¼ a.

(26)

and cos C ¼ b.

(27)

The two-argument arctan function can now be used to find a solution for C that is valid for 180 oCp180 : C ¼arctanða; bÞ qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi 2 3 2ðk  k2 Þi þ ðk  1Þj ð1  kÞi þ 2ðk  k2 Þj 5. ; ¼arctan4 1  k2 1  k2

ð28Þ The denominator is the same for the two arguments in the arctan function, so the solution can be simplified to   qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi C ¼ arctan ð1  kÞi þ 2ðk  k2 Þj; 2ðk  k2 Þi þ ðk  1Þj . (29)

which yield the solutions  qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi  2 X ¼ y 2ðk  k Þ  x þ 2xk cos C  qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi  2 þ x 2ðk  k Þ þ 2yk  y sin C qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi þ ðd  zÞ 2ðk  k2 Þ,

 qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi  Y ¼ x 2ðk  k2 Þ þ yk cos C  qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi  þ y 2ðk  k2 Þ  xk sin C  z þ d  dk þ zk, ð34Þ  qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi  2 Z ¼ x 2ðk  k Þ þ yk  y cos C  qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi  2 þ y 2ðk  k Þ  xk þ x sin C þ d  dk þ zk. ð35Þ

3. Linearization When CL data are generated by the CAM system it is assumed that the tool path between two CL points is a straight line relative to the workpiece. However, due to the rotary axes of the machine, the tool path between two blocks in the NC program will be non-linear relative to the workpiece, reducing the accuracy of the tool path. Linearization of the tool path in the postprocessing will solve the problem. In an unlinearized NC program each motion command is a direct transformation of one motion command in the CL data file, for example, a G01 command is a translation of a GOTO command. The number of lines in the NC program is approximately equal to the number of lines in the CL file. Linearization of the tool path is performed in the postprocessor by interpolating new CL data point along the ideal tool path and thereby adding new blocks to the NC program (see Fig. 3). One command in the CL file may result in several lines in the NC file, so the size of the NC program increases. The final tool path will consist of positions that originate directly from the CL data file, and new positions that are generated by CL data interpolation

For k ¼ 1 both arguments in Eq. (29) are zero, and the value of C is not defined. However, as discussed later, any value of C can be chosen for k ¼ 1. 2.3.3. X-, Y-, and Z-axis inverse solutions The solutions for X, Y, and Z are found by solving a12 ¼ 0,

ð30Þ

a22 ¼ 0, a32 ¼ 0,

ð31Þ ð32Þ

ð33Þ

Fig. 3. Cutter location data defining the tool path.

ARTICLE IN PRESS K. Sørby / International Journal of Machine Tools & Manufacture 47 (2007) 299–306

in the postprocessor. Linearization will not provide perfect motion of the tool, but the deviation from the ideal tool path can be reduced to an acceptable level. Linearization algorithms must use calculations of both the forward and the inverse kinematics to calculate deviations from ideal tool path and to interpolate new CL data. A recursive method for linearization, taking into consideration both the position and the orientation deviation of the tool, is previously described by the author [9]. 4. Singular configuration A special issue associated with rotary axes is the problem of singular configuration. In a five-axis milling machine, this problem occurs when one rotary axis is parallel to the tool axis. Any orientation of this rotary axis will produce the same tool orientation relative to the workpiece. Sometimes the singular configuration represents the borderline between two possible solutions for the inverse kinematics, but most often the singular configuration is at the end position of one of the rotary axes. For the Deckel Maho 50 eVolution the singularity is found at B ¼ 0 , which is the minimal position of this axis. With this configuration the machine table surface is horizontal, and the C axis is parallel to the tool axis. Any orientation of the C axis will produce the desired tool orientation, but certain rules must be developed to select the best solution. For example, at B ¼ 0 the C axis should have a position that minimizes the movement from the previous C-axis position. The problem with the singularity is that the C axis sometimes has to make a quick turn, often 180 , in order to produce the desired tool motion. The problem is typically observed in five-axis machining of a workpiece shaped as a half cylinder. When the tool travels over the top of the cylinder the singularity must be passed. The position of the C axis in such a situation is depicted in Fig. 4. The discontinuity shown in Fig. 4 may cause a large workpiece surface error or danger of collision. An error like this should be solved through linearization, but linearization of the tool path is not possible without an algorithm to bridge the gap between the two different Caxis positions.

Fig. 4. B- and C-axis position for a tool motion through the singularity.

303

4.1. Simple approach In order to bridge the gap illustrated in Fig. 4, the solution of C found by Eq. (29) can be modified by the following rule: if Boe

then C mod ¼ C

B . e

The parameter e is a small angle, typically 0:01 . The modification will force the C axis to always move to C ¼ 0 when B ¼ 0 (and k ¼ 1). In this case the solution of C, given by Eq. (29), must be defined as C ¼ 0 for k ¼ 1. The flow diagram in Fig. 5 illustrates an algorithm that performs the linearization and modification of C near the singularity. When C is modified to C mod , the solutions for X, Y, and Z must be calculated from C mod . The flow diagram in Fig. 5 shows that the CL data from the CL file are converted directly into machine axis data without any loss of accuracy. Only CL data that are interpolated by the postprocessor will produce machineaxis data that can be modified by the singularity algorithm. As a consequence, the singularity algorithm cannot bridge the gap between two CL data file positions if the limit angle e is larger than the B-axis value, calculated directly from the CL data file. However, in practical situations e will be much smaller than the value of B that is calculated from the CL data, except for B ¼ 0 , which is treated separately. Three different results achieved by using the algorithm in Fig. 5 are illustrated in Fig. 6(a)–(c). The algorithm will work well in most cases, but in some situations causes the C axis to approach 0 even when this is unnecessary. Fig. 6(c)

Fig. 5. Algorithm for postprocessing near the singularity, simple approach.

ARTICLE IN PRESS K. Sørby / International Journal of Machine Tools & Manufacture 47 (2007) 299–306

304

(a)

(b)

(c) Fig. 6. Continuous C-axis position for a tool motion through the singularity achieved by a simple approach for calculating C mod . Fig. 7. Algorithm for postprocessing near the singularity, improved approach.

shows an example of an unnecessary movement to C ¼ 0 when the C axis is supposed to move only from 180 to 90 . 4.2. Improved approach To avoid the problems related to unnecessary movements to the position C ¼ 0 , an improved algorithm is suggested: B þ C. e The variable C  is the C-axis position calculated from the last CL data file command read prior to the application of the linearization and singularity algorithms, as illustrated by the program flow diagram in Fig. 7. If the singular configuration, i.e. ½i j k ¼ ½001, is given explicitly in the CL file, the resulting quick movement of the C axis will not start before the singular configuration has been reached. The movement starts when the machine tool axes move away from the singularity. The effect of the improved algorithm is shown in Fig. 8.

if Boe then C mod ¼ ðC  C  Þ

4.3. Postprocessing accuracy at the singularity The two singularity control algorithms represent a modification of the exact inverse kinematics and provide robustness to the singularity at the expense of reduced tool orientation accuracy. The maximum orientation error is a function of the limit angle e, and the error is the same for both algorithms.

Fig. 8. The effect of the improved algorithm.

When using the simple algorithm it is observed that C mod ¼ C when B ¼ e. Therefore, there is no orientation error at B ¼ e. Also, any values of C can be chosen when B ¼ 0 , so there is no error at B ¼ 0 . The maximum orientation error is found between B ¼ 0 and B ¼ e. The size of the error can be calculated by finding the angle between the vectors ½i j k ¼ f ðB; CÞ and ½i0 j 0 k0  ¼ f ðB; C mod Þ, which are calculated with Eqs. (11)–(13). Calculations for the ‘‘worst case’’ scenario where the C axis has to make a 180 turn show that the maximum error near the singularity in the DMU 50 eVolution and similar five-axis machines occurs at B  e=2, and the size of the error is approximately e=2. For a more conventional fiveaxis machine with the B axis parallel to the Y axis the maximum orientation error will also occur pffiffiffiat B  e=2, but the size of the error is approximately e= 2. The tool position accuracy is not reduced by the singularity algorithm. Modifying the C-axis position is equivalent to modifying i and j from the CL file, but the

ARTICLE IN PRESS K. Sørby / International Journal of Machine Tools & Manufacture 47 (2007) 299–306

other CL variables (x, y, z and k) remain unchanged. As long as the value of C mod is used in Eqs. (33)–(35) for the evaluation of X, Y, and Z, the position of the tool tip is calculated correctly. 5. Experimental results The forward and the inverse kinematics described in this paper, along with the singularity algorithm shown in Fig. 7, and a linearization algorithm, have been implemented in a postprocessor for the DMU 50 eVolution five-axis milling machine. The postprocessor also has the functionality of calculating the so-called inverse time in order to calculate a programmed feed that produces the intended feed relative to the workpiece when the rotary axes move. The postprocessor takes into account the maximum available feed speed of the machine axes. Most significant is the maximum rotary speed of the C axis, which often limits the feed of the tool relative to the workpiece near the singular configuration. The postprocessor was programmed using the C language. It has a Windows user interface and is used regularly in the author’s laboratory for postprocessing CL data generated by the ProEngineer and Unigraphics CAD/ CAM systems. 5.1. Postprocessor output The effects of the linearization and singularity algorithms are demonstrated by postprocessing CL data for a short multi-axis tool path (see Fig. 9). The positions of the machine axes are calculated with different postprocessor settings. In order to avoid generating too many machine

305

data points in the linearization algorithm the tool path accuracy was set to 1 mm. For simplicity, only the X-, B-, and C-axis positions are plotted in the diagrams. Fig. 9 shows the CL data used in the test and three different postprocessor outputs. The result of postprocessing with both the linearization and the singularity algorithms is demonstrated in Fig. 9(d). The limit angle for activating the singularity algorithm is e ¼ 0:01 , which should be adequate for generating NC code with a satisfactory accuracy. Postprocessing without linearization yields the result shown in Fig. 9(b). The accuracy of this tool path is low because the positions of the X, Y, and Z axes are not defined when the C axis moves from 90 to þ90 . The large time gap in this movement is caused by the limited feed speed of the C axis. In Fig. 9(c) the linearization algorithm is used, but the algorithm fails because the singularity algorithm is not activated, causing the postprocessor to terminate with an error message. In Fig. 9(d) the gap is successfully filled with interpolated points from the linearization algorithm. The plotted X-axis path demonstrates the fact that in multi-axis machining using a milling machine with a rotary table, the tool must move in a non-linear path relative to the base coordinate system in order to produce a tool path that is linear relative to the workpiece. 5.2. Machining test A machining test was conducted to demonstrate tool path linearization near the singular configuration. The

(a)

(b)

(c)

(d)

Fig. 9. (a) The CL data used for the illustration; (b) non-linearized tool path; (c) attempt on linearization without singularity algorithm; (d) successful linearization with singularity algorithm.

ARTICLE IN PRESS 306

K. Sørby / International Journal of Machine Tools & Manufacture 47 (2007) 299–306

and inverse kinematics are utilized for implementation and demonstration of an algorithm for postprocessing CL data near the singular configuration of the machine tool. The algorithm can be used for avoiding undesired movements of the machine tool near the singularity, typically the algorithm will produce the correct machine data in simultaneous five-axis machining when B ¼ 0 and the C axis makes a quick 180 turn. The results presented in the paper are useful when a fast and robust calculation of the inverse kinematics is necessary, for example in real-time postprocessing of CL data on machine tool control units. References

Fig. 10. Testpiece with (a) unlinearized tool path with a large loop-like error and (b) linearized tool path without error.

machined feature was an arced slot in a cylindrical surface, produced by a tool path of the same type used for demonstration in the previous section. In this tool path the tool axis is always normal to the surface of the workpiece. Postprocessing without linearization gave a NC path that machined a slot with a large loop-like error. Postprocessing with linearization, which also utilized the singularity algorithm, generated a slot with the intended geometry. No tool path deviation could be observed on this slot. The test piece with the two slots can be seen in Fig. 10. 6. Conclusion This paper presents the forward kinematics and a closed form solution of the inverse kinematics of the Deckel Maho 50 eVolution five-axis milling machine. The forward

[1] A. Affouard, E. Duc, C. Lartigue, J.-M. Langeron, P. Bourdet, Avoiding 5-axis singularities using tool path deformation, International Journal of Machine Tools and Manufacture 44 (2004) 415–425. [2] Y. Takeuchi, T. Watanabe, Generation of 5-axis control collision-free tool path and postprocessing for NC data, Annals of the CIRP 41 (1) (1992) 539–542. [3] R.-S. Lee, C.-H. She, Developing a postprocessor for three types of five-axis machine tools, International Journal of Advanced Manufacturing Technology 13 (1997) 658–665. [4] E.L. J Bohez, Five-axis milling machine tool kinematic chain design and analysis, International Journal of Machine Tools and Manufacture 42 (2002) 505–520. [5] O.R. Tutunea-Fatan, H.-Y. Feng, Configuration analysis of five-axis machine tools using a generic kinematic model, International Journal of Machine Tools and Manufacture 44 (2004) 1235–1243. [6] Y.H. Jung, D.W. Lee, J.S. Kim, H.S. Mok, NC post-processor for 5axis milling machine of table-rotating/tilting type, Journal of Materials Processing Technology 130–131 (2002) 641–646. [7] M. Munlin, S.S. Makhanov, E.L.J. Bohez, Optimization of rotations of a five-axis milling machine near stationary points, Computer-Aided Design 36 (2004) 1117–1128. [8] M.W. Spong, M. Vidyasagar, Robot Dynamics and Control, Wiley, New York, 1989. [9] K. Sørby, High-accuracy postprocessor for multi-axis milling machines, in: E. Kuljanic (Ed.), Proceedings of the Fifth International Conference on Advanced Manufacturing Systems and Technology, Udine, Italy, 1999, pp. 507–514.