A curvature optimal sharp corner smoothing algorithm for high-speed feed motion generation of NC systems along linear tool paths Burak Sencer, Kosuke Ishizaki & Eiji Shamoto The International Journal of Advanced Manufacturing Technology ISSN 0268-3768 Int J Adv Manuf Technol DOI 10.1007/s00170-014-6386-2 1 23 Your article is protected by copyright and all rights are held exclusively by SpringerVerlag London. This e-offprint is for personal use only and shall not be self-archived in electronic repositories. If you wish to self-archive your article, please use the accepted manuscript version for posting on your own website. You may further deposit the accepted manuscript version in any repository, provided it is only made publicly available 12 months after official publication or later and provided acknowledgement is given to the original source of publication and a link is inserted to the published article on Springer's website. The link must be accompanied by the following text: "The final publication is available at link.springer.com”. 1 23 Author's personal copy Int J Adv Manuf Technol DOI 10.1007/s00170-014-6386-2 ORIGINAL ARTICLE A curvature optimal sharp corner smoothing algorithm for high-speed feed motion generation of NC systems along linear tool paths Burak Sencer & Kosuke Ishizaki & Eiji Shamoto Received: 30 April 2014 / Accepted: 10 September 2014 # Springer-Verlag London 2014 Abstract Conventional tool paths for computer numericalcontrolled (CNC) machine tools or NC positioning systems are mainly composed of linear motion segments, or the socalled G1 commands. This approach exhibits serious limitations in terms of achieving the desired part of geometry and productivity in high-speed machining. Velocity and acceleration discontinuities occur at the junction points of consecutive segments. In order to generate smooth and continuous feed motion, a geometric corner smoothing algorithm is proposed in this paper, which fits quintic B-splines to blend adjacent straight lines together. The proposed transition scheme ensures G2 continuity transitions and optimal curvature geometry delivering fast cycle time without violating the axis acceleration limits. The cornering error is controlled analytically allowing the user to set the desired cornering tolerance. The feed profile along the corner-blended tool path is generated based on S-curve-type acceleration profile, and it is scheduled for minimum cycle time. At last, the corner-blended tool path is interpolated in real-time with minimum feed fluctuation for accurate and smooth feed motion. Proposed algorithms are implemented, and their effectiveness is tested on a CNC machine tool. Keywords Machine tools . NC system . Trajectory generation . Bezier curve . Curvature 1 Introduction With recent advances in part design and manufacturing technologies, computer-aided design (CAD) systems are utilized to design complex geometries compromised of smooth B. Sencer (*) : K. Ishizaki : E. Shamoto Nagoya University, Nagoya, Aichi, Japan e-mail: burak0307@gmail.com parametric splines such a NURBS or B-splines [1]. Direct interpolation of these curves is proven to be superior in terms of providing smoother and faster motion [2–4]. However, vast majority of numerical control (NC) units of machine tools or robotic systems do not accept reference tool paths defined by high order parametric curves. One main reason for this is the lack of an established convention for the data transfer between CAD and NC. Another reason is implementation issues within the NC. Real-time interpolation of parametric curves still exhibits some bottlenecks in terms of accurate computation of curve lengths [5] or the suppression of feed fluctuations [6, 7]. Instead, given the tolerance, computer-aided manufacturing (CAM) systems are used to generate cutter location files compromised of numerous short line segments, and NC systems simply interpret these linear “point-to-point” motion commands. Interpolating along those linear segments exhibits serious limitations in terms of achieving the desired productivity. The motion has to stop between each linear segment block due to the lack of higher order geometric continuity. This leads to elongated cycle times since the motion has to accelerate and decelerate along each linear segment. On the other hand, if linear segments are travelled in constant feed motion, there will be severe discontinuities in velocity and acceleration at junction points. This may excite motion systems’ lightly damped structural modes and cause tracking errors, both of which severely deteriorate the positioning quality [8]. In an attempt to generate smooth continuous motion along series of discrete linear motion commands, two major techniques have been proposed for modern NC systems. The first one is geometric path smoothing where curve-fitting techniques are utilized to smoothen the discrete tool-path data. Advanced NC systems utilize approximate or exact spline interpolation techniques to generate continuous trajectories from batch of linear point-to-point motion commands [9, 10]. There exist several shortcomings when these methods Author's personal copy Int J Adv Manuf Technol are applied. Firstly, higher order such as cubic (3rd) or quintic (5th) splines is necessary to generate C2, i.e. acceleration continuous, tool paths from given discrete data. Nevertheless, higher order splines may exhibit “wiggles” or “curls” when fitted along densely placed short linear motion segments due to numerical conditioning. This could be addressed utilizing some heuristic methods [11, 12], or some energy functions based on pseudo jerk or the curvature can be considered [13–15] for smoothness. An alternative is to approximate the discrete tool path by parametric splines. However, in this case, the control of the fitting error becomes computationally expensive for real-time implementation. Next, “corner blending,” also called the “corner smoothing,” techniques have been proposed to achieve nonstop continuous motion. The idea is straightforward. Sharp corner is replaced with a smooth parametric curve, as has already been applied in robotics literature [16]. Jouaneh et al. [17] replaced the corner with a circular arc for fast cornering. However, a circular arc only delivers velocity continuous motion transition. They later used a double (two) clothoid curves to further smoothen the motion transition [18]. These techniques are computationally less stringent and lead to more efficient real-time implementation in the NC system. But, the order of the blending curve must be increased to control the fitting tolerance and the corner geometry at the same time. Yutkowitz and Chester [19] utilized two 4th order polynomials to realize corner blending for Cartesian motion systems. This method delivers C2 continuous corner transition in the expense of significant computational load. Pateloup et al. [20] proposed a 2-D path-smoothing method, which employs cubic Bsplines with eight control points to round pocket profiles. Similarly, Zhang et al. [21] proposed a more general method utilizing double cubic B-splines. Others [22, 23] also utilized similar transition methods to achieve acceleration continuous feed motion. One of the vital aspects of corner smoothing is the design of the corner blend so that it can be traveled at high speed and thus the total cycle time could be minimized. In practice, a conventional tool path may contain thousands of linear segments. Minimizing the cornering time spent at each corner actually presents a great potential to reduce overall machining time. However, limited effort has been directed toward the design of optimal corner geometry. Erkorkmaz et al. [24] considered dynamics of the servo system while designing the corner blend. They found that over-corner spline delivers less cornering error but a longer cornering time. Beudaert et al. [25] addressed the problem of sharp corners in 5-axis motion utilizing a pair of B-spline curves. Zhao et al. [23] proposed a real-time cornering scheme where the curvature extremum could be computed for fitted corner splines. They concluded that optimization of the curvature in real-time is computationally stringent and unfeasible. Similarly, authors [26] have tried to find real-time efficient optimization techniques. This paper proposes a “curvature optimal cornering scheme” where the maximum curvature of the corner is minimized in a computationally efficient strategy that is suitable for real-time implementation. This results in a high-speed cornering scheme and thus significant reduction in the total cycle time. Once the discrete tool path is blended with corner splines, it becomes a mixture of linear segments continuously connected with blending splines. The next problem is scheduling of the feedrate profile along the tool path. Due to curved corner profile, tangential feed must be lowered so that axis velocity and acceleration limits are not violated at corner sections. Therefore, highspeed feed sections of linear segments must be stitched together with low-speed cornering segments while ensuring that the kinematic compatibility conditions between position, velocity, acceleration, and jerk are not violated. Several feed profiles have been suggested in the literature to smoothly schedule the tangential speed [27, 28]. Comprehensive feedrate optimization techniques have also been introduced for complex spline tool paths [29–31] to minimize the cycle time while respecting physical limits of the drives. As compared to the current literature, the work in this paper utilizes smooth S-curve-type acceleration transitions while considering the kinematic compatibility conditions between adjacent feed segments. An efficient algorithm is proposed for federate scheduling along the entire tool path considering the maximum cornering speed while respecting the acceleration limits of the drives. At last, the tool path must be interpolated with respect to the feedrate profile in real-time to generate axis reference commands. In order to smoothly interpolate the reference trajectory without any feedrate fluctuations, the recursive interpolation scheme developed in a previous study [7] for parametric splines is applied on quintic Bezier corner blends. This paper presents methods to overcome some of the inefficiencies in current corner smoothing techniques and presents a computationally efficient curvature optimal corner smoothing algorithm for high-speed machine tools and motion systems to attain minimum cycle time motion. The overall corner smoothing scheme is summarized in Fig. 1. Once the discrete tool path is generated by CAM systems, proposed corner smoothing algorithm utilizes a single quintic Bezier spline to ensure G2 continuous motion transition between linear segments. The corner curvature is optimized to deliver minimum curvature extremum and thus realizes rapid cornering speed using less acceleration/torque capacities of the axes in motion. Next, S-curve-type acceleration transients are designed to stitch feed segments smoothly along multisegmented tool path, and a feedrate-scheduling algorithm is Author's personal copy Int J Adv Manuf Technol Fig. 1 Proposed corner smoothing scheme presented to plan the feed motion along multi-segmented tool path. Finally, it is interpolated in real-time and validated experimentally on a 3-axis Cartesian machine tool. proposed Bezier blend that needs to be determined to ensure the following: (i) 2 Smoothening of sharp corners Two consecutive linear segments are blended with Bezier splines as shown in Fig. 2a to deliver a smooth transition of feed motion from one linear segment to the next. A quintic Bezier segment (see in Fig. 2b) in Cartesian coordinates can be defined parametrically as follows: 2 3 B x ðu Þ 5 4 2 Þ3 P2 and 4 BðuÞ ¼ By ðuÞ 5 ¼ ð1−uÞ3 P0 þ 25uð1−uÞ 4P1 þ 10u ðu−1 5 þ10u ð1−uÞ P3 þ 5u ð1−uÞP4 þ u P5 Bz ðuÞ 2 3 2 3 2 3 P0;x ðuÞ P0;x ðuÞ P5;x ðuÞ 4 5 4 5 4 P0 ¼ P0;y ðuÞ ; P1 ¼ P0;y ðuÞ ; …; P5 ¼ P5;y ðuÞ 5 P0;z ðuÞ P0;z ðuÞ P5;z ðuÞ ð1Þ where Bx, By, and Bz are the axis position polynomials. P0, P1,…, P5 are the vectors containing control points for each axis coordinate. u is the Bezier curve parameter, u∈[0,1]. As observed from Eq. 1, there are six control points in the Smooth transition between linear segments, namely G2 continuous motion (ii) Minimum curvature extremum for the fastest cornering speed (iii) Accurate control of the cornering error to respect the manufacturing tolerances 2.1 Design of the quintic Bezier blend The quintic Bezier blend is applied in transition of two point-to-point linear motion segments as shown in Fig. 2c. Pstart is the starting point of the kth linear segment, Ptrans is the ending point, which becomes the transition point to the (k+1)th segment, and θ is the cornering angle. In blending two consecutive linear segments, G 2 continuity is ensured so that two successive segments share the same tangent and normal directions at the junction points. Combined with accurate interpolation presented in later sections, this allows the realization of C 2 motion. Differentiating Eq. 1 with respect to the spline parameter u gives the 1st and 2nd derivative profiles along the Bezier blend: Author's personal copy Int J Adv Manuf Technol anywhere along ts and te. They are placed at a distance of c from the junction points as P1 ¼ P0 þ cts and P4 ¼ P5 −cte g ð6Þ Please note that this only ensures G1 continuity since only the tangent directions are matched but not their magnitude. Next, in order to satisfy curvature continuity, normal vectors at the junction points, Buu|u = 0 and Buu|u = 1, must be zero. According to Eq. 3, this can be achieved by satisfying Buu ju¼0 ¼ 20ðP2 −2P1 þ P0 Þ ¼ 0 → P1 −P0 ¼ P2 −P1 Buu ju¼1 ¼ 20ðP5 −2P4 þ P3 Þ ¼ 0 → P4 −P5 ¼ P3 −P4 ð7Þ Substituting Eq. 7 into Eq. 4 yields P0 þ 2cts ¼ P2 ; Fig. 2 Quintic Bezier corner blending 9 dBðuÞ > ¼ 5ð1−uÞ4 ðP1 −P0 Þ þ 20uð1−uÞ3 ðP2 −P1 Þ þ 30u2 ðu−1Þ2 ðP3 −P2 Þ > > > du = þ20u3 ð1−uÞðP4 −P3 Þ þ 5u4 ðP5 −P4 Þ > > > d 2 B ð uÞ > 3 2 ; Buu ¼ ¼ 20 ð 1−u Þ ð P −2P þ P Þ þ 60u ð 1−t Þ ð P −2P þ P Þ 2 1 0 3 4 5 du2 Bu ¼ ð2Þ Evaluating the profiles from Eqs. 1 and 2, at the start u=0 and end u=1 of the Bezier blend reveals 9 9 Bju¼1 ¼ P5 ; Bju¼0 ¼ P0 ; = = Bu ju¼0 ¼ 5ðP1 −P0 Þ Bu juu¼1 ¼ 5ðP5 −P4 Þ and ; ; Buu ju¼0 ¼ 20ðP2 −2P1 þ P0 Þ Buu ju¼1 ¼ 20ðP5 −2P4 þ P3 Þ ð3Þ As observed from Eq. 3, P0 and P5 define junction points of the Bezier blend to linear segments. In this design, they are placed at a Euclidian distance, 2c+d away from the corner transition point, Ptrans as P0 ¼ Ptrans −ð2c þ d Þt s and where ts and te are the unit tangent vectors along linear segments, Ptrans −Pstart kPtrans −Pstart k and P5 −2cte ¼ P3 g ð8Þ which reveals that the control points P1 must be placed collinear with P0 and P2, and P3 with P4 and P5. From Eqs. 6 and 8, all six control points of the Bezier blend are determined as 9 P0 ¼ Ptrans −ð2c þ d Þts P5 ¼ Ptrans þ ð2c þ d Þte = ð9Þ P 1 ¼ P 0 þ c ts P4 ¼ P5 − c ts ; P2 ¼ P0 þ 2 c ts P3 ¼ P5 − 2 c ts making the corner blend symmetric with respect to the angular bisector of the two lines Pstart Ptrans and Ptrans Pend , and G2 continuous to the neighboring segments. 2.2 Curvature optimization Curvature is solely a function of the path geometry, and it is integrally tied to the acceleration and jerk required to track the corner geometry. In high-speed machining, it is desirable to maximize the total cornering speed while still respecting the actuator acceleration. The curvature along the path is defined as follows [32]: dT T κ¼ ð10Þ ds ; T ¼ t x ; t y ; t z 31 P5 ¼ Ptrans þ ð2c þ d Þte g ð4Þ ts ¼ and te ¼ Pend −Ptrans kPend −Ptrans k ð5Þ Tangent vectors on the junction points of the Bezier can be aligned to linear segment by simply placing P1 and P4 where T is the unit tangent vector and s is the arc displacement. The relationship between the differential arc displacement ds and the Bezier parameter increment du can be derived as ds ¼ kBu kdu ð11Þ Furthermore, as the curve is traveled along, change in the unit tangent vector as a function of time can be expressed by applying the chain rule to Eq. 10: Author's personal copy Int J Adv Manuf Technol dT dT ds ¼ dt ds dt ¼ κv ð12Þ where v ¼ s ¼ ds=dt is the tangential or the path velocity. Please note that the derivative of the unit tangent vector, dT/dt, is orthogonal to itself. Therefore, the path normal can also be written as a function of time: N¼ 1 dT kdT=dtk dt ð13Þ Axis velocity v=[vx,vy,vz]T and acceleration a=[ax,ayaz]T components are written from Eqs. 12 and 13 as 9 v ¼ vT and = ð14Þ d dv dT a ¼ ðvTÞ ¼ T þ v ; dt dt dt and from Eq. 14 the effect of curvature on the axis accelerations is derived as a ¼ v T þ v2 κN ð15Þ The v ¼ s:: ¼ dv=dt term represents tangential or the socalled path acceleration. Assuming that the corners are turned at constant speed, that term vanishes relating the axis accelerations directly to the path velocity, v and the curvature as 2 3 ax a ¼ 4 ay 5 ¼ v2 κN ð16Þ az Thus, the objective hereby is to minimize curvature extremum, i.e., the maximum of the curvature along the Bezier blend, so that the cornering speed can be increased while still staying within the acceleration limits of drives. In the proposed Bezier corner blend design, the shape of the Bezier, i.e., the control point locations, is controlled by the Euclidian distances c and d. Figure 3 shows the effect of c and d on the Bezier shape for a cornering angle of 60° when junction points (P0 and P5) are fixed. As illustrated, by keeping the junction points fixed and increasing d, control points are pushed away from corner transition point Ptrans leading to larger cornering errors. Increasing c leads to smaller fitting errors but in contrary may generate larger curvature radius depending on d. Thus, the optimal ratio of c/d is searched for minimizing the curvature extremum. Curvature along the Bezier can be written analytically from Eqs. 2, 10, and 11 as a function of the curve parameter, u: κ¼ −12nusinθð2n þ 1Þðu−1Þðnu−2u−2nu3 þ nu4 þ 4u3 −2u4 þ 1Þ 3 LT A 2 ð17Þ where n=c/d, LT =2c+d, and A=A(u) is an 8th order polynomial. Please refer to the Appendix section for detailed derivation of Eq. 17. As noted, curvature is affected by the cornering angle, θ, n, and also the total transition length LT, which simply scales the curvature in this design. The optimal n value for various cornering angles can be searched to minimize the curvature extremum from Eq. 17. Nevertheless, this operation may be computationally expensive considering the fact that it needs to be implemented in real-time for each and every corner. This bottleneck has also been stated previously in the design of corner blends [22, 23]. Instead of solving the optimization problem in real-time, a more practical approach is pursued here. Since the cornering distance LT simply functions as a scaling factor in the proposed design, it is set to unity LT ¼ 2c þ d ¼ 1 ð18Þ and only the effect of n=c/d considered. The corner angle θ is fixed, and n is interpolated in the range of n∈[0,2]. Curvature is computed along the Bezier, at 100 discrete points proportional to the spline parameter, and its maxima is detected. Figure 4 shows the change of maximum curvature, κmax. As shown, since Bezier blend is symmetric with respect to the angular bisector of the neighboring segments, maximum curvature occurs either in the middle of the Bezier, or two identical curvature extrema are observed. This vaguely indicates that the problem is convex, and there is a global optimal n value, which minimizes the maximum value of the curvature. The process is repeated for various cornering angles to record the optimal n. Figure 5 shows the n value for a wide range of cornering angles θ=10….150°, which minimizes the maximum curvature. A simple power regression is applied to obtain the following relation to estimate the curvature optimal n value for a wide range of cornering angles as nðθÞ ¼ 1 θ0:9927 2:0769 ð19Þ Equation 19 can be used in real-time to efficiently lookup the optimal control point ratio, n, to fit the curvature optimal Bezier blend. 2.3 Control of the cornering errors As shown in Fig. 2c, proposed corner smoothing algorithm introduces geometric errors, ε, around the corner, which has to be limited by a given tolerance so that the dimensional integrity of the produced part is ensured. The Bezier blend is symmetric, and hence the maximum deviation from original path occurs in the middle at u=0.5, ε ¼ Ptrans −Bju¼0:5 ð20Þ Author's personal copy Int J Adv Manuf Technol The actual transition length can then be evaluated as LT =2c+d. 3 Jerk-limited trajectory generation Fig. 3 Effect of n on the Bezier curvature (θ=60°) The midpoint of the Bezier B|u=0.5 is evaluated from Eqs. 1 and 9 as Bju¼0:5 ¼ Ptrans þ 7c þ 16d ðts þ te Þ 32 ð21Þ The maximum cornering error is then computed from Eqs. 20 and 21 as ε¼ 7n þ 16 d kts þ te k 32 ð22Þ Based on the developed corner smoothing algorithm in Section 2, a jerk-limited trajectory generation algorithm is proposed in this section. The objective is to modulate the path speed in such a way that the velocity is reduced at corners i.e. along Bezier segments and again raised at linear segments to reach the programmed speed. The proposed trajectory generation algorithm can be implemented in real-time within a look-ahead scheme, or it can be used off-line for simulating the motion of computer numerical-controlled (CNC) systems. The overall algorithm has three sections. At first, corners are rounded with Bezier blends, and the maximum feedrate for each corner is determined. Next, the jerk-limited feedrate profile with S-curve-type acceleration transients is planned, and it is optimized so that the total cycle time is minimized while respecting the axis velocity and acceleration limits. At last, the geometric tool path is interpolated in real-time without any feed fluctuation. 3.1 Determination of the maximum cornering speed Equation 22 is further expanded, and actual values of c and d for a curvature optimum Bezier blend at a given cornering tolerance ε and corner angle θ are obtained as d¼ 32ε pffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi ð7n þ 16Þ 2 þ 2cosðθÞ ð23Þ 32ε pffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi n c¼ ð7n þ 16Þ 2 þ 2cosðθÞ Conventional tool paths contain series of linear segments where each segment has its Euclidian length and a feedrate assigned to it. Once the proposed corner smoothing approach is implemented, corners are blended and segment lengths are altered. Figure 6 illustrates a planar tool path consisting of linear segments. The total length SL of a tool path with Ns linear segments is computed considering length of each block: Ns X SL ¼ kPkþ1 −Pk k ð24Þ 1 Due to corner blending, tool-path length is updated by subtracting corner transition length, LT, and adding the length of the Bezier blend, LB, as SΣ ¼ SL þ N s −1 X LB;k −2LT ;k ð25Þ 1 Fig. 4 Corner curvature for various cornering angles and control point ratios where LB is computed through numerical integration as follows. The Bezier blend is divided into M (>100) subdivisions proportional to its parameter u, and the corresponding axis positions are computed as Author's personal copy Int J Adv Manuf Technol curvature is larger. Figure 6b shows the highest cornering speed for different cornering tolerances. It can be noted that the maximum cornering speed reduces as the cornering tolerance becomes tighter. 3.2 Feedrate scheduling Δsk; j As presented in the previous section, when linear segments are joined with Bezier blends, corners can only be traveled at a much lower speed then their neighboring segments. The motion system has to slow down when approaching to a corner, cruise the Bezier blend and accelerate to the programmed feed of the successive linear segment. In order to achieve smooth motion, feed commands of consecutive segments must be stitched together smoothly. Speed transitions across blocks are achieved through a jerk-limited acceleration profile. Compatibility of the feedrates with respect to acceleration and jerk constraints given by the process planner are considered, and a practical feed planning scheme is developed as follows. A jerk-limited motion profile or the so-called S-curvetype acceleration profile is utilized to generate smooth speed transition between the two adjacent feed blocks. The feedrate profile for velocity transition is shown in Fig. 7, and the corresponding acceleration function is defined as rffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi 2 2 2 xk; j −xk; j−1 þ yk; j −yk; j−1 þ zk; j −zk; j−1 aðt Þ ¼ 30ΔV Fig. 5 Optimal n w.r.t. cornering angle 9 x j ¼ ð1−jΔuÞ5 P0;x þ 5jΔuð1−jΔuÞ4 P1;x þ … þ jΔu5 P5;x > = y j ¼ ð1−jΔuÞ5 P0;y þ 5jΔuð1−jΔuÞ4 P1;y þ … þ jΔu5 P5;x ; > ; z j ¼ ð1−jΔuÞ5 P0;z þ 5jΔuð1−jΔuÞ4 P1;z þ … þ jΔu5 P5;z Δu ¼ 1 ; j ¼ 0; 1…M M ð26Þ The resulting arc increments are then summed up: LB ¼ M X j¼1 ¼ M X j¼1 t4 t3 t2 − 60ΔV þ 30ΔV t 5e t 4e t 3e ð29Þ ð27Þ Next, due to curvature of the Bezier blend, axis acceleration limits may be violated if the curved sections were also to be traveled at the same speed of neighboring linear segments. The highest cruise speed along a Bezier blend is bounded by the acceleration limits Ax,max, Ay,max, and Az,max of the drives. Equation 16 is used to determine the highest cornering speed as F corner ¼ min Ax;max Ay;max Az;max ; ; κmax κmax κmax ð28Þ A case study is shown in Fig. 6. The desired feedrate for the linear tool path is given as F=35 mm/s. The tool path is smoothened at two different cornering tolerances namely, 100 and 150 μm. As shown, depending on the corner tolerance, the transition length LT changes. For tighter cornering tolerance, LT becomes smaller and thus the maximum where ΔV=Fk+1 −Fk is the velocity difference to be covered from current kth segment to the consecutive (k+1)th and te is total time spend in speed transition. Position (s), velocity (v), acceleration (a), and jerk (j) profiles can be obtained from Eq. 29 as 9 5 t4 t5 t6 > sðt Þ ¼ F k t þ ΔV 3 −3ΔV 4 þ ΔV 5 > > > 2 te te te > > 3 4 5> > t t t > > vðt Þ ¼ F k −10ΔV 3 þ 15ΔV 4 þ 6ΔV 5 > = te te te t2 t3 t4 > > > aðt Þ ¼ 30ΔV 3 −60ΔV 4 −30ΔV 5 > > te te te > > > 2 3 t t t > > ; jðt Þ ¼ 60ΔV 3 −180ΔV 4 þ 120ΔV 5 > te te te ð30Þ The total transition time, te, needs to be determined in such a way that the tangential acceleration and jerk limits, Amax and Jmax, are not exceeded. As observed from Fig. 7, Author's personal copy Int J Adv Manuf Technol Fig. 6 Corner smoothened tool path tangential acceleration peaks at t=½te. Thus, the speed transition interval tAmax with respect to acceleration limit can be e computed from Eq. 30 as Amax ¼ 15 jΔV j 15 jΔV j →t Amax ¼ e 8 te 8 Amax ð31Þ Similarly, tangential jerk prolife peaks at t=¼te, and the speed transition interval w.r.t. jerk limit is calculated as J max 45 jΔV j ¼ →t eJ max ¼ 8 t 2e sffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi 45 jΔV j 8 J max ð32Þ achieved, then displacement, feedrate, and acceleration profiles will be continuous, and along with the jerk profile, they will be limited. Figure 8 illustrates the importance of the kinematic compatibility. In Fig. 8a, speed increase from low- to high-speed segment is shown where Fk <Fk+1. Please note that speed cannot be increased from within the current, kth segment, since the current segment feed is lower. In other words, acceleration can only be planned after slow feed segment is traveled. Thus, speed transition is planned in the successive (k+1)th segment, and the compatibility condition is checked as Lkþ1 − F k þ F kþ1 t e;k ≥ 0; 2 where t e;k In order to respect both limits, the transition interval is determined as t e ¼ max t Amax ; t eJ max e 15 jΔV k j ¼ max ; 8 Amax sffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi! 45 jΔV k j 8 J max ð33Þ Finally, the total displacement spent during a speed transition is computed from Eqs. 30 and 33 as ΔS ¼ F kþ1 þ F k te 2 ð34Þ Feed transitions are dictated by desired speeds of the neighboring segments and the total displacement traveled within the speed transition. The “kinematic compatibility” is defined here as having sufficient travel length to smoothly change the feedrate, i.e., accelerate or decelerate, between segments [31]. If kinematic compatibility is Fig. 7 S-curve-type acceleration profile for velocity transition ð35Þ Author's personal copy Int J Adv Manuf Technol and ΔVk =Fk+ 1 −Fk and Lk+1 is the length of the (k+1)th segment. Figure 8b shows a velocity transition from high to low speed. In this case, all the planning is performed within the current kth segment, and the compatibility conditions are checked as Lk − F k þ F kþ1 t e;k ≥ 0 2 ð36Þ In general cases, feed transitions spread across segment boundaries, and two adjacent segments may affect kinematic compatibility in the kth segment. In order to ascertain whether kinematic compatibility is satisfied across the segment boundaries, previous and next segments also need to be tested against the feed compatibility conditions. Figure 8c simply illustrates this where a high-speed block is neighbored by two low-speed segments, which could be either linear or Bezier segment. In this case, all the acceleration transition must be planned within the kth segment, and the compatibility conditions can be written as F k−1 þ F k F k þ F kþ1 t e;k−1 þ t e;k ≥ 0 Lk − 2 2 ð37Þ If Eq. 37 cannot be satisfied, achievable speed of the segment k must be lowered so that the speed transition from and to the segments k−1 and k+1 is achieved. In simple cases, maximum speed along the Bezier blends can be computed in a forward traversal search algorithm, and the compatibility conditions from the start to the end of the tool path are checked. If a violation occurs, feedrate of the current block is reduced until it satisfies the compatibility conditions with its neighboring blocks. However, in a large-scale tool path compromised of many blocks, a compatible solution may not be acquired given the commanded feed, acceleration, and jerk values. In such circumstances, violations can only be corrected by tracing back the feedrate through the planned feed values and perform adjustment to earlier segments. A practical search algorithm is implemented here to efficiently generate a kinematically compatible feed profile. The proposed algorithm can be used offline for the entire tool path all at once, or it can be implemented in a windowing fashion for real-time execution. The feed planning algorithm is presented as follows: Step 1 All the feeds in a scheduling window are initiated to a conservative feed value, Fk =vstart where k=1…N. Step 2 Compatibility conditions are checked for each block counting in forward and backward directions simultaneously. If the there is no kinematic violation in any block, all the block feeds are updated gradually by the amount of dv, Fk =Fk +dv and the velocity increment for the next round is doubled, dv = 2dv. However, if there is any kinematic violation for a block, the velocity increment is reduced by half, dv=dv/2 and the feedrates are updated. Step 3 If the kinematic violation persists in a segment, its feedrate is frozen, and the rest of the blocks are updated with the current feed increment, dv. If the violation still persists at a certain block, in this case, the neighboring block feedrates are also frozen, and the remaining feedrates are updated. Step 4 The feed update continues, and the final feed profile is generated when all the block feedrates are frozen and cannot be updated. The proposed feedrate scheduling technique is applied on the tool path shown in Fig. 6a. The cornering tolerance is set to 25 μm and desired feedrate is set to F=35 mm/s. Tangential acceleration and jerk limits are set to 1,500 mm/s 2 and 20 × 10 4 mm/s 3 , respectively. Acceleration limits of the drives are also set to Ax,max = Ay,max =1,500 mm/s2, and the resultant feed profile is shown in Fig. 9a. As observed, segments are connected to each other with smooth acceleration transients, and corner segments are traveled at lower speeds considering acceleration limits of the drives. Furthermore, due to low acceleration and jerk limits, desired tangential feedrate could not be reached along the tool path. In Fig. 9b, the limits are increased to Amax =Ax,max =Ay,max =2,000 mm/s2 and Jmax =40×104 mm/s3. In this case, desired feed could be reached. 3.3 Real-time interpolation After smoothing the given discrete path with Bezier blends, the new tool path is composed of linear and Bezier segments, and care must be taken while interpolating the mixed trajectory. Linear segments can simply be interpolated with linear interpolation: 2 3 xðkT s Þ 4 yðkT s Þ 5 ¼ Pk þ Pkþ1 −Pk sðkT s Þ; k ¼ 0…N kPkþ1 −Pk k zðkT s Þ ð38Þ where s(kTs) is the displacement profile sampled at sampling time of the interpolator, Ts, and N is the number of interpolation samples. However, since Bezier curves are not arc length parameterized [31], feedrate fluctuations will occur if it is Author's personal copy Int J Adv Manuf Technol where xprev, yprev, and zprev are the axis commands applied in the previous control sample. The error between the desired and tested arc increments is e ¼ Δsdes −Δstest ð41Þ and its gradient with respect to the tested spline parameter is derived using Eqs. 39 and 41 as de ¼ dutest Δxtest Δxtest Δu Δytest Δu Δstest þ Δytest þ Δztest Δztest Δu ð42Þ Fig. 8 Compatibility conditions along successive segments interpolated by applying constant parameter increments Δu, which are proportional to the desired arc increment Δs in the form Δu ¼ 1 Δs LB ð39Þ Furthermore, only G2 continuity is pursued while fitting the Bezier curve to the sharp corners. As a result, while traveling at constant speed, severe feed fluctuations may occur at the transition points from linear to Bezier segments since the magnitude of tangent vector of the Bezier at the junction points is not matched. Such discontinuity will result in high frequency acceleration and jerk harmonics and will cause unwanted vibrations exciting structural modes of the drive system. Taylor approximation has been used in general practice to interpolate parametric curves, which may fail to work when crossing from the linear segment to the Bezier segments at high speed [31]. In order to avoid such problems, the iterative spline parameter computation technique from Erkorkmaz and Altintas [7] is applied to accurately interpolate the Bezier blends. The idea is to solve the value of Bezier parameter Δu to realize the desired arch displacement Δs. The arc increment Δstest corresponding to the tested spline parameter utest is estimated by computing the resulting axis increments: 9 qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi > > Δstest ¼ ðΔxtest Þ2 þ ðΔytest Þ2 þ ðΔytest Þ2 > > > > where : > > = Δxtest ¼ xtest −xprev ; Δytest ¼ ytest −yprev ; Δztest ¼ ztest −zprev > xtest ¼ ð1−uÞ5 P0;x þ 5uð1−uÞ4 P1;x þ … þ u5 P5;x > > > 5 4 5 > > ytest ¼ ð1−uÞ P0;y þ 5uð1−uÞ P1;y þ … þ u P5;x > > ; 5 4 5 ztest ¼ ð1−uÞ P0;z þ 5uð1−uÞ P1;z þ … þ u P5;z ð40Þ where (dxtest/du), (dytest/du), and (dztest/du) are simply obtained by substituting the calculated value of utest into the derivative expressions given in Eq. 2. The correct value of the spline parameter is computed with regard to the convergence of the below iteration (i): ðutest Þiþ1 ¼ ðutest Þi − ei ðde=dutest Þi ð43Þ The desired convergence is achieved when the arc increment error e is below 10−8 in Eq. 43. Since the Bezier blend is smooth and does not show sharp changes in the curvature, the initial guess for utest can be obtained through linear approximation of the nonlinear relationship between the arc length s and spline parameter u from Eq. 38. Depending on the availability of a close initial guess and an analytical gradient enables Eq. 43 to converge reliably, within five iterations, at each trajectory interpolation cycle. 4 Simulation and experimental results The proposed corner smoothing technique is tested through simulations and experimentally validated. At first, a simulation study is performed to illustrate the effect of curvature optimized corner smoothing. Experimental tracking experiments are then conducted on a conventional CNC machine tool controlled by in-house developed NC system. 4.1 Simulation results A 2-D rectangular tool path shown in Fig. 10 is smoothened with quintic Bezier blends. The cornering tolerance is selected as 150 μm, and the corner points are indicated as Pk, k=0, Author's personal copy Int J Adv Manuf Technol Fig. 9 Scheduled feedrate along corner smoothened tool path 1,…, 4. All the corner angles are 90° for this tool path, and they are smoothed with both using curvature optimal and nonoptimal Bezier blends. In the proposed curvature optimal Bezier blending method, the optimal control point ratio, n = 1.3265, is looked up efficiently from Eq. 19. In the remaining two cases, n is selected greater and smaller than the optimal value. Figure 10b shows the change in the curvature. As noted, proposed blending technique ensures G2 continuity where curvature at the junction points is zero for any n. In addition, when the optimal corner ratio is utilized, it delivers the smallest curvature extremum. The feedrate profile along the tool path is then generated as presented in Section 3, and presented in Fig. 11. As observed, when the curvature is not optimized along the Bezier, the cornering feedrates are conservative. Total cycle time for the proposed curvature optimized method is the smallest TΣ =0.3655 s as compared to the nonoptimal cases where the cycle times are TΣ =0.3874 s at n=0.6878 and TΣ =0.3691 s at n= 1.9652. This proves that the proposed Bezier corner smoothing method can deliver curvature continuous corner smoothing with minimum curvature extremum for the fastest cornering. 4.2 Experimental results A commercial CNC machine tool is retrofitted to implement the proposed corner smoothing algorithms shown in Fig. 12. The conventional NC system is cancelled by switching the amplifiers of the machine into torque mode and modifying the PLC. Encoder feedback is taken from the motor side rotary encoders, and torque commands are directly send to the amplifiers. dSpace® real-time control system is utilized and P-PI cascade controllers are implemented for each axis for accurate position control. The trajectory is generated off-line in MATLAB® environment, and it is interpolated in real-time at the closed loop control interval of 10 kHz. A realistic case study is presented to validate the effectiveness of the proposed sharp corner smoothing algorithm on a complex planar tool path shown in Fig. 13. The tool path consists of 126 linear segment lengths varying from 3 mm to 13 mm. The desired travel speed for each line is F = 100 mm/s, maximum path acceleration is A max = 2,500 mm/s2 and jerk is set to be maximum Jmax =20× 104 mm/s3. The x- and y-axis acceleration limits are selected identical to the tangential acceleration Amax =Ay,max = Amax =2,500 mm/s2. The tool path is traveled at three different trajectory generation strategies. Firstly, if the proposed corner smoothing technique is not applied, the motion must be commanded to perform an instantaneous stop at the end of each linear segment since the linear segments only ensure position continuity. In this case, the jerklimited acceleration profile is utilized to plan the feed motion along each linear segment individually, and the point-to-point trajectory is generated. The resultant tangential feed profile and axis kinematics are shown in Fig. 14. As shown, servo system undergoes instantaneous stops at the junction points (see Fig. 14a). Please note that the path speed only reaches the commanded feed at longer linear segments due to the limited acceleration of the drives. Since linear tool path has zero curvature, axis accelerations and velocities never exceed given bounds as shown in Fig. 14b. The total cycle time is 13.39 s. Next, the proposed corner smoothing technique is implemented. The cornering tolerance is set to ε=100 μm, and the tool path shown is smoothened. Since the tool path is blended with the curvature continuous Bezier blends, it can be traveled at a constant speed without stopping. In other words, a “nonstop” constant feed motion can be achieved. The reference tangential feed profile is shown in Fig. 15. The dashed line presents the “constant feed profile.” As observed, the path speed is constant along the entire tool path, and total cycle time can be reduced down to 5.8 s. This cycle time is less than half of the conventional case. However, when the tool path is traveled at constant feedrate, axis acceleration limits are exceeded (see dashed lines in Fig. 15d, e). This is simply due to curvature of Bezier blends and requires the feedrate to be lowered in order to avoid axis acceleration or actuator saturation. Author's personal copy Int J Adv Manuf Technol Fig. 10 Rectangular tool path At last, feedrate along the smoothed tool path is scheduled where the tangential velocity is reduced down to respect the acceleration limits of the drives, Ax,max and Ay,max. The “scheduled feed profile” is presented in Fig. 15a by the solid line. As shown, the feed is lowered before entering Bezier blend sections so that the axis acceleration limits are respected. Particularly, the feedrate is lowest at the four sharp corners, i.e., legs of the Starfish. It is increased along the linear sections to minimize the cycle time. Solid lines in Fig. 15d, e show that the axis acceleration limits are respected in the proposed method. The total cycle time is computed to be 6.64 s. This cycle time is slightly higher than the “constant feed” case since the feedrate is lowered at Bezier sections. Nevertheless, it is almost half of the point-to-point case. This proves that the developed system effectively schedules the feedrate to achieve highest productivity in high-performance motion stages while utilizing physical limits of the machines. The tracking responses of x- and y-axes are compared in Fig. 16. Largest tracking errors occur when high acceleration is demanded from the drives. This is mostly due to the fact that motion controllers cannot fully cancel the drive inertia in the feed-forward control loop. Since axis accelerations are bounded in the proposed scheme, it delivers tracking errors similar to the point-to-point motion. However, when the tool path is traveled at constant speed, the acceleration limits are exceeded at the corner sections and the tracking performance is degraded severely as shown in Fig. 16b, c. 5 Conclusions Fig. 11 Scheduled feedrate profile along rectangular tool path A practical smooth motion generation algorithm for linear segmented tool paths is presented in this paper. Quintic Bezier blends with six control points are designed to blend the discrete linear segments with curvature continuous transitions. The feedrate along the multi-segmented tool path is scheduled efficiently to minimize the total cycle time and interpolated smoothly. Compared to the previous works, the proposed algorithms in this paper have the following advantages: (1) The transition scheme can realize G2 continuity, optimum curvature for high-speed cornering, and also control of the Author's personal copy Int J Adv Manuf Technol Fig. 12 Experimental setup cornering errors. (2) The feed motion planning algorithm utilizes S-curve-type acceleration profile and schedules the feedrate efficiently along corner-blended tool path to respect the acceleration limits of the drives. (3) Feedrate transition from linear to Bezier segments and also the feed motion along the Bezier curve are interpolated accurately eliminating unwanted fluctuations. Finally, proposed algorithms are validated in simulations and also implemented for complex 2-D tool path contouring on the in-house controlled CNC machine tool. Fig. 13 Experimental planar tool path Appendix Curvature along the Bezier blend can be derived analytically from the well-known expression, κ ð uÞ ¼ jBu ðuÞ Buu ðuÞj jBu ðuÞj3 Author's personal copy Int J Adv Manuf Technol Fig. 14 Profiles during point-topoint motion A single Bezier blend is illustrated in Fig. 17. The corner transition point is the origin of the Cartesian coordinate system, and control points can be written from Fig. 17 as Fig. 15 Comparison of scheduled and constant feed profiles 9 d ð2n þ 1Þ d ð n þ 1Þ d > > ; P1 ¼ ; P2 ¼ = 0 0 0 dcosðθÞ d ðn þ 1ÞcosðθÞ d ð2n þ 1ÞcosðθÞ > > ; P3 ¼ ; P4 ¼ ; P5 ¼ dsinðθÞ d ðn þ 1ÞsinðθÞ d ð2n þ 1ÞsinðθÞ P0 ¼ ð44Þ Author's personal copy Int J Adv Manuf Technol Fig. 16 Experimentally recorded tracking errors of the axes where n=c/d, and the Quintic Bezier Blend is parameterized by plugging the control points from Eq. 44 into Eq. 1 as BðuÞ ¼ 9 8 Lðcosθu4 −5u−3cosθ þ 10u3 −10u4 þ 3u5 þ 2Þ > > > > > > Bx ¼ > > 2 > > = < 2 3 2 3 5Luðu−1Þðu þ 4u cosθ−3cosθu −5u þ 3u þ 1Þ − > > 2n þ 1 > > > > > > Lusinθð5nu−15u−3nu2 þ 6u2 þ 10Þ > > ; :B ¼ y 2n þ 1 ð45Þ where LT =2c+d, θ is the inner cornering angle, and u∈[0,1]. The 1st and 2nd derivatives, B ¼ dBduðuÞ and Buu ¼ dBduð2uÞ , can be computed from Eq. 45 to evaluate the curvature along the Bezier blend as κðuÞ ¼ −12ð2n þ 1Þnusinθðu−1Þðnu−2u−2nu3 þ nu4 þ 4u3 −2u4 þ 1Þ 3 LT A 2 ð46Þ where 9 A ¼ a1 u8 þ a2 u7 þ a3 u6 þ a4 u5 þ a5 u4 þ a6 u3 þ a7 u2 þ n2 > > > > > > a1 ¼ ð1−cosÞ 72−72n þ 18n2 > > > > 2 > a2 ¼ 288cosθ þ 288nð1−cosθÞ−72n ð1−cosθÞ > = 2 a3 ¼ 432ð1−cosÞ þ 432ncos þ n ð116−100cosθÞ > > a4 ¼ 288ðcosθ−1Þ þ 288nð1−cosθÞ þ 48n2 ðcosθ−2Þ > > > 2 > > a5 ¼ 72ð1−cosθÞ−60nð1−cosθÞ þ 6n ð5 þ cosθÞ > > > 2 > a6 ¼ 24nðcosθ−1Þ þ 8n ð2−cosθÞ > ; 2 a7 ¼ 12nð1 þ cosθÞ þ 12n ð47Þ References Fig. 17 Single Bezier blend 1. Piegl L, Tiller W (2003) The NURBS book, 2nd edn. Springer, Berlin Heidelberg 2. Koren Y, Lin R-S (1995) Five-axis surface interpolators. Ann CIRP 44(1):379–382 3. Zhang QG, Greenway RB (1998) Development and implementation of a NURBS curve motion interpolator. Robot Comput Integr Manuf 14(1):27–36 Author's personal copy Int J Adv Manuf Technol 4. Langeron JM, Duc E, Lartigue C, Bourdet P (2004) A new format for 5-axis tool path computation, using Bspline curves. Comput Aided Des 36(12):1219–1229 5. Timar S, Farouki R, Smith T, Boyadjieff C (2005) Algorithms for time-optimal control of CNC machines along curved tool paths. Robot Comput Integr Manuf 21:37–53 6. Wang F-C, Wright PK, Barsky BA, Yang DCH (1999) Approximately arc-length parameterized C3 quintic interpolatory splines. J Mech Des-T ASME 121(3):430–439 7. Erkorkmaz K, Altintas Y (2005) Quintic spline interpolation with minimal feed fluctuation. J Manuf Sci E-T ASME 127(2):339–349 8. Barre PJ, Bearee R, Borne P, Dumetz E (2005) Influence of a jerk controlled movement law on the vibratory behaviour of highdynamics systems. J Intell Robot Syst 42(3):275–293 9. FANUC (2006) 5-axis machining features FANUC series 30i-model a/31i-model A5. Int J Mach Tool Manu 46:235–242 10. Siemens (2009) Milling with SINUMERIK: 5-axis machining manual 11. Wang J-B, Yau H-T (2009) Real-time NURBS interpolator: application to short linear segments. Int J Adv Manuf Technol 41(11–12): 1169–1185 12. Tsai M-S, Nien H-W, Yau H-T (2010) Development of a real-time look-ahead interpolation methodology with spline-fitting technique for high-speed machining. Int J Adv Manuf Technol 47(5–8):621–638 13. Fleisig RV, Spence AD (2001) Constant feed and reduced angular acceleration interpolation algorithm for multi-axis machining. Comput Aided Design 33(1):1–15 14. Goldenthal R, Bercovier M (2004) Spline curve approximation and design by optimal control over the knots. Computing 72(1–2):53–64 15. Werner H, Thomas R (2004) Smoothing rational B-spline curves using the weights in an optimization procedure. Comput Aided Geom D 12(8):837–848 16. Macfarlane S, Croft EA (2001) Design of jerk bounded trajectories for on-line industrial robot applications. Proc IEEE Int Conf Robot Autom 1:979–984 17. Jouaneh MK, Wang Z, Dornfeld DA (1990) Trajectory planning for coordinated motion of a robot and a positioning table. Part 1. Path specification. IEEE Trans Robot Autom 6:735–745 18. Jouaneh MK, Dornfeld DA, Tomizuka M (1990) Trajectory planning for coordinated motion of a robot and a positioning table. Part 2. Optimal trajectory specification. IEEE Trans Robot Autom 6:746–759 19. Yutkowitz SJ, Chester W (2005) Apparatus and Method for Smooth Cornering in a Motion Control System. United States, Siemens Energy & Automation, Inc, Alpharetta, GA, (US Patent 6922606) 20. Pateloup V, Duc E, Ray P (2010) B-spline approximation of circle arc and straight line for pocket machining. Comput Aided Design 42: 817–827 21. Zhang L, You Y, He J, Yang X (2011) The transition algorithm based on parametric spline curve for high-speed machining of continuous short line segments. Int J Adv Manuf Technol 52:245–254 22. Zhao H, Zhu L-M, Ding H (2013) A real-time look-ahead interpolation methodology with curvature-continuous B-spline transition scheme for CNC machining of short line segments. Int J Mach Tool Manu 65:88–98 23. Bi Q, Wang Y, Zhu L, Ding H (2011) A practical continuouscurvature Bezier transition algorithm for high-speed machining of linear tool path. J Intell Robot Syst 7102:465–476 24. Ekorkmaz K, Yeung C-H, Altintas Y (2006) Virtual CNC system. Part II. High speed contouring application. Int J Mach Tool Manu 46(10):1124–1138 25. Beudaert X, Lavernhe S, Tournier C (2013) 5-axis local corner rounding of linear tool path discontinuities. Int J Mach Tool Manu 73:9–16 26. Sencer B, Susumu I, Shamoto E (2014) Curvature-continuous Sharp Corner Smoothing Scheme for Cartesian Motion Systems. 13th IEEE International Workshop on Advanced Motion Control, Yokohama, Japan 27. Erkorkmaz K, Altintas Y (2001) High speed CNC system design. Part I: jerk limited trajectory generation and quintic spline interpolation. Int J Mach Tool Manu 41(9):1323–1345 28. Lin R-S (2000) Real-time surface interpolator for 3-D parametric surface machining on 3-axis machine tools. Int J Mach Tool Manu 40(10):1513–1526 29. Sencer B, Altintas Y, Croft E (2008) Feed optimization for five-axis CNC machine tools with drive constraints. Int J Mach Tool Manu 48(7–8):733–745 30. Altintas Y, Altintas Y, Erkorkmaz K (2003) Feedrate optimization for spline interpolation in high speed machine tools. CIRP Ann 52:297– 302 31. Heng M, Erkorkmaz K (2010) Design of a NURBS interpolator with minimal feed fluctuation and continuous feed modulation capability. Int J Mach Tool Manu 50:281–293 32. Kreyszig E (1991) Differential geometry, 1st edition. Dover Publications