Robot adaptive placement system with end-effector position estimation
10058996 ยท 2018-08-28
Assignee
Inventors
Cpc classification
B25J9/104
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1638
PERFORMING OPERATIONS; TRANSPORTING
Y10S901/09
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
International classification
B25J9/00
PERFORMING OPERATIONS; TRANSPORTING
B25J9/10
PERFORMING OPERATIONS; TRANSPORTING
Abstract
A method including, based at least partially upon a command transmission to at least one motor of a robot, estimating deflection for at least one member of the robot during movement of the robot; based at least partially upon the estimated deflection, determining calculated end effector coordinates for an end effector of the robot; and based at least partially upon the calculated end effector coordinates, adjusting movement of the robot for placing a substrate, located on the robot, at a desired location.
Claims
1. A method comprising: sensing a substrate by at least one sensor as the substrate is moved past the at least one sensor, where the substrate is on an end effector of a robot; calculating, by a controller, model end effector coordinates of the end effector when the at least one sensor senses the substrate moving past the at least one sensor, where the controller comprises at least one processor and at least one non-transitory memory, where an adaptive placement system is provided configured to use the sensing of the substrate by the at least one sensor and to use of the calculated model end effector coordinates to control placing of the substrate at a desired position; estimating by the controller deflection for at least one member of the robot during movement of the robot; based at least partially upon the estimated deflection, determining by the controller estimated end effector coordinates for the end effector of the robot; generating by the controller at least one signal, which is based at least partially upon the estimated end effector coordinates; and adjusting movement of the robot by the adaptive placement system based at least partially upon the at least one signal generated by the controller, the sensing of the substrate by the at least one sensor, and the calculated model end effector coordinates for placing the substrate at a desired location.
2. A method as in claim 1 where the estimating by the controller is based, at least partially, upon a command transmission to at least one motor of the robot, where the command transmission comprises a command torque transmission which is transmitted to the at least one motor to generate a predetermined torque vector.
3. A method as in claim 1 where the estimated deflection for the at least one member of the robot comprises at least one of: a flexible frame member of a drive section of the robot, a flexible drive shaft of the at least one motor, a flexible link of an arm of the robot, a flexible joint between links of the arm of the robot, and an elastic belt or band of the arm of the robot.
4. A method as in claim 1 where the estimating comprises at least one of: estimation of flexibility effects using dynamic modeling, estimation of flexibility effects using a state observer, estimation of belt positioning error effects, and direct measurement of flexibility effects using at least one auxiliary sensor.
5. A method as in claim 1 where the estimating of the deflection is based, at least partially, upon location information from at least one sensor regarding at least one of: a portion of the robot, and the substrate carried by the robot.
6. A method as in claim 1 where the adjusting of movement of the robot is further based upon forward kinematics determination of the end effector which subsequently provides modified estimated end effector coordinates to the adaptive placement system to determine adjusted end effector coordinates to be used to drive at least one motor of the robot.
7. A method as in claim 1 where the adjusting movement of the robot comprises providing the estimated end effector coordinates to the adaptive placement system to determine adjusted end effector coordinates to be used to drive at least one motor of the robot.
8. A method as in claim 1 where the estimated end effector coordinates are provided to a robot location sensing system and/or to a substrate location sensing system, which subsequently provides modified estimated end effector coordinates to the adaptive placement system to determine adjusted end effector coordinates to be used to drive at least one motor of the robot.
9. 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 to, with the at least one processor, cause the apparatus to: calculate model end effector coordinates of an end effector of a robot when at least one sensor senses a substrate moving past the at least one sensor, where the substrate is on the end effector, and where an adaptive placement system is provided configured to use the sensing of the substrate by the at least one sensor and to use the calculated model end effector coordinates to control placing of the substrate at a desired position; estimate deflection for at least one member of the robot during movement of the robot; based at least partially upon the estimated deflection, determine estimated end effector coordinates for the end effector of the robot; and generate at least one signal which is based at least partially upon the estimated end effector coordinates; and adjust movement of the robot by the adaptive placement system based at least partially upon the at least one signal generated by the controller, the sensing of the substrate by the at least one sensor, and the calculated model end effector coordinates for placing the substrate at a desired location.
10. An apparatus as in claim 9 where the estimating of the deflection comprises a command transmission to at least one motor of the robot being used as an input to estimate the deflection, and where the command transmission comprises a command torque transmission which is transmitted to the at least one motor to generate a predetermined torque vector.
11. An apparatus as in claim 9 where the estimated deflection for the at least one member of the robot comprises at least one of: a flexible frame member of a drive section of the robot, a flexible drive shaft of the at least one motor, a flexible link of an arm of the robot, a flexible joint between links of the arm of the robot, and an elastic belt or band of the arm of the robot.
12. An apparatus as in claim 9 where the estimating comprises at least one of: estimation of flexibility effects using dynamic modeling, estimation of flexibility effects using a state observer, estimation of belt positioning error effects, and direct measurement of flexibility effects using at least one auxiliary sensor.
13. An apparatus as in claim 9 where the estimating of the deflection is based, at least partially, upon location information from at least one sensor regarding at least one of: a portion of the robot, and the substrate carried by the robot.
14. An apparatus as in claim 9 where the adjusting of movement of the robot is further based upon forward kinematics determination of the end effector which subsequently provides modified estimated end effector coordinates to the adaptive placement system to determine adjusted end effector coordinates to be used to drive at least one motor of the robot.
15. An apparatus as in claim 9 where the adjusting of the movement of the robot comprises providing the estimated end effector coordinates to the adaptive placement system to determine adjusted end effector coordinates to be used to drive at least one motor of the robot.
16. An apparatus as in claim 9 where the estimated end effector coordinates are provided to a robot location sensing system and/or to a substrate location sensing system, which subsequently provides modified estimated end effector coordinates to the adaptive placement system to determine adjusted end effector coordinates to be used to drive at least one motor of the robot.
17. A non-transitory program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine for performing operations, the operations comprising: calculating model end effector coordinates of an end effector of a robot when at least one sensor senses a substrate, on the end effector, moving past the at least one sensor, where the operations are part of an adaptive placement system configured to use the sensing of the substrate by the at least one sensor and to use of the calculated model end effector coordinates to control placing of the substrate at a desired position; estimating deflection for at least one member of the robot during movement of the robot; based at least partially upon the estimated deflection, determining estimated end effector coordinates for the end effector of the robot; generating at least one signal which is based at least partially upon the estimated end effector coordinates; and adjusting movement of the robot by the adaptive placement system based at least partially upon the at least one signal generated by the machine, the sensing of the substrate by the at least one sensor, and the calculated model end effector coordinates for placing the substrate at a desired location.
18. A method as in claim 1 where the estimated end effector coordinates are different from the calculated model end effector coordinates.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The foregoing aspects and other features are explained in the following description, taken in connection with the accompanying drawings, wherein:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
DETAILED DESCRIPTION OF EMBODIMENTS
(21) Referring to
(22) Typical structural flexibilities may include a flexible frame of the drive section of the robot, flexible drive shafts (torsion and bending), flexible links, flexible joints, and elastic belts and bands, which tend to stretch under tension. Positioning errors in belt drives may result from hysteresis due to meshing errors between belt and pulley teeth. It has been found that these manifest themselves as a memory-like phenomenon dependent on the moves performed by the robot. Features as described herein may use this memory-like phenomenon or otherwise.
(23) During motion of the robot, the structural flexibilities, positioning errors in belt drives and other mechanical imperfections may cause a discrepancy between the actual end-effector position and the end-effector position calculated conventionally based on the captured positions of the robot axes (motors, joints) using a rigid-body kinematic model. This discrepancy causes errors in inputs to various sensor calibration and eccentricity correction routines effecting the performance of the APS.
(24) If the operations performed by the robot are repeatable (i.e., the robot follows the same motion paths and identical velocity profiles), the effects of the structural flexibilities and other mechanical imperfections may be inadvertently, and only partially, reduced by calibration procedures; the primary intention of which is to determine the locations of the sensors and to estimate their latency and hysteresis characteristics. However, if the operations performed by the robot are not repeatable (including the cases where the robot follows substantially the same motion paths, but various motion profiles, such as due to different acceleration and/or speed settings for example), or if the effects of the structural flexibilities and other mechanical imperfections become significant (such as due to a growing size of the robot arms or an increasing size and weight of the substrates for example), the effects of the structural flexibilities need to be properly addressed in order to achieve the desired accuracy of the APS.
(25) The present disclosure describes two key features: (1) a position capture mechanism that takes into account flexible dynamics, positioning errors in belt drives as well as other mechanical imperfections of a robot and reduces their effects, and (2) an adaptive placement system which utilizes the above position capture mechanism. The present disclosure also describes a mechanical modification to the end effector of the robot that is designed to interact with the APS sensors in a way that allows the robot's control software to estimate the amount of thermal deformation present when the robot extends to place a substrate.
(26) An example two-axis robotic arm 100 for a semiconductor processing system is depicted in a simplified diagrammatic form in
(27) The example arm 100 of
(28) The position of the example arm of
X=l.sub.1 cos .sub.lnk1+l.sub.2 cos .sub.lnk2 +l.sub.3 cos [(.sub.lnk1+.sub.lnk2)/2]
Y=l.sub.1 sin .sub.lnk1+l.sub.2 sin .sub.lnk2 +l.sub.3 sin [(.sub.lnk1+.sub.lnk2)/2]
.sub.3=(.sub.lnk1+.sub.lnk2)/2(1)
(29) where l.sub.1 denotes the joint-to-joint length of the first link, l.sub.2 is the joint-to-joint length of the second link and l.sub.3 represents the distance between the pivot point of the end-effector and the center of the end-effector.
(30) Assuming that one motor/encoder arrangement (motor 1) is directly coupled to the first link, and assuming also that another motor/encoder arrangement (motor 2) is directly attached to the pulley that drives the second link of the arm, and assuming further that the arm does not exhibit any mechanical imperfections, Equations (1) can be rewritten in the following form to describe the kinematic relationship between the measured axis coordinates (motor coordinates) and the end-effector coordinates (direct or forward kinematics):
X=l.sub.1 cos .sub.mtr1+l.sub.2 cos .sub.mrt2+l.sub.3 cos [(.sub.mtr1+.sub.mtr2)/2]
Y=l.sub.1 sin .sub.mtr1+l.sub.2 sin .sub.mtr2+l.sub.3 sin [(.sub.mtr1+.sub.mtr2)/2]
.sub.3=(.sub.mtr1+.sub.mtr2 )/2(2)
(31) where .sub.mtr1 denotes the angular position of motor 1 and .sub.mtr2 is the angular position of motor 2. Typically, positions .sub.mtr1 and .sub.mtr2 are measured in real time to facilitate motion control of the robot arm.
(32) When the robot operates in a semiconductor processing system with an APS, the arm may move the substrate through one or more external sensors that may detect the leading and trailing edges of the substrate. At the same time, the control system may capture the positions of the robot axes (motors) when the edges of the substrate are detected by the sensors and, utilizing Equation (2), may convert the captured positions to the corresponding positions of the center of the end-effector. The resulting data along with the nominal (expected) radius of the substrate and the coordinates of the sensors may then be utilized to either (1) determine the eccentricity of the substrate and use this information to compensate for the eccentricity when completing the place operation or (2) directly adjust the end point of the robot motion to place the substrate accurately regardless of the initial misalignment of the substrate. The adjustment to the end point of the robot motion may be applied either in an on-the-fly manner by modifying the existing trajectory of the robot, or through an additional move executed once the existing trajectory has been completed. A suitable APS system and apparatus is disclosed in U.S. Pat. No. 9,196,518 issued Nov. 24, 2015 and entitled Adaptive Placement System and Method which is hereby incorporated by reference herein in its entirety. Another suitable APS system and apparatus is disclosed in U.S. patent application Ser. No. 13/295,419 filed Jun. 4, 2014 and entitled Robot and Adaptive Placement System and Method which is hereby incorporated by reference herein in its entirety.
(33) The above process is illustrated by the block diagram 160 of
(34) Considering the example robot arm 100 of
(35) In
(36) If the robot exhibits structural flexibilities, positioning errors in belt drives or other mechanical imperfections, the calculated end-effector coordinates,
(37) An example two-axis robotic arm 200 with longitudinally elastic belts 202, 204 is depicted in a simplified diagrammatic form in
(38) When the example robot arm of
X=l.sub.1 cos .sub.mtr1+l.sub.2 cos(.sub.mtr2+.sub.2)+l.sub.3 cos [(.sub.mtr1+.sub.mtr2+.sub.2)/2+.sub.3]
Y=l.sub.1 sin .sub.mtr1+l.sub.2 sin(.sub.mtr2++.sub.2)+l.sub.3 sin [(.sub.mtr1+.sub.mtr2+.sub.2)/2+.sub.3]
.sub.3=(.sub.mtr1+.sub.mtr2+.sub.2)/2+.sub.3(3)
(39) where .sub.2 222 is the error in the angular position of the second link and .sub.3 224 represents the error in the angular position of the third link. The resulting errors in the robot end-effector coordinates are shown as X 226 and Y 228 in
(40) The above errors may impact the performance of the APS, as illustrated in
(41)
(42) It is observed that the kinematic errors due to longitudinally elastic belts result in an error between the actual location of the substrate on the robot end-effector (black color) and the location obtained based on the conventional forward kinematic equations (grey color), as indicated by vector in
(43) APS with End-Effector Position Estimation
(44) In order to eliminate or reduce the impact of the above errors on the accuracy of the APS, an estimation algorithm may be used to take into account the errors, and the position capture mechanism may be modified as illustrated by the block diagram 300 of
(45) As indicated in the block diagram 300 of
(46) The estimation algorithm 302 in the block diagram of
(47) Estimation of Flexibility Effects Using Dynamic Model
(48) Considering the example robot arm of
(49) If the inertia moment of the rotating components of motor 2, including any rotating components rigidly connected to the rotating components of motor 2, such as the belt drive pulley, can be neglected, the force transmitted through the belt arrangement that actuates the second link of the arm is determined directly by the torque applied by motor 2. The effect of the longitudinal elasticity of the belt on the angular position of the second link may then be determined according to the following expression:
.sub.2=.sub.2/(k.sub.2r)(4)
(50) where .sub.2 is the torque produced by motor 2, k.sub.2 represents the longitudinal stiffness of the belt arrangement that actuates the second link of the example robot arm, and r denotes the pulley radius of the belt arrangement that actuates the second link of the example robot arm.
(51) If the inertia moment of the rotating components of motor 2, including any rotating components rigidly connected to the rotating components of motor 2, is not negligible, or if friction impedes rotary motion of these components, the presence of these phenomena may be easily taken into account by directly subtracting their effects from .sub.2. If {umlaut over ()}.sub.cmd2 and {dot over ()}.sub.cmd2 are the angular acceleration and angular velocity of motor 2 respectively, l.sub.2 is the inertia moment of the rotating components of motor 2, and b.sub.2 is the coefficient of friction for the motor 2 assembly, then the balance of forces during the motion can be expressed as:
.sub.2=l.sub.2{umlaut over ()}.sub.cmd2+b.sub.2{dot over ()}.sub.cmd2k.sub.2(r.Math..sub.2)(5)
The effect of the longitudinal elasticity of the belt on the angular position of the second link is then:
.sub.2=(l.sub.2{umlaut over ()}.sub.cmd2+b.sub.2{dot over ()}.sub.cmd2.sub.2)/(k.sub.2r)(6)
(52) Estimation of Flexibility Effects Using State Observer
(53) Considering again the example robot arm of
(54) Estimation of Belt Positioning Error Effects
(55) Positioning errors in belt drives represent another phenomenon that may distort the relationship between motor positions and end-effector coordinates of a robot for semiconductor processing systems. Considering the example robot arm of
(56) Considering a synchronous (toothed) belt drive as an example, the dominant factor that often contributes to positioning errors in such a belt drive system is the bias in meshing between the belt and pulley teeth, which may manifest itself as a memory-like phenomenon dependent on the moves performed by the robot in the past. The primary causes for meshing bias are clearances between the belt and pulley teeth and friction at the belt-pulley contact regions. Clearances result in the belt teeth shifting between the walls of the pulley groove and friction results in residual contact forces and tooth deformation. The resulting belt positioning errors may be estimated.
(57) It should be noted that belt positioning errors may occur in other types of belt arrangements, including flat belts and metal bands, which are often used in robots for semiconductor processing systems. The above example methodology for estimation of positioning errors can be extended to such toothless belt drives. For instance, they can be treated as a limit case of a synchronous (toothed) belt arrangement in order to take into account the continuous nature of the belt-pulley interaction in a toothless belt drive system.
(58) Direct Measurement of Flexibility Effects Using Auxiliary Sensors
(59) The robot arm system may also be augmented with additional sensors attached to the structure that are designed so as to directly measure the flexibility in the structure during a robot move that includes an APS measurement. These sensors could be, for example, strain gauges or accelerometers. The sensors could be attached to the robot at any location that is suitable, for example, the outside of any link, the inside of any link, on a pulley, or on a belt.
(60) The robot arm system may also be augmented with additional sensors that are not attached to the structure and make measurements using a non-contact technology. These non-contact sensors would also be designed so as to directly measure the flexibility in the structure during a robot move that includes an APS measurement. These sensors could be, for example, laser interferometers, laser range sensors, capacitive sensors, temperature sensors, optical light sensors, or cameras (for example 1-D or 2-D CCD arrays). The non-contact sensors could be installed within the robotic system (workspace) so as to take measurements at any suitable point on the robot arm such as the top, bottom, or sides of any link, or any other exposed surface that is suitable.
(61) The auxiliary sensors described in this section may also be used in conjunction with one or more of the estimation algorithms described in previous sections. The estimation algorithms could be implemented in such a way so that they use the data from the auxiliary sensors solely, or use the data from the auxiliary sensors in conjunction with the data available from the robot control system including the measurements of generalized positions and generalized forces.
(62) As an alternative to the method represented by the block diagram of
(63) As an alternative to the method represented by the block diagram of
(64) As an alternative to the method represented by the block diagram of
(65) As another alternative, the end-effector coordinates may be calculated using conventional forward kinematic equations, which do not take into account structural flexibilities, belt positioning errors and other imperfections, and then corrected for the effects of these phenomena before being used in the APS algorithm. In some cases, the correction may be calculated strictly based on the instantaneous values of the appropriate variables obtained from the capture mechanism. In other cases, when the effects of the imperfections depend on historic data, various variables may need to be processed periodically in order to achieve an accurate result.
(66) For example, as illustrated in system 360 in
(67) As an alternative to the example of
(68) As yet another alternative to the example of
(69) As another example of system 410 in
(70) Alternatively to the example of
(71) As yet another alternative to the example of
(72) For instance, considering again the example robot arm of
.sub.2(t.sub.j)=.sub.2(t.sub.j)/(k.sub.2r)(7)
T.sub.corrected(t.sub.j)=T(t.sub.j)+.sub.2(t.sub.j)/2(8)
R.sub.corrected(t.sub.j)=2l cos [(t.sub.j).sub.2(t.sub.j)/2]+l.sub.3(9)
where
(t.sub.j)=a cos {[R(t.sub.j)l.sub.3]/(2l)}(10)
(73) In the above equations, .sub.2(t.sub.j) is the error in the angular position of the second link, and .sub.2(t.sub.j) is the torque produced by motor 2, both at the time t.sub.j of capture event j, k.sub.2 represents the longitudinal stiffness of the belt arrangement that actuates the second link of the example robot arm, and r denotes the pulley radius of the belt arrangement that actuates the second link of the example robot arm. T.sub.corrected(t.sub.j) is the corrected angular coordinate of the robot end-effector, T(t.sub.j) is the angular coordinate of the end-effector calculated using conventional kinematic equations, R.sub.corrected(tj) is the corrected radial coordinate of the robot end-effector and R(t.sub.j) is the radial coordinate of the end-effector calculated using conventional kinematic equations, all at the time t.sub.j of capture event j. Finally, l denotes the joint-to-joint length of the first and second links of the robot arm (in this particular example, the two links are assumed to be of the same length), and l.sub.3 represents the distance between the pivot point of the end-effector and the center of the end-effector.
(74) The estimation algorithm in the block diagram of
(75) The estimation algorithm may be employed to estimate effects of various other mechanical imperfections and physical phenomena that may distort the relationship between the measured robot axis positions and the coordinates of the robot end-effector, which typically cannot be measured directly. This includes, but is not limited to, flexibilities in gearboxes, meshing errors in gearboxes, flexibilities in robot joints, clearances in robot joints, frictional effects and thermal effects (expansion and contraction of components due to differences or changes in temperature).
(76) The estimation algorithm may also be used to estimate the velocity of the robot end-effector (including the magnitude and direction of the translational component and the angular component of the velocity of the end-effector). This information may be utilized in various calibration and compensation algorithms as part of the APS.
(77) The APS algorithm in the block diagram of
(78)
(79) In one form of thermal deformation, the radial position of the robot can be stretched due to increased temperature of the end effector. In this case, the APS transitions will occur slightly earlier during the extend motion as shown in
(80) In another form of thermal deformation, the tangential position of the robot can be shifted due to increased temperature of the forearm link as shown in
(81) Combinations of radial and tangential distortion can be estimated by combining the end effector flag APS sensor transition data from the leading and trailing edges. An example illustration of this is shown in
(82) Thermal deformation that results in change to the orientation of the end effector can also be detected using this method; see
(83) In general it will be possible to discern the magnitude of thermal distortions in the radial, tangential, and rotational axes even when those distortions are present concurrently. From this, the distortion of the robot's geometry (e.g. link lengths) can be calculated or estimated by formulae that will be specific to the type of robot in use. The updated geometry can then be used for the kinematics calculations, thus improving the accuracy of substrate placement.
(84) In accordance with one aspect of the disclosed, a method is provided comprising: based at least partially upon a command transmission to at least one motor of a robot, estimating deflection for at least one member of the robot during movement of the robot; based at least partially upon the estimated deflection, determining calculated end effector coordinates for an end effector of the robot; and based at least partially upon the calculated end effector coordinates, adjusting movement of the robot for placing a substrate, located on the robot, at a desired location.
(85) In accordance with another aspect of the disclosed, a method is provided where the command transmission comprises a command torque transmission which is transmitted to the at least one motor to generate a predetermined torque vector.
(86) In accordance with another aspect of the disclosed, a method is provided where the estimated deflection for the at least one member of the robot comprises at least one of: a flexible frame member of a drive section of the robot, a flexible drive shaft of the at least one motor, a flexible link of an arm of the robot, a flexible joint between links of the arm of the robot, and an elastic belt or band of the arm of the robot.
(87) In accordance with another aspect of the disclosed, a method is provided where the estimating comprises at least one of: estimation of flexibility effects using dynamic modeling, estimation of flexibility effects using a state observer, estimation of belt positioning error effects, and direct measurement of flexibility effects using at least one auxiliary sensor.
(88) In accordance with another aspect of the disclosed, a method is provided where the estimating of the deflection is based, at least partially, upon location information from at least one sensor regarding at least one of: a portion of the robot, and a substrate carried by the robot.
(89) In accordance with another aspect of the disclosed, a method is provided where the adjusting of movement of the robot is based upon a combination of the calculated end effector coordinates and the location information from the at least one sensor.
(90) In accordance with another aspect of the disclosed, a method is provided where the adjusting of movement of the robot is further based upon forward kinematics determination of the end effector which subsequently provides modified estimated end effector coordinates to an adaptive placement system (APS) to determine adjusted end effector coordinates to be used to drive the at least one motor of the robot.
(91) In accordance with another aspect of the disclosed, a method is provided where adjusting movement of the robot comprises providing the calculated end effector coordinates to an adaptive placement system (APS) to determine adjusted end effector coordinates to be used to drive the at least one motor of the robot.
(92) In accordance with another aspect of the disclosed, a method is provided where the calculated end effector coordinates are provided to a robot location sensing system and/or to a substrate location sensing system, which subsequently provides modified estimated end effector coordinates to an adaptive placement system (APS) to determine adjusted end effector coordinates to be used to drive the at least one motor of the robot.
(93) In accordance with another aspect of the disclosed, an apparatus is provided 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 to, with the at least one processor, cause the apparatus to: based at least partially upon a command transmission to at least one motor of a robot, estimating deflection for at least one member of the robot during movement of the robot; based at least partially upon the estimated deflection, determining calculated end effector coordinates for an end effector of the robot; and based at least partially upon the calculated end effector coordinates, adjusting movement of the robot for placing a substrate, located on the robot, at a desired location.
(94) In accordance with another aspect of the disclosed, an apparatus is provided where the command transmission comprises a command torque transmission which is transmitted to the at least one motor to generate a predetermined torque vector.
(95) In accordance with another aspect of the disclosed, an apparatus is provided where the estimated deflection for the at least one member of the robot comprises at least one of: a flexible frame member of a drive section of the robot, a flexible drive shaft of the at least one motor, a flexible link of an arm of the robot, a flexible joint between links of the arm of the robot, and an elastic belt or band of the arm of the robot.
(96) In accordance with another aspect of the disclosed, an apparatus is provided where the estimating comprises at least one of: estimation of flexibility effects using dynamic modeling, estimation of flexibility effects using a state observer, estimation of belt positioning error effects, and direct measurement of flexibility effects using at least one auxiliary sensor.
(97) In accordance with another aspect of the disclosed, an apparatus is provided where the estimating of the deflection is based, at least partially, upon location information from at least one sensor regarding at least one of: a portion of the robot, and a substrate carried by the robot.
(98) In accordance with another aspect of the disclosed, an apparatus is provided where the adjusting of movement of the robot is based upon a combination of the calculated end effector coordinates and the location information from the at least one sensor.
(99) In accordance with another aspect of the disclosed, an apparatus is provided where the adjusting of movement of the robot is further based upon forward kinematics determination of the end effector which subsequently provides modified estimated end effector coordinates to an adaptive placement system (APS) to determine adjusted end effector coordinates to be used to drive the at least one motor of the robot.
(100) In accordance with another aspect of the disclosed, an apparatus is provided where the adjusting of the movement of the robot comprises providing the calculated end effector coordinates to an adaptive placement system (APS) to determine adjusted end effector coordinates to be used to drive the at least one motor of the robot.
(101) In accordance with another aspect of the disclosed, an apparatus is provided where the calculated end effector coordinates are provided to a robot location sensing system and/or to a substrate location sensing system, which subsequently provides modified estimated end effector coordinates to an adaptive placement system (APS) to determine adjusted end effector coordinates to be used to drive the at least one motor of the robot.
(102) In accordance with another aspect of the disclosed, a non-transitory program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine for performing operations is provided, the operations comprising: based at least partially upon a command transmission to at least one motor of a robot, estimating deflection for at least one member of the robot during movement of the robot; based at least partially upon the estimated deflection, determining calculated end effector coordinates for an end effector of the robot; and based at least partially upon the calculated end effector coordinates, adjusting movement of the robot for placing a substrate, located on the robot, at a desired location.
(103) In accordance with another example embodiment, an apparatus may be provided comprising means, based at least partially upon a command transmission to at least one motor of a robot, for estimating deflection for at least one member of the robot during movement of the robot; means, based at least partially upon the estimated deflection, for determining calculated end effector coordinates for an end effector of the robot; and means, based at least partially upon the calculated end effector coordinates, for adjusting movement of the robot for placing a substrate, located on the robot, at a desired location.
(104) Any combination of one or more computer readable medium(s) may be utilized as the memory. The computer readable medium may be a computer readable signal medium or a non-transitory computer readable storage medium. A non-transitory computer readable storage medium does not include propagating signals 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 (a non-exhaustive list) of the computer readable storage medium would 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.
(105) It should be understood that the foregoing description is only illustrative. Various alternatives and modifications can be devised by those skilled in the art. For example, features recited in the various dependent claims could be combined with each other in any suitable combination(s). In addition, features from different embodiments described above could be selectively combined into a new embodiment. Accordingly, the description is intended to embrace all such alternatives, modifications and variances which fall within the scope of the appended claims.