Robot system and control method

The robot system addresses diverse motor control challenges by integrating control variables to manage motor operations, ensuring precise and safe task execution through feedback loops and limit profiles.

JP7829543B2Active Publication Date: 2026-03-13YASKAWA DENKI KK
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-12-22
Publication Date
2026-03-13

AI Technical Summary

Technical Problem

Existing robot systems lack the capability for diverse motor control, particularly in controlling motor variables to prevent excessive displacement, speed, or force application during tasks.

Method used

A robot system with a control device that integrates motor control units to manage first control variables based on first control commands while limiting them according to second control variables obtained by integration, using feedback loops and limit profiles to ensure smooth and controlled motor operations.

Benefits of technology

Enables a wider variety of motor control applications by preventing excessive speed, force, or displacement, enhancing task precision and safety, especially in tasks like workpiece processing and assembly.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007829543000001
    Figure 0007829543000001
  • Figure 0007829543000002
    Figure 0007829543000002
  • Figure 0007829543000003
    Figure 0007829543000003
Patent Text Reader

Abstract

To provide a robot system that is effective for more versatile motor control.SOLUTION: A robot system 1 includes: a robot including one or more motors 40 configured to move an arm 10; and a control device 100 to control a robot. The control device 100 includes: a motor control unit 111 that controls at least one motor so that a first control quantity follows a first control command; and a command generation unit 112 that limits the first control command in accordance with a second control quantity that is an integral of the first control quantity.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0004] , , , ,

[0005] , , , , ,

[0001] The present disclosure relates to a robot system and a control method.

Background Art

[0002] Patent Document 1 discloses an apparatus including: a force detection unit that detects a force acting on a robot and an object; a position detection unit that detects the current position of the robot; a position control unit that controls the position of the robot based on the position coordinates of the position detection unit; a force control unit that controls a force applied to the robot based on the force detected by the force detection unit; a control command generation unit that transfers a force / position command and various parameters to the robot; a normal vector calculation unit that calculates a normal vector of a contact point between the robot and the object and calculates a following coordinate system; and a movement direction vector calculation unit that calculates a movement direction vector of the robot along the following coordinate system, and performs a following operation while applying a constant force to the surface of an object having an unknown shape based on the calculated following coordinate system by the force control unit.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] The present disclosure provides a robot system effective for more diverse motor control.

Means for Solving the Problems

[0005] A robot system relating to one aspect of the present disclosure comprises a robot having one or more motors that move an arm, and a control device that controls the robot, the control device having a motor control unit that controls at least one motor so that a first control variable follows a first control command, and a command generation unit that limits the first control command according to a second control variable obtained by integrating the first control variable.

[0006] A control method relating to another aspect of the present disclosure includes controlling at least one motor such that a first control variable follows a first control command, and limiting the first control command in accordance with a second control variable obtained by integrating the first control variable. [Effects of the Invention]

[0007] This disclosure provides a robot system that is effective for a wider variety of motor control applications. [Brief explanation of the drawing]

[0008] [Figure 1] This is a schematic diagram illustrating the configuration of a robot system. [Figure 2] This graph illustrates a limit value that decreases as the second control variable increases. [Figure 3] This is a schematic diagram illustrating the approach motion. [Figure 4] This is a schematic diagram illustrating the search operation. [Figure 5] This is a schematic diagram illustrating the search operation. [Figure 6] This is a schematic diagram illustrating the search operation. [Figure 7] This is a block diagram illustrating the hardware configuration of the controller. [Figure 8] This is a flowchart illustrating a motor control procedure. [Figure 9] This is a flowchart illustrating the procedure for teaching actions. [Figure 10] This is a flowchart illustrating the playback control procedure. [Figure 11]This flowchart illustrates other action teaching procedures. [Figure 12] This is a flowchart illustrating a screw tightening control procedure. [Modes for carrying out the invention]

[0009] The embodiments will be described in detail below with reference to the drawings. In the description, the same elements or elements having the same function will be denoted by the same reference numeral, and redundant descriptions will be omitted.

[0010] [Robot System] The robot system 1 shown in Figure 1 is a system that causes robot 2 to perform tasks on a workpiece. Examples of tasks on a workpiece include workpiece transport, workpiece processing, and workpiece assembly. Examples of workpiece processing include workpiece grinding and workpiece polishing. Examples of workpiece assembly include fastening multiple parts (workpiece parts) together by bolting, joining multiple parts together by welding, etc.

[0011] The robot system 1 comprises a robot 2 and a control device 100. The robot 2 is, for example, an industrial vertical articulated robot, and has an articulated arm 10 and an end effector 3. The arm 10 changes the position and orientation of the end effector 3 through articulated movement.

[0012] The end effector 3 is attached to the tip of the arm 10 and acts on the workpiece. Examples of end effectors 3 include, but are not limited to, a suction nozzle for holding a workpiece, a hand for gripping a workpiece, a grinding tool for grinding a workpiece, a polishing tool for polishing a workpiece, a screw tightening tool (e.g., a screwdriver or wrench) for tightening screws (e.g., tightening bolts), a welding gun for spot welding, a welding torch for arc welding, and a paint gun for painting.

[0013] For example, the arm 10 has a base 11, a swivel part 12, a first arm 13, a second arm 14, a third arm 17, a tip part 18, and one or more motors 40. The base 11 is installed, for example, on the floor surface of the work area. The base 11 may be installed on a moving body such as an automated guided vehicle that moves within the work area.

[0014] The swivel part 12 is provided on the base 11 so as to swivel around a vertical axis 21. The first arm 13 is connected to the base 11 so as to swing around an axis 22 that intersects (for example, is orthogonal to) the axis 21, and extends in a direction away from the axis 22. The intersection includes, for example, a skew relationship with respect to each other, such as a three-dimensional intersection. The same applies hereinafter.

[0015] The second arm 14 is connected to an end of the swivel part 12 so as to swing around an axis 23 parallel to the axis 22. The second arm 14 has an arm base 15 and an arm end 16. The arm base 15 extends in a direction away from the axis 23. The second arm 14 is connected to an end of the arm base 15 so as to swivel around an axis 24 along the central axis of the arm base 15, and further extends from the arm base 15 along the axis 24.

[0016] The third arm 17 is connected to an end of the arm end 16 so as to swing around an axis 25 that intersects (for example, is orthogonal to) the axis 24, and extends in a direction away from the axis 25. The tip part 18 is connected to the third arm 17 so as to swivel around an axis 26 along the central axis of the third arm 17. The end effector 3 is attached to the tip part 18.

[0017] Thus, the arm 10 has a joint 31 that allows the pivot portion 12 to pivot about an axis 21 relative to the base portion 11, a joint 32 that allows the first arm 13 to swing about an axis 22 relative to the pivot portion 12, a joint 33 that allows the arm base portion 15 to swing about an axis 23 relative to the first arm 13, a joint 34 that allows the arm end portion 16 to pivot about an axis 24 relative to the arm base portion 15, a joint 35 that allows the third arm 17 to swing about an axis 25 relative to the arm end portion 16, and a joint 36 that allows the tip portion 18 to pivot about an axis 26 relative to the third arm 17.

[0018] One or more motors 40 move the arm 10. For example, the arm 10 has multiple motors 41, 42, 43, 44, 45, and 46 as one or more motors 40. Motors 41, 42, 43, 44, 45, and 46 operate the six-axis joints 31, 32, 33, 34, 35, and 36 respectively to change the position and orientation of the end portion 18. As a result, the position and orientation of the end portion 18, along with the position and orientation of the end effector 3, are changed.

[0019] For example, motor 41 drives joint 31 to rotate the pivot section 12 around axis 21. Motor 42 drives joint 32 to swing the first arm 13 around axis 22. Motor 43 drives joint 33 to swing the arm base 15 around axis 23. Motor 44 drives joint 34 to rotate the arm end 16 around axis 24. Motor 45 drives joint 35 to swing the third arm 17 around axis 25. Motor 46 drives joint 36 to rotate the tip 18 around axis 26.

[0020] Each of the motors 41, 42, 43, 44, 45, and 46 is, for example, an electric motor. Each of the motors 41, 42, 43, 44, 45, and 46 may directly drive the object to be driven, or it may be driven via a transmission element such as a gearbox.

[0021] The configuration of the arm 10 exemplified above is merely an example and can be modified as long as the position and orientation of the end effector 3 can be changed. For example, the arm 10 may be a redundant robot with one or more redundant axes added to the six joints described above. Furthermore, the arm 10 may be a SCARA type robot or a parallel link type robot.

[0022] The control device 100 controls the arm 10. For example, the control device 100 operates motors 41, 42, 43, 44, 45, and 46 to change the position and orientation of the end effector 3. Hereinafter, when it is not necessary to distinguish between motors 41, 42, 43, 44, 45, and 46, each of motors 41, 42, 43, 44, 45, and 46 will be referred to as one or more motors 40.

[0023] The control device 100 controls one or more motors 40 through multiple feedback loops on multiple physical quantities that are related to each other in terms of differential and integral calculus. Physical quantities are numerical representations of physical phenomena and states. Examples of multiple physical quantities that are related to each other in terms of differential and integral calculus include position, velocity, and acceleration.

[0024] For example, the control device 100 may control the position (e.g., rotation angle) of one or more motors 40 using a position feedback loop, a velocity feedback loop, and an acceleration feedback loop. In such a control system, the position command (target position value) is determined outside of the multiple feedback loops, the velocity command (target velocity value) is generated by the position feedback loop, and the acceleration command (target acceleration value) is generated by the velocity feedback loop. For example, the velocity command is generated based on the deviation between the position command and the feedback value in the position feedback loop. The acceleration command is generated based on the deviation between the velocity command and the feedback value in the velocity feedback loop.

[0025] The control systems described above are merely examples, and there are cases where it is necessary to directly provide control commands to the inner feedback loops from the outside. For example, it may be necessary to separate the position feedback loop and the velocity feedback loop and provide velocity commands to the velocity feedback loop from the outside. Similarly, it may be necessary to separate the velocity feedback loop and the acceleration feedback loop and provide acceleration control commands to the acceleration feedback loop from the outside.

[0026] In this way, by separating the outer and inner feedback loops and directly issuing control commands to the inner feedback loop, a wider range of motor control becomes possible. However, the physical quantities that the outer feedback loop controlled become uncontrollable. As a result, phenomena such as the end effector 3 being displaced to an unacceptable position or moving at an unacceptable speed may occur.

[0027] Therefore, the control device 100 is configured to control at least one motor 40 of the robot system 1 so that the first control variable follows the first control command, and to limit the first control command according to the second control variable obtained by integrating the first control variable. Even in a control system where the feedback loop of the second control variable is separated from the feedback loop of the first control variable, the second control variable can be indirectly limited by limiting the first control variable according to the second control variable. As a result, the first control variable can be controlled while avoiding the second control variable becoming excessive. Consequently, this is effective for a wider variety of motor control applications.

[0028] Note that "controlled variable" refers to the physical quantity being controlled, and "control command" refers to the target value for the controlled physical quantity. The same applies below.

[0029] Imposing restrictions on the first control command is different from the first control command being determined by a feedback loop of the second control variable. For example, when restrictions are imposed on the first control command, it is possible to determine the first control command independently of the second control variable within the scope of those restrictions, so it cannot be said that the first control command is determined by a feedback loop of the second control variable.

[0030] In controlling arm 10, if the first controlled variable is velocity, the first control command is a velocity command and the second controlled variable is position. If the first controlled variable is acceleration, the first control command is an acceleration command and the second controlled variable is velocity. If the first controlled variable is jerk, the first control command is a jerk command and the second controlled variable is acceleration.

[0031] For example, the control device 100 has a motor control unit 111 and a command generation unit 112 as functional components (hereinafter referred to as "functional blocks"). The motor control unit 111 controls at least one motor 40 of the robot system 1 so that a first control quantity follows a first control command. The command generation unit 112 limits the first control command according to a second control quantity obtained by integrating the first control quantity. When the command generation unit 112 limits the first control command, the motor control unit 111 controls one or more motors 40 so that the first control quantity follows the limited first control command.

[0032] For example, the command generation unit 112 generates a limit value that decreases as the second control variable increases, and restricts the first control command so that it remains below the limit value. 。The limit of the first control variable is adjusted by the magnitude of the second control variable. Therefore, when the second control variable is small, the first control command is not restricted or is restricted only slightly, allowing the first control variable to be increased and the second control variable to change rapidly. When the second control variable is large, the first control command is restricted more significantly, so the first control variable becomes smaller and the change in the second control variable becomes smaller. The limit value may be generated to change continuously or to change discontinuously. If it changes continuously, discontinuous restrictions do not occur, allowing the robot's operation to be smoother.

[0033] Figure 2 is a graph illustrating a limit value that decreases as the second control variable increases. In Figure 2, the horizontal axis represents the second control variable, and the vertical axis represents the first control variable. The command generation unit 112 stores the limit profile 210. The limit profile 210 represents the relationship between the second control variable and the limit value such that the limit value gradually decreases as the second control variable increases. Here, "magnitude" refers to the magnitude of the absolute value. Therefore, the limit profile 210 includes limit profile 210A in the first and fourth quadrants where the second control variable is a positive value, and limit profile 210B in the second and third quadrants where the second control variable is a negative value. Limit profile 210A and limit profile 210B are point-symmetric to each other.

[0034] As an example, the limit profile 210 is configured such that the limit value gradually decreases as the absolute value of the second controlled variable increases, and the limit value becomes zero at the point where the second controlled variable becomes the second limit value 221, and the sign of the limit value reverses at that point. In the figure, the limit profile 210 is linear, but it may also be nonlinear. The command generation unit 112 may store the limit profile 210 as a function, or it may store the limit profile 210 as a discrete lookup table.

[0035] The command generation unit 112 is: Limit ProfileYou may directly generate a first control command with an absolute value limited to 210 or less, and if you tentatively generate a first control command with an absolute value exceeding the limit profile 210, the absolute value of the tentatively generated first control command Limit Profile It may be corrected to 210 or less. For example, point 201 in Figure 2 is a combination of the second control variable and the first control command provisionally generated by the command generation unit 112. Point 202 is the limit value corresponding to the second control variable at point 201 in the limit profile 210. The first control command at point 201 exceeds the limit value at point 202. In such a case, the command generation unit 112 corrects the first control command at point 201 to the limit value at point 202.

[0036] Returning to Figure 1, the motor control unit 111 may control one or more motors 40 such that the acceleration, as the first control variable, follows the acceleration command, which is the first control command. In this case, the command generation unit 112 generates a limit value that decreases as the speed, which is the second control variable, increases, and limits the acceleration command so that it is below the limit value.

[0037] When acceleration control is in place, it becomes possible to limit the speed. Therefore, for example, when robot 2 is performing a manual labor task, it is possible to prevent the speed from becoming excessively high as a result of moving away from the object being worked on.

[0038] An acceleration command includes commands for physical quantities that are proportional to acceleration. For example, the torque generated by one or more motors 40 is proportional to the resulting acceleration of the driven object. Therefore, an acceleration command includes a torque command. Also, since the current supplied to one or more motors 40 is proportional to the torque, it is proportional to the acceleration of the driven object generated by the supply of current. Therefore, an acceleration command includes a current command.

[0039] If the acceleration command represents the value of acceleration itself, the motor control unit 111 calculates the current required to generate the acceleration corresponding to the acceleration command in one or more motors 40, and supplies the calculated current to one or more motors 40.

[0040] The command generation unit 112 may provisionally generate the first control command without relying on the second control variable. For example, the command generation unit 112 may generate the first control command based on a third control variable different from the second control variable, while limiting the second control variable to a limit value or less. For example, the command generation unit 112 may provisionally generate the first control command based on the third control variable and then limit the provisionally generated first control command to a limit value or less. The third control variable is different from the second control variable, but they are similar in that they are quantities that change in accordance with the first control variable.

[0041] The fact that the third and second controlled variables are different means that the physical quantities being controlled are different from each other. When two physical quantities are different, it means, for example, that the ratio of one physical quantity to another is not linear. For example, two physical quantities that are related by calculus are different from each other. For example, force and position are different from each other, and force and velocity are also different from each other.

[0042] As an example, the control device 100 controls the force of the robot arm 10 as a third control variable. For example, the command generation unit 112 may generate acceleration commands so that a force close to the force command is output from the arm 10 while limiting the acceleration command to below a limit value. By using acceleration commands, it is possible to finely control the force while suppressing excessive velocity.

[0043] For example, the command generation unit 112 may provisionally generate an acceleration command so that a force close to the force command is output from the arm 10, and may limit the provisionally generated acceleration command to below a limit value. The force of the arm 10 is, for example, the force that the arm 10 exerts on a surrounding object. For example, the force of the arm 10 is the force that the arm 10 exerts on a surrounding object that is in contact with the arm 10. The surrounding object includes a person.

[0044] For example, the command generation unit 112 provisionally generates an acceleration command using a force feedback loop. For example, the command generation unit 112 provisionally generates an acceleration command for the arm 10 by performing proportional calculations, proportional-integral calculations, or proportional-integral-differential calculations on the deviation in order to reduce the deviation between the force command and the force feedback value.

[0045] The command generation unit 112 calculates a limit value based on the speed of the arm 10 at the time the acceleration command is provisionally generated and the limit profile, and corrects the acceleration command to be less than or equal to the limit value if the provisionally generated acceleration command exceeds the limit value. If the provisionally generated acceleration command does not exceed the limit value, the command generation unit 112 uses the provisionally generated acceleration command as the result of acceleration command generation without correction. Based on the corrected acceleration command and the structural information of the arm 10, the command generation unit 112 converts the acceleration command of the arm 10 into acceleration commands for each of the motors 41, 42, 43, 44, 45, and 46 (hereinafter referred to as "each motor 40").

[0046] The motor control unit 111 controls each motor 40 so that its acceleration follows the acceleration command. When the arm 10 is not in contact with a surrounding object, the force feedback value will not approach the force command, but the acceleration command of the arm 10 is limited to below a limit value, which prevents the operating speed of the arm 10 from increasing excessively. When the arm 10 comes into contact with a surrounding object, the deviation between the force command and the force feedback value is reduced, and the force of the arm 10 is controlled.

[0047] The control device 100 may control the force so that the external force applied to the arm 10 decreases. For example, the control device 100 may control the force so that the external force applied to the arm 10 by a person decreases. The external force applied to the arm 10 and the force that the arm 10 exerts on the surrounding object (e.g., a person) that applies the external force are in an action-reaction relationship. Therefore, the force becomes larger when an external force is applied compared to when no external force is applied. Controlling the force so that the external force decreases corresponds to controlling the force so that it approaches the magnitude of the force when no external force is applied.

[0048] For example, the command generation unit 112 generates an acceleration command such that a force close to the force command (e.g., zero) is output from the arm 10 when no external force is applied. The method for generating an acceleration command such that a force close to the force command is output from the arm 10 is as described above.

[0049] By generating an acceleration command such that the force output from arm 10 is close to the force command when no external force is applied, arm 10 moves in the direction in which the external force is applied. Therefore, it becomes possible for a person to move arm 10 to a desired position by applying an external force to arm 10 and to teach arm 10 a motion (for example, direct teaching). Since the acceleration command is limited to below a limit value, it is possible to suppress an excessive increase in the movement speed of arm 10 in the direction in which the external force is applied.

[0050] The control device 100 may further include a superposition unit 113. The superposition unit 113 superimposes a high-frequency dither signal on the acceleration command generated by the command generation unit 112. The motor control unit 111 may control one or more motors 40 so that the acceleration follows the acceleration command on which the dither signal is superimposed. The influence of forces caused by static friction can be reduced. The influence of forces is, for example, on an arm. 10 The force generated increases or decreases, the arm 10 The force or arm that is generated 10 This includes issues such as a decrease in the accuracy of estimates of external forces acting on the object.

[0051] A dither signal refers to a signal that is superimposed for dithering. Dithering is a process that reduces frictional resistance during movement and smooths the operation of arm 10 by superimposing a high-frequency dither signal onto a control command (e.g., an acceleration command).

[0052] High frequency means having a frequency higher than the frequency of the acceleration command. For example, the dither signal has a frequency so high that the arm 10 cannot follow it (for example, a frequency higher than the natural frequency of the arm 10).

[0053] The control device 100 may further include a force estimation unit 114. The force estimation unit 114 estimates the force acting on the arm 10 based on the acceleration command superimposed with a dither signal and the acceleration. When there is no force acting on the arm 10 (e.g., an external force), the acceleration of the arm 10 follows the acceleration command, so the external force can be estimated based on the difference between the acceleration command and the acceleration. However, when the arm 10 is immobile due to static friction, the degree of the difference between the acceleration command and the acceleration cannot be grasped, so the accuracy of the external force estimation decreases. The superimposition of a dither signal reduces the state in which the arm 10 is immobile due to static friction. Therefore, the decrease in the accuracy of the external force estimation is suppressed.

[0054] The command generation unit 112 may generate acceleration commands using the force estimated by the force estimation unit 114 as the force feedback value described above. By using the force estimation result, which has improved accuracy due to the superposition of dither signals, the force can be controlled without sensors.

[0055] The command generation unit 112 may generate acceleration commands using the force detected by the sensor as the feedback value of the force, instead of the estimated force. The sensor may be a torque sensor that detects torque acting on at least one of the joints 31, 32, 33, 34, 35, 36, or a multi-axis force sensor that detects force acting on the tip 18 of the arm 10, etc.

[0056] The control device 100 may control the force with which the end effector 3 is pressed against the workpiece. For example, the command generation unit 112 may generate acceleration commands such that a force close to the force command is output from the end effector 3 to the workpiece, while limiting the acceleration command to a limit value or less. The method for generating acceleration commands is as described above. Since the speed at which the end effector 3 moves toward the workpiece from a distance is suppressed, it is possible to prevent the end effector 3 from colliding with the workpiece at high speed.

[0057] The control device 100 may further include a teaching operation execution unit 115 and a storage unit 116. The teaching operation execution unit 115 causes the arm 10 to perform an approach operation in which it moves the end effector 3 in the approach direction and presses it against the workpiece, and a search operation in which it moves the end effector 3 in a search direction intersecting the pressing direction while it is pressed against the workpiece in the pressing direction. The storage unit 116 stores at least the pressing direction in the search operation and the position of the end effector 3 as teaching data for the tracing operation. The storage unit 116 may store teaching data for multiple locations in chronological order. The command generation unit 112 generates acceleration commands so that the force pressing against the workpiece is output from the end effector 3, while limiting the acceleration command to less than or equal to a limit value, at least during the approach operation. Teaching of the tracing operation can be performed automatically. In this case, it is possible to prevent high-speed collisions with the workpiece when moving in the approach direction.

[0058] The command generation unit 112 may generate acceleration commands so that the end effector 3 moves in the search direction while a force is output from the end effector 3 in the pressing direction during the search operation. This makes it easy to maintain the state in which the end effector 3 is pressed against the workpiece during the search operation.

[0059] The teaching operation execution unit 115 may change the pressing direction so as to be perpendicular to the search direction during the search operation. During the search operation, the magnitude of the force acting on the workpiece from the end effector 3 and the speed of movement of the end effector 3 can be stabilized.

[0060] The teaching operation execution unit 115 may temporarily suspend the movement of the end effector 3 and change the pressing direction to be perpendicular to the search direction if it detects a discrepancy between the direction perpendicular to the pressing direction and the search direction. By temporarily suspending the movement, the frictional force in the search direction can be reduced, and the pressing direction can be changed to be perpendicular to the search direction with higher precision. This further stabilizes the magnitude of the force acting on the workpiece from the end effector 3 and the speed of movement of the end effector 3.

[0061] The teaching action execution unit 115 may store teaching data for multiple locations in the storage unit 116 in chronological order. For example, the teaching action execution unit 115 may store the teaching data for the location where the pressing direction was first determined in the storage unit 116, and then sequentially store the teaching data for locations where the pressing direction has been changed in the storage unit 116.

[0062] The teaching operation execution unit 115 may determine the end of the search operation when the end effector 3 is closest to a predetermined end position. The closest position is not limited to the exact moment of closest position. For example, the closest position may be when it is recognized that the end effector 3 has passed the closest position, or when it is recognized that the end effector 3 is approaching the closest position. When teaching a copy operation automatically, the movement path of the end effector 3 is not determined before teaching, making it difficult to determine the end position at the actual location the end effector 3 will reach. By determining the end of the search operation when the end effector 3 is closest to the end position, the end can be defined before the movement path of the end effector 3 is determined. The closest position may be determined by calculating the distance between the end position and the end effector 3 and ending at the point where that distance is minimized, or by determining the extreme value where the distance begins to increase, but these are not the only examples.

[0063] The teaching operations from the start of the approach operation to the end of the search operation are illustrated below with reference to Figures 3 to 6. As shown in Figure 3, the teaching operation execution unit 115 first controls the robot 2 to position the end effector 3 at a starting position SP away from area A1 where the workpiece W is placed. For example, the teaching operation execution unit 115 sequentially generates position commands for the end effector 3 up to the starting position SP and inputs them to the command generation unit 112. The command generation unit 112 generates a velocity command for the end effector 3 using a feedback loop of the end effector 3's position, generates an acceleration command for the end effector 3 using a feedback loop of the end effector 3's velocity, and converts the acceleration command for the end effector 3 into an acceleration command for each motor 40. The motor control unit 111 controls each motor 40 so that the acceleration follows the acceleration command. As a result, the end effector 3 is positioned at the starting position SP.

[0064] Next, the teaching action execution unit 115 initiates the approach movement of the arm 10. For example, the teaching action execution unit 115 defines the direction from the starting position SP toward area A1 (for example, the center of area A1) as the approach direction D11 and inputs a force command toward the approach direction D11 to the command generation unit 112. The command generation unit 112 generates an acceleration command for the end effector 3 so that a force close to the force command is output from the end effector 3 toward the approach direction D11, while limiting the acceleration command to less than or equal to a limit value, and converts the acceleration command of the end effector 3 into an acceleration command for each motor 40. The motor control unit 111 controls each motor 40 so that the acceleration follows the acceleration command. As a result, the approach movement is executed.

[0065] The command generation unit 112 detects that the end effector 3 has pressed against the workpiece W based on the increase in force and notifies the teaching operation execution unit 115. As shown in Figure 4, the teaching operation execution unit 115 detects the pressing direction D21 based on the force feedback value. For example, the teaching operation execution unit 115 detects the direction of the normal force applied from the end effector 3 to the workpiece W as the pressing direction D21. The teaching operation execution unit 115 may also use the approach direction D11 as the pressing direction D21. The teaching operation execution unit 115 stores teaching data, including the force command, the pressing direction D21, and the current position of the end effector 3, in the storage unit 116.

[0066] The teaching operation execution unit 115 inputs a command generation unit 112 with a pressing direction D21 and a velocity command in an orthogonal direction D22 perpendicular to the pressing direction D21. The command generation unit 112 generates an acceleration command for the end effector 3 so that a force close to the force command is output from the end effector 3 in the pressing direction D21 and the end effector 3 moves in the orthogonal direction D22 at a velocity close to the velocity command, and converts the acceleration command for the end effector 3 into an acceleration command for each motor 40. The motor control unit 111 controls each motor 40 so that the acceleration follows the acceleration command. This executes the search operation.

[0067] The teaching operation execution unit 115 monitors the misalignment between the orthogonal direction D22 and the search direction D23. The misalignment between the search direction D23 and the orthogonal direction D22 occurs when the search direction D23 includes a component along the pressing direction D21. Therefore, the teaching operation execution unit 115 monitors the misalignment between the orthogonal direction D22 and the search direction D23 based on the displacement amount of the end effector 3 in the direction along the pressing direction D21. As shown in Figure 4, when a displacement amount L1 of the end effector 3 occurs in the direction along the pressing direction D21 (for example, when the displacement amount L1 exceeds a predetermined threshold), the teaching operation execution unit 115 detects the misalignment between the orthogonal direction D22 and the search direction D23.

[0068] When the teaching operation execution unit 115 detects a discrepancy between the orthogonal direction D22 and the search direction D23, it temporarily stops the movement of the end effector 3. For example, the teaching operation execution unit 115 sets the velocity command in the orthogonal direction D22 to zero and inputs it to the command generation unit 112. With the movement of the end effector 3 stopped, the teaching operation execution unit 115 changes the pressing direction D21 to be orthogonal to the search direction D23. The teaching operation execution unit 115 stores teaching data including the force command, the changed pressing direction D21, and the current position of the end effector 3 in the storage unit 116, and inputs the velocity command to the command generation unit 112 to resume the movement of the end effector 3.

[0069] In this way, each time a discrepancy is detected between the orthogonal direction D22 and the search direction D23, the pressing direction D21 is changed and the teaching data is registered, so that as shown in Figure 5, teaching data for multiple teaching points TP01 to TP06 is registered in the storage unit 116. The teaching operation execution unit 115 determines the end of the search operation when the end effector 3 is closest to a predetermined end position DP (for example, when the distance L2 between the end position DP and the end effector 3 is smallest) and stops the movement of the end effector 3. For example, the teaching operation execution unit 115 sets the speed command to zero and inputs it to the command generation unit 112. With the movement of the end effector 3 stopped, the teaching operation execution unit 115 changes the pressing direction D21 so that it is orthogonal to the search direction D23. The teaching action execution unit 115 stores teaching data, including the force command, the changed pressing direction D21, and the current position of the end effector 3, in the storage unit 116. As a result, teaching data for teaching point TP07 is further registered.

[0070] The teaching action execution unit 115 causes the arm 10 to perform a retreat action. For example, the teaching action execution unit 115 sequentially generates position commands until the arm leaves area A1 and inputs them to the command generation unit 112. The command generation unit 112 generates a velocity command for the end effector 3 using a feedback loop of the end effector 3's position, generates an acceleration command for the end effector 3 using a feedback loop of the end effector 3's velocity, and converts the acceleration command for the end effector 3 into an acceleration command for each motor 40. The motor control unit 111 controls each motor 40 so that the acceleration follows the acceleration command. As a result, the end effector 3 detaches from the workpiece W.

[0071] This completes the teaching process. This teaching process also allows for teaching a tracing motion that circles around the workpiece W. For example, Figure 6 illustrates a state in which teaching data for multiple teaching points TP11 to TP24 along a movement path that circles around the workpiece W has been registered.

[0072] Returning to Figure 1, the control device 100 may further include a playback unit 117. The playback unit 117 controls the arm 10 to perform a tracing operation on the workpiece W based on the teaching data stored in the memory unit 116. The tracing operation is, for example, the operation of moving an end effector 3, such as a polishing tool, to trace the workpiece W. The playback unit 117 causes the arm 10 to perform the approach operation so that the end effector 3 is positioned at the first teaching point, and inputs the pressing direction D21 at the first teaching point, a force command, and a velocity command in the orthogonal direction D22 to the command generation unit 112. The command generation unit 112 generates an acceleration command for the end effector 3 so that a force close to the force command is output from the end effector 3 in the pressing direction D21, and the end effector 3 moves in the orthogonal direction D22 at a velocity close to the velocity command, and converts the acceleration command for the end effector 3 into an acceleration command for each motor 40. The motor control unit 111 controls each motor 40 so that the acceleration follows the acceleration command. The playback unit 117 changes the pressing direction each time the end effector 3 reaches the next teaching point, thereby performing the tracing operation. When the end effector 3 reaches the last teaching point, the playback unit 117 stops the movement of the end effector 3 and causes the arm 10 to perform a retreat operation. This completes the tracing operation.

[0073] The above configuration can be used for other tasks involving copying. For example, it can be used when tightening screws by rotating the tip 18 together with a screw tightening tool (an example being the end effector 3).

[0074] For example, the command generation unit 112 generates an acceleration command for the motor 46 so that the screw tightening tool outputs a torque close to a predetermined torque command. The superposition unit 113 superimposes a high-frequency dither signal onto the acceleration command generated by the command generation unit 112. The motor control unit 111 controls the motor 46 so that the acceleration follows the acceleration command superimposed with the dither signal. The force estimation unit 114 estimates the torque acting on the screw tightening tool based on the acceleration command superimposed with the dither signal and the acceleration. The command generation unit 112 generates an acceleration command using the estimated torque as a feedback value. As a result, screw tightening is performed with a torque that follows the torque command.

[0075] Figure 7 is a block diagram illustrating the hardware configuration of the control device 100. As shown in Figure 7, the control device 100 has a circuit 190. The circuit 190 includes a processor 191, a memory 192, a storage 193, and servo circuits 194, 195, 196, 197, 198, and 199.

[0076] The storage 193 stores a program that causes the control device 100 to perform the following actions: to control at least one motor 40 of the robot system 1 so that the first control variable follows the first control command, and to limit the first control command according to the second control variable obtained by integrating the first control variable. For example, the storage 193 stores a program that causes the control device 100 to configure each of the above-mentioned functional blocks.

[0077] Storage 193 includes one or more storage devices. These storage devices may include, for example, hard disk drives or flash memory. No It is a volatile storage medium. The storage device may include portable media such as optical disks and magnetic disks.

[0078] Memory 192 temporarily stores programs loaded from storage 193. Memory 192 includes one or more memory devices. The memory devices are volatile storage media, such as random access memory.

[0079] The processor 191 configures the control device 100 with the aforementioned functional blocks by executing a program loaded into memory 192. The data generated by the processor 191 is stored in memory 192 as needed. The servo circuits 194, 195, 196, 197, 198, and 199 supply current to the motors 41, 42, 43, 44, 45, and 46 based on requests from the processor 191. The hardware configuration of the control device 100 is not limited to the above and can be changed. For example, not all functions of the control device 100 need to be executed by program execution; at least some functions may be configured by dedicated logic circuits such as ASICs (Application-Specific Integrated Circuits).

[0080] [Control Procedure] As an example of a control method, a control procedure performed by the control device 100 is illustrated. This control procedure includes controlling at least the motors of the robot system 1 so that the first control variable follows the first control command, and limiting the first control command according to a second control variable obtained by integrating the first control variable.

[0081] The control procedures include, as exemplified, a motor control procedure, an action teaching procedure, and a playback control procedure. Both the action teaching procedure and the playback control procedure are executed in parallel with the motor control procedure. The following are examples of each procedure.

[0082] (Motor control procedure) This procedure controls the force of the arm 10 of robot 2. As shown in Figure 8, the control device 100 executes steps S01, S02, and S03. In step S01, the command generation unit 112 obtains a feedback value of force (for example, the force acting on the workpiece from the end effector 3). For example, the command generation unit 112 obtains an estimated force value from the force estimation unit 114. In step S02, the command generation unit 112 provisionally generates an acceleration command for arm 10 to reduce the deviation between the force command and the force feedback value. In step S03, the superposition unit 113 superimposes a dither signal on the acceleration command.

[0083] Next, the control device 100 executes steps S04 and S05. In step S04, the command generation unit 112 calculates a limit value based on the speed of the arm 10 and the limit profile. In step S05, the command generation unit 112 checks whether the provisionally generated acceleration command exceeds the limit value.

[0084] If the control device 100 determines in step S05 that the acceleration command exceeds the limit value, it executes step S06. In step S06, the command generation unit 112 corrects the acceleration command to the limit value.

[0085] Next, the control device 100 executes step S07. If, in step S05, it is determined that the acceleration command does not exceed the limit value, the control device 100 executes step S07 without executing step S06. In step S07, the command generation unit 112 converts the acceleration command of the arm 10 into acceleration commands for each motor 40, and the motor control unit 111 controls each motor 40 so that the acceleration follows the acceleration command. After that, the control device 100 returns to step S01. The control device 100 repeats the above procedure.

[0086] (Operation Instruction Procedure) This procedure is a procedure for causing the arm 10 to perform the approach and search operations described above using the motor control procedure described above. As shown in Figure 9, the control device 100 first executes steps S11, S12, and S13. In step S11, the teaching operation execution unit 115 controls the robot 2 to position the end effector 3 at the starting position SP of the approach operation. In step S12, the teaching operation execution unit 115 inputs a force command in the approach direction to the command generation unit 112. The command generation unit 112 generates an acceleration command for the end effector 3 so that a force close to the force command is output from the end effector 3 in the approach direction D11, while limiting the acceleration command to less than or equal to a limit value, and converts the acceleration command for the end effector 3 into an acceleration command for each motor 40. The motor control unit 111 controls each motor 40 so that the acceleration follows the acceleration command. As a result, the approach operation is executed. In step S13, the command generation unit 112 checks whether the end effector 3 has pressed against the workpiece W based on the force feedback value. If it is determined in step S13 that the end effector 3 has not pressed against the workpiece W, the control device 100 returns to step S12. From there, the approach operation continues until the end effector 3 presses against the workpiece W.

[0087] Next, the control device 100 executes steps S14, S15, and S16. In step S14, the teaching operation execution unit 115 detects the pressing direction D21 based on the force feedback value. In step S15, the teaching operation execution unit 115 stores teaching data, including the force command, the pressing direction D21, and the current position of the end effector 3, in the storage unit 116. In step S16, the teaching operation execution unit 115 inputs the pressing direction D21 and a velocity command in the orthogonal direction D22 perpendicular to the pressing direction D21 to the command generation unit 112. The command generation unit 112 generates an acceleration command for the end effector 3 such that a force close to the force command is output from the end effector 3 in the pressing direction D21, and the end effector 3 moves in the orthogonal direction D22 at a velocity close to the velocity command, and converts the acceleration command for the end effector 3 into an acceleration command for each motor 40. The motor control unit 111 controls each motor 40 so that the acceleration follows the acceleration command. This enables the search operation to be performed.

[0088] Next, the control device 100 executes step S17. In step S17, the teaching operation execution unit 115 checks whether the displacement of the end effector 3 in the direction along the pressing direction D21 exceeds a threshold.

[0089] In step S17, if the control device 100 determines that the displacement of the end effector 3 exceeds a threshold, it executes steps S18, S19, S21, and S22. In step S18, the teaching operation execution unit 115 temporarily stops the movement of the end effector 3. In step S19, the teaching operation execution unit 115 changes the pressing direction D21 to be perpendicular to the search direction D23. In step S21, the teaching operation execution unit 115 stores teaching data, including the force command, the pressing direction D21, and the current position of the end effector 3, in the storage unit 116. In step S22, the teaching operation execution unit 115 resumes the movement of the end effector 3.

[0090] Next, the control device 100 executes step S23. If, in step S17, it is determined that the displacement of the end effector 3 does not exceed a threshold, the control device 100 executes step S23 without executing steps S18, S19, S21, and S22. In step S23, the teaching operation execution unit 115 checks whether the end effector 3 is closest to the end position DP (for example, whether the distance between the end effector 3 and the end position DP has been minimized). If, in step S23, it is determined that the end effector 3 is not closest to the end position DP, the control device 100 returns to step S15. Thereafter, the search operation continues until the end effector 3 is closest to the end position DP.

[0091] In step S23, if the control device 100 determines that the end effector 3 is closest to the end position DP, it executes steps S24, S25, S26, and S27. In step S24, the teaching operation execution unit 115 stops the movement of the end effector 3. In step S25, the teaching operation execution unit 115 changes the pressing direction D21 to be perpendicular to the search direction D23. In step S26, the teaching operation execution unit 115 stores teaching data, including the force command, the pressing direction D21, and the current position of the end effector 3, in the storage unit 116. In step S27, the teaching operation execution unit 115 causes the arm 10 to execute the above retreat operation. This completes the operation teaching procedure.

[0092] (Playback control procedure) This procedure causes the arm 10 to perform the tracing operation using the motor control procedure described above, based on the teaching data registered in the memory unit 116. As shown in Figure 10, the control device 100 executes steps S31, S32, and S33. In step S31, the playback unit 117 controls the robot 2 to position the end effector 3 at the starting position SP of the approach operation. In step S32, the playback unit 117 inputs a force command to the first teaching point to the command generation unit 112. In step S33, the command generation unit 112 checks whether the end effector 3 has pressed against the workpiece W at the first teaching point, based on the force feedback value. If it is determined in step S33 that the end effector 3 has not pressed against the workpiece W, the control device 100 returns to step S32. Thereafter, the approach operation continues until the end effector 3 presses against the workpiece W.

[0093] If the control device 100 determines in step S33 that the end effector 3 is pressing against the workpiece W, it executes steps S34 and S35. In step S34, the playback unit 117 inputs the pressing direction D21 at the initial teaching point, a force command, and a velocity command in the orthogonal direction D22 to the command generation unit 112. The command generation unit 112 generates an acceleration command for the end effector 3 so that a force close to the force command is output from the end effector 3 in the pressing direction D21, and the end effector 3 moves in the orthogonal direction D22 at a velocity close to the velocity command, and converts the acceleration command for the end effector 3 into an acceleration command for each motor 40. The motor control unit 111 controls each motor 40 so that the acceleration follows the acceleration command. This executes the tracing operation.

[0094] In step S35, the playback unit 117 checks whether the end effector 3 has reached the next teaching point. If the control device 100 determines in step S35 that the end effector 3 has not reached the next teaching point, it returns to step S34 and continues the imitation process.

[0095] In step S35, if the control device 100 determines that the end effector 3 has reached the next teaching point, it executes step S36. In step S36, the playback unit 117 inputs the pressing direction D21, a force command, and a velocity command in the orthogonal direction D22 at the reached teaching point to the command generation unit 112. This changes the pressing direction D21 and the tracing operation continues.

[0096] Next, the control device 100 executes step S37. In step S37, the playback unit 117 checks whether the end effector 3 has reached the final teaching point. If the control device 100 determines in step S37 that the end effector 3 has not reached the final teaching point, it returns to step S34 and continues the tracing operation. If the control device 100 determines in step S37 that the end effector 3 has reached the final teaching point, it executes steps S38 and S39. In step S38, the playback unit 117 stops the movement of the end effector 3. In step S39, the playback unit 117 causes the arm 10 to perform a retreat operation. This completes the playback control procedure.

[0097] (Other operation teaching procedures) Figure 11 is a flowchart illustrating the motion teaching procedure performed by the control device 100 in direct teaching, which is performed by a person applying an external force to the arm 10. As shown in Figure 11, the control device 100 first performs steps S41 to S47 (motor control procedure) similar to steps S01 to S07. In step S42, the command generation unit 112 provisionally generates an acceleration command for the arm 10 by setting the force command to a value that does not occur when no external force is present (for example, zero).

[0098] StepFollowing S47, the control device 100 executes step S51. In step S51, the command generation unit 112 checks whether the user has performed an operation to add a teaching point. The additional operation is input via a user interface (e.g., a teaching pendant) that can communicate with the control device 100. If the control device 100 determines in step S51 that an operation to add a teaching point has been performed, it executes step S52. In step S52, the command generation unit 112 stores the teaching point (e.g., the current position of the end effector 3) in the storage unit 116. After that, the control device 100 returns to step S41 and continues direct teaching.

[0099] If the control device 100 determines in step S51 that no additional teaching point operations have been performed, it executes step S53. The command generation unit 112 checks whether the user has performed an operation to terminate direct teaching. The termination operation is input, for example, through the user interface. If the control device 100 determines in step S53 that no termination operation has been performed, it returns to step S41 and continues direct teaching. If the control device 100 determines in step S53 that a termination operation has been performed, it terminates direct teaching.

[0100] (Screw tightening control procedure) Figure 12 is a flowchart illustrating the procedure for controlling a screw tightening using an end effector 3 of a screw tightening tool. This procedure is performed with the end effector 3, which rotates together with the tip 18, engaged with a bolt or the like. As shown in Figure 12, the control device 100 executes steps S61, S62, S63, S64, and S65. In step S61, the command generation unit 112 obtains a feedback value of the torque acting on the end effector 3 from the force estimation unit 114. In step S62, the command generation unit 112 generates an acceleration command for the motor 46 so that the end effector 3 outputs a torque close to a predetermined torque command. In step S63, the superposition unit 113 superimposes a dither signal on the acceleration command for the motor 46. In step S64, the motor control unit 111 controls the motor 46 so that the acceleration follows the acceleration command with the superimposed dither signal. In step S65, the command generation unit 112 checks whether the torque feedback value has reached the torque command. In step S65, if the control device 100 determines that the torque feedback value has not reached the torque command, it returns to step S61 and continues the screw tightening control. In step S65, if the control device 100 determines that the torque feedback value has reached the torque command, it completes the screw tightening control procedure.

[0101] 〔summary〕 The embodiments illustrated above include the following configurations. (1) A robot system 1 comprising a robot having one or more motors 40 that move an arm 10, and a control device 100 that controls the robot, wherein the control device 100 includes a motor control unit 111 that controls at least one motor so that a first control quantity follows a first control command, and a command generation unit 112 that limits the first control command according to a second control quantity obtained by integrating the first control quantity. In some cases, it may be more suitable for the control purpose to control the first control variable, which is the derivative of the second control variable, rather than the second control variable itself. However, when the first control variable is the control variable, it is difficult to limit the second control variable, which is the integral of the first control variable, and the second control variable may become excessive. To address this, by providing a limiter that corrects the first control command of the first control variable so that the second control variable does not exceed a limit value, it is possible to control the first control variable while avoiding the second control variable becoming excessive. Therefore, this is effective for a wider variety of motor control applications.

[0102] (2) The robot system 1 according to (1), wherein the command generation unit 112 generates a limit value that decreases as the second control amount increases, and restricts the first control command so that it is less than or equal to the limit value. The limit of the first control variable is adjusted by the magnitude of the second control variable. Therefore, when the second control variable is small, the first control command is not restricted or is restricted only slightly, allowing the first control variable to be increased and the second control variable to change rapidly. When the second control variable is large, the first control command is restricted more significantly, so the first control variable becomes smaller and the change in the second control variable becomes smaller. The limit value may be generated to change continuously or discontinuously. However, if it changes continuously, discontinuous restrictions do not occur, allowing the robot's operation to be smoother.

[0103] (3) The robot system 1 as described in (2), wherein the motor control unit 111 controls the motor so that the acceleration, as a first control variable, follows the acceleration command, as a first control command, and the command generation unit 112 generates a limit value that decreases as the speed, as a second control variable, increases, and limits the acceleration command so that it is less than or equal to the limit value. When acceleration control is in place, it becomes possible to limit the speed. Therefore, for example, when a robot is performing a manual labor task, it is possible to prevent the speed from becoming excessively high as a result of moving away from the object.

[0104] (4) The robot system 1 as described in (3), wherein the control device 100 controls the force of the robot arm 10, and the command generation unit 112 generates acceleration commands so that force is output from the arm 10 while limiting the acceleration commands to less than or equal to a limit value. By using acceleration commands, it is possible to precisely control the force while suppressing excessive velocity.

[0105] (5) The robot system 1 as described in (4), wherein the control device 100 controls the force so that the external force applied to the arm 10 decreases in response to the external force applied to the arm 10. According to this robot system 1, for example, when a person wants to move the position of the arm 10, such as in direct teaching, it is possible to suppress an excessive increase in speed due to the external force applied by the person.

[0106] (6) The robot system 1 according to (4) or (5), further comprising a superposition unit 113 that superimposes a high-frequency dither signal on an acceleration command generated by a command generation unit 112, and a motor control unit 111 that controls the motor so that the acceleration follows the acceleration command on which the dither signal is superimposed. The effects of forces caused by static friction can be reduced. These effects include, for example, an increase or decrease in the force generated by arm 10, and a decrease in the accuracy of the estimated force generated by arm 10 or the external force acting on arm 10.

[0107] (7) The robot system 1 according to (6), further comprising a force estimation unit 114 that estimates the force acting on the arm 10 based on the acceleration command superimposed with the dither signal and the acceleration. It is possible to estimate the force accurately. Furthermore, by using the estimated force to control the force of arm 10, a sensorless system can be achieved.

[0108] (8) A robot system 1 according to any one of (4) to (7), further comprising an end effector 3 attached to the tip of the arm 10 and acting on a workpiece, wherein the control device 100 controls the force that presses the end effector 3 against the workpiece. Even if the device moves away from the workpiece, it can prevent a collision with the workpiece at high speed.

[0109] (9) The robot system 1 according to (8), wherein the control device 100 includes a teaching operation execution unit 115 that causes the robot to perform an approach operation in which it moves the end effector 3 in the approach direction and presses it against the workpiece, and a search operation in which it moves the end effector 3 in a search direction intersecting the pressing direction while it is pressed against the workpiece in the pressing direction, and a storage unit 116 that stores at least the pressing direction in the search operation and the position of the end effector 3 as teaching data for the imitation operation, and the command generation unit 112 generates an acceleration command in which, at least in the approach operation, the acceleration command is limited to a limit value or less and the force that presses against the workpiece is output from the end effector 3. The system can automatically teach the model how to copy the model's movements. During this process, it can prevent high-speed collisions with the workpiece when moving in the approach direction.

[0110] (10) The robot system 1 described in (9), wherein the teaching operation execution unit 115 determines the end of the search operation when the end effector 3 is closest to a predetermined end position. When automatically teaching a robot to perform a copy operation, it is difficult to determine the termination condition because the robot may not necessarily pass through a specific location. However, in this robot system 1, the termination of the search operation is determined when the robot approaches the termination position, allowing for an appropriate definition of termination. The closest approach could be, for example, calculated by calculating the distance between the termination position and the end effector 3 and defining the termination at the point where that distance is minimized, or at the extreme value where the distance begins to increase, but this is not the only example.

[0111] (11) The robot system 1 according to (9) or (10), wherein the command generation unit 112 generates an acceleration command so that the end effector 3 moves in the search direction while a force is output from the end effector 3 in the pressing direction during the search operation. During the search operation, it is easy to maintain the state in which the end effector 3 is pressed against the workpiece.

[0112] (12) The robot system 1 according to (11), wherein the teaching action execution unit 115 changes the pressing direction so as to be perpendicular to the search direction during the search operation. During the search operation, the magnitude of the force acting on the workpiece from the end effector 3 and the speed of movement of the end effector 3 can be stabilized.

[0113] (13) The robot system 1 as described in (12), wherein the teaching action execution unit 115 detects a discrepancy between the direction perpendicular to the pressing direction and the search direction, and temporarily stops the movement of the end effector 3 and changes the pressing direction to be perpendicular to the search direction. Pausing reduces friction in the search direction, allowing for a more precise change in the pressing direction to be perpendicular to the search direction. This further stabilizes the magnitude of the force acting on the workpiece from the end effector 3 and the speed of movement of the end effector 3.

[0114] (14) A control method comprising controlling at least one motor such that a first control variable follows a first control command, and limiting the first control command according to a second control variable obtained by integrating the first control variable. [Explanation of symbols]

[0115] 1...Robot system, 10...Arm, 3...End effector, 40...Motor (1 or more), 100...Control device, 111...Motor control unit, 112...Command generation unit, 113...Superimposition unit, 114...Force estimation unit, 115...Teaching action execution unit, 116...Storage unit.

Claims

1. A robot having one or more motors to move its arm, A control device for controlling the robot, Equipped with, The control device is A command generation unit that generates a first control command for the first control amount without relying on a second control amount obtained by integrating a first control amount related to the movement of the arm, The system includes a motor control unit that controls at least one motor so that the first control quantity follows the first control command, The command generation unit limits the first control command, which is generated without regard to the second control quantity, to a limit value corresponding to the second control quantity or less. A robot system in which the motor control unit controls at least one motor such that the first control amount follows a limited first control command.

2. The command generation unit generates the limit value such that it decreases as the second control amount increases, and limits the first control command so that it is less than or equal to the limit value. The robot system according to claim 1.

3. The motor control unit controls the motor so that the acceleration, as the first control quantity, follows the acceleration command, as the first control command. The command generation unit, The limit value is generated which decreases as the speed, which is the second controlled quantity, increases. The acceleration command is limited so that it is less than or equal to the aforementioned limit value. The robot system according to claim 2.

4. The control device controls the force of the robot's arm, The command generation unit generates the acceleration command so that the force is output from the arm, while limiting the acceleration command to less than or equal to the limit value. The robot system according to claim 3.

5. The control device controls the force such that the external force applied to the arm decreases in response to the external force applied to the arm. The robot system according to claim 4.

6. The command generation unit further comprises a superposition unit that superimposes a high-frequency dither signal onto the acceleration command generated by the command generation unit, The motor control unit controls the motor so that the acceleration follows the acceleration command superimposed with the dither signal. The robot system according to claim 4.

7. The system further includes a force estimation unit that estimates the force acting on the arm based on the acceleration command superimposed with the dither signal and the acceleration. The robot system according to claim 6.

8. The arm further has an end effector attached to its tip that acts on the workpiece, The control device controls the force with which the end effector is pressed against the workpiece. A robot system according to any one of claims 4 to 7.

9. The control device is The aforementioned robot, The approach motion involves moving the end effector in the approach direction and pressing it against the workpiece, A search operation is performed by pressing the end effector against the workpiece in the pressing direction and moving it in a search direction that intersects the pressing direction and follows the shape of the workpiece, A teaching action execution unit that causes the following to be performed, A storage unit that stores at least the direction of application during the search operation and the position of the end effector as teaching data for the tracing operation, It has, The robot system according to claim 8, wherein the command generation unit generates the acceleration command so that the force pressing against the workpiece is output from the end effector, while limiting the acceleration command to less than or equal to the limit value during at least the approach operation.

10. The teaching operation execution unit determines the end of the search operation when the distance between the predetermined end position and the end effector changes from decreasing to increasing. The robot system according to claim 9.

11. The command generation unit generates the acceleration command such that, in the search operation, the end effector moves in the search direction while the force is output from the end effector in the pressing direction. The robot system according to claim 9.

12. The teaching operation execution unit changes the pressing direction so as to be perpendicular to the search direction during the search operation. The robot system according to claim 11.

13. When the teaching operation execution unit detects a discrepancy between the direction perpendicular to the pressing direction and the search direction, it temporarily stops the movement of the end effector and changes the pressing direction to be perpendicular to the search direction. The robot system according to claim 12.

14. To generate a first control command without basing it on a second control variable obtained by integrating a first control variable related to the movement of the robot arm, The first control command, which is generated without regard to the second control quantity, is limited to a limit value corresponding to the second control quantity. Controlling at least one motor of the arm so that the first control amount follows the restricted first control command, A control method including

Citation Information

Patent Citations

  • Controller for robot

    JP1985003715A

  • Track formation system for robot

    JP1991184786A

  • Acceleration and deceleration controller for servo motor

    JP1992322188A

  • Servo press machine and control method for servo press machine

    JP2015160211A

  • Control device and control method for joint mechanism

    JP2017177264A