The exemplary and non-limiting embodiments relate generally to a system and method for determining a position of a polygonal payload on a robot end-effector and, if configured so, utilizing the position for delivering the payload to a specified location.
The existing manufacturing processes for semiconductor, LCD and LED products typically utilize automated cluster tools to process material in the form of various types of substrates.
A top view of an example cluster tool 10 is depicted diagrammatically in
The material typically rests on a set of pads integrated into the end-effector 18 of the robot 16, and is held in place merely by the means of frictional force. An active gripper, a common solution in many robotic applications, may not be used in a vacuum cluster tool 10 due to the risk of contamination of the material by particles resulting from moving components close to the material and sliding motion associated with the gripping action.
In the absence of a gripper, the material is not mechanically aligned on the end-effector 18 when the robot picks the material, and the material may end up displaced (misaligned) from its ideal nominal location on the robot end-effector. In order to understand whether the position of the material on the end-effector is acceptable and, if possible, correct for misalignment of the material when the robot delivers the material, a solution is needed for determining the position of the material on the robot end-effector and, if desired, utilizing the position for delivering the material to a specified location.
The following summary is merely intended to be exemplary. The summary is not intended to limit the scope of the claims.
In accordance with one aspect, an example method includes moving a payload through a motion path proximate at least one sensor. Detecting edges of the payload such that at least three points on at least two edges are detected. Capturing a position when the at least one sensor detects at least one edge of the payload.
In accordance with another example, an example embodiment is provided in an apparatus comprising an end-effector, at least one sensor, and a controller. The end-effector is configured to move a payload. The at least one sensor is configured to detect edges of the payload. The controller 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, with the at least one processor, cause the apparatus to move the payload through a motion path proximate the at least one sensor, detect the edges of the payload such that at least three points on at least two edges are detected, and capture a position when the at least one sensor detects at least one edge of the payload.
In accordance with another example, an example embodiment is provided in a non-transitory program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine for performing operations comprising moving a payload through a motion path proximate at least one sensor, detecting edges of the payload such that at least three points on at least two edges are detected, and capturing a position when the at least one sensor detects at least one edge of the payload.
The foregoing aspects and other features are explained in the following description, taken in connection with the accompanying drawings, wherein:
The following abbreviations/symbols that may be found in the specification and/or the drawing figures are defined as follows:
Various embodiments of the system and method according to the present invention are intended to address the above requirements. In contrast to the state-of-the-art methods, the present invention addresses the requirements without additional mechanical complexity and with minimum impact on tool throughput. Although the features will be described with reference to the example embodiments shown in the drawings, it should be understood that features can be embodied in many alternate forms of embodiments. In addition, any suitable size, shape or type of elements or materials could be used.
In one example embodiment, the present invention includes a cluster tool 100 having a vacuum chamber 12 with a plurality of stations 14 attached to the circumference of the chamber 12. A material-handling robot 16 having and end-effector 18 is located in the chamber to cycle material through the tool 100. The cluster tool 100 further comprises one or more sensors 20 located near one or more stations 14 and configured so that the sensors 20 can detect edges of a payload 22 carried by the robot 16 as the robot extends from the retracted position in the chamber 12 to the extended position in the station 14, as depicted diagrammatically in
One feature according to various exemplary embodiments of the present invention, the motion path of the robot 16 between the retracted and extended positions may be carefully planned so that multiple edges of the payload can be detected by the sensors 20. Referring to
For instance, referring still to
As an example, the desired shape of the motion path 32 may be obtained by setting four via-points between the retracted position of diagram (a) and the extended position of diagram (h) and connecting the retracted position, the via-points and the extended position by straight-line segments, which may be blended into a single smooth motion path. The construction of such an example motion path 32 is illustrated in
When any of the sensors 20 detects any of the edges of the payload 22 (detection or trigger event), the controller 34 of the robot 16 may capture the position, i.e., the coordinates, of the end-effector of the robot. This may be achieved, for instance, by capturing the positions of the joints of the robot and converting the positions of the joints of the robot to the position of the end-effector using the kinematic equations associated with the robot.
The information obtained in the above steps may be utilized to construct several points on the circumference of the payload, each point corresponding to one edge detection event. Considering the configuration of
The locations of the points on the circumference of the payload may be expressed, for example, in terms of two coordinates in a coordinate system attached to the end-effector of the robot. The coordinates of the points on the circumference of the payload may then be used to estimate the position of the payload on the robot end-effector. An example approach for estimating the position of the payload on the robot end-effector is provided next.
The points on the circumference of the payload that correspond to the edge detection events may be represented as follows:
vi=(xi,yi),i=1,2, . . . m (1a)
where
ξi=(xsen,i−xEE,i) cos (αi)−(ysen,i−yEE,i) sin (αi),i=1,2, . . . ,m (1b)
ηi=(xsen,i−xEE,i) sin (αi)+(ysen,i−yEE,i) cos (αi),i=1,2, . . . ,m (1c)
In Equation (1b), ξEE,i and ηEE,i are Cartesian coordinates of the end-effector of the robot in the robot coordinate system when a sensor detects an edge of the payload, αEE,i is orientation of the end-effector of the robot in the robot coordinate system when the sensor detects the edge of the payload, and ξsen,i and ηsen,i are Cartesian coordinates of the sensor associated with the detection event, also expressed in the robot coordinate system. If polar coordinate system is used, the Cartesian coordinates needed for Equations (1b) and (1c) can be obtained from the polar coordinates using the following conversions:
ξEE,i=rEE,istn(ϕEE,i),ηEE,i=rEE,i cos (ϕEE,i),i=1,2, . . . ,m (1d)
ξsen,i=rsen,i sin (ϕsen,i),ηsen=rsen,i cos (ϕsen,i),i=1,2, . . . ,m (1c)
where rEE,i and ϕEE,i are polar coordinates of the end-effector of the robot in the robot coordinate system when a sensor detects the edges of the payload, and rEE,i and ϕEE,i are polar coordinates of the sensor associated with the detection event, also expressed in the robot coordinate system.
If the end-effector of the robot is constrained mechanically to point in the radial direction, such as in the example of
αi−α tan (xEE,i/yEE,i) (1f)
Or, utilizing a polar coordinate system, the orientation of the end-effector for Equations (1b) and (1c) can be obtained simply as:
αi=ϕEE,i (1g)
The general form of the problem to be solved can be stated as follows: Fit a rectangle of length L and width W (see
In order to find the rectangle that best fits the set of data points, the edge that the data points correspond to have to be determined. As an example, the robot may have this information pre-defined based on the motion of the robot and the maximum possible offsets. Using this information, the initial data points may be converted to the following expressions:
Next, the cost function for the optimization problem needs to be constructed. The general equations that define the lines (sides) of the rectangle that represents the payload can be written as:
The front/back and left/right edges are constrained by the size of the rectangle (in other words, the distance between the front and back edges is equal to W, and the distance between the left and front edges is equal to L, as shown in
Using Equations (2) to (4), the sums of the squared distances between the data points and the corresponding edges may be described by the following expressions:
Utilizing the constraints described in Equation (5), the expressions of Equations (6) and (7) can be rewritten as:
A magnitude constraint on the normal vectors may be added to make the solution unique. The constraint may be defined by the following expression:
n12+n22=1 (10)
Combining Equations (6) to (10), the following optimization problem may be formulated:
The expression of Equation (11) may be written in a matrix form:
Or:
min∥A·z−b∥22s·t·n12+n22=1 (13)
Equation (13) represents a constrained least squares problem, which can be solved using various methods. As an example, the problem can be solved by performing QR decomposition on the matrix A through Householder transformations.
For the purpose of explaining the QR decomposition through Householder transformations, variables A,
The QR decomposition decomposes matrix A into two matrices, Q an a R. Q is a matrix with orthonormal columns and R is an upper-triangular matrix with non-zero diagonal. The problem thus may be converted to the format of Equation (18) below.
A·z≅b (15)
Q·R·zopt=b (16)
Q−1·Q·R·zout=Q−1·b (17)
R·zout=QT·b={tilde over (b)} (18)
Let's introduce matrix à and make its elements identical to matrix A:
Ã:=A (19)
For i=1 to n, carry out the following steps:
As a result, the following matrices are obtained:
H1,H2, . . . , Hn (24)
The matrices of (24) may be used to calculate R and {tilde over (b)} through the following expressions:
The values calculated using Equations (25) and (26) may be substituted into Equation (18), which then can be written in the following expanded form:
Equation (27) can be solved for the four unknowns n1, n2, cL and cB through back-substitution:
Finally, the offsets of the payload expressed in the end-effector coordinate system may be calculated as:
where x, and y, are coordinates of a reference point on the payload, e.g., the center of the payload, and θc is the orientation of the payload, all expressed in the end-effector coordinate system.
The resulting information may be used to detect an unacceptable, e.g., excessive, misalignment of the payload on the robot end-effector, and react accordingly, e.g., by aborting the robot motion. The resulting information may also be used to compensate for misalignment of the payload on the robot end-effector by adjusting the position of the robot end-effector when the payload is delivered so that it is delivered properly to the specified location regardless of the misalignment.
As an example, if the robot can control the orientation of the end-effector, the misalignment of the payload on the robot end-effector can be completely compensated for by adjusting the destination position of the robot end-effector according to the following expressions:
xadj=,yadj=,θadj=−θc (35)
where xadj, yadj are Cartesian coordinates and θadj is orientation of the robot end-effector in the adjusted destination position, and xstn and ystn are Cartesian coordinates of the robot station, all expressed in the robot coordinate system. The adjusted destination position of the robot end-effector may be obtained in terms of polar coordinates as follows:
radj=,ϕadj=,θadj=−θc (36)
where radj, ϕadj are polar coordinates and θadj is orientation of the robot end-effector in the adjusted destination position, and rstn and ϕstn are polar coordinates of the robot station, all expressed in the robot coordinate system.
If the robot cannot control the orientation of the end-effector, e.g., because the end-effector is mechanically constrained to point radially, the misalignment of the payload on the robot end-effector can be compensated only partially for by adjusting the destination position of the robot end-effector according to the following expressions:
xadj=,yadj= (37)
where xadj and yadj are Cartesian coordinates of the adjusted destination position of the robot end-effector in the robot coordinate system, and xstn and ystn are Cartesian coordinates of the robot station in the robot coordinate system. The adjusted destination position of the robot end-effector may be obtained in terms of polar coordinates as follows:
radj=√{square root over (rstn2−xc2)}−yc,ϕadj=ϕstn−a sin (xc/rstn) (38)
where radj and ϕadj are polar coordinates of the adjusted destination position of the robot end-effector in the robot coordinate system, and rstn and ϕstn are polar coordinates of the robot station in the robot coordinate system.
In summary, the method for determining a position of a polygonal payload on a robot end-effector and, if configured so, for utilizing the position for delivering the payload to a specified location may include the following steps:
It should be noted that although the present invention is described based on a selected example embodiment, the invention may be practiced in a variety of alternative embodiments. In particular, the following should be noted:
An example method 200 is shown in
An example apparatus may comprise an end-effector configured to move a payload; at least one sensor configured to detect edges of the payload; and a controller 34 comprising at least one processor 36 and at least one non-transitory memory 38 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: move the payload through a motion path proximate the at least one sensor; detect the edges of the payload such that at least three points on at least two edges are detected; and_capture a position when the at least one sensor detects at least one edge of the payload.
An example may be provided in a non-transitory program storage device, such as memory 38 shown in
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.
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.
This application claims priority under 35 USC 119(e) on provisional application No. 62/693,673 filed Jul. 3, 2018 which is hereby incorporated by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
6195619 | Ren | Feb 2001 | B1 |
6629053 | Mooring | Sep 2003 | B1 |
9196518 | Hofmeister et al. | Nov 2015 | B1 |
20030168173 | Tamura | Sep 2003 | A1 |
20040067127 | Hofmeister | Apr 2004 | A1 |
20100121487 | Kawaguchi | May 2010 | A1 |
20130085595 | Kiley | Apr 2013 | A1 |
20140365011 | Hosek | Dec 2014 | A1 |
20160136812 | Hosek | May 2016 | A1 |
20160137416 | Toebes et al. | May 2016 | A1 |
Number | Date | Country | |
---|---|---|---|
20200009727 A1 | Jan 2020 | US |
Number | Date | Country | |
---|---|---|---|
62693673 | Jul 2018 | US |