A dynamic optimal trajectory generator for Cartesian Path following Edward Red Department of Mechanical Engineering, Brigham Young University, 435 CTB, P.O. Box 24201, Provo, Utah 84602-4201 (USA) (Received in Final Form: January 12, 2000) SUMMARY This paper considers a dynamic and adaptive trajectory generator for negotiating paths using S-curves. Applying constant jerk transitions between the constant acceleration and deceleration periods of the trajectory, the trajectory will optimally transition to the desired speed setting. Optimal is defined to be the minimum time to transition from the current speed to the set speed for the move segment when jerk and acceleration are limited. The S-curve equations will adapt to instantaneous changes in speed setting and path length. An integrated motion planner will determine allowable speeds and transitional profiles based on the remaining move distance. KEYWORDS: Trajectory generator; Cartesian path; S-curves; Optimal time; Integrated motion planner. INTRODUCTION Motion planning and trajectory generation lie at the heart of robotic and machine tool path control. New digital drive technologies and computational speeds are changing motion control paradigms that, in the past, relied on pre-processors to descretize, shape and buffer moves into a series of micro move segments passed to the controller. The path speeds were limited by how fast the descretized move segments could be processed by the controller, i.e. the block processing speed. Free-form shapes (NURBS, B-splines, etc.) now form the core of most modern CAD/CAM systems. The current movement is to develop dynamic interpolators that can process object shapes directly, rather than decomposing them into small linear segments. The challenge of modern motion planning and trajectory control is to process a series of macro moves dynamically and smoothly, while applying a set of limiting conditions such as speed, acceleration and jerk. This paper will show how this might be accomplished by proper motion planning and trajectory generation. An optimal approach is applied that adapts to instantaneous speed changes and increases in path length. 1. Historical perspective In the past industrial trajectory generators (TG) used constant acceleration trapezoidal profiles to move to a desired speed setting. The simplicity of the profile shape minimized the calculations for blending consecutive moves. Unfortunately, as the speeds and accelerations of modern robots and machine tools continued to increase, these simple shapes begin to stress the mechanism drives because of inherent acceleration discontinuities at the beginning and end of the profile. The industrial term S-curve or S-profile describes the modern profile used to smooth the motion transitions, Figure 1. This curve can simply be a second or higher order polynomial in speed, with polynomial coefficients determined by transitional motion conditions. These profile types are described in robotic texts by Craig1 and Parkin2. To reduce mechanism jerkiness and noise, more sophisticated polynomial profiles evolved. For example, Lloyd3 used a 5th order polynomial to blend two consecutive moves that are not necessarily tangent and that may change dynamically. This motion environment is representative of telerobotics or sensor driven control moves. Rather than examine speed optimality, Lloyd s algorithms were directed towards blending continuity and smoothness in the face of motion uncertainty. 2. Dynamic considerations The advent of free form surfaces has spawned the development of curve interpolators. Wang4 describes a realtime quintic spline interpolator that generates a set of spline segments where du/ds=1 over certain parameter ranges. This means that quintic curves can be parameterized and Fig. 1. S-curve profile. Robotica (2000) volume 18, pp. 451 458. Printed in the United Kingdom 2000 Cambridge University Press fitted to these segments based on arc length. Because the curve parameterization methods apply numerical preprocessing methods such as Newton s method, they cannot adapt to dynamic changes in speed or path length. In contrast, Yang5 developed an on-line TG capable of dynamically interpolating NURBS paths without shape preprocessing. An efficient and bounded predictor-corrector method uses finite difference theory to predict and correct the parametric changes necessary to generate the desired curvilinear distances along the trajectory. Paper Function This paper will demonstrate how motion planning can adaptively apply an S-curve to smooth the motion when both speed and move distance are changing dynamically, and subject to the following constraints: acceleration and deceleration along the trajectory cannot exceed max allowables; jerk is specified and limited; set speed can be attained if the remaining move distance is sufficient; move distance can be dynamically increased during the move when the move buffer detects a new tangent move. This trajectory generator (TG) is quite low level since it is not concerned with the type of curve (linear, circular, NURBS, etc.) or space (Cartesian or joint) that defines the move. Yang6 references a broad survey of papers that consider task-level trajectory generation and motion planning, which is not the focus of this paper. Rather, the focus is moving smoothly along a sequence of path segments subject to limiting motion conditions. The motion planner should determine the move length, speed setting, and the length of contiguous tangent moves. The approach outlined minimizes the time to change speeds under constant jerk transitions and linear accel/decel periods, i.e. it is time optimally smooth. It is adaptive because it responds immediately to dynamic changes in speeds and distance. And the TG can be applied in both Cartesian space and joint space. S-CURVE REVIEW The motion conditions that determine the polynomial coefficients for a typical S-curve are zero acceleration at the transitional endpoints, the desired starting and ending speeds, and transitional time and/or distance. Other limiting conditions may be applied such as maximum jerk and acceleration. For comparison Figure 1 includes a trapezoidal ramp with ar<am that will accomplish the same speed change in time T. Obviously then, polynomial transitions require more time than a trapezoidal transition when both use the same limiting acceleration. This is the price that you pay for smoothness. Referencing Figure 1, we consider a pure S-curve (no linear transition) applied to the rise period from initial speed vo to the set speed vs. The form assumed for the S-curve speed profile is v(t) = co+c1t + c2t2 (1) giving the acceleration and constant jerk equations: a(t) = c1+2c2t (2) j(t) = 2c2 = const (3) The rise motion can be divided into 2 periods a concave period followed by a convex period. 1. Concave period The concave motion conditions are v(0) = vo; a(0) = 0; a(T/2) = am; and j(0) = jm, where jm is the maximum jerk allowed for the mechanism, and am is the maximum acceleration encountered at the S-curve inflection point. Applying these conditions to solve for the unknown constants in (1) and (2), we get co=vo; c1 = 0; and c2 = jm/2=am/T. We note the important relation jm=2am/T (4) Equation (4) is important because it shows that the profile time, maximum acceleration, and maximum jerk are not independent of each other. If jerk is limited to the value jm, then am and T must be chosen such that 2am/T jm. The equations for s (position), v (speed), and a (acceleration) along the concave portion of the S-curve become s(t) = vot + jmt3/6 (5) v(t) = vo + jmt2/2 (6) a(t) = jmt (7) These equations apply for 0 t T/2. Note also that at t = T/2, v(T/2) = (vs+vo)/2 (8) s(T/2) = sh = [vo+am 2/(6jm)]am/jm (9) where sh is the distance to the inflection point. This distance is expressed in terms of vo, am and jm,and not T. 2. Convex period The convex period applies for T/2 t T. Letting time be zero as measured from the beginning of the convex period (0 t T/2), the pertinent motion conditions are v(0) = vh = (vm+vo)/2; a(0) = am; a(T/2) = 0; and j(0) = jm. Applying the motion conditions to solve for the unknown coefficients in (1) (3), we get the equations for s, v, and a along the convex portion of the S-curve: s(t) = vht + amt2/2 jmt36 (10) v(t) = vh+amt jmt2/2 (11) a(t) = as jmt (12) Over the time period T/2 the distance change measured from the halfway point to the ending point of the S-profile is s(T/2) = [vh+am 2/(3jm)]am/jm (13) Adding in the distance at the halfway point gives the total distance traversed in the S-curve, including both concave and convex sections. This simplifies to the total distance S = (vs 2 vo 2)/am (14) 452 Cartesian path 3. Max jerk considerations The S-curve cannot be ideally fitted between all speed changes if the acceleration and jerk are maintained at their allowable limits. Given jerk jm, starting speed vo, and ending speed vs, we determine speeds that respectively end the concave transition and begin the convex transition for an ideal S-curve: v1=vo+am 2/(2jm) (15) v2=vs am 2/(2jm) (16) By setting v1=v2, we calculate the jerk that would fit the Scurve between the speed change v=vs vo: jf=as 2/ v (17) The jerk computed in (17) may be less than allowable and thus sub-optimal, or exceed the allowable. If we use the max allowable jerk, then it is possible for some v s that the ending and beginning speeds overlap (v1>v2). This will call for an acceleration transition to be made as described later in the paper. If v1<v2, then to minimize the time for a speed change we incorporate a linear transition at constant acceleration am. In the max jerk formulation the length of the linear transition is determined by the speed changes spent in the max jerk concave and convex periods. Once these changes in speed have been subtracted from the total v, the remaining speed change is left for a linear transition. The equations that describe the concave and convex profiles are the same as (5) (7) and (10) (12), except that (5) (7) applies for t t1, where t1 is the time to complete the concave S-rise. In (10) (12) vh is replaced by v2. The linear period is described by: s(t) = v1t + amt2/2 (18) v(t) = v1+amt (19) where jerk is zero and 0 < t T 2t1. ADAPTIVE S-CURVE The adaptive S-curve must respond immediately to speed changes or to changes in path length. For example, a machine operator may increase or decrease the feedrate during a face milling opertion using a thumbwheel. The path length may increase because a motion buffer frees a slot for a move that is tangent to the move currently being processed. To adapt to these changes the algorithms must allow for non-zero initial speed, jerk, and acceleration and also for the possibility of a set speed change during the move, Figure 2. Continuity in position, speed, and acceleration must be maintained, but discontinuity in jerk is allowed. Note that jerk discontinuity is built into the S-curve profile when transitioning to or from any period spent in constant acceleration. This includes the linear ramps and the constant speed periods. 1. Adaptive algorithm To make the ideal S-curve both adaptive and responsive when the set speed changes during a move, we apply the motion conditions v(0) = vo; v(Tc) = vs; a(0) = ao; and a(Tc) = 0. Given the entry conditions, Tc becomes the time to complete the transition to the new set speed. To evaluate the transition requirements, we force a convex profile and determine the jerk required to complete the transition without considering any bounds on the jerk value. We then compare this jerk value to the maximum jerk as follows. Applying the motion conditions leads to these equations: v(t) = vo+aot aot2/(2Tc) (20) a(t) = ao aot/Tc (21) Applying the condition v(Tc) = vs leads to the following equation for Tc: Tc=2 v/ao (22) where v=vs vo. If v > 0, there will be a real positive solution for Tc, but if v = 0 and ao 0, then Tc = 0 would specify an infinite jerk. Thus, a speed change can cause an undesirable jerk situation. The response to the speed change must not exceed the maximum acceleration or maximum jerk. For v > 0 the jerk is calculated from j(Tc) = ao/Tc (23) If the absolute value of (23) exceeds the maximum jerk allowed (ao/Tc > jm), then a transition must be made to an intermediate speed using the maximum jerk. Figure 3 shows how the transition must be made to new set speeds, when the jerk is limited and where vs is the old set speed and vs is the new set speed. In 3a) the jerk is not exceeded in moving to the new set speed. In 3b) and 3c) the maximum jerk is exceeded and the transition to the new set speed will require a transition to an intermediate speed vi. At this intermediate speed the acceleration is zero. This profile can then be followed by a normal S-curve transition to the new set speed indicated by vs. The transition to the new set speed is thus broken into two phases: jerk transition to speed vi where the acceleration is zero. normal S-curve transition from vi to vs. The next few sections will consider the transitional cases that must be handled by the adaptive generator in more detail. Fig. 2. Adaptive S-curve profile. Cartesian path 453 2. Transitions where v > 0 and j(Tc) < jm Figure 3 presents a number of subtleties. If vs>0, we apply the check ao/Tc < jm to see if the maximum jerk is exceeded. If so, we transition to vi and call this case a speed transition. If the maximum jerk is not exceeded, then we must determine how to transition to the new set speed. The transition possibilities vary, depending on whether we are initially in a concave period or convex period and the relative difference in the set speed. In the optimal sense we choose a set of moves that always uses the maximum jerk. To determine the proper transition, we note that equation (16) determines the speed that begins a max jerk convex transition to the new set speed. We let this initial speed be represented as vc and thus repeat an earlier equation as vc=vs am 2/(2jm). We also note that the time to complete the convex transition is Tc=am/jm. At Tc the distance change required for the convex transition is s(Tc) = [vc+am 2/(3jm)]am/jm. 3. Transitions where vo<vs<vs and vo on concave profile The problem is to make a constant jerk transition from a concave profile when the set speed is reduced below the old set speed but exceeds the current speed vo. To resolve this problem, we compare vc to the speed that ends the concave portion of the current transition, given the current entry conditions. The time, speed, and distance required to complete the concave transition are t1 = (am ao)jm (24) v1=vo + (am 2 ao 2)/(2jm) (25) S1=vot1+aot1 2/2 + jmto 3/6 (26) If vc v1, then the transition to the new set speed occurs in one of two ways: If vc=v1, we complete the current concave transition to speed v1, then follow it with a convex transition from v1 to the new set speed. This is referred to as a jerk transition. If vc>v1, then we complete the current concave transition, follow it with a linear transition between v1 and vc, and then, beginning at vc, complete a new convex transition to the new set speed. This is referred to as a linear transition. If vc<v1, then the Figure 4 case emerges. This case, referred to as an acceleration transition, can be solved by noting that the speed and acceleration for the previous concave curve and the new convex curve must be equal at Tt where the speed is vt. In this case the speed change is sufficiently small that we cannot reach the maximum acceleration. Nevertheless, there exists a point where the concave profile from the previous condition will be tangent to the convex profile from the new transition. This point will lie between vo and vs. At this point the acceleration and speed of both profiles are the same, although there will be a sign change in the jerk. The pertinent equations are: vo+aoTt + jmTt 2/2=vs jm(T Tt)2/2 (27) ao + jmTt = jm(T Tt) (28) Solving these equations, we get: T = [ ao + sqrt(2 ao 2 + 4 v jm) ] / jm (29) Tt = (jm T ao) / (2 jm) (30) 4. Transitions where v0<vs <vs and vo on convex profile We take the initial conditions and determine the speed v1 that would conclude a concave transition. We again calculate vc, and then compare vc to v1. If vc v1, then the transition to the new set speed occurs as either a jerk or linear transition. 5. Transitions where vo<vs <vs and vo on linear profile. We again calculate vc then compare vc to vo. If vc>vo, then the transition to the new set speed is attained by a linear transition from vo to vs. If vc=vo, then we apply a jerk transition to vs. Fig. 3. Adapting to changing speeds. Fig. 4. Acceleration transition. 454 Cartesian path 6. Speed transition In a speed transition any entry state is immediately converted to a convex profile with jerk jm. This minimizes the time for the transition. The motion conditions are v(0) = vo; v(Ti) = vi; a(0) = ao; a(Ti) = 0; and j(0) = jm. These conditions lead to the equations: s(t) = vo t + ao t2/2 jmt3/6 (31) v(t) = vo+ao t jm t2/2 (32) a(t) = ao jm t (33) where s is interpreted as a position change. Applying a(Ti) = 0 leads to the solution for the transition time: Ti=ao/jm. (34) Substituting Ti into (31) and (32) gives the solutions for Si and vi at Ti. The transitional modes to get from vi to the new set speed now depend on the speed difference. 7. Deceleration transitions We have not examined all possible dynamic move situations. In the cases considered thus far, the set speed is either greater than the entry speed and/or the entry acceleration is positive. When the new set speed is less than the entry speed and/ or the entry acceleration is negative, transitional requirements will be applied that are similar to those already considered. For brevity we will not examine these cases directly, although the next section indirectly considers deceleration situations when the move is to be ended with non-zero speeds and accelerations. This is the case where a tangent move enters the buffer and the motion type is continuous path, i.e. it is desired to maintain the speed across contiguous moves. 8. Non-zero terminal conditions The function of the Motion Planner (MP) is to accumulate the length of the tangent moves in the buffer that follow the current move. Yang6 shows that length computations are not computationally intensive and can be made dynamically, providing accurate estimates even for moves along parametric curves. As the planner updates the tangent distance they are made available to the TG. When the current move is followed by one or more tangent moves, the MP must provide continuity across the boundary between the current move and the next move. This means that the move will terminate with non-zero speed. The ending acceleration and profile type will depend on the desired speed and the remaining distance of the contiguous tangent moves. MOTION PLANNING It is the purpose of the motion-planning algorithm to determine if an increased speed can be reached in the time and distance available. If not, the MP must set a speed that can be attained. The Motion Planner (MP) then supplies the time step to the TG and returns the state at the completion of this step. Two observations are useful here: A set speed that is reduced from the previous value will result in the TG attaining satisfactory terminal conditions. Thus, speed can be reduced without a speed check. A set speed that is increased from the previous setting may result in unsatisfactory terminal conditions. Thus, the set speed will have an upper bounds based on the current motion state. 1. Planning approach The normal approach for a Motion Planner (MP) is to determine a feasible upper bound to the set speed, given the remaining move distance, and other terminal motion conditions. Unfortunately, a closed-form solution proves intractable, given the practical constraints of a real-time TG. The complexity arises because we are never sure what form the S-curve will take as the set speed is changed. Without knowing whether the S-curve can attain its max acceleration, trapezoidal profiles cannot be used to estimate the top set speed that can be reached within the remaining move distance. The solution is to make a max jerk step to increase the entry speed towards the new set speed. In effect, we incrementally adjust the speed up, but within the bounds of remaining distance and other motion conditions. We only increase the speed if we can meet the terminal conditions. We do not predict analytically the max speed attainable at each step, but instead predict a set speed that is attainable under the current state, given the remaining distance and other motion conditions. This approach is incrementally optimal. 2. Planning algorithm The MP considers the entry state (vo, ao, Lo) and the desired set speed (vs). The other important parameters that are used to make transitional decisions are: Lm = total distance of the current move LR = remaining distance to complete the move = Lm Lo (calculated at entry) Lf = distance of following tangent moves. For point to point moves this parameter will be passed into the TG with a 0 value. La = available distance to complete decel to 0 speed from current motion state = LR+Lf There are numerous transition possibilities depending on the entry state and the set speed (see Table I). States 1 7 are self-explanatory, while 8 13 need further explanation. CONVEX INT and CONCAVE INT refer to an entry state where the new set speed calls for a speed transition to an intermediate speed (vi). The defined constants that include PARTIAL in their name refer to an entry state and speed change that require an Cartesian path 455 acceleration transition because we cannot reach the maximum acceleration am. To accommodate the transition through the various states, we define np = number of profiles traversed P = vector of profile types Lp = distance vector Vp = speed vector Ap = acceleration vector Tp = time vector where each vector is of size 7. There are never more than 7 transitional states for any entry state. P is a vector that stores the profile type for each segment in sequence. The remaining vectors store the boundary values necessary to transition each intermediate profile given the remaining move distance and desired set speed. For example, we could enter on a CONST SPD transition, then have the speed increased, requiring an order P = [1,2,3,4,5,6,7]. One trajectory step in time is then used to step through the profiles, occasionally moving through more than one profile type in the P sequence. 3. MP transitions The algorithms presented here step into Case 1 or 2 when the set speed is non-zero, depending on the entry state. Case 3 considers the special case where the set speed is zero (abort, stop mechanism in middle of move): Case 1: If the entry state is CONST SPD (ao = 0) and vo=vs, then determine whether immediate decel is to begin or a time step at constant speed can be made, given the remaining distance. Enter TG and take a time step based on distance left and transition as needed through profiles. Exit the TG and MP. Case 2: For entry rise or fall states take the desired set speed and other entry conditions, and determine whether the set speed can be attained, given the available distance La. If so, take a normal time step and exit the TG and MP. If the conditions are such that you cannot reach the desired set speed, then apply a max jerk step to increase the speed and exit the TG and MP. Case 3: If set speed is zero and current speed is non-zero, then decelerate to zero speed. In these cases zero speed may be attained before the end of the move is reached. Case 4: If the entry conditions reflect a quiet state (previously aborted or attained zero speed before move distance reached), simply return. Case 2 incorporates the incrementally optimal move described earlier when the desired set speed cannot be attained. By applying the transitional steps properly in each step, Case 2 conditions will always permit a max jerk step to increase the speed. But how well we approach the max possible set speed depends on the time steps being much less than the time to make speed changes. It is recommended that these methods only be applied at trajectory rates that exceed 100 Hz. Note that the higher the rate, the closer the incremental optimal speed will approach the max possible speed. To transition the profiles, the entry time step is compared to the ending and beginning times for the sequence of profiles stored in P. We thus establish the profile that bounds this step in time. Once established we apply the appropriate equations presented earlier to determine the terminal conditions and then return. 4. Cubic solution When speed is to be maintained across contiguous tangent moves, the TG encounters the problem of determining the time to complete the current move given the remaining distance LR. This occurs because it is possible that the current move may complete within a profile rather than at the profile endpoint. And it is critical that the time step to complete the current move never be less than the entry value. The profile transitions must compare the distance that ends the profile to the distance remaining for the current move. The remaining distance can be used to calculate the time to complete the move. The MP then makes a terminal time step that is never less than the entry step. Reviewing the previous equations it is evident that many of the profile types will require a cubic solution for time in terms of the remaining current move distance. This time can then be compared to the trajectory step to determine how and when to complete the current move. The cubic solutions implemented in the MP can be found at http://www2. hawaii.edu/suremath/jrootsCubic.html. Picking the correct solution is simply selecting the minimum real time from the three possible solutions. Table I. Profile numbers for each transitional state Transitional State State Number Transitional State State Number S RISE CONCAVE 1 CONVEX INT 8 S RISE LIN 2 CONCAVE INT 9 S RISE CONVEX 3 PARTIAL CONCAVE RISE 10 CONST SPD 4 PARTIAL CONVEX RISE 11 S FALL CONVEX 5 PARTIAL CONVEX FALL 12 S FALL LIN 6 PARTIAL CONCAVE FALL 13 S FALL CONCAVE 7 456 Cartesian path DEMONSTRATIONS These algorithms have been programmed and tested in C and are being used in university and commercial trajectory motion applications. Figures 5 7 show the adaptive characteristics of the MP/ TG combination for a case where the length of the original move is 400 mm. The set speed is changed several times throughout the move. At 300 mm into the move, another tangent move enters the move buffer of length 100 mm. The MP immediately knows to generate a continuous path profile transition. The maximum acceleration is set to 4000 mm/2 and the maximum deceleration is set to 3000 mm/s2 in each case, while the jerk maximum is increased by 10 in each case. The acceleration values are comparable to those of commercial robots. Given a low jerk value of 5000 mm/s3, Figure 5 shows an expected sloppy response to the dynamic speed changes. A jerk value of 50000 mm/s3 improves the velocity response markedly in Figure 6. And this value of jerk should be reasonable for many mechanisms. When the jerk is set high to simulate infinite jerk, the Scurve in Figure 7 approximates a trapezoidal response profile. Thus, the max jerk TG can closely approximate a trapezoidal profile generator, if necessary. Obviously, the jerk value becomes critical in the trade-off between mechanism responsiveness and smoothness. Ultimately, the mechanisms s design characteristics will decide Fig. 5. S-curve response to changing Vs and Lf for jerk = 5000 mm/s3. Fig. 6. S-curve response to changing Vs and Lf for jerk = 50000 mm/s3. Cartesian path 457 what is acceptable. Smoothness of motion verus responsiveness is a trade-off that can be easily made using these algorithms. Designers can always test the mechanism with different jerk values to get the correct blend of responsiveness and smoothness. Although this example illustrates Cartesian path following, these methods extend just as well to joint moves by ensuring the parameters are in radians. In some Cartesian moves, the tool control frame may experience more orientation change than position change, e.g. when a screw vector is used to represent tool orientation change. The MP/TG will accomodate orientation change if the motion parameters are entered in radians. 1. Computational speed Placed into a large computational loop and tested over a variety of profile shapes, these algorithms required less than 40 s per trajectory step. These algorithms were run under Windows NT 4.0 on an IBM 300 MHz PC. CONCLUSIONS Applying constant jerk transitions between the constant acceleration and deceleration periods of the trajectory, the trajectory generator will transition to the desired speed setting in the minimum time, when jerk and acceleration are limited. Equations are derived that make the S-curve adaptive to dynamic changes in speed setting and to increases in path length. If the desired set speed cannot be attained, then a max jerk acceleration is used to increase the set speed by an incrementally optimal amount. A dynamically integrated motion planner determines allowable speeds and transitional profiles based on the remaining move distance. In some cases the transitions require an intermediate constant acceleration period. The methods apply to Cartesian moves and joint moves equally well. In addition, the algorithms are very fast, averaging less than 40 s per trajectory step. References 1. J.J. Craig, Introduction to Robotics: Mechanics and Control (Addison-Wesley, 2nd edition, 1989). 2. R.E. Parkin, Applied Robotic Analysis (Prentics-Hall, 1991). 3. J. Lloyd and V. Hayward, Trajectory Generation for Sensor- Driven and Time-Varying Tasks Int. J. Robotics Research 12, 380 393 (August, 1993). 4. F.C. Wang and P.K. Wright, Open Architecture Controllers for Machine Tools, Part 2: A Real-Time Quintic Spline Interpolator ASME Journal of Manufacturing Science and Engineering 120, 425 432 (May, 1998). 5. Z. Yang and E. Red, On-line Cartesian trajectory control of mechanisms along complex curves Robotica 15, Part 3, 263 274 (1997). 6. Z. Yang, On-line Cartesian Trajectory Control of Mechanisms along Complex Curves PhD Dissertation (Brigham Young University, September, 1995). Fig. 7. S-curve response to changing Vs and Lf for jerk = 500000 mm/s3. 458 Cartesian path