Operation path generation method and operation path generation device
Patent Information
- Application Number
- PCT/JP2024/029770
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-01
- Filing Date
- 2024-08-22
- Publication Date
- 2025-03-06
Smart Images

Figure JP2024029770_06032025_PF_FP_ABST
Abstract
Description
Motion trajectory generation method and motion trajectory generation device
[0001] The present disclosure relates to a motion trajectory generation method and a motion trajectory generation device.
[0002] Conventionally, a method for generating a motion trajectory of a robot is known. JP 2019-193975 A discloses a motion trajectory generation method for generating a motion trajectory for moving a robot arm. In the motion trajectory generation method of JP 2019-193975 A, a start point and an end point of the motion are set for the robot arm. Then, a motion trajectory of the robot arm is calculated so as to avoid a preset obstacle. Furthermore, the shortest motion trajectory is searched for so that the calculated motion trajectory of the robot arm does not take a detour. Furthermore, the rotational speed and acceleration of each joint of the robot arm are calculated so that the robot arm can move along the calculated motion trajectory in the shortest time. In this way, the motion trajectory generation method of JP 2019-193975 A optimizes the motion trajectory of the robot arm.
[0003] Japanese Patent Application Laid-Open No. 2019-193975
[0004] However, in JP 2019-193975 A, when calculating the motion trajectory of a robot arm, only two points, the start point and the end point of the motion, can be set. Therefore, if there are three or more access points that the robot arm accesses, the user needs to perform an operation to set the start point and the end point for each combination of access points. This poses a problem in that the burden on the user to generate the motion trajectory of the robot arm is heavy.
[0005] This disclosure has been made to solve the above-mentioned problems, and one purpose of this disclosure is to provide a motion trajectory generation method and a motion trajectory generation device that can reduce the burden on the user for generating a motion trajectory even when there are three or more access points.
[0006] A motion trajectory generation method according to a first aspect of this disclosure is a motion trajectory generation method for generating a motion trajectory of a substrate transport robot including a horizontal articulated robot arm to which a hand for holding a semiconductor substrate is attached, and includes receiving input of a placement area where the robot arm and semiconductor substrate are to be placed, receiving input of three or more access points in the placement area to be accessed by the hand, and calculating, by simulation, a motion trajectory optimized for all combinations of the three or more access points based on predetermined conditions including the time required to transport the semiconductor substrate.
[0007] As described above, a motion trajectory generation method according to a first aspect of this disclosure includes: receiving input of three or more access points in a placement area that a hand will access; and calculating, through simulation, optimized motion trajectories for all combinations of the three or more access points based on predetermined conditions, including the time required to transport a semiconductor substrate. Thus, the user simply sets three or more access points, and optimized motion trajectories are automatically calculated for all combinations of the three or more access points. Therefore, it is not necessary to set start and end points for each combination of the three or more access points. Therefore, even when there are three or more access points, the burden on the user for generating motion trajectories can be reduced.
[0008] A motion trajectory generation device according to a second aspect of this disclosure is a motion trajectory generation device that generates a motion trajectory of a substrate transport robot including a horizontal articulated robot arm to which a hand that holds a semiconductor substrate is attached, and includes an input unit for inputting a placement area where the robot arm and semiconductor substrate are placed and three or more access points in the placement area that the hand accesses, and a processing unit that executes a process of accepting the placement area input to the input unit, a process of accepting the three or more access points input to the input unit, and a process of calculating, by simulation, a motion trajectory that is optimized for all combinations of the three or more access points based on predetermined conditions including the time required to transport the semiconductor substrate.
[0009] As described above, a motion trajectory generation device according to a second aspect of this disclosure includes a processing unit that executes the following processes: accepting the settings of three or more access points input to the input unit; and calculating, by simulation, motion trajectories optimized for all combinations of the three or more access points based on predetermined conditions including the time required to transport semiconductor substrates. Thus, a user simply sets three or more access points, and optimized motion trajectories are automatically calculated for all combinations of the three or more access points. Therefore, it is not necessary to set start points and end points for all combinations of the three or more access points. Therefore, a motion trajectory generation device can be provided that can reduce the burden on the user for generating motion trajectories, even when there are three or more access points.
[0010] According to the motion trajectory generating method and motion trajectory generating device of the present disclosure, even when there are three or more access points, it is possible to prevent the burden on the user for generating a motion trajectory from becoming too great.
[0011] FIG. 1 is a diagram showing a substrate transfer system and a motion trajectory generation device according to a first embodiment. FIG. 2 is a side view of a substrate transfer robot according to the first embodiment. FIG. 3 is a block diagram of a substrate transfer robot according to the first embodiment. FIG. 4 is a block diagram of a motion trajectory generation device according to the first embodiment. FIG. 5 is a flow diagram for explaining a motion trajectory generation method according to the first embodiment. FIG. 6 is a diagram for explaining setting of a placement area in which a robot arm and a semiconductor substrate are placed. FIG. 7 is a diagram showing the set placement area. FIG. 8 is a diagram showing a substrate transfer robot temporarily placed in the placement area. FIG. 9 is a diagram for explaining optimization of motion trajectories between access points. FIG. 10 is a diagram showing an optimized motion trajectory. FIG. 11 is a diagram for explaining correction of a motion trajectory. FIG. 12 is a diagram for explaining optimization of motion trajectories between access points according to a second embodiment.
[0012] [First embodiment] A first embodiment of the present disclosure that embodies the present disclosure will be described below with reference to the drawings. In this specification, the up-down direction is referred to as the Z direction. The upper side is referred to as the Z1 side, and the lower side is referred to as the Z2 side. The direction perpendicular to the Z direction is referred to as the X direction. One side of the X direction is referred to as the X1 side, and the other side is referred to as the X2 side. The direction perpendicular to the Z direction and the X direction is referred to as the Y direction. One side of the Y direction is referred to as the Y1 side, and the other side is referred to as the Y2 side.
[0013] A motion trajectory generation method and a motion trajectory generation device 1 according to a first embodiment will be described. The motion trajectory generation method and the motion trajectory generation device 1 generate a motion trajectory T of a substrate transport robot 100 of a substrate transport system 200. Specifically, the motion trajectory generation method and the motion trajectory generation device 1 generate a motion trajectory T of the substrate transport robot 100 including a horizontal articulated robot arm 30 to which a hand 40 for holding a semiconductor substrate W is attached. The substrate transport system 200 is, for example, an Equipment Front End Module (EFEM). The semiconductor substrate W, the hand 40, and the substrate transport robot 100 are examples of a workpiece, an end effector, and a robot, respectively.
[0014] (Substrate Transfer System) A substrate transfer system 200 will be described with reference to FIG. 1 . The substrate transfer system 200 includes a placement area 210 in which a robot arm 30 and a semiconductor substrate W are placed. Specifically, the placement area 210 includes a placement chamber 211, a hoop 212, and a processing device 213. The placement area may also include an aligner 214. The placement chamber 211 includes a substrate transfer robot 100. The placement chamber 211 is a space in which the substrate transfer robot 100 is placed, and includes a wall 211a surrounding the substrate transfer robot 100. In the hoop 212, multiple semiconductor substrates W are placed at equal intervals along the Z direction along a horizontal plane. In the processing device 213, processes such as heat treatment, impurity introduction process, and thin film formation process are performed on the semiconductor substrate W. The aligner 214 is a device that positions the semiconductor substrate W in the rotational direction. For example, a plurality of FOUPs 212 are arranged adjacent to the wall 211a on the Y1 side of the placement chamber 211. For example, a plurality of processing devices 213 are arranged adjacent to the wall 211a on the X2 side of the placement chamber 211. For example, one aligner 214 is arranged adjacent to the wall 211a on the X1 side of the placement chamber 211. The FOUPs 212, processing devices 213, and aligner 214 are access points accessed by the hand 40. In the substrate transfer system 200, the substrate transfer robot 100 transfers the semiconductor substrate W between the FOUP 212 that stores the semiconductor substrate W, the processing devices 213 that perform processing on the semiconductor substrate W, and the aligner 214.
[0015] The substrate transport robot 100 will be described with reference to Fig. 2. The substrate transport robot 100 includes a base 10, a lifting mechanism 20, a robot arm 30, a hand 40, and a control unit 50.
[0016] The base 10 and the lifting mechanism 20 will now be described. The base 10 is a platform for fixing the substrate transfer robot 100 to the placement chamber 211. The lifting mechanism 20 raises and lowers the robot arm 30 along the Z direction. Specifically, the lifting mechanism 20 is provided with a drive unit 21 such as a servo motor shown in FIG. 3 , and raises and lowers the robot arm 30 along the Z direction based on commands from the control unit 50.
[0017] The robot arm 30 will now be described. The robot arm 30 is a horizontally articulated robot arm having a hand 40 attached to its tip for holding a semiconductor substrate W. Specifically, the robot arm 30 includes a base arm section 31 and a tip arm section 32. The base arm section 31 is disposed on the base end side of the robot arm 30, and its base end rotates around a rotation axis JT1. The tip arm section 32 has its base end rotated around a rotation axis JT2 and connected to the base arm section 31, and has a hand 40 connected to its tip that rotates around a rotation axis JT3. The base arm section 31 and the tip arm section 32 are disposed along a horizontal plane. The robot arm 30 is provided with a drive unit 33, such as a servo motor shown in FIG. 3, that rotates the base arm section 31, the tip arm section 32, and the hand 40. The base arm section 31, the tip arm section 32, and the hand 40 are rotated based on commands from a control unit 50.
[0018] The hand 40 includes an upper hand 41 and a lower hand 42. The upper hand 41 and the lower hand 42 have the same configuration. The hand 40 has a plate shape extending horizontally. The tip of the hand 40 is bifurcated. In other words, when viewed from the Z direction, the hand 40 has a Y shape. Both the upper hand 41 and the lower hand 42 rotate around a rotation axis JT3.
[0019] The configuration of the control unit 50 will be described. The control unit 50 is a robot controller. As shown in FIG. 3 , the control unit 50 includes a main control unit 51, a servo control unit 52, and a drive circuit unit 53. The main control unit 51 and the servo control unit 52 each include, for example, a central processing unit (CPU). The main control unit 51 controls the drive unit 21 of the lifting mechanism 20 and the drive unit 33 of the robot arm 30. The servo control unit 52 controls the power supplied to the drive unit 21 and the drive unit 33 based on commands from the main control unit 51. The drive circuit unit 53 supplies drive power to the drive unit 21 and the drive unit 33. The drive circuit unit 53 is provided for each of the drive unit 21 and the drive unit 33. Note that the drive circuit unit 53 may be provided in common for the drive unit 21 and the drive unit 33. The drive unit 21 and the drive unit 33 each include a servo motor, an encoder, and a reducer.
[0020] (Movement trajectory generation device) The following describes the movement trajectory generation device 1. As shown in Fig. 4, the movement trajectory generation device 1 includes an input unit 2, a display unit 3, a storage unit 4, and a processing unit 5. The movement trajectory generation device 1 is, for example, a PC (personal computer) or a tablet.
[0021] The input unit 2 accepts input operations from a user. The input unit 2 outputs an input signal corresponding to the input operation to the processing unit 5. For example, the input unit 2 is a keyboard or a mouse. In the first embodiment, the input unit 2 is used to input the placement area 210 where the robot arm 30 and the semiconductor substrate W are placed, and three or more access points P in the placement area 210 to be accessed by the hand 40. Details of inputting the placement area 210 and the access points P will be described later.
[0022] The display unit 3 displays the movement trajectory T calculated by the processing unit 5 through simulation, etc. The display unit 3 also displays the modeled placement area 210 and substrate transport robot 100 along with the movement trajectory T. The display unit 3 is, for example, a liquid crystal display or an organic EL display.
[0023] The storage unit 4 is a computer-readable storage medium that stores various programs and various data. The storage unit 4 also stores a motion trajectory generation program 4a that is used by the processing unit 5 to execute the motion trajectory generation method. The storage unit 4 is formed by a magnetic disk such as a hard disk, an optical disk such as a CD-ROM or DVD, or a semiconductor memory.
[0024] The processing unit 5 includes, for example, a processor such as a CPU (Central Processing Unit) and semiconductor memories such as a RAM (Random Access Memory) and a ROM (Read Only Memory). The processing unit 5 reads the motion trajectory generation program 4a from the storage unit 4. In the first embodiment, the processing unit 5 executes a process of accepting the placement area 210 input to the input unit 2 and a process of calculating, by simulation, a motion trajectory T optimized based on predetermined conditions including the time required to transport the semiconductor substrate W for all combinations of three or more access points P.
[0025] (Movement Trajectory Generation Method) The movement trajectory generation method described below is executed by the processing unit 5 based on the movement trajectory generation program 4 a read out from the storage unit 4 .
[0026] As shown in Fig. 5 , in step S1, the processing unit 5 receives input of a placement area 210 in which the robot arm 30 and the semiconductor substrate W are to be placed. The user inputs the placement area 210 using the input unit 2. For example, as shown in Fig. 6 , the user generates the placement area 210 by operating a mouse to move a mouse pointer Q on the display unit 3. This causes the processing unit 5 to receive input of the placement area 210 in which the robot arm 30 and the semiconductor substrate W are to be placed. The input placement area 210 is then displayed on the display unit 3. For example, in the example shown in Fig. 6 , the user sets one placement chamber 211 as the placement area 210.
[0027] In step S2, in the first embodiment, the processing unit 5 accepts input of three or more access points P to be accessed by the hand 40 in the placement area 210. Specifically, the processing unit 5 sets three or more access points P to be accessed by the hand 40 based on an input operation by the user on the input unit 2.
[0028] In the example shown in FIG. 7 , four access points P1, P2, P3, and P4 are designated on the display unit 3 by the user operating the mouse. For example, icons representing the four access points P1, P2, P3, and P4 are displayed on the display unit 3, and the user designates the four access points P1, P2, P3, and P4 by moving the icons representing the four access points P1, P2, P3, and P4 to predetermined positions on the display unit 3 with the pointer Q. Then, when the user designates an access point P on the display unit 3, a diagram modeling the hoop 212 and the processing device 213 is automatically generated. In the example shown in FIG. 7 , hoops 212 are generated at the positions of the access points P1 and P2, respectively, and processing devices 213 are generated at the positions of the access points P3 and P4, respectively. In the example shown in FIG. 7 , two hoops 212 serving as access points P are arranged on the Y1 side of the placement room 211. Furthermore, two processing devices 213 serving as access points P are arranged on the Y2 side and the X2 side of the placement room 211. Thus, in the first embodiment, the placement area 210 includes a placement chamber 211 in which the substrate transport robot 100 is placed, a FOUP 212 serving as an access point P on which the semiconductor substrate W is placed, and a processing device 213 serving as an access point P on which processing is performed on the semiconductor substrate W.
[0029] Furthermore, the user generates an obstacle 215 by operating the mouse to move the mouse pointer Q on the display unit 3. This causes the processing unit 5 to receive input of the obstacle 215. For example, in the example shown in Fig. 7, an obstacle 215 is set on each of the Y1 side and the Y2 side in the placement room 211. The obstacle 215 is, for example, a model of a pillar or the like.
[0030] Note that instead of the above steps S1 and S2, the placement area 210 may be set by, for example, the user inputting coordinate values using a keyboard or the like. Alternatively, the processing unit 5 may set the placement area 210 by reading CAD data of the placement area 210. Furthermore, although an example of setting a two-dimensional placement area 210 is shown in FIG. 7, a three-dimensional placement area 210 may also be set.
[0031] In step S3, the user inputs predetermined conditions for optimizing the movement trajectory T of the substrate transport robot 100 via the input unit 2. The processing unit 5 sets the predetermined conditions input via the input unit 2. The predetermined conditions include, for example, upper limits for the acceleration and deceleration of the hand 40 when it moves, upper limits for the speed of the robot arm 30 and the hand 40, an upper limit for the number of via points from one access point P to another access point P, and the range of the rotation angle of the robot arm 30 and the hand 40.
[0032] Furthermore, the upper limit of the movement speed of the hand 40 can be set to be different between a state in which the semiconductor substrate W is held by the hand 40 and a state in which the semiconductor substrate W is not held by the hand 40. For example, the upper limit of the movement speed is set lower when the semiconductor substrate W is held by the hand 40 than when the semiconductor substrate W is not held by the hand 40. In this way, in the first embodiment, it is possible to optimize the movement trajectory T so that the movement speed of the hand 40 is different between a state in which the semiconductor substrate W is held by the hand 40 and a state in which the semiconductor substrate W is not held by the hand 40. The predetermined conditions also include that the robot arm 30 and the hand 40 do not interfere with the wall 211 a of the placement chamber 211, an obstacle 215, or the like. The user can appropriately select and input the above-mentioned predetermined conditions.
[0033] In the first embodiment, the predetermined condition includes the time required to transport the semiconductor substrate W. Specifically, the predetermined condition includes at least one of minimizing the time required to access all of the three or more access points P and minimizing the time required to access a prioritized access point P among the three or more access points P. In the present embodiment, the processing unit 5 accepts the selection of the predetermined condition. Specifically, these two predetermined conditions are input via the input unit 2. For example, a button for selecting the predetermined condition may be displayed on the display unit 3. When minimizing the time required to access all of the three or more access points P is selected as the predetermined condition, the movement trajectory T of the substrate transport robot 100 is optimized to minimize the total time required to access all of the access points P. Furthermore, when the access point P1 is selected as the prioritized access point P, priority is given to minimizing the access time between the access point P1 and the access points P2, P3, and P4. In this case, the access times between the access points P other than the access point P1 may be longer. In this case, compared to when the motion trajectory T is optimized to minimize the total time required to access all access points P, the total time required to access all access points P may be longer, while the time required to access access point P1 will be shorter.
[0034] In step S4, the modeled substrate transport robot 100 is temporarily positioned on the display unit 3. As shown in Fig. 8, the user operates the mouse to display the modeled substrate transport robot 100 on the display unit 3. The user then operates the mouse to temporarily position the base 10 of the substrate transport robot 100 at an arbitrary position on the display unit 3 using a pointer Q. Note that this temporary positioning of the substrate transport robot 100 can also be performed by inputting coordinate values instead of using the mouse.
[0035] In step S5, in the first embodiment, the processing unit 5 calculates, by simulation, a motion trajectory T optimized for all combinations of three or more access points P based on predetermined conditions, including the time required to transport the semiconductor substrate W. In the example shown in FIG. 9 , the motion trajectories T are simultaneously calculated by simulation for all combinations of four access points P1, P2, P3, and P4. Specifically, first, the motion trajectories T when accessing each of the access points P2, P3, and P4 from the access point P1 are calculated by simulation. Next, the motion trajectories T when accessing each of the access points P2, P3, and P4 are similarly calculated by simulation. The processing unit 5 also starts the calculation operation of the motion trajectory T when the user presses an optimization button (not shown) displayed on the display unit 3 with the mouse, for example. The processing unit 5 calculates the motion trajectory T of the hand 40 that meets predetermined conditions and the motion trajectory of the robot arm 30 corresponding to the motion trajectory T of the hand 40 while changing the position of the base 10. In this way, the movement trajectory T of the hand 40 is calculated while the position of the base 10 is changed, so a more optimal movement trajectory T is calculated compared to when the movement trajectory T is calculated with the position of the base 10 fixed.
[0036] In the first embodiment, calculating the motion trajectory T through simulation includes calculating an optimized motion trajectory T through simulation while passing through preset waypoints through which the hand 40 passes. Specifically, several waypoints through which the hand 40 passes are set for each access point P. These waypoints are input, for example, by the user. In the example shown in FIG. 9 , multiple waypoints P11 and P12 are set for the access point P1. Multiple waypoints P21 and P22 are set for the access point P2. Multiple waypoints P31 and P32 are set for the access point P3. Multiple waypoints P41 and P42 are set for the access point P4. Note that waiting points R1, R2, R3, and R4, where the robot arm 30 waits in a predetermined posture, are also set for the access points P1, P2, P3, and P4, respectively. Note that whether or not to pass through these waypoints can be set by the user. The processing unit 5 then generates all patterns of the motion trajectory T that pass through the waypoints. For example, for access point P1, all possible patterns of the movement trajectory T are generated, such as a pattern of the movement trajectory T passing through both via point P11 and via point P12, and a pattern of the movement trajectory T passing through only via point P11. In the example shown in FIG. 9 , between access point P1 and access point P2, a pattern of the movement trajectory T passing through waiting point R1, via point P11, via point P12, via point P22, via point P21, and waiting point R2 is shown. Between access point P1 and access point P3, a pattern of the movement trajectory T passing through waiting point R1, via point P11, via point P32, via point P31, and waiting point R2 is shown. Between access point P1 and access point P4, a pattern of the movement trajectory T passing through waiting point R1 and waiting point R4 is shown. At points commonly set when moving to each access point P, the substrate transport robot 100 has a common posture.For example, at the waypoint P11, the posture of the substrate transport robot 100 when moving from the access point P1 to the access point P2 is the same as the posture of the substrate transport robot 100 when moving from the access point P1 to the access point P3. Also, the modeled substrate transport robot 100 is not shown in FIG.
[0037] Furthermore, the processing unit 5 optimizes the position of the base 10 and the movement trajectory T for all movement trajectories T that pass through the way points set as described above, while checking whether the robot arm 30 and the hand 40 do not interfere with the wall 211a of the placement chamber 211 or the obstacles 215. For example, as a method for automatically generating movements that do not cause interference between the robot arm 30 and the hand 40, for example, RRT (Rapidly Exploring Random Tree) or PRM (Probabilistic Roadmap Method) is used. Furthermore, for each of the generated patterns of the movement trajectories T, the rotational speed and acceleration of each joint of the robot arm 30 are calculated so as to minimize the time required to transport the semiconductor substrate W between the access points P. Then, the processing unit 5 determines the movement trajectory T that has the shortest access time from among the generated patterns of the movement trajectory T as the optimized movement trajectory T.
[0038] Furthermore, in the first embodiment, calculating the movement trajectory T by simulation includes calculating, by simulation, an optimized movement trajectory T for each of the upper hand 41 and the lower hand 42. For example, the hand 40 that the user uses to access each access point P is set as the upper hand 41 or the lower hand 42, and the processing unit 5 calculates the movement trajectory T according to the set upper hand 41 and lower hand 42.
[0039] Furthermore, in the first embodiment, calculating the motion trajectory T by simulation includes calculating an optimized motion trajectory by simulation by changing a parameter that controls the motion of the hand 40 between a state in which the semiconductor substrate W is held by the hand 40 and a state in which the semiconductor substrate W is not held by the hand 40. For example, a user sets whether or not the hand 40 that accesses each access point P holds a semiconductor substrate W. The parameter that controls the motion of the hand 40 is, for example, the motion speed. As described above, for example, in the state in which the semiconductor substrate W is held by the hand 40, the upper limit value of the motion speed as a parameter that controls the motion of the hand 40 is set lower than in the state in which the semiconductor substrate W is not held by the hand 40. As a result, the motion trajectory T is optimized so that the semiconductor substrate W is transported at a low speed when the semiconductor substrate W is held by the hand 40 and is transported at a high speed when the semiconductor substrate W is not held by the hand 40.
[0040] After the processing unit 5 calculates the motion trajectory and the like of the hand 40, the display unit 3 displays the motion trajectory T calculated and optimized by the processing unit 5. For example, as shown by the dotted lines in Fig. 10 , the display unit 3 displays the motion trajectory T between the four access points P1, P2, P3, and P4. At this time, the display unit 3 positions the substrate transport robot 100 and the base 10 at the positions adopted when calculating the optimized motion trajectory T of the hand 40. In this way, the motion trajectory T calculated by the processing unit 5 is displayed on the display unit 3, allowing the user to visually recognize the motion trajectory T.
[0041] In step S6, the processing unit 5 operates the substrate transport robot 100 on the display unit 3 based on the movement trajectory T displayed on the display unit 3. Specifically, the processing unit 5 operates the substrate transport robot 100 on the display unit 3, for example, when the user presses a play button (not shown) displayed on the display unit 3 by mouse operation. The processing unit 5 operates the modeled robot arm 30 and hand 40 on the display unit 3 along the movement trajectory T so that the hand 40 accesses four access points P1, P2, P3, and P4. In this way, the robot arm 30 and hand 40 operate on the display unit 3 based on the movement trajectory T, allowing the user to visually recognize the movement of the robot arm 30 and hand 40 based on the movement trajectory T.
[0042] In step S7, the processing unit 5 determines whether or not a correction instruction has been given by the user. If the user views the movements of the robot arm 30 and the hand 40 on the display unit 3 and feels that the movements of the robot arm 30 and the hand 40 are inappropriate or feels uncomfortable with the movements of the robot arm 30 and the hand 40, the user gives an instruction to correct the movement trajectory T so as to eliminate the inappropriate or uncomfortable movements. For example, the user may feel that these movements are inappropriate when the robot arm 30 and the hand 40 come very close to the wall 211a of the placement chamber 211 or when the robot arm 30 and the hand 40 appear to be making unnecessary movements.
[0043] In step S7, if the user determines that the movements of the robot arm 30 and hand 40 on the display unit 3 are appropriate and there is no instruction for correction from the user, in step S8, the processing unit 5 determines the movement trajectory T displayed on the display unit 3 as the optimal movement trajectory T. Furthermore, the processing unit 5 creates an operation program for controlling the substrate transport robot 100 in real space based on the determined movement trajectory T of the robot arm 30 and hand 40.
[0044] In step S7, if the user determines that the movements of the robot arm 30 and the hand 40 are inappropriate, the user performs an input operation as a correction instruction to move a point on the movement trajectory T displayed on the display unit 3. Specifically, as shown in Fig. 11 , the user operates the mouse to move a point on the movement trajectory T displayed on the display unit 3 to a desired position by dragging and dropping.
[0045] If a correction instruction is given by the user in step S7, then in step S9, the processing unit 5 corrects the movement trajectory T displayed on the display unit 3. Specifically, the processing unit 5 corrects the movement trajectory T based on the movement information of the movement trajectory T in accordance with the user's correction instruction, and displays a new movement trajectory Ta after correction on the display unit 3. At this time, the corrected movement trajectory Ta may be a movement trajectory T obtained by correcting a part of the movement trajectory T before correction, or may be a movement trajectory T obtained by correcting the entire movement trajectory T before correction. In Fig. 11, the new movement trajectory Ta after correction is represented by a dashed line.
[0046] Furthermore, the processing unit 5 corrects the movement trajectory T of the hand 40 displayed on the display unit 3, and also corrects the movement trajectory of the robot arm 30. That is, the processing unit 5 corrects the calculated movement trajectory of the robot arm 30 to a movement trajectory of the robot arm 30 corresponding to the movement trajectory Ta of the hand 40 after the correction.
[0047] When the processing unit 5 finishes correcting the motion trajectory T in step S9, the process returns to step S6 again. Then, the processing unit 5 operates the substrate transport robot 100 on the display unit 3 based on the corrected motion trajectory Ta displayed on the display unit 3. Then, in step S7, the operations of steps S6, S7, and S9 are repeated until no correction instruction is given by the user.
[0048] Effect of First Embodiment The motion trajectory generation method includes receiving input of three or more access points P to be accessed by the hand 40 in the placement area 210, and calculating, by simulation, an optimized motion trajectory T for all combinations of the three or more access points P based on predetermined conditions including the time required to transport the semiconductor substrate W. As a result, the user only needs to set three or more access points P, and optimized motion trajectories T are automatically calculated for all combinations of the three or more access points P, eliminating the need to set start points and end points for all combinations of the three or more access points P. Therefore, even when there are three or more access points P, the burden on the user for generating the motion trajectories T can be reduced.
[0049] The predetermined condition includes at least one of shortening the time required to access all of the three or more access points P and shortening the time required to access a prioritized access point P among the three or more access points P compared to the other access points P. In this way, if the predetermined condition is to shorten the time required to access all of the three or more access points P, it is possible to minimize the time required to access all of the three or more access points P. Furthermore, if the predetermined condition is to shorten the time required to access a prioritized access point P among the three or more access points P, it is possible to shorten the time required to access the access point P desired by the user.
[0050] The motion trajectory generation method includes accepting a selection of a predetermined condition, which allows the predetermined condition to be changed according to the user's request.
[0051] Calculating the movement trajectory T by simulation includes calculating an optimized movement trajectory T by simulation while passing through preset waypoints that the hand 40 passes through. As a result, the waypoints that the hand 40 passes through are determined in advance, it is possible to reduce the number of options for the movement trajectory T that are searched for during the simulation. This makes it possible to shorten the time required to optimize the movement trajectory T.
[0052] An upper hand 41 and a lower hand 42 are attached to the robot arm 30, and calculating the movement trajectory T by simulation includes calculating, by simulation, an optimized movement trajectory T for each of the upper hand 41 and the lower hand 42. As a result, the movement trajectory T is optimized for each of the upper hand 41 and the lower hand 42, and therefore the movement trajectory T can be calculated more appropriately than when the movement trajectory T is calculated commonly for the upper hand 41 and the lower hand 42.
[0053] Calculating the movement trajectory T by simulation includes calculating an optimized movement trajectory T by simulation by changing the movement speed of the robot arm 30 between a state in which the semiconductor substrate W is held by the hand 40 and a state in which the semiconductor substrate W is not held by the hand 40. For example, if the movement speed of the robot arm 30 is increased when the semiconductor substrate W is held by the hand 40, the semiconductor substrate W may fall off from the hand 40. Furthermore, if the movement speed of the robot arm 30 is decreased when the semiconductor substrate W is not held by the hand 40, the time required to access the access point P increases. Therefore, by calculating an optimized movement trajectory T by simulation by changing the movement speed of the robot arm 30 between a state in which the semiconductor substrate W is held by the hand 40 and a state in which the semiconductor substrate W is not held by the hand 40, it is possible to calculate a movement trajectory T that is optimized in terms of time while preventing the semiconductor substrate W from falling off.
[0054] The placement area 210 includes a placement chamber 211 in which the substrate transfer robot 100 is placed, a FOUP 212 on which a semiconductor substrate W is placed and which serves as an access point P, and a processing device 213 on which processing of the semiconductor substrate W is performed and which also serves as the access point P. Here, because walls exist between the placement chamber 211, the FOUP 212, and the processing device 213, the substrate transfer robot 100 is likely to interfere with the walls. Therefore, optimizing the movement trajectory T of the substrate transfer robot 100 that is placed in the placement chamber 211 and accesses the FOUP 212 and the processing device 213 is particularly effective in suppressing interference.
[0055] Second Embodiment A motion trajectory generating method according to a second embodiment will be described.
[0056] As shown in FIG. 12 , in the second embodiment, unlike the first embodiment, no waypoints are set in advance at each access point P. Note that wait points R1, R2, R3, and R4 are set in advance at each access point P. Then, in step S5 shown in FIG. 5 , calculating the movement trajectory T by simulation includes calculating an optimized movement trajectory T by simulation without restricting the hand 40 to pass through any specific waypoints. That is, the processing unit 5 searches for a movement trajectory T between the access points P that has the shortest access time without setting a common waypoint in the movement trajectory T. In the example shown in FIG. 12 , for example, the movement trajectories T for accessing the access points P2, P3, and P4 from the access point P1 are separate from one another and do not have a common waypoint. Note that wait points R1, R2, R3, and R4 are set in common to the movement trajectory T. Specifically, in the second embodiment, the processing unit 5 randomly generates a large number of patterns of the movement trajectory T that are slightly different from one another, and selects the movement trajectory T that has the shortest access time as the optimized movement trajectory T. 5 represent waypoints of the randomly generated motion trajectory T. The other configurations of the second embodiment are the same as those of the first embodiment.
[0057] [Effects of the Second Embodiment] Calculating the movement trajectory T by simulation includes calculating an optimized movement trajectory T by simulation without restricting the hand 40 to pass through specific way points. This makes it possible to increase the number of options for the movement trajectory T searched for during simulation compared to when the hand 40 passes through specific way points that are determined. As a result, it is possible to calculate a more optimized movement trajectory T. Note that other effects of the second embodiment are similar to those of the first embodiment.
[0058] [Modifications] The embodiments disclosed herein should be considered to be illustrative and not restrictive in all respects. The scope of the present disclosure is defined by the claims, not by the description of the above-mentioned embodiments, and includes all modifications (modifications) within the meaning and scope of the claims.
[0059] For example, in the above first and second embodiments, an example was shown in which the predetermined condition included both shortening the time required to access all of the three or more access points P and shortening the time required to access a prioritized access point P among the three or more access points P compared to the other access points P, but the present disclosure is not limited to this. For example, in the present disclosure, the predetermined condition may include only one of the above two conditions.
[0060] In addition, in the first and second embodiments, examples have been described in which the processing unit 5 accepts the selection of a predetermined condition, but the present disclosure is not limited to this. For example, the predetermined condition may be fixed in advance.
[0061] In the first embodiment, the movement trajectory T passes through both the preset waypoints and the waiting points, but the present disclosure is not limited to this. For example, the movement trajectory T may pass through only the preset waypoints without setting the waiting points.
[0062] In the second embodiment, the movement trajectory T passes through the standby points R1, R2, R3, and R4 that are common to the movement trajectory T. However, the present disclosure is not limited to this. For example, standby points may be set individually for a plurality of movement trajectories T.
[0063] In the first and second embodiments, the hand 40 includes the upper hand 41 and the lower hand 42. However, the present disclosure is not limited to this. For example, the present disclosure may be applied to a substrate transport robot to which only one hand 40 is attached.
[0064] In the first and second embodiments, examples have been shown in which the operation speed of the hand 40 differs between a state in which the semiconductor substrate W is held by the hand 40 and a state in which the semiconductor substrate W is not held by the hand 40, but the present disclosure is not limited to this. For example, in a case in which the semiconductor substrate W is fixed to the hand 40, the operation speed of the hand 40 may be the same between a state in which the semiconductor substrate W is held by the hand 40 and a state in which the semiconductor substrate W is not held by the hand 40.
[0065] In the first and second embodiments, an example has been shown in which the motion trajectory generation method and the motion trajectory generation device 1 generate the motion trajectory T of the substrate transport robot 100 disposed in an EFEM, but the present disclosure is not limited to this. For example, the motion trajectory generation method and the motion trajectory generation device 1 may generate a motion trajectory of the substrate transport robot 100 disposed in an apparatus other than an EFEM.
[0066] Furthermore, in the second embodiment, the processing unit 5 randomly generates a large number of patterns of movement trajectories T that are slightly different from one another. However, the present disclosure is not limited to this. For example, a trained model trained by machine learning may be prepared in advance, in which a large number of patterns of placement areas 210 are input and an optimal movement trajectory T is output. The processing unit 5 may input the placement area 210 set in step S1 of FIG. 5 to the trained model, and use the output movement trajectory T as an initial value to generate a large number of movement trajectories T that are different from one another near the movement trajectory T as the initial value. This may save the effort of searching for the optimal movement trajectory T.
[0067] Furthermore, in the above first and second embodiments, an example has been shown in which the motion trajectory generation method of the present disclosure is executed by the motion trajectory generation device 1 arranged separately from the substrate transport robot 100, but the present disclosure is not limited to this. For example, the control unit 50 of the substrate transport robot 100 or a teaching device that teaches the substrate transport robot 100 may execute the motion trajectory generation method of the present disclosure.
[0068] In the first and second embodiments, the substrate transport robot 100 is an example of a four-axis horizontal articulated robot including the lifting mechanism 20 and the robot arm 30, but the present disclosure is not limited to this. For example, the substrate transport robot 100 may be a three-axis horizontal articulated robot that does not have the lifting mechanism 20.
[0069] In the first and second embodiments, an example is shown in which the placement area 210 includes the placement chamber 211, the hoop 212, and the processing device 213 when calculating the optimal motion trajectory T, but the present disclosure is not limited to this. For example, the placement chamber 211 may include an aligner 214, etc.
[0070] Furthermore, in the first embodiment described above, when calculating the movement trajectory T by simulation, an example has been shown in which an optimized movement trajectory T is calculated by simulation while passing through preset waypoints that the hand 40 passes through. However, the present disclosure is not limited to this. For example, when calculating the movement trajectory by simulation, the waypoints that the hand 40 passes through may be optimized, and an optimized movement trajectory T may be calculated by simulation while passing through the optimized waypoints. That is, in the first embodiment, while the waypoints that the hand 40 passes through are input and set in advance by the user, these waypoints may also be optimized by simulation. This saves the user effort, and because the waypoints are also optimized, a more optimized movement trajectory T can be calculated.
[0071] In the above first and second embodiments, an example has been shown in which the present disclosure is applied to the substrate transport robot 100 that transports the semiconductor substrate W using the hand 40, but the present disclosure is not limited to this. For example, the present disclosure may be applied to a robot that transports a workpiece other than the semiconductor substrate W using an end effector.
[0072] In addition, in the first and second embodiments described above, an example has been shown in which the robot arm 30 is a horizontally articulated robot arm 30, but the present disclosure is not limited to this. For example, the present disclosure may be applied to a vertically articulated robot arm other than a horizontally articulated robot arm.
[0073] In addition, in the first and second embodiments, an example was shown in which the parameter for controlling the movement of the hand 40 was the movement speed, but the present disclosure is not limited to this. For example, acceleration, accuracy, which is the precision of the movement of the hand 40, or the like may be applied as a parameter for controlling the movement of the hand 40.
[0074] In the first and second embodiments, an example has been shown in which the substrate transfer system 200 is an EFEM in which semiconductor substrates W are transferred between the FOUP 212 and the processing equipment 213, but the present disclosure is not limited to this. For example, the present disclosure may be applied to a sorter in which semiconductor substrates W are transferred between FOUPs 212, a stocker in which semiconductor substrates W are transferred between the FOUP 212 and a substrate storage chamber, or a vacuum processing equipment in which semiconductor substrates W are transferred between processing equipment 213.
[0075] Furthermore, in the above explanation, the configuration of the first embodiment and the configuration of the second embodiment are explained separately, but the user may be able to select between the configuration of the first embodiment and the configuration of the second embodiment.
[0076] The functions of the elements disclosed herein can be performed using circuits or processing circuits, including general-purpose processors, special-purpose processors, integrated circuits, ASICs (Application Specific Integrated Circuits), conventional circuits, and / or combinations thereof, configured or programmed to perform the disclosed functions. A processor is considered a processing circuit or circuit because it includes transistors and other circuitry. In this disclosure, a circuit, unit, or means is hardware that performs the recited functions or hardware that is programmed to perform the recited functions. The hardware may be hardware disclosed herein or other known hardware that is programmed or configured to perform the recited functions. Where the hardware is a processor, which is considered a type of circuit, the circuit, means, or unit is a combination of hardware and software, and the software is used to configure the hardware and / or processor.
[0077] Aspects It will be appreciated by those skilled in the art that the exemplary embodiments described above are examples of the following aspects.
[0078] (Aspect 1) A motion trajectory generation method for generating a motion trajectory of a robot including a robot arm to which an end effector that holds a workpiece is attached, the motion trajectory generation method comprising: accepting input of a placement area where the robot arm and the workpiece are to be placed; accepting input of three or more access points in the placement area that the end effector accesses; and calculating, by simulation, a motion trajectory optimized for all combinations of the three or more access points based on predetermined conditions including the time required to transport the workpiece.
[0079] (Aspect 2) The motion trajectory generation method according to aspect 1, wherein the predetermined condition includes at least one of: making the time required to access all of the three or more access points the shortest; and making the time required to access a prioritized access point among the three or more access points shorter than the time required to access the other access points.
[0080] (Aspect 3) The motion trajectory generating method according to aspect 2, further comprising accepting a selection of the predetermined condition.
[0081] (Aspect 4) The motion trajectory generation method according to any one of Aspects 1 to 3, wherein calculating the motion trajectory by simulation includes calculating an optimized motion trajectory by simulation while passing through a preset waypoint that the end effector passes through.
[0082] (Aspect 5) The motion trajectory generation method according to any one of Aspects 1 to 4, wherein calculating the motion trajectory by simulation includes calculating an optimized motion trajectory by simulation without restricting the end effector to passing through specific via points.
[0083] (Aspect 6) The motion trajectory generation method according to any one of Aspects 1 to 5, wherein calculating the motion trajectory by simulation includes optimizing via-points through which the end effector passes, and calculating the optimized motion trajectory by simulation while passing through the optimized via-points.
[0084] (Aspect 7) The motion trajectory generation method according to any one of Aspects 1 to 6, wherein a plurality of the end effectors are attached to the robot arm, and calculating the motion trajectory by simulation includes calculating an optimized motion trajectory for each of the end effectors by simulation.
[0085] (Aspect 8) The motion trajectory generation method according to any one of Aspects 1 to 7, wherein calculating the motion trajectory by simulation includes calculating an optimized motion trajectory by simulation by changing parameters that control the motion of the end effector for a state in which the workpiece is held by the end effector and a state in which the workpiece is not held by the end effector.
[0086] (Aspect 9) The motion trajectory generation method according to any one of Aspects 1 to 8, wherein the workpiece includes a semiconductor substrate, the end effector includes a hand, and the robot arm includes a horizontal articulated robot arm.
[0087] (Aspect 10) The motion trajectory generation method according to aspect 9, wherein the placement area includes at least one of: a placement chamber in which the robot is placed; a FOUP on which the semiconductor substrate is placed; and a processing device that performs processing on the semiconductor substrate.
[0088] (Aspect 11) A motion trajectory generation device that generates a motion trajectory of a robot including a robot arm to which an end effector that holds a workpiece is attached, the motion trajectory generation device comprising: an input unit for inputting a placement area where the robot arm and the workpiece are placed, and three or more access points in the placement area that the end effector accesses; and a processing unit that executes the following processes: a process for accepting the placement area input to the input unit; a process for accepting the three or more access points input to the input unit; and a process for calculating, by simulation, a motion trajectory that is optimized for all combinations of the three or more access points based on predetermined conditions including the time required to transport the workpiece.
Claims
1. A motion trajectory generation method for generating a motion trajectory of a robot including a robot arm to which an end effector that holds a workpiece is attached, the motion trajectory generation method comprising: receiving an input of a placement area in which the robot arm and the workpiece are placed; receiving an input of three or more access points in the placement area through which the end effector accesses; and calculating by simulation a motion trajectory optimized for all combinations of the three or more access points based on specified conditions including the time required to transport the workpiece.
2. The motion trajectory generating method of claim 1, wherein the specified condition includes at least one of: making the time required to access all of the three or more access points the shortest; and making the time required to access a prioritized access point among the three or more access points shorter than the time required to access the other access points.
3. The motion trajectory generating method according to claim 2, further comprising accepting a selection of the predetermined condition.
4. A movement trajectory generating method as described in claim 1, wherein calculating the movement trajectory by simulation includes calculating an optimized movement trajectory by simulation while passing through predetermined waypoints that the end effector passes through.
5. A movement trajectory generating method as described in claim 1, wherein calculating the movement trajectory by simulation includes calculating an optimized movement trajectory by simulation without restricting the end effector to passing through any specific intermediate points.
6. A movement trajectory generating method as described in claim 1, wherein calculating the movement trajectory by simulation includes optimizing via-points through which the end effector passes, and calculating the optimized movement trajectory by simulation while passing through the optimized via-points.
7. The movement trajectory generating method according to claim 1, wherein a plurality of end effectors are attached to the robot arm, and calculating the movement trajectory by simulation includes calculating an optimized movement trajectory for each end effector by simulation.
8. A motion trajectory generating method as described in claim 1, wherein calculating the motion trajectory by simulation includes calculating an optimized motion trajectory by simulation by changing parameters that control the operation of the end effector for a state in which the workpiece is held by the end effector and a state in which the workpiece is not held by the end effector.
9. The motion trajectory generating method according to claim 1, wherein the workpiece includes a semiconductor substrate, the end effector includes a hand, and the robot arm includes a horizontal articulated robot arm.
10. The motion trajectory generating method according to claim 9, wherein the placement area includes at least one of: a placement chamber in which the robot is placed; a FOUP on which the semiconductor substrate is placed; and a processing device in which processing is performed on the semiconductor substrate.
11. A motion trajectory generating device that generates a motion trajectory of a robot including a robot arm to which an end effector that holds a workpiece is attached, the motion trajectory generating device comprising: an input unit for inputting a placement area in which the robot arm and the workpiece are placed, and three or more access points in the placement area through which the end effector accesses; and a processing unit that executes the following processes: a process for accepting the placement area input to the input unit; a process for accepting the three or more access points input to the input unit; and a process for calculating by simulation a motion trajectory optimized for all combinations of the three or more access points based on specified conditions including the time required to transport the workpiece.
Citation Information
Patent Citations
Generation and control method of working track of robot hand
JP2003280710A
Simulation system and program
JP2010214556A
Control device, robot system, robot, robot operation information generation method, and program
JP2015058492A
Articulated robot and method of controlling articulated robot
JP2016120581A
Information processing device, information processing method, article manufacturing method, program, recording medium and system
JP2023057024A