Robot control device

The robot control device stabilizes direct teaching operations by using force detection and motion control to prevent the robot from approaching singular points, ensuring stable and accurate motion.

WO2025163746A1PCT designated stage Publication Date: 2025-08-07FANUC LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/002872
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-01-30
Publication Date
2025-08-07

AI Technical Summary

Technical Problem

Direct teaching operations in robot control can lead to unstable robot operations near singular points, where the robot's posture cannot be uniquely calculated, causing potential instability and deviation from the operator's intended motion.

Method used

A robot control device equipped with a force acquisition unit, motion command unit, and determination unit that detects applied forces, calculates operation forces, and generates commands to restrict or promote robot motion, preventing the robot from approaching singular points by using predefined singularity and warning regions.

Benefits of technology

Stabilizes robot operations by preventing the robot from entering unstable states near singular points, ensuring accurate and stable motion control during direct teaching operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024002872_07082025_PF_FP_ABST
    Figure JP2024002872_07082025_PF_FP_ABST
Patent Text Reader

Abstract

In one embodiment, a robot control device comprises: a force acquisition unit that acquires a force applied to a robot; an operation command unit that generates an operation command for driving the robot, on the basis of the force acquired by the force acquisition unit; and a determination unit that determines the state of the robot. A singularity region of the state of the robot is predetermined around a specific state of the robot in which the position of the robot is arranged at a singularity. A warning region of the state of the robot is determined in advance around the singularity region. The determination unit determines whether or not the state of the robot is in the warning region and determines whether or not the state of the robot is approaching the specific state.
Need to check novelty before this filing date? Find Prior Art

Description

Robot control device

[0001] The present disclosure relates to a robot control device.

[0002] A robotic device equipped with a robot and a work tool is driven based on an operation program. The operation program defines teaching points for specifying the position and posture of the robot. An operator can manually drive the robot using a teaching operation panel to teach the teaching points. In recent years, it has become known for operators to change the position and posture of the robot by directly pushing or pulling the robot. The operation in which an operator directly moves the robot to teach teaching points is called a direct teaching operation. The operator can teach the desired position and posture of the robot to the robot control device as teaching points.

[0003] Japanese Patent Application Laid-Open No. 2015-202536 Japanese Patent Application Laid-Open No. 2018-202514 International Publication No. WO2022 / 009765A1 Japanese Patent Application Laid-Open No. 2021-65943

[0004] The robot controller can control the joint angle of each joint based on the position and posture of the robot defined in the operation program and on inverse kinematics, or the robot controller can control the rotation angle of the drive motor disposed at each joint.

[0005] Incidentally, a singularity is known as a point where the robot's posture cannot be uniquely calculated from its position using inverse kinematics. For example, at a singularity, multiple robot postures exist for one robot position. If the robot's position is specified at a singularity, the robot's operation becomes unstable. For example, the robot's posture cannot be calculated, or a drive axis may operate at an excessively high speed.

[0006] A robot that performs direct teaching operations is equipped with a sensor for detecting the force with which the worker operates the robot. The robot control device can drive the robot based on the magnitude and direction of the worker's force. Even with direct teaching operations, when the worker operates the robot, the robot's operation becomes unstable at a singular point. Alternatively, the robot's operation becomes unstable at points near a singular point. In particular, the robot may operate in a manner different from the worker's intention. With direct teaching operations, since the worker often operates the robot in the vicinity of the robot, it is preferable to avoid the robot's operation becoming unstable.

[0007] A robot control device according to a first aspect of the present disclosure includes a force acquisition unit that acquires a force applied to the robot, a motion command unit that generates a motion command to drive the robot based on the magnitude and direction of the force acquired by the force acquisition unit, and a determination unit that determines the state of the robot, including at least one of the position and posture of the robot. A singularity region of the robot's state is predetermined around a specific state of the robot in which the robot's position is located at a singular point. A warning region of the robot's state is predetermined around the singularity region. The determination unit determines whether the robot's state is within the warning region and whether the robot's state is approaching the specific state.

[0008] A robot control device according to a second aspect of the present disclosure includes a force acquisition unit that acquires a force applied to the robot, an operation force calculation unit that calculates the magnitude and direction of the operation force at the point of effort based on the magnitude and direction of the force acquired by the force acquisition unit, and an operation command unit that generates an operation command to drive the robot based on the magnitude and direction of the operation force calculated by the operation force calculation unit. The operation command unit performs at least one of control to restrict the operation of the robot in a specified direction and control to promote the operation of the robot in the specified direction.

[0009] 1 is a perspective view of a robot device according to an embodiment; FIG. 2 is a perspective view of a robot according to an embodiment; FIG. 3 is a block diagram of a robot device according to an embodiment; FIG. 4 is a side view of a robot when the robot is positioned at a first singular point; FIG. 5 is a side view of a robot illustrating a singularity area and a warning area related to the first singular point; FIG. 6 is another side view of the robot illustrating a singularity area and a warning area related to the first singular point; FIG. 7 is a perspective view of a robot when the robot is positioned at a second singular point; FIG. 8 is a side view of a robot illustrating a singularity area and a warning area related to the second singular point; FIG. 9 is another side view of a robot illustrating a singularity area and a warning area related to the second singular point; FIG. 10 is a side view of a robot when the robot is positioned at a third singular point; FIG. 11 is a plan view of a robot illustrating a singularity area and a warning area related to the third singular point; FIG. 12 is a flowchart for performing motion modification control in direct teaching operation; FIG. 13 is a first image on a display unit including information related to the first singular point; FIG. 14 is a second image on a display unit including information related to the second singular point; FIG. 15 is a third image on a display unit including information related to the second singular point; and FIG. 16 is a fourth image on a display unit including information related to the third singular point. 10 is a fifth image of the display unit displaying information relating to the first singular point to the third singular point. FIG. 11 is a time chart illustrating types of vibrations occurring in the teaching pendant. FIG. 12 is a graph illustrating the strength of vibrations occurring in the teaching pendant. FIG. 13 is a plan view of the robot when operating the robot in a linear direction under operation assistance control. FIG. 14 is a plan view of the robot when operating the robot in a curved direction under operation assistance control. FIG. 15 is a plan view of the robot when a short operation rod is attached to the robot device and the robot is operated in a rotational direction under operation assistance control. FIG. 16 is a plan view of the robot when a long operation rod is attached to the robot device and the robot is operated in a rotational direction under operation assistance control. FIG. 17 is a plan view of the robot when prioritizing the movement of the robot in a predetermined direction under operation assistance control.

[0010] A robot control device and a robot device according to an embodiment will be described with reference to Figures 1 to 24. The robot device according to the present embodiment includes a robot, a work tool, and a robot control device.

[0011] FIG. 1 shows a perspective view of a robot device according to this embodiment. FIG. 2 shows a perspective view of the robot according to this embodiment. FIG. 3 shows a block diagram of the robot device according to this embodiment. FIG. 2 shows drive axes J1 to J6 of the robot 1. With reference to FIGS. 1 to 3, the robot device performs a predetermined task based on an operation program. The robot device 8 according to this embodiment performs the task of grasping a workpiece and transporting it to a predetermined position. The robot device 8 includes a hand 2 as a work tool and a robot 1 that moves the hand 2. A robot control device 5 controls the operation of the hand 2 and the operation of the robot 1.

[0012] The hand 2 in this embodiment grips the workpiece by clamping it. Any work tool can be selected depending on the work to be performed by the robot device. For example, if the robot device performs arc welding, a welding torch can be attached to the robot as the work tool.

[0013] The robot 1 of this embodiment is an articulated robot including multiple joints. The robot 1 includes a base 14 fixed to a platform 86. The robot 1 includes a swivel base 13 supported on the base 14. The swivel base 13 rotates around a drive axis J1 relative to the base 14. The robot 1 includes an upper arm 11 and a lower arm 12 rotatably supported via joints. The lower arm 12 rotates around a drive axis J2 relative to the swivel base 13. The upper arm 11 rotates around a drive axis J3 relative to the lower arm 12. The upper arm 11 also rotates around a drive axis J4 parallel to the direction in which the upper arm 11 extends.

[0014] The robot 1 includes a wrist 15 rotatably connected to the end of the upper arm 11. The wrist 15 rotates about a drive axis J5 relative to the upper arm 11. The wrist 15 includes a flange 16 formed to be rotatable about a drive axis J6. The hand 2 is supported on the flange 16. Thus, the robot 1 of this embodiment has six drive axes, but is not limited to this. Any robot capable of moving a work tool can be employed.

[0015] The robot 1 includes a robot drive device that changes the position and posture of the robot 1. The robot drive device includes a robot drive motor 19 that drives components such as the arm and wrist. The hand 2 includes a tool drive device that drives the hand 2. The tool drive device includes a pressure pump, a valve, and the like for driving the fingers of the hand 2.

[0016] The robot 1 is provided with a position detector 18 that outputs the rotation angle of the drive shaft of the robot 1. The position detector 18 is configured, for example, by an encoder attached to the robot drive motor 19. The robot control device 5 can detect the position and posture of the robot 1 from the output of the position detector 18.

[0017] The robot control device 5 includes a teaching operation panel 49 as an operation panel with which the worker operates the robot. The teaching operation panel 49 includes an input unit 51 through which the worker inputs any information, and a display unit 50 that displays information related to the robot device 8. The display unit 50 can be configured with a display panel such as a liquid crystal display panel. The input unit 51 can be configured with input members such as buttons, a keyboard, and a dial.

[0018] If the display unit is configured as a touch panel, the display unit also functions as an input unit. The teaching pendant may be configured as a mobile terminal such as a tablet.

[0019] The teaching pendant 49 of this embodiment includes a member driving device that operates the members of the teaching pendant 49 so as to notify the operator of the current state of the robot. In this embodiment, a vibrator 52 that vibrates the housing of the teaching pendant 49 is provided as the member driving device.

[0020] The robot control device 5 includes a control device main body 4 including an arithmetic processing device (computer) having a CPU (Central Processing Unit) as a processor. The arithmetic processing device has a RAM (Random Access Memory) and a ROM (Read Only Memory), etc., which are connected to the CPU via a bus. An operation program 40 defines operation commands for driving the robot 1 and the hand 2. In this embodiment, the robot 1 and the hand 2 transport a workpiece by being driven based on the operation program 40.

[0021] The control device main body 4 includes a storage unit 42 that stores information related to the control of the robot device 8. The storage unit 42 can be configured with a non-transitory storage medium capable of storing information. For example, the storage unit 42 can be configured with a storage medium such as a volatile memory, a non-volatile memory, a magnetic storage medium, or an optical storage medium. A robot operation program 40 that defines the robot's operations is stored in the storage unit 42.

[0022] The control device main body 4 includes an operation control unit 43 that outputs operation commands for the robot. The control device main body 4 also includes a robot drive unit 45 including an electrical circuit that supplies electricity to the robot drive device, and a tool drive unit 44 including an electrical circuit that supplies electricity to the tool drive device. The operation control unit 43 outputs operation commands for driving the robot 1 to the robot drive unit 45 based on the operation program 40. The robot drive unit 45 supplies electricity to the robot drive motor 19 based on the operation commands. The operation control unit 43 outputs operation commands for driving the hand 2 to the tool drive unit 44 based on the operation program 40. The tool drive unit 44 supplies electricity to the hand drive device based on the operation commands.

[0023] The operation control unit 43 corresponds to a processor that operates in accordance with the operation program 40. The operation control unit 43 is configured to be able to read information stored in the storage unit 42. The processor functions as the operation control unit 43 by reading the operation program 40 and carrying out the control defined in the operation program 40.

[0024] The robot device 8 of this embodiment is configured so that teaching points can be taught by a direct teaching operation. In this embodiment, a direct teaching operation refers to a situation in which an operator changes the position and posture of the robot by directly pushing or pulling components of the robot device or members fixed to the robot device. For example, an operator can change the position and posture of the robot by grasping and moving the hand 2 with his or her hand. The position and posture of the robot when the desired position and posture are achieved are stored in the memory unit 42 as teaching points.

[0025] The robot device 8 is equipped with a sensor for detecting the force applied to the robot 1 by the operator during direct teaching operation. In this embodiment, a torque sensor 28 is provided for each robot drive motor 19 as a sensor for detecting the force applied to the robot by the operator. The torque sensor 28 detects the torque at the drive axes J1 to J6 at each joint of the robot 1.

[0026] The sensor for detecting the force applied to the robot 1 by the worker is not limited to this configuration, and any sensor capable of detecting the force applied to the robot by the worker can be used. For example, a force sensor capable of detecting force components in six-axis directions can be disposed between the flange and the work tool. This force sensor can detect forces in three orthogonal axes and moments as axial forces around the three axes. The six-axis force sensor can be disposed in any position. For example, the force sensor may be disposed on the base.

[0027] The robot control device 5 of this embodiment functions as a teaching device. The control device main body 4 generates an operation program 40 for performing an actual task based on the teaching points. The storage unit 42 stores a generation program 41 for generating the operation program 40 by a direct teaching operation. The generation program 41 corresponds to a computer program for performing a direct teaching operation.

[0028] The control device main body 4 includes a processing unit 60 that drives the robot 1 and generates the operation program 40 in response to the operator's operation. In direct teaching operation, when the operator applies force to a component of the robot device 8, the processing unit 60 performs control to change the position and posture of the robot 1 so that the component of the robot device 8 moves based on the direction of the applied force. The processing unit 60 includes a force acquisition unit 65 that detects the direction and magnitude of the force and torque applied to the component by the operator. The force acquisition unit 65 detects the force applied to the robot 1 based on the output of the torque sensor 28.

[0029] The processing unit 60 includes a motion command unit 67 that generates a command to drive the robot 1 based on the magnitude and direction of the force acquired by the force acquisition unit 65. The motion command unit 67 generates a motion command so that the robot 1 drives based on the force applied by the worker. The motion command unit 67 sends a motion command to the motion control unit 43 to drive the robot drive motor 19. The motion control unit 43 drives the robot 1 based on the command signal from the motion command unit 67 while a direct teaching operation is being performed.

[0030] The processing unit 60 includes a determination unit 66 that determines the state of the robot, including at least one of the robot's position and posture. In this embodiment, determining the state of the robot includes determining the position of the robot as well as variables related to the angle between members at at least one joint. For example, determining the state of the robot includes determining the angle between members at the joint and the rotation angle of the robot drive motor 19 at the joint. The processing unit 60 includes a notification control unit 68 that performs notification control to notify the operator of the state of the robot. The notification control unit 68 controls the image on the display unit 50 of the teaching pendant 49 and the operation of the vibrator 52. The processing unit 60 includes an operation force calculation unit 69 that calculates the magnitude and direction of the operation force at the point of force applied by the operator.

[0031] The processing unit 60 includes a state acquisition unit 61 that acquires the position and posture of the robot 1. The state acquisition unit 61 detects the position and posture of the robot 1 based on the output of the position detector 18. The processing unit 60 includes a teaching point setting unit 62 that sets the position and posture of the robot 1 acquired by the state acquisition unit 61 as a teaching point. The processing unit 60 includes a command statement generation unit 63 that generates a command statement for an operation included in the operation program 40 based on the teaching point set by the teaching point setting unit 62.

[0032] The processing unit 60 corresponds to a processor that operates based on the generation program 41. The processor functions as the processing unit 60 by carrying out the control defined in the generation program 41. Each of the units, namely, the state acquisition unit 61, the teaching point setting unit 62, the command statement generation unit 63, the force acquisition unit 65, the determination unit 66, the operation command unit 67, the notification control unit 68, and the operation force calculation unit 69, corresponds to a processor that operates based on the generation program 41. The processor functions as each of the units by carrying out the control defined in the generation program 41. Furthermore, the operation control unit 43 corresponds to a processor that operates based on the generation program 41.

[0033] A world coordinate system 87 is set in the robot device 8 of this embodiment. In the example shown in Fig. 1, the origin of the world coordinate system 87 is located on the base unit 14 of the robot 1. The world coordinate system 87 is also referred to as the reference coordinate system of the robot. The world coordinate system 87 is a coordinate system in which the position of the origin is fixed and the orientation of the coordinate axes is also fixed.

[0034] A tool coordinate system 88 is set in the robot device 8, with its origin set at an arbitrary position on the work tool. In this embodiment, the origin of the tool coordinate system 88 is set at the tool tip point. When the position and posture of the robot 1 change, the position of the origin of the tool coordinate system 88 and the orientation of the tool coordinate system 88 change. For example, the position of the robot 1 includes the position of the tool tip point (the position of the origin of the tool coordinate system 88). Furthermore, the orientation of the robot 1 includes the orientation of the tool coordinate system 88 with respect to the world coordinate system 87.

[0035] In this embodiment, the teaching work is performed by a direct teaching operation. When the robot position and posture are at the desired position and posture, the state acquisition unit 61 acquires the robot position and posture. The teaching point setting unit 62 sets the robot position and posture at this time as teaching points. The operator repeats the work of setting teaching points. The command statement generation unit 63 can generate command statements for the operation program based on the teaching points. In this way, the processing unit 60 can generate the operation program 40.

[0036] (Movement Modification Control) Next, we will explain the motion modification control that prevents the robot position from approaching a singular point during a direct teaching operation. In this embodiment, when the predetermined position of the robot's tip in the Cartesian coordinate system is determined, the robot position when the robot's posture cannot be uniquely calculated based on inverse kinematics is called a "singular point." In other words, when the robot is positioned at a singular point, the rotation angle of the robot drive motor in the robot's drive shaft (corresponding to the joint angle between the components at the joint) cannot be uniquely identified. Or, the Jacobian matrix representing the relationship between the velocity of the robot's tip and the velocity at the joint does not have full rank.

[0037] In this embodiment, the state of the robot, including the position and posture of the robot when the robot is positioned at the singular point, is referred to as the “specific state of the robot.” Here, the tip of the robot can be exemplified by the tool tip point 81 or the flange center point 82 where the surface of the flange of the robot wrist intersects with the drive axis J6.

[0038] However, even if the robot's position is deviated from the singularity, if the robot's position is located near the singularity, the robot's posture cannot be stably calculated from the robot's position in the Cartesian coordinate system, or the robot's operation may become unstable. In this embodiment, a "singularity region" of the robot's state is predefined around a specific state of the robot. If the robot's state is inside the singularity region, the robot's position is located near the singularity. The singularity region can be defined as a region where the robot's posture cannot be stably determined from the robot's position in the Cartesian coordinate system, or a region where the robot's operation becomes unstable.

[0039] In addition, in this embodiment, a "warning area" of the robot's state is predetermined as an area surrounding the singularity area. When the robot's state is inside the warning area, the robot's operation is stable, but when the robot's state is close to the singularity area, the warning area can be set so as to include the singularity area within it. For example, the warning area is configured as an area having a predetermined range outside the singularity area.

[0040] Next, specific examples of the singular points, specific states of the robot, singular point regions, and alert regions in this embodiment will be described. Note that the singular points, specific states of the robot, singular point regions, and alert regions vary depending on the configuration of the robot device, and therefore can be determined according to the configuration of the robot device.

[0041] 4 shows a side view of the robot when it is positioned at the first singular point of this embodiment. In this example, of the tool coordinate system 88 and the flange coordinate system 89, the flange coordinate system 89 will be used as the tip of the robot device 8. The flange coordinate system 89 is a coordinate system fixed to the flange 16. The position and orientation of the flange coordinate system 89 change along with the flange 16. The origin of the flange coordinate system 89 is located at the flange center point 82. In this case, the position of the robot 1 corresponds to the position of the flange center point 82 in the world coordinate system 87. The orientation of the robot 1 corresponds to the orientation of the flange coordinate system 89 relative to the world coordinate system 87.

[0042] The first specific state of the robot, which corresponds to the first singular point, corresponds to the position of the robot when the wrist 15 rotates to switch between FLIP and NOFLIP. At the joint 25 where the drive shaft J5 is located, the axis 11a extending along the upper arm 11 and the axis 15a extending along the wrist 15 are aligned. Alternatively, the first specific state is reached when the angle of the drive shaft J5 relative to the rotation angle of the robot drive motor 19 is, for example, 0°.

[0043] 5 shows a first side view illustrating the state of the wrist relative to the upper arm. For a first specific state of the robot, the singularity region and the warning region of the state of the robot can be defined by the region related to the angles between the components of the robot.

[0044] Here, the singularity region and the security region can be defined by the angle θa formed between the axis 11a of the upper arm 11 and the axis 15a of the wrist 15. The angle θa corresponds to the joint angle of the joint. For example, a region where the angle θa is within a range of ±5° can be defined as the first singularity region. Furthermore, the first security region is configured, for example, as a region within a range of 5° outside the first singularity region. In other words, the first security region can be defined as a region where the angle θa is greater than +5° and equal to or less than +10°, and a region where the angle θa is smaller than -5° and equal to or greater than -10°.

[0045] 5, the angle θa formed by the axis 15a of the wrist 15 and the axis 11a of the upper arm 11 about the drive axis J5 is −45° at the joint 25. When the wrist 15 rotates clockwise as indicated by arrow 91 at this time, the state of the robot approaches the first specific state.

[0046] 6 shows a second side view illustrating the state of the wrist relative to the upper arm. At the joint 25, the angle θa between the axis 15a of the wrist 15 and the axis 11a of the upper arm 11, centered on the drive axis J5, is +45°. When the wrist 15 rotates clockwise, as indicated by arrow 92, the state of the robot moves away from the first specific state.

[0047] The state acquisition unit 61 acquires the current position and posture of the robot. The determination unit 66 calculates the angle θa between the axis 15a and the axis 11a. Alternatively, it calculates the rotation angle of the robot drive motor 19 for the drive axis J5 corresponding to the angle θa. The determination unit 66 can then determine whether the state of the robot is in the first alert area or the first singularity area.

[0048] The state acquisition unit 61 can periodically acquire the position and posture of the robot. The determination unit 66 periodically calculates the angle between the axis 15a and the axis 11a, or the rotation angle of the robot drive motor 19 about the drive axis J5. The determination unit 66 then compares the previous angle with the current angle, and determines that the state of the robot is approaching the first specific state if the current angle is approaching the angle corresponding to the first specific state.

[0049] On the other hand, the determination unit 66 compares the previous angle with the current angle, and determines that the robot state is away from the first specific state if the current angle is farther away from the angle corresponding to the first specific state than the previous angle. The determination of whether the robot state is approaching or farther away from the first specific state changes, for example, even for the same rotation direction, at the boundary where the angle θa reaches 180°.

[0050] Alternatively, the determination unit 66 periodically calculates the difference between the current angle of the drive axis J5 and the angle in a specific state of the robot. If the difference in angle calculated this time is smaller than the difference in angle calculated previously, it can be determined that the robot's state is approaching the specific state. Alternatively, if a force or moment is input that reduces the difference in angle calculated, it can be determined that the robot is approaching the specific state based on the direction of the input force or moment. For example, the direction of the force or moment that indicates the robot is approaching the specific state may be predetermined and stored in the storage unit. Alternatively, if the robot's state is approaching the specific state, the direction of the force or moment can be periodically calculated, and if the sign indicating the direction of the force or moment does not change, it can be determined that the robot is approaching the specific state.

[0051] 7 is a perspective view of the robot when the robot is positioned at the second singular point of this embodiment. This shows the second specific state of the robot when the robot is positioned at the second singular point. The second singular point corresponds to the position of the robot when the robot's posture switches from UP to DOWN. In the second specific state, the axis 12a of the lower arm 12 and the axis 11a of the upper arm 11 are aligned in a straight line passing through the drive axis J3 at the joint 23 including the drive axis J3.

[0052] In this example of the second singular point, the angle θb between the axis 11a and the axis 12a is 180°, but this is not limiting. The second specific state of the robot also applies when the angle between the axis 11a and the axis 12a is ±0°. That is, the second specific state of the robot also applies when the axis 11a of the upper arm 11 and the axis 12a of the lower arm 12 overlap when viewed from the side. In the second specific state of FIG. 7, the angle of the drive axis J3 relative to the rotation angle of the robot drive motor 19 is set to +90°.

[0053] 8 shows a side view of the robot, illustrating the state of the upper arm relative to the lower arm. With regard to the second specific state of the robot, the singularity region and the alert region of the robot's state can also be determined by the angle between the robot's constituent parts. Here, the singularity region and the alert region of the robot's state can be determined by the angle θb formed between the axis 12a of the lower arm 12 and the axis 11a of the upper arm 11.

[0054] For example, the second singularity region can be defined as a region where the angle θb between the axis 12a and the axis 11a is in the range of 180°±10°. Furthermore, the second singularity region can be defined as a region where the angle θb between the axis 12a and the axis 11a is in the range of 0°±10°. The second alert region can be configured, for example, as a region having a range of 10° outside the second singularity region. The determination unit can determine whether the state of the robot is within the second alert region or the second singularity region based on the angle θb between the axis 12a and the axis 11a or the rotation angle of the robot drive motor 19 corresponding to the angle θb.

[0055] In the state of the robot shown in Figure 8, the angle θb between the axis 11a and the axis 12a is an obtuse angle (greater than 90°). As indicated by arrow 91, the determination unit 66 can determine that the state of the robot is approaching the second specific state when the angle θb rotates toward +180°, which corresponds to the second specific state. Conversely, when the upper arm 11 rotates relative to the lower arm 12 in the direction indicated by arrow 92, the determination unit 66 can determine that the state of the robot is being driven in a direction away from the second specific state.

[0056] FIG. 9 shows another side view of the robot illustrating the state of the upper arm relative to the lower arm. In the state of the robot shown in FIG. 9, the angle θb formed between the axis 11a of the upper arm 11 and the axis 12a of the lower arm 12 is an acute angle (less than 90°). As indicated by arrow 91, the determination unit 66 can determine that the state of the robot is approaching the second specific state when the angle θb approaches 0°, which corresponds to the second specific state. Conversely, when the upper arm 11 rotates relative to the lower arm 12 in the direction indicated by arrow 92, the determination unit 66 can determine that the state of the robot is moving away from the second specific state. In this way, with regard to the second specific state, the determination method can be changed depending on whether the angle formed between the axis of the lower arm and the axis of the upper arm is an acute angle or an obtuse angle.

[0057] Similarly to the method for determining the first specific state, the determination unit 66 periodically calculates the angle between the axis 11a and the axis 12a or the rotation angle of the robot drive motor 19 about the drive axis J3. The determination unit 66 then compares the previous angle with the current angle, and can determine that the robot state is approaching the first specific state if the current angle is closer to the angle corresponding to the first specific state than the previous angle. Alternatively, similar to the determination for the first specific state, it may be determined whether the robot is approaching the specific state based on the difference angle between the current angle of the drive axis J3 and the angle in the robot's specific state, or the direction of the force or moment.

[0058] 10 shows a side view of the robot when it is positioned at the third singular point of this embodiment. When the robot is positioned at the third singular point, the robot enters a third specific state. The third singular point corresponds to the position of the robot when the robot's posture switches from FRONT to BACK. In the third specific state, the flange center point 82, which serves as the tip of the robot device, is positioned on the drive axis J1. In this way, the third specific state can be determined by the position of the tip of the robot device.

[0059] The tool tip point may be used as the tip of the robot device instead of the flange center point. That is, when the tool tip point is located on the drive axis J1, the robot may be determined to be in the third specific state.

[0060] 11 shows a plan view of the robot illustrating the singularity area and the alert area for the third singularity. For the third singularity, the singularity area and the alert area are defined in the area related to the position of the flange center point 82 of the robot 1.

[0061] The third singularity region and the third alert region of the robot's state can be determined by the distance from the drive axis J1. In this example, the determination unit 66 can determine that the robot's state is in the third singularity region when the distance r from the drive axis J1 to the flange center point 82 is equal to or less than a predetermined distance ra when viewed in a plan view in the direction in which the drive axis J1 extends. The distance ra can be, for example, 100 mm.

[0062] Furthermore, the determination unit 66 can determine that the robot is in a third alert region when the distance r from the drive shaft J1 to the flange center point 82 is greater than the distance ra and equal to or less than the distance rb. The distance rb can be, for example, 200 mm. As with the first and second singular points, the alert region for the third singular point can be configured as an area having a predetermined distance range from outside the singular point region.

[0063] The determination unit 66 acquires the position and posture of the robot and can determine whether the robot's state is in the alert area or singularity area based on the distance r from the drive axis J1 to the flange center point 82.

[0064] Furthermore, the determination unit 66 can determine that the state of the robot is moving away from the third specific state when the flange center point 82 moves in a direction away from the drive axis J1. For example, the determination unit 66 periodically calculates the distance from the flange center point 82 to the drive axis J1. The determination unit 66 compares the previous distance with the current distance, and can determine that the state of the robot is approaching the third specific state if the current distance is smaller than the previous distance. On the other hand, the determination unit 66 can determine that the state of the robot is moving away from the third specific state if the current distance is larger than the previous distance.

[0065] Alternatively, the determination unit 66 calculates the vectors of arrows 93 and 94 when viewing the robot along the direction in which the drive axis J1 extends. Here, a plan view of the robot as viewed from the positive direction of the Z axis in the world coordinate system 87 is shown. Arrow 93 is a vector directed from the drive axis J1 toward the flange center point 82. Arrow 94 is a vector in the direction in which the flange center point 82 moves due to the operator's operation. For example, this vector is obtained by converting the direction of force applied by the operator into the direction of force at the flange center point 82.

[0066] The determination unit 66 determines that the state of the robot is moving away from the third specific state when the dot product of the vector indicated by the arrow 93 and the vector indicated by the arrow 94 is positive. On the other hand, the determination unit 66 can determine that the state of the robot is approaching the third specific state when the dot product is negative.

[0067] In the example shown in FIG. 11 , the third singularity region and the third warning region are formed as cylinders extending along the drive axis J1, but are not limited to this form. The singularity region and the warning region may have any shape extending along the drive axis J1. For example, the singularity region and the warning region may be formed as a rectangular prism. Furthermore, the singularity region and the warning region may have any shape. For example, the singularity region and the warning region may be formed as a sphere or a cube. In this case, a vector in three-dimensional space, rather than a vector on a predetermined plane, can be calculated to determine whether the state of the robot is approaching the third specific state.

[0068] Fig. 12 shows a flowchart of the motion correction control in this embodiment. Fig. 12 is a flowchart of the control performed during direct teaching operation. In step 110, the operator grasps any part of the robot 1 or the hand 2 and applies a force in the direction to drive the robot. In step 111, the state acquisition unit 61 acquires the state of the robot, including the position and posture of the robot. In addition, the force acquisition unit 65 acquires the force detected by the torque sensor 28.

[0069] In step 112, the determination unit 66 acquires the angles of the joints or the positions of the flange center points for the first to third specific states. The determination unit 66 determines whether the robot state is within a security zone. In step 112, if the robot state is within at least one of the first to third security zones, control proceeds to step 113.

[0070] In step 113, the determination unit 66 determines the state of the robot when the robot is in the alert area. In addition to determining whether the robot is in the alert area, the determination unit 66 determines whether the robot is approaching a specific state. If at least one robot state is approaching a specific state, the determination unit 66 determines that the robot is approaching a specific state. In this case, control proceeds to step 114.

[0071] In step 114, the notification control unit 68 performs notification control to notify the operator of the robot's status. For example, the notification control unit 68 displays on the display unit 50 that the robot is in a warning area and is approaching a specific state. The notification control will be described in detail later.

[0072] In step 115, the motion command unit 67 performs motion correction control to generate motion commands that limit the motion of the robot that approaches a specific state. For example, the upper limit of the speed at which the robot moves is lowered to make the worker feel heavier. The motion command unit 67 generates motion commands for the robot and drives the robot. The motion correction control will be explained in detail later. The motion control unit 43 drives the robot based on the motion commands created by the motion command unit 67. Control then proceeds to step 117.

[0073] In step 112, if the state of the robot deviates from the warning region, control proceeds to step 116. In addition, in step 113, if the state of the robot is not approaching a specific state, control proceeds to step 116. For example, when the state of the robot leaves the singularity region, control proceeds to step 116.

[0074] In step 116, the processing unit 60 performs normal control to drive the robot in accordance with the operator's operation. The operation command unit 67 generates a command to drive the robot in accordance with the operator's operation. At this time, operation correction control that restricts operations that cause the robot's state to approach a specific state is not performed. The operation control unit 43 allows operations that cause the robot's state to approach a specific state. The operation control unit 43 drives the robot based on the operation command created by the operation command unit 67. Then, control proceeds to step 117.

[0075] In step 117, the processing unit 60 determines whether or not a command to end the direct teaching operation has been received. If a signal to end the direct teaching operation has been received in step 117, this control is ended. If a signal to end the direct teaching operation has not been received in step 117, control returns to step 110, and the control from step 110 to step 117 is repeated.

[0076] (Notification Control) Next, notification control for notifying the worker of the robot's status will be described. When the robot's status is in the alert zone and is approaching a specific state, the notification control unit 68 performs control for notifying the worker of the robot's status. The notification control unit 68 can perform control for visually notifying the worker by displaying an image relating to the robot's status on the display unit.

[0077] 13 shows a first image displayed on the display unit of the teaching pendant. The first image 71 is an image displayed when the robot state is in the first alert zone and is approaching the first specific state. In image 71, text is displayed indicating that the robot state is in the alert zone. Furthermore, a yellow circle is attached to the joint of the drive shaft J5 to indicate that the robot state is approaching the first specific state. The yellow color indicates that the robot is in the alert zone.

[0078] Fig. 14 shows a second image displayed on the display unit of the teaching pendant. Fig. 15 shows a third image displayed on the display unit of the teaching pendant. With reference to Figs. 14 and 15, a second image 72 and a third image 73 are images displayed when the robot state has entered the second alert area and is approaching the second specific state.

[0079] In the second image 72, the distance between the line connecting the drive axis J5 and the drive axis J2 and the drive axis J3 is indicated by text, as shown by arrow 95. In this example, the robot enters the second specific state when the distance indicated by arrow 95 becomes 0 mm. In the third image 73, the angle θ at the joint of the drive axis J3 is displayed by text, indicating that the robot is approaching the singularity region. Specifically, the angle θ between the axis of the lower arm and the axis of the upper arm is widening, indicating that the robot is approaching the second specific state.

[0080] 16 shows a fourth image 74 displayed on the display unit of the teaching pendant. The fourth image 74 is displayed when the robot state has entered the third alert zone and is approaching the third specific state. Image 74 displays text indicating that the robot state is approaching the singularity zone. Additionally, an arrow 96 is displayed along with the distance between the drive shaft J1 and the flange center point.

[0081] FIG. 17 shows a fifth image displayed on the display unit of the teaching pendant. The fifth image 75 displays information related to the first, second, and third specific states. In the image 75, the joints to be judged are surrounded by symbols 75d to 75f. For the drive axis J5 related to the first singular point and the drive axis J1 related to the third singular point, the robot's state is not within the alert zone or is not approaching a specific state. Circle symbols 75a and 75c are displayed at the joints of the drive axis J1 and the drive axis J5, indicating that the robot is in a normal state. Furthermore, the symbols 75d and 75f surrounding the joints may be colored blue or other colors to indicate that the robot is in a normal state.

[0082] On the other hand, for the drive axis J3 related to the second singular point, the robot's state has entered the alert zone and is approaching the second specific state. Therefore, the fact that the robot's state is approaching the second specific state is displayed by a triangle symbol 75b. Furthermore, the inside of the symbol 75e surrounding the drive axis J3 is displayed in yellow. In this way, the current state of the robot can be displayed using letters, symbols, and colors for the drive axes related to each singular point.

[0083] In particular, the display unit can display the proximity of the current robot state to a specific robot state using at least one of text, symbols, and colors. By implementing this control, the operator can easily grasp the proximity of the current robot state to a specific robot state.

[0084] The display unit can also display, using at least one of text, color, and symbol, that the current state of the robot is approaching a specific state. By implementing this control, the operator can easily understand that the state of the robot is approaching a specific state.

[0085] The notification control unit can perform control to display images similar to the above images 71 to 75 when the robot's state is in a singularity area. For example, the notification control unit can display text indicating that the robot's state is in a singularity area. Alternatively, the notification control unit can perform control to display the inside of a symbol surrounding a joint that is in a singularity area in red. The display unit is not limited to the display unit of the teaching pendant, and can be a display unit of any device. For example, an independent display unit may be connected to the control device main body via a communication line.

[0086] Next, the notification control unit 68 drives a member that the worker touches, thereby tactilely notifying the worker of the current robot state. The vibrator 52 serving as a member driving device in this embodiment changes the magnitude or type of movement based on the proximity of the current robot state to a specific robot state.

[0087] 18 shows a time chart of vibration patterns when the teaching pendant is vibrated by a vibrator. When the robot state is in the alert zone and is approaching a specific state, the notification control unit 68 operates the housing of the teaching pendant 49 as a member that the operator can contact. The notification control unit 68 can notify the operator tactilely.

[0088] The vibrator 52 of this embodiment is configured so that the type of vibration can be changed on the teaching pendant 49. The state of the robot in the example shown in FIG. 18 is approaching a specific state. Furthermore, the examples show the robot's state outside the security zone, the state inside the security zone, and the state in the singularity zone. When the robot is outside the security zone, the vibration of the housing starts at times t1 to t6. The vibration stops after a predetermined short time has elapsed. In other words, the vibration occurs at short time intervals. Alternatively, the vibration may be stopped when the robot's state deviates from the security zone.

[0089] Next, when the robot's state is in the alert zone, vibrations are generated for a medium duration, and when the robot's state is in the singularity zone, vibrations are generated for a long duration to alert the operator.

[0090] In this way, the type of action to be tactilely notified can be changed depending on the state of the robot. In particular, the type of action can be changed based on the proximity of the current robot state to a specific robot state. For example, as in this embodiment, control can be implemented to lengthen the duration of each vibration as the robot state approaches a specific state.

[0091] 19 shows a graph of the relationship between the variable indicating the proximity to a specific state and the magnitude of vibration in this embodiment. The variable indicating the proximity to a specific state may be the distance indicated by the arrow 95 in FIG. 14 or the angle θ shown in FIG. 15. The magnitude of the movement can be changed based on the proximity of the current robot state to the specific state. In this example, the notification control unit 68 can implement control to increase the vibration the closer the current robot state is to the specific state.

[0092] In this embodiment, a vibrator that vibrates the housing of the teaching pendant is provided as the member driving device, but this is not limiting. Any device that operates the members of the pendant may be used as the member driving device. For example, a device that drives the pendant so that a portion of the gripping portion bulges may be used as the member driving device.

[0093] By implementing the notification control of this embodiment, the alert area can be recognized visually or tactilely, and it is easy to understand that the robot's state is approaching a specific state. As a result, when an operator is performing direct teaching operations, the robot's state can be prevented from entering a singularity area. This can prevent the robot's operation from suddenly becoming unstable, making direct teaching operations easier.

[0094] (Movement Modification Control) Next, the movement modification control that restricts the movement of the robot will be described. The determination unit 66 determines that the current state of the robot is within the alert zone and that the state of the robot is approaching a specific state. In this case, the movement command unit 67 implements movement modification control that generates a movement command that restricts the movement of the robot that causes the state of the robot to approach the specific state. By implementing the movement modification control of this embodiment, it is possible to prevent the state of the robot from approaching the specific state of the robot.

[0095] In the first motion modification control of this embodiment, the motion command unit 67 generates a motion command for the robot so that at least one of the movement speed of the tool tip point, the movement speed of the joint (elbow speed), and the rotational speed of the robot drive motor that drives each drive axis does not exceed a predetermined upper limit value.

[0096] For example, the motion command unit 67 can implement control to reduce the upper limit of the movement speed of the tool tip. This control prevents the robot from moving at a speed faster than the upper limit when the speed of the tool tip reaches the upper limit. Even if the operator applies the same operating force, the movement distance in a given time will be smaller than the movement distance before the upper limit was reduced. This makes the operator feel that pushing or pulling the robot is harder. As a result, the robot's state can be prevented from approaching a specific state. Similarly, by setting small upper limits for the movement speed of the joints and the rotational speed of the robot drive motors that drive each drive axis, the robot's state can be prevented from approaching a specific state.

[0097] The upper speed limit in the motion correction control can be set to a speed that ensures the safety of the worker if the worker comes into contact with the robot, i.e., the robot can be driven at a slow speed that does not cause any problem if the robot comes into contact with the worker.

[0098] In the second motion modification control of this embodiment, the force acquisition unit 65 acquires the magnitude of the force applied by the worker from the output of the torque sensor 28. An upper limit of the force corresponding to the upper limit of the predetermined speed in the motion modification control is set in advance. Even if the force detected by the force acquisition unit 65 is greater than the predetermined upper limit, the motion command unit 67 modifies the detected force to the upper limit. The motion command unit 67 then modifies the motion speed of the robot based on the upper limit of the operating force. Even in this control, the predetermined speed of the robot can be controlled so as not to exceed the upper limit, allowing the worker to feel that the operation has become heavier.

[0099] In the third motion modification control of this embodiment, the motion command unit 67 can set a coefficient by which to multiply a predetermined speed or a force applied by the worker when generating a motion command for the robot. In the motion modification control, the motion command unit 67 can implement control using a small coefficient. For example, the robot speed is reduced by reducing the coefficient by which to multiply the speed. Alternatively, the robot speed is reduced by reducing the coefficient by which to multiply the force acquired by the force acquisition unit 65. Even in this control, the predetermined speed of the robot can be controlled so as not to exceed the upper limit, allowing the worker to feel that the operation has become heavier.

[0100] In the fourth motion modification control of this embodiment, the motion command unit 67 changes the time it takes to reach a predetermined commanded speed. For example, the motion command unit 67 executes control to reduce the rotational acceleration of the robot drive motor 19 to reach the predetermined speed. This control lengthens the time it takes for the robot drive speed to reach the specified speed. This makes the operator feel that the operation has become heavier.

[0101] In the motion modification control of this embodiment, the robot motion command may be changed depending on the proximity of the current robot state to a specific robot state. For example, the closer the current robot state is to the specific state, the lower the upper limit of the robot's driving speed may be, so that a predetermined upper limit of the speed, an upper limit of the operating force, a coefficient, or the rotational acceleration when driving the motor may be changed. In other words, by dynamically switching the parameters related to operability, it is possible to make the operation feel heavier or lighter.

[0102] In the fifth motion modification control of this embodiment, the motion command unit 67 generates a motion command to drive the robot in a direction away from a specific state. That is, the robot is driven so that its state moves away from a specific state regardless of the intention of the operator operating the robot. For example, when the robot enters a security zone or reaches the outer boundary of the security zone, the sign of the force or moment vector applied by the operator can be reversed, or the direction of the force or moment can be corrected so that the sign of the dot product of the force and velocity, or the moment and each velocity, is reversed. This control makes it possible to prevent the robot's state from entering the security zone.

[0103] The fifth motion modification control may be performed when the state of the robot reaches the boundary between the singularity region and the alert region, and this control can prevent the state of the robot from entering the singularity region.

[0104] In the sixth motion modification control of this embodiment, a control is implemented in which the velocity component of the motion in the direction approaching a specific state is set to zero. This control also makes it possible to drive the robot so that the robot state does not approach the specific state, regardless of the intention of the worker operating the robot. For example, consider a case in which the tool tip point is moving in a direction having components in the X-axis and Y-axis directions of the world coordinate system 87. In this case, if moving the tool tip point in the Y-axis direction would approach the specific state, a control can be implemented in which the velocity component in the Y-axis direction is set to zero. This control also makes it possible to prevent the robot state from approaching the specific state.

[0105] In the motion correction control of this embodiment, by restricting the motion of the robot approaching a specific state, it is possible to intuitively grasp the alert zone. Furthermore, when the robot's state is moving away from the specific state, it can be operated with less force than when the robot's state is approaching the specific state, improving the work efficiency of direct teaching operations. Furthermore, even if the robot's state enters a singularity zone and its motion becomes unstable, the speed is reduced by a predetermined amount in the alert zone, improving safety.

[0106] The above-described motion correction control is exemplified as a case where the robot state is in the alert zone, but is not limited to this. Similar control can also be implemented when the robot state is in the singularity zone. In this case, the restrictions on the robot's motion approaching a specific state can be stricter than when the robot state is in the alert zone.

[0107] (Operation Assist Control) Operation assist control for assisting an operator in operation will be described with reference to Fig. 3 and Fig. 20 to Fig. 24. The operation assist control controls the robot so that the operator can easily change the position and posture of the robot in a direct teaching operation.

[0108] 3 , the operational force calculation unit 69 of the processing unit 60 calculates the direction and magnitude of the operational force applied by the worker at the point of force, based on the magnitude and direction of the force acquired by the force acquisition unit 65. Here, the "point of force" refers to the point at which the worker applies force to a component of the robot device or a member fixed to the robot device. The operation command unit 67 generates a command to drive the robot based on the magnitude and direction of the operational force at the point of force calculated by the operational force calculation unit 69.

[0109] The operation command unit 67 in this embodiment can perform at least one of the following controls: control to restrict the movement of the robot in a specified direction and control to promote the movement of the robot in a specified direction, based on the operator's operating force to drive the robot.

[0110] 20 shows a plan view of the robot for explaining the first operation assist control of this embodiment. In the first operation assist control, control is performed in which priority is given to linear movement of the robot between linear movement and rotational movement of the robot.

[0111] In this example, a control rod 31 that the operator holds when changing the position and posture of the robot is fixed to the hand 2. The operator holds the control rod 31 and drives the robot in a linear direction as indicated by arrow 97. The flange center point 82 moves linearly. The force point 83 is the position where the operator holds the control rod 31.

[0112] The position of the force point 83 on the robot device can be set in advance by an operator. For example, the position of the force point relative to the flange center point 82 can be set in advance using coordinate values ​​in a flange coordinate system 89. The force acquisition unit 65 acquires the force applied to the robot 1 from the torque sensor 28. The operation force calculation unit 69 calculates the magnitude and direction of the operation force acting on the flange center point 82 based on the magnitude and direction of the force detected by the torque sensor 28. Furthermore, the operation force calculation unit 69 calculates the magnitude and direction of the operation force acting on the force point 83 based on the relative position of the force point 83 with respect to the flange center point 82. The operation command unit 67 can generate an operation command to drive the robot based on the magnitude and direction of the operation force acting on the force point 83.

[0113] However, even if the operator attempts to move in a linear direction as indicated by arrow 97, the flange center point 82 and the force point 83 are far apart, so a moment is more likely to be applied than a force. For this reason, the operator may also operate in a rotational direction. In other words, the flange center point 82 may move in the rotational direction in addition to the linear direction.

[0114] For linear movement indicated by arrow 97, only the joints of the drive axes J2, J3, and J5 need to be driven. On the other hand, the joints of the drive axes J1, J4, and J6 do not need to be driven because they contribute to rotational movement. This allows for the rotational movement of the robot to be limited, regardless of the linear movement or rotational movement of the robot. For example, the movement of the drive axes J1, J4, and J6 can be more limited than that of the drive axes J2, J3, and J5. For example, the robot drive motors 19 of the drive axes J1, J4, and J6 are controlled to increase operability.

[0115] The control for limiting the motion of the robot drive motor for each drive axis is similar to the control for limiting motion in the motion modification control described above. For example, it is possible to employ control for reducing the upper limit of the speed at which the robot moves in the rotational direction, control for reducing the upper limit of the operating force in the rotational direction, control for changing the coefficient related to the rotational speed of the robot drive motor, and control for reducing the acceleration of the robot drive motor.

[0116] Alternatively, control may be implemented to promote linear movement of the robot between linear and rotational movements of the robot. Here, control may be implemented to promote the movement of the robot drive motors on the drive axes J2, J3, and J5. For example, control may be implemented to increase the upper limit of the speed at which the robot moves in the rotational direction, increase the upper limit of the operating force in the rotational direction, change a coefficient related to the rotational speed of the robot drive motor, or increase the acceleration of the robot drive motor.

[0117] The drive axes that limit the operation of the robot drive motor or the drive axes that accelerate the operation of the robot drive motor can be determined in advance by the operator and stored in a memory unit. In the first operation assistance control, linear movement is prioritized over rotational movement, so that the robot can be driven in accordance with the operator's intentions.

[0118] 21 shows a plan view of the robot for explaining the second operation assist control of this embodiment. In the second operation assist control, control is performed in which priority is given to the rotational movement of the robot between the linear movement of the robot and the rotational movement of the robot.

[0119] The operating rod 31 is attached to the hand 2 so as to extend downward in the vertical direction. In this case, if the distance from the center of rotation to the point of force is short, the moment becomes small, and therefore a large operating force is required for operation. In this example, control can be implemented to limit the linear movement of the robot. That is, the operation of the robot drive motor on the drive shaft for driving the robot in the linear direction can be limited. Alternatively, control can be implemented to promote the rotational movement of the robot. That is, the operation of the robot drive motor on the drive shaft for driving the robot in the rotational direction can be promoted.

[0120] For example, when rotating around the operating rod 31 as shown by the arrow 98, the upper limit of the speed of the drive shafts other than the drive shaft for driving in the direction shown by the arrow 98 can be set low. Alternatively, the upper limit of the rotation speed of the robot drive motor of the drive shaft for driving in the direction shown by the arrow 98 can be set high. As a result, the operation for driving in the direction shown by the arrow 98 becomes lighter, and the operation for driving in a direction other than that shown by the arrow 98 becomes heavier. Other controls are the same as those in the first operation assistance control.

[0121] In the first operation assistance control and the second operation assistance control, the motion command unit 67 generates a motion command that restricts either the linear motion or the rotational motion of the robot, or a motion command that promotes either the linear motion or the rotational motion of the robot. The motion command unit 67 can set an upper speed limit for each drive axis. This control makes it easier for the robot to drive in the direction desired by the operator, improving the work efficiency of direct teaching operations.

[0122] 22 and 23 are plan views of the robot for explaining the third operation assist control in this embodiment. In the third operation assist control, a rotational movement is performed as indicated by arrows 99 and 100. In this case, the second operation assist control may be performed to give priority to the rotational movement.

[0123] In the example shown in FIG. 22 , a short operating rod 31 is attached to the hand 2. The position of the force point 83 is closer to the flange center point 82. Therefore, when driving the robot in the rotational direction as indicated by arrow 99, the operator needs to operate it with a large operating force (the force that the operator applies to the force point 83). Alternatively, the force detected by the force acquisition unit of the control device will be small. In contrast, in FIG. 23 , an operating rod 32 that is longer than the operating rod 31 is attached to the hand 2. The position of the force point 83 is farther from the flange center point 82. Therefore, when driving the robot in the rotational direction as indicated by arrow 100, the operator only needs to operate it with a small operating force.

[0124] In the third operation assist control, the robot's operation is controlled so that it can be operated with the same operating force, regardless of the distance from the force point 83 to the flange center point 82. For example, the shorter the operating rod 31, the shorter the distance between the force point 83 and the flange center point 82. Therefore, to prevent the force acquired by the force acquisition unit from being too small, the shorter the distance between the force point 83 and the flange center point 82, the more the robot's rotational operation can be promoted. For example, the upper limit value of the speed of the robot drive motor 19 on the drive shaft for driving the robot in the rotational direction can be set to a high value. Conversely, the longer the distance between the force point 83 and the flange center point 82, the more the robot's rotational operation can be restricted.

[0125] By implementing this control, the operator can rotate the robot with approximately the same operating force regardless of the distance between the flange center point and the point of application of force.Also, the operator can avoid using too little or too much operating force when rotating the robot.

[0126] In the first to third operation assistance controls described above, the operator inputs information regarding which of the linear and rotational movements of the robot is to be prioritized into the robot control device, but this is not a limitation. The robot control device may automatically determine which movement is to be prioritized.

[0127] For example, the operation force calculation unit calculates the linear force and rotational moment at the point of force. Then, the motion command unit compares the linear force components (force in the X-axis direction, force in the Y-axis direction, and force in the Z-axis direction) with the rotational moment components (moment in the W-axis direction, moment in the P-axis direction, and moment in the R-axis direction) in the world coordinate system. By comparing the linear force components with the rotational moment components, it is possible to determine which of the linear motion and the rotational motion is to be prioritized. For example, if the linear force component is greater than a predetermined magnification of the rotational force component, the linear motion can be prioritized.

[0128] Alternatively, by comparing the linear force component and the rotational moment component, it is possible to control the velocity in the direction of a very small force component to be zero. For example, when the magnitude of the largest component of the linear force component and the rotational moment component is set to 100, it is possible to control the velocity in the direction of a component with a magnitude of 10 or less to be zero.

[0129] The operation assistance control of this embodiment allows the operator to easily change the position and posture of the robot during direct teaching operations. In particular, the robot can be driven in the direction desired by the operator, improving work efficiency. Furthermore, during direct teaching operations, the robot can be prevented from coming into contact with the workpiece or peripheral equipment.

[0130] 24 is a plan view of a robot device for explaining the control of automatically selecting a robot motion to be prioritized between linear motion and rotational motion. A coating nozzle 3 for coating adhesive is attached to the robot 1 as a work tool. The robot performs the task of coating adhesive on the outer periphery of a workpiece 35 having a circular cross section.

[0131] In the direct teaching operation, the operator moves the application nozzle 3 in the rotational direction as shown by arrow 101 while maintaining the application nozzle 3 facing the outer peripheral surface of the workpiece 35. Here, an external camera captures images of the robot device and the workpiece from above the robot. The robot control device calculates the movement of the application nozzle 3 along the surface of the workpiece by analyzing the images.

[0132] In this example, the robot control device calculates the movement direction of the application nozzle 3 while it remains directed toward the workpiece 35. The robot control device determines that linear movement in the X-axis, Y-axis, and Z-axis directions in the world coordinate system, and rotational movement in the R-axis direction are required.

[0133] For example, the robot control device can perform control to prioritize linear motion in the X-axis, Y-axis, and Z-axis directions in the world coordinate system and rotational motion in the R-axis direction over motion in other axes. By performing this control, rotational motion in the W-axis and P-axis directions becomes less likely to occur, making it easier to perform direct teaching operations. This also improves the work efficiency of direct teaching operations.

[0134] According to at least one of the embodiments described above, it is possible to provide a robot control device that improves the work efficiency of direct teaching operations of a robot.

[0135] Although the present disclosure has been described in detail, the present disclosure is not limited to the individual embodiments described above. Various additions, substitutions, modifications, partial deletions, etc. are possible in these embodiments without departing from the gist of the present disclosure or the spirit of the present disclosure derived from the content of the claims and their equivalents. These embodiments can also 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 examples and are not limited to these. The same applies when numerical values ​​or mathematical expressions are used in the description of the above-described embodiments.

[0136] The following supplementary notes are disclosed regarding the above-described embodiment and modifications.

[0137] (Supplementary Note 1) A robot control device comprising: a force acquisition unit that acquires a force applied to a robot; an operation command unit that generates an operation command to drive the robot based on the magnitude and direction of the force acquired by the force acquisition unit; and a judgment unit that judges the state of the robot including at least one of the position and posture of the robot, wherein a singularity area of ​​the robot's state is predetermined around a specific state of the robot in which the position of the robot is located at a singularity, and a warning area of ​​the robot's state is predetermined around the singularity area, and the judgment unit judges whether the state of the robot is within the warning area and whether the state of the robot is approaching the specific state.

[0138] (Supplementary Note 2) The robot control device according to Supplementary Note 1, wherein the alert area is configured as an area having a predetermined range outside the singularity area.

[0139] (Supplementary Note 3) The robot control device according to Supplementary Note 1, wherein the alert area includes an area relating to an angle between components of the robot, or an area relating to the position of a flange center point or a tool tip point of the robot.

[0140] (Appendix 4) A robot control device according to any one of Appendices 1 to 3, wherein the operation command unit generates an operation command that restricts an operation that would cause the robot's state to approach a specific state when the robot's state is in a warning area and is approaching a specific state.

[0141] (Appendix 5) The robot control device according to Appendix 4, wherein the operation command unit generates an operation command for the robot so that at least one of the movement speed of the tool tip point, the movement speed of the robot joint, and the rotation speed of the motor that drives each drive axis does not exceed a predetermined upper limit value.

[0142] (Supplementary Note 6) The robot control device according to Supplementary Note 5, wherein the upper limit of the speed is set to a speed that ensures the safety of the worker if the worker comes into contact with the robot.

[0143] (Supplementary Note 7) The robot control device according to any one of Supplementary Notes 4 to 6, wherein the operation command unit changes the operation command for the robot depending on the proximity of the current state of the robot to a specific state of the robot.

[0144] (Appendix 8) A robot control device as described in Appendix 4, wherein the operation command unit performs control to generate an operation command to drive the robot in a direction away from the specific state when the robot's state is in a warning area and is approaching a specific state, or control to set the speed component in the direction approaching the specific state to zero when the robot's state is in a warning area and is approaching a specific state.

[0145] (Appendix 9) A robot control device according to any one of Appendices 1 to 3, comprising a notification control unit that performs control to notify an operator of the robot's state, wherein the notification control unit performs control to notify the operator of the robot's state when the robot's state enters a warning area and when the robot's state approaches a specific state.

[0146] (Supplementary Note 10) The robot control device according to Supplementary Note 9, wherein the notification control unit performs control to visually display the state of the robot on a display unit or control to tactilely notify the worker by driving a member that the worker touches.

[0147] (Supplementary Note 11) A robot control device according to Supplementary Note 9 or 10, comprising a display unit that displays the state of the robot, wherein the display unit displays, using at least one of text, color, and symbol, that the current state of the robot is approaching a specific state.

[0148] (Supplementary Note 12) A robot control device according to Supplementary Note 9 or 10, comprising a display unit that displays the state of the robot, wherein the display unit displays the proximity of the current state of the robot to a specific state of the robot using at least one of text, color, and symbol.

[0149] (Appendix 13) A robot control device according to appendix 9 or 10, comprising an operation panel for an operator to operate the robot, the operation panel including a member driving device that operates members of the operation panel so as to notify the operator of the current state of the robot, and the member driving device changes the magnitude or type of movement based on the proximity of the current state of the robot to a specific state of the robot.

[0150] (Supplementary Note 14) A robot control device comprising: a force acquisition unit that acquires a force applied to a robot; an operation force calculation unit that calculates the magnitude and direction of the operation force at the force point based on the magnitude and direction of the force acquired by the force acquisition unit; and an operation command unit that generates an operation command to drive the robot based on the magnitude and direction of the operation force calculated by the operation force calculation unit, wherein the operation command unit performs at least one of control to restrict operation of the robot in a specified direction and control to promote operation of the robot in the specified direction.

[0151] (Supplementary Note 15) The robot control device according to Supplementary Note 14, wherein the motion command unit restricts or promotes the rotational motion of the robot based on the distance between the flange center point and the force point.

[0152] (Supplementary Note 16) The robot control device according to Supplementary Note 14, wherein the motion command unit generates a motion command that restricts one of the linear motion of the robot and the rotational motion of the robot, or a motion command that promotes one of the linear motion of the robot and the rotational motion of the robot.

[0153] REFERENCE SIGNS LIST 1 Robot 2 Hand 3 Application nozzle 5 Robot control device 11 Upper arm 12 Lower arm 15 Wrist 16 Flange 28 Torque sensor 31, 32 Operation rod 50 Display unit 52 Vibrator 60 Processing unit 65 Force acquisition unit 66 Determination unit 67 Operation command unit 68 Notification control unit 69 Operation force calculation unit 71 to 75 Images 75a to 75c Symbols 81 Tool tip point 82 Flange center point 83 Force point θa, θb Angle

Claims

1. A robot control device comprising: a force acquisition unit that acquires forces applied to a robot; an operation command unit that generates operation commands to drive the robot based on the magnitude and direction of the force acquired by the force acquisition unit; and a judgment unit that judges the state of the robot including at least one of the robot's position and robot posture, wherein a singularity area of the robot's state is predetermined around a specific state of the robot in which the robot's position is located at a singularity, and a warning area of the robot's state is predetermined around the singularity area, and the judgment unit judges whether the robot's state is within the warning area and whether the robot's state is approaching the specific state.

2. A robot control device according to claim 1, wherein the alert area is configured as an area having a predetermined range outside the singularity area.

3. A robot control device according to claim 1, wherein the alert area includes an area relating to the angle between the robot's constituent members, or an area relating to the position of the robot's flange center point or the position of the tool tip point.

4. A robot control device as described in any one of claims 1 to 3, wherein the operation command unit generates an operation command that restricts an operation that would cause the robot's state to approach the specific state when the robot's state is within the alert area and is approaching the specific state.

5. A robot control device as described in claim 4, wherein the operation command unit generates an operation command for the robot so that at least one of the movement speed of the tool tip point, the movement speed of the robot joints, and the rotational speed of the motors that drive each drive axis does not exceed a predetermined upper limit value.

6. A robot control device according to claim 5, wherein the upper limit of the speed is set to a speed that ensures the safety of the worker if the worker comes into contact with the robot.

7. A robot control device according to any one of claims 4 to 6, wherein the operation command unit changes the operation command for the robot depending on the proximity of the current robot state to the specific robot state.

8. A robot control device as described in claim 4, wherein the operation command unit, when the robot's state is in the alert area and is approaching the specific state, performs control to generate an operation command to drive the robot in a direction away from the specific state, or control to set the velocity component in the direction approaching the specific state to zero.

9. A robot control device as described in any one of claims 1 to 3, comprising a notification control unit that performs control to notify an operator of the robot's status, wherein the notification control unit performs control to notify an operator of the robot's status when the robot's status is within the alert area and is approaching the specific state.

10. A robot control device as described in claim 9, wherein the notification control unit performs control to visually display the robot's status on a display unit or control to tactilely notify the worker by driving a member that the worker touches.

11. A robot control device as described in claim 9 or 10, comprising a display unit that displays the state of the robot, and the display unit displays, using at least one of text, color, and symbol, that the current state of the robot is an operation that is approaching the specific state.

12. A robot control device as described in claim 9 or 10, comprising a display unit that displays the state of the robot, and the display unit displays the proximity of the current state of the robot to the specific state of the robot using at least one of text, color, and symbol.

13. A robot control device as described in claim 9 or 10, comprising an operation panel for an operator to operate the robot, the operation panel including a member driving device that operates members of the operation panel so as to notify the operator of the current state of the robot, and the member driving device changes the magnitude or type of movement based on the proximity of the current state of the robot to the specific state of the robot.

14. A robot control device comprising: a force acquisition unit that acquires a force applied to a robot; an operation force calculation unit that calculates the magnitude and direction of the operation force at a point of force based on the magnitude and direction of the force acquired by the force acquisition unit; and an operation command unit that generates an operation command to drive the robot based on the magnitude and direction of the operation force calculated by the operation force calculation unit, wherein the operation command unit performs at least one of control to restrict the operation of the robot in a specified direction and control to promote the operation of the robot in a specified direction.

15. A robot control device according to claim 14, wherein the motion command unit restricts or promotes the rotational motion of the robot based on the distance between the flange center point and the point of force.

16. A robot control device as described in claim 14, wherein the motion command unit generates a motion command that restricts either one of the linear motion of the robot and the rotational motion of the robot, or a motion command that promotes either one of the linear motion of the robot and the rotational motion of the robot.

Citation Information

Patent Citations

  • A singular point avoiding method in direct teaching of articulated robot

    JP1999239988A

  • Robot teaching apparatus

    JP2005293098A

  • Control device of robot and control method of robot

    JP2020131314A

  • Teaching method

    JP2021062436A

  • Robot system

    JP2021065943A