Teaching device for robot and teaching program for robot

A teaching device is a teaching device for a robot including a base, an arm having a plurality of links coupled to each other and coupled to the base, and a hand coupled to the arm. The teaching device includes a setter that sets a predetermined condition including start and end points of the hand in predetermined movement of the arm, and a deriver that derives a movement trajectory of the hand from the start point to the end point and a movement trajectory of the arm according to the movement trajectory of the hand based on the predetermined condition while changing the position of the base.

FIELD

The present application relates to a robot teaching device and a robot teaching program.

BACKGROUND

Typically, a teaching device for teaching predetermined movement to a robot has been known. For example, a teaching device (an operation device) disclosed in Patent Document 1 reproduces movement of a robot model on a touch screen based on a movement trajectory obtained from set start and end points, thereby checking movement of the robot model.

CITATION LIST

Patent Document

SUMMARY OF THE INVENTION

In the above-described teaching device, the movement trajectory of the robot is generated based on the position of the robot determined in advance by, e.g., a user, and for this reason, is not enough in terms of optimality.

The technique disclosed in the present application has been made in view of the above-described situation, and an object thereof is to provide a teaching device capable of deriving a more-optimal movement trajectory of a robot.

The technique disclosed in the present application is a teaching device for a robot including a base, an arm having a plurality of links coupled to each other and coupled to the base, and an end effector coupled to the arm. The teaching device for the robot includes a setter and a deriver. The setter sets a predetermined condition including start and end points of the end effector in predetermined movement of the arm. The deriver derives a movement trajectory of the end effector from the start point to the end point and a movement trajectory of the arm according to the movement trajectory of the end effector based on the predetermined condition while changing the position of the base.

Another technique disclosed in the present application is a teaching program for a robot including a base, an arm having a plurality of links coupled to each other and coupled to the base, and an end effector coupled to the arm. The teaching program for the robot causes a computer to implement a function of setting a predetermined condition including start and end points of the end effector in predetermined movement of the arm and a function of deriving a movement trajectory of the end effector from the start point to the end point and a movement trajectory of the arm according to the movement trajectory of the end effector based on the predetermined condition while changing the position of the base.

According to the above-described robot teaching device, the more-optimal movement trajectory of the robot (the arm and the end effector) can be derived.

According to the above-described robot teaching program, the more-optimal movement trajectory of the robot (the arm and the end effector) can be derived.

DESCRIPTION OF EMBODIMENTS

Hereinafter, an exemplary embodiment will be described in detail based on the drawings.

As shown inFIG.1, a teaching device30of the present embodiment is communicably connected to a robot control device20, and the robot control device20is communicably connected to a robot10. The teaching device30is a device for teaching predetermined movement to the robot10.

The robot10shown inFIG.1is one example of a robot as a target of the teaching device30. The robot10is a horizontal articulated robot (a SCARA robot). The robot10has a base11, an arm12having a plurality of links12a,12bcoupled to each other and coupled to the base11, and hands13coupled to the arm12. The arm12is coupled to the base11so as to rotate in the horizontal direction. The hand13is one example of an end effector.

The arm12of the present embodiment includes two links12a,12b. Two links12a,12bare coupled to each other so as to rotate in the horizontal direction. Two links12a,12bare in this order from a base11side. The link12ais coupled to the base11so as to rotate about a first axis L1extending in the vertical direction. The link12bis coupled to the link12aso as to rotate about a second axis L2extending in the vertical direction.

The robot10has two hands13, i.e., an upper hand13aand a lower hand13b. The upper hand13aand the lower hand13bhave the same basic configuration. The hand13is in a plate shape extending in the horizontal direction, and on a tip end side thereof, is in a forked shape. That is, the hand13is substantially in a Y-shape as viewed in a thickness direction thereof. The upper hand13aand the lower hand13bare coupled to the second link12bso as to rotate in the horizontal direction about a third axis L3extending in the vertical direction. The first axis L1, the second axis L2, and the third axis L3extend parallel with each other.

The first link12a, the second link12b, the upper hand13a, and the lower hand13bare stacked on each other in this order from the bottom to the top. Although not shown in the figure, the robot10has a plurality of motors that rotatably drives two links12a,12band two hands13. The robot10of the present embodiment delivers a target (a substrate S) with the target being on an upper surface of the hand13in an unfixed manner. That is, the target is merely on the upper surface of the hand13, and is not held by the hand13.

The robot10of the present embodiment is, for example, used for a substrate delivery system1that delivers the substrate S. An outline configuration of the substrate delivery system1will be described with reference toFIG.6schematically showing the substrate delivery system1.

The substrate delivery system1includes a housing2, and the robot10is in the housing2. The substrate delivery system1is, for example, an equipment front end module (EFEM). The housing2is substantially in a rectangular parallelepiped shape. The inside of the housing2is a cleaned delivery space3. That is, the robot10delivers the substrate S in the delivery space3. For example, the substrate S is a discoid semiconductor wafer.

The substrate delivery system1includes a plurality (two in the present embodiment) of front opening unified pods (FOUPs)4and a plurality (two in the present embodiment) of processing devices5. The plurality of FOUPs4is adjacent to one side wall of the housing2. The plurality of processing devices5is adjacent to a side wall of the housing2facing the side wall to which the FOUPs4are adjacent. The FOUPs4and the processing devices5are outside the housing2, and the inside thereof can communicate with the inside (the delivery space3) of the housing2. The FOUP4houses a plurality of substrates S in the horizontal posture at equal intervals in the vertical direction. The processing device5is a processing device that performs various types of processing such as heat treatment, impurity introduction, and thin film formation for the substrate S.

In the substrate delivery system1configured as described above, the robot10delivers the substrate S between the FOUP4housing the substrates S and the processing device5processing the substrate S. That is, the arm12and the hand13deliver the substrate S between the FOUP4and the processing device5.

<Configuration of Teaching Device>

As shown inFIG.2, the teaching device30includes an inputter31, a communicator32, a display33, a storage34, and a processor35.

The inputter31receives input operation from a user. The inputter31outputs an input signal corresponding to the input operation to the processor35. For example, the inputter31is a keyboard or a mouse.

The communicator32is an interface that communicates with the robot control device20. For example, the communicator32is a cable modem, a software modem, or a wireless modem.

The display33displays at least one of a movement trajectory of the arm12or a movement trajectory of the hand13, the movement trajectories being derived by the later-described processor35(a deriver352). Further, the display33also displays a robot model of the robot10. The display33is, for example, a liquid crystal display or an organic EL display.

The storage34is a computer readable storage medium that stores various programs and various types of data. The storage34is a magnetic disk such as a hard disk, an optical disk such as a CD-ROM or a DVD, or a semiconductor memory.

The storage34stores a trajectory derivation program341etc. The trajectory derivation program341is a teaching program causing a computer, i.e., the processor35, to implement various functions of deriving an optimal movement trajectory of the hand13and an optimal movement trajectory of the arm12(i.e., the links12a,12b) according to the movement trajectory of the hand13based on a given predetermined condition. The trajectory derivation program341is read and executed by the processor35. The trajectory derivation program341is, for example, built based on a genetic algorithm.

The processor35has various processors such as a central processing unit (CPU), a graphics processing unit (GPU), and/or a digital signal processor (DSP), and various semiconductor memories such as a random access memory (RAM) and/or a read only memory (ROM). The processor35reads, e.g., the trajectory derivation program341from the storage34, thereby implementing various functions of deriving the optimal movement trajectories of the arm12and the hand13. The processor35has, as functional blocks, a setter351, the deriver352, a reproducer353, a corrector354, and a movement program producer355.

The setter351sets the predetermined condition (hereinafter also referred to as a movement condition) including start and end points of the hand13in predetermined movement of the arm12. Specifically, the setter351receives, from the inputter31, the input signal corresponding to the user's input operation and indicating the movement condition, thereby setting the movement condition.

The deriver352derives, based on the predetermined condition (the movement condition), the movement trajectory of the hand13from the start point to the end point and the movement trajectory of the arm12according to the movement trajectory of the hand13. More specifically, the deriver352derives, based on the movement condition set by the setter351, the movement trajectory of the hand13from the start point to the end point and the movement trajectory of the arm12according to the movement trajectory of the hand13while changing the position of the base11. That is, the deriver352derives the movement trajectories of the hand13and the arm12matching the movement condition, taking the position of the base11as one parameter. The deriver352reads the trajectory derivation program341from the storage34, thereby deriving the movement trajectories of the hand13etc.

The reproducer353causes the robot model to move on the display33based on the movement trajectory derived by the deriver352. Specifically, the reproducer353causes an arm and a hand of the robot model based on the movement trajectory of the hand13or the arm12displayed on the display33. That is, the reproducer353may cause the robot model on the display33to move based on the movement trajectory derived by the deriver352, or may cause the robot model on the display33to move based on a movement trajectory corrected by the later-described corrector354.

The corrector354corrects, according to user's input operation, the movement trajectory displayed on the display33. More specifically, the corrector354corrects the movement trajectory according to a user's input operation (correction instruction) of moving a point on the movement trajectory displayed on the display33or the base11displayed on the display33. That is, the user moves the point on the movement trajectory displayed on the display33or the base11displayed on the display33, and accordingly, the corrector354corrects the movement trajectory. As one example, the input operation (the correction instruction) is an operation (instruction) of the user moving the point on the movement trajectory displayed on the display33or the base11displayed on the display33by drag-and-drop.

When the movement trajectories of the hand13and the arm12derived by the deriver352are determined, the movement program producer355produces a movement program causing the robot10to move based on the determined movement trajectories of the hand13and the arm12. The produced movement program is transmitted to the robot control device20. The robot control device20controls movement of the robot10based on the movement program received from the teaching device30.

Movement trajectory derivation operation in the teaching device30(the processor35) will be described with reference to a flowchart ofFIG.3.

First, in Step S1, the setter351sets a movable area of the robot10. Specifically, the setter351sets movable areas of the arm12and the hand13according to the user's input operation via the inputter31. In the present embodiment, the housing2(i.e., the delivery space3) in which the robot10is present is set as the movable area.

As shown inFIG.4, the user operates the mouse to move a mouse pointer Q from the upper left to the lower right on the display33, thereby generating a rectangular frame-shaped model (hereinafter referred to as a housing2) of the housing2, for example. Accordingly, the setter351sets the housing2displayed on the display33as the movable area.

Note that the rectangular frame-shaped model of the housing2may be generated on the display33by input of a coordinate value via the keyboard by the user instead of the above-described mouse operation, for example. In this case, a coordinate input window is displayed on the display33, and the user inputs the coordinate value to the coordinate input window, for example.

Subsequently, in Step S2, the setter351sets the start and end points of the hand13. Specifically, the setter351sets, according to the user's input operation via the inputter31, a plurality (four in the present embodiment) of teaching points P1to P4as the start and end points of the hand13.

As shown inFIGS.5and6, the user operates the mouse to specify four teaching points P1to P4on the display33. Although not shown in the figure, icons each indicating the teaching points P1to P4are displayed on the display33. The user moves, with the pointer Q, the icons each indicating the teaching points P1to P4to predetermined positions on the display33, thereby specifying the teaching points P1to P4. In the present embodiment, the teaching point P1is specified as the start point, and the teaching point P4is specified as the end point, for example. By such user's input operation, the setter351sets the start and end points of the hand13.

On the display33, the user specifies the teaching points P1to P4as described above, and accordingly, models of the FOUPs4and the processing devices5are automatically generated. In the present embodiment, the FOUPs4are generated at the positions of the teaching points P1, P2, and the processing devices5are generated at the positions of the teaching points P3, P4. Note that also in Step S2, the user may specify the teaching points P1to P4on the display33by input of a coordinate value via the keyboard instead of mouse operation. Also in this case, when the teaching points P1to P4are specified, the models of the FOUPs4etc. are automatically generated on the display33.

Subsequently, in Step S3, the setter351sets the predetermined condition (the movement condition) other than the above-described movable area and the above-described start and end points of the hand13. The setter351sets the predetermined condition by the user's input operation via the inputter31. The predetermined condition (the movement condition) includes, for example, the upper limit of the movement addition-subtraction speed (the acceleration and the deceleration in movement) of the hand13, the upper limits of the speeds of the arm12and the hand13, the upper limit of the number of passing points from the start point to the end point, and the available rotation angles of the links12a,12b.

As the upper limit of the movement addition-subtraction speed of the hand13, different numerical values may be set between a state in which the substrate S is on the hand13and a state in which the substrate S is not on the hand13. That is, when the substrate S is on the hand13, the upper limit of the movement addition-subtraction speed is set lower than that when the substrate S is not on the hand13. Further, the predetermined condition includes a condition where the arm12and the hand13do not contact, e.g., a wall of the housing2. The user can select and input the above-described predetermined condition, as necessary.

Subsequently, in Step S4, the robot model of the robot10is temporarily arranged on the display33. As shown inFIG.6, the user operates the mouse to display the robot model on the display33. Note that reference numerals similar to those of the robot10shown inFIG.1are assigned to the robot model shown inFIGS.6to10. Then, the user operates the mouse to temporarily arrange, with the pointer Q, the base11of the robot10at an optional position on the display33. Note that temporary arrangement of the robot10may also be performed by input of a coordinate value.

Subsequently, in Step S5, the deriver352derives the movement trajectory of the hand13from the start point (the teaching point P1) to the end point (the teaching point P4) and the movement trajectory of the arm12according to the movement trajectory of the hand13based on the predetermined condition set by the setter351. Specifically, the deriver352starts the movement trajectory derivation operation when the user clicks, by mouse operation, an “optimization button” (not shown) displayed on the display33, for example. The deriver352derives the movement trajectory of the hand13matching the predetermined condition and the movement trajectory of the arm12according to the movement trajectory of the hand13while changing the position of the base11. In this manner, the movement trajectories of the hand13etc. are derived while the position of the base11is changed, and therefore, more-optimal movement trajectories are derived as compared to a case where a hand movement trajectory is derived with a base position fixed, for example.

Then, after the movement trajectories of the hand13etc. have been derived by the deriver352, the display33displays at least one of the movement trajectory of the hand13or the movement trajectory of the arm12, the movement trajectories being derived by the deriver352. In the present embodiment, the display33displays, as one example, a movement trajectory T of the hand13from the start point (the teaching point P1) to the end point (the teaching point P4), as shown inFIG.7. In this case, on the display33, the robot10(the base11) is arranged at a position employed as a parameter in derivation of the movement trajectory T of the hand13. The movement trajectory derived by the deriver352is displayed on the display33as described above so that the user can view the movement trajectory.

Subsequently, in Step S6, the reproducer353causes the robot10to move on the display33based on the movement trajectory T displayed on the display33. Specifically, the reproducer353causes the robot10to move on the display33when the user clicks, by mouse operation, a “reproduction button” (not shown) displayed on the display33, for example. As shown inFIG.7, the reproducer353causes the arm12and the hand13to move on the display33such that the hand13moves along the movement trajectory T from the start point to the end point. That is, the reproducer353causes the arm12and the hand13to move on the display33based on the movement trajectories of the hand13and the arm12derived by the deriver352. In this manner, the arm12and the hand13move based on the movement trajectory T on the display33so that the user can view movement of the arm12and the hand13based on the movement trajectory T.

Subsequently, in Step S7, the corrector354determines whether or not there has been a user's correction instruction. For example, in a case where the user views movement of the arm12and the hand13on the display33and feels that such movement is not proper or has a feeling of strangeness on such movement, the user issues an instruction to correct the movement trajectory T such that such movement is improved. For example, in a case where the arm12or the hand13seems to be extremely close to a wall of the housing2or seems to move in a wasteful manner, the user feels that such movement is not proper. That is, the user visually checks movement of the arm12and the hand13, and determines whether or not the user issues the correction instruction.

In Step S7, in a case where there has been no user's correction instruction, i.e., a case where the user has determined that movement of the arm12and the hand13on the display33is proper (the user has no feeling of strangeness on movement of the arm12and the hand13), the corrector354determines the movement trajectory T displayed on the display33as an optimal movement trajectory (Step S8). In this case, the corrector354also determines, as an optimal movement trajectory, the movement trajectory of the arm12derived by the deriver352, i.e., the movement trajectory of the arm12according to the movement trajectory T of the hand13.

In the present embodiment, in a case where the user has felt that movement of the arm12and the hand13on the display33is not proper (the user had a feeling of strangeness on movement of the arm12and the hand13), the user performs an input operation (correction instruction) of moving a point on the movement trajectory T displayed on the display33. Specifically, as shown inFIG.8, the user operates the mouse to move the point on the movement trajectory T displayed on the display33to a desired position by drag-and-drop.

In a case where there has been the user's correction instruction in Step S7, the processing proceeds to Step S9. In Step S9, the corrector354corrects the movement trajectory T displayed on the display33. Specifically, the corrector354corrects the movement trajectory T based on information on movement of the movement trajectory T according to the user's correction instruction, and displays a new corrected movement trajectory Ta on the display33. In this case, the corrected movement trajectory Ta may be one obtained by correction of part of the pre-corrected movement trajectory T or one obtained by correction of the entirety of the pre-corrected movement trajectory T.

The corrector354corrects not only the movement trajectory T of the hand13displayed on the display33, but also the movement trajectory of the arm12. That is, the corrector354corrects the movement trajectory (i.e., the movement trajectory of the arm12according to the pre-corrected movement trajectory T of the hand13) of the arm12derived by the deriver352to the movement trajectory of the arm12according to the corrected movement trajectory Ta of the hand13.

As described above, the user can issue the correction instruction while viewing the movement trajectory T displayed on the display33, and therefore, can more finely correct the movement trajectory T according to a user's intention. Moreover, the user can correct the movement trajectory T by an easy method of moving the point on the movement trajectory T displayed on the display33.

After the corrector354has corrected the movement trajectory T in Step S9, the processing returns to Step S6again, and the reproducer353causes the robot10to move on the display33based on the corrected movement trajectory Ta displayed on the display33. That is, the reproducer353causes the arm12and the hand13to move on the display33such that the hand13moves along the corrected movement trajectory Ta from the start point to the end point. In other words, the reproducer353causes the arm12and the hand13to move on the display33based on the movement trajectories of the hand13and the arm12corrected by the corrector354. In this manner, the arm12and the hand13move on the display33based on the corrected movement trajectory Ta so that the user can view movement of the arm12and the hand13based on the corrected movement trajectory Ta.

In a case where there has been the user's correction instruction in Step S7again, i.e., in a case where the user has performed again an input operation (correction instruction) of moving a point on the corrected movement trajectory Ta displayed on the display33, the processing proceeds to Step S9again. That is, the flow from Step S9to Step S6is basically repeated as long as the user does not determine that movement of the arm12and the hand13reproduced by the reproducer353is proper. In other words, the user can continuously correct the movement trajectory of the hand13and the movement trajectory of the arm12until the user feels that movement of the arm12and the hand13reproduced by the reproducer353is proper.

In a case where there has been no user's correction instruction in Step S7, i.e., a case where the user has determined that movement of the arm12and the hand13based on the corrected movement trajectory Ta is proper (the user has no feeling of strangeness on movement of the arm12and the hand13), the corrector354determines, as an optimal movement trajectory, the corrected movement trajectory Ta displayed on the display33(Step S8). In this case, the corrector354also determines, as an optimal movement trajectory, the corrected movement trajectory (i.e., the movement trajectory of the arm12according to the corrected movement trajectory Ta of the hand13) of the arm12. Then, the movement trajectory derivation operation ends.

The movement program producer355produces a movement program for controlling the robot10in an actual space based on the movement trajectories of arm12and the hand13determined by the processor35. Then, the movement program producer355transmits the produced movement program to the robot control device20via the communicator32. The robot control device20controls the robot10in the actual space based on the movement program received from the teaching device30.

In this manner, the movement trajectory of the robot10in the actual space is optimized under the predetermined condition (the movement condition). For the robot10of this type, there has been a demand for shortening a movement time of the hand13from the start point to the end point as much as possible. If such a demand is not taken into consideration, the movement addition-subtraction speed of the hand13tends to be high, and for this reason, there is a probability that the substrate S drops from the substrate S. Particularly, in the case of the robot10that delivers the substrate S with the substrate S being on the upper surface of the hand13in an unfixed manner as in the present embodiment, the above-described probability becomes prominent. For this reason, the setter351sets the upper limit of the movement addition-subtraction speed of the hand13such that dropping of the substrate S is prevented, and accordingly, an optimal movement trajectory in which the movement time of the hand13is the shortest is derived within a range in which the substrate S does not drop from the hand13.

As described above, the teaching device30of the embodiment is the teaching device for the robot10including the base11, the arm12having the plurality of links12a,12bcoupled to each other and coupled to the base11, and the hands13(the end effectors) coupled to the arm12. The teaching device30includes the setter351that sets the predetermined condition including the start and end points of the hand13in the predetermined movement of the arm12, and the deriver352that derives the movement trajectory of the hand13from the start point to the end point and the movement trajectory of the arm12according to the movement trajectory of the hand13based on the predetermined condition while changing the position of the base11.

The trajectory derivation program341of the embodiment is the teaching program for the robot10including the base11, the arm12having the plurality of links12a,12bcoupled to each other and coupled to the base11, and the hands13(the end effectors) coupled to the arm12. The trajectory derivation program341causes the computer to implement a function of setting the predetermined condition including the start and end points of the hand13in the predetermined movement of the arm12and a function of deriving the movement trajectory of the hand13from the start point to the end point and the movement trajectory of the arm12according to the movement trajectory of the hand13based on the predetermined condition while changing the position of the base11.

According to these configurations, the movement trajectory of the hand13and the movement trajectory of the arm12are derived taking the position of the base11as one parameter, and therefore, a more-optimal movement trajectory of the hand13and a more-optimal movement trajectory of the arm12can be derived as compared to a typical form in which a hand movement trajectory is derived under a condition where a base position is fixed. In other words, an optimal position of the base11can be derived.

The teaching device30of the above-described embodiment further includes the display33that displays the movement trajectory of the hand13derived by the deriver352, and the corrector354that corrects the movement trajectory of the hand13displayed on the display33according to the user's input operation.

According to the above-described configuration, the user can issue the correction instruction (input operation) while viewing the movement trajectory displayed on the display33, and therefore, the movement trajectory can be more finely and easily corrected according to the user's intention.

The corrector354corrects the movement trajectory of the hand13according to a user's correction instruction (input operation) of moving the point on the movement trajectory of the hand13displayed on the display33.

According to the above-described configuration, the user can finely correct the movement trajectory by an easy method of moving the point on the movement trajectory displayed on the display33.

The teaching device30of the above-described embodiment further includes the reproducer353that causes the robot model (the hand13and the arm12) to move on the display33based on the movement trajectory derived by the deriver352.

According to the above-described configuration, the user can issue the correction instruction (input operation) after having viewed movement of the arm12and the hand13reproduced by the reproducer353, and therefore, the movement trajectory can be more finely corrected according to the user's intention.

Particularly, the reproducer353causes the robot model (the hand13and the arm12) to move in a state in which the movement trajectory T derived by the deriver352or the movement trajectory Ta corrected by the corrector354is displayed on the display33. Thus, the user can clearly view a correspondence relationship between the movement trajectory T (the movement trajectory Ta) and movement of the robot model, and therefore, can more finely correct the movement trajectory T (the movement trajectory Ta) according to the user's intention.

The user's correction instruction (input operation) is an instruction of the user moving the point on the movement trajectory displayed on the display33by drag-and-drop.

According to the above-described configuration, the movement trajectory can be more easily corrected.

The robot10delivers the substrate S (the target) with the substrate S being on the upper surface of the hand13in an unfixed manner. The predetermined condition set by the setter351includes the upper limit of the movement addition-subtraction speed of the hand13.

According to the above-described configuration, an optimal movement trajectory in which the movement time of the hand13from the start point to the end point is the shortest can be derived within a range in which the substrate S does not drop from the hand13.

In the case of targeting the robot10having two hands13as the end effectors as in the above-described embodiment, the deriver352derives the movement trajectories of the hands13etc., taking also the postures of two hands13at the start and end points (i.e., the FOUP4and the processing device5) into consideration. The postures of two hands13include, for example, a state in which the upper hand13aenters the FOUP4and the lower hand13bis rotated 90 degrees rightward or leftward without entering the FOUP4, a state in which the lower hand13benters the FOUP4and the upper hand13ais rotated 90 degrees rightward or leftward without entering the FOUP4, and a state in which both the upper hand13aand the lower hand13benter the FOUP4. These postures of two hands13at the start and end points are taken into consideration so that more-optimal movement trajectories of the hands13etc. can be derived.

Other Embodiments

The embodiment has been described above as an example of the technique disclosed in the present application. However, the technique in the present disclosure is not limited to above, and is also applicable to embodiments to which changes, replacements, additions, omissions, etc. are made as necessary. The components described above in the embodiment may be combined to form a new embodiment. The components shown in the attached drawings and described in detail may include not only components essential for solving the problems, but also components that are provided for describing an example of the above-described technique and are not essential for solving the problems. Thus, description of these non-essential components in detail and illustration of these components in the attached drawings shall not be interpreted that these non-essential components are essential.

In the above-described embodiment, the deriver352may derive the movement trajectory of the hand13from the start point to the end point and the movement trajectory of the arm12according to the movement trajectory of the hand13while changing not only the position of the base11but also the lengths of the links12a,12bof the arm12. According to this configuration, the movement trajectories of the hand13etc. are derived also taking the lengths of the links12a,12bas one parameter, and therefore, a more-optimal movement trajectory of the hand13and a more-optimal movement trajectory of the arm12can be derived. In other words, optimal lengths of the links12a,12bcan be derived.

In the above-described embodiment, the deriver352may derive the movement trajectory of the hand13from the start point to the end point and the movement trajectory of the arm12according to the movement trajectory of the hand13while changing not only the position of the base11but also the orientation of the base11(i.e., the orientation of the robot10). According to this configuration, the movement trajectories of the hand13etc. are derived also taking the orientation of the base11as one parameter, and therefore, a more-optimal movement trajectory of the hand13and a more-optimal movement trajectory of the arm12can be derived. In other words, an optimal orientation of the base11can be derived.

In the above-described embodiment, the deriver352may display both the derived movement trajectory of the hand13and the derived movement trajectory of the arm12on the display33, or may display only the movement trajectory of the arm12on the display33.

In the above-described embodiment, the corrector354may correct the movement trajectory according to a user's correction instruction (input operation) of moving the base11displayed on the display33. In this case, the user issues the correction instruction by operating the mouse to move the base11displayed on the display33by drag-and-drop, for example.

In the above-described embodiment, the movement trajectory T derived by the deriver352may be a trajectory connecting a plurality of passing points X, as shown inFIG.9. In this case, the point, which is moved according to the user's correction instruction (input operation), on the movement trajectory T is a passing point X. For example, in a case where the setter351has set “a plurality of passing points is present” as the predetermined condition, the deriver352derives an optimal movement trajectory T of the hand13including the plurality of passing points X, and displays such a movement trajectory on the display33. For example, the passing point X is displayed larger than other points on the movement trajectory T.

In this case, in a case where the user has felt that movement of the arm12and the hand13reproduced by the reproducer353is not proper, the user issues a correction instruction (input operation) of moving the passing point X on the movement trajectory T displayed on the display33by drag-and-drop (seeFIG.9), for example. The corrector354corrects the movement trajectory T displayed on the display33according to this user's correction instruction. That is, the corrector354corrects the movement trajectory T based on information on movement of the passing point X according to the user's correction instruction, i.e., information on the position of a passing point Xa after movement of the passing point X, and displays the new corrected movement trajectory Ta on the display33. The corrected movement trajectory Ta includes the moved passing point Xa.

According to this configuration, the user can simply grasp which point on the movement trajectory T displayed on the display33needs to be moved. Moreover, the number of points, which can be moved, on the movement trajectory T is decreased, and accordingly, a throughput necessary for correction by the corrector354can be reduced.

In the above-described embodiment, the corrector354may correct the movement trajectory T displayed on the display33according to a user's correction instruction (input operation) of moving the arm12(i.e., the links12a,12b) displayed on the display33. That is, as shown inFIG.10, the user issues the correction instruction (input operation) by operating the mouse to move the second link12bdisplayed on the display33by drag-and-drop, for example. The corrector354corrects the movement trajectory T based on information on movement of the second link12baccording to the user's correction instruction, and displays a new corrected movement trajectory (not shown) on the display33. For example, the above-described information on movement of the second link12bincludes information on the position of the second link12bafter movement and information on the position of the hand13moved in association with movement of the second link12b.

In the above-described embodiment, the reproducer353may be omitted. In this case, the user determines whether or not a correction instruction is to be issued while viewing the movement trajectory displayed on the display33. Moreover, the display33or the corrector354may be omitted.

The user's correction instruction (input operation) is not limited to operation via the mouse. For example, the user may input a coordinate value via the keyboard, thereby moving, e.g., the movement trajectory displayed on the display33.

The reproducer353may cause the robot model (the hand13and the arm12) to move in a state in which the movement trajectory T derived by the deriver352or the movement trajectory Ta corrected by the corrector354is not displayed on the display33.

The setter351may set the “presence or absence of the substrates S on two hands13” as the predetermined condition. In this case, four condition patterns are set according to the presence or absence of the substrates S on two hands13. That is, these four condition patterns include a condition where “the substrate S is on the upper hand13aand no substrate S is on the lower hand13b,” a condition where “no substrate S is on the upper hand13aand the substrate S is on the lower hand13b,” a condition where “the substrates S are on both the upper hand13aand the lower hand13b,” and a condition where “no substrates S are on both the upper hand13aand the lower hand13b.” The deriver352derives an optimal movement trajectory for each of these four condition patterns, and displays such a movement trajectory on the display33. The user selects one movement trajectory from four movement trajectories, and as necessary, issues an instruction to correct the selected movement trajectory.

DESCRIPTION OF REFERENCE CHARACTERS