Through-beam automatic teaching

Through sensing operations of the radial sensor and end effector, the position and orientation data of the pins are collected and calculated, and the problem of time-consuming and error-prone in robot teaching process is solved, and fast and accurate position determination is achieved.

CN113874173BActive Publication Date: 2025-02-14YASKAWA AMERICA INC +1
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202080018440.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-02-08
Filing Date
2020-02-06
Publication Date
2025-02-14
Estimated Expiration
2040-02-06

AI Technical Summary

Technical Problem

In the prior art, the teaching process of robots in the working environment is time-consuming and prone to human errors, making it difficult to accurately determine the position of the robot on the workstation.

Method used

Using a spike sensor and an end effector, the position and orientation data of the pin are collected through sensing operations and calculated to determine the coordinate system position of the pin relative to the articulated robot.

Benefits of technology

It realizes the rapid and accurate determination of the position of the robot in the workstation, reduces artificial errors and improves teaching efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113874173B_ABST
    Figure CN113874173B_ABST
Patent Text Reader

Abstract

A method of teaching a robot, the method comprising positioning a pin at a location within a workstation and positioning the robot in an area adjacent to the workstation. The robot has an arm and a pivoting end effector. The end effector has a through-beam sensor including a light emitter and a light receiver to sense when an object is present between them. The robot is moved to perform a sensing operation in which the sensor senses the pin, such operation being performed when the position and / or orientation of the end effector changes to collect sensed position and orientation data. The sensing operation is performed so that as the robot moves the sensor over the pin, the pin is at different distances between the emitter and the receiver. Calculations are performed on the data to determine the position of the pin relative to a coordinate system of the robot.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to U.S. Provisional Application No. 62 / 802,759, filed on February 8, 2019, the entire contents of which are incorporated herein by reference. Technical Field

[0003] The invention relates to teaching and controlling a robot. Background Art

[0004] Robots are used to handle many different types of objects. For example, during the manufacture of semiconductor devices, robots are used to transfer semiconductor wafers to and between workstations. Accurate movement of the robot is very important to prevent damage to the workpiece, the robot, and any other objects in the work environment. Therefore, once the robot is installed in the work environment, it is important to teach the robot the positions of various features of the robot in the work environment. Manually teaching such positions can be very time consuming and potentially subject to human error. Therefore, there is a need for improved teaching methods. Summary of the invention

[0005] The present disclosure advantageously provides a method for teaching an articulated robot. The method includes setting a pin at a first position within a workstation and setting the articulated robot in an area adjacent to the workstation. The articulated robot has a coordinate system, and the articulated robot has an arm and an end effector configured to pivot relative to the arm. The end effector has a workpiece receiver including a first protruding member and a second protruding member, and a through-beam sensor includes a light emitter disposed on one of the first protruding member and the second protruding member. The through-beam sensor also includes a light receiver disposed on the other of the first protruding member and the second protruding member. The through-beam sensor is configured to sense when an object appears between the light emitter and the light receiver. The method also includes moving the articulated robot to perform a sensing operation, in which the through-beam sensor senses a first pin. When the position and / or orientation of the end effector changes for each sensing of the first pin, a sensing operation is performed to collect sensing position and orientation data, and the sensing operation is performed so that as the articulated robot moves the through-beam sensor over the first pin, the first pin is located at different distances between the light emitter and the light receiver. The method also includes performing calculations on the sensed position and orientation data to determine a first position of the first pin relative to a coordinate system of the articulated robot.

[0006] Embodiments of a method are provided wherein an end effector is configured to pivot relative to an arm about a pivot axis, and wherein the method further comprises performing calculations on sensed position and orientation data to determine a distance extending to the pivot axis in a direction orthogonal to a light beam of a light emitter and an angle relative to a coordinate system of the articulated robot in a direction orthogonal to the light beam, the angle comprising an angular error of the end effector.

[0007] An embodiment of the method is configured to also include: setting an optical target on a pivot of the end actuator, the pivot being configured to pivot relative to the arm; setting a scanning device at a fixed position relative to a coordinate system of the articulated robot; using the scanning device to measure position data of the optical target as the articulated robot moves within a range of motion; and performing regression analysis on the position data to determine a link length of a link of the robot arm.

[0008] An embodiment of the method is arranged to further comprise storing the link length on a corresponding encoder of a motor for rotating the link of the robot arm.

[0009] An embodiment of a method is provided wherein the workstation has a work position at a predetermined position and orientation relative to a first position of a first pin, and wherein the method further comprises using the first position of the first pin to determine the work position relative to a coordinate system of the articulated robot.

[0010] Embodiments of the method are provided, wherein, in a horizontal plane, the working position overlaps with the first position of the first pin.

[0011] An embodiment of the method is provided, wherein the articulated robot includes: a base mounted in an area adjacent to a workstation; an arm including: a first arm member pivotally mounted to the base about a first pivot; a second arm member pivotally mounted to the first arm member about a second pivot; and a third arm member pivotally mounted to the second arm member about a third pivot; and an end actuator pivotally mounted to the third arm member about a fourth pivot.

[0012] An embodiment of the method is provided, wherein the sensing operation includes: a first sensing operation, in which the articulated robot moves the through-beam sensor over the first pin through an end actuator in a first orientation and at a first position; and a second sensing operation, in which the articulated robot moves the through-beam sensor over the first pin through an end actuator in the first orientation and at a position different from the first position.

[0013] An embodiment of a method is provided wherein, in a first sensing operation, when the through-beam sensor moves over the first pin, the first pin is a first distance between a light emitter and a light receiver, and wherein, in a second sensing operation, when the through-beam sensor moves over the first pin, the first pin is a second distance between the light emitter and the light receiver, the second distance being different from the first distance.

[0014] An embodiment of the method is provided, wherein the sensing operation includes: a third sensing operation, in which the articulated robot moves the through-beam sensor over the first pin via an end actuator at a second orientation and a third position; and a fourth sensing operation, in which the articulated robot moves the through-beam sensor over the first pin via an end actuator at a second orientation and a fourth position different from the third position.

[0015] An embodiment of a method is provided wherein moving an articulated robot to perform a sensing operation includes: initially moving an end effector to a predetermined approximate position of a first pin; and moving the end effector in an area around the predetermined approximate position of the first pin until a through-beam sensor senses the first pin.

[0016] An embodiment of a method is provided, wherein the method further includes: setting a second pin at a second position within the workstation; moving the articulated robot to perform an additional sensing operation, in which the through-beam sensor senses the second pin, performing an additional sensing operation when the position and / or orientation of the end effector changes for each sensing of the second pin to collect additional sensing position and orientation data, the additional sensing operation being performed so that as the articulated robot moves the through-beam sensor over the second pin, the second pin is located at different distances between the light emitter and the light receiver; and performing calculations on the additional sensing position and orientation data to determine a second position of the second pin relative to the coordinate system of the articulated robot.

[0017] An embodiment of a method is provided wherein a workstation has a work position at a predetermined position and orientation relative to a first position of a first pin and a second position of a second pin, and wherein the method further comprises determining the work position relative to a coordinate system of the articulated robot using the first position of the first pin and the second position of the second pin.

[0018] Embodiments of methods are provided wherein an articulated robot is moved to perform twenty or more sensing operations, and wherein performing calculations on the sensed position and orientation data includes performing a regression analysis on the sensed position and orientation data.

[0019] Embodiments of the method are provided wherein performing calculations on the sensed position and orientation data comprises performing a least squares approximation and a numerical search on the sensed position and orientation data to determine a first position of the first pin relative to a coordinate system of the articulated robot.

[0020] An embodiment of a method is provided in which a sensing operation is performed by moving an end actuator away from a first pin so that a through-beam sensor moves past the first pin in a first direction; and moving the end actuator toward the first pin so that the through-beam sensor moves past the first pin in a second direction opposite to the first direction, and wherein the method further includes determining a hysteresis error in the through-beam sensor using sensing position and orientation data obtained by moving the end actuator away from the first pin and moving the end actuator toward the first pin.

[0021] The present disclosure additionally advantageously provides an articulated robot comprising: an arm; an end effector configured to pivot relative to the arm, the end effector having a workpiece receiver comprising a first protruding member and a second protruding member; a through-beam sensor disposed on the end effector, the through-beam sensor comprising a light emitter disposed on one of the first protruding member and the second protruding member, the through-beam sensor further comprising a light receiver disposed on the other of the first protruding member and the second protruding member, the through-beam sensor being configured to sense when an object appears between the light emitter and the light receiver; and a controller comprising at least one processor defining a coordinate system of the articulated robot, the at least one processor The device is configured to control one or more motors of the articulated robot to move the arm and the end effector to perform a sensing operation, in which the through-beam sensor senses a first pin, the first pin being set at a first position within the workstation, and the sensing operation is performed to collect sensed position and orientation data when the position and / or orientation of the end effector changes for each sensing of the first pin. The sensing operation is performed so that as the articulated robot moves the through-beam sensor over the first pin, the first pin is located at different distances between the light emitter and the light receiver, and at least one processor is configured to perform calculations on the sensed position and orientation data to determine a first position of the first pin relative to the coordinate system of the articulated robot.

[0022] Embodiments of a robot are provided in which an end effector is configured to pivot relative to an arm about a pivot, and in which at least one processor is further configured to perform calculations on sensed position and orientation data to determine a distance extending to the pivot in a direction orthogonal to a light beam of a light emitter and an angle relative to a coordinate system of the articulated robot in a direction orthogonal to the light beam, the angle including an angular error of the end effector.

[0023] An embodiment of the robot is configured to also include: an optical target, which is disposed on a pivot of the end actuator, the pivot being configured to pivot relative to the arm; and a scanning device, which is located at a fixed position relative to the coordinate system of the articulated robot, the scanning device being configured to measure position data of the optical target as the articulated robot moves within the range of motion, wherein at least one processor is also configured to perform regression analysis on the position data to determine the link length of the link of the robot arm.

[0024] Embodiments of the robot are provided wherein the link lengths are stored on respective encoders of one or more motors used to rotate the links of the robot arm.

[0025] An embodiment of a robot is provided, wherein the robot further comprises: a base mounted in an area adjacent to a workstation, wherein the arm comprises: a first arm member pivotally mounted to the base about a first pivot; a second arm member pivotally mounted to the first arm member about a second pivot; and a third arm member pivotally mounted to the second arm member about a third pivot, and wherein the end effector is pivotally mounted to the third arm member about a fourth pivot.

[0026] An embodiment of a robot is provided, wherein at least one processor is configured to control one or more motors of the articulated robot to move the articulated robot to perform: a first sensing operation, in which a through-beam sensor is moved over a first pin by an end effector at a first orientation and a first position; and a second sensing operation, in which the through-beam sensor is moved over the first pin by an end effector at a first orientation and a position different from the first position, wherein, in the first sensing operation, when the through-beam sensor is moved over the first pin, the first pin is a first distance between a light emitter and a light receiver, and wherein, in the second sensing operation, when the through-beam sensor is moved over the first pin, the first pin is a second distance between the light emitter and the light receiver, the second distance being different from the first distance.

[0027] An embodiment of a robot is provided, wherein at least one processor is configured to control one or more motors of the articulated robot to move the articulated robot to perform: a first sensing operation, in which a through-beam sensor is moved over a first pin by an end actuator at a first orientation and a first position; and a second sensing operation, in which the through-beam sensor is moved over the first pin by an end actuator at a first orientation and a position different from the first position, a third sensing operation, in which the through-beam sensor is moved over the first pin by the end actuator at a second orientation and a third position; and a fourth sensing operation, in which the through-beam sensor is moved over the first pin by the end actuator at a second orientation and a fourth position different from the third position.

[0028] Embodiments of a robot are provided in which at least one processor is configured to control one or more motors of an articulated robot to move an arm and an end effector to perform an additional sensing operation in which a through-beam sensor senses a second pin disposed at a second position within a workstation, an additional sensing operation is performed when a position and / or orientation of the end effector changes for each sensing of the second pin to collect additional sensing position and orientation data, the additional sensing operation is performed such that as the articulated robot moves the through-beam sensor over the second pin, the second pin is located at different distances between a light emitter and a light receiver, the at least one processor is configured to perform calculations on the additional sensing position and orientation data to determine a second position of the second pin relative to a coordinate system of the articulated robot, and the at least one processor is configured to use a first position of the first pin and a second position of the second pin to determine a working position relative to the coordinate system of the articulated robot.

[0029] An embodiment of a robot is provided wherein at least one processor is configured to control one or more motors of an articulated robot to move an arm and an end effector to perform twenty or more sensing operations, and wherein at least one processor is configured to perform regression analysis on the sensed position and orientation data.

[0030] Embodiments of a robot are provided wherein at least one processor is configured to perform a least squares approximation and a numerical search on the sensed position and orientation data to determine a first position of a first pin relative to a coordinate system of the articulated robot.

[0031] An embodiment of a robot is provided in which at least one processor is configured to control one or more motors of an articulated robot to move an arm and an end effector to perform a sensing operation by: moving the end effector away from a first pin so that a through-beam sensor moves past the first pin in a first direction; and moving the end effector toward the first pin so that the through-beam sensor moves past the first pin in a second direction opposite to the first direction, and wherein at least one processor is configured to determine a hysteresis error in the through-beam sensor using sensing position and orientation data obtained by moving the end effector away from the first pin and moving the end effector toward the first pin.

[0032] The present disclosure also advantageously provides a non-transitory computer-readable medium storing a program, which, when executed by one or more processors, causes the one or more processors to perform: defining a coordinate system for an articulated robot, the articulated robot comprising: an arm; an end effector configured to pivot relative to the arm, the end effector having a workpiece receiver comprising a first protruding member and a second protruding member; and a through-beam sensor disposed on the end effector, the through-beam sensor comprising a light emitter disposed on one of the first protruding member and the second protruding member, the through-beam sensor further comprising a light receiver disposed on the other of the first protruding member and the second protruding member, the through-beam sensor being configured to sense a workpiece. when an image appears between a light emitter and a light receiver; controlling one or more motors of the articulated robot to move an arm and an end effector to perform a sensing operation, in which a through-beam sensor senses a first pin, the first pin being disposed at a first position within a workstation, performing a sensing operation to collect sensing position and orientation data when a position and / or orientation of the end effector changes for each sensing of the first pin, the sensing operation being performed so that as the articulated robot moves the through-beam sensor over the first pin, the first pin is located at different distances between the light emitter and the light receiver; and performing calculations on the sensing position and orientation data to determine a first position of the first pin relative to a coordinate system of the articulated robot.

[0033] A non-transitory computer-readable medium storing a program is provided, wherein an end effector is configured to pivot relative to an arm about a pivot axis, and wherein one or more processors are caused to perform calculations on sensed position and orientation data to determine a distance extending to the pivot axis in a direction orthogonal to a light beam of a light emitter and an angle relative to a coordinate system of the articulated robot in a direction orthogonal to the light beam, the angle including an angular error of the end effector.

[0034] A non-transitory computer-readable medium storing a program is provided, wherein an optical target is disposed on a pivot of an end effector, the pivot being configured to pivot relative to an arm, wherein a scanning device is disposed at a fixed position relative to a coordinate system of an articulated robot, the scanning device being configured to measure position data of the optical target as the articulated robot moves within a range of motion, and wherein one or more processors are caused to perform a regression analysis on the position data to determine a link length of a link of the robot arm.

[0035] A non-transitory computer readable medium storing a program is provided, wherein link lengths are stored on corresponding encoders of one or more motors used to rotate links of a robotic arm.

[0036] A non-transitory computer-readable medium storing a program is provided, wherein one or more processors are caused to control one or more motors of an articulated robot to move an arm and an end effector to perform twenty or more sensing operations, and wherein the one or more processors are caused to perform regression analysis on the sensed position and orientation data. BRIEF DESCRIPTION OF THE DRAWINGS

[0037] A more complete understanding of the present invention and many of its attendant advantages will become apparent by reference to the following detailed description, particularly when considered in conjunction with the accompanying drawings, in which:

[0038] Figure 1 is a top view of an embodiment of a system for automatically teaching a robot;

[0039] Figure 2 is a schematic diagram of an embodiment of a controller and associated devices used in a system for automatically teaching a robot;

[0040] Figure 3 is a side view of a controller and a robot used in a system for automatically teaching a robot;

[0041] Figure 4 is a side view of an additional embodiment of a controller and a robot for use in a system for automatically teaching a robot;

[0042] Figure 5 is a top view of an additional embodiment of a robot for use in a system for automatically teaching a robot;

[0043] Figure 6A-6H It is the pin that performs the sensing operation Figure 5 A top view of an end effector;

[0044] Figure 7 is a top view of an end effector performing a sensing operation on a pin in various overlapping positions and orientations;

[0045] Figure 8 is a flow chart illustrating an embodiment of a method of teaching a robot;

[0046] Fig. 9A and Fig. 9B The relationship between the robot's features and the alignment pins is shown;

[0047] Fig.10 Depicted are two representations of an through-beam sensor approaching a pin from opposite sides of the pin;

[0048] Fig.11 shows the relationship between features of a robot including a torso, shoulder, elbow, and wrist;

[0049] Fig.12The relationship between the robot's features, alignment pins, and working position with a center is shown;

[0050] Fig.13 shows the relationship between a semiconductor wafer having a center, a wafer pre-aligner, and other alignment pins;

[0051] Fig.14 The relationship between features of the robot, alignment pins, a work location with a center, a semiconductor wafer with a center, a wafer pre-aligner, and other alignment pins are shown;

[0052] Fig.15A is a top view showing the method by which the pin and end effector determine the z position; and Fig. 15B yes Fig.15A A side view of the pin and end effector shown;

[0053] Fig.16 is a graph showing the results of a Beta Search numerical simulation;

[0054] Fig.17 is a graph showing the robot accuracy / error tested through empirical testing; and

[0055] Fig.18 yes Fig.17 An enlarged portion of a graph showing the robot accuracy / error tested by empirical testing. DETAILED DESCRIPTION

[0056] Embodiments of the present invention will be described below with reference to the accompanying drawings. In the following description, constituent elements having substantially the same function and arrangement are denoted by the same reference numerals, and repeated description is made only when necessary.

[0057] Embodiments described herein advantageously provide methods, apparatus, non-transitory computer-readable media storing programs, and systems to automatically teach a robot's position with respect to one or more sites of a field of interest (FI) using sensors on the robot.

[0058] Embodiments described herein allow workpieces to be accurately placed in desired locations in workstations. For example, embodiments described herein allow semiconductor wafers to be accurately placed in desired locations in workstations, such as processing stations, storage stations, or other workstations utilized during semiconductor manufacturing, by articulated robots. In such cases, it is necessary to accurately identify the position of the workstation relative to the articulated robot to ensure that the wafer moves accurately and safely within the field of interest, including the workstation. Manual teaching of the location of the station is very time-consuming and potentially has human error. Embodiments described herein allow pin positions to be accurately determined, thereby allowing the wafer to be moved to a wafer placement / retrieval position (also referred to herein as a working position) within a few millimeters, and preferably within 100 microns.

[0059] The embodiments described herein can be used any time a new robot is installed in a field of interest or a new robot is manually adjusted (after damage) in a field of interest (or tool environment). In the embodiments described herein, an articulated robot will orient itself in a field of interest where it is placed relative to one or more workstations. A workstation can be a semiconductor processing device, or a workstation can simply be an area within the field of interest designated for workpiece placement and / or retrieval. The embodiments described herein allow the robot to "feel" the exact location of different stations within the field of interest so that the robot can interact with the stations accurately. The robot will be informed in advance when it should roughly start looking for a given configuration by giving the robot the approximate location of the predetermined pin. The workpiece or wafer does not need to be present during the automatic teaching process, but it can be present if desired. In the case of using an end effector to map the field of interest, such a process can be performed without a wafer on the end effector. The automatic teaching process can be used periodically to verify or track the performance of the robot. For example, if a particular robot within a particular environment needs to pay attention to thermal expansion, the automatic teaching process can be repeated over time as the robot heats up. The robot can be adjusted based on the position changes identified during such a subsequent process.

[0060] The automatic teaching process can be performed using only one pin, or the automatic teaching process can be performed using more than one pin. If the pin can be positioned at the location where the workpiece will be placed or retrieved, a single pin can be used, and the automatic teaching process can be used to identify the location of the pin. If the workpiece will be placed at a location other than the exact location of the pin or will be retrieved from that location (for example, if placing the pin at the location where you want to place or retrieve the wafer will cause interference with the wafer), two pins can be used. Ideally, the pin will not offset the wafer placement / retrieval position; however, due to interference, the pin may need to be offset to the side, front, back, etc. of the wafer placement / retrieval position. Therefore, if a pin that offsets the wafer placement / retrieval position is used, it is necessary to know the position and orientation of the wafer placement / retrieval position from multiple pins, which can be done by two points (i.e., pins) on a plane. In such a case, the pin is used as a reference, and the end effector of the robot can then move to the final destination of the placement / retrieval position.

[0061] By determining the location of the pins, the entire layout of the workstation can be determined. Once the location of the pins is determined, the robot can determine exactly where within the station a wafer will be placed, or exactly where within the station a wafer will be taken. The layout of the station will strictly follow the location of the pins, so that once the location and orientation of the pins are determined, the robot can determine the layout of the components within the station, including the location of the workpiece placement / retrieval location.

[0062] Figure 1 An embodiment of a system 100 is depicted that includes a mounting area 110, a workstation 200 adjacent to the mounting area 110, and an articulated robot 300 mounted in the mounting area 110. The mounting area 110 may be an enclosed area or an open area in which the robot 300 is disposed. The mounting area 110 includes a mounting surface 112, such as a floor or ceiling to which the robot 300 may be secured.

[0063] Workstation 200 may be semiconductor processing equipment, or the workstation may simply be an area within an area of ​​interest designated for placement and / or retrieval of workpieces. Figure 1The workstation 200 shown includes a housing 210 having side walls 212, 214, 216, and 218. The side wall 212 has a door 213 that can be opened and closed, so that the door 213 can be opened to allow the robot 300 to enter and closed during the processing of the workpiece. The workstation 200 includes a workpiece placement / retrieval position 220, a first pin 230, and a second pin 240. As discussed above, the layout of the workstation 200 will strictly follow the first pin 230 and / or the second pin 240, so that the position and orientation of the pin relative to the position and orientation of other components of the workstation 200 (e.g., the side walls 212, 214, 216 and 218, the door 213) and the workpiece placement / retrieval position 220 is known. Therefore, the workstation 200 has a work position 220 at a predetermined position and orientation relative to the position of the first pin 230 and / or the second pin 240.

[0064] Additional workstations may be provided around the perimeter of the mounting area 110, or even within the mounting area 110. The location of the workstations within these additional workstations may be determined by the location relative to the workstation 200 and the pins therein (if such positional relationship is known), or by providing additional pins within the additional workstations for performing sensing operations.

[0065] In an alternative embodiment, the first pin may be disposed at the workpiece placement / retrieval position 220 such that the first pin overlaps the workpiece placement / retrieval position 220 in a horizontal plane. If such placement of the first pin at the workpiece placement / retrieval position 220 interferes with the use or operation of the workpiece placement / retrieval position 220, it is possible to place the first pin above or below the workpiece placement / retrieval position 220 such that the first pin overlaps the workpiece placement / retrieval position 220 in a horizontal plane. In such a case, the first pin may be used to accurately determine the workpiece placement / retrieval position 220, and then a z-axis adjustment of the end effector may be made so that the workpiece placement / retrieval position 220 may be used without interference from the first pin. However, if such a configuration still results in interference with the use or operation of the workpiece placement / retrieval position 220, the automatic teaching process may use both the first pin 230 and the second pin 240.

[0066] Figure 1The articulated robot 300 depicted in includes a base 310 and an arm 320 mounted in an area 110 adjacent to a workstation 200. In this embodiment, the arm 320 includes an arm member 330 pivotally mounted to the base 310 about a pivot 336, and an arm member 340 pivotally mounted to the arm member 330 about a pivot 346. An end effector 360 is pivotally mounted to the arm member 340 about a pivot (or wrist axis) 366. (Note that the pivot 366 may alternatively extend in the xy plane rather than in the z direction shown in this embodiment.) The end effector 360 is configured to pivot relative to the arm 320, and the end effector 360 has a workpiece receiver 370, wherein a through-beam sensor 380 is mounted on the end effector 360, which will be described in more detail below. The through-beam sensor 380 includes a light emitter and a light receiver that emits a light beam 390. Through-beam sensor 380 is configured to sense when an object is present between a light emitter and a light receiver, as will be described in greater detail below.

[0067] exist Figure 1 A controller 400 is provided in the system 100 depicted in FIG. The controller may be provided near the base, or incorporated into the base or other part of the robot, or provided at a remote location via a network connection.

[0068] Figure 2 An embodiment of a controller (computer) 400 that can implement embodiments of the present invention is illustrated. Although the controller 400 is depicted with respect to a specific device or equipment, it is contemplated that Figure 2 The illustrated hardware and components of the controller 400 may be deployed in other devices or equipment (e.g., network elements, servers, etc.) within the controller 400. The controller 400 is programmed (e.g., via computer program code or instructions) to provide the functionality described herein and includes a communication mechanism such as a bus 402 for transferring information between other internal and external components of the controller 400. One or more processors 404 for processing information are coupled to the bus 402 to perform a set of operations on the information specified by the computer program code.

[0069] The controller 400 also includes a memory 406 coupled to the bus 410. The memory 406 (e.g., a random access memory (RAM) or other dynamic storage device) stores information including processor instructions. The processor 404 also uses the memory 406 to store temporary values ​​during the execution of the processor instructions. The controller 400 also includes a read-only memory (ROM) 408 or other static storage device coupled to the bus 402 for storing static information that is not changed by the controller 400, including instructions. The controller 400 includes a communication interface 410 that allows the controller 400 to communicate with other devices or equipment (e.g., network elements, servers, etc.).

[0070] Information including user input instructions is provided to bus 402 for use by processor 404 from a user interface, such as a keyboard containing alphanumeric keys operated by a human user, a display device, a pointing device such as a mouse or trackball or cursor direction keys.

[0071] The drive motor 414 (eg, Figure 3 The motors 312A, 338A, 348A, 358A) depicted in and discussed below for rotating the arm members (links) of the robot may include encoders and may communicate with the processor 404 via the bus 402 to send and receive data, operating instructions / commands, or other information therebetween. The processor 404 may use the operating instructions / commands to control the operation of the drive motor 414 to control the rotation of the output shaft of the drive motor 414 (e.g., start, stop, direction (e.g., clockwise, counterclockwise), speed, etc.).

[0072] The external measurement device 416 (e.g., a tracker (sensor, scanning device) of Automated Precision Inc. (API), etc.) can communicate with the processor 404 via the bus 402 to send and receive data, operating instructions / commands, or other information therebetween. The processor 404 can use the operating instructions / commands to control the operation of the external measurement device 416 to control the actuation of the external measurement device 416.

[0073] The through-beam sensor 380 can communicate with the processor 404 via the bus 402 to send and receive data, operating instructions / commands, or other information therebetween. The processor 404 can use the operating instructions / commands to control the operation of the through-beam sensor 380 in conjunction with the operation of the drive motor 414 and / or the external measurement device 380 to control the operation of the through-beam sensor 380.

[0074] The controller 400 includes at least one processor 404 that defines a coordinate system of the articulated robot. In order to perform accurate placement and / or retrieval of a wafer at a workpiece placement / retrieval position (working position), the controller 400 needs to determine the position of one or more pins (which have a predetermined position and orientation relative to the workstation) within the workstation so as to accurately determine the working position relative to the coordinate system of the articulated robot. Therefore, at least one processor 404 is configured to control one or more motors of the articulated robot to move the arm and the end effector to perform a sensing operation, in which the through-beam sensor senses a first pin set at a first position within the workstation. As will be described in more detail below, the sensing operation is performed when the position and / or orientation of the end effector changes for each sensing of the first pin to collect sensing position and orientation data, and the sensing operation is performed so that as the articulated robot moves the through-beam sensor over the first pin, the first pin is located at different distances between the light emitter and the light receiver. Then, at least one processor 404 performs calculations on the sensing position and orientation data to determine the first position of the first pin relative to the coordinate system of the articulated robot.

[0075] Thus, the controller 400 includes a non-transitory computer-readable medium (e.g., see memory 406, ROM 408) storing a program that, when executed by one or more processors (e.g., see processor (or multiple processors) 404), causes the one or more processors (which define a coordinate system of the articulated robot, an embodiment of which is described herein) to control one or more motors (e.g., see (multiple) drive motors 414) of the articulated robot to move the arm and end effector to perform a sensing operation, in which a through-beam sensor (e.g., see through-beam sensor 380) senses a first pin set at a first position within the workstation, and a sensing operation is performed when the position and / or orientation of the end effector changes for each sensing of the first pin to collect sensed position and orientation data, the sensing operation being performed so that as the articulated robot moves the through-beam sensor over the first pin, the first pin is located at different distances between the light emitter and the light receiver; and calculations are performed on the sensed position and orientation data to determine a first position of the first pin relative to the coordinate system of the articulated robot, as described herein.

[0076] Figure 3 An additional embodiment of an articulated robot 300A mounted on a mounting surface 112A in a mounting area and including a controller 400A is depicted. The articulated robot 300A includes a first base 310A disposed on top of a second base 314A. The second base 314A may be a static mount or may include a lift that can raise and lower the first base 310A in the z-direction, thereby raising and lowering the arm 320A and the end effector 360A.

[0077] The articulated robot 300A includes an arm 320A, which includes an arm member (or first arm member) 330A pivotally mounted to a first base 310A around a pivot (or first pivot) 336A, an arm member (or second arm member) 340A pivotally mounted to the arm member 330A around a pivot (or second pivot) 346A, and an arm member (or third arm member) 350A pivotally mounted to the arm member 340A around a pivot (or third pivot) 356A. An end effector 360A is pivotally mounted to the arm member 350A around a pivot (or fourth pivot) 366A. The end effector 360A has a workpiece receiver 370A having a through-beam sensor 380A mounted on an upper surface of the end effector 360A.

[0078] The arm member 330A has a first end 332A pivotally mounted to the first base 310A about a pivot 336A and driven to rotate by a drive motor 312A having an encoder 313A. The arm member 340A has a first end 342A pivotally mounted to the second end 334A of the arm member 330A about a pivot 346A and driven to rotate by a drive motor 338A having an encoder 339A. The arm member 350A has a first end 352A pivotally mounted to the second end 344A of the arm member 340A about a pivot 356A and driven to rotate by a drive motor 348A having an encoder 349A. The end effector 360A has a first end 362A pivotally mounted to the second end 354A of the arm member 350A about a pivot 366A and driven to rotate by a drive motor 358A having an encoder 359A. The through-beam sensor 380A is mounted at the second end 364A of the end effector 360A.

[0079] Figure 4Another embodiment of an articulated robot 300B mounted on a mounting surface 112B in a mounting area and including a controller 400B is depicted. The articulated robot 300B includes a first base 310B disposed on a side of a second base 314B. The second base 314B includes a lifting device that can raise and lower the first base 310B in the z direction, thereby raising and lowering the arm 320B and the end effector 360B. The lifting device includes a housing having a side 314B, a helical threaded rod (or multiple parallel rods) 316B disposed in the housing, and a drive motor 318B configured to rotate the rod (or multiple rods) 316B around its longitudinal axis. The first base 310B has a bracket 311B threadedly engaged with the rod (or multiple rods) 316B, so that the rotation of the rod (or multiple) 316B raises and lowers the first base 310B in the z direction according to the clockwise or counterclockwise rotation of the rod (or multiple rods) 316B. The bracket 311B extends through a slot (or slots) extending vertically along the side 314B to guide movement of the first base 310B in the z-direction.

[0080] The articulated robot 300B includes an arm 320B, which includes an arm member (or a first arm member) 330B pivotally mounted to a base 310B around a pivot (or a first pivot) 336B, an arm member (or a second arm member) 340B pivotally mounted to the arm member 330B around a pivot (or a second pivot) 346B, and an arm member (or a third arm member) 350B pivotally mounted to the arm member 340B around a pivot (or a third pivot) 356B. An end effector 360B is pivotally mounted to the arm member 350B around a pivot (or a fourth pivot) 366B. The end effector 360B has a workpiece receiver 370B having a through-beam sensor 380B mounted on a lower surface of the end effector 360B. Figure 4 The drive motor and pivot arrangement of the illustrated embodiment are similar to Figure 3 Same as shown and described.

[0081] Figure 5 Another embodiment of an articulated robot 300C is depicted. The articulated robot 300C includes a base 310C and an arm 320C. In this embodiment, the arm 320C includes an arm member 330C pivotally mounted to the base 310C about a pivot 336C and an arm member 340C pivotally mounted to the arm member 330C about a pivot 346C. An end effector 360C is pivotally mounted to the arm member 340C about a pivot 366C. The end effector 360C is configured to pivot relative to the arm 320C, and the end effector 360C has a workpiece receiver 370C, and a through-beam sensor 380C is mounted on the end effector 360C. The workpiece receiver 370C can be used to transfer workpieces, such as semiconductor wafers.

[0082] The workpiece receiver 370C has a first protruding member 372C and a second protruding member 374C, with an open space 376C disposed between the first protruding member 372C and the second protruding member 374C. The through-beam sensor 380C includes a light emitter 382C and a light receiver 384C that emit a light beam 390C. The through-beam sensor 380C is configured to sense when an object is present between the light emitter 382C and the light receiver 384C, as will be described in more detail below. In this embodiment, the light emitter 382C is disposed on the first protruding member 372C, and the light receiver 384C is disposed on the second protruding member 374C; however, alternatively, the light emitter may be disposed on the second protruding member 374C, and the light receiver may be disposed on the first protruding member 372C. The end effector 360C has a center of gravity 368C.

[0083] The robot's controller can use the pivot 366C of the end effector 360C as a known position on the end effector 360C relative to the entire layout of the end effector 360C, including any other components mounted thereon (e.g., the through-beam sensor 380C). Thus, the pivot 366C can be used as a reference point for controlling the movement of the end effector 360C within the coordinate system of the articulated robot.

[0084] Figure 5 Pin 230C is depicted, e.g. Figure 1 The robot's controller can be used to move the arm 320C and the end effector 360C so that the light beam 390C of the through-beam sensor 380C passes between the light emitter 382C and the light receiver 384C to sense when the pin 230C appears between the light emitter and the light receiver, and to determine the position and orientation of the end effector 360C (e.g., at the pivot 366C) when the through-beam sensor 380C senses the pin 230C.

[0085] Figure 6A-6H A series of movements of the end effector 360C (without the rest of the robot for simplicity of illustration) relative to the pin 230C are depicted. Such motion may be referred to as a raking motion. Figure 6A-6H Exemplary embodiments of sensing operations are depicted in which a through-beam sensor 380C senses a pin. In these depictions, the articulated robot moves to perform sensing operations in which the through-beam sensor senses the pin, and performs sensing operations to collect sensed position and orientation data as the position and / or orientation of the end effector changes for each sensing of the pin.

[0086] Fig. 6A The end effector 360C is depicted moving toward the pin in the y direction as indicated by arrow 10, such that the pin-end effector positional relationship 230C-1 (i.e., the positional relationship between the pin and the end effector) changes to the pin-end effector positional relationship 230C-2 (i.e., the positional relationship between the pin and the end effector). Fig. 6A This is because the positional relationship is shown in Fig. 6A (Note that the movement need not occur in the y direction, but can occur in any radial direction about the z-axis that is orthogonal to the x- and y-directions.) When positional relationship 230C-1 changes to positional relationship 230C-2, the pin intersects light beam 390C at a distance D1-1 from light emitter 382C and a distance D2-1 from light receiver 384C. The specific distance values ​​are not critical, but such distances are important for the following descriptions of 6C and Fig.6D The distance change described is important.As the end effector 360C moves toward the pin and the light beam 390C moves over the pin, the through-beam sensor 380C senses the position and orientation data of the pin and the end effector 360C, and the pin is detected and stored.

[0087] Figure 6B The end effector 360C is depicted moving along the y direction (in the direction corresponding to the direction indicated by arrow 12). Fig. 6A The pin 360C moves away from the pin (in the direction opposite to the direction indicated by arrow 10 in the figure), so that the pin-end actuator position relationship 230C-2 changes to the pin-end actuator position relationship 230C-3. When the position relationship 230C-2 changes to the position relationship 230C-3, the pin intersects the light beam 390C at a distance D1-1 from the light emitter 382C and a distance D2-1 from the light receiver 384C. As the end actuator 360C moves away from the pin and the light beam 390C moves over the pin, the through-beam sensor 380C senses the position and orientation data of the pin and the end actuator 360C, and the pin is detected and stored. Note that reverse movement (e.g. Figure 6B The movement shown) is not necessary for the automatic teaching process; however, as Fig. 6A The reverse of the movement shown advantageously allows identification of any hysteresis errors in the through-beam sensor, as will be discussed in more detail below.

[0088] Figure 6C The end effector 360C is depicted moving in the x direction as indicated by arrow 14, such that the pin-end effector position relationship 230C-3 changes to the pin-end effector position relationship 230C-4. Figure 6B The movement shown, as indicated in the previous paragraph, can be performed from positional relationship 230C-2 with Figure 6C The movement in the y direction is similar to the movement in the y direction. )

[0089] Fig.6D The end effector 360C is depicted moving toward the pin in the y direction as indicated by arrow 16, such that the pin-end effector positional relationship 230C-4 changes to the pin-end effector positional relationship 230C-5. When the positional relationship 230C-4 changes to the positional relationship 230C-5, the pin intersects the light beam 390C at a distance D1-2 from the light emitter 382C and a distance D2-2 from the light receiver 384C. As the end effector 360C moves toward the pin and the light beam 390C moves over the pin, the through-beam sensor 380C senses the position and orientation data of the pin and the end effector 360C, and the pin is detected and stored.

[0090] Fig. 6E The end effector 360C is depicted moving along the y direction indicated by arrow 18 (in the direction corresponding to Fig.6D The pin-end effector positional relationship 230C-5 is changed to the pin-end effector positional relationship 230C-6. When the positional relationship 230C-5 is changed to the positional relationship 230C-6, the pin intersects the light beam 390C at a distance D1-2 from the light emitter 382C and a distance D2-2 from the light receiver 384C. As the end effector 360C moves away from the pin and the light beam 390C moves over the pin, the through-beam sensor 380C senses the position and orientation data of the pin and the end effector 360C, and the pin is detected and stored.

[0091] For example Figure 6C-Figure 6E Additional movements as shown may be performed so that the pin-end effector positional relationship is moved closer and closer to the second protrusion 374C within the open space 376C in order to collect additional position and orientation data. Figure 6A-6E The movement in illustrates a sensing operation in which the position of the end effector 360C varies in the xy plane while the orientation of the end effector 360C remains constant.

[0092] Fig. 6F The end effector 360C is depicted rotated about the z-axis as indicated by arrow 20 and moved in the xy direction as indicated by arrow 22 such that the pin-end effector positional relationship 230C-7 is achieved. Fig. 6F The movement shown changes the position and orientation of the end effector 360C.

[0093] Figure 6GThe end effector 360C is depicted moving toward the pin in the xy direction indicated by arrow 24, such that the pin-end effector positional relationship 230C-7 changes to the pin-end effector positional relationship 230C-8. When the positional relationship 230C-7 changes to the positional relationship 230C-8, the pin intersects the light beam 390C at a distance D1-3 from the light emitter 382C and a distance D2-3 from the light receiver 384C. As the end effector 360C moves toward the pin and the light beam 390C moves over the pin, the through-beam sensor 380C senses the position and orientation data of the pin and the end effector 360C, and the pin is detected and stored. The specific distance values ​​of the distance D1-3 and the distance D2-3 are not critical and can be the same, similar, or significantly different than the distance D1-1 and the distance D2-1.

[0094] Figure 6H The end effector 360C is depicted moving along the xy direction as indicated by arrow 26 (in the direction corresponding to Figure 6G The pin is moved away from the pin (in the direction opposite to the direction indicated by arrow 24 in the figure), so that the pin-end effector position relationship 230C-8 changes to the pin-end effector position relationship 230C-9. When the position relationship 230C-8 changes to the position relationship 230C-9, the pin intersects the light beam 390C at a distance D1-3 from the light emitter 382C and a distance D2-3 from the light receiver 384C. As the end effector 360C moves away from the pin and the light beam 390C moves over the pin, the through-beam sensor 380C senses the position and orientation data of the pin and the end effector 360C, and the pin is detected and stored.

[0095] As noted above, Figure 6A-6H A series of movements of the end effector 360C relative to the pin 230C are depicted, wherein such movements may be referred to as a search motion, wherein multiple or more linear parallel passes are made in the same orientation, then the orientation is changed to a new orientation, and multiple or more linear parallel passes are made in the new orientation, and this is repeated as needed to collect data. These movements may be performed by moving the end effector forward toward the pin (e.g., see Fig. 6A ) so that once the pin is sensed it stops moving forward and then moves in the opposite direction away from the pin (see, for example, Figure 6B ), then move across (see e.g. Figure 6C ), then moves forward toward the pin (see e.g. Fig.6D ) so that once the pin is sensed it stops moving forward and then moves in the opposite direction away from the pin (see, for example, Fig. 6E ) etc. until the pin reaches the second protruding member 374C and then changes position and orientation (see, for example Fig. 6F), and repeating the process in the new orientation. Alternatively, these movements can be performed by moving the end effector forward toward the pin, then moving over, then moving back away from the pin, then moving over, then moving forward toward the pin, then moving over, etc., until the pin reaches the second protruding member 374C, and then changing position and orientation, and repeating the process in the new orientation.

[0096] Figure 7 A series of movements of the end effector 360D relative to the first pin 230D and the second pin 240D are depicted. Figure 7 An overlay of various positions and orientations of the end effector 360D is shown as the light beam 390C moves over the pin 240D, and the position and orientation data of the end effector 360D and the pin is detected and stored. In this depiction, the end effector 360D makes multiple passes where the end effector 360D is in a first orientation and incrementally different positions, then the orientation is changed to a second orientation, and the end effector 360D makes multiple passes where the end effector 360D is in the second orientation and incrementally different positions, and the process is repeated for a total of six different orientations. If desired, the end effector 360D can perform the same process on the first pin 230D.

[0097] Figure 7 A number of locations are shown being measured. The more data that is collected, the more accurate the model used. Since the process is automated, it can be run by a robot whenever feasible so that as many sensing operations as possible can be performed. Preferably, twenty or more sensing operations can be used to collect twenty or more data points. More preferably, two hundred or more data points can be collected.

[0098] Figure 8 A flow chart illustrating an embodiment of a method 500 of teaching an articulated robot is depicted.

[0099] Method 500 includes step 510 of placing a pin at a location within a workstation, such as Figure 1 The layout of the station will strictly follow the location of the pins, so that once the location and orientation of the pins are determined, the robot can determine the layout of the components within the station, including the location of the workpiece placement / retrieval locations.

[0100] The method 500 includes step 512, i.e., setting up an articulated robot in an area adjacent to a workstation, wherein the articulated robot has a coordinate system by which the robot can control the movement of the robot. The articulated robot has an arm and an end effector configured to pivot relative to the arm, and the end effector has a workpiece receiver including a first protruding member and a second protruding member. The end effector has a through-beam sensor, the through-beam sensor including a light emitter disposed on one of the first protruding member and the second protruding member. The through-beam sensor also includes a light receiver disposed on the other of the first protruding member and the second protruding member. The through-beam sensor is configured to sense when an object (e.g., a pin) is present between the light emitter and the light receiver.

[0101] The method 500 includes step 514 of moving the articulated robot to perform a sensing operation in which the through-beam sensor senses the pin. The sensing operation is performed to collect sensed position and orientation data as the position and / or orientation of the end effector changes for each sensing of the pin, such as described above with respect to Figure 6A-6H and Figure 7 The sensing operation is performed such that as the articulated robot moves the through-beam sensor over the pin, the pin is located at different distances between the light emitter and the light receiver. Such sensing operation will be discussed in detail below.

[0102] The method 500 includes step 516 of performing calculations on the sensed position and orientation data to determine the position of the pin relative to the coordinate system of the articulated robot. Such calculations will be discussed in detail below.

[0103] Single position pin teaching is suitable for polar coordinate articulated robots with two degrees of freedom in the horizontal plane. However, robots with articulated wrists or multiple articulated wrists need to be taught the position and orientation of the desired placement. In such cases, the robot can identify the position of two pins to determine the desired absolute position and orientation.

[0104] The robot may be able to use a through-beam sensor to identify the position of a pin (also referred to herein as a "teach pin," "alignment pin," or "reference pin"). However, it is not always possible to position the pin at the center of the area within the station where the wafer will be placed. In addition, the location of the through-beam beam used for mapping is ideally and typically placed at the end of the end effector. For these reasons, the robot must accurately identify the location of the teach pin and then accurately move to the position and orientation relative to the teach pin. The accuracy of this movement will depend on the complete recognition of the robot's motion.

[0105] In the discussion of sensing operations and calculations for sensing position and orientation data set forth below, the first part of the discussion will focus on the following examples of sensing operations and calculations for sensing position and orientation data given a robot wrist (e.g. Figure 1 The motion of the end effector in the horizontal plane is identified without knowledge of the joint at the pivot 366 in the robot wrist. The end effector (also referred to herein as the "blade") will typically be placed and aligned on the robot wrist in the field. The position and orientation of the through-beam transmitter and receiver relative to the center of the wrist will have errors due to error superposition. Once assembled, the position and orientation of the wrist center of the end effector relative to the robot wrist will also have errors. For the case of an articulated wrist, there are four linear independent variables: the teach pin X position, the teach pin Y position, the radial distance from the end effector wrist center (i.e., the pivot about which the wrist pivots) to the through-beam beam, and the through-beam trigger error. In addition, there is one nonlinear variable: the end effector orientation. A robot with an articulated wrist has three controlled degrees of freedom in the horizontal plane (x, y, θ).

[0106] In an embodiment of the method described herein, a through-beam sensor is used to identify the position of a pin for multiple samples, wherein the controlled degrees of freedom are varied in a programmatic manner to approach the pin from different positions and orientations. Data is collected by a controller and then post-processed using a regression model (e.g., least squares approximation) to determine the linear independent variables, and an optimization search to determine the nonlinear variables. Essentially, the robot moves around the pin to locate its position based on different positions and orientations (e.g., see Figure 6A-6H and Figure 7 ), thereby optimally understanding not only the position of the pin, but also the errors of the robot itself, including those of the through-beam sensor and the end effector. In the following discussion of embodiments of the method, we first assume that the position of the robot wrist in the horizontal plane is accurately known. Then, methods for obtaining this information are discussed.

[0107] A wide range of information benefits the accuracy of the regression model. Data is collected by positioning the end effector within three degrees of freedom (x, y, θ (or L, r, θ)). By taking many points through a series of different motions, we also find additional information for a total of five different parameters, including hysteresis and normal distance from the axis of rotation. In addition, the information found is more accurate than other processes because we are averaging the results to find the best fit using regression analysis. The exemplary regression analysis described herein involves the use of the least squares method; however, other numerical optimizations can be used to find these additional parameters.

[0108] Once the robot leaves the factory, the robot linkage (see, for example, the arm member and end effector described above) is generally not changed. The robot is commanded based on feedback from the encoder position associated with the joint angle from the drive motor. It is known that the final, actual position of the wrist will depend on the accuracy of the kinematic model, the link length, and the encoder offset angle. An alignment fixture can be used to try to identify the angular offset corresponding to the real robot motion (i.e., the robot's homing). However, the alignment fixture requires mechanical errors and is prone to error. In addition, the alignment fixture does not identify the link length. In an embodiment of the method described herein, as the joint is manipulated through a variety of motion arrays, an external measurement device (e.g., an API tracker) can be used to identify the actual position of the robot wrist. Encoder data and position data are collected and synchronized in a timely manner. Such data can then be post-processed using least squares approximation to determine the robot's kinematic model: link length and angular offset. These values ​​can then be stored on the robot and then read and used by the controller to more accurately control the robot.

[0109] During the through-beam automatic teaching process, one or both alignment pins are positioned exactly within the station by means of machining tolerances. Fig. 9A The relationship between the features of the robot and the alignment pin 230E is shown. Fig. 9A Features of the robot are shown, including the robot's coordinate system 302E, the robot wrist rotation axis 366E, and a through-beam sensor 380E including a light emitter 382E emitting a light beam 390E and a light receiver 384E. The through-beam sensor 380E will be provided on the end effector as discussed in the above embodiments. In the through-beam auto-teach process, we want to determine the position of the pin within the robot's inertial coordinate system (also referred to herein as the coordinate system), as determined by Fig. 9A The vector P shown represents .

[0110] The robot will have its own knowledge of the position of its wrist in the inertial coordinate system, as represented by vector W. There are usually through-beam sensors for vertical mapping of wafers, and such through-beam sensors can therefore be conveniently used in the process described herein. The expected absolute orientation of the robot's end effector is represented by angle θ. There is a vector R that is orthogonal to the beam 390E and passes through the wrist rotation axis 366E. Vector R is the normal distance from the nominal beam center to the wrist rotation axis 366E (which is also the minimum distance from the rotation axis to the beam). Pin 230E has a radius r. Note that the value s is equal to 1 or -1 when the beam 390E contacts the side of the pin 230E farthest from or closest to the wrist, respectively. There may be some misalignment error (also referred to herein as orientation error, angular offset, angular error) in the actual orientation of the end effector relative to the beam 390E, as represented by angle γ. (The orientation of the end effector as read by the encoder may have some misalignment (or orientation) error. This is especially true for field replaced end effectors. The through-beam sensor is attached to the end effector (with some reasonable accuracy), the blade is attached to the wrist, the wrist is mounted on the robot, and the reference is the encoder position. There is almost certainly misalignment error between the encoder and this stack of parts leading to the through-beam sensor, and so the method described herein allows us to best determine the angle of the end effector. We ultimately need to position the wafer relative to the center of the end effector so that the angle.) will identify the following contact point where the beam 390E will first break from the aligned pin 230E. The geometry can be further represented as Fig. 9B The relationship is further elaborated in .

[0111] The scalar equation for the distance at the contact point can be written as:

[0112] P*sin(η-γ-θ+π / 2)=R–s*r+W*sin(λ-γ-θ+π / 2)

[0113] The angle β can be simplified to:

[0114] β=-γ-θ+π / 2

[0115] P*sin(η+β)=R–s*r+W*sin(λ+β)

[0116] From trigonometric identities:

[0117] sin(η+β)=sin(η)*cos(β)+sin(β)*cos(η)

[0118] P*sin(η)*cos(β)+P*cos(η)*sin(β)=Rs*r+…W*sin(λ)*cos(β)+

[0119] W*cos(λ)*sin(β)

[0120] Simplifying further:

[0121] P y *cos(β)+P x *sin(β)=Rs*r+W y *cos(β)+W x *sin(β)

[0122] We assume that we know the radii R and r, the orientation s, the wrist position and orientation W x , W y and θ and even the orientation error γ.

[0123] P y *cos(β)+P x *sin(β)=Rs*r+W y *cos(β)+W x *sin(β)

[0124] We wish to determine the unknown number P x and P y The above equations can be solved by using n measurement instances, where the three robot degrees of freedom W x , W y and θ are varied.

[0125] We first define a 2×1 vector A as follows:

[0126] A=[P x P y ] T

[0127] We define the n×2 vector X as follows:

[0128] X = [sin(β)cos(β)]

[0129] We define the n×1 vector B as follows:

[0130] B=Rs*r+W y *cos(β)+W x *sin(β)

[0131] Therefore, the equation can be written as:

[0132] X*A=B

[0133] Multiply by the transpose of X:

[0134] X T *X*A=X T *B

[0135] Multiply by the inverse:

[0136] A=(X T *X) -1 *X T *B

[0137] Through A, we have a least squares approximation of the pin position.

[0138] The accuracy of the solution depends on the diversity of the matrix X and the vector B.

[0139] The automatic teaching process is intended to find the exact location of the pin 230E. However, perhaps we only know the approximate location of the pin within + / - 15 mm. The robot will have to search the general area of ​​the pin until the beam 390E is triggered. For example, the robot may start at an initially given approximate location and then follow a similar Figure 6A-6H The movement shown moves the end effector until the pin is sensed by the through-beam sensor. The robot has three degrees of freedom in the horizontal plane: x, y, and θ. We can impose a constraint by forcing beam 390E to be tangent to approximately the far side or the near side of pin 230E. Therefore, we have two remaining degrees of freedom to generate the data diversity we need in matrix X and vector B. First, the angle θ of the end effector can be varied. Second, beam 390E itself has a safe length of + / -L. We can vary the distance l within the range of + / -L.

[0140] Therefore, for a fixed angle θ and a decreasing radius r, we can solve for the commanded wrist position:

[0141] W x =P x +(s*rR)*cos(γ+θ)+l*sin(γ+θ)

[0142] W y =P y +(s*rR)*sin(γ+θ)-l*cos(γ+θ)

[0143] For the range of motion found, we determine where the through beam is triggered.

[0144] from Figure 7 Note that data is collected by the end effector 360D in many different orientations and by the pin 240D intersecting the through-beam sensor's beam 390D at different locations along the length of the through-beam sensor's beam 390D (i.e., at various locations along the width of the open space of the protruding member (or fork) of the end effector 360D where the through-beam sensor's transmitter and receiver are mounted.)

[0145] Note that it is possible, but not required, to obtain data from both the forward approach and the backward (or reverse) approach of an through-beam sensor. While it is not necessary to obtain data from both the forward and backward approaches, data from both the forward and backward approaches will help identify any hysteresis errors in the through-beam sensor. In other words, if the beam is not triggered exactly at the center of the beam, data from both the forward and backward approaches will identify this error as δb, as described below with respect to Fig.10 This is advantageous since we do need to know the center of the end effector relative to the through-beam sensor.

[0146] This procedure describes solving for the errors in the end effector. Figure 7 , Fig. 9A and Fig. 9B As shown, there are two potential unknowns in the end effector: the radial distance R and the angular error γ. The end effector is usually assembled and aligned by the user to be parallel to the robot. Therefore, there is no opportunity to characterize these values ​​at the factory. A dowel pin can potentially be used as a reference, but the use of a dowel pin affects the adjustability of the end effector.

[0147] Fig.10 Depicted are two representations of a through-beam sensor approaching a pin from opposite sides of the pin. Fig.10 A first representation of through-beam sensor 380F-1 approaching first surface portion 231F of pin 230F from the rear side of beam 390F-1 is shown (e.g., similar to Figure 6B ) and a second representation of the through-beam sensor 380F-2 approaching the second surface portion 232F of the pin 230F from the front side of the beam 390F-2 (e.g., similar to Fig. 6A The first and second representations are representations of the same through-beam sensor provided in two different relationships relative to pin 230F, and therefore have been depicted with different reference numerals for ease of description and depiction.

[0148] The first representation of the through-beam sensor 380F-1 includes a light emitter 382F-1 and a light receiver 384F-1 that emits a light beam 390F-1. The light beam 390F-1 has a beam centerline 392F-1 and a back trigger point 394F, as described below. The beam centerline 390F-1 is disposed at a radius R from the wrist center axis 366F-1, as depicted.

[0149] A second representation of a through-beam sensor 380F-2 includes a light emitter 382F-2 and a light receiver 384F-2 that emit a light beam 390F-2. The light beam 390F-2 has a beam centerline 392F-2 and a front trigger point 396F, as described below. The beam centerline 390F-2 is disposed at a radius R from the wrist center axis 366F-2, as depicted.

[0150] The true distance of the through-beam sensor's light beam from the wrist axis depends on the alignment of the through-beam sensor relative to the wrist's central axis of rotation and the distance at which the light beam is triggered. On one side of the through-beam sensor, a light emitter emits light. On the other side of the through-beam sensor, a light receiver receives the light. At a certain threshold, the light receiver will receive a reduced amount of total light to trigger an input / output (I / O) signal to the controller. This is called the trigger point. The trigger point may not be exactly at the centerline of the light beam.

[0151] The trigger point may occur at a certain distance δb from the centerline of the beam. This paper assumes that the distance δb is symmetric about the centerline of the beam. By approaching from both sides of the beam, we intend to distinguish the radius error R from the distance δb. Note that the distance δb will also identify a component of the error associated with the radius of the pin; however, such an error is considered small.

[0152] Going back to the equation we defined first,

[0153] P y *cos(β)+P x *sin(β)=Rs*(r+δb)+W y *cos(β)+W x *sin(β)

[0154] We add two more unknowns, R and r, to the previous equation. Note that we will deal with gamma in the subsequent discussion below.

[0155] P y *cos(β)+P x *sin(β)-R+s*δb=-s*r+W y *cos(β)+W x *sin(β)

[0156] We first define a 4×1 vector A as follows:

[0157] A=[P x P y R δb] T

[0158] We define an n×4 vector X as follows:

[0159] X=[sin(β) cos(β)-1 s]

[0160] We define the n×1 vector B as follows:

[0161] B=W y *cos(β)+W x *sin(β)-s*r

[0162] Therefore, the equation can be written as:

[0163] X*A=B

[0164] Multiply by the transpose of X:

[0165] X T *X*A=X T *B

[0166] Multiply by the inverse:

[0167] A=(X T *X) -1 *X T *B

[0168] From A, we have a least squares approximation of the pin location, radius R, and the effective pin radius r.

[0169] Now we will search for β.

[0170] As we said, we have left:

[0171] P y *cos(β)+P x *sin(β)-Rs*r=W y *cos(β)+W x *sin(β)

[0172] Note again the definition of angle β:

[0173] β=-γ-θ+π / 2

[0174] Also note that our linear independent variable P y and P x We can't solve for P using the least squares method alone. x , P y and β.

[0175] However, for any value of γ, we can calculate the accuracy of the least squares method to satisfy the following equation:

[0176] X*A=B

[0177] E(γ)=sum(abs(X*AB))

[0178] E(γ)=sum(abs(X*(X T *X) -1 *X T *BB))

[0179] We can iteratively solve for γ that minimizes the function E. This can be done via brute force search, gradient descent, or some other optimization.

[0180] Numerical simulations demonstrating the power of the algorithm are included in the Beta Search Numerical Simulations discussed below.

[0181] A discussion of the robot's accuracy will now be provided, including a discussion of homing and encoder space e.

[0182] Fig.11 The relationship between the features of the robot including the torso 336G, shoulder 346G, elbow 356G and wrist 366G is shown. (Such features correspond to, for example, Figure 2 ) The robot includes a first link L1, a second link L2, a third link L3, and a fourth link L4. (Such links are, for example, Figure 2 A mathematical representation of the link lengths of features such as arm member 330A, arm member 340A, arm member 350A, and end effector 360A in FIG. 3 (i.e., pivot to pivot, or pivot to a point of interest, such as a through-beam sensor).

[0183] An optical target, such as a spherically mounted retroreflector (SMR) 367G, is set on the wrist 366G of the robot. A laser tracker (or scanning device) 369G is placed in any fixed position relative to the center of the robot (or torso 336G). The laser tracker 369G can pivot and tilt to track the movement of the SMR on the wrist 366G. The tracker 369G can use laser or time of flight to determine the distance to the SMR. Encoder feedback on the tracker and the radial distance allow the tracker to determine the position of the SMR in three-dimensional space with an accuracy of less than 40 microns. The robot moves throughout the range of motion, generating a variety of information arrays. The kinematic model is fitted to the data, for example, by using regression fitting (such as least squares approximation) to extract the angular offset and link length that most accurately fit the data from the kinematic model.

[0184] As a result of this analysis, each joint of the robot will have an associated angular adjustment and link length. Since each joint has an associated motor, the angular adjustment and link length specific to that link can be stored on the encoder of the motor associated with that joint. In this way, any controller can be paired with the robot, and the controller can read the information specific to the robot from the robot. Alternatively, the information can also be stored on a memory within the robot (see, for example, memory 406).

[0185] To accurately determine the pin position, we must also know the position of the robot wrist accurately, which is the vector W. We find this in q, b, and s space. We define the value of s to be zero when the link is aligned and extending outward from the link to which it is mounted. However, the zero position of each joint is defined by the encoders at the joint, and the raw encoder outputs do not necessarily conform to the ideal model when assembled, as Fig.11 shown.

[0186] We call the original encoder output e-space, where

[0187] e1=s1+Δs1

[0188] e2=s2+Δs2

[0189] e3=s3+Δs3

[0190] e4=s4+Δs4

[0191] Related art systems typically use alignment fixtures or pins to place the robot links in a known pose. The quality of the alignment depends on the errors of the fixture and the arm itself. In the related art, a nominal link length is assumed. The link length is defined by the distance separating the axis of rotation from the subsequent axis of rotation in the kinematic chain. In the related art, the axis of rotation is assumed to be located at a position relative to the arm housing. In the following embodiments, the true axis of rotation will be located based on the kinematics of the observed motion of the robot in the horizontal plane. We observe the robot motion P using an API sensor and write the position in the xy plane as a complex value:

[0192] P=P O +L1*exp(i*q1)+L2*exp(i*q2)+L2*exp(i*q3)+L4*exp(i*q3),

[0193] where Po is the restoration point of the robot center in the API coordinate system, and q is in the absolute coordinate system.

[0194] Using the definition we found earlier, we can replace the s-space:

[0195] P=P O+L1*exp(i*s1)+L2*exp(i*(s1+s2))…+L3*exp(i*(s1+s2+s3))+L4*exp(i*(s1+s2+s3+s4))

[0196] Using the definition found above, we can replace the e-space:

[0197] P=P o +L1*exp(i*(e1-Δs1))+L2*exp(i*(e1-Δs1+e2-Δs2))…+L3*exp(i*(e1-Δs1+e2-Δs2+e3-Δs3))…+L4*exp(i*(e1-Δs1+e2-Δs2+e3-Δs3+e4-Δs4))

[0198] We note the following identities:

[0199] exp(i*(a+b))=exp(i*a)*exp(i*b),

[0200] And isolate the known encoder information from the link length and angular offset we wish to determine:

[0201] P=1*P o +exp(i*(e1)*L1*exp(i*-Δs1)…+exp(i*(e1+e2))*L2*exp(i*(-Δs1-Δs2))…+exp(i*(e1+e2+e 3))*L3*exp(i*(-Δs1-Δs2-Δs3))…+exp(i*(e1+e2+e3+e4))*L4*exp(i*(-Δs1-Δs2-Δs3-Δs4))

[0202] The known values ​​are P, e1, e2, e3, e4, and the unknown values ​​are P0, L1, L2, L3, L4, Δs1, Δs2, Δs3, Δs4. Then, we do the following merge:

[0203] P=1*X o +exp(i*Σe1)*L1*exp(i*-Δq1)…+exp(i*Σe 12 )*L2*exp(i*-Δq2)…+exp(i*Σe 13 )*L3*exp(i*-Δq3)…+exp(i*Σe 14 )*L4*exp(i*-Δq4)

[0204] (The above, known values ​​are P, Σe1, Σe 12 ,Σe 13 ,Σe14 , and the unknown values ​​are X0, L1, L2, L3, L4, Δq1, Δq2, Δq3, Δq4. ) Next, we write the above in matrix form:

[0205] P = [1exp(i*Σe1)exp(i*Σe 12 )exp(i*Σe 13 )exp(i*Σe 14 )]…*[X o L1*exp(i*-Δq1)L2*exp(i*-Δq2)L3*exp(i*-Δq3)L4*exp(i*-Δq4)] T

[0206] We add n rows of known encoder and position information to the above, and keep a single column vector of offsets. (Above, the known values ​​are P, Σe1, Σe 12 ,Σe 13 ,Σe 14 , the unknown values ​​are X0, L1, L2, L3, L4, Δq1, Δq2, Δq3, Δq4. )

[0207] We can also modify the above equation to include x, y, and z as required,

[0208] We can write the above equation in simpler notation:

[0209] P=X*A

[0210] (Above, the known values ​​are P, X, and the unknown value is A.) Where P is an n×1 complex column vector, X is an n×5 complex matrix, and A is a 5×1 complex column vector. We multiply by the transpose of the X matrix.

[0211] X T *P=X T *X*A

[0212] This produces a square matrix which can be inverted:

[0213] (X T *X) -1 *X T *P=(X T *X) -1* X T *X*A

[0214] (X T *X) -1 *X T *P=A

[0215] (Above, the known values ​​are P, X, X T, and the unknown value is A. )The above is the least squares approximation of vector A. Then, we extract the value as follows:

[0216] L i =sqrt(real(A i ) 2 +imag(A i ) 2 )

[0217] Δq i =-atan2(imag(A i ),real(A i ))

[0218] Note the negative sign above. We then solve for the single encoder offset:

[0219] Δs1=Δq1

[0220] Δs2=Δq2-Δq1

[0221] Δs3=Δq3-Δq2

[0222] Δs4=Δq4-Δq3

[0223] In the production of robots, L i and Δs i The parameters can be stored as two separate parameters on the eprom of the encoder of the drive motor (or multiple drive motors). The controller can access these parameters and use them at startup without homing.

[0224] Angular offset is important. It remains to be seen whether absolute accuracy of link length is critical to the overall accuracy of the robot in atmospheric semiconductor robotic applications.

[0225] Given that the wafer is now commanded in a Cartesian coordinate system, identification of link length deviation should help reduce the overall error and therefore reduce the need for a larger "buffer" space between the robot and the environment it operates in. If the link length varies by only 0.25mm, the total potential deviation and savings could be 1mm.

[0226] Prior to this implementation, the link lengths were hardcoded in the software / firmware. The singularity position was based on the nominal link length. If we were to use the actual link lengths in the kinematics, we would need to update the singularity position to the taught position to ensure that the robot can mathematically pass through the singularity without any problems.

[0227] If this turns out to be problematic and the benefit to accuracy is not significant, then the actual link length can be ignored and only the angular offset used.

[0228] The user may question whether the robot has suffered some shock that has caused the encoder to move relative to the arm. We may need a way to determine if the mechanism has been displaced. This can be done with an alignment fixture. It is also possible to re-teach the robot to the original alignment pins in the tool. Assuming the pins have not moved, consistent pin position identification will suggest that the robot is not damaged.

[0229] Similar to what is done in the field today, the arm is not repairable in the field. The robot can be returned to the manufacturer for an arm replacement, and the robot can be recalibrated and the encoder eprom updated for the replaced motor. We should note that this will require that anyone repairing the robot will need to utilize an API sensor or equivalent, which may require significant cost.

[0230] the following Figure 12-14 The discussion describes pin placement and identification of pin locations within a workstation.

[0231] Fig.12 The relationship between the features of the robot, alignment pins 230H and 240H, and a working position 220H having a center 221H is shown. Fig.12 Features of the robot are shown, including the robot's coordinate system 302H, the robot wrist rotation axis 366H, and an through-beam sensor 380H including a light emitter 382H and a light receiver 384H that emits a light beam 390H. The through-beam sensor 380H would be provided on an end effector as discussed in the above embodiments.

[0232] Identification of the pin position is used to orient the robot within the work environment. If desired, one or more pins can be left in the environment indefinitely and used for recalibration at a later time. However, the pins themselves can be an obstacle. Therefore, in Fig.12 In the case of two pins shown, the process accurately identifies a working position away from the pins for placing the wafer. To identify such a working position in planar space, two pins are used, such as Fig.12 shown.

[0233] Pins 230H and 240H identify the position and orientation of the wafer station coordinate system C in the xy plane. The position of pins 230H and 240H in the wafer station will be accurately placed relative to the working position 220H by the machining tolerances of the environment and defined by the vector C. Therefore, the robot will understand to place the wafer at position P with the orientation defined by the C coordinate system. 11 +C1, such as Fig.12 This is represented by the following vector equation:

[0234] W1+L1=P 11 +C1

[0235] The position of the wafer on the blade relative to the center of the robot wrist 366H is defined by vector L. In the case of an edge gripping end effector, the size and orientation of vector L is defined by the fingers and piston of the edge gripping end effector. When a wafer is picked up at a given location, the piston pushes the wafer into a fixed, repeatable position. In such a case, the relationship between vector R and vector L must be known through machining errors or further calibration. In the case of a friction gripping end effector or a vacuum gripping end effector, vector L is defined only by the position of the wafer on the blade when the robot picks up the wafer. Ultimately, we want to accurately determine the position of the wafer at one station and accurately place it at a subsequent station.

[0236] Fig.13 The relationship between a semiconductor wafer 20J having a center 22J, a wafer pre-aligner 260J, and another alignment pin 250J is shown. The pre-aligner is often used in conjunction with a workstation to determine the location of the wafer center 22J and the orientation of the wafer 20J relative to a notch (not shown) on the perimeter of the wafer. The wafer will be rotated and the magnitude and orientation of the vector D will be determined, as shown in FIG. Fig.13 shown.

[0237] The absolute position and orientation of the prealigner can be identified by measuring the two pins. For simplicity, the prealigner shaft 260J and pin 250J can be used to determine the absolute position and orientation of the prealigner. Pin 250J can be attached to the base of the prealigner and can therefore be used to determine the orientation of the prealigner. In the factory, the orientation of the encoder can be taught relative to the pin with the positioning feature.

[0238] Fig.14 An example movement from the pre-aligner to the processing station (or workstation) is shown in FIG.

[0239] Fig.14 The relationship between features of the robot, alignment pins 230K and 240K, a work position 220K having a center 221K, a semiconductor wafer 20K having a center 22K, a wafer pre-aligner 260K, and another alignment pin 250K is shown. Fig.14 Features of the robot are shown, including the robot's coordinate system 302K, the robot wrist rotation axis 366K, and an through-beam sensor 380K including a light emitter 382K and a light receiver 384K that emits a light beam 390K. The through-beam sensor 380K would be provided on an end effector as discussed in the above embodiments.

[0240] Note that vector D is the position of the wafer relative to the pre-aligner as determined by the pre-aligner.

[0241] W2+L2=P 21 +C2+D

[0242] The movement of the chip is defined as follows:

[0243] H 21 =P 11 +C1-P 21 -C2-D

[0244] H 21 =W1+L1-W2-L2

[0245] Fig.15A and Fig. 15B A method for determining the z position is depicted. Fig.15A 360L. The end effector 360L includes a first protruding member 372L and a second protruding member 374L. A through-beam sensor 380L including a light emitter and a light receiver emitting a light beam 390L is disposed on the first protruding member 372L and the second protruding member 374L, as discussed above with respect to various embodiments. Fig. 15B yes Fig.15A A side view of the pin 230L and end effector 360L is shown.

[0246] Once the pin 230L is located in the xy plane space as discussed above, the z position of the pin 230L and the environment 114L (which may include a known surface of the workstation or a mounting surface on which the robot is mounted) can be determined by Fig.15A and Fig. 15B The conventional mapping shown is recognized by the through-beam sensor 380L, wherein the end effector 360L is positioned in the xy plane so that the through-beam sensor 380L senses the pin 230L, and then the end effector is raised in the z direction until the through-beam sensor 380L no longer senses the pin 230L and such data is stored.

[0247] Beta search numerical simulations were performed and the results show that Fig.16 In the beta search numerical simulation, we artificially imposed a gamma (γ) of 1.5 degrees and a delta_b (δb) of 1 mm. We artificially generated one hundred and eight (108) data points as if they were collected by a robot, and used the algorithm to back off Px, Py, R, delta_b, and gamma as follows:

[0248] clear

[0249] clc

[0250] Px_actual = 125 / 1000;

[0251] py_actual = 300 / 1000;

[0252] %the exact radius

[0253] R_actual=500 / 1000;

[0254] %the nominal pin radius

[0255] r_nominal=15 / 1000;

[0256] %the radial disturbance associated with the beam and the pin

[0257] delta_b_actual=1 / 1000;

[0258] %the angular missalignment of the end effector

[0259] gamma_actual=1.5*pi / 180;

[0260] r_actual=r_nominal+delta_b_actual;

[0261] %the+ / -operable distance of the emitter and receiver

[0262] L=75 / 1000;

[0263] theta=[];

[0264] l=[];

[0265] s=[];

[0266] r_s=[];

[0267] %create the range of the search

[0268] for S=[-1 1]

[0269] for THETA=60*pi / 180:15*pi / 180:135*pi / 180

[0270] for L_search=[-L*.8:15 / 1000:L*.8];

[0271] %if you want to animate the motion to the pin use the range

[0272] %if you just want to specify the pin location

[0273] for R_search=r_actual;%r+r_search:-.002:r

[0274] l=[l;L_search];

[0275] theta=[theta;THETA];

[0276] r_s=[r_s;R_search];

[0277] s=[s;S];

[0278] end

[0279] end

[0280] end

[0281] end

[0282] %define the wrist vector for all points at which the I / O is tripped

[0283] %this information is essentially determined by the encoders

[0284] Wx=Px_actual+(s.*r_s-R_actual).*cos(gamma_actual+theta)+l.*cos(gamma_actual+theta-pi / 2);

[0285] Wy=Py_actual+(s.*r_s-R_actual).*sin(gamma_actual+theta)+l.*sin(gamma_actual+theta-pi / 2);

[0286] gamma_search=-2*pi / 180:.0001:2*pi / 180;

[0287] E_best=inf;

[0288] gamma_best=NaN;

[0289] tic

[0290] for j=1:length(gamma_search)

[0291] %theta is the data we are getting back from the encoder which willnot

[0292] %inherently have gamma

[0293] beta=-gamma_search(j)-theta+pi / 2;

[0294] X=[sin(beta)cos(beta)-ones(length(beta),1)s];

[0295] %we only know the nominal value of r

[0296] B=Wy.*cos(beta)+Wx.*sin(beta)-s.*r_nominal;

[0297] A=inv(transpose(X)*X)*transpose(X)*B;

[0298] E=X*A-B;

[0299] Esum(j)=sum(abs(E));

[0300] if Esum(j)<E_best

[0301] E_best=Esum(j);

[0302] gamma=gamma_search(j);

[0303] Px=A(1);

[0304] Py=A(2);

[0305] R=A(3);

[0306] delta_b=A(4);

[0307] end

[0308] end

[0309] toc

[0310] figure(2)

[0311] plot(gamma_search*180 / pi,Esum*1000,'b.-',...

[0312] gamma*180 / pi,E_best*1000,'ro',...

[0313] gamma_actual*180 / pi,0,'gv')

[0314] xlabel('gamma[deg]')

[0315] ylabel('integral of error[mm]')

[0316] legend('search','calculated optimal','actual')

[0317] Px_error=(Px-Px_actual)*1000

[0318] Py_error=(Py-Py_actual)*1000

[0319] R_error=(R-R_actual)*1000

[0320] delta_b_error=(delta_b-delta_b_actual)*1000

[0321] gamma_error=gamma*180 / pi-gamma_actual*180 / pi

[0322] We apply a delta_b of 1 mm and a gamma of 1.5 degrees. The one-dimensional brute force optimization takes 0.023 seconds on the computer and the results are as follows Fig.16 We can calculate the following:

[0323] Px_error=7.827072323607354e-12

[0324] Py_error=-5.628830734849544e-11

[0325] R_error=-4.544681297957709e-08

[0326] delta_b_error=-1.452637272622570e-09

[0327] gamma_error=7.721282493300397e-04

[0328] Next, the robot's accuracy was tested through empirical testing, and the results are shown in Fig.17 and Fig.18 , both of which show graphs of the side-to-side error of the API in millimeters versus time in seconds. (Note that Fig.18 yes Fig.17 Magnified portion of the chart. ) Fig.17 and Fig.18 The controller error, then the model fit, then the maximum, and then the minimum are shown respectively.

[0329] We place the SMR at the center of the wrist and have the robot run a series of motions representing typical motion through the area of ​​interest. Run Pp_homing2.m to extract accurate link lengths and offset angles.

[0330] %rotate and translate the API data so that it best fits the iec datausing

[0331] %SVD

[0332] XAPI_W=jr_3D_fit([x_W y_W z_W],Xiec);

[0333] x_W=XAPI_W(:,1);

[0334] y_W=XAPI_W(:,2);

[0335] z_W=XAPI_W(:,3);

[0336] P = x_W + y_W * i;

[0337] X=[1+encoder(:,1)*0...exp(i*(encoder(:,1)))...

[0338] exp(i*sum(encoder(:,1:2)')')...

[0339] exp(i*sum(encoder(:,1:3)')')];%exp(i*sum(encoder(:,1:4)')')];

[0340] A=inv(transpose(X)*X)*transpose(X)*P;

[0341] L = abs(A);

[0342] delta_q=atan2(imag(A),real(A));

[0343] delta_s1=delta_q(2);%torso adjustment

[0344] delta_s2=delta_q(3)-delta_q(2);%shoulder adjustment

[0345] delta_s3=delta_q(4)-delta_q(3);%elbow adjustment

[0346] %%delta_s4=delta_q(5)-delta_q(4);%wrist adjustment

[0347] %

[0348] L_error=(L-[0;L1;L2;L3])*1000

[0349] offsets=[delta_s1; delta_s2; delta_s3]*180 / pi

[0350] L_error= 1.4805

[0352] -0.1308 1.2454 0.2283

[0355] offsets=

[0356] -0.2789 0.0432 0.4340

[0359] These values ​​for L and delta_s are implemented in the kinematics of the application code. For testing purposes, the same or similar motion profile should be commanded on the controller, but adjusted in the kinematics. We should see that the API data now accurately aligns with the controller's perception of where the robot is.

[0360] It should be noted that the exemplary embodiments depicted and described herein illustrate preferred embodiments of the present invention and are not intended to limit the scope of the present invention in any way.Many modifications and variations of the present invention are possible in light of the above teachings.

[0361] It should be noted that the exemplary embodiments depicted and described herein set forth preferred embodiments and are not meant to limit the scope of the claims in any way. According to the above teachings, many modifications and variations are possible. It should therefore be understood that within the scope of the appended claims, the present invention may be implemented in a manner different from that specifically described herein.

Claims

1. A method for teaching an articulated robot, the method comprising: providing a first pin at a first location within the workstation; an articulated robot disposed in an area adjacent to the workstation, the articulated robot having a coordinate system, the articulated robot having an arm and an end effector configured to pivot relative to the arm, the end effector having a workpiece receiver including a first protruding member and a second protruding member, the end effector having a through-beam sensor, the through-beam sensor including a light emitter disposed on one of the first protruding member and the second protruding member, the through-beam sensor also including a light receiver disposed on the other of the first protruding member and the second protruding member, the through-beam sensor configured to sense when an object is present between the light emitter and the light receiver; moving the articulated robot to perform a sensing operation in which the through-beam sensor senses the first pin, performing the sensing operation to collect sensed position and orientation data as the position and / or orientation of the end effector changes for each sensing of the first pin, the sensing operation being performed such that the first pin is located at different distances between the light emitter and the light receiver as the articulated robot moves the through-beam sensor over the first pin to make a plurality of parallel movements of the end effector; and performing a calculation on the sensed position and orientation data to determine a first position of the first pin relative to a coordinate system of the articulated robot, Wherein, the multiple parallel movements include: a first movement of the articulated robot moving the through-beam sensor in a first direction along a first path so that it completely passes over the first pin, the first pin being located at a first distance between the light emitter and the light receiver when the through-beam sensor moves over the first pin along the first path; A second movement of the articulated robot moving the through-beam sensor along the first path in a second direction so that the through-beam sensor completely passes over the first pin, the second direction being opposite to the first direction so that the second movement is a reverse movement of the first movement; A third movement of the articulated robot to move the through-beam sensor in a third direction along a second path so that it completely passes over the first pin, wherein the second path is parallel to the first path, and when the through-beam sensor moves over the first pin along the second path, the first pin is located at a second distance between the light emitter and the light receiver, and the second distance is different from the first distance.

2. The method according to claim 1, in, The end effector is configured to pivot relative to the arm about a pivot axis, and The method further includes performing calculations on the sensed position and orientation data to determine a distance extending to the pivot in a direction orthogonal to a light beam of the light emitter and an angle of the direction orthogonal to the light beam relative to a coordinate system of the articulated robot, the angle including an angular error of the end effector.

3. The method according to claim 1, further comprising: providing an optical target on a pivot of the end effector, the pivot being configured to pivot relative to the arm; Disposing a scanning device at a fixed position relative to a coordinate system of the articulated robot; using the scanning device to measure position data of the optical target as the articulated robot moves within a range of motion; and A regression analysis is performed on the position data to determine link lengths of the links of the robot arm.

4. The method according to claim 3, further comprising: The link lengths are stored on corresponding encoders of motors used to rotate the links of the robot arm.

5. The method according to claim 1, in, The workstation has a working position at a predetermined position and orientation relative to the first position of the first pin, and Wherein, the method further comprises using the first position of the first pin to determine the working position relative to a coordinate system of the articulated robot.

6. The method according to claim 5, in, In a horizontal plane, the working position overlaps with the first position of the first pin.

7. The method according to claim 1, in, The articulated robot comprises: a base mounted in an area adjacent to the workstation; An arm, comprising: a first arm member pivotally mounted to the base about a first pivot axis; a second arm member pivotally mounted to the first arm member about a second pivot axis; and a third arm member pivotally mounted to the second arm member about a third pivot axis; and An end effector is pivotally mounted to the third arm member about a fourth pivot axis.

8. The method according to claim 1, in, Sensing operations include: a first sensing operation in which the articulated robot moves the through-beam sensor via the end effector in a first linear motion in a first orientation over the first pin; a second sensing operation in which the articulated robot moves the through-beam sensor via the end effector in the first orientation in a second linear motion over the first pin; The first linear motion and the second linear motion constitute multiple parallel movements of the end effector.

9. The method according to claim 8, in, In the first sensing operation, when the through-beam sensor moves over the first pin, the first pin is located at a first distance between the light emitter and the light receiver, and Wherein, in the second sensing operation, when the through-beam sensor moves over the first pin, the first pin is located at a second distance between the light emitter and the light receiver, and the second distance is different from the first distance.

10. The method according to claim 8, in, Sensing operations include: a third sensing operation in which the articulated robot moves the through-beam sensor via the end effector in a third linear motion in a second orientation different from the first orientation; and a fourth sensing operation in which the articulated robot moves the through-beam sensor via the end effector in the second orientation in a fourth linear motion over the first pin; wherein the third linear motion and the fourth linear motion are parallel linear movements of the end effector, and The third linear motion and the fourth linear motion are not parallel to the first linear motion and the second linear motion.

11. The method according to claim 1, in, Moving the articulated robot to perform the sensing operation includes: initially moving the end effector to a predetermined approximate position of the first pin; and The end effector is moved in an area around the predetermined approximate location of the first pin until the through-beam sensor senses the first pin.

12. The method according to claim 1, further comprising: providing a second pin at a second location within the workstation; moving the articulated robot to perform additional sensing operations in which the through-beam sensor senses the second pin, the additional sensing operations being performed as the position and / or orientation of the end effector changes for each sensing of the second pin to collect additional sensed position and orientation data, the additional sensing operations being performed such that the second pin is located at different distances between the light emitter and the light receiver as the articulated robot moves the through-beam sensor over the second pin; and Calculations are performed on the additional sensed position and orientation data to determine the second position of the second pin relative to a coordinate system of the articulated robot.

13. The method according to claim 12, in, The workstation has a working position at a predetermined position and orientation relative to the first position of the first pin and the second position of the second pin, and Wherein, the method further comprises using the first position of the first pin and the second position of the second pin to determine the working position relative to the coordinate system of the articulated robot.

14. The method according to claim 1, in, moving the articulated robot to perform twenty or more sensing operations, and Wherein performing calculations on the sensed position and orientation data includes performing regression analysis on the sensed position and orientation data.

15. The method according to claim 14, in, Performing calculations on the sensed position and orientation data includes performing a least squares approximation and a numerical search on the sensed position and orientation data to determine the first position of the first pin relative to a coordinate system of the articulated robot.

16. The method according to claim 1, in, The sensing operation is performed in the following two ways: moving the end effector away from the first pin so that the through-beam sensor moves past the first pin in a first direction; and moving the end effector toward the first pin so that the through-beam sensor moves past the first pin in a second direction opposite the first direction, and Wherein the method further comprises determining a hysteresis error in the through-beam sensor using the sensed position and orientation data obtained by moving the end effector away from the first pin and moving the end effector toward the first pin.

17. The method according to claim 1, wherein: The multiple parallel movements are multiple parallel linear movements of the end actuator.

18. An articulated robot, comprising: Arm; an end effector configured to pivot relative to the arm, the end effector having a workpiece receiver including a first protruding member and a second protruding member; a through-beam sensor disposed on the end effector, the through-beam sensor comprising a light emitter disposed on one of the first protruding member and the second protruding member, the through-beam sensor further comprising a light receiver disposed on the other of the first protruding member and the second protruding member, the through-beam sensor being configured to sense when an object is present between the light emitter and the light receiver; as well as a controller comprising at least one processor defining a coordinate system of the articulated robot, the at least one processor being configured to control one or more motors of the articulated robot to move the arm and the end effector to perform a sensing operation in which the through-beam sensor senses a first pin disposed at a first position within a workstation, the sensing operation being performed to collect sensed position and orientation data as the position and / or orientation of the end effector changes for each sensing of the first pin, the sensing operation being performed such that the first pin is located at different distances between the light emitter and the light receiver as the articulated robot moves the through-beam sensor over the first pin to make a plurality of parallel movements of the end effector, the at least one processor being configured to perform calculations on the sensed position and orientation data to determine a first position of the first pin relative to the coordinate system of the articulated robot, Wherein, the multiple parallel movements include: a first movement of the articulated robot moving the through-beam sensor in a first direction along a first path so that it completely passes over the first pin, the first pin being located at a first distance between the light emitter and the light receiver when the through-beam sensor moves over the first pin along the first path; A second movement of the articulated robot moving the through-beam sensor along the first path in a second direction so that the through-beam sensor completely passes over the first pin, the second direction being opposite to the first direction so that the second movement is a reverse movement of the first movement; A third movement of the articulated robot to move the through-beam sensor in a third direction along a second path so that it completely passes over the first pin, wherein the second path is parallel to the first path, and when the through-beam sensor moves over the first pin along the second path, the first pin is located at a second distance between the light emitter and the light receiver, and the second distance is different from the first distance.

19. The articulated robot according to claim 18, in, The end effector is configured to pivot relative to the arm about a pivot axis, and Wherein, the at least one processor is also configured to perform calculations on the sensed position and orientation data to determine the distance extending to the pivot in a direction orthogonal to the light beam of the light emitter and the angle of the direction orthogonal to the light beam relative to the coordinate system of the articulated robot, the angle including the angular error of the end effector.

20. The articulated robot according to claim 18, further comprising: an optical target disposed on a pivot of the end effector, the pivot being configured to pivot relative to the arm; and a scanning device located at a fixed position relative to a coordinate system of the articulated robot, the scanning device being configured to measure position data of the optical target as the articulated robot moves within a range of motion, Wherein, the at least one processor is further configured to perform a regression analysis on the position data to determine a link length of a link of the robot arm.

21. The articulated robot according to claim 20, wherein: The link lengths are stored on corresponding encoders of the one or more motors used to rotate the links of the robot arm.

22. The articulated robot according to claim 18, further comprising: a base mounted in an area adjacent to the workstation, Wherein, the arm comprises: a first arm member pivotally mounted to the base about a first pivot axis; a second arm member pivotally mounted to the first arm member about a second pivot axis; and a third arm member pivotally mounted to the second arm member about a third pivot axis, and Wherein, the end effector is pivotally mounted to the third arm member about a fourth pivot axis.

23. The articulated robot according to claim 18, in, The at least one processor is configured to control the one or more motors of the articulated robot to move the articulated robot to perform: a first sensing operation in which the through-beam sensor is moved by the end effector in a first linear motion in a first orientation over the first pin; and a second sensing operation in which the through-beam sensor is moved by the end effector in a second linear motion in the first orientation over the first pin, wherein, in the first sensing operation, when the through-beam sensor moves over the first pin, the first pin is located at a first distance between the light emitter and the light receiver, wherein, in the second sensing operation, when the through-beam sensor moves over the first pin, the first pin is located at a second distance between the light emitter and the light receiver, the second distance being different from the first distance, and The first linear motion and the second linear motion constitute multiple parallel movements of the end effector.

24. The articulated robot according to claim 18, in, The at least one processor is configured to control the one or more motors of the articulated robot to move the articulated robot to perform: a first sensing operation in which the through-beam sensor is moved by the end effector in a first linear motion in a first orientation over the first pin; and a second sensing operation in which the through-beam sensor is moved by the end effector in a second linear motion in the first orientation over the first pin, a third sensing operation in which the through-beam sensor is moved by the end effector in a third linear motion in a second orientation past the first pin, wherein the second orientation is different than the first orientation; and a fourth sensing operation in which the through-beam sensor is moved by the end effector in a fourth linear motion in a second orientation over the first pin, wherein the first linear motion and the second linear motion constitute multiple parallel movements of the end effector; wherein the third linear motion and the fourth linear motion are parallel linear movements of the end effector, and The third linear motion and the fourth linear motion are not parallel to the first linear motion and the second linear motion.

25. The articulated robot according to claim 18, in, The at least one processor is configured to control the one or more motors of the articulated robot to move the arm and the end effector to perform an additional sensing operation in which the through-beam sensor senses a second pin disposed at a second position within the workstation, the additional sensing operation being performed when the position and / or orientation of the end effector changes for each sensing of the second pin to collect additional sensing position and orientation data, the additional sensing operation being performed such that as the articulated robot moves the through-beam sensor over the second pin, the second pin is located at different distances between the light emitter and the light receiver, the at least one processor is configured to perform calculations on the additional sensing position and orientation data to determine the second position of the second pin relative to the coordinate system of the articulated robot, the at least one processor being configured to use the first position of the first pin and the second position of the second pin to determine the working position relative to the coordinate system of the articulated robot.

26. The articulated robot according to claim 18, in, The at least one processor is configured to control one or more motors of the articulated robot to move the arm and the end effector to perform twenty or more sensing operations, and Wherein the at least one processor is configured to perform a regression analysis on the sensed position and orientation data.

27. The articulated robot according to claim 26, in, The at least one processor is configured to perform a least squares approximation and a numerical search on the sensed position and orientation data to determine the first position of the first pin relative to a coordinate system of the articulated robot.

28. The articulated robot according to claim 18, in, The at least one processor is configured to control one or more motors of the articulated robot to move the arm and the end effector, thereby performing the sensing operation in the following two ways: moving the end effector away from the first pin so that the through-beam sensor moves past the first pin in a first direction; and moving the end effector toward the first pin so that the through-beam sensor moves past the first pin in a second direction opposite the first direction, and Wherein the at least one processor is configured to determine a hysteresis error in the through-beam sensor using the sensed position and orientation data obtained by moving the end effector away from the first pin and moving the end effector toward the first pin.

29. The articulated robot according to claim 18, wherein The multiple parallel movements are multiple parallel linear movements of the end actuator.

30. A non-transitory computer readable medium having stored thereon a program which, when executed by one or more processors, causes the one or more processors to: A coordinate system is defined for an articulated robot, the articulated robot comprising: Arm; an end effector configured to pivot relative to the arm, the end effector having a workpiece receiver including a first protruding member and a second protruding member; and a through-beam sensor disposed on the end effector, the through-beam sensor comprising a light emitter disposed on one of the first protruding member and the second protruding member, the through-beam sensor further comprising a light receiver disposed on the other of the first protruding member and the second protruding member, the through-beam sensor being configured to sense when an object is present between the light emitter and the light receiver; controlling one or more motors of the articulated robot to move the arm and the end effector to perform a sensing operation in which the through-beam sensor senses a first pin disposed at a first position within a workstation, the sensing operation being performed to collect sensed position and orientation data as a position and / or orientation of the end effector changes for each sensing of the first pin, the sensing operation being performed such that the first pin is located at different distances between the light emitter and the light receiver as the articulated robot moves the through-beam sensor over the first pin to make a plurality of parallel movements of the end effector; and performing a calculation on the sensed position and orientation data to determine a first position of the first pin relative to a coordinate system of the articulated robot, Wherein, the multiple parallel movements include: a first movement of the articulated robot moving the through-beam sensor in a first direction along a first path so that it completely passes over the first pin, the first pin being located at a first distance between the light emitter and the light receiver when the through-beam sensor moves over the first pin along the first path; A second movement of the articulated robot moving the through-beam sensor along the first path in a second direction so that the through-beam sensor completely passes over the first pin, the second direction being opposite to the first direction so that the second movement is a reverse movement of the first movement; A third movement of the articulated robot to move the through-beam sensor in a third direction along a second path so that it completely passes over the first pin, wherein the second path is parallel to the first path, and when the through-beam sensor moves over the first pin along the second path, the first pin is located at a second distance between the light emitter and the light receiver, and the second distance is different from the first distance.

31. The non-transitory computer readable medium storing a program according to claim 30, in, The end effector is configured to pivot relative to the arm about a pivot axis, and Wherein, the one or more processors perform calculations on the sensed position and orientation data to determine a distance extending to the pivot in a direction orthogonal to the light beam of the light emitter and an angle of the direction orthogonal to the light beam relative to the coordinate system of the articulated robot, the angle including an angular error of the end effector.

32. The non-transitory computer readable medium storing a program according to claim 30, in, an optical target disposed on a pivot of the end effector, the pivot being configured to pivot relative to the arm, wherein the scanning device is arranged at a fixed position relative to the coordinate system of the articulated robot, and the scanning device is configured to measure the position data of the optical target as the articulated robot moves within the range of motion, and Wherein, the one or more processors are caused to perform a regression analysis on the position data to determine a link length of a link of a robot arm.

33. The non-transitory computer readable medium storing a program according to claim 32, wherein: The link lengths are stored on corresponding encoders of one or more motors used to rotate the links of the robot arm.

34. The non-transitory computer readable medium storing a program according to claim 30, in, causing the one or more processors to control one or more motors of the articulated robot to move the arm and the end effector to perform twenty or more sensing operations, and Wherein the one or more processors are caused to perform a regression analysis on the sensed position and orientation data.

35. The non-transitory computer readable medium storing a program according to claim 30, wherein The multiple parallel movements are multiple parallel linear movements of the end actuator.

Citation Information

Patent Citations

  • Teaching method for robot and robot

    CN107530877A

  • Position detecting device

    JP2000210890A

  • Robotic systems and methods for identifying and processing a variety of objects

    US20170121113A1