Material handling robot with multiple end effectors
Through the material processing robot arm with multi-axis drive and non-circular pulley belt mechanism, the problem of difficulty in motion control of multi-end effectors in the prior art is solved, and the movement of efficiently avoiding singular points is achieved, and the operation flexibility and efficiency of the semiconductor chip processing system is improved.
Patent Information
- Application Number
- JP2022115165
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2017-02-15
- Filing Date
- 2022-07-20
- Publication Date
- 2025-02-10
- Estimated Expiration
- 2038-02-15
AI Technical Summary
In the prior art, it is difficult for material processing robots to efficiently realize the flexible movement of multi-terminal effects in semiconductor wafer processing systems, especially when avoiding moving singular points, there are difficulties in path planning and motion control.
The robot arm structure with multi-axis drive is adopted, combined with the belt mechanism with non-circular pulleys, through precise reverse kinematic calculations and Kathry’s trajectory generation algorithm, the flexible movement of multi-terminal effectors is achieved, avoiding singular points, and ensuring motion stability and efficiency.
It realizes efficient movement of multi-terminal effector material processing robot, avoids interference from singular points, and improves the operational flexibility and efficiency of semiconductor chip processing systems.
Smart Images

Figure 0007628522000032 
Figure 0007628522000033 
Figure 0007628522000034
Abstract
Description
[Technical field]
[0001] Exemplary, non-limiting embodiments relate generally to material handling robots, and more particularly, to material handling robots having multiple end effectors.
[0002] Material handling robots are known, such as for application in semiconductor wafer processing systems. Some examples can be found in the following U.S. patents and patent publications, which are incorporated herein by reference in their entireties: U.S. Pat. No. 9,149,936, U.S. Patent Application Publication No. 2016 / 0167229, and U.S. Patent Application Publication No. 2017 / 0028546, which disclose how non-circular pulleys can be calculated.
[0003] The following summary is intended to be merely exemplary and is not intended to limit the scope of the claims.
[0004] According to one aspect, an example may be provided in an apparatus including a robot drive including a plurality of motors and a plurality of coaxial drive shafts connected to the motors, and a robot arm connected to the robot drive, the robot arm including two upper arms, a first set of forearms connected to a first upper arm of the upper arms, a second set of forearms connected to a second upper arm of the upper arms, and a plurality of end effectors connected to each of the forearms, the first upper arm and the second upper arm connected to respective first and second coaxial drive shafts of the coaxial drive shafts, the first set of forearms mounted on the first upper arm and connected to a third coaxial drive shaft of the coaxial drive shafts by respective first and second drive belt assemblies, and the second set of forearms mounted on the second upper arm and connected to a fourth coaxial drive shaft of the coaxial drive shafts by respective third and fourth drive belt assemblies.
[0005] According to another aspect, an exemplary method includes connecting a first upper arm to a first coaxial drive shaft of a robot drive, connecting a second upper arm to a second coaxial drive shaft of the robot drive, and connecting a first set of forearms to the first upper arm, wherein a first drive belt mechanism connects a first forearm of the first set of forearms to a third coaxial drive shaft of the robot drive, and a second drive belt mechanism connects a first forearm of the first set of forearms to a third coaxial drive shaft of the robot drive. connecting a second forearm of the first set to the second upper arm, wherein a third drive belt mechanism connects a first forearm of the second set of forearms to a fourth coaxial drive shaft of the robot drive and a fourth drive belt mechanism connects a second forearm of the second set of forearms to the fourth coaxial drive shaft of the robot drive; and connecting respective end effectors to the forearms.
[0006] According to one aspect, an exemplary method includes rotating a first coaxial drive shaft of a robot drive in a first direction about a first axis to rotate a first upper arm of a robot arm about the first axis; while rotating the first coaxial drive shaft, rotating a second coaxial drive shaft of a robot drive about the first axis to move first and second drive belt mechanisms to thereby rotate a first and second forearm on the first upper arm; rotating a third coaxial drive shaft of the robot drive about the first axis in a second direction to rotate the second upper arm of the robot arm about the first axis; and rotating a fourth coaxial drive shaft of the robot drive about the first axis to move third and fourth drive belt mechanisms to thereby rotate a third and fourth forearm on the second upper arm.
[0007] According to another aspect, an example method may include rotating a first coaxial drive shaft of a robot drive in a first direction about a first axis to rotate at least one upper arm of a robot arm about the first axis; while rotating the first coaxial drive shaft, rotating a second coaxial drive shaft of the robot drive about the first axis to move at least a first drive belt mechanism to rotate a first forearm on the at least one upper arm and extend a first end effector on the first forearm from a retracted position toward an extended position; and rotating a third coaxial drive shaft of the robot drive in a second direction about the first axis to move at least a second drive belt mechanism to rotate a second forearm on the at least one upper arm and hold a second end effector on the second forearm in a retracted position while moving the first end effector from the retracted position toward the extended position.
[0008] According to another aspect, an exemplary method includes determining an included angle corresponding to a reference point on an end effector of a robot arm based on a desired path of the reference point from a start location of the reference point to an end location of the reference point, the robot arm being connected to a robot drive having a motor for moving the robot arm; calculating a trajectory of a radial coordinate of the reference point on the end effector based at least in part on the included angle; and determining whether the reference point on the end effector is aligned with the start location and the end location. calculating corresponding angular coordinates of the reference point on the end effector based on the calculated radial coordinates to follow the desired path between the end effector and the trajectory; converting the radial and angular coordinates of the reference point on the end effector, complemented by the included angle of the trajectory and corresponding angular velocity and acceleration of the end effector, using a modified formulation of inverse kinematics to form motion set points for the robot arm; and controlling the motors of the robot drive to move the robot arm based on the motion set points.
[0009] According to another aspect, an exemplary method includes determining, by a controller, a path of a reference point on an end effector of a robot arm between a start position and an end position of the reference point, the robot arm being connected to a robot drive having a motor for moving the robot arm, and the controller comprising at least one processor and at least one non-transitory memory having computer code; the determining and the controller selecting a motion control mode from a plurality of different motion control modes, the different motion control mode determining that the path between the start position and the end position intersects a kinematic singularity of the robot arm and not executing a movement of the robot arm using the path; and determining that the path between the start position and the end position intersects a kinematic singularity of the robot arm. determining that the path between the start position and the end position passes within the predetermined threshold distance of the kinematic singularity of the robot arm, determining an included angle corresponding to the start position and corresponding to the end position, calculating the start position and the end position as joint coordinates, calculating a trajectory from the start position to the end position in radial coordinates based at least in part on the included angle, and calculating corresponding angular coordinates of the reference point such that the reference point follows the path in Cartesian space between the start position and the end position; and wherein the controller controls movement of the motors of the robot arm based on the selected control mode.
[0010] According to another aspect, an exemplary embodiment is an apparatus that includes at least one processor and at least one non-transitory memory including computer program code, the at least one memory and the computer program code configured to cause the apparatus, using the at least one processor, to determine, as a trajectory, a path of a reference point between a start position of the reference point on an end effector of a robot arm and an end position of the reference point, the robot arm being connected to a robot drive having a motor for moving the robot arm; the determining and selecting, by the at least one processor and the computer program code, a motion control mode from a plurality of different motion control modes, the plurality of different motion control modes being configured to determine, by the at least one processor and the computer program code, a motion control mode from a plurality of different motion control modes, the motion control mode ... determining that the path between the start position and the end position passes outside a predetermined threshold distance from the kinematic singularity of the robot arm and not performing a movement of the robot arm using the path; determining that the path between the start position and the end position passes within the predetermined threshold distance from the kinematic singularity of the robot arm and moving the robot arm using a Cartesian trajectory generation scheme; determining that the path between the start position and the end position passes within the predetermined threshold distance from the kinematic singularity of the robot arm; determining an included angle corresponding to the start position and corresponding to the end position; calculating the start and end positions as joint coordinates; calculating the trajectory of the reference point in radial coordinates based at least in part on the included angle; and calculating corresponding angular coordinates of the reference point on the end effector such that the reference point follows the path in Cartesian space between the start and end positions of the movement. [Brief description of the drawings]
[0011] The foregoing aspects and other features are discussed in the following description, which should be taken in conjunction with the accompanying drawings.
[0012] [Figure 1A-B] 1A-1C illustrate examples of substrate movement in a substrate processing apparatus having features described herein. [Figure 1C-D] 1A-1C illustrate examples of substrate movement in a substrate processing apparatus having features described herein. [Figure 1E-F] 1A-1C illustrate examples of substrate movement in a substrate processing apparatus having features described herein.
[0013] [Figure 2A-B] Fig. 2A is a top view of a robot in the substrate processing apparatus shown in Fig. 1A to Fig. 1F, and Fig. 2B is a side view of the robot shown in Fig. 2A. [Figure 2C-D] FIG. 2C is a schematic diagram illustrating some of the components of the robot shown in FIGS. 2A-2B.
[0014] [Figure 3A-C] 1A-1C illustrate examples of substrate movement in a substrate processing apparatus having features described herein. [Fig. 3D-E] 1A-1C illustrate examples of substrate movement in a substrate processing apparatus having features described herein. [Figure 3F-G] 1A-1C illustrate examples of substrate movement in a substrate processing apparatus having features described herein. [Figure 3H-I] 1A-1C illustrate examples of substrate movement in a substrate processing apparatus having features described herein. [Fig. 3J-K] 1A-1C illustrate examples of substrate movement in a substrate processing apparatus having features described herein.
[0015] [Figure 4A-B] Fig. 4A is a top view of a robot in the substrate processing apparatus shown in Fig. 3A to Fig. 3G, and Fig. 4B is a side view of the robot shown in Fig. 4A. [Figure 4C] FIG. 5 is a schematic diagram illustrating some of the components of the robot shown in FIGS. 4A-4B. [Figure 4D] FIG. 5 is a schematic diagram illustrating some of the components of the robot shown in FIGS. 4A-4B.
[0016] [Figure 5A-B] 1A-1C illustrate examples of substrate movement in a substrate processing apparatus having features described herein. [Figure 5C-E] 1A-1C illustrate examples of substrate movement in a substrate processing apparatus having features described herein. [Figure 5F-H] 1A-1C illustrate examples of substrate movement in a substrate processing apparatus having features described herein.
[0017] [Figure 6A-B] Fig. 6A is a top view of a robot in the substrate processing apparatus shown in Fig. 5A to Fig. 5H, and Fig. 6B is a side view of the robot shown in Fig. 6A. [Figure 6C] FIG. 5 is a schematic diagram illustrating some of the components of the robot shown in FIGS. 6A-6B. [Figure 6D] FIG. 5 is a schematic diagram illustrating some of the components of the robot shown in FIGS. 6A-6B.
[0018] [Figure 7A-B] 1A-1C illustrate examples of substrate movement in a substrate processing apparatus having features described herein. [Figure 7C-D] 1A-1C illustrate examples of substrate movement in a substrate processing apparatus having features described herein. [Figure 7E-F] 1A-1C illustrate examples of substrate movement in a substrate processing apparatus having features described herein. [Figure 7G-H] 1A-1C illustrate examples of substrate movement in a substrate processing apparatus having features described herein.
[0019] [Figure 8A-C] 1A-1C illustrate examples of substrate movement in a substrate processing apparatus having features described herein. [Fig. 8D-E] 1A-1C illustrate examples of substrate movement in a substrate processing apparatus having features described herein. [Fig. 8F-G]1A-1C illustrate examples of substrate movement in a substrate processing apparatus having features described herein.
[0020] [Figure 9A-B] FIG. 1 illustrates an example nomenclature for lengths and angles between links of a robotic arm.
[0021] [Figure 10A-B] FIG. 2 illustrates an example of a belt mechanism.
[0022] [Figure 11A-C] A diagram illustrating the movement of end effector A from an initial position to a final position in a straight line path. [Figure 11D] FIG. 11B illustrates joint trajectories (acceleration, velocity, and position of the movements illustrated in FIGS. 11A-11C) over time. [Figure 11E] FIG. 11B illustrates joint trajectories (acceleration, velocity, and position of the movements illustrated in FIGS. 11A-11C) over time. [Figure 11F] FIG. 11B illustrates joint trajectories (acceleration, velocity, and position of the movements illustrated in FIGS. 11A-11C) over time.
[0023] [Figure 12A-B] 11A-11C illustrate several examples of the movement of the end effectors relative to one another as the exemplary robotic arms move with different transmission ratios to extend one of the end effectors.
[0024] [Figure 13A] 6C-6D of an alternative exemplary embodiment of the robot. FIG. [Figure 13B] 6C-6D of an alternative exemplary embodiment of the robot. FIG.
[0025] [Figure 14A] 6C-6D of an alternative exemplary embodiment of the robot. FIG. [Figure 14B]6C-6D of an alternative exemplary embodiment of the robot. FIG.
[0026] [Figure 15A] 6C-6D of an alternative exemplary embodiment of the robot. FIG. [Figure 15B] 6C-6D of an alternative exemplary embodiment of the robot. FIG.
[0027] [Figure 16A] 6C-6D of an alternative exemplary embodiment of the robot. FIG. [Figure 16B] 6C-6D of an alternative exemplary embodiment of the robot. FIG.
[0028] [Figure 17A] 6C-6D of an alternative exemplary embodiment of the robot. FIG. [Figure 17B] 6C-6D of an alternative exemplary embodiment of the robot. FIG.
[0029] [Figure 18A-B] 17A and 17B. FIG. 17B is a diagram illustrating an example of substrate movement in a substrate processing apparatus equipped with the robot shown in FIGS. [Fig. 18C-D] 17A and 17B. FIG. 17B is a diagram illustrating an example of substrate movement in a substrate processing apparatus equipped with the robot shown in FIGS.
[0030] [Fig. 18E-F] 17A and 17B. FIG. 17B is a diagram illustrating an example of substrate movement in a substrate processing apparatus equipped with the robot shown in FIGS. [Fig. 18G-H] 17A and 17B. FIG. 17B is a diagram illustrating an example of substrate movement in a substrate processing apparatus equipped with the robot shown in FIGS.
[0031] [Fig. 18I-J] 17A and 17B. FIG. 17B is a diagram illustrating an example of substrate movement in a substrate processing apparatus equipped with the robot shown in FIGS. [Fig. 18K-L] 17A and 17B. FIG. 17B is a diagram illustrating an example of substrate movement in a substrate processing apparatus equipped with the robot shown in FIGS.
[0032] [Fig. 18M-N] 17A and 17B. FIG. 17B is a diagram illustrating an example of substrate movement in a substrate processing apparatus equipped with the robot shown in FIGS.
[0033] [Fig. 18O-P] 17A and 17B. FIG. 17B is a diagram illustrating an example of substrate movement in a substrate processing apparatus equipped with the robot shown in FIGS.
[0034] [Fig. 18Q-R] 17A and 17B. FIG. 17B is a diagram illustrating an example of substrate movement in a substrate processing apparatus equipped with the robot shown in FIGS.
[0035] [Fig. 18S-T] 17A and 17B. FIG. 17B is a diagram illustrating an example of substrate movement in a substrate processing apparatus equipped with the robot shown in FIGS.
[0036] [Figure 19A-B] FIG. 1 is a side view illustrating an example of a robot having a passing support. Detailed Description of the Embodiments
[0037] 1A-1F, a schematic diagram of a semiconductor wafer processing system 10 incorporating features of exemplary embodiments is shown. These features will be described with reference to the exemplary embodiments shown in the drawings, but it should be understood that these features can be embodied in many alternative forms of embodiments. Additionally, any suitable size, shape or type of elements or materials can be used.
[0038] The features described herein may be used in a material handling robot with multiple end effectors suitable for use in semiconductor wafer processing systems.
[0039] The exemplary semiconductor wafer processing system 10 may, for example, include one or more radial stations 12 and one or more offset stations 14. A robot 100 may be provided to move one or more substrates S between the stations 12, 14 or between other modules / stations (not shown) connected to an environmental chamber 13. The environmental chamber 13 may, for example, provide a vacuum environment and has the robot 100 extending through a bottom wall of the chamber 13 into an environment at least partially defined by the chamber 13. The robot 100 and stations 12, 14 are connected to at least one controller 15 comprising at least one processor 17 and at least one memory 19 including software 21 for controlling the operation of the system 10. The system 10 may, for example, provide the following wafer handling operations: (a) Picking up / placing 16 a single wafer or substrate S from / to a single radial station 12, as shown diagrammatically in FIG. 1A. (b) Simultaneously lifting / placing 18 a pair of wafers or substrates S from / onto a pair of stacked radial stations 12, as shown diagrammatically in FIG. 1B. (c) Picking up / placing 20 a single wafer or substrate S from / onto the single offset station 14, as illustrated diagrammatically in FIG. 1C. (d) Simultaneously lifting / placing 22 a pair of wafers from / onto a pair of stacked offset stations 14, as shown diagrammatically in FIG. 1D. (e) Simultaneously lifting / placing 24 a pair of wafers or substrates S from / onto a pair of parallel offset stations 14, as shown diagrammatically in FIG. 1E. (f) individually adjusting 26 the placement positions of a pair of wafers or substrates S at a pair of parallel offset stations 14, as shown diagrammatically in FIG. 1F. (g) Quickly replacing a wafer or substrate S with another wafer within a single radial station 12 (quick exchange operation within a single radial station). (h) Quickly exchanging a pair of wafers or substrates S for another pair of wafers within a pair of stacked radial stations 12 (a quick exchange operation within a pair of stacked radial stations). (i) Quickly replacing a wafer or substrate S with another wafer within a single offset station 14 (a quick exchange operation within a single offset station). (j) Quickly swapping a pair of wafers or substrates S for another pair of wafers in a pair of parallel offset stations 14 (a quick swap operation in a pair of parallel offset stations). Various embodiments of the multiple end effector robot according to the present invention are intended to address different combinations of the above requirements. The nomenclature used throughout this document is summarized below in Table 1. See Figures 9A-9B for an illustration of key parameters. [Table 1: Nomenclature] l 1: Length between joints of (left) upper arm driven by shaft T1 (m) l3: Inter-articular length of the right upper arm driven by shaft T3 (m) l i : Length of the forearm with end effector i (m), measured from the elbow joint to the center of the wafer, i=A, B, C, D n i : transmission ratio associated with end effector i, i=A,B,C,D t: time (seconds) x i : x-coordinate of end effector i (m), i=A, B, C, D y i : y coordinate of end effector i (m), i=A, B, C, D Δθ1(t): Change in orientation of the left upper arm driven by shaft T1 (degrees) Δθ2(t): Change in orientation of the pulley(s) driven by shaft T2 (in degrees) Δθ3(t): Change in orientation of the right upper arm driven by shaft T3 (degrees) Δθ4(t): Change in orientation of the pulley(s) driven by shaft T4 (in degrees) Δθ i (t): Change in orientation of end effector i (in degrees), i=A, B, C, D Δθ i1 (t): The relative orientation (in degrees) of end effector i with respect to the left upper arm driven by shaft T1, i=A, B Δθ i3 (t): The relative orientation (in degrees) of end effector i with respect to the right upper arm driven by shaft T3, i=C, D θ1(t): Orientation (in degrees) of the left upper arm driven by shaft T1 θ 10 : Initial orientation of the left upper arm driven by shaft T1 (degrees) θ 1ext : Orientation (degrees) of the left upper arm driven by shaft T1 when the left linkage is extended θ 1ret : Direction of the left upper arm driven by shaft T1 when the left linkage retracts (degrees) θ2(t): Orientation (in degrees) of the pulley driven by shaft T2 θ 20 : initial orientation of the pulley driven by shaft T2 (degrees) θ 2exti : Orientation (in degrees) of the pulley driven by shaft T2 when end effector j is extended, i=A, B θ 2ret : Orientation of the pulley driven by shaft T2 when the left linkage retracts (in degrees) θ3(t): Orientation of the right upper arm driven by shaft T3 (degrees) θ 30 : Initial orientation of the right upper arm driven by shaft T3 (degrees) θ 3ext : Orientation (degrees) of the right upper arm driven by shaft T3 when the right linkage is extended θ 3ret : Direction of the right upper arm driven by shaft T3 when the right linkage retracts (degrees) θ4(t): Orientation (in degrees) of the pulley driven by shaft T4 θ 40 : initial orientation of the pulley driven by shaft T4 (degrees) θ 4exti : Orientation (in degrees) of the pulley driven by shaft T4 when end effector j is extended, i=C,D θ 4ret : Orientation of the pulley driven by shaft T4 when the left linkage retracts (in degrees) θ i (t): Orientation of end effector i (in degrees), i=A, B, C, D θ i0 : Initial orientation of end effector i (in degrees), i=A, B, C, D θ iextj : Orientation (in degrees) of end effector i when end effector j is extended, i=A,B,j=A,B or i=C,D,j=C,D θ iret : Orientation of end effector i (in degrees) when the corresponding linkage retracts, i=A, B, C, D
[0040] 2A-2C, in one exemplary embodiment, the robot 100 may include two end effectors 102, 104. In the figures, FIG. 2A shows a top view of the robot 100, and FIG. 2B illustrates a side view of the robot 100. In this example, the robot 100 includes a robot drive unit 106 and a robot arm 108. The end effectors 102, 104 include respective areas A, B for supporting one of the substrates S on the end effector 102, 104. It should be noted that at various points in this description and in the figures, the end effectors may be referred to by the letters A, B or A-D, which correspond to the areas for supporting a substrate thereon, for example.
[0041] 2C-2D, an exemplary internal mechanism of the robot 100 is depicted in schematic form. The robot arm 108 comprises, in this example, an upper arm 110, an upper forearm 111a connected to the end effector 102, which in this example forms an upper end effector, and a lower forearm 111b connected to the end effector 104, which in this example forms a lower end effector. The robot arm 108 may be driven by a robot drive unit 106. In this example, the robot drive unit 106 comprises a three-axis spindle 112 with three coaxial shafts, e.g., an outer T1 shaft 114, a T2 shaft 116 and an inner T3 shaft 118.
[0042] The upper arm 110 of the robot arm 108 may be directly attached to the T1 shaft 114. The upper forearm 111a may be coupled to the upper arm 110 via a revolute joint (elbow joint) 120 and actuated by the T2 shaft 116 using a belt mechanism 126. The belt mechanism may comprise a shoulder pulley 122 that may be attached to the T2 shaft 116, an elbow pulley 124 that may be attached to the upper forearm 111a, and a band, belt or cable 126a that may transmit motion between the two pulleys 122, 124. The belt mechanism may feature a constant or variable transmission ratio. As an example, a variable transmission ratio may be realized using non-circular pulleys.
[0043] Similarly, the lower forearm 111b may be coupled to the upper arm 110 via a revolute joint (elbow joint) 128, and the orientation of the lower forearm 111b may be controlled by the T3 shaft 118 using another band, belt or cable mechanism 130. The belt mechanism may comprise a shoulder pulley B 132, which may be attached to the T3 shaft, an elbow pulley B 134, which may be attached to the forearm B, and a band, belt or cable 130b, which may transmit motion between the two pulleys 132, 134. Again, the belt mechanism may feature a fixed or variable transmission ratio, achieved, for example, by the use of non-circular pulleys.
[0044] The T1, T2 and T3 shafts of the robot drive unit 106 may be rotated to allow the upper end effector 102 and the lower end effector 104 to access the various offset stations 14 and radial stations 12, either individually or simultaneously, as shown diagrammatically in Figures 3A-3G. Exemplary stepwise movement diagrams are shown in Figures 3H-3K. In Figure 3H, the arm 108 moves the end effector 102(A) from a partially deployed and retracted position, e.g., before a station, to an extended position, e.g., in station 14a shown in Figure 3D. The other end effector 104(B), i.e., the end effector that is not moving, may conveniently remain folded on the upper arm 110, thereby desirably limiting the movement of the end effector. In Figure 3I, the arm 108 moves the end effector 102(A) from a partially deployed and retracted position, e.g., before a station, to an extended position, e.g., in station 14b shown in Figure 3E. The other end effector 104(B), i.e. the end effector that is not moving, may conveniently remain folded on the upper arm 110, thereby desirably limiting the movement of the end effector. In Fig. 3J, the arm 108 moves the end effector 104(B) from a partially deployed and retracted position, e.g., before a station, to an extended position, e.g., in station 14a shown in Fig. 3F. The other end effector 102(A), i.e. the end effector that is not moving, may conveniently remain folded on the upper arm 110, thereby desirably limiting the movement of the end effector. In Fig. 3K, the arm 108 moves the end effector 104(B) from a partially deployed and retracted position, e.g., before a station, to an extended position, e.g., in station 14b shown in Fig. 3G. The other end effector 102(A), i.e. the end effector that is not moving, may conveniently remain folded over the upper arm 110, thereby desirably limiting the movement of the end effector.
[0045] When fully retracted, the upper forearm 111a and the lower forearm 111b are oriented 180 degrees from the angle of the upper arm 110 as shown in FIG. 3A. In this “folded” position, the pivot diameter is minimized, which is optimal for rotational movement between different stations. The radius of the wafer center relative to the robot center in this folded position defines a circular region in which it is not physically possible to position the payload center. This circular trajectory of payload position represents a kinematic singularity, and inverse kinematic calculations near this region are poorly conditioned (see, e.g., Equations (22)-(29) for inverse kinematics details). Conventional trajectory generation involves calculating a one-dimensional trajectory profile with normalized path variables, then applying the one-dimensional trajectory profile to a line segment connecting the start and end positions, and mapping the path variables to the midpoint of the line segment based on the Cartesian coordinate space. Applying this technique to planned paths that move the payload away from (extend motion) or back to (retract motion) this singularity generally produces commanded angular velocities and accelerations that are too high for the robot to practically achieve.
[0046] To address this technical challenge in the present embodiment, a joint space trajectory generation algorithm may be included. Given the start and end positions of a commanded movement, the joint space trajectory generation algorithm may execute the following protocol: Check that the straight line path between the end points does not intersect with any singular points. If an intersection is predicted, do not execute the move. As an example, the check may use the following methods: a. The movement is represented by a straight line segment connecting the starting point P1 and the end point P2 and a corresponding vector V p It may be defined as =P2-P1. b. The singular point is the robot center P c and intersects with the point at r c =l A -l1 and r for end effector B c =l B A vector V (nominaly defined as the "Z" axis) having a radius of -l1.c may be defined as an infinite cylinder with its axis along c. Additional vector V a =P1-P c Define. d. Solve quadratic equations defined by coefficients.
number
number
number
number
number
number
number
[0047] The other end effector, i.e. the one not moving, may conveniently remain folded over the upper arm, thereby desirably limiting the movement of the end effector.
[0048] 11A-11C, an example of a motion starting at a singularity and extending to a station on a linear path is shown. This description is made with reference to the robot shown in FIGS. 2A-2D, but is equally applicable to at least some of the other robots described herein. FIG. 11A shows an initial position, FIG. 11B shows a final extended position, and FIG. 11C shows a path from the initial position to a final position with some of the intermediate arm positions highlighted. In this example, FIG. 11A shows a start point where the robot arm has both end effectors A, B, and FIG. 11B shows an end point where the robot arm has been moved to move the first end effector A to an extended position, while the second end effector B is held in a retracted position. FIG. 11C shows a series of snapshots of the movement of the robot arm and end effector between the positions shown in FIGS. 11A and 11B. In this example, FIG. 11C also shows the movement segment of the first end effector A from the retracted position to the extended position, where the movement segment is a straight line into one of the offset stations. In this example, as seen in FIG. 11C, the joints of the forearm and upper arm simply follow a circular path around the central axis of the robot drive, and the payload center of the second end effector (and the substrate on the second end effector) also simply follow a circular path around the central axis of the robot drive. FIG. 11D shows the trajectory calculated as the included angle, defined in this particular example as θ1(t)-θ2(t), where jerk and acceleration limits have been applied, as seen in the acceleration plot. FIG. 11E shows the corresponding scaled trajectory as drive shaft angle, and FIG. 11F shows the corresponding scaled trajectory as Cartesian coordinates, where the acceleration plot shows that scaling has been applied so that the total acceleration, i.e., the vector sum of the x and y components, does not exceed a given limit (dashed line). As a result, motion is subject to constraints in both joint space (i.e., included angle space) and Cartesian space.
[0049] The original problem of calculating the inverse kinematics near singularities has been solved since the trajectories are shaped to limit the joint velocities and accelerations and the calculations use knowledge of the desired included angles to avoid problematic parts of the calculations.
[0050] Multiple motion segments can be calculated and executed in sequence. Motion segments may be combined to reduce total motion time by eliminating stops at waypoints. A sequence of motion segments may include some segments calculated using the joint space trajectory generation scheme described above and other segments calculated by any other method. The number of motion segments, types of motion segments, and order of motion segment types are not subject to any restrictions.
[0051] As an alternative to the exemplary internal configuration of Figures 2C-2D, the upper arm of the robot arm may be driven by a robot drive unit with a single axis spindle, and the forearm may be driven by a pair of actuators attached to the upper arm. Specifically, one actuator may be configured to drive the upper forearm and the other actuator may be configured to drive the lower forearm. The actuators may be directly connected to the forearm, as in the exemplary configuration of Figures 15A-15B, or may be coupled to the forearm via a band, belt or cable mechanism, as in the exemplary configuration of Figures 16A-16B.
[0052] Another exemplary embodiment of a robot is shown in Figures 4A-4C. In this example, the robot 200 includes two end effectors 202, 204. Figure 4A shows a top view of the robot 200, and Figure 4B illustrates a side view of the robot 200. The robot 200 includes a robot drive unit 206 and a robot arm 208. The robot arm 208 features linkages, such as a left linkage 210 and a right linkage 212.
[0053] The left linkage 210 may be comprised of a left upper arm 214 and a left forearm 216 with a left end effector 202 having a substrate support area A. Similarly, the right linkage 212 may be comprised of a right upper arm 218 and a right forearm 220 with a right end effector 204 having a substrate support area C.
[0054] 4C-4D, an exemplary internal mechanism of the robot is depicted in schematic form. The robot arm 208 may be driven by a robot drive unit 206. In this exemplary embodiment, the robot drive unit 206 comprises a four-axis spindle 222 with four coaxial shafts, e.g., an outer T1 shaft 224, a T2 shaft 226, a T3 shaft 228, and an inner T4 shaft 230.
[0055] The right upper arm 218 of the robot arm 208 may be attached directly to the T1 shaft 224. The right forearm 220 may be coupled to the right upper arm 218 via a revolute joint (right elbow joint) 232 and actuated by the T2 shaft 226 using a belt mechanism 234. The belt mechanism 234 may comprise a right shoulder pulley 236 that may be attached to the T2 shaft, a right elbow pulley 238 that may be attached to the right forearm 220, and a band, belt or cable that may transmit motion between the two pulleys 236, 238. The belt mechanism 234 may feature a constant or variable transmission ratio. By way of example, the variable transmission ratio may be selected to change the orientation of the right forearm 220 with respect to the right end effector 204 in a predefined manner as a function of the relative position of the right upper arm 218 and the T2 shaft. However, any other suitable mechanism may be used.
[0056] Similarly, the left upper arm 214 of the robot arm 208 may be attached directly to the T3 shaft 228. The left forearm 216 may be coupled to the left upper arm 214 via a revolute joint 240 (left elbow joint) and actuated by the T4 shaft using a belt mechanism 242. The belt mechanism 242 may comprise a left shoulder pulley 244 that may be attached to the T4 shaft, a left elbow pulley 246 that may be attached to the left forearm 216, and a band, belt or cable that may transmit motion between the two pulleys 244, 246. The belt mechanism 242 may feature a constant or variable transmission ratio. By way of example, the variable transmission ratio may be selected to change the orientation of the left forearm 216 with respect to the left end effector 202 in a predefined manner as a function of the relative position of the left upper arm 210 and the T4 shaft. However, any other suitable mechanism may be used. It should be noted that although the exemplary embodiment of FIGS. 4A-4C shows end effectors 202 and 204 vertically offset from one another, the end effectors may lie in the same plane.
[0057] The T1, T2, T3, T4 shafts of the robot drive unit 206 may be rotated to allow the left end effector 202 and the right end effector 204 to access the various offset stations 14 and radial stations 12 individually or simultaneously, as shown diagrammatically in Figures 5A-5H. In another exemplary embodiment, the robot may feature four end effectors that may operate in stacked and parallel configurations. As an alternative to the exemplary internal configuration of Figures 4C-4D, the upper arm of the robot arm may be driven by a robot drive unit with a two-axis spindle, and the forearm may be driven by a pair of actuators, one actuator attached to each of the two upper arms of the robot arm. Specifically, one actuator may be attached to the left upper arm to drive the left forearm, and the other actuator may be attached to the right upper arm to drive the right forearm. The actuator may be directly connected to the forearm, as in the exemplary configuration of FIGS. 15A-15B, or may be coupled to the forearm via a band, belt or cable mechanism, as in the exemplary configuration of FIGS. 16A-16B.
[0058] 6A-6C, another exemplary embodiment of a robot is shown. In this exemplary embodiment, the robot 300 includes four end effectors 302, 304, 306, 308. FIG. 6A shows a top view of the robot 300, and FIG. 6B illustrates a side view of the robot 300. The robot 300 includes, in this example, a robot drive unit 310 and a robot arm 312. The robot arm 312 may feature linkages, such as, for example, a left linkage 314 and a right linkage 316.
[0059] The left linkage 314 may be comprised of a left upper arm 318, a left upper forearm 320 with a left upper end effector 302 having substrate support area A, and a left lower forearm 322 with a left lower end effector 304 having substrate support area B. Similarly, the right linkage 316 may be comprised of a right upper arm 324, a right upper forearm 326 with a right upper end effector 306 with substrate support area C, and a right lower forearm 328 with a right lower end effector 308 with substrate support area D.
[0060] An exemplary internal arrangement of the robot 300 is depicted in schematic form in Figures 6C-6D (note that the orientation of the end effector relative to the upper arm in Figure (c) does not correspond to the configuration shown in Figure 6A nor represents the actual arrangement, i.e. it is chosen only to visualize the internal arrangement of the robot in a clear manner, and the end effector may be angularly offset from the depicted orientation as required by the actual application). The robot arm 312 may be driven by a robot drive unit 310 with a four-axis spindle 330 with four coaxial shafts, e.g. an outer T1 shaft 332, a T2 shaft 334, a T3 shaft 336 and an inner T4 shaft 338.
[0061] The left upper arm 318 of the robot arm 312 may be attached directly to the T3 shaft. The left upper forearm 320 may be coupled to the left upper arm 318 via a revolute joint (left elbow joint) 340 and actuated by the T4 shaft using a belt mechanism 342. The belt mechanism 342 may comprise a left shoulder pulley 344 that may be attached to the T2 shaft, a left elbow pulley 346 that may be attached to the left upper forearm 318, and a band, belt or cable that may transmit motion between the two pulleys 344, 346. The belt mechanism 342 may feature a constant or variable transmission ratio. By way of example, the variable transmission ratio may be selected to change the orientation of the left upper forearm 320 with respect to the left upper end effector 302 in a predefined manner as a function of the relative position of the left upper arm 318 and the T4 shaft. However, any other suitable mechanism may be used.
[0062] Similarly, the left lower forearm 322 may be coupled to the left upper arm 318 via a revolute joint (left elbow joint) 348, and the orientation of the left lower forearm 322 may be controlled by the T4 shaft using another band, belt or cable mechanism 350. The belt mechanism 350 may be configured in a cross-like manner, as illustrated in FIG. 6D. The belt mechanism 350 may include a shoulder pulley 352 that may be attached to the T4 shaft, a left elbow pulley 354 that may be attached to the left lower forearm 322, and a band, belt or cable that may transmit motion between the two pulleys 352, 354. The belt mechanism 350 may feature a constant or variable transmission ratio. By way of example, the variable transmission ratio may be selected to change the orientation of the left lower forearm 322 with respect to the left end effector 304 in a predefined manner as a function of the relative position of the left upper arm 318 and the T4 shaft. However, any other suitable mechanism may be used.
[0063] 6C, the right upper arm 324 of the robot arm 312 may be attached directly to the T1 shaft. The right upper forearm 326 may be coupled to the right upper arm 324 via a revolute joint (right elbow joint) 356 and actuated by the T2 shaft using a belt mechanism 358. The belt mechanism 358 may comprise a shoulder pulley 360 that may be attached to the T2 shaft, a right elbow pulley 362 that may be attached to the right upper forearm 326, and a band, belt or cable that may transmit motion between the two pulleys 360, 362. The belt mechanism 358 may feature a constant or variable transmission ratio. By way of example, the variable transmission ratio may be selected to change the orientation of the right upper forearm 326 with respect to the right end effector 306 in a predefined manner as a function of the relative position of the right upper arm 324 and the T2 shaft. However, any other suitable mechanism may be used.
[0064] The right lower forearm 328 may be coupled to the right upper arm 324 via a revolute joint (right elbow joint) 364, and the orientation of the right lower forearm 328 may be controlled by the T2 shaft using another band, belt or cable mechanism 366. The belt mechanism 366 may be configured in a cross-like manner, as illustrated in FIG. 6D. The belt mechanism 366 may include a shoulder pulley 368 that may be attached to the T2 shaft, a right elbow pulley 370 that may be attached to the right lower forearm 328, and a band, belt or cable that may transmit motion between the two pulleys 368, 370. The belt mechanism 366 may feature a constant or variable transmission ratio. By way of example, the variable transmission ratio may be selected to change the orientation of the right lower forearm 328 relative to the right lower end effector 308 in a predefined manner as a function of the relative position of the right upper arm 324 and the T2 shaft. However, any other suitable mechanism may be used.
[0065] 6A-6C show end effectors 302 and 306 vertically offset from one another, it should be noted that the end effectors may lie in the same plane if the arm geometry, band drive transmission ratio, and / or arm sequence of motion allows the end effectors to be spaced apart from one another. The same applies to end effectors 304 and 308.
[0066] Considering an exemplary robot arm in which all band drives feature a constant transmission ratio, the kinematics of the left linkage (i.e., left upper arm, forearm 320 with end effector 302, and forearm 322 with end effector 304) with respect to the drive shafts as well as the angular orientation of the individual links of the linkages can be described as follows:
number
number
number
number
number
[0067] Similarly, the kinematics of the right linkage (i.e., right upper arm 324, forearm 326 with end effector 306, and forearm 328 with end effector 308) with respect to the angular orientations of the drive shafts 336, 338 (T3 and T4) and the individual links of the right linkage can be described by the following equations (see Table 1 for nomenclature):
number
[0068] To illustrate the kinematic formula above, n A =1, n B =-1, n C =1 and n D Consider an exemplary arm having a transmission ratio of θ = -1 and the arm is initially in the retracted position of FIG. 7A, i.e., θ 1ret=225 degrees, θ Aret =90 degrees, θ Bret =90 degrees, θ 3ret =315 degrees, θ Cret = 90 degrees, and θ Dret = 90 degrees.
[0069] When drive shaft T1 rotates 90 degrees in the clockwise direction (i.e., Δθ1=−90 degrees) and drive shaft T2 remains stationary (Δθ2=0 degrees), as shown in FIG. 7E, end effector 302 rotates in a clockwise direction (i.e., Δθ1=−90 degrees). AextA = 90 degrees to reach the final extended position, during which the end effector 304 rotates 180 degrees in a clockwise direction (Δθ B =-180 degrees), θ BextA = 270 degrees. Note that in this illustrative example, end effector A does not have to move from an initial retracted position to a final extended position along a straight line, and as will be explained below, drive shaft T2 must rotate in coordination with drive shaft T1 to extend end effector A along a straight line path, but the total rotation of drive shaft T2 between the initial and final positions remains zero.
[0070] When the drive shaft T1 rotates 90 degrees in a clockwise direction (Δθ1=−90 degrees) and the drive shaft T2 rotates 180 degrees in the same direction (Δθ2=−180 degrees), the end effector 304 rotates in a clockwise direction (Δθ1=−90 degrees) as shown in FIG. 7G. BextB = 90 degrees to reach the final extended position, during which the end effector 302 rotates 180 degrees in a clockwise direction (Δθ A =-180 degrees), θ AextB = 270 degrees final orientation is reached.
[0071] Similarly, when drive shaft T3 rotates 90 degrees counterclockwise (Δθ3=90 degrees) and drive shaft T4 remains stationary (Δθ4=0 degrees), the end effector 306 rotates through θ CextC = 90 degrees to reach the final extended position, and the end effector 308 rotates 180 degrees counterclockwise (Δθ D=180 degrees), θ DextC = 270 degrees. Note that in this illustrative example, end effector C does not have to move from an initial retracted position to a final extended position along a straight line, and as will be explained below, drive shaft T4 must rotate in coordination with drive shaft T3 to extend end effector C along a straight path, but the total rotation of drive shaft T4 between the initial and final positions remains zero.
[0072] Finally, when the drive shaft T3 rotates 90 degrees counterclockwise (Δθ3=90 degrees) and the drive shaft T4 rotates 180 degrees clockwise (Δθ4=180 degrees), the end effector 308 rotates θ DextD = 90 degrees to reach the final extended position, during which the end effector 306 rotates 180 degrees counterclockwise (Δθ C =180 degrees), θ CextD = 270 degrees final orientation is reached.
[0073] Utilizing equations (7)-(9), the forward kinematics associated with the end effectors 302, 304 (A and B) (i.e., the relationship between the positions of the end effectors 302, 304 and the angular orientations of the drive shafts T1 and T2) can be summarized as follows (see Table 1 for nomenclature):
number
[0074] The forward kinematic equations (12)-(16) may be used to determine the coordinates of the end effectors 302, 304 (A, B) based on the angular positions of the drive shafts T1 and T2.
[0075] The forward kinematics associated with the end effectors 306, 308 (C and D) can be summarized as follows (see Table 1 for nomenclature):
number
[0076] Note that equations (9)-(11) are utilized to derive the above equation. The forward kinematics equations (17)-(21) may be used to determine the coordinates of the end effectors 306, 308 (C, D) based on the angular positions of the drive shafts T3 and T4.
[0077] When a band drive with variable transmission ratio is used, equations (14) and (19) must be replaced by relationships characteristic of the particular band mechanism(s). For example, Δθ as a function of (Δθ2-Δθ1) A and Δθ B Lookup table for and Δθ as a function of (Δθ4-Δθ3) C and Δθ D Alternatively, a separate look-up table for may be conveniently used.
[0078] The inverse kinematics equations for the left linkage can be obtained by solving the forward kinematics equations for the orientation of drive shafts T1 and T2 as a function of the orientation of end effector 302 or end effector 304 (see Table 1 for nomenclature).
number
[0079] When the position of the end effector 302 is used as an input to the inverse kinematic calculation, the angular orientation of the drive shaft T2 can be determined based on the following equation:
number
[0080] Alternatively, if the position of the end effector 304 is used as an input to the inverse kinematic calculation, the angular orientation of the drive shaft T2 can be determined based on the following equation:
number
[0081] Similarly, the inverse kinematics equations for the right linkage can be obtained by solving the forward kinematics equations for the orientation of drive shafts T3 and T4 as a function of the orientation of end effector 306 (C) or end effector 308 (D) (see Table 1 for nomenclature).
number
[0082] When the position of the end effector 306 is used as an input to the inverse kinematic calculation, the angular orientation of the drive shaft T4 can be determined based on the following equation:
number
[0083] Alternatively, if the position of the end effector D is used as an input to the inverse kinematic calculation, the angular orientation of the drive shaft 4 can be determined based on the following equation:
number
[0084] For the entire robot arm to rotate, all drive shafts, i.e., T1, T2, T3, and T4, must move the same amount relative to a fixed reference frame in the desired direction of rotation of the arm. This is depicted diagrammatically in Figures 7A-7B. In this particular example, the entire robot arm rotates 90 degrees in the clockwise direction.
[0085] As depicted diagrammatically in the example of FIG. 7E, shafts T1 and T2 may need to be rotated in a coordinated manner such that the left upper end effector 302 extends from the retracted position of FIG. 7A along a predefined path, such as a straight path, to the left offset station 14a. More specifically, the inverse kinematic equations for the left upper end effector 302 (Equations (22)-(28)) may be utilized to determine the orientation of the T1 and T2 shafts as a function of the position of the left end effector 302. As shown, the left lower end effector 304 may be rotated out of the way as the left upper end effector 302 extends to station 14a. The left upper end effector 302 may be retracted by counter-rotating the T1 and T2 shafts in a similar manner.
[0086] In the above example of moving the end effector 302 between the retracted position of FIG. 7A and the extended position of FIG. 7E, the following orientations of the individual links of the left linkage are shown: 1ret = 225, θ Aret = 90 degrees, and θ Bret = 90 degrees, and in the extended position, θ 1ext = 135, θ AextA = 90 degrees, and θ BextA = 270 degrees. A =1 and n BWith an exemplary transmission ratio of T = -1, drive shaft T1 may be actuated to rotate 90 degrees in a clockwise direction as end effector 302 extends, and drive shaft T2 is actuated to rotate in a coordinated manner such that end effector A follows a desired path. In this particular example, the total rotation of drive shaft T2 is zero, i.e., the initial and final angular positions of drive shaft T2 are the same. Drive shaft T1 may be actuated to rotate 90 degrees in a counterclockwise direction, and drive shaft T2 is actuated to rotate in the opposite manner as end effector 302 retracts.
[0087] As depicted diagrammatically in the example of FIG. 7G, shafts T1 and T2 may be rotated in a coordinated manner according to the inverse kinematics equations for the left lower end effector 304 (equations (22)-(27) and (29)) such that the left lower end effector 304 extends from the retracted position of FIG. 7A along a predefined path, such as a straight line path, to the same left offset station 14a. As shown, the left upper end effector 302 may be pivoted out of the way as the left lower end effector 304 extends to station 14a. The left lower end effector 304 may be retracted by counter-rotating the T1 and T2 shafts in a similar manner.
[0088] In the above example of moving the end effector 304 between the retracted position of FIG. 7A and the extended position of FIG. 7G, the following orientations of the individual links of the left linkage are shown: 1ret = 225, θ Aret = 90 degrees, and θ Bret = 90 degrees, and in the extended position, θ 1ext = 135, θ AextB = 270 degrees, and θ BextB = 90 degrees. Here again, n A =1 and n BWith an exemplary transmission ratio of T = -1, drive shaft T1 may be actuated to rotate 90 degrees in a clockwise direction and drive shaft T2 may be actuated to rotate 180 degrees in the same direction when end effector 304 is extended. The two drive shafts may be actuated to rotate the same amount in opposite directions when end effector 304 is retracted.
[0089] The above operations may be used to lift / place a wafer or substrate from / to the offset station 14. A sequence of a lift operation with one end effector, e.g. 302, followed by a place operation with another end effector, e.g. 304, may be used to quickly swap wafers / substrates at the offset stations (rapid exchange operation). As an example, the upper left end effector 302 may extend to a station, pick up a wafer, and retract. The lower left end effector 304, which may be carrying another wafer, may then extend to the same station, place the wafer, and retract.
[0090] As depicted diagrammatically in the example of FIG. 7F, shafts T3 and T4 may need to be rotated in a coordinated manner so that the upper right end effector 306 extends from the retracted position of FIG. 7A along a predefined path, such as a straight path, to the right offset station 14b. More specifically, the inverse kinematic equations for the upper right end effector 306 (Equations (30)-(36)) may be utilized to determine the orientation of the T3 and T4 shafts as a function of the position of the upper right end effector 306. As shown, the lower right end effector 308 may be rotated out of the way as the upper right end effector 306 extends to the station. The upper right end effector 306 may be retracted by counter-rotating the T3 and T4 shafts in a similar manner.
[0091] In the above example of moving the end effector 306 between the retracted position of FIG. 7A and the extended position of FIG. 7F, the following orientations of the individual links of the right linkage are shown: 3ret = 315, θ Cret = 90 degrees, and θ Dret = 90 degrees, and in the extended position, θ 1ext = 45, θ CextC = 90 degrees, and θ DextC = 270 degrees. C =1 and n D For an example transmission ratio where R = -1, drive shaft T3 may be actuated to rotate 90 degrees in a counterclockwise direction when end effector 306 is extended, and drive shaft T4 is actuated to rotate in a coordinated manner such that end effector 306(C) follows a desired path, and in this particular example, the total rotation of drive shaft T4 is zero, i.e., the initial and final angular positions of drive shaft T4 are the same. Drive shaft T3 may be actuated to rotate 90 degrees in a clockwise direction, and drive shaft T4 is actuated to rotate in the opposite manner when end effector 306 is retracted.
[0092] As depicted diagrammatically in the example of FIG. 7H, shafts T3 and T4 may be rotated in a coordinated manner according to the inverse kinematics equations for the right lower end effector 308 (equations (30)-(35) and (37)) such that the right lower end effector 308 extends from the retracted position of FIG. 7A along a predefined path, such as a straight line path, to the same right offset station 14b. As shown, the right upper end effector 306 may be pivoted out of the way as the right lower end effector 308 extends to station 14b. The right lower end effector 308 may be retracted by counter-rotating the T3 and T4 shafts in a similar manner.
[0093] In the above example of moving the end effector 308 between the retracted position of FIG. 7A and the extended position of FIG. 7H, the following orientations of the individual links of the left linkage are shown: 1ret= 315, θ Cret = 90 degrees, and θ Dret = 90 degrees, and in the extended position, θ 1ext = 135, θ CextD = 270 degrees, and θ DextD = 90 degrees. Again, n C =1 and n D Considering an example transmission ratio of T = -1, drive shaft T3 may be actuated to rotate 90 degrees in a counterclockwise direction and drive shaft T4 may be actuated to rotate 180 degrees in the same direction when the end effector 308 is extended. The two drive shafts may be actuated to rotate the same amount in opposite directions when the end effector 308 is retracted.
[0094] Again, the above actions may be used to lift / place a wafer from / to the offset station. A sequence of lift with one end effector followed by a place with the other end effector may be used to quickly swap wafers at the offset station (quick swap action). As an example, the top right end effector 306 may extend to a station, pick up a wafer, and retract. Then the bottom right end effector 308, which may carry another wafer, may extend to the same station 14b, place the wafer, and retract.
[0095] The left upper end effector 302 and the right upper end effector 306 may also be simultaneously extended (retracted) to (from) their respective left and right offset stations by performing the simultaneous extension (retract) movements described above with respect to Figures 7E and 7F. This is illustrated in Figure 7C.
[0096] Additionally, the placement positions of the upper left end effector 302 and the upper right end effector 306 may be adjusted independently (see FIG. 1F). As an example, this functionality may be conveniently utilized to correct any misalignment of the two wafers on the robot end effectors to accurately deliver the two wafers to their desired locations within their respective stations.
[0097] The left lower end effector 304 and the right lower end effector 308 may also be simultaneously extended (retracted) to (from) the respective left and right offset stations 14a, 14b by performing the simultaneous extension (retraction) movements described above with respect to Figures 7G and 7H, as illustrated in Figure 7D.
[0098] Again, the positional locations of the left lower end effector 304 and the right lower end effector 308 may be adjusted independently. As discussed above, this functionality may be used, for example, to correct any misalignment of the two wafers on the robot end effectors to accurately deliver the two wafers to their desired locations within their respective stations.
[0099] A sequence of a lift operation with one pair of end effectors, e.g., end effectors 302 and 306, followed by a place operation with another pair of end effectors, in this particular example, end effectors 304 and 308, may be used to quickly exchange a pair of wafers at a pair of parallel offset stations, e.g., 14a and 14b (rapid exchange operation within a pair of parallel offset stations). In the above example, the upper left end effector 302 and the upper right end effector 306 may extend to a pair of parallel offset stations, pick up a pair of wafers, and retract from the stations. The lower left end effector 304 and the lower right end effector 308, which may carry another pair of wafers, may then extend to the same pair of stations, place a different pair of wafers, and retract from the stations.
[0100] Each of the robot's end effectors, i.e., upper left end effector 302, lower left end effector 304, upper right end effector 306 and lower right end effector 308, may also access a radially oriented station (FIG. 1A).
[0101] As depicted diagrammatically in the example of Figure 8D, shafts T1 and T2 may rotate in a coordinated manner according to inverse kinematic equations for the left upper end effector 302 such that the left upper end effector 302 extends along a predefined path, such as a radial straight line path, to radial station 12. As shown, the left lower end effector 304 may rotate out of the way as the left upper end effector 302 extends to station 12. The left upper end effector 302 may be retracted by counter-rotating the T1 and T2 shafts in a similar manner.
[0102] As depicted diagrammatically in the example of FIG. 8F, shafts T1 and T2 may rotate in a coordinated manner according to inverse kinematic equations for the left lower end effector 304 such that the left lower end effector 304 extends along a predefined path, such as a radial straight line path, to the same radial station 12. As shown, the left upper end effector 302 may pivot out of the way as the left lower end effector 304 extends to station 12. The left lower end effector 304 may be retracted by counter-rotating the T1 and T2 shafts in a similar manner.
[0103] The above operations may be utilized to lift / place a wafer from / to the radial station 12. Again, a sequence of a lift operation with one end effector followed by a place operation with the other end effector may be used to quickly exchange wafers at the radial stations (rapid exchange operation).
[0104] As depicted diagrammatically in the example of Figure 8E, shafts T3 and T4 may rotate in a coordinated manner according to inverse kinematic equations for the upper right end effector 306 such that the upper right end effector 306 extends along a predefined path, such as a linear radial path, to the radial station 12. As shown, the lower right end effector 308 may rotate out of the way as the upper right end effector 306 extends to station 12. The upper right end effector 306 may be retracted by counter-rotating the T3 and T4 shafts in a similar manner.
[0105] As depicted diagrammatically in the example of FIG. 8G, shafts T3 and T4 may rotate in a coordinated manner according to inverse kinematics equations for the right lower end effector 308 such that the right lower end effector 308 extends to the same radial station along a predefined path, such as a radial straight line path. As shown, the right upper end effector 306 may pivot out of the way as the right lower end effector 308 extends to station 12. The right lower end effector 308 may be retracted by counter-rotating the T3 and T4 shafts in a similar manner.
[0106] The above operations may be utilized to lift / place a wafer from / to the radial station 12. A sequence of a lift operation with one end effector followed by a place operation with the other end effector may be used to quickly exchange wafers at the offset station (rapid exchange operation).
[0107] The left upper end effector 302 and the right upper end effector 306 may also be simultaneously extended (retracted) to (from) a pair of vertically stacked radial stations 12 by performing the simultaneous extension (retract) movements described above with respect to Figures 8D and 8E. This is illustrated in Figure 8B.
[0108] The positioning positions of the upper left end effector 302 and the upper right end effector 306 may be adjusted independently. As an example, this feature may be conveniently used to correct any misalignment of the two wafers on the robot end effectors to accurately deliver the two wafers to their desired locations within their respective radial stations.
[0109] The left lower end effector 304 and the right lower end effector 308 may also be simultaneously extended (retracted) to (from) a pair of vertically stacked radial stations by performing the simultaneous extension (retract) movements described above with respect to Figures 8F and 8G. This is illustrated in Figure 8C.
[0110] Again, the positional locations of the left lower end effector 304 and the right lower end effector 308 may be adjusted independently. As discussed above, this functionality may be used, for example, to correct any misalignment of the two wafers on the robot end effectors to accurately deliver the two wafers to their desired locations within their respective radial stations.
[0111] A sequence of a lifting action with a pair of end effectors, e.g., end effectors 302 and 306, followed by a placing action with another pair of end effectors, in this particular example, end effectors 304 and 308, may be used to quickly exchange a pair of wafers at a pair of vertically stacked radial stations (a rapid exchange action within a pair of stacked radial stations).
[0112] As shown in the above example of robot movement, the left (right) lower end effector may rotate out of the way as the left (right) upper end effector extends to a station, and similarly, the left (right) upper end effector may rotate out of the way as the left (right) lower end effector extends to a station. The range of rotation may be desirably reduced by utilizing a band mechanism having a variable transmission ratio between the shoulder and elbow pulleys of the robot arm. As mentioned above, any of the belt mechanisms may feature a constant or variable transmission ratio, for example, achieved by the use of circular and / or non-circular pulleys. Figures 10A-10B show several examples of a circular pulley 400 and non-circular pulleys 402, 404, 406 connected by a band / belt 408. These are merely examples and should not be considered limiting. Other suitable sizes and shapes of non-circular pulleys may be provided. By way of example, one or two non-circular pulleys may be used for this purpose, such as those described in U.S. Pat. No. 9,149,936, which is incorporated herein by reference in its entirety.
[0113] As previously described, the variable transmission ratio may be selected to control the orientation of the left (right) end effector as a function of the relative position of the left (right) upper arm and the shoulder pulley driving the left (right) end effector. For example, the variable transmission ratio may be selected so that the left lower end effector 304 quickly rotates out of the way and then the left upper end effector 302 decelerates as it extends towards the station. This is shown in the example of Figures 12A-12B. Figures 12A and 12B show a series of snapshots of the robot arm 108 and end effector during movement, similar to the position shown in Figure 11C. This description is made with reference to the robot shown in Figures 2A-2D, but is equally applicable to at least some of at least some of the other robots described herein. In the example shown in Figure 12A, the first end effector A moves from a retracted position to an extended position, and the movement segment is a straight line into one of the offset stations. In this example, the joints of the forearm and upper arm simply follow a circular path around the central axis of the robot drive, while the payload center of the second end effector (and the substrate on the second end effector) has a curved path but remains retracted while the first end effector is extended. Figure 12B shows a similar movement to Figure 12A, but with a different transmission ratio. In Figure 12A, a constant transmission ratio n of -1 is used. B is utilized, resulting in a 180 degree rotation of end effector B. In FIG. 12B, the transmission ratio is gradually changed from -1 to -0.25, reducing the rotation of end effector B to approximately 145 degrees.
[0114] In another exemplary embodiment, the upper arm of the robot arm may be driven by a robot drive unit with a two-axis spindle, and the forearm of the robot arm may be driven by an actuator attached to the upper arm. An example of such a mechanism is depicted diagrammatically in Figs. 13A-13B. In the example of Figs. 13A-13B, the left upper arm 1318 of the robot arm may be connected to a shaft T1L of the robot drive unit, and the left forearms 320, 322 may be coupled to a shaft T2L driven by an actuator, e.g., motor 1302, that may be attached to the left upper arm. Similarly, the right upper arm 1324 of the robot arm may be connected to a shaft T1R of the robot drive unit, and the right forearms 326, 328 may be coupled to a shaft T2R driven by an actuator, e.g., motor 1304, that may be attached to the right upper arm.
[0115] In another exemplary embodiment, the upper and forearms of the robot arm may be actuated independently by a robot drive unit with a six-axis spindle featuring six independent drive shafts. An example of this is shown in Figures 14A-14B. The independent actuation may allow the robot to simultaneously extend end effectors carried by the same upper arm, for example to pick up / place two wafers from / to the same station in one motion. A robot drive 1410 is provided with a six-axis spindle featuring six independent drive shafts. The robot arm 1408 has upper arms 318, 324, forearms 320, 322, 326, 328, belt mechanisms 342, 350, 358, 366, and end effectors A-D similar to those shown in Figures 6C-6D.
[0116] Alternatively, the upper arm of the robot arm may be driven by a robot drive unit with a two-axis spindle, and the forearm may be driven by two pairs of actuators, one pair attached to each of the two upper arms of the robot arm. Specifically, one pair of actuators may be attached to the left upper arm to drive the left forearm, and the other pair of actuators may be attached to the right upper arm to drive the right forearm. The actuators may be directly connected to the forearms, as depicted diagrammatically in FIGS. 15A-15B, or may be coupled to the forearms via a band, belt or cable mechanism, as depicted diagrammatically in FIGS. 16A-16B. For vacuum environment applications, the actuators (and sensors, controllers and other components associated with them) may be sealed, powered, cooled, and communicated utilizing the techniques described in U.S. Patent Application Publication No. 2016 / 0064263, the entire contents of which are incorporated herein by reference. 15A-15B show an example of a robot drive having a first section with two motors 1502, 1503 and two coaxial drive shafts T1, T2 connected to two upper arms 318, 324, a first forearm 320 and a second forearm 322 rotatably connected to the first upper arm 318 with motors 1506, 1508 for rotating the first forearm 320 and the second forearm 322 on the first upper arm 318, and a third forearm 326 and a fourth forearm 328 rotatably connected to the second upper arm 324 with motors 1510, 1512 for rotating the third forearm 326 and the fourth forearm 328 on the second upper arm 324.16A-16B show an example of a robot drive having a first section with two motors 1502, 1503 and two coaxial drive shafts T1, T2 connected to two upper arms 318, 324, a first forearm 320 and a second forearm 322 rotatably connected to the first upper arm 318 with motors 1506, 1508 connected to band drives 1602, 1604 for rotating the first forearm 320 and the second forearm 322 on the first upper arm 318, and a third forearm 326 and a fourth forearm 328 rotatably connected to the second upper arm 324 with motors 1510, 1512 connected to band drives 1606, 1608 for rotating the third forearm 326 and the fourth forearm 328 on the second upper arm 324.
[0117] Although the figures of the exemplary embodiment show the upper arms of the robot having the same inter-joint length, the upper arms 318a, 324a may have different inter-joint lengths 318b, 324b, as depicted diagrammatically in the examples of Figures 17A-17B. The inter-joint lengths of the upper arms may be selected to allow one upper arm to cross the other, for example, from left hand side to right hand side or from right hand side to left hand side. This may allow the robot to pick up / place wafers from / on left and right hand stations, as depicted diagrammatically in Figures 18A-18T. Figures 18A-18T show various examples of a robot accessing stations in a semiconductor wafer processing system. If desired, the two pairs of end effectors may have different vertical spacing. This spacing allows the robot to simultaneously extend two end effectors in the same plane (at the same vertical height) while the other two end effectors rotate out of the way to avoid colliding with each other in different planes (at different vertical heights).
[0118] Alternatively, the upper arms may feature the same joint-to-joint length, and the end effector(s) carried by one upper arm may be elevated on structural supports configured to allow the other upper arm and its associated end effector(s) to pass through. Examples of such embodiments are illustrated in Figures 19A-19B, where Figure 19A shows a robot with two end effectors and a pass-through support 1902, and Figure 19B depicts a robot with four end effectors and pass-through supports 1904, 1906.
[0119] The robot drive unit may include one or more vertical lifting mechanisms for controlling the vertical height of the robot arm, which may be used to access stations at different heights and compensate for the vertical distance between the end effectors of the robot arm to facilitate material lifting / placing operations. As an example, considering the example shown in FIG. 4C and FIG. 6C, the robot drive unit 206, 310 may include a single vertical lifting mechanism for controlling the height of the T1, T2, T3 and T4 shafts. As another example, the robot drive unit may include one vertical mechanism for controlling the height of the T1 and T2 shafts, thereby individually controlling the height of the left linkage of the robot arm, and another vertical mechanism for at least partially controlling the height of the T3 and T4 shafts separately from the height of the T1 and T2 shafts, thereby individually controlling the height of the right linkage of the robot arm. An example of such a mechanism is shown diagrammatically in FIG. 17B.
[0120] The vertical mechanism may be implemented using two motors, each driving a ball screw, as shown in the example of FIG. 17B. Alternatively, a single fixed ball screw may be attached to the frame of the robot drive unit, and two motors, one attached to the T1 and T2 shaft spindles and the other to the T3 and T4 shaft spindles, may drive a ball screw nut that rides on the fixed ball screw. As yet another alternative, one of the two spindles may be driven relative to the frame of the robot drive unit, and the other spindle may be driven relative to the first spindle. For example, the T1 and T2 shaft spindles may be driven relative to the T3 and T4 shaft spindles, and the T3 and T4 shaft spindles may be driven relative to the robot frame. Although the above example is described utilizing a motor-driven ball screw, any other suitable actuation mechanism may be used, including, but not limited to, a lead screw, a linear motor, a linkage mechanism, a scissor mechanism, a hydraulic actuator, a pneumatic actuator, and combinations thereof.
[0121] Although most of the illustrations of the exemplary embodiments show the robot with the left upper arm above the right upper arm, the left upper end effector and the left lower end effector above the left upper arm, the right upper end effector and the right lower end effector above the right arm, the left upper end effector above the right upper end effector, and the left lower end effector above the right lower end effector, the upper arms and end effectors may be arranged in a variety of configurations.
[0122] For example, the robot may feature the following exemplary configurations and combinations of those configurations: · The left upper arm may be lower than the right upper arm. The left upper end effector may be located above the left upper arm, and the left lower end effector may be located below the left upper arm. The left upper end effector and the left lower end effector may be located below the left upper arm. The right upper end effector may be located above the right upper arm, and the right lower end effector may be located below the right upper arm. The upper right and lower right end effectors may be located lower than the left upper arm. The left upper end effector may be located in substantially the same plane as the right upper end effector. The upper left end effector may be located lower than the upper right end effector. The left lower end effector may be located in substantially the same plane as the right lower end effector. The left lower end effector may be located lower than the right lower end effector. Alternatively, any suitable configuration of upper arms and end effectors may be used.
[0123] An exemplary embodiment may be provided in an apparatus including a robot drive including a plurality of motors and a plurality of coaxial drive shafts connected to the motors, and a robot arm connected to the robot drive, the robot arm including two upper arms, a first set of forearms connected to a first upper arm of the upper arms, a second set of forearms connected to a second upper arm of the upper arms, and a plurality of end effectors connected to each forearm of the forearms, the first upper arms and second upper arms connected to respective first and second coaxial drive shafts of the coaxial drive shafts, the first set of forearms mounted on the first upper arms and connected by respective first and second drive belt assemblies to a third coaxial drive shaft of the coaxial drive shafts, and the second set of forearms mounted on the second upper arms and connected by respective third and fourth drive belt assemblies to a fourth coaxial drive shaft of the coaxial drive shafts.
[0124] The first set of forearms may be connected to the first upper arm at a common axis or axis of rotation. The first drive belt assembly and the second drive belt assembly may each include at least one set of pulleys and a drive belt between the pulleys, at least one of the pulleys being a non-circular pulley. The first drive belt assembly and the second drive belt assembly including the at least one non-circular pulley may be configured to move the first set of forearms without relative rotation between the first set of forearms when the first upper arm is rotated in a first direction, and the first drive belt assembly and the second drive belt assembly including the at least one non-circular pulley are configured to move the first set of forearms with relative rotation between the first set of forearms when the first upper arm is rotated in a second direction opposite the first direction. The apparatus may further include a controller connected to the robot drive, the controller including at least one processor and at least one memory including computer code for controlling the motor. The apparatus may further include a substrate transport chamber connected to the robot drive, the robot arm being located therein, and a plurality of substrate stations connected to the substrate transport chamber, the plurality of substrate stations including a station radially offset from an axis of connection between the robot drive and the substrate transport chamber and at least one station that is not radially offset from the axis of connection between the robot drive and the substrate transport chamber, the robot drive and the robot arm being configured to move the end effectors to insert and remove substrates from the stations. The robot drive and the robot arm may be configured to simultaneously move a first end effector of the end effectors on the first set of forearms and a second end effector of the end effectors on the second set of forearms into at least one station that is not radially offset from the axis of connection between the robot drive and the substrate transport chamber.The apparatus may include two of the offset substrate stations on a same side of the substrate transport chamber, and the robot drive and robot arm are configured to simultaneously move a first end effector of the end effectors on the first set of forearms and a second end effector of the end effectors on the second set of forearms into the two offset stations, respectively. The apparatus may include two of the offset substrate stations on a same side of the substrate transport chamber, and the robot drive and robot arm are configured to move the first end effector into a first offset substrate station of the two offset substrate stations while the second upper arm and the second set of forearms are not moving, and the robot drive and robot arm are configured to move the second end effector into a second offset substrate station of the two offset substrate stations while the first upper arm and the first set of forearms are not moving.
[0125] An example method may include connecting a first upper arm to a first coaxial drive shaft of the robot drive; connecting a second upper arm to a second coaxial drive shaft of the robot drive; connecting a first set of forearms to the first upper arm, where a first drive belt mechanism connects a first forearm of the first set of forearms to a third coaxial drive shaft of the robot drive and a second drive belt mechanism connects a second forearm of the first set of forearms to the third coaxial drive shaft of the robot drive; connecting the second set of forearms to the second upper arm, where a third drive belt mechanism connects the first forearm of the second set of forearms to a fourth coaxial drive shaft of the robot drive and a fourth drive belt mechanism connects the second forearm of the second set of forearms to the fourth coaxial drive shaft of the robot drive; and connecting respective end effectors to the forearms.
[0126] The first set of forearms may be connected to the first upper arm at a common axis or axis of rotation. The first drive belt mechanism may include at least one non-circular pulley for moving the drive belt of the first drive belt mechanism at a variable speed relative to the rotation of the third coaxial drive shaft. The first drive belt assembly and the second drive belt assembly, including the at least one non-circular pulley of the first drive belt assembly and the second drive belt assembly, may be connected such that the first set of forearms can be moved without relative rotation between the first set of forearms when the first upper arm is rotated in a first direction, and the first set of forearms can be moved with relative rotation between the first set of forearms when the first upper arm is rotated in a second direction opposite the first direction. The method further includes coupling a controller to the robot drive, the controller comprising at least one processor and at least one memory including computer code for controlling the motors of the robot drive. The method may further include connecting a robot drive to the substrate transport chamber, the robot arm being located within the substrate transport chamber, and connecting a plurality of substrate stations to the substrate transport chamber, the plurality of substrate stations including a station radially offset from an axis of connection between the robot drive and the substrate transport chamber and at least one station that is not radially offset from an axis of connection between the robot drive and the substrate transport chamber, the robot drive and the robot arm being configured to move the end effectors to insert and remove substrates from the stations. The robot drive and the robot arm may be assembled such that a first end effector of the end effectors on the first set of arms and a second end effector of the end effectors on the second set of arms can be simultaneously moved into at least one station that is not radially offset from an axis of connection between the robot drive and the substrate transport chamber.The apparatus may include two of the offset substrate stations on the same side of the substrate transport chamber, and the robot drive and robot arm are assembled to be capable of simultaneously moving a first end effector of the end effectors on the first set of forearms and a second end effector of the end effectors on the second set of forearms into the two offset stations, respectively. The method may further include an apparatus including two of the offset substrate stations on the same side of the substrate transport chamber, and the robot drive and robot arm are assembled to be capable of moving the first end effector into a first offset substrate station of the two offset substrate stations while the second upper arm and the second set of forearms are not moving, and the robot drive and robot arm are configured to move the second end effector into a second offset substrate station of the two offset substrate stations while the first upper arm and the first set of forearms are not moving.
[0127] An example method may include rotating a first coaxial drive shaft of the robot drive about a first axis in a first direction to rotate a first upper arm of the robot arm about the first axis; while rotating the first coaxial drive shaft, rotating a second coaxial drive shaft of the robot drive about the first axis to move first and second drive belt mechanisms to thereby rotate a first and second forearm on the first upper arm; rotating a third coaxial drive shaft of the robot drive about the first axis in a second direction to rotate the second upper arm of the robot arm about the first axis; and rotating a fourth coaxial drive shaft of the robot drive about the first axis to move third and fourth drive belt mechanisms to thereby rotate a third and fourth forearm on the second upper arm. Rotation of the fourth coaxial drive shaft of the robot drive about the first axis can occur while rotating the first coaxial drive shaft and the second coaxial drive shaft.
[0128] An example method may include rotating a first coaxial drive shaft of a robot drive in a first direction about a first axis to rotate at least one upper arm of a robot arm about the first axis; while rotating the first coaxial drive shaft, rotating a second coaxial drive shaft of the robot drive about the first axis to move at least a first drive belt mechanism to rotate a first forearm on the at least one upper arm and extend a first end effector on the first forearm from a retracted position towards an extended position; and rotating a third coaxial drive shaft of the robot drive in a second direction about the first axis to move at least a second drive belt mechanism to rotate a second forearm on the at least one upper arm and hold a second end effector on the second forearm in a retracted position while moving the first end effector from the retracted position towards the extended position.
[0129] An exemplary apparatus may include a robot drive including a plurality of motors and a plurality of coaxial drive shafts connected to the motors, and a robot arm connected to the robot drive, the robot arm including a first upper arm, a first forearm connected to the first upper arm, a second forearm connected to the first upper arm, and a plurality of end effectors connected to each of the forearms, the first upper arm connected to a first coaxial drive shaft of the coaxial drive shafts, the first forearm mounted on the first upper arm and connected to a second coaxial drive shaft of the coaxial drive shafts by a first drive belt assembly, the second forearm mounted on the first upper arm and connected to a second coaxial drive shaft by a second drive belt assembly, the first drive belt assembly including a straight belt drive connected to the first forearm, and the second drive belt assembly including a cross belt drive connected to the second forearm.
[0130] An exemplary method may include calculating a one-dimensional joint space trajectory profile with normalized path variables of the robot arm to apply the joint space trajectory profile to a desired path expressed as an included angle from a start point of an end effector (or a substrate on the end effector) on the robot arm to an end point of the end effector (or a substrate on the end effector), calculating a corresponding trajectory in radial coordinates based on the joint space trajectory profile at the included angle, calculating a corresponding angular coordinate of the payload center based on the calculated radial coordinates such that the path of the payload center traces a straight line in Cartesian space between the start point and the end point, and converting the desired payload center expressed in cylindrical coordinates complemented with the desired included angle and its corresponding angular velocity and acceleration to desired joint positions, velocities, and accelerations using a modified formulation of inverse kinematics to form a motion set point for the robot arm, and then controlling the motors of the robot drive to move the robot arm based on the set point.
[0131] The method may check that the straight line path between the end points does not intersect with a singularity. If an intersection is predicted, the method may abort or not perform the move. The method may check whether the straight line path between the end points passes within some threshold distance of a singularity. If the move does not approach the vicinity of a singularity, the method may use a standard Cartesian trajectory generation scheme. If the planned path approaches a singularity, the method may calculate the start and end positions of the move in joint coordinates as described above, specifically the included angles θ1(t)-θ2(t) depending on which end effector is being commanded.
[0132] The joint space trajectory may be evaluated within a selected grid of points to determine whether any of the motion constraints expressed in Cartesian coordinates (i.e., maximum linear velocity and acceleration of the payload) are violated. This test works regardless of the proximity of a singularity because it may use only forward kinematic equations. If a Cartesian motion constraint is violated, the method may calculate a time scale factor to slow down the motion sufficiently to satisfy all constraints.
[0133] According to an exemplary embodiment, there may be provided an apparatus comprising at least one processor and at least one non-transitory memory including computer program code, the at least one memory and the computer program code configured, with the at least one processor, to cause the apparatus to: calculate a one-dimensional joint space trajectory profile with normalized path variables of a robot arm to apply the joint space trajectory profile to a desired path expressed as an included angle from a start point of an end effector (or a substrate on the end effector) on the robot arm to an end point of the end effector (or a substrate on the end effector); calculate a corresponding trajectory in radial coordinates based on the joint space trajectory profile at the included angle; calculate a corresponding angular coordinate of the payload center based on the calculated radial coordinates such that the path of the payload center follows a straight line in Cartesian space between the start point and the end point; and convert the desired payload center expressed in cylindrical coordinates complemented with the desired included angle and its corresponding angular velocity and acceleration to desired joint positions, velocities, and accelerations using a modified formulation of inverse kinematics to form a motion set point of the robot arm.
[0134] According to an exemplary embodiment, there may be provided a non-transitory program storage device, such as memory 19 shown in FIG. 1A , readable by a machine that tangibly embodies a program of instructions executable by a machine to perform operations, the operations including: calculating a one-dimensional joint space trajectory profile with normalized path variables of a robot arm to apply the joint space trajectory profile to a desired path expressed as an included angle from a start point of an end effector (or a substrate on the end effector) on the robot arm to an end point of the end effector (or a substrate on the end effector); calculating a corresponding trajectory in radial coordinates based on the joint space trajectory profile at the included angle; calculating a corresponding angular coordinate of the payload center based on the calculated radial coordinates such that the path of the payload center follows a straight line in Cartesian space between the start point and the end point; and converting the desired payload center expressed in cylindrical coordinates complemented with the desired included angle and its corresponding angular velocity and acceleration to desired joint positions, velocities, and accelerations using a modified formulation of inverse kinematics to form a motion set point of the robot arm.
[0135] Any combination of one or more computer readable medium(s) may be utilized as memory. The computer readable medium may be a computer readable signal medium or a non-transitory computer readable storage medium. The non-transitory computer readable storage medium does not include a propagating signal and may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (non-exhaustive list) of computer readable storage media include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a Read-Only Memory (ROM), an Erasable Programmable Read-Only Memory (EPROM) or Flash memory, an optical fiber, a portable Compact Disc Read-Only Memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0136] Another example method may include rotating a first coaxial drive shaft of a robot drive in a first direction about a first axis to rotate at least one upper arm of a robot arm about the first axis; while rotating the first coaxial drive shaft, rotating a second coaxial drive shaft of the robot drive about the first axis to move at least a first drive belt mechanism to rotate a first forearm on the at least one upper arm and extend a first end effector on the first forearm from a retracted position towards an extended position; and rotating a third coaxial drive shaft of the robot drive in a second direction about the first axis to move at least a second drive belt mechanism to rotate a second forearm on the at least one upper arm and hold a second end effector on the second forearm in a retracted position while moving the first end effector from the retracted position towards the extended position.
[0137] An exemplary method may include determining an included angle corresponding to a start position and corresponding to an end position based on a desired path of a reference point, where the reference point is on an end effector on a robot arm, from a start position of the reference point to an end position of the reference point, the robot arm being connected to a robot drive having motors for moving the robot arm; calculating a trajectory of a radial coordinate of the reference point on the end effector based at least in part on the included angle; calculating corresponding angular coordinates of the reference point on the end effector based on the calculated radial coordinates such that the reference point on the end effector follows the desired path between the start and end positions; converting the radial and angular coordinates of the reference point on the end effector, complemented with the included angle of the trajectory and corresponding angular velocities and accelerations of the end effector, into desired joint positions, velocities, and accelerations using a modified formulation of inverse kinematics to form a motion setpoint for the robot arm; and controlling the motors of the robot drive to move the robot arm based on the motion setpoint.
[0138] The method may further include determining that the desired path between the start and end positions intersects with a kinematic singularity of the robot arm and not executing a movement of the robot arm. The method may further include determining whether the desired path between the start and end positions passes within a predetermined threshold distance of a kinematic singularity of the robot arm, i.e., moving the robot arm using a Cartesian trajectory generation scheme if the movement does not pass within the predetermined threshold distance of the kinematic singularity, and moving the robot arm without using a Cartesian trajectory generation scheme if the movement passes within the predetermined threshold distance of the kinematic singularity. The method may further include evaluating the trajectory within the selected grid of points to determine whether the trajectory violates at least one motion constraint expressed in Cartesian coordinates. The at least one motion constraint may include a maximum linear velocity and a maximum acceleration of the end effector. If it is determined that the at least one motion constraint is violated, the method may further include calculating a time scale factor for moving at least one of the motors to decelerate the movement of the robot arm to satisfy the at least one motion constraint. The reference point on the end effector may include a payload center of the substrate payload on the end effector. The method may further include calculating a one-dimensional trajectory profile with a normalized path variable of the end effector and applying the one-dimensional trajectory profile to a desired path expressed as an included angle from a start position of the reference point to an end position of the reference point on the end effector. A machine-readable non-transitory program storage device tangibly embodying a program of instructions executable by the machine to perform operations including the method described above.
[0139] An exemplary method includes determining, by a controller, a path of a reference point between a start position and an end position of the reference point on an end effector of a robot arm, the robot arm being connected to a robot drive having a motor for moving the robot arm, and the controller comprising at least one processor and at least one non-transitory memory having computer code; determining, by the controller, that the path between the start position and the end position intersects with a kinematic singularity of the robot arm and not executing a movement of the robot arm using the path; and selecting, by the controller, a movement control mode from a plurality of different movement control modes, the different movement control modes determining that the path between the start position and the end position intersects with a kinematic singularity of the robot arm and not executing a movement of the robot arm using the path. determining that the path between the start and end positions passes within a predetermined threshold distance of a kinematic singularity of the robot arm, determining an included angle corresponding to the start position and corresponding to the end position, calculating the start and end positions as joint coordinates, calculating a trajectory from the start position to the end position in radial coordinates based at least in part on the included angle, and calculating corresponding angular coordinates of the reference point such that the reference point follows a path in Cartesian space between the start and end positions; and a controller controlling movement of a motor of the robot arm based on the selected control mode.
[0140] The method may further include converting the radial and angular coordinates of the reference point, complemented with the included angle and the corresponding angular velocity and acceleration of the reference point, into joint coordinates, angular velocity, and acceleration using a modified formulation of inverse kinematics to form a motion setpoint for the robot arm, and controlling the motors of the robot drive to move the robot arm based on the motion setpoint. The method may further include evaluating the trajectory within the selected grid of points to determine whether the trajectory violates at least one motion constraint expressed in Cartesian coordinates. The at least one motion constraint may include a maximum linear velocity and a maximum acceleration of the reference point. If it is determined that the at least one motion constraint is violated, the method may further include calculating a time scale factor for moving at least one of the motors to decelerate the movement of the robot arm to satisfy the at least one motion constraint. A machine-readable non-transitory program storage device tangibly embodying a program of instructions executable by the machine to perform operations including the method described above.
[0141] An exemplary embodiment includes an apparatus including at least one processor and at least one non-transitory memory including computer program code, the at least one memory and the computer program code configuring the apparatus to, using the at least one processor, determine, by the at least one processor and the computer program code, a path of a reference point between a start position of the reference point on an end effector of a robot arm and an end position of the reference point as a trajectory, the robot arm being connected to a robot drive having a motor for moving the robot arm; and select, by the at least one processor and the computer program code, a motion control mode from a plurality of different motion control modes, the plurality of different motion control modes being configured to determine a motion control mode for a path between the start position and the end position of the robot arm as a trajectory. determining that the path between the start and end positions passes outside a predetermined threshold distance from a kinematic singularity of the robot arm and not performing the robot arm movement using that path; determining that the path between the start and end positions passes within a predetermined threshold distance from a kinematic singularity of the robot arm and moving the robot arm using a Cartesian trajectory generation scheme; determining that the path between the start and end positions passes within a predetermined threshold distance from a kinematic singularity of the robot arm, determining an included angle corresponding to the start position and corresponding to the end position, calculating the start and end positions as joint coordinates, calculating a trajectory of a reference point in radial coordinates based at least in part on the included angle, and calculating corresponding angular coordinates of the reference point on the end effector such that the reference point follows a path in Cartesian space between the start and end positions of the movement.
[0142] The at least one processor and computer program code may be configured to evaluate the trajectory within the selected grid of points to determine whether the trajectory violates at least one motion constraint expressed in Cartesian coordinates. The at least one motion constraint may include a maximum linear velocity and a maximum acceleration of the reference point. If it is determined that the at least one motion constraint is violated, the at least one processor and computer program code may be configured to calculate a time scale factor for moving at least one of the motors to decelerate movement of the robot arm to satisfy the at least one motion constraint.
[0143] In the above description, a straight line path between the start position and the end position is mentioned. However, this is merely an example. In alternative examples, the path may not be straight or may only be partially straight. In addition, in the above description, reference is made to calculating a one-dimensional trajectory profile with normalized path variables of the end effector of the robot arm. However, this is also merely an example. In alternative examples, the one-dimensional motion profile calculated as an included angle from an included angle corresponding to the start position to an included angle corresponding to the end position may be calculated using any suitable type of method, not limited to calculating a one-dimensional trajectory profile with normalized path variables.
[0144] In one type of exemplary method, the method may include the following steps. 1. A start position of a reference point on the robot end effector is given, and an end position of a reference point on the robot end effector. This defines where the robot starts (from the retracted position) and where the robot ends (with respect to the substrate placement / lifting motion). 2. In addition, there are constraints that limit the velocity, acceleration, and jerk of the motion of a reference point on the robot end effector, and constraints that limit the velocity, acceleration, and jerk of the included angle. 3. A path, such as a straight line, connects the start location of the reference point on the robot end effector to the end location of the reference point on the robot end effector. 4. If the line calculated in step 3 passes through the kinematic singularity cylinder, stop here without executing any move. 5. If the line calculated in step 3 is outside the cylinder of the kinematic singularity and is not closer to the cylinder of the kinematic singularity than a predefined distance, calculate the trajectory of the reference point in Cartesian space and ignore the following steps. 6. If the conditions described in steps 4 and 5 are not met, proceed to the following steps. 7. Using the inverse kinematics formulas, determine the included angle corresponding to the start position and the included angle corresponding to the end position. 8. Calculate the one-dimensional motion profile as the included angle from the included angle corresponding to the start position to the included angle corresponding to the end position determined in step 3. This calculation utilizes the included angle velocity, acceleration, and jerk constraints introduced in step 2. 9. Convert the profile expressed as included angles from step 8 to a motion profile as a radial coordinate (this is the radial distance to a reference point on the robot end effector, typically used in a polar or cylindrical coordinate system). 10. Utilizing the straight line calculated in step 3 and the profile expressed as radial coordinates from step 9, calculate the motion profile as an angular coordinate (this is the angle of the radial line relative to a reference point on the robot end effector, typically used in a polar or cylindrical coordinate system). 11. Convert the motion profile as radial and angular coordinates to a motion profile expressed as Cartesian coordinates. This may simply involve using well-known conversions of position, velocity, and acceleration from a polar (or cylindrical) coordinate system to a Cartesian coordinate system. 12. Check if the motion profile computed in step 11 violates any of the constraints introduced in step 2 that limit the velocity, acceleration, and jerk of the motion of the reference point on the robot end effector. If the motion profile is not violated, execute the move and ignore step 13. 13. If the checks in step 12 indicate violations, scale the motion profile as Cartesian coordinates such that none of the constraints limiting the velocity, acceleration, and jerk of the motion of the reference point on the robot end effector are violated. Scaling can be conveniently done by extending the time of the robot move / motion.
[0145] It should be understood that the foregoing description is merely illustrative. Various alternatives and modifications may occur to those skilled in the art. For example, features recited in the various dependent claims may be combined with each other in any suitable combination(s). In addition, features from the various embodiments described above may be selectively combined to form new embodiments. Thus, the present description is intended to embrace all such alternatives, modifications and variations that fall within the scope of the appended claims.
Claims
1. 1. A method comprising: determining a desired path of a reference point from a first location to a second location different from the first location, the reference point being on an end effector on a robot arm, the robot arm being connected to a robot drive having a motor for moving the robot arm; The method further comprises: determining a plurality of included angles between two links of the robot arm, the included angles corresponding to different relative angles of the two links with respect to the desired path; calculating a trajectory of the reference point on the end effector based on the determined desired path and based at least in part on the plurality of included angles, a corresponding angular velocity for each of the plurality of included angles, and a corresponding angular acceleration for each of the plurality of included angles; using the calculated trajectory, including coordinates of the reference point on the end effector and expressed as the plurality of included angles, to determine motion sets for the robot arm along the determined desired path; controlling the motors of the robot drive to move the robot arm based at least in part on the determined motion set points; A method comprising:
2. The method of claim 1 , further comprising determining whether the desired path between the first position and the second position intersects with a kinematic singularity of the robot arm.
3. determining that the desired path between the first position and the second position passes within a predetermined threshold distance of a kinematic singularity of the robot arm and using a first trajectory generation scheme to move the robot arm; determining that the desired path does not pass within the predetermined threshold distance of the kinematic singularity, and switching to move the robot arm using a second trajectory generation scheme different from the first trajectory generation scheme; The method of claim 1 , comprising:
4. The method of claim 1 , comprising evaluating the trajectory within a selected grid of points to determine whether the trajectory violates at least one motion constraint expressed in Cartesian coordinates.
5. The method of claim 4 , wherein the at least one motion constraint includes a maximum linear velocity and a maximum acceleration of the end effector.
6. 5. The method of claim 4, further comprising, if it is determined that the at least one motion constraint is violated, calculating a time scale factor for moving at least one of the motors to slow down the motion of the robot arm such that the at least one motion constraint is satisfied.
7. A non-volatile program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a process, the process comprising a method according to any one of claims 1 to 6.
8. 1. An apparatus comprising at least one processor and at least one non-volatile memory storing computer program instructions that, when executed by the at least one processor, cause the apparatus to: determining a desired path between a first position and a second position of a reference point of an end effector of the robot arm, the second position being different from the first position; selecting a motion control mode from a plurality of different motion control modes; The method is configured to: the robotic arm is connected to a robot drive having a motor for moving the robotic arm; The plurality of movement control modes include: a first motion control mode that moves the robot arm based on determining that the path between the first position and the second position passes outside a predetermined threshold distance from a kinematic singularity of the robot arm; a second motion control mode based on determining that the path between the first position and the second position passes within the predetermined threshold distance of the kinematic singularity of the robot arm; and the second movement control mode comprises: Determining a first included angle of a joint between two links of the robot arm; determining a second included angle between the two links of the robot arm; calculating a trajectory of the reference point based at least in part on the first included angle and the second included angle, a corresponding angular velocity for each of the included angles, and a corresponding angular acceleration for each of the included angles; wherein the first and second included angles, the angular velocity, and the angular acceleration are used to determine a position, a velocity, and an acceleration of a joint. Device.
9. 10. The apparatus of claim 8, wherein the computer program instructions, when executed by the at least one processor, are configured to cause the apparatus to evaluate the trajectory within a selected grid of points to determine whether the trajectory violates at least one motion constraint expressed in Cartesian coordinates for the second motion control mode.
10. The apparatus of claim 9 , wherein the at least one motion constraint includes a maximum linear velocity and a maximum acceleration of the reference point.
11. 10. The apparatus of claim 9, wherein when it is determined that the at least one motion constraint is violated, the computer program instructions, when executed by the at least one processor, are configured to cause the apparatus to calculate a time scale factor for moving at least one of the motors to slow down motion of the robot arm such that the at least one motion constraint is satisfied.
12. 9. The apparatus of claim 8, the plurality of motion control modes comprising a third motion control mode based on determining that the path between the first position and the second position intersects a kinematic singularity of the robot arm; The apparatus is configured to not execute movement of the robot arm along the path in the third motion control mode.
13. 9. The apparatus of claim 8, the second motion control mode includes using a joint space trajectory generation scheme; The joint space trajectory generation scheme is expressed by the included angle, Device.
14. 1. A method comprising: determining with a controller a desired path between a first position and a second position different from the first position of a reference point of an end effector of a robot arm, the robot arm being connected to a robot drive having a motor for moving the robot arm, the controller having at least one processor and at least one non-volatile memory, the at least one non-volatile memory storing computer instructions; the controller selects a first motion control mode for moving the robot arm based on determining that a first portion of the desired path passes through a distance within a predetermined threshold of a kinematic singularity of the robot arm; and uses a joint space trajectory generation scheme to move the robot arm, the joint space trajectory generation scheme including using a plurality of included angles at the first position of the desired path and angular velocities and angular accelerations corresponding to each of the plurality of included angles, each of the plurality of included angles corresponding to an angle of a joint between two links of the robot arm at a different angular position; the first motion control mode uses inverse kinematics to determine joint positions, velocities and accelerations, and the joint space trajectory generation scheme is expressed including the included angles; the controller selecting a second motion control mode for moving the robot arm based on determining that a second portion of the desired path, different from the first portion, passes through a distance greater than a predetermined threshold from the kinematic singularity of the robot arm. method.
Citation Information
Patent Citations
Carrier robot and method for using it
JP1999033948A
Arm driving mechanism of robot device
JP2000237988A
Control device for robot
JP2002052485A
Robot with multiple degrees of freedom
JP2002522238A
Trajectory planning and movement control strategies for a 2D 3-degree-of-freedom robotic arm
JP2005509277A