1. Field of the Invention
The present invention relates generally to wafer handling systems, and more particularly to a system that allows wafers to be moved from point to point under known conditions of acceleration and velocity as well as the rate-of-change of derivative of acceleration called jerk.
2. Description of the Prior Art
In the processing of semiconductor wafers, from which semiconductor chips are produced, the wafers must be transferred from one location to another. In the majority of semiconductor processes, the wafers are oriented such that the disk is parallel to the plane of the floor (the planer orientation). Although the wafer can be rotated such that it is non-planer with the floor in order to facilitate certain semiconductor processes, most of the wafer handling from the wafer storage device, through the tool and then back into another wafer storage device is done with the wafer in this planer orientation. This invention concerns semiconductor wafers or similar substrates that are moving in planer space.
Modern semiconductor wafer processing machines move the wafers with wafer handling robots. Wafer handling robots consist of mechanisms optimized for moving wafers. Some semiconductor processes are conducted in a vacuum chamber. As a result, some of the wafer handling robots operate inside the vacuum environment and some wafer handling robots operate outside the vacuum environment. So called atmospheric wafer handling robots handle wafers outside the vacuum chamber and serve to pass wafers to and from the vacuum robot which operates inside the vacuum chamber. All wafer handling robots are equipped with a manipulator which hold the wafer on the end of the robot arm. Sometimes the wafers are grasped by the manipulator. Other times, the wafer simply rests on tiny pads without otherwise being held by the manipulator.
It is an object of the present invention to provide an improved system for wafer handling.
It is a further object of the present invention to provide a system for wafer handling that minimizes path length and maximizes safe wafer handling speed.
Briefly, a preferred embodiment of the present invention includes a system for wafer handling employing a complex numerical method for calculating a path of wafer travel that controls wafer acceleration and jerk, and results in maximum safe speed of wafer movement from a first point to a second point. Motion is begun along a straight line segment while accelerating to a first path velocity. During this acceleration, the system computer calculates a series of straight line segments and interconnecting sinusiodally shaped paths over which the wafer is to be guided to the second point. The straight line segments and sinusiodally shaped paths are calculated so as to minimize total path length and the time required to move the wafer from the first point to the second point. The system computes the point of entrance and exit to and from each straight and sinusoidal path.
In the Drawing
Because wafers are expensive disks containing extremely complex semiconductor circuits, the wafers must be handled carefully. Bumping, jarring or otherwise mishandling the wafers can result in damage to the wafer or its delicate structures. In addition, sometimes the wafers are not gripped by the manipulator, they are prevented from being flung to their destruction only by friction between the wafer and manipulator. If the acceleration or rate of change of acceleration experienced by the wafer it too high, the valuable wafer can be damaged. Therefore, an object of this invention is to allow wafers to be moved from point to point under known conditions of acceleration and velocity as well as the rate-of-change or derivative of acceleration called jerk.
In general, a wafer cannot be moved from one location to another location via a simple straight-line path. In general, the wafer must be extracted from one storage location and then placed on or in another device or storage location. For example, a wafer might be removed from a storage device (a wafer cassette or a Front Opening Universal Pod (FOUP)) and then placed on a device called a wafer aligner that finds the center and aligns a wafer. After the alignment is complete, the wafer might be removed from the wafer aligner and placed in a wafer process chamber where some process might be performed. The process might include deposition, etch, implant or wafer cleaning, among other process steps. After the wafer is processed, it might be removed from the process chamber and then placed in the same or a different wafer storage device. See
An object of the present invention is to insure that the wafer being moved from location to location is moved along a path that results in smooth motion of the wafer. At the same time, the wafer must be moved as quickly as possible along a direct path to insure that the time required to move the wafer from point to point is as short as practical. Although smoothness of wafer motion is critical, quickly moving the wafer is an imperative given the high cost of the wafer processing machines and therefore the high cost per hour of operation.
Recalling the basic laws of motion, we know that moving a wafer quickly from point to point requires a high acceleration and a high velocity, however there are limits on the magnitude and the rate of change of the acceleration. The rate of change of acceleration is usually called jerk. In order to minimize potential damage or slipping of the wafer, acceleration should be smooth and continuous—that is, jerk is not infinite—and maximum velocity should be attained quickly.
We also recall that in planer motion, there are components of the velocity, acceleration and jerk in two dimensions. A key to rapid, smooth wafer motion in a plane is to maintain control over velocity, jerk and acceleration in two dimensions.
The prior art attempts to blend multiple path segments into a single path. Thus the prior art employs pre-determined line- and arc-segment shapes (e.g. U.S. Pat. No. 6,216,058). In a standard polar-coordinate wafer handling robot, line segments allow the wafer to move radially while the arcs are concentric with the center of the robot. Unfortunately, the prior art, by virtue of its limited repertoire of paths, provides for motion along paths that are longer than are possible using the present invention. In addition, the prior art cannot maximize the acceleration in two dimensions.
The prior art does attempt to eliminate the need to stop between segments and arcs. So-called blended moves allow a second move to begin before a first move has completed. Whereas these blended moves result in somewhat faster wafer transfers, the path that the wafer takes is often longer than necessary as taught by the present invention.
Therefore, an objective of the present invention is to allow on-the-fly wafer paths to be determined between arbitrary starting and ending points that result in rapid transfer of the wafer with a known path acceleration and a finite jerk.
The present invention uses a very different method of determining the wafer path between the arbitrary wafer starting and stopping points. Whereas the prior art is limited to following arcs that are concentric to the robot axis and lines that are more or less radial, the present invention determines a path that is not only shorter—and therefore more direct—than the prior art, but the path guarantees that the acceleration of the wafer will be maximized, smooth and the jerk will be bounded. The benefit of the present invention is that wafers may be transferred smoother and faster using conventional wafer handling robotics.
In order to understand the teaching of the present invention, let us begin by examining the prior art with what appears to be a simple direct path between two wafer locations as shown in
In
The present invention joins the line segment and the arc segment in a very different manner. The present invention does not instantaneously begin the arc at the juncture with the line segment. Rather, a sinusoidal change in acceleration is imposed upon the wafer. Because the derivative of a sinusoid is also a sinusoid, the path taken by the wafer, as shown in
The prior art, as represented by U.S. Pat. Nos. 5,655,060 and 6,216,058, overcomes the long-standing problem wherein the motion of the wafer stops at the termination of each path segment. The prior art attempts to reduce the time to transfer a wafer by blending one move into the next move. Refer to
One reason for the poor behavior of the prior art is its use of fundamental trajectory shapes, meaning line segments oriented toward the center of the robot's axis of rotation and arcs whose centers are at the center of the robot's axis of rotation.
Another reason for the poor behavior of the prior art is its goal of numerical efficiency. The present invention utilizes a far more sophisticated and complicated numerical method, relying upon a significantly more powerful computer to perform the numerical calculations.
In contrast to the prior art, the present invention is not limited to a simple set of lines and arcs. Also, the present invention employs a far more complex numerical method. Whereas the prior art joins arcs to line segments all based upon the center of rotation of the robot, the present invention creates a path that results in limited wafer acceleration and a non-infinite jerk. Whereas the prior art wafer path is longer than necessary and subjects the wafer to lower acceleration than allowable, the present invention provides for a more direct wafer path and maximizes the acceleration of the wafer in two dimensions.
The present invention provides the transition from line to arc, arc to arc, and arc to line segments in planar space without imposing the boundary constraint that the velocity at the transition between move segments be zero. The sub-optimal motion along the straight line and the arc line will remain within a user specified, maximum acceleration. In addition, the total acceleration along the path will be continuously differentiable, causing the wafer jerk to be finite.
The wafer will travel at some speed Vout at the transition from the previous move segment to motion along the arc. The position of the wafer along the arc will be defined using polar coordinates, ρ. and φ. as in
The components of velocity along the arc are defined through the following equations.
Vt=ρφ′ (−1)
Vr=ρ′. (0)
The tangential and radial velocities are represented by the variables, V_t and V_r, respectively. ρ is the radial position and ρ′ is its first derivative with respect to time. φ′. is the first derivative of the angular position with respect to time.
In order to ensure continuous velocity at the transition, point o, two constraints are imposed on the arc. First the radial velocity, Vr
Vr
where the subscript o denotes the instantaneous value of the variable at the transition.
Second, the tangential velocity must equal the velocity of the wafer at the end of the line segment. Consequent to these constraints, the arc must be tangent to the velocity vector of the previous move segment with which it connects at point o.
Vt
To further ensure smooth motion, the acceleration of the wafer will also be continuously differentiable. The acceleration of the wafer is also expressed in radial and tangential components along the path.
At=ρφ″+2ρ′φ′ (3)
Ar=ρ″−ρφ′2, (4)
where At and Ar are the tangential and radial components of acceleration, respectively. ρ″ and φ″ are the second derivatives of radial and angular orientation with respect to time, respectively.
For simplification, the total wafer acceleration at point o is zero. Therefore, the orthogonal components of acceleration along the arc at point o are,
Ato=ρoφ″o+2ρ′oφ′o=0 (5)
Aro=ρ″o−ρoφ′o2=0 (6)
From (2) ρ′o=0 and from (5) Ato=0. Thus,
φ″o=0 (7)
From (1), the tangential velocity is necessarily non-zero and therefore the centripetal acceleration will be non-zero as well. In order to ensure (6), the radial acceleration will be designed to be equal and opposite to the centripetal acceleration,
ρ″o=ρoφ′o2 (7a)
Similarly, to ensure continuous velocity and acceleration through the transition at the end of the arc, identical boundary conditions are imposed on the point f.
Vt
φ″f=0 (9)
ρ′f=0 (10)
ρ″f=ρfφ′f2. (11)
In order to solve the boundary value problem imposed by the above constraints on ρ and its derivatives, a sinusoidal function in time is employed with frequency, ω. The frequency, ω is structured such that,
ω=2π/Δt, (12)
where,
Δt=tf−to. (13)
to and tf are the times at transition point o and point f, respectively.
1.1 Radial Position and its Derivatives
The second derivative of radial position with respect to time is defined as,
ρ″(t)=ρoφ′o2 cos(ω(t−to)). (14)
The first derivative of radial position is defined as,
ρ′(t)=ρoφ′o2/ω sin(ω(t−to)). (15)
The radial position is defined as,
ρ(t)=ρo+ρoφ′o2/ω2(1−cos(ω(t−to))). (15a)
1.2 Angular Position and its Derivatives
The second derivative of angular position with respect to time is also defined as a sinusoidal function,
φ″(t)=−B sin(ω(t−to)). (16)
The first derivative of angular position with respect to time is defined as,
φ′(t)=φ′o+B/ω(cos(ω(t−to))−1). (17)
The angular position is defined as,
φ(t)=(φ′o−B/ω)(t−to)+B/ω2 sin(ω(t−to))+φo. (18)
The angular position at the completion of the arc, at time tf, is,
φf=φ(tf)=(φ′o−B/ω)(tf−to)+B/ω2 sin(ω(tf−to))+φo. (19)
The total angular displacement between point o and f is,
Δφ=φf−φo. (19a)
From (13) and (19), the time necessary to move between point o and f is,
Δt=Δφ/(φ′o−B/ω) (20)
Solving for ω given (12), (19a) and (20),
ω=πφ′o2/(2Δφ)6(π/Δφ(πφ′o2/Δφ−2B))1/2 (22)
In order for ω to be real,
B*πφ′o2/(2Δφ) (23)
The case where B is zero corresponds with constant angular velocity and ω reduces to,
ω(B=0)πφ′o2/(2Δφ)6πφ′o2/(2Δφ)=πφ′o2/Δφ or 0. (24)
For a non-zero frequency, ω, the quadratic equation requires a +. Therefore,
ω=πφ′o2/(2Δφ)1(π/Δφ(πφ′o2/Δφ−2B))1/2 (25)
To simplify further calculations, the variable β is introduced as
β=B2Δφ/(πφ′o2), (28)
Substituting (28) into (25)
ω=πφ′o/Δφ(1+(1−β)1/2) (30)
Due to the sinusoidal nature of equations (15) and (16), ρ′ and φ″ at (Δt/2) are both zero. Therefore, from (3), the tangential acceleration at (Δt/2) is always zero.
At(Δt/2)=0. (31)
Substituting the sinusoidal functions into (4) and then recognizing (12), the radial component of acceleration at
(Δt/2) is,
Ar(Δt/2)=ρ″(Δt/2)+ρ(Δt/2)φ′(Δt/2)2 (32a)
Substituting (32c), (32e), and (32g) into (32a),
Ar(Δt/2)=−ρoφ′o2−(ρo+2ρoφ′o2/ω2)(φ′o+−2B/ω)2 (32h)
Substituting (28) and (30) into (32h),
Ar(Δt/2)=−ρoφ′o2C, (32i)
where,
C=(1+(1+2/(1+(1−β)1/2)2(Δφ/π)2)(1−β/(1+(1−β)1/2)). (33)
It is important to note that C is a function of β and the total angular rotation Δφ only.
1.3 The Arc Segment Acceleration Profile for known ρo and Δφ
When the initial radius, ρo, and total angular displacement, Δφ, are known, two design constraints are imposed on the acceleration profile:
The total wafer acceleration is the resultant vector sum of the tangential and radial components of acceleration. The magnitude of the total wafer acceleration vector is,
Atotal(t)=(At(t)+Ar(t))1/2, (34)
Where Amax(t) is the magnitude of the total wafer acceleration at time t. The magnitude of the total acceleration is linear in ρoφ′o2 as shown below,
Ashape(t,β,Δφ)=Atotal(t)/(ρoφ′o2). (35)
From (33b), the shape of the acceleration profile, Ashape(t, β, Δφ), will be a function of β and Δφ alone. Therefore, the first constraint may be satisfied by ensuring that for a given Δφ, the selected β must lie within an allowable range of β such that the maximum acceleration occurs at (Δt/2).
As may be observed in the above equations, At(t) and Ar(t), are each composed of non-linear functions. Therefore, the explicit solution for the maximum acceleration along the acceleration profile would be extremely difficult. Since the total acceleration is of high order in time, multiple solutions could potentially exist over the range of Δt for individual values of β.
The trivial case occurs when β equals zero, when the angular velocity is constant over the arc. The acceleration will always be greatest at (Δt/2) for all Δφ. The bounding values above and below β are sought as a function of Δφ to provide the allowable range of β for a given Δφ.
Maximum Beta as a function of total rotation
The maximum values for β, βmax(Δφ), are found algorithmically. For each value of Δφ, β is incremented from 0 in positive increments of δβ. For each successive value of β, Ashape(t, β, Δφ) is calculated for all t between 0 and Δt and the maximum value is stored. For each successive value of β, C is calculated from (33). The first constraint has been violated when max(Ashape) is greater than C. The maximum allowable value of β for the particular value of Δφ, βmax(Δφ) is then defined as the previous iteration of β.
Once βmax(Δφ) has been found over the range of Δφ, βmax(Δφ) may be approximated as a third order polynomial,
βmax=p1Δφ3+p2Δφ2+p3Δφ+p4. (36)
Where p1 through p4 are the third order, least squares polynomial coefficients relating βmax to Δφ.
Minimum Beta as a function of total rotation
Similarly, the minimum values for β, βmin(Δφ), are found algorithmically. For each value of Δφ, β is incremented from 0 in decrements of −δβ. For each successive value of β, Ashape(t, β, Δφ) is calculated for all t between 0 and Δt and the maximum value is stored. For each successive value of β, C is calculated from (33). The first constraint has been violated when max(Ashape) is greater than C. The minimum allowable value of β for the particular value of Δφ, Pmin(Δφ), is then defined as the previous iteration of β.
Once βmin(Δφ) has been found over the range of Δφ, βmin(Δφ) may be approximated as a third order polynomial,
βmin=p5Δφ3+p6Δφ2+p7Δφ+p8. (37)
Where p5 through p8 are the third order, least squares polynomial coefficients relating βmin to Δφ.
The range of allowable β lies between the lower and upper bounds,
βmin*β*βmax. (38)
The plot of minimum and maximum values of β over the specified range of Δφ is shown in
1.3.2 Second Constraint
The value of Vout is integral to the design of the arc motion profile. Vout will always be greater than zero. For a given ρo, Δφ, and Amax, there is a maximum allowable entry/exit velocity, Voutmax, such that,
0<Vout*Voutmax. (39)
For unspecified velocity, Vout
From the first constraint, the maximum acceleration will occur at (Δt/2). From (32I), the acceleration at (Δt/2) will be composed entirely by radial acceleration, Ar. The second derivative of radial position at (Δt/2) is not influenced by the selection of β. However, the centripetal acceleration component, ρ(Δt/2)φ′(Δt/2)2 may be decreased by implementing positive β. The maximum allowable decrease, and thus the maximum allowable Vout will occur for β=βmax from (36).
Solving for the corresponding value for C,
Cmax=C(βmax,Δφ) (40)
Where Cmax is the maximum allowable value for C.
From (34) and (1),
Voutmax=(Amaxρo/Cmax)1/2 (41)
Finally, from (1),
φ′o=Voutmax/ρo. (42)
For specified velocity, Vout
Often, due to constraints outside of the design of the individual arc move segment, Vout will be some specified value adhering to (39).
Similar to (42) the initial angular velocity is,
φ′o=Vout/ρo. (42a)
In this case, βmax could be applied, however, the angular rotation will be brought to an unnecessarily slow rate such that the magnitude of the acceleration at (Δt/2) is less than the maximum allowable acceleration, Amax. This could waste considerable move time. In order to optimize move efficiency given ρo, Δφ, φ′o, and Amax, an optimal β, βopt may be found such that the total wafer acceleration at (Δt/2) is equal to the maximum allowable acceleration, Amax.
Setting the magnitude of (32i) equal to Amax,
Amax=ρoφ′o2C. (43)
Introducing the function,
F(ρopt)=−Amax/(ρoφ′o2)+C(ρopt,Δφ)=0. (44)
For a given ρo, Δφ, φ′o, and Amax, the optimized β is that which satisfies (44). The function F is fourth order in β, making the explicit solution of ρopt very difficult to solve. However, F is nearly linear in the operating range of β. Therefore, F may be linearized and a linear approximation for βopt may be found.
The linearized equation for optimum F, approximated at βapprox,
F(βopt)=δF/δβ(βapprox).βopt+F(βapprox), (45)
where δF/δβ is the partial derivative of F with respect to β.
As in (44), the optimum value of F is zero such that (44) is satisfied. From (44) and (45), the linearly approximated solution for optimum β is,
βopt=−F(βapprox)/(δF/δβ(βapprox)). (46)
The partial derivative of F with respect to β is,
δF/δβ=(1+(1−β)1/2−β).(−2Δφ2.(1+(1−β)1/2−8π2.(1+(1−β)1/2−β)+βπ2.(4.(1−β)1/2−1)))/(π2.(1+(1−β)1/2)5), (47)
A reasonable point from which to approximate is βapprox=0. Evaluating (47) at β equals zero,
δF/δβ(βapprox=0)=(Δφ/π)2. (2−1/(4π2)) (48a)
=0.2001.Δφ2. (48b)
The value of F at the approximated point must be determined as well.
F(βapprox=0)=−Amax/(ρoφ′o2)+2.(1+(Δφ/π)2). (49)
For the case where (βapprox=0),
ρopt=(Amax/(βoφ′o2)−2.(1+(Δφ/π)2))/(0.2001.Δφ2). (50)
For any predefined βapprox, the coefficients required to determine βopt may be calculated and saved a priori of the real time calculation.
Because the shape of the function F over β is convex, the linearization will always over-approximate the value of β to some degree. The fact that it may only be over estimated is desirable because a larger than truly optimal β will only serve to reduce the maximum speed of angular velocity. Therefore, the maximum acceleration will never exceed Amax.
A final check is imposed on the value of βopt. If βopt is greater than βmax then βopt is set equal to βmax. Similarly, if βopt is less than βmin then βopt is set equal to βmin. Therefore, βopt satisfies (38).
βmin*βopt*βmax. (52)
1.4 The Arc Segment Acceleration Profile for unknown ρo and Δφ
If the geometry of the arc has not been specified, the rotational displacement of the arc, Δφ, and initial arc radius, ρo, is unknown. If this is the case, Vout will be specified outside the design of the arc. For unknown Δφ, two rules apply in order to avoid violating the above acceleration constraints. First, the maximum value of Δφ must be assumed. Second, β must equal zero. With these rules in place, for any Δφ, the acceleration shape will not violate acceleration constraint one. As stated above, the acceleration shape, Ashape(t, β, Δφ), will never violate acceleration constraint one if β equals zero.
β=0. (52)
For a maximum allowable angular displacement of Δφ=π and from (52), evaluation of (33) and (34) produces,
C(β=0,Δφ=π)=2.5, (53)
Amax=2.5ρoφ′o2 (54)
φ′o=Amax/(2.5Vout) (55)
Since C is predetermined in this case, the ρo to allow for maximum acceleration may be found through the equation,
ρo=2.5Vout2/Amax. (56)
2. Path Planning Implementation
This section describes how the path planning algorithm described theoretically in Section 1 has been implemented. Also, note that the discussion below makes the assumption that the path planning implementation is used on a robot. Nevertheless, the applicability of path planning algorithm is not exclusive to robots.
2.1 General Description
In the current implementation, the path is a combination of line segments and sinusoidal-arc segments. The path will be specified by multiple number of points (N>=1). If the user specifies only one point then the path will be a straight line between the current position and the specified point. If two points are specified then the path will comprise of two straight-line segments and a sinusoidal-arc connecting the two line segments. For an illustration of how the path planning algorithm works see
For the above example the motion starts from the point (600, 150) where 600 is the radial distance [mm] from origin and 150 is the angle in degrees from 0 (counter-clockwise). The user will specify three points to generate this path: (400, 270), (400, 0) and finally (600, 60). The starting point and the user-specified points are indicated in
As part of the setup of the motion parameters, the user must set maximum acceleration, and maximum allowable jerk. The implementation will ensure that the path generated will reach the maximum acceleration during the sine-wave-arc, and stay within the maximum allowable jerk.
For the path to begin the arm must be at rest, or cruising at a constant velocity in a straight-line (as a result of an earlier path command). At the time of the path command, if the arm is not cruising then the new path command will be queued until the arm reaches cruise velocity (constant velocity), or until arm comes to rest.
The current implementation has the capacity to do two-dimensional path planning as described in section 1, and at the same time coordinate the move of a third axis. The third axis would typically be a Z-axis (Lift) for a robot. Thus as soon as the wafer has cleared a station the Z-axis can be commanded to move and this Z-move would be done before the arm reaches the entrance point of the next wafer station. However, note that Z-move is an independent move except that the start and end time is coordinated with the path planning move. In other words, we do not propose a three-dimensional path planning algorithm.
2.2 Path Planning Parameters
Motion control requires that user specify parameters such as maximum acceleration, maximum velocity, etc., before the motion command is issued. Once the motion command is issued, the motion control software generates a motion profile (for position, velocity, and acceleration) that the closed loop control algorithm will attempt to track. The profiler algorithm may be S-curve or trapezoidal algorithm, where those names refer to the shape velocity profile curve. Depending on whether the velocity profile is S-curve or trapezoidal, the number of parameters needed would vary.
The same profiler parameters mentioned above would also be needed for motion along the path also. However, for specifying motion along a path we will need additional parameters. They are:
Every defined wafer station will, in itself, represent an obstacle. Thus the path must have prior knowledge of these obstacles so that the obstacles can be avoided. The obstacle will be defined by specifying a center, radius, and a height (cylinder). If need arises additional shapes will be included in the future (sphere, cube, etc.). The checks for obstacles will be done at the start of the move to see if the generated path will encounter any obstacle. Also during runtime, there will be checks to see if the actual position gets “too close” to an obstacle.
2.4 Path Feasibility
When the user issues a path command, the path generation algorithm checks for the feasibility of the path algorithm before the motion begins—so that the path can be successfully completed. The path may not be feasible for several reasons:
This section will describe the steps involved in generating the path. First we provide an overview of the steps involved. Then we provide details of the crucial steps involved.
In the example below, to simplify matters, it is assumed that user specifies only three points. See
Say the user has set the profiler and the path-specific parameters and issued a path command with two target positions. Here are the steps involved:
In the above example, it is assumed that the arm is at rest before the path command is issued. It is possible to issue a path command while the arm is in the middle of an earlier path command. The new path command would be queued until the earlier path has reached cruise velocity (or zero, i.e., stopped) and is traveling in a straight-line. The rest of the steps would be executed in a similar manner as above.
Now we will describe in more detail the crucial steps involved in the path generation. The path implementation uses the same fundamental idea described in Section 1 (combinations straight-line segments with sinusoidal arcs), with the following differences:
Say the robot arm is at rest at position (ρ0, φ0), in polar coordinates with origin at the center of the robot. See
Say the sine-wave-arc begins at point (X0, Y0)—here we switch to Cartesian coordinate system for convenience. We will take this position (X0, Y0) as the origin of the Cartesian coordinate system, i.e., X0=0, Y0=0. We will describe later how to pick (X0, Y0). Let (X1, Y1) be the point on the straight-line segment connecting (ρ1, φ1) and (ρ2, φ2) where the sine-wave-arc ends. Once the arc ends at (X1, Y1) the robot arm will continue towards the final target position (ρ2, φ2) in a straight-line.
We already know the origin of our Cartesian coordinate system. Now we let us define the axes. The X-axis is the line connecting (0,0) and (X1, Y1), and the Y-axis is the line perpendicular to the X-axis. The arrows in the figure indicate the positive X and Y directions.
Now we have to find a sine-wave-arc that begins at (X0, Y0) and ends at (X1, Y1) as shown by the dotted line in
Once we work out the mathematics, we will know that these assumptions did not restrict us from obtaining the solution we are looking for.
Let Vx0 and Vy0 denote starting velocities along X-axis and Y-axis respectively. They can be easily calculated from the known geometry. Let the distance between (0,0) and (X1, Y1) be L. Define also the time when the arm is at (0,0) as zero.
Define position along Y-axis as a function of position along X-axis as below,
y(t)=A sin(ωx(t)),
where ω=π/L, and A is as yet unknown. Differentiating y(t) with respect to time (to get velocity along Y-axis), and noting that x′(t)=Vx0 is a constant,
y′(t)=AωVx0 cos(ωx(t)).
From the above equation we know that at x=0, y′=Vy0. Thus,
A=vy0(ωVx0).
Differentiating y′(t) with respect to time again (to get acceleration along Y-axis) and noting that x″(t)=0,
y″(t)=−ω2A(Vx0)2 sin(ωx(t)).
From the above equations we can conclude that as x traverses from 0 to X1, the path traversed is a sinusoidal arc as shown in
Acceleration along Y-axis, y″(t) can be re-written as
y″(t)=−ω2(Vx0)2y(t).
Clearly y(t) reaches its maximum value at the mid-point of the travel, i.e., x=L/2. Thus, the maximum acceleration along the path is
y″max=−ω2(Vx0)2A.
Note that in calculating maximum acceleration along the path we consider only the component along Y-axis because the component along X-axis is (by design) set to zero.
From the profiler parameters we know the maximum allowable acceleration the user has set for the robot arm. Now from the above equation, and knowing that A=vy0/(ωVxo), we can calculate the value of ω, A, and L. Once we know the value of L, we know at what point the sine-wave-arc should begin.
As an aside, Jerk can be calculated as
y′″(t)=−ω3A(V Vxo)3 cos(ωx(t)).
From the above equation it can be seen that jerk is discontinuous at the start and end of the sine-wave-arc. However, the magnitude of the maximum jerk is
y′″ max=−ω3A(Vxo)3,
which can be re-written as
y′″max=Aωy″max=y″maxVy0/Vx0.
From the above equations, we can see that the maximum jerk is achieved at the beginning and at the end of the sine-wave-arc. More importantly, once the user picks the maximum acceleration and cruise velocity, the maximum jerk is automatically determined. Consequently, although we can make sure that we achieve the maximum acceleration during the arc, we can only ensure that we stay under a maximum allowable jerk y′″max.
Also note that Vyo/Vxo is the slope of the straight-line connecting (ρ0,φ0) and (ρ1, φ1) with respect to the Cartesian coordinate frame X-Y. These slopes (one for each sine-wave-arc) are fixed once the user picks the target positions. Thus, for a given move the maximum allowable jerk is exceeded, the user has three different options:
In other words, once the user picks the maximum acceleration, the maximum angle between straight-line segments connecting intermediate target positions are constrained to be under a certain pre-computed value.
2.6 Robot Motion Control
The path motion profile (path position, path velocity, path acceleration) is calculated in real-time (every 0.5 milliseconds). As each point in the path motion profile is calculated, that information is translated into the position, velocity, and acceleration of the motors that drive the robot. This translation is also done in real-time (every 0.5 milliseconds). Once the motion profiles for the motors are calculated that information is used to control the motors in real-time (every 0.5 milliseconds) in closed loop so that the actual position, velocity, and acceleration of the robot arm tracks the path generated by the path planning algorithm.
Although a preferred embodiment of the present invention has been described above, it will be appreciated that certain modifications or alterations thereon will be apparent to those skilled in the art. It is therefore requested that the appended claims be interpreted as covering all such alterations and modifications that fall within the true spirit and scope of the invention.
The present application claims priority from U.S. Provisional Patent Application Ser. No. 60/464,928 filed Apr. 22, 2003.
Number | Name | Date | Kind |
---|---|---|---|
5179514 | Rastegar et al. | Jan 1993 | A |
5655060 | Lucas | Aug 1997 | A |
5910893 | Itoh | Jun 1999 | A |
6216058 | Hosek et al. | Apr 2001 | B1 |
6246923 | Sugimura et al. | Jun 2001 | B1 |
6454517 | Ohno | Sep 2002 | B1 |
6567711 | Hosek et al. | May 2003 | B1 |
Number | Date | Country | |
---|---|---|---|
20040249509 A1 | Dec 2004 | US |
Number | Date | Country | |
---|---|---|---|
60464928 | Apr 2003 | US |