Device and method for controlling operation of robot, device and method for generating operation program, computer program, and operation program

The system stabilizes multi-degree-of-freedom robot operations by using two control methods with predetermined conditions, preventing instability at singularities and ensuring smooth operation.

JP7712429B2Active Publication Date: 2025-07-23FANUC LTD
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
JP2024093819
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-06-10
Publication Date
2025-07-23
Estimated Expiration
2043-04-24

AI Technical Summary

Technical Problem

Conventional multi-degree-of-freedom robots can become unstable due to singularities, and switching between control methods during operation can lead to instability.

Method used

A system that includes a first control method for multiple degrees of freedom and a second control method for fewer degrees of freedom, with predetermined conditions for switching, an input reception unit, a condition determination unit, and an operation command unit to ensure stable operation by adhering to these conditions.

Benefits of technology

Stabilizes robot operation by preventing instability at singularities and ensuring smooth operation by allowing switching only when conditions are met, enabling operation at arbitrary positions without encountering singularities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007712429000001
    Figure 0007712429000001
  • Figure 0007712429000002
    Figure 0007712429000002
  • Figure 0007712429000003
    Figure 0007712429000003
Patent Text Reader

Abstract

To solve a conventional problem that the action of a robot with a multi degree of freedom used to be instable owing to significant points and the like.SOLUTION: A device 100 which generates an operation program OP for regulating actions of a robot 12 having a multi degree of freedom comprises: an input receiving part 62, receiving the input for designating one of a first control system for realizing actions with a multi degree of freedom, and a second control system for realizing actions with a degree of freedom one or more less than the first control system; and a program setting part 68 for designating, according to the input which the input receiving part 62 has received, one of the first control system and the second control system for the operation program. The operation program makes the robot 12 execute actions on the first control system or the second control system designated by the program setting part 68.SELECTED DRAWING: Figure 7
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to an apparatus and method for controlling the operation of a robot, an apparatus and method for generating an operation program, a computer program, and an operation program.

Background Art

[0002] When executing an operation program for causing a robot to execute work, a technique for switching between a 5-axis control program and a 6-axis control program is known (for example, Patent Document 1).

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] Conventionally, the operation of a multi-degree-of-freedom robot may become unstable due to singularities or the like. Also, when switching the control method during the execution of one operation program, the operation of the robot may become unstable.

Means for Solving the Problems

[0005] In one aspect of the present disclosure, an apparatus for controlling the operation of a robot having multiple degrees of freedom includes a first control method for realizing an operation with multiple degrees of freedom and a second control method for realizing an operation with one or more fewer degrees of freedom than the first control method, wherein a condition for permitting the operation by the second control method is predetermined. An input reception unit that receives an input designating one of the second control methods, an operation command unit that causes the robot to execute an operation by the first control method or the second control method designated by the input received by the input reception unit, and a condition determination unit that determines whether the condition is satisfied when the operation command unit executes an operation by the second control method. When it is determined by the condition determination unit that the condition is not satisfied, the operation command unit does not execute the operation by the second control method.

[0006] In another aspect of the present disclosure, an apparatus for generating an operation program that defines the operation of a robot having multiple degrees of freedom includes an input reception unit that receives an input designating one of a first control method for realizing an operation with multiple degrees of freedom and a second control method for realizing an operation with one or more fewer degrees of freedom than the first control method, and a program setting unit that designates one of the first control method and the second control method in the operation program according to the input received by the input reception unit. This operation program causes the robot to execute an operation by the first control method or the second control method designated by the program setting unit.

[0007] A method for controlling the operation of a robot having multiple degrees of freedom includes a processor receiving an input designating one of a first control method for realizing an operation with multiple degrees of freedom and a second control method for realizing an operation with one or more fewer degrees of freedom than the first control method, wherein a condition for permitting the operation by the second control method is predetermined, causing the robot to execute an operation by the first control method or the second control method designated by the received input, determining whether the condition is satisfied when executing the operation by the second control method, and not executing the operation by the second control method when it is determined that the condition is not satisfied.

[0008] A method for generating an operation program that defines the operation of a robot having multiple degrees of freedom is such that a processor receives an input specifying one of a first control method for realizing an operation with multiple degrees of freedom and a second control method for realizing an operation with one or more fewer degrees of freedom than the first control method, and according to the received input, designates one of the first control method and the second control method in the operation program. This operation program causes the robot to execute the operation according to the designated first control method or second control method.

[0009] An operation program that defines the operation of a robot having multiple degrees of freedom and causes the robot to execute the operation is configured to be able to designate one of a first control method for realizing an operation with multiple degrees of freedom and a second control method for realizing an operation with one or more fewer degrees of freedom than the first control method, and causes the robot to execute the operation according to the designated first control method or second control method.

Brief Description of the Drawings

[0010]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Mode for Carrying Out the Invention

[0011] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings. In the various embodiments described below, the same reference numerals are given to the same elements, and redundant explanations are omitted. First, with reference to FIGS. 1 and 2, a robot system 10 according to an embodiment will be described. The robot system 10 includes a robot 12, a control device 14, and a teaching device 16.

[0012] In the present embodiment, the robot 12 is an articulated robot that performs a predetermined operation (for example, workpiece handling, welding, cutting, or laser processing) on a workpiece (not shown). Specifically, the robot 12 has a robot base 18, a swivel body 20, a lower arm 22, an upper arm 24, a wrist 26, and an end effector 28.

[0013] The robot base 18 is fixed on the floor of the work cell or on an automated guided vehicle (AGV). The swivel body 20 is provided on the robot base 18 so as to be rotatable around a first joint axis A1. The first joint axis A1 is, for example, parallel to the vertical direction and is fixed to the swivel body 20. The lower arm 22 is provided on the swivel body 20 so as to be rotatable around a second joint axis A2. The second joint axis A2 is orthogonal to the first joint axis A1 (that is, parallel to the horizontal direction) and is fixed to the proximal end portion of the lower arm 22.

[0014] The upper arm portion 24 has a proximal arm portion 24a and a distal arm portion 24b. The proximal arm portion 24a is provided at the distal end portion of the lower arm portion 22 so as to be rotatable around the third joint axis A3. The third joint axis A3 is parallel to the second joint axis A2 and is fixedly provided at the proximal end portion of the proximal arm portion 24a. The distal arm portion 24b is provided at the distal end portion of the proximal arm portion 24a so as to be rotatable around the fourth joint axis A4. The fourth joint axis A4 is orthogonal to the third joint axis A3 and is fixedly provided at the proximal end portion of the distal arm portion 24b.

[0015] The wrist portion 26 has a wrist base 26a and a wrist flange 26b. The wrist base 26a is provided at the distal end portion of the distal arm portion 24b so as to be rotatable around the fifth joint axis A5. The fifth joint axis A5 is orthogonal to the fourth joint axis A4 and is fixedly provided on the wrist base 26a. The wrist flange 26b is provided on the wrist base 26a so as to be rotatable around the sixth joint axis A6. The sixth joint axis A6 is orthogonal to the fifth joint axis A5 and is fixedly provided on the wrist flange 26b. The end effector 28 is detachably attached to the wrist flange 26b. The end effector 28 is, for example, a robot hand, a welding torch, a cutting tool, or a laser processing head, and performs operations (work handling, welding, cutting, or laser processing) on the workpiece.

[0016] A servo motor 30 (FIG. 2) is connected to each of the joint axes A1 to A6. These servo motors 30 rotationally drive the joint axes A1 to A6 according to commands from the control device 14, whereby the swivel body 20, the lower arm portion 22, the proximal arm portion 24a, the distal arm portion 24b, the wrist base 26a, and the wrist flange 26b (that is, the end effector 28) are respectively rotated around the joint axes A1 to A6. That is, in the present embodiment, the robot 12 has six degrees of freedom.

[0017] On one hand, the servo motor 30 is respectively provided with a rotation detector 32 (Fig. 2) for detecting the rotation positions R1 to R6 of the joint axes A1 to A6 (in other words, the rotation positions of the respective servo motors 30). The rotation detector 32 has, for example, an encoder or a Hall element, and supplies the detection data Dr of the rotation positions R1 to R6 to the control device 14.

[0018] In addition, the robot 12 is provided with a force sensor 34 (Fig. 2) for detecting the force F applied to the robot 12. As an example, the force sensor 34 has a six-axis force sensor provided at an arbitrary part of the robot 12 (for example, the wrist part 26 or the robot base 18). As another example, the force sensor 34 has a torque sensor provided at each of the joint axes A1 to A6. The force sensor 34 supplies the detection data Df of the detected force F to the control device 14.

[0019] As shown in Fig. 1, a robot coordinate system C1, a mechanical interface (MIF) coordinate system C2, and a tool coordinate system C3 are set for the robot 12. The robot coordinate system C1 is a fixed coordinate system for controlling the operations of the respective movable components of the robot 12 (that is, the swivel body 20, the lower arm part 22, the base end arm part 24a, the tip arm part 24b, the wrist base 26a, the wrist flange 26b, and the end effector 28). In the present embodiment, the robot coordinate system C1 is set with respect to the robot base 18 such that its origin is arranged at the center of the robot base 18 and its z-axis is parallel to (specifically, coincides with) the first joint axis A1.

[0020] On the other hand, the MIF coordinate system C2 is a moving coordinate system that defines the position P of the tip part of the robot 12 (specifically, the wrist flange 26b and the end effector 28) in the robot coordinate system C1. In the present embodiment, the MIF coordinate system C2 is set with respect to the wrist flange 26b such that its origin is arranged at the center of the tip surface of the wrist flange 26b (that is, the intersection of the virtual extension line of the sixth joint axis A6 and the tip surface of the wrist flange 26b) and its z-axis is parallel to (specifically, coincides with) the sixth joint axis A6.

[0021] The tool coordinate system C3 is a moving coordinate system that defines the position P of the end effector 28 in the robot coordinate system C1, and is arranged in a known positional relationship with respect to the MIF coordinate system C2. In the present embodiment, the tool coordinate system C3 is set with respect to the end effector 28 such that its origin (so-called TCP) is arranged at the working position of the end effector 28 (for example, a work gripping position, a welding position, a tool tip point, or a laser light emission port).

[0022] When moving the end effector 28, the processor 46 of the control device 14 sets the tool coordinate system C3 in the robot coordinate system C1, and generates commands to each servo motor 30 so as to position the end effector 28 at the position P represented by the set tool coordinate system C3. Thus, the processor 46 drives each servo motor 30 to position the end effector 28 at an arbitrary position P in the robot coordinate system C1. Note that in this document, "position" may indicate position and orientation.

[0023] The teaching device 16 controls the operation of the robot 12 via the control device 14 and teaches the robot 12 the operations for work. As shown in FIG. 2, the teaching device 16 is a computer having a processor 36, a memory 38, an I / O interface 40, a display device 42, and an input device 44. The processor 36 has a CPU or a GPU, etc., and is communicably connected to the memory 38, the I / O interface 40, the display device 42, and the input device 44 via a bus 45, and performs arithmetic processing for realizing various functions described later while communicating with these components.

[0024] The memory 38 has a RAM or a ROM, etc., and temporarily or permanently stores various data. The memory 38 may be a computer-readable non-transitory recording medium such as a semiconductor memory, a magnetic recording medium, or an optical recording medium. The I / O interface 40 has, for example, an Ethernet (registered trademark) port, a USB port, an optical fiber connector, or an HDMI (registered trademark) terminal, and communicates data with an external device by wire or wirelessly under the command from the processor 36.

[0025] The display device 42 has a liquid crystal display, an organic EL display, or the like, and displays various data visually under the command from the processor 36. The input device 44 has a touch panel, push buttons, switches, a keyboard, a mouse, or the like, and receives data input from an operator. Note that the display device 42 and the input device 44 may be integrally incorporated into the housing of the teaching device 16, or may be provided separately from the housing of the teaching device 16 and connected to the I / O interface 40. The teaching device 16 may be any type of computer such as a teach pendant, or a notebook or tablet PC.

[0026] The control device 14 controls the operation of the robot 12. Specifically, the control device 14 is a computer having a processor 46, a memory 48, an I / O interface 50, a display device 52, and an input device 54. Note that the configurations of the processor 46, the memory 48, the I / O interface 50, the display device 52, and the input device 54 are the same as those of the processor 36, the memory 38, the I / O interface 40, the display device 42, and the input device 44, and thus redundant descriptions are omitted.

[0027] The processor 46 is communicably connected to the memory 48, the I / O interface 50, the display device 52, and the input device 54 via a bus 55, and performs arithmetic processing for realizing a robot control function while communicating with these components. In the present embodiment, the I / O interface 50 is communicably connected to the I / O interface 40 of the teaching device 16.

[0028] The operator gives a teaching command Ct for teaching the operation of the robot 12 to the control device 14, and while moving the robot 12 (specifically, the end effector 28) in a desired direction, teaches a teaching point Pt for positioning the end effector 28 (or the origin of the tool coordinate system C3) during work. The operator gives an input IN1 for selecting a jog teach mode OM1, a direct teach mode OM2, or an operation playback mode OM3 as the operation mode OM of the robot 12 to the processor 36 of the teaching device 16 by operating the input device 44 of the teaching device 16.

[0029] The processor 36 of the teaching device 16 transmits a mode selection command Cm to the control device 14 according to the input IN1 received through the input device 44. The processor 46 of the control device 14 switches the operation mode OM of the robot 12 among the jog teach mode OM1, the direct teach mode OM2, and the operation playback mode OM3 according to the mode selection command Cm.

[0030] In the jog teach mode OM1, the operator operates the input device 44 of the teaching device 16 to input a jog command Ct1 for jogging the robot 12 as the teaching command Ct. The processor 36 of the teaching device 16 receives the input IN7 of the jog command Ct1 and transmits the received jog command Ct1 to the control device 14. The processor 46 of the control device 14 jogs the robot 12 according to the received jog command Ct1.

[0031] On the other hand, in the direct teach mode OM2, the operator applies an operating force Ct2 to an arbitrary movable component of the robot 12 (for example, the end effector 28) as the teaching command Ct. The processor 46 of the control device 14 calculates the magnitude and direction of the operator's operating force Ct2 based on the detection data Df of the force sensor 34, and identifies the movable component to which the operating force Ct2 is applied. Then, the processor 46 executes a direct teach function of moving the movable component to which the operating force Ct2 is applied in the direction of the operating force Ct2.

[0032] In this way, the processor 36 of the teaching device 16 controls the operation of the robot 12 via the control device 14, and creates an operation program OP of the robot 12 by teaching a plurality of teaching points Pt n (n = 1, 2, 3, ···). The operation program OP is a computer program that defines the operation of the robot 12 for work. In the operation program OP, for example, a plurality of teaching points Pt n (specifically, the coordinates Q of the robot coordinate system C1 n ), the movement path MP of the robot 12 passing through the plurality of teaching points Pt n , the movement speed V of the robot 12, and various operations of the robot 12 (positioning operation of the robot 12 to the plurality of teaching points Pt n , activation of the end effector 28, etc.) are defined as instruction codes IC.

[0033] The operation reproduction mode OM3 is an operation mode OM for confirming the operation of the created operation program OP. In the operation reproduction mode OM3, the processor 36 (or the processor 46 of the control device 14) of the teaching device 16 executes the operation program OP stored in the memory 38 (or the memory 48) at this time, and causes the robot 12 to execute the operation defined in the operation program OP.

[0034] Here, in the present embodiment, the processor 36 or 46 operates the robot 12 according to the first control method MT1 or the second control method MT2 during the execution of the jog teach mode OM1, the direct teach mode OM2, or the operation reproduction mode OM3. The first control method MT1 is a control method MT that realizes the operation of the six-degree-of-freedom robot 12 and drives the six joint axes A1 to A6.

[0035] The first control method MT1 is defined by a first control program (specifically, a six-degree-of-freedom inverse kinematics algorithm) CP1. The first control program CP1 is a program for obtaining the position P of the tip of the robot 12 in the robot coordinate system C1 (specifically, the coordinates of the MIF coordinate system C2 and the tool coordinate system C3 in the robot coordinate system C1) from the rotational positions R1 to R6 of the six joint axes A1 to A6. The processor 36 or 46 realizes the operation of the robot 12 by the first control method MT1 by using the first control program CP1.

[0036] On the other hand, the second control method MT2 is a control method MT for realizing the operation of the robot 12 with one or more degrees of freedom less than the first control method MT 1 In the present embodiment, the second control method MT2 is a control method MT for realizing the operation of the five-degree-of-freedom robot 12. Among the total six joint axes A1 to A6, while driving five joint axes A1, A2, A3, A5, and A6, the joint axis A4 is fixed at the position where the rotational position R4 = 0°.

[0037] The second control method MT2 is defined by a second control program CP2 (specifically, a five-degree-of-freedom inverse kinematics algorithm). The second control program CP2 is a program for obtaining the position P of the tip of the robot 12 in the robot coordinate system C1 (the coordinates of the MIF coordinate system C2 and the tool coordinate system C3 in the robot coordinate system C1) from the rotational positions R1 to R3, R5, and R6 of the five joint axes A1 to A3, A5, and A6. The processor 36 or 46 realizes the operation of the robot 12 by the second control method MT2 by using the second control program CP2.

[0038] Next, with reference to FIG. 3, a method for teaching the operation of the robot 12 in the jog teach mode OM1 or the direct teach mode OM2 will be described. When the processor 36 of the teaching device 16 receives a teach start command from an operator, a host controller, or a computer program PG1, it starts the flow shown in FIG. 3.

[0039] In step S1, the processor 36 determines whether it has received an input IN2 that specifies the second control method MT2. Specifically, the processor 36 generates image data IM1 of a graphical user interface (GUI) for specifying one of the first control method MT and the second control method MT2, and displays it on the display device 42. While visually recognizing the image data IM1, the operator operates the input device 44 to provide the processor 36 with an input IN2 that specifies one of the first control method MT and the second control method MT2.

[0040] If the processor 36 has received an input IN2 that specifies the second control method MT2, it determines YES and proceeds to step S2. On the other hand, if it has received an input IN2 that specifies the first control method MT1, it determines NO and proceeds to step S3. Thus, in the present embodiment, the processor 36 functions as an input reception unit 62 (FIG. 2) that receives an input IN2 that specifies one of the first control method MT1 for realizing the operation of the robot 12 with multiple degrees of freedom (six degrees of freedom in the present embodiment) and the second control method MT for realizing the operation of the robot 12 with one or more fewer degrees of freedom (five degrees of freedom in the present embodiment) than the first control method MT2.

[0041] In step S2, the processor 36 executes a teaching process according to the second control method MT2. This step S2 will be described with reference to FIG. 4. After the start of step S2, in step S11, the processor 36 determines whether the condition CD2 of the second control method MT2 is satisfied. This condition CD2 is for permitting the operation of the robot 12 according to the second control method MT2. In the present embodiment, the condition CD2 includes a condition that defines the position P of the robot 12 when operating the robot 12 according to the second control method MT2.

[0042] More specifically, the condition CD2 is the condition CD2 that the rotational position R4 of the fourth joint axis A4 (i.e., the tip arm portion 24b) is R4 = 0°. _1and the condition CD2 that the z-axis direction of the MIF coordinate system C2 (in other words, the direction of the sixth joint axis A6) is parallel to the vertical direction (that is, the z-axis direction of the robot coordinate system C1) or the horizontal direction (that is, the x-y plane of the robot coordinate system C1) _2 including. Based on the detection data Dr of the rotation position R4 of the fourth joint axis A4 detected by the rotation detector 32 at this time, the processor 36 _1 determines whether the condition CD2

[0043] is satisfied. Also, based on the detection data Dr of the rotation positions R1 to R6 of the joint axes A1 to A6 detected by the rotation detector 32 at this time and the second control program CP2, the processor 36 determines the coordinates Q M (x, y, z, w, p, r) of the MIF coordinate system C2 in the robot coordinate system C1 at this time. Among the coordinates Q M , the coordinates (x, y, z) indicate the position of the origin of the MIF coordinate system C2 in the robot coordinate system C1, and the coordinates (w, p, r) indicate the posture (that is, the direction of each axis) of the MIF coordinate system C2 in the robot coordinate system C1. Based on the coordinates (w, p, r) indicating the posture among the coordinates Q M , the processor 36 determines whether the condition CD2 _2 is satisfied.

[0044] In this step S11, the processor 36 determines YES when both the conditions CD2 _1 and CD2 _2 are satisfied and proceeds to step S12. On the other hand, when at least one of the conditions CD2 _1 and CD2 _2 is not satisfied, it determines NO and proceeds to step S20. Thus, in this embodiment, the processor 36 functions as a condition determination unit 64 (FIG. 2) that determines whether the condition CD2 (CD2 _1 and CD2 _2 ) is satisfied.

[0045] In step S12, the processor 36 determines whether it has received the teaching command Ct. As an example, when the jog teaching mode OM1 described above is being executed, the processor 36 functions as the input reception unit 62 and determines whether it has received the input IN7 of the jog command Ct1 from the operator through the input device 44.

[0046] As another example, when the direct teaching mode OM2 described above is being executed, the processor 36 determines whether the processor 46 of the control device 14 has received the operating force Ct2. If the processor 36 has received the teaching command Ct (jog command Ct1 or operating force Ct2), it determines YES and proceeds to step S13; if it determines NO, it proceeds to step S14.

[0047] In step S13, the processor 36 causes the robot 12 to execute an operation according to the second control method MT2. Specifically, the processor 36 uses the second control program CP2 to cause the robot 12 to move according to the teaching command Ct (jog command Ct1 or operating force Ct2) received in the previous step S12 under the conditions of the second control method MT2 _1 (R4 = 0°), and the condition CD2 _2 such that the z-axis of the MIF coordinate system C2 is in the vertical or horizontal direction, the processor 36 causes the robot 12 to execute a 5-degree-of-freedom operation.

[0048] That is, in this step S13, the processor 36 fixes the rotational position R4 of the fourth joint axis A4 at R4 = 0° under the second control method MT2, and while maintaining the end effector 28 in a posture where the z-axis of the MIF coordinate system C2 is parallel to the vertical or horizontal direction, the processor 36 moves the end effector 28 by operating the robot 12 according to the teaching command Ct.

[0049] More specifically, when the jog teaching mode OM1 is being executed, the processor 36 causes the robot 12 to move under the conditions CD2 _1 and CD2 _2While maintaining the state that satisfies the condition, the robot 12 is operated via the control device 14 according to the jog command Ct1 received in the immediately preceding step S12. At this time, if the moving direction MD of the robot 12 due to the jog command Ct1 causes the robot 12 to be in a position P that does not satisfy the condition CD2 _1 and CD2 _2 the processor 36 may calculate a moving direction MD' that can satisfy the condition CD2 _1 and CD2 _2 based on the moving direction MD of the jog command Ct1, and move the robot 12 in the moving direction MD'.

[0050] On the other hand, when the above-described direct teaching mode OM2 is being executed, the processor 36 causes the processor 46 of the control device 14 to execute a direct teaching function of operating the robot 12 in the direction MD of the operating force Ct2. If the direction MD of the operating force Ct2 causes the robot 12 to be in a position P that does not satisfy the condition CD2 _1 and CD2 _2 the processor 36 may calculate a direction MD' that can satisfy the condition CD2 _1 and CD2 _2 based on the direction MD of the operating force Ct2, and cause the control device 14 to execute a direct teaching function of moving the robot 12 in the direction MD'. In this way, the processor 36 functions as an operation command unit 66 (FIG. 2) that causes the robot 12 to execute an operation according to the second control method MT2.

[0051] Note that the processor 36 may move the end effector 28 by executing a linear motion LM in this step S13. This linear motion LM is an operation of moving the end effector 28 from the current position Pc to the target position Pg along a smooth (for example, linear or arc-shaped) movement path MP with the minimum movement amount.

[0052] Alternatively, in this step S13, the processor 36 may move the end effector 28 by executing each axis motion SM. Each of these axis motions SM is an operation of rotating at least one joint axis A (for example, the fifth joint axis A5) from the current rotation position Rc to the target rotation position Rg with the minimum rotation amount. Note that the operator may operate the input device 44 to select a linear motion LM or an axis motion SM, and the processor 36 may execute the selected linear motion LM or axis motion SM.

[0053] In step S14, the processor 36 determines whether it has received a program creation command Cr. The program creation command Cr stores the current position Pc of the robot 12 at this time as a teaching point Pt n and, by specifying the operation of the robot 12 at the teaching point Pt n (for example, the movement of the end effector 28 to the teaching point Pt n ), is a command for creating an operation program OP.

[0054] Specifically, the processor 36 generates image data IM2 of a GUI for inputting the program creation command Cr and displays it on the display device 42. While visually recognizing the image data IM2, the operator operates the input device 44 to give an input IN4 of the program creation command Cr to the processor 36. When the processor 36 functions as an input reception unit 62 and receives the input IN4, it determines YES and proceeds to step S15. On the other hand, when the processor 36 has not received the input IN4, it determines NO and proceeds to step S16.

[0055] In step S15, the processor 36 creates an operation program OP. Specifically, according to the program creation command Cr received in the immediately preceding step S14, the processor 36 uses the current position Pc of the robot 12 at this time (specifically, the coordinates Q T ) in the robot coordinate system C1 of the tool coordinate system C3 at this time as the teaching point Pt nAs such, it is stored in the position database DB stored in the memory 38. Then, the processor 36 writes an instruction code IC for referring to the teaching point Pt n stored in the position database DB into the operation program OP. Note that the processor 36 may directly write the position data (coordinates Q n ) of the teaching point Pt T as the instruction code IC into the operation program OP.

[0056] Also, the processor 36 writes an instruction code IC for defining the operation, movement path MP, and movement speed V of the robot 12 at the teaching point Pt n into the operation program OP according to the program creation command Cr. The processor 36 repeatedly executes the flow of steps S12 to S15 to create an operation program OP1 in which a plurality of teaching points Pt n , the operation of the robot 12, the movement path MP, the movement speed V, etc. are defined as the instruction code IC.

[0057] The operation program OP1 created in step S2 is for realizing the operation of the second control method MT2 (that is, 5 degrees of freedom). An example of the data structure of the operation program OP1 is shown in FIG. 5. In the example shown in FIG. 5, "START" in the first line is the instruction code IC for starting the operation program OP1, while "END" in the i-th line is the instruction code IC for ending the operation program OP1. Also, "MOVE Pt1" in the second line is the instruction code IC for defining the operation of positioning the end effector 28 at the first teaching point Pt1.

[0058] Note that for each teaching point Pt n of the operation program OP1, information Ir + indicating that the rotational position R (R5) of one joint axis A (for example, the fifth joint axis A5) of the robot 12 is a non-negative value (that is, R5 ≧ 0°), and information Ir - indicating that the rotational position R (R5) of the one joint axis A (the fifth joint axis A5) is a negative value (that is, R5 < 0°) may be further defined.

[0059] These pieces of information Ir + and Ir - should be defined in the operation program OP for the operation of the six-degree-of-freedom robot 12, and are information necessary to uniquely determine the solutions of the rotational positions R1 to R6 of the respective joint axes A1 to A6 of the six-degree-of-freedom robot 12 in order to position the end effector 28 (that is, the tool coordinate system C3) at an arbitrary position in the robot coordinate system C1. In the present embodiment, the processor 36 also defines, for each teaching point Pt of the operation program OP1 created by the second control method MT2 n the information Ir + and Ir - for the six-degree-of-freedom operation. According to this configuration, the five-degree-of-freedom operation program OP1 can be effectively executed by the six-degree-of-freedom robot 12.

[0060] In step S16, the processor 36 determines whether or not it has received an input IN5 that designates one of the first control method MT1 and the second control method MT2 for the operation program OP1. Specifically, the processor 36 generates image data IM4 for designating one of the first control method MT and the second control method MT2 for the operation program OP1, and displays it on the display device 42.

[0061] While visually recognizing the image data IM4, the operator operates the input device 44 to give the processor 36 an input IN5 that designates the first control method MT or the second control method MT2. When the processor 36 functions as an input reception unit 62 and receives the input IN5, it determines YES and proceeds to step S17. On the other hand, when the processor 36 determines NO, it proceeds to step S18.

[0062] In step S17, the processor 36 designates the first control method MT or the second control method MT2 for the operation program OP1 created in step S15 according to the input IN5 received in the immediately preceding step S16. Specifically, the processor 36 assigns a flag FL representing the designation of the first control method MT or the second control method MT2 to the operation program OP1.

[0063] For example, in the immediately preceding step S16, the operator gives an input IN5 for designating the second control method MT2 to the operation program OP1 that defines the operation of five degrees of freedom. In this case, in this step S17, the processor 36 sets a flag FL indicating the designation of the second control method MT2 for the operation program OP1 created in step S15. Thus, in the present embodiment, the processor 36 functions as a program setting unit 68 (FIG. 2) that designates one of the first control method MT1 and the second control method MT2 for the operation program OP1 in accordance with the input IN5.

[0064] In step S18, the processor 36 determines whether or not it has received an input IN6 for designating the first control method MT1. Specifically, the processor 36 displays the above-described image data IM1 on the display device 42, and when it functions as the input reception unit 62 and receives the input IN6 for designating the first control method MT1 through the input device 44, it determines YES. When the processor 36 determines YES, it proceeds to step S3 in FIG. 3, while when it determines NO, it proceeds to step S19.

[0065] In step S19, the processor 36 determines whether or not it has received an operation end command from the operator, the host controller, or the computer program PG1. When the processor 36 has received the operation end command, it determines YES, ends the flow of FIG. 4, and thus ends the flow shown in FIG. 3. On the other hand, when the processor 36 determines NO, it returns to step S11.

[0066] On the other hand, when it is determined NO in step S11, in step S20, the processor 36 determines whether or not the position P of the robot 12 can be adjusted. If, in the immediately preceding step S11, the condition CD2 _1Suppose it is determined to be NO because (R4 = 0°) is not satisfied. In this case, the processor 36 determines whether the rotational position R4 of the fourth joint axis A4 at this time is within a predetermined allowable range [Rth1, Rth2] (that is, Rth1 ≤ R4 ≤ Rth2). The threshold values Rth1 and Rth2 that define this allowable range [Rth1, Rth2] can be determined by the operator based on condition CD2 _1 (for example, Rth1 = -1°, Rth2 = 1°). The processor 36 determines YES if Rth1 ≤ R4 ≤ Rth2.

[0067] On the other hand, suppose it is determined to be NO because condition CD2 _2 (the z-axis of the MIF coordinate system C2 is in the vertical or horizontal direction) is not satisfied in the immediately preceding step S11. In this case, the processor 36 obtains the angle θ of the z-axis direction of the MIF coordinate system C2 from the vertical or horizontal direction at this time. Then, the processor 36 determines whether the angle θ is less than or equal to a predetermined threshold value θth (that is, θ ≤ θth). This threshold value θth can be determined by the operator based on condition CD2 _2 (for example, θth = 5°). The processor 36 determines YES if θ ≤ θth.

[0068] Note that if it is determined to be NO because neither condition CD2 _1 nor CD2 _2 is satisfied in the immediately preceding step S11, the processor 36 determines YES in this step S20 if Rth1 ≤ R4 ≤ Rth2 and θ ≤ θth. When the processor 36 determines YES, it proceeds to step S21, and when it determines NO, it proceeds to step S23.

[0069] In step S21, the processor 36 determines whether it has received a position adjustment command Ca. The position adjustment command Ca is a command for adjusting the position P of the robot 12 to a position P' that satisfies the condition CD2. More specifically, the processor 36 generates image data IM3 of a GUI for inputting the position adjustment command Ca and displays it on the display device 42.

[0070] While visually recognizing the image data IM3, the operator operates the input device 44 to give the processor 36 an input IN3 of the position adjustment command Ca. When the processor 36 functions as an input reception unit 62 and receives the input IN3 of the position adjustment command Ca, it determines YES and proceeds to step S22. On the other hand, when the processor 36 has not received the input IN3, it determines NO and proceeds to step S14.

[0071] In step S22, the processor 36 functions as an operation command unit 66 and adjusts the current position Pc of the robot 12 at this time to a position P' that satisfies the condition CD2. Specifically, the processor 36 functions as an operation command unit 66 and operates the robot 12 via the control device 14 to position the end effector 28 at a position P' that satisfies the condition CD2 _1 (R4 = 0°) and the condition CD2 _2 (the z-axis of the MIF coordinate system C2 is in the vertical or horizontal direction).

[0072] At this time, the processor 36 may move the end effector 28 by executing the above-described respective axis operations SM. In this way, the processor 36 adjusts the position P of the robot 12 so as to be in a state that satisfies the condition CD2. After this step S22, the processor 36 proceeds to step S12. Note that when the processor 36 executes step S22, it may generate a notification signal NS indicating that the robot 12 has reached a state that satisfies the condition CD2 as an image or voice, display it on the display device 42, or output it through a speaker (not shown) provided in the teaching device 16.

[0073] Also, when the position Pc of the robot 12 is adjusted to the position P' in step S22, the processor 36 sets the adjusted position P' as a new teaching point Pt n in the operation program OP1, and may also specify in the operation program OP1 the operation of the robot 12 (e.g., the axis movement SM) that moves the end effector 28 from the position Pc before adjustment to the position P' after adjustment. As a result, the operation executed in this step S22 can be taught by specifying it as an instruction code IC in the operation program OP1.

[0074] When it is determined as NO in step S20, in step S23, the processor 36 generates an alarm AL1. For example, the processor 36 generates an alarm AL1 in the form of an image or voice saying, "Since the conditions of the second control method are not satisfied, the robot cannot be operated." and outputs it through the display device 42 or the speaker. After this step S23, the processor 36 proceeds to step S14. Thus, in this embodiment, when the condition CD2 is not satisfied, the processor 36 does not execute the operation of the robot 12 by the second control method MT2 in step S13.

[0075] Note that in this step S23, the processor 36 may attach information specifying the condition CD2 that was determined as NO in the most recent step S11 to the alarm AL1. For example, when it is determined as NO because the condition CD2 _1 that R4 = 0° is not satisfied in the most recent step S11, the processor 36 may attach information indicating that the condition CD2 _1 is not satisfied to the image or voice of the alarm AL1.

[0076] Referring again to FIG. 3, when it is determined as NO in step S1, in step S3, the processor 36 executes an instruction process according to the first control method MT1. This step S3 will be described with reference to FIG. 6. After the start of step S3, in step S31, the processor 36 determines whether it has received an instruction command Ct, in the same manner as in step S12 described above. When the processor 36 determines YES, it proceeds to step S32, while when it determines NO, it proceeds to step S34.

[0077] In step S32, the processor 36 functions as a condition determination unit 64 and determines whether the condition CD1 for permitting the operation of the robot 12 according to the first control method MT1 is satisfied. The condition CD1 includes, for example, the condition that the robot 12 does not pass near the singularity point SP. The singularity point SP is, for example, a position of the robot 12 where two of the joint axes A1 to A6 are aligned in a straight line, and it is impossible to uniquely determine the solutions of the rotational positions R1 to R6 of the respective joint axes A1 to A6 for positioning the end effector 28 at such a singularity point SP.

[0078] In this step S32, the processor 36 calculates the target position Pg of the robot 12 (specifically, the end effector 28) according to the instruction command Ct received in the immediately preceding step S31, and determines whether the movement path MP of the robot 12 to the target position Pg passes near the singularity point SP. When the processor 36 determines that the movement path MP does not pass near the singularity point SP, it determines YES and proceeds to step S33, while when the movement path MP passes near the singularity point SP, it determines NO and proceeds to step S40.

[0079] In step S33, the processor 36 functions as an operation command unit 66 and causes the robot 12 to execute an operation according to the first control method MT1. Specifically, the processor 36 uses the first control program CP1 to cause the robot 12 to execute a six-degree-of-freedom operation according to the instruction command Ct (jog command Ct1 or operation force Ct2) received in the immediately preceding step S31.

[0080] Note that in this step S33, the processor 36 may move the end effector 28 by executing the linear motion LM or the axis motion SM. Also, the operator may operate the input device 44 to select the linear motion LM or the axis motion SM, and the processor 36 may execute the selected linear motion LM or axis motion SM. In step S34, the processor 36 determines whether a program creation command Cr has been received, in the same manner as in step S14 described above. If the processor 36 determines YES, it proceeds to step S35, while if it determines NO, it proceeds to step S36.

[0081] In step S35, in the same manner as in step S15 described above, the current position Pc of the robot 12 at this time is stored in the position database DB as the teaching point Pt n and the operation program OP2 defined by the teaching point Pt n is created. The operation program OP2 created in step S3 is for realizing the operation of the first control method MT1 (that is, six degrees of freedom).

[0082] The operation program OP2 may be created as a computer program different from the five-degree-of-freedom operation program OP1 created in step S2, and includes instruction codes IC from "START" to "END", similar to the operation program OP1 shown in FIG. 5. Also, the operation program OP2 includes information Ir + indicating non-negative or negative of the joint axis A described above and Ir - is defined.

[0083] In step S36, the processor 36 determines whether an input IN5 for designating one of the first control method MT1 and the second control method MT2 to the operation program OP has been received, in the same manner as in step S16 described above. When the processor 36 functions as the input receiving unit 62 and receives the input IN5, it determines YES and proceeds to step S37, while if it determines NO, it proceeds to step S38.

[0084] In step S37, the processor 36 functions as the program setting unit 68 and, similar to step S17 described above, according to the input IN5 received in the immediately preceding step S36, specifies the first control method MT or the second control method MT2 in the operation program OP2 created in step S35. For example, the operator gives an input IN5 specifying the first control method MT1 to the operation program OP2 that defines a six-degree-of-freedom operation in the immediately preceding step S36. In this case, in this step S37, the processor 36 adds a flag FL indicating the specification of the first control method MT1 to the operation program OP2 created in step S35.

[0085] In step S38, the processor 36 determines, similar to step S1 described above, whether it has received the input IN2 specifying the second control method MT2. If the processor 36 determines YES, it proceeds to step S2 in FIG. 3; if it determines NO, it proceeds to step S39. In step S39, the processor 36 determines, similar to step S19 described above, whether it has received an operation end command. If the processor 36 determines YES, it ends the flowchart of FIG. 6 and thus ends the flowchart shown in FIG. 3. On the other hand, if the processor 36 determines NO, it returns to step S31.

[0086] On the other hand, when it is determined NO in step S32, in step S40, the processor 36 generates an alarm AL2. For example, the processor 36 generates an image or voice alarm AL2 saying, "Since the conditions of the first control method are not satisfied, the robot cannot be operated." and outputs it through the display device 42 or the speaker.

[0087] At this time, the processor 36 may attach information identifying the condition CD1 (passing near a singular point), which was determined to be NO in the immediately preceding step S32, to the alarm AL2. After this step S40, the processor 36 proceeds to step S34. Thus, in the present embodiment, when the condition CD1 is not satisfied, the processor 36 does not execute the operation of the robot 12 by the first control method MT1 in step S33.

[0088] As described above, the processor 36 can create a plurality of operation programs OP1, OP2, OP3,... by sequentially executing steps S2 and S3 in FIG. 3. Each of the plurality of operation programs OP m (m = 1, 2, 3,...) has a data structure including instruction codes IC from "START" to "END" as shown in FIG. 5, and a flag FL indicating the designation of the first control method MT or the second control method MT2 is assigned by step S17 or S37. The plurality of created operation programs OP m are stored in the memory 38 (or 48).

[0089] As described above, in the present embodiment, the processor 36 functions as an input reception unit 62, a condition determination unit 64, an operation command unit 66, and a program setting unit 68 to control the operation of the robot 12 having multiple degrees of freedom (specifically, six degrees of freedom). Therefore, the input reception unit 62, the condition determination unit 64, the operation command unit 66, and the program setting unit 68 constitute a device 60 (FIG. 2) for controlling the operation of the robot 12 with multiple degrees of freedom.

[0090] In this device 60, the input reception unit 62 receives inputs IN2 and IN6 for designating one of the first control method MT1 for realizing an operation with multiple degrees of freedom (six degrees of freedom in the present embodiment) and the second control method MT2 for realizing an operation with one or more fewer degrees of freedom (five degrees of freedom in the present embodiment) than the first control method MT2 (steps S1, S18, S38). The second control method MT2 has conditions CD2 (specifically, CD2 _1 and CD2_2 ) is predetermined.

[0091] Also, the operation command unit 66 causes the robot 12 to execute an operation according to the first control method MT1 or the second control method MT2 specified by the inputs IN2 and IN6 received by the input reception unit 62 (steps S13 and S33). On the other hand, the condition determination unit 64 determines whether or not the condition CD2 is satisfied when the operation command unit 66 executes an operation according to the second control method MT2 (step S11). Then, when it is determined by the condition determination unit 64 that the condition CD2 is not satisfied (determined as NO in step S11), the operation command unit 66 does not execute an operation according to the second control method MT2.

[0092] Here, in the operation of the robot 12 with multiple degrees of freedom (for example, six degrees of freedom), the above-described singular point SP may occur, and when passing near the singular point SP, the operation of the robot 12 may become unstable. Such a singular point SP can be avoided by restricting the operation of the robot 12 to one or fewer degrees of freedom (for example, five degrees of freedom). According to the present embodiment, for example, when executing the teaching process, the operator can arbitrarily specify one of the first control method MT1 with multiple degrees of freedom (six degrees of freedom) and the second control method MT2 with fewer degrees of freedom (five degrees of freedom).

[0093] On the other hand, in the operation of the robot 12 with fewer degrees of freedom (five degrees of freedom), if the predetermined condition CD2 is not satisfied, there may be a case where the end effector 28 cannot be positioned at an arbitrary position. According to the present embodiment, when the condition determination unit 64 determines that the condition CD2 is not satisfied, the operation of the robot 12 with fewer degrees of freedom (five degrees of freedom) is prohibited, while when the condition CD2 is satisfied, the operation is permitted.

[0094] According to this configuration, in the teaching process for example, when the occurrence of the singularity point SP is assumed, the operator can operate the robot 12 to an arbitrary position without considering the singularity point SP and can surely avoid the operation of the robot 12 becoming unstable due to the singularity point SP by designating the second control method MT2. On the other hand, when it is assumed that the singularity point SP does not occur, by designating the first control method MT1, the robot 12 can be made to execute an operation with multiple degrees of freedom (six degrees of freedom) and the robot 12 can be operated smoothly.

[0095] Also, in the apparatus 60, the program setting unit 68 designates one of the first control method MT1 and the second control method MT2 as the operation program OP according to the input IN5 received by the input reception unit 62 (steps S17, S37). According to this configuration, the operator can appropriately designate the control method MT when executing the operation program OP from among the first control method MT1 and the second control method MT2. Note that the execution of the operation program OP will be described later. m According to this configuration, the operator can appropriately designate the control method MT when executing the operation program OP m from among the first control method MT1 and the second control method MT2. Note that the execution of the operation program OP m will be described later.

[0096] Also, in the apparatus 60, the operation command unit 66 causes the robot 12 to execute an operation according to the first control method MT1 or the second control method MT2 in response to a teaching command Ct (specifically, a jog command Ct1 or an operation force Ct2) for teaching the robot 12 an operation (steps S13, S33). According to this configuration, the operator can execute the teaching process by operating the robot 12 according to the arbitrarily designated first control method MT1 or second control method MT2.

[0097] Further, as an example of the apparatus 60, the input reception unit 62 further receives an input IN7 of a jog command Ct1 as a teaching command Ct, and the operation command unit 66 operates the robot according to the jog command Ct1 received by the input reception unit 62. According to this configuration, the operator can jog the robot 12 according to the arbitrarily specified first control method MT1 or second control method MT2 in the teaching process.

[0098] Further, as another example of the apparatus 60, the operation command unit 66 acquires an operation force Ct2 applied to the robot 12 as a teaching command Ct based on the detection data Df of a force sensor 34 that detects the force F applied to the robot 12, and operates the robot 12 according to the operation force Ct2 (direct teach function). According to this configuration, the operator can operate the robot 12 by the direct teach function according to the arbitrarily specified first control method MT1 or second control method MT2 in the teaching process.

[0099] Also, in the apparatus 60, the condition CD2 is a condition CD2 that defines the position P of the robot 12 _1 (for example, R4 = 0°) and CD2 _2 (for example, the z-axis of the MIF coordinate system C2 is in the vertical direction or the horizontal direction). And when it is determined by the condition determination unit 64 that the condition CD2 _1 or CD2 _2 is not satisfied (NO in step S11), the operation command unit 66 positions the robot 12 at a position P' that satisfies the condition CD2 _1 or CD2 _2 (step S22).

[0100] After that, the operation command unit 66 causes the robot 12 to execute an operation according to the second control method MT2 (step S13). According to this configuration, even if the robot 12 is arranged at a position P that does not satisfy the condition CD2 _1 or CD2 _2 at the start of step S2, the condition CD2 _1 or CD2 _2The position P of the robot 12 can be automatically adjusted so as to satisfy this.

[0101] In this embodiment, the input reception unit 62 receives an input IN5 for designating one of the first control method MT1 and the second control method MT2 in steps S16 and S36, and the program setting unit 68, in steps S17 and S37, designates one of the first control method MT1 and the second control method MT2 according to the received input IN5 for the operation program OP m therein.

[0102] As a result, the operation of the multi-degree-of-freedom robot 12 is defined, and an operation program OP m is generated which designates the first control method MT1 or the second control method MT2. Therefore, the input reception unit 62 and the program setting unit 68 constitute a device 100 (FIG. 2) for generating the operation program OP m According to this device 100, an operation program OP m executed by the first control method MT1 or the second control method MT2 arbitrarily designated by the operator can be created.

[0103] Note that the processor 36 may execute the flow of FIG. 3 according to a computer program PG1 stored in advance in the memory 38 (or 48). Further, the functions of the devices 60 and 100 (input reception unit 62, condition determination unit 64, operation command unit 66, and program setting unit 68) executed by the processor 36 may be functional modules realized by the computer program PG1.

[0104] Next, with reference to FIGS. 7 and 8, other functions of the robot system 10 will be described. In this embodiment, the processor 36 of the teaching device 16 executes the flow shown in FIG. 8 as step S2 in FIG. 3. In the flow shown in FIG. 8, the same step numbers are assigned to the same processes as the flow of FIG. 4, and duplicate explanations are omitted. In the flow of FIG. 8, after step S13, the processor 36 executes steps S24 to S27.

[0105] Specifically, in step S24, the processor 36 determines whether the robot 12 has contacted a surrounding environmental object SR (for example, an operator or a structure within the work cell) based on the detection data Df of the force sensor 34. For example, during the execution of the operation in step S13, the processor 46 of the control device 14 periodically acquires the detection data Df of the force sensor 34, and monitors the contact force Fc applied to the robot 12 when the robot 12 contacts the environmental object SR based on the detection data Df.

[0106] In this step S24, the processor 36 of the teaching device 16 determines YES when the contact force Fc monitored by the control device 14 exceeds a predetermined threshold value Fth (Fc≧Fth). When the processor 36 determines YES, it stops the operation of the robot 12 and proceeds to step S25. On the other hand, when it determines NO, it proceeds to step S26. Thus, in the present embodiment, the processor 36 functions as a contact determination unit 70 (FIG. 7) that determines whether the robot 12 has contacted the environmental object SR based on the detection data Df.

[0107] In step S25, the processor 36 functions as an operation command unit 66 and executes an evacuation operation to evacuate the robot 12. Specifically, as the evacuation operation, the processor 36 moves the robot 12 a predetermined distance in a direction MD” (or a predetermined direction) opposite to the movement direction MD in which the robot 12 was moved in the immediately preceding step S13 from the position P where the robot 12 was stopped when YES was determined in the previous step S24 (that is, the position where contact with the environmental object SR occurred).

[0108] Note that in the evacuation operation, the processor 36 may move the robot 12 (for example, the end effector 28) by executing each of the above-described axis operations SM. At this time, even if the robot 12 is in a state where it does not satisfy the condition CD2, the processor 36 preferentially executes this evacuation operation. Further, in the evacuation operation, the processor 36 may operate the robot 12 at a speed V’ (<V) that is lower than the movement speed V at which the robot 12 was moved in step S13.

[0109] In step S26, the processor 36 functions as a condition determination unit 64 to determine whether the robot 12 has deviated to a position P that does not satisfy the condition CD2 of the second control method MT2. Specifically, similar to step S11 described above, the processor 36 obtains the rotational position R4 of the fourth joint axis A4 at this time and the coordinates Q M (w, p, r) indicating the posture of the MIF coordinate system C2 at this time.

[0110] Then, based on the obtained rotational position R4, the processor 36 determines whether the condition CD2 _1 (R4 = 0°) is still satisfied, and based on the obtained coordinates Q M (w, p, r), determines whether the condition CD2 _2 (the z-axis of the MIF coordinate system C2 is in the vertical or horizontal direction) is still satisfied. If the processor 36 determines that at least one of the conditions CD2 _1 and CD2 _2 is not satisfied, it determines YES and proceeds to step S27. On the other hand, if both the conditions CD2 _1 and CD2 _2 are satisfied, it determines NO and proceeds to step S14.

[0111] In step S27, the processor 36 functions as an operation command unit 66 to execute a return operation to return the robot 12 to a position P' that satisfies the condition CD2. Specifically, as the return operation, based on the rotational position R4 and the coordinates Q used for determination in the most recent step S26, the processor 36 returns the robot 12 to a position P' that satisfies the condition CD2 _1 (R4 = 0°) and the condition CD2 _2 (the z-axis of the MIF coordinate system C2 is in the vertical or horizontal direction).

[0112] Note that, in this return operation, the processor 36 may change the position and orientation of the tip portion (wrist flange 26b and end effector 28) of the robot 12. For example, assume that this step S27 is executed after step S25 is executed. In this case, the processor 36 determines the coordinates Q of the origin of the tool coordinate system C3 (or the MIF coordinate system C2) in the robot coordinate system C1 at the time when it is determined as YES in step S24 (or at the time when the operation of the robot 12 is stopped). T ’(x, y, z) is stored in the memory 48.

[0113] Then, in this step S27, the processor 36 moves the end effector 28 (or the wrist flange 26b) from the position and orientation at this time to a posture that satisfies the conditions CD2 _1 and CD2 _2 and may also move it to the position of the coordinates Q T ’(x, y, z). Note that, in this step S27, the processor 36 may move the robot 12 to the teaching point Pt n stored in the memory 38 in the immediately previous step S15.

[0114] Note that, in the return operation, the processor 36 may move the robot 12 by executing each of the above-described axis operations SM. Also, in the return operation, the processor 36 may operate the robot 12 at a speed V' that is smaller than the moving speed V at which the robot 12 is moved in step S13. After this step S27, the processor 36 proceeds to step S14.

[0115] As described above, in the present embodiment, the processor 36 functions as the input reception unit 62, the condition determination unit 64, the operation command unit 66, the program setting unit 68, and the contact determination unit 70, and these input reception unit 62, condition determination unit 64, operation command unit 66, program setting unit 68, and contact determination unit 70 constitute the device 60 (FIG. 7).

[0116] In this embodiment, when the operation command unit 66 executes the operation in step S13, the contact determination unit 70 determines whether the robot 12 has come into contact with the environmental object SR based on the detection data Df of the force sensor 34 (step S24). Then, when it is determined by the contact determination unit 70 that the robot 12 has come into contact with the environmental object SR (YES in step S24), the operation command unit 66 executes an avoidance operation to move the robot 12 away from the position P where the contact has occurred (step S25). According to this configuration, the contact between the robot 12 and the environmental object SR can be surely eliminated by the avoidance operation, so the safety of the operation of the robot 12 can be enhanced.

[0117] Also, in this embodiment, when the robot 12 deviates to a position P that does not satisfy the condition CD2 (CD2 _1 and CD2 _2 ) when the operation command unit 66 executes the operation in step S13, the operation command unit 66 executes a return operation to return the robot 12 to a position P' that satisfies the condition CD2 (step S27). According to this configuration, if the position P of the robot 12 deviates due to, for example, the robot 12 coming into contact with the environmental object SR or the operator forcibly moving the robot 12 to ensure safety, the robot 12 can be automatically returned to the position P' that satisfies the condition CD2.

[0118] Note that from the flowcharts of FIG. 4 or FIG. 8, step S21 may be omitted, and when the processor 36 determines YES in step S20, the processor 36 may automatically execute step S22. Alternatively, from the flowcharts of FIG. 4 or FIG. 8, steps S20 to S22 may be omitted, and when the processor 36 determines NO in step S11, the processor 36 may proceed to step S23.

[0119] Also, steps S26 and S27 may be omitted from the flow of FIG. 8. Alternatively, steps S24 and S25 may be omitted from the flow of FIG. 8, and the processor 36 may execute steps S26 and S27 after step S13. That is, in this case, the contact determination unit 70 can be omitted from the apparatus 60 of FIG. 7. Also, steps S24 to S27 shown in FIG. 8 may be applied to step S3 shown in FIG. 6. For example, the processor 36 may execute steps S24 to S27 after step S33 in FIG. 6.

[0120] Note that at least one of the functions of the apparatus 60 (that is, the input reception unit 62, the condition determination unit 64, the operation command unit 66, the program setting unit 68, and the contact determination unit 70) may be implemented in the control device 14. For example, among the functions of the apparatus 60, the functions of the condition determination unit 64, the operation command unit 66, and the contact determination unit 70 may be implemented in the control device 14. In this case, the processor 46 of the control device 14 functions as the condition determination unit 64, the operation command unit 66, and the contact determination unit 70, and executes the above-described steps S11, S13, S24 to S27, S22, S32, and S33.

[0121] Also, only the functions of the apparatus 100 can be implemented in another computer. Such a form is shown in FIG. 9. The computer 110 shown in FIG. 9 has, for example, a processor (CPU, GPU, etc.), a memory (ROM, RAM), a display device (liquid crystal display, organic EL display, etc.), and an input device (touch panel, keyboard, mouse, etc.) (none of which are shown). Note that the computer 110 may be a desktop type, notebook type, or tablet type PC, or may be a teaching device or a control device of the robot 12.

[0122] For example, the processor of the computer 110 is the teaching point Pt taught using the teaching device 16 n, instruction data such as the movement path MP and the movement speed V is acquired from the teaching device 16. Then, the processor of the computer 110 generates an operation program OP that defines the acquired instruction data. And the processor of the computer 110 functions as an input reception unit 62 and receives an input IN5 that designates one of the first control method MT1 and the second control method MT2.

[0123] And the processor of the computer 110 may function as a program setting unit 68 and designate one of the first control method MT1 and the second control method MT2 in the operation program OP according to the received input IN5. In this way, while implementing the functions of the device 100 in the computer 110, the program setting unit 68 may be omitted from the device 60.

[0124] Next, other functions of the robot system 10 shown in FIG. 7 will be described. In the present embodiment, the processor 36 of the teaching device 16 executes the above-described operation reproduction mode OM3 in order to check the operation of the operation program OP m created by the flow of FIG. 3. Specifically, the processor 36 executes the flow shown in FIG. 10 as the operation reproduction mode OM3. The processor 36 starts the flow of FIG. 10 when it receives an operation start command from an operator, a host controller, or a computer program PG2.

[0125] In step S41, the processor 36 reads out the operation program OP m . Here, in the present embodiment, the processor 36 sequentially reads out a plurality of operation programs OP1, OP2, OP3,... created by the flow of FIG. 3 from the memory 38 (or 48) and continuously executes them.

[0126] Note that a plurality of operation programs OP mAn order OD to be executed may be predetermined. In this case, the operator operates the input device 44 to give an input IN8 for determining the order OD, and the processor 36 functions as a program setting unit 68 and, according to the input IN8, sets the order OD in the created operation program OP m which may be set. Therefore, when executing the first step S41, the processor 36 reads out an operation program OP1 to which the order OD: "1" is assigned from the memory 38 (or 48).

[0127] In step S42, the processor 36 determines whether the second control method MT2 is specified in the operation program OP m read in the immediately preceding step S41. Specifically, the processor 36 refers to the flag FL assigned to the read operation program OP m and determines whether the flag FL represents the specification of the second control method MT2. If the second control method MT2 is specified, the processor 36 determines YES and proceeds to step S43, while if the first control method MT1 is specified, the processor 36 determines NO and proceeds to step S44.

[0128] In step S43, the processor 36 executes an operation confirmation process according to the second control method MT2. This step S43 will be described with reference to FIG. 11. The processor 36 reads out the instruction code IC: "START" on the first line defined in the operation program OP m read in the immediately preceding step S41 and starts the flow of step S43.

[0129] After starting step S43, in step S51, the processor 36 reads the instruction code IC defined in the operation program OP m read in the immediately preceding step S41. Here, each time the processor 36 repeats this step S51, it reads the instruction code IC (FIG. 5) defined in the operation program OP m in the order of the second line, the third line, the fourth line, ···.

[0130] In step S52, the processor 36 functions as a condition determination unit 64 to determine whether the condition CD2 of the second control method MT2 is satisfied. Specifically, the processor 36 analyzes the instruction code IC read in the immediately preceding step S51, and the teaching point Pt specified in the instruction code IC n when moving the robot 12 to _1 and CD2 _2 to determine whether both are satisfied. The processor 36 _1 and CD2 _2 if both are satisfied, determines YES and proceeds to step S53. On the other hand, if at least one of the conditions CD2 _1 and CD2 _2 is not satisfied, determines NO and proceeds to step S57.

[0131] In step S53, the processor 36 functions as an operation command unit 66 and causes the robot 12 to execute an operation according to the second control method MT2. Specifically, the processor 36 uses the second control program CP2 to obtain the position P of the robot 12 (specifically, the end effector 28) in the robot coordinate system C1 from the rotational positions R1 to R3, R5, and R6 of the joint axes A1 to A3, A5, and A6 in order to execute the instruction code IC read in the immediately preceding step S51.

[0132] Then, based on the obtained position P, the processor 36 causes the robot 12 to execute the operation specified in the instruction code IC as an operation according to the second control method MT2 (that is, 5 degrees of freedom). In step S54, the processor 36 functions as a contact determination unit 70 in the same manner as in step S24 described above to determine whether the robot 12 has come into contact with the surrounding environmental object SR. If the processor 36 determines YES, it proceeds to step S56. If it determines NO, it proceeds to step S55.

[0133] In step S55, the processor 36 is the operation program OP being executed m5, processor 36 judges whether or not there is a command code IC of the next row. If the command code IC of the next row is not the command code IC of the i row in FIG. 5: "END", processor 36 judges as YES and returns to step S51, whereas if the command code IC of the i row is "END", processor 36 judges as NO and proceeds to step S45 in FIG. 10. On the other hand, if the judgement is YES in step S54, processor 36 functions as the operation command unit 66 in step S56, as in step S25 described above, and stops robot 12 after executing an escape operation. After that, processor 36 proceeds to step S57.

[0134] When the result of the determination in step S52 is NO or when step S56 is executed, in step S57, the processor 36 generates an alarm AL. For example, when executing step S57 after the result of the determination in step S52 is NO, the processor 36 generates an image or sound alarm AL4 stating, "The robot cannot be operated because the conditions of the second control method are not satisfied. Re-teaching of the robot is required," and outputs this through the display device 42 or the speaker. At this time, the processor 36 determines whether the condition CD2 for which the result of the determination in the immediately preceding step S52 is NO (condition CD2 _1 or CD2 _2 ) may be attached to the alarm AL1.

[0135] On the other hand, when step S57 is executed after step S56, the processor 36 generates a visual or audio alarm AL5 saying "The robot has been evacuated because there is a possibility that the robot has come into contact with an environmental object" and outputs it through the display device 42 or the speaker. After step S57, the processor 36 ends the flow of step S43 shown in Fig. 11, thereby ending the flow of Fig. 10. In this way, when the condition CD2 is not satisfied, the processor 36 does not execute the operation of the robot 12 according to the second control method MT2 in step S53.

[0136] Referring again to FIG. 10, when it is determined as NO in step S42, in step S44, the processor 36 executes an operation confirmation process according to the first control method MT1. This step S44 will be described with reference to FIG. 11. After the start of step S44, in step S61, the processor 36, in the same manner as step S51 described above, reads the instruction code IC specified in the operation program OP read in the most recent step S41. m and reads the instruction code IC defined therein.

[0137] In step S62, the processor 36 functions as a condition determination unit 64 and determines whether or not the condition CD1 of the first control method MT1 is satisfied. Specifically, the processor 36 analyzes the instruction code IC read in the immediately preceding step S61, and determines whether or not the condition CD1 (not passing near the singularity point SP) is satisfied when the robot 12 is moved to the teaching point Pt n specified in the instruction code IC. When the processor 36 determines YES, it proceeds to step S63, while when it determines NO, it proceeds to step S67.

[0138] In step S63, the processor 36 functions as an operation command unit 66 and causes the robot 12 to execute an operation according to the first control method MT1. Specifically, the processor 36 uses the first control program CP1 to obtain the position P of the robot 12 (end effector 28) in the robot coordinate system C1 from the rotational positions R1 to R6 of the joint axes A1 to A6 in order to execute the instruction code IC read in the immediately preceding step S61.

[0139] Then, based on the obtained position P, the processor 36 causes the robot 12 to execute the operation defined in the instruction code IC as an operation according to the first control method MT1 (i.e., six degrees of freedom). Thereafter, the processor 36 sequentially executes step S64 (contact determination) similar to step S53 described above, step S65 (next instruction code determination) similar to step S55 described above, and step S66 (retreat operation) similar to step S56 described above.

[0140] When it is determined as NO in step S62 or when step S66 is executed, in step S67, the processor 36 generates an alarm AL. For example, when step S67 is executed after it is determined as NO in step S62, the processor 36 generates an alarm AL6 in the form of an image or voice saying, "Since the conditions of the first control method are not satisfied, the robot cannot be operated. Robot reteaching is required." and outputs it through the display device 42 or the speaker. At this time, the processor 36 may attach information specifying the condition CD1 (passing near a singularity point) determined as NO in the immediately preceding step S62 to the alarm AL6.

[0141] On the other hand, when step S67 is executed after step S66, the processor 36 generates the above-described alarm AL5 and outputs it through the display device 42 or the speaker. After step S67, the processor 36 ends the flow of step S44 shown in FIG. 11, and thereby ends the flow of FIG. 10. In this way, when the condition CD1 is not satisfied, the processor 36 does not execute the operation of the robot 12 by the first control method MT1 in step S63.

[0142] Referring again to FIG. 10, when it is determined as NO in the above-described step S55 or S65, in step S45, the processor 36 determines m+1 whether there is an operation program OP m+1 to be executed next. If the processor 36 determines YES, it returns to step S41 and executes the flow of steps S42 to S45 based on the operation program OP

[0143] In this way, the processor 36 sequentially executes the plurality of operation programs OP m created in the flow of FIG. 3, and operates the robot 12 according to the first control method MT1 or the second control method MT2 specified in the operation program OP m in accordance with the input IN5 in the above-described step S17 or S37. Thereby, the operator can use the operation program OP mIt is possible to confirm the operations defined in

[0144] As described above, in the present embodiment, according to the input IN5 received by the input reception unit 62 in the above-described step S16 or S36, one of the first control method MT1 and the second control method MT2 is specified in the above-described step S17 or S37 m an operation program OP m is prepared. Then, the operation command unit 66 executes the operation program OP m to cause the robot 12 to perform the operation according to the first control method MT1 or the second control method MT2 specified in the operation program OP (step S53 or S63).

[0145] This operation program OP m defines the operations of the robot 12 having multiple degrees of freedom (six degrees of freedom) and is configured to be able to specify one of the first control method MT1 and the second control method MT2 (specifically, to be able to assign the flag FL). Then, the operation program OP m causes the robot 12 to perform the operation according to the specified first control method MT1 or second control method MT2.

[0146] According to this configuration, the operator can arbitrarily specify the first control method MT1 or the second control method MT2 for each operation program OP m in consideration of the operations of the operation program OP created in the teaching process, so that when the operation program OP m is executed, it is possible to surely avoid the operation of the robot 12 becoming unstable due to, for example, the above-described singular point SP or the like. m Also, since the control method MT is commanded for each operation program OP

[0147] Moreover, since the control method MT is commanded for each operation program OP m for each operation program OP mEven if the operation is interrupted midway (for example, at the third line in FIG. 5) and then resumed, the robot 12 can be stably operated in the same control method MT. This is advantageous in terms of the stability of the operation of the robot 12 compared to the case where the control method MT is switched during the execution of one operation program.

[0148] Also, by continuously executing a plurality of operation programs OP each specified with the control method MT m diverse operations of the robot 12 for executing work can be realized, and for each operation program OP m the control method MT can be switched between the first control method MT1 and the second control method MT2. Therefore, it is possible to flexibly respond to work that requires more diverse operations of the robot 12.

[0149] Note that the processor 36 may execute the flow of FIG. 10 according to a computer program PG2 stored in advance in the memory 38 (or 48). Also, the functions of the device 60 executed by the processor 36 may be functional modules realized by the computer program PG2.

[0150] Note that in step S51 or S61 of FIG. 11, the processor 36 reads the instruction codes IC of all the lines (that is, from the first line to the i-th line) defined in the operation program OP m and in step S52 or S62, it may determine whether or not the conditions CD2 or CD1 are satisfied for the operations defined in all the instruction codes IC. And when the processor 36 determines YES in step S52 or S62, in step S53 or S63, it may execute all the instruction codes IC of the operation program OP m in order from the first line to the i-th line. In this case, steps S55 or S65 can be omitted from the flow of FIG. 11.

[0151] Note that in the robot system 10 shown in FIG. 7, the processor 36 executes the flow shown in FIG. 3 to operate the operation program OP mCreate it, and then execute the flow shown in FIG. 10 to check the operation of the operation program OP m has been described. However, another computer (for example, the computer 110 described above) may create the operation program OP m .

[0152] And the processor 36 of the teaching device 16 may execute the flow shown in FIG. 10 to check the operation of the operation program OP m created by the other computer. In this case, the program setting unit 68 can be omitted from the device 60 in FIG. 7. Also, steps S54 and S56 may be omitted from the flow in FIG. 11. That is, in this case, the contact determination unit 70 can be omitted from the device 60 in FIG. 7.

[0153] Also, the flows shown in FIGS. 3, 4, 6, 8, 10, and 11 are examples and can be variously modified. FIG. 12 shows a modified example of step S2 in FIG. 8. In the flow of FIG. 12, when the processor 36 determines YES in step S20, it proceeds to step S22 and adjusts the current position Pc of the robot 12. On the other hand, after executing step S23, the processor 36 executes the above-described step S21 and determines whether a position adjustment command Ca has been received.

[0154] If it is determined YES in step S21 in FIG. 12, in step S22', the processor 36 functions as the operation command unit 66 and adjusts the current position Pc of the robot 12 in the same manner as in step S22 above. On the other hand, if it is determined NO in step S21 in FIG. 12, the processor 36 proceeds to step S14.

[0155] Thus, in the flow of FIG. 12, even when the processor 36 determines NO in step S20, if the processor 36 receives the input IN3 of the position adjustment command Ca from the operator in step S21, the processor 36 executes step S22' to adjust the current position Pc of the robot 12. According to this configuration, while ensuring the safety of the operator by preventing the robot 12 from operating unintentionally, the teaching process can be efficiently advanced.

[0156] Also, FIG. 13 shows a modification example of steps S43 and S44 in FIG. 11. In step S43 shown in FIG. 13, after step S56, the processor 36 executes step S58. In this step S58, the processor 36 functions as the operation command unit 66 and executes a return operation. Specifically, the processor 36 stores the coordinates Q T ”(x, y, z) of the origin of the tool coordinate system C3 (or the MIF coordinate system C2) in the robot coordinate system C1 at the time when the processor 36 determined YES in the most recent step S54 (or at the time when the operation of the robot 12 was stopped) in the memory 48.

[0157] Then, in this step S58, the processor 36 may move the end effector 28 (or the wrist flange 26b) from the position P at this time to the position of the coordinates Q T ”(x, y, z). Alternatively, in this step S58, the processor 36 may move the robot 12 to the movement path MP defined in the operation program OP m being executed. Also, in step S44 shown in FIG. 13, after step S66, in step S68, the processor 36 executes a similar return operation. Note that the processor 36 may execute step S58 (or S66) when a predetermined time has elapsed since the time when the processor 36 executed the evacuation operation in step S56 (or S66).

[0158] In the above-described embodiment, the condition CD2 _1 of the second control method MT2 has been described for the case where R4 = 0°. However, the present invention is not limited to this, and the condition CD2 _1R4 may be defined as R4 = 180°×α (α is an arbitrary integer). Further, in the above-described embodiment, the second control method MT2 includes a plurality of control methods MT2 _1 , MT2 _2 , MT2 _3 , ··· may be included.

[0159] For example, in the control method MT2 _1 , a condition CD2 of R4 = 0° _1_1 and a condition CD2 that the z-axis direction of the MIF coordinate system C2 coincides with the vertically downward direction _2_1 may be defined. Further, in the control method MT2 _2 , a condition CD2 of R4 = 180° _1_2 and a condition CD2 that the z-axis direction of the MIF coordinate system C2 coincides with the vertically upward direction _2_2 may be defined. Further, in the control method MT2 _3 , a condition CD2 of R4 = -180° _1_3 and a condition CD2 that the z-axis direction of the MIF coordinate system C2 is parallel to the horizontal direction _2_3 may be defined.

[0160] In this case, the processor 36 functions as an input reception unit 62, and in the above-described steps S1, S16, and S38, as the second control method MT2, an input IN2 or IN5 for designating one of the control methods MT2 _1 , MT2 _2 and MT2 _3 is received. Then, the processor 36 executes the above-described steps S11, S13, S20, S22, S23, or S27 based on the condition CD2 of the designated control method MT2 _1 , MT2 _2 or MT2 _3 .

[0161] Further, in step S17 described above, the processor 36, according to the received input IN5, uses the control method MT2 _1 , MT2 _2 or MT2 _3 as the operation program OP mSpecify it as this. According to this configuration, the operator can use various conditions CD2 (CD2 _1_1 , CD2 _1_2 , CD2 _1_3 , CD2 _2_1 , CD2 _2_2 , CD2 _2_3 ) to define a plurality of control methods MT2 (MT2 _1 , MT2 _2 , MT2 _3 ) as the second control method MT2, so that more diverse operation instructions can be given.

[0162] In the above-described embodiment, the case where the MIF coordinate system C2 and the tool coordinate system C3 are set for the robot 12 has been described. However, it is not limited to this, and only one of the MIF coordinate system C2 and the tool coordinate system C3 may be set. For example, when the z-axis of the tool coordinate system C3 is set to be parallel to (specifically, coincide with) the sixth joint axis A6, in the above-described steps S11 and S26, the processor 36 may determine the coordinates Q of the tool coordinate system C3 in the robot coordinate system C1 T and determine the condition CD2 of the second control method MT2.

[0163] In the above-described embodiment, the case where the first control method MT1 realizes the operation of the six-degree-of-freedom robot 12 and the second control method MT realizes the operation of the five-degree-of-freedom robot 12 has been described. However, the first control method MT1 may, for example, realize an operation with seven or more degrees of freedom, and the second control method MT may realize an operation with four or less degrees of freedom.

[0164] Also, the condition CD2 of the second control method MT may include any other conditions, such as the condition that the robot 12 does not pass near the singular point SP or the condition that the robot 12 is within the allowable operation range. Similarly, the condition CD1 of the first control method MT1 may also include any other conditions. Also, the robot 12 is not limited to a vertical articulated robot, and may be any other type of robot, such as a horizontal articulated robot or a parallel link robot.

[0165] As described above in detail, the present disclosure is not limited to the individual embodiments described above. These embodiments can be variously added, replaced, changed, partially deleted, etc., without departing from the gist of the present disclosure or without departing from the gist of the present disclosure derived from the content described in the claims and its equivalents. Also, these embodiments can be implemented in combination. For example, in the above-described embodiments, the order of each operation and the order of each process are shown as an example and are not limited thereto. The same applies when numerical values or mathematical formulas are used in the description of the above-described embodiments.

[0166] The present disclosure describes the following aspects. (Aspect 1) An apparatus 60 for controlling the operation of a robot 12 having multiple degrees of freedom, including a first control method MT1 for realizing an operation with multiple degrees of freedom (for example, 6 degrees of freedom), and a second control method MT2 for realizing an operation with one or more fewer degrees of freedom (for example, 5 degrees of freedom) than the first control method MT1, where a condition CD2 for permitting the operation by the second control method MT2 is predetermined. An input reception unit 62 that receives inputs IN2, IN5, IN6 for designating one of the second control methods MT2, and an operation command unit 66 that causes the robot 12 to execute an operation by the first control method MT1 or the second control method MT2 designated by the inputs IN2, IN5, IN6 received by the input reception unit 62. And a condition determination unit 64 that determines whether the condition CD2 is satisfied when the operation command unit 66 executes an operation by the second control method MT2. When it is determined by the condition determination unit 64 that the condition CD2 is not satisfied, the operation command unit 66 does not execute an operation by the second control method MT2, the apparatus 60. (Aspect 2) The apparatus 60 according to Aspect 1, further comprising an operation program OP in which one of the first control method MT1 and the second control method MT2 is designated in response to the input IN5 received by the input reception unit 62, and the operation command unit 66 causes the robot 12 to execute an operation by the first control method MT1 or the second control method MT2 designated in the operation program OP by executing the operation program OP. (Aspect 3) The apparatus 60 according to aspect 2, further comprising a program setting unit 68 that designates one of a first control method MT1 and a second control method MT2 as an operation program OP according to the input IN5 received by the input reception unit 62. (Aspect 4) The operation command unit 66 causes the robot to execute an operation by the first control method MT1 or the second control method MT2 according to an instruction command Ct for teaching an operation, in the apparatus 60 according to any one of aspects 1 to 3. (Aspect 5) The input reception unit 62 further receives an input IN7 of a jog command Ct1 as an instruction command Ct, and the operation command unit 66 causes the robot 12 to execute an operation according to the jog command Ct1 received by the input reception unit 62, in the apparatus 60 according to aspect 4. (Aspect 6) The operation command unit 66 acquires, as an instruction command Ct, an operation force Ct2 applied to the robot 12 based on detection data Df of a force sensor 34 that detects a force F applied to the robot 12, and causes the robot 12 to execute an operation according to the operation force Ct2, in the apparatus 60 according to aspect 4. (Aspect 7) The condition CD2 is a condition CD2 that defines the position P of the robot 12 _1 , CD2 _2 , CD2 _1_1 , CD2 _1_2 , CD2 _1_3 , CD2 _2_1 , CD2 _2_2 , CD2 _2_3 and includes. When the operation command unit 66 is determined by the condition determination unit 64 not to satisfy the condition CD2, the operation command unit 66 positions the robot 12 at a position P' that satisfies the condition CD2, and then causes the robot 12 to execute an operation by the second control method MT2, in the apparatus 60 according to any one of aspects 1 to 6. (Aspect 8) The condition CD2 is a condition CD2 that defines the position P of the robot 12 _1 , CD2 _2 , CD2 _1_1 , CD2 _1_2 , CD2 _1_3 , CD2 _2_1 , CD2 _2_2 , CD2 _2_3including, when the operation command unit 66 causes the robot 12 to deviate to a position P where the condition CD2 is not satisfied when executing an operation, the operation command unit 66 executes a return operation to return the robot 12 to a position P' where the condition CD2 is satisfied, the apparatus 60 according to any one of Aspects 1 to 7. (Aspect 9) When the operation command unit 66 executes an operation, further comprising a contact determination unit 70 that determines whether or not the robot 12 has come into contact with the environmental object SR based on the detection data Df of the force sensor 34 that detects the force F applied to the robot 12, and when the contact determination unit 70 determines that the robot 12 has come into contact with the environmental object SR, the operation command unit 66 executes a retreat operation to retreat the robot 12 from the position P where the contact has occurred, the apparatus 60 according to any one of Aspects 1 to 8. (Aspect 10) The second control method MT2 has different conditions CD2 _1_1 , CD2 _1_2 , CD2 _1_3 , CD2 _2_1 , CD2 _2_2 , CD2 _2_3 respectively defined for a plurality of control methods MT2 _1 , MT2 _2 , MT2 _3 including, and the input reception unit 62 receives inputs IN2, IN5, IN6 that specify one of a plurality of control methods MT2 _1 , MT2 _2 , MT2 _3 as the first control method MT1 and the second control method MT2, the apparatus 60 according to any one of Aspects 1 to 9. Apparatus 100 for generating an operation program OP that defines the operation of a robot 12 having multiple degrees of freedom (e.g., six degrees of freedom), comprising: an input receiving unit 62 that receives an input IN5 for designating one of a first control method MT1 for realizing an operation with multiple degrees of freedom and a second control method MT2 for realizing an operation with one or more fewer degrees of freedom (e.g., five degrees of freedom) than the first control method MT1; and a program setting unit 68 that designates one of the first control method MT1 and the second control method MT2 in the operation program OP according to the input IN5 received by the input receiving unit 62, wherein the operation program OP causes the robot 12 to execute an operation according to the first control method MT1 or the second control method MT2 designated by the program setting unit 68. A method for controlling the operation of a robot 12 having multiple degrees of freedom (e.g., six degrees of freedom), wherein processors 36, 46 receive inputs IN2, IN5, IN6 for designating one of a first control method MT1 for realizing an operation with multiple degrees of freedom and a second control method MT2 for realizing an operation with one or more fewer degrees of freedom (e.g., five degrees of freedom) than the first control method MT1, and wherein a condition CD2 for permitting the operation by the second control method MT2 is predefined, cause the robot 12 to execute an operation according to the first control method MT1 or the second control method MT2 designated by the received inputs IN2, IN5, IN6, determine whether the condition CD2 is satisfied when executing an operation by the second control method MT2, and do not execute the operation by the second control method MT2 when it is determined that the condition CD2 is not satisfied. (Aspect 13) A method for generating an operation program OP that defines the operations of a robot 12 having multiple degrees of freedom (e.g., six degrees of freedom), wherein processors 36, 46 receive an input IN5 that designates one of a first control method MT1 for realizing operations with multiple degrees of freedom and a second control method MT5 for realizing operations with one or more fewer degrees of freedom (e.g., five degrees of freedom) than the first control method MT1, and in accordance with the received input IN5, designates one of the first control method MT1 and the second control method MT2 in the operation program OP, and the operation program OP causes the robot 12 to execute the operations according to the designated first control method MT1 or second control method MT2. (Aspect 14) Computer programs PG1, PG2 that cause processors 36, 46 to execute the method according to Aspect 12 or 13. (Aspect 15) An operation program OP that defines the operations of a robot 12 having multiple degrees of freedom (e.g., six degrees of freedom) and causes the robot 12 to execute the operations, the operation program OP being configured to be able to designate one of a first control method MT1 for realizing operations with multiple degrees of freedom and a second control method MT2 for realizing operations with one or more fewer degrees of freedom (e.g., five degrees of freedom) than the first control method MT1, and causing the robot 12 to execute the operations according to the designated first control method MT1 or second control method MT2.

Explanation of Reference Numerals

[0167] 10 Robot system 12 Robot 14 Control device 16 Teaching device 36, 46 Processors 60, 100 Devices 62 Input reception unit 64 Condition determination unit 66 Operation command unit 68 Program setting unit 70 Contact determination unit 110 Computer

Claims

1. An input receiving unit that receives an input specifying one of a first control method for realizing the operation of a robot having multiple degrees of freedom and a second control method for realizing an operation with one or more fewer degrees of freedom than the first control method; An operation command unit that causes the robot to execute the operation according to the first control method or the second control method specified by the input received by the input receiving unit; A condition determination unit that determines whether a condition for permitting the execution of the operation according to the second control method is satisfied when the operation command unit executes the operation according to the second control method. A device comprising:

2. The condition is A condition that the rotational position or direction of the joint axis of the robot is at a predetermined position or direction, A condition that the robot does not pass through a singularity or its vicinity, and A condition that the robot is within an allowable operation range. The device according to claim 1, including at least one of the above conditions.

3. The input receiving unit further receives a mode selection command for selecting an operation mode of the robot, When the operation command unit is executing the operation mode selected by the mode selection command, the operation command unit causes the robot to execute the operation according to the first control method or the second control method. The device according to claim 1 or 2.

4. The operation mode is A jog teach mode in which the robot is operated in response to a jog command input through an input device, A direct teach mode in which the robot is operated in response to an operating force applied to the robot, and An operation playback mode in which the robot is operated according to an operation program to confirm the operation of the operation program. The device according to claim 3, including at least one of the above modes.

5. A method in which a processor Receives an input specifying one of a first control method for realizing the operation of a robot having multiple degrees of freedom and a second control method for realizing the operation with one or more fewer degrees of freedom than the first control method, Causes the robot to execute the operation according to the first control method or the second control method specified by the received input, Determines whether a condition for permitting the execution of the operation according to the second control method is satisfied when the operation according to the second control method is executed.

6. A computer program that causes the processor to execute the method according to claim 5.

Citation Information

Patent Citations

  • Industrial robot

    JP1988052982A

  • Control method for manipulator

    JP1991003786A

  • Redundant freedom degree robot device

    JP1993061510A

  • Control device for multi-joint robot

    JP1994312392A

  • Articulated robot

    JP2005329521A