Robot system and control method

The robot system employs a control device with a motor control unit and command generation unit to restrict motor commands, addressing the challenge of diverse motor control and preventing excessive speed or displacement, ensuring precise and controlled operations.

JP2025099793AActive Publication Date: 2025-07-03YASKAWA DENKI KK
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2023216726
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-12-22
Publication Date
2025-07-03
Estimated Expiration
2043-12-22

AI Technical Summary

Technical Problem

Existing robot control systems face challenges in achieving diverse motor control, particularly when feedback loops are separated, leading to uncontrollable physical quantities and potential displacement or speed issues with the end effector.

Method used

A robot system with a control device that includes a motor control unit and a command generation unit, which controls motors to follow a first control command and restricts it based on a second control amount obtained by integrating the first, using limit values to prevent excessive changes in the second control quantity.

Benefits of technology

This approach enables more diverse and controlled motor operations, preventing excessive speed or displacement, allowing for precise force and position control, and reducing the risk of collisions during operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025099793000001_ABST
    Figure 2025099793000001_ABST
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

[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 the force applied to the robot based on the force detected by the force detection unit, a control command generation unit that transfers force / position commands and various parameters to the robot, a normal vector calculation unit that calculates the normal vector of the contact point between the robot and the object and calculates a following coordinate system, and a moving direction vector calculation unit that calculates the moving 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 curved surface 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 according to one aspect of the present disclosure includes a robot having one or more motors for moving an arm, and a control device for controlling the robot. The control device includes a motor control unit that controls at least one motor so that a first control amount follows a first control command, and a command generation unit that restricts the first control command according to a second control amount obtained by integrating the first control amount.

[0006] A control method according to another aspect of the present disclosure includes controlling at least one motor so that a first control amount follows a first control command, and restricting the first control command according to a second control amount obtained by integrating the first control amount.

Advantages of the Invention

[0007] According to the present disclosure, it is possible to provide a robot system effective for more diverse motor control.

Brief Description of the Drawings

[0008]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Embodiments for Carrying Out the Invention

[0009] Hereinafter, embodiments will be described in detail with reference to the drawings. In the description, the same reference numerals are given to the same elements or elements having the same function, and duplicate descriptions are omitted.

[0010] 〔Robot System〕 The robot system 1 shown in FIG. 1 is a system for causing a robot 2 to perform an operation on a workpiece. Examples of operations on the workpiece include workpiece conveyance, workpiece processing, workpiece assembly, etc. Examples of workpiece processing include workpiece grinding, workpiece polishing, etc. Examples of workpiece assembly include fastening of a plurality of parts (parts of the workpiece) such as bolt fastening, joining of a plurality of parts by welding, etc.

[0011] The robot system 1 includes 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 posture of the end effector 3 by articulated movement.

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

[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 a state where they are in a twisted relationship with each other, such as a three-dimensional intersection. The same applies hereinafter.

[0015] The second arm 14 is connected to the 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 the 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 the 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 enables the swivel part 12 to swivel about the axis 21 with respect to the base 11, a joint 32 that enables the first arm 13 to swing about the axis 22 with respect to the swivel part 12, a joint 33 that enables the arm base 15 to swing about the axis 23 with respect to the first arm 13, a joint 34 that enables the arm end 16 to swivel about the axis 24 with respect to the arm base 15, a joint 35 that enables the third arm 17 to swing about the axis 25 with respect to the arm end 16, and a joint 36 that enables the tip 18 to swivel about the axis 26 with respect to the third arm 17.

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

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

[0020] Each of the motors 41, 42, 43, 44, 45, 46 is, for example, an electric motor. Each of the motors 41, 42, 43, 44, 45, 46 may directly drive the drive target or may drive through a transmission element such as a speed reducer.

[0021] The configuration of the arm 10 exemplified above is merely an example and can be changed 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 in which one or more redundant axes are added to the above-described six-axis joints. Further, the arm 10 may be a scalar robot or a parallel link robot.

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

[0023] The control device 100 controls one or more motors 40 with multiple feedback loops for a plurality of physical quantities that are in a differential and integral relationship with each other. A physical quantity is a quantity obtained by quantifying a physical phenomenon or state. Examples of a plurality of physical quantities that are in a differential and integral relationship with each other include position, velocity, and acceleration.

[0024] For example, the control device 100 may control the position (for example, rotation angle) of one or more motors 40 with a position feedback loop, a velocity feedback loop, and an acceleration feedback loop. In such a control system, the position command (target value of position) is determined outside the multiple feedback loops, the velocity command (target value of velocity) is generated by the position feedback loop, and the acceleration command (target value of acceleration) 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 above control system is just an example, and in some cases, a direct control command may be required to be given externally to the inner feedback loop. For example, there may be a case where the position feedback loop and the speed feedback loop are separated, and a speed command is required to be given externally to the speed feedback loop. Also, there may be a case where the speed feedback loop and the acceleration feedback loop are separated, and an acceleration control command is required to be given externally to the acceleration feedback loop.

[0026] In this way, by separating the outer feedback loop and the inner feedback loop and directly giving a control command to the inner feedback loop, more diverse motor control becomes possible. However, the physical quantity that the outer feedback loop was controlling becomes uncontrollable. For this reason, phenomena such as the end effector 3 being displaced to an unacceptable position or the end effector 3 moving at an unacceptable speed may occur.

[0027] Therefore, the control device 100 is configured to control at least one or more motors 40 of the robot system 1 so that the first control quantity follows the first control command, and to limit the first control command according to the second control quantity obtained by integrating the first control quantity. Even in a control system where the feedback loop of the second control quantity is separated from the feedback loop of the first control quantity, by applying a limit according to the second control quantity to the first control quantity, it is possible to indirectly apply a limit to the second control quantity. For this reason, it is possible to control the first control quantity while avoiding the second control quantity from becoming excessive. Therefore, it is effective for more diverse motor control.

[0028] Note that the "control quantity" means the physical quantity that is the control target. The "control command" means the target value for the physical quantity that is the control target. The same applies hereinafter.

[0029] Placing a restriction on the first control command is different from the first control command being determined by the feedback loop of the second control quantity. For example, when placing a restriction on the first control command, within the range of the restriction, it is possible to determine the first control command independently of the second control quantity. Therefore, it cannot be said that the first control command is determined by the feedback loop of the second control quantity.

[0030] In the control of the arm 10, when the first control quantity is speed, the first control command is a speed command and the second control quantity is position. When the first control quantity is acceleration, the first control command is an acceleration command and the second control quantity is speed. When the first control quantity is jerk, the first control command is a jerk command and the second control quantity is acceleration.

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

[0032] For example, the command generation unit 112 generates a limit value that increases and decreases as the second control amount increases, and restricts the first control command so as to be equal to or less than the limit value. The limit of the first control amount is adjusted according to the magnitude of the second control amount. Therefore, while the second control amount is small, the first control command is not restricted or is restricted relatively little, so the first control amount can be increased and the second control amount can be changed rapidly. When the second control amount increases, since the first control command is restricted relatively more, the first control amount decreases and the change in the second control amount can be reduced. The limit value may be generated so as to change continuously or may be generated so as to change discontinuously. When changing continuously, the operation of the robot can be made smoother without generating discontinuous restrictions.

[0033] FIG. 2 is a graph illustrating a limit value that increases and decreases as the second control amount increases. In FIG. 2, the horizontal axis represents the second control amount, and the vertical axis represents the first control amount. The command generation unit 112 stores a limit profile 210. The limit profile 210 represents the relationship between the second control amount and the limit value such that the limit value gradually decreases as the second control amount increases. Here, the terms "larger" and "smaller" refer to the magnitudes of the absolute values. Therefore, the limit profile 210 includes a limit profile 210A in the first quadrant and the fourth quadrant where the second control amount is a positive value, and a limit profile 210B in the second quadrant and the third quadrant where the second control amount is a negative value. The limit profile 210A and the 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 control amount increases, the limit value becomes zero at the position where the second control amount becomes the second limit value 221, and the positive and negative of the limit value are reversed with this position as a boundary. In the illustration, the limit profile 210 is linear, but it may be non-linear. The command generation unit 112 may hold the limit profile 210 as a function, or may hold the limit profile 210 as a discrete look-up table.

[0035] The instruction generation unit 112 may directly generate a first control instruction with an absolute value limited to 210 or less. When a first control instruction with an absolute value exceeding the limit profile 210 is temporarily generated, the absolute value of the temporarily generated first control instruction may be corrected to 210 or less. For example, point 201 in FIG. 2 is a combination of a second control amount and a first control instruction temporarily generated by the instruction generation unit 112. Point 202 is a limit value corresponding to the second control amount of point 201 in the limit profile 210. The first control instruction of point 201 exceeds the limit value of point 202. In such a case, the instruction generation unit 112 corrects the first control instruction of point 201 to the limit value of point 202.

[0036] Returning to FIG. 1, the motor control unit 111 may control one or more motors 40 so that the acceleration as the first control amount follows the acceleration command as the first control instruction. In this case, the instruction generation unit 112 generates a limit value that increases and decreases as the speed as the second control amount increases, and limits the acceleration command so that it is equal to or less than the limit value.

[0037] Under the situation where acceleration control is being performed, it becomes possible to impose a speed limit. Therefore, for example, when causing the robot 2 to perform a force operation, it is possible to prevent the speed from becoming excessively high as a result of moving away from the object of the operation.

[0038] The acceleration command includes a command for a physical quantity that is in a proportional relationship with the acceleration. For example, the torque generated by one or more motors 40 is proportional to the acceleration of the driven object that results therefrom. Therefore, the 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 the current. Therefore, the acceleration command includes a current command.

[0039] When the acceleration command represents the value of the acceleration itself, the motor control unit 111 calculates the current for generating 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 temporarily generate a first control command without relying on the second control amount. For example, the command generation unit 112 may generate the first control command based on a third control amount different from the second control amount while limiting the second control amount to a limit value or less. For example, the command generation unit 112 may temporarily generate the first control command based on the third control amount and limit the temporarily generated first control command to a limit value or less. The third control amount is different from the second control amount, but is common in that it changes according to the first control amount.

[0041] That the third control amount and the second control amount are different means that the physical quantities of the controlled object are different from each other. That the physical quantities are different from each other means, for example, that the ratio of one physical quantity to the other physical quantity is not linear. For example, physical quantities that are in a differential or integral relationship with each other 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 arm 10 of the robot 2 as the third control amount. For example, the command generation unit 112 may generate an acceleration command such that a force close to the force command is output from the arm 10 while limiting the acceleration command to a limit value or less. It is possible to suppress the speed from becoming excessive while finely controlling the force with the acceleration command.

[0043] For example, the command generation unit 112 may temporarily generate an acceleration command such that a force close to the force command is output from the arm 10 and limit the temporarily generated acceleration command to a limit value or less. The force of the arm 10 is, for example, the force that the arm 10 exerts on surrounding objects. For example, the force of the arm 10 is the force that the arm 10 exerts on surrounding objects in contact with the arm 10. The surrounding objects include people.

[0044] For example, the command generation unit 112 temporarily generates an acceleration command by means of a force feedback loop. For example, the command generation unit 112 performs proportional calculation, proportional-integral calculation, or proportional-integral-derivative calculation on the deviation between the force command and the force feedback value to temporarily generate an acceleration command for the arm 10 so as to reduce the deviation.

[0045] The command generation unit 112 calculates a limit value based on the speed of the arm 10 and the limit profile at the time when the acceleration command is temporarily generated. When the temporarily generated acceleration command exceeds the limit value, the command generation unit 112 corrects the acceleration command to be equal to or less than the limit value. When the temporarily generated acceleration command does not exceed the limit value, the command generation unit 112 uses the temporarily generated acceleration command without correction as the generation result of the acceleration command. 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") based on the corrected acceleration command and the structure information of the arm 10.

[0046] The motor control unit 111 controls each motor 40 so as to make the acceleration follow the acceleration command. When the arm 10 is not in contact with a surrounding object, the force feedback value does not approach the force command. However, since the acceleration command of the arm 10 is limited to be equal to or less than the limit value, it is possible to suppress the operating speed of the arm 10 from rising 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 decreases in response to the external force applied to the arm 10. For example, the control device 100 may control the force so that the external force decreases in response to the external force applied to the arm 10 by a person. The external force applied to the arm 10 and the force exerted by the arm 10 on the surrounding object (for example, a person) applying the external force are in an action-reaction relationship. Therefore, the force becomes larger when an external force is applied compared to the state where no external force is applied. Controlling the force so that the external force decreases corresponds to controlling the force to approach the magnitude in the state where no external force is applied.

[0048] For example, the command generation unit 112 generates an acceleration command such that a force close to a force command (e.g., zero) in a state where no external force is applied is output from the arm 10. The method of 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 a force close to a force command in a state where no external force is applied is output from the arm 10, the arm 10 moves in the direction in which the external force acts. Therefore, it becomes possible for a person to move the arm 10 to a desired position by applying an external force to the arm 10 and perform an operation teaching on the arm 10 (for example, direct teaching). Since the acceleration command is limited to a value equal to or less than the limit value, it is possible to suppress the operation speed of the arm 10 in the direction in which the external force acts from rising excessively.

[0050] The control device 100 may further include a superimposing unit 113. The superimposing 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 the force caused by static friction can be reduced. The influence of the force is, for example, that the force generated by the arm increases or decreases, or the accuracy of the estimated value of the force generated by the arm or the external force acting on the arm decreases.

[0051] The dither signal means a signal superimposed for dithering. Dithering means a process of reducing the movement catch due to static friction and smoothing the operation of the arm 10 by superimposing a high-frequency dither signal on a control command (for example, 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 high enough 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 with the dither signal superimposed thereon and the acceleration. When there is no force (e.g., external force) acting on the arm 10, 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 not moved due to static friction, the degree of difference between the acceleration command and the acceleration cannot be grasped, so the estimation accuracy of the external force decreases. The superimposition of the dither signal reduces the state where the arm 10 is not moved due to static friction. For this reason, a decrease in the estimation accuracy of the external force is suppressed.

[0054] The command generation unit 112 may generate an acceleration command using the force estimated by the force estimation unit 114 as the feedback value of the above-described force. The force can be controlled without a sensor by using the force estimation result with improved accuracy due to the superimposition of the dither signal.

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

[0056] The control device 100 may control the force with which the end effector 3 presses against the workpiece. For example, the command generation unit 112 may generate an acceleration command while limiting the acceleration command to be equal to or less than the limit value so that a force close to the force command is output from the end effector 3 to the workpiece. The method of generating the acceleration command is as described above. Since the speed at which the end effector 3 moves away from the workpiece and moves toward the workpiece 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 of moving the end effector 3 in the approach direction and pressing it against the workpiece, and a search operation of moving the end effector 3 in the search direction intersecting the pressing direction while the end effector 3 is pressed against the workpiece in the pressing direction. The storage unit 116 stores, as teaching data for the imitation operation, at least the pressing direction in the search operation and the position of the end effector 3. The storage unit 116 may store teaching data at a plurality of locations in time series. The command generation unit 112 generates an acceleration command so that a force for pressing against the workpiece is output from the end effector 3 while limiting the acceleration command to a value equal to or less than the limit value, at least in the approach operation. The teaching of the imitation operation can be automatically performed. At this time, it is possible to prevent a high-speed collision with the workpiece during movement in the approach direction.

[0058] In the search operation, the command generation unit 112 may generate 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. In the search operation, the state in which the end effector 3 is pressed against the workpiece can be easily maintained.

[0059] In the search operation, the teaching operation execution unit 115 may change the pressing direction so as to be orthogonal to the search direction. In 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] When the teaching operation execution unit 115 detects a deviation between the direction orthogonal to the pressing direction and the search direction, the teaching operation execution unit 115 may temporarily stop the movement of the end effector 3 and change the pressing direction so as to be orthogonal to the search direction. By the temporary stop, the frictional force in the search direction can be reduced, and the pressing direction can be changed so as to be orthogonal to the search direction with higher accuracy. Thereby, 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 further stabilized.

[0061] The teaching operation execution unit 115 may store teaching data at a plurality of locations in the storage unit 116 in time series. For example, after the teaching operation execution unit 115 stores the teaching data at the location where the pressing direction is first determined in the storage unit 116, the teaching data at the location where the pressing direction is changed may be sequentially stored 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 approaches the predetermined end position most closely. The time when it approaches most closely is not limited to the moment when it approaches most closely. For example, the time when it approaches most closely may be when it is recognized that it has passed the position where it approaches most closely, or when it is recognized that it is approaching the position where it approaches most closely. When automatically teaching the imitation operation, since the movement path of the end effector 3 is not determined before teaching, it is difficult to define the end position at the position actually reached by the end effector 3. By determining the end of the search operation when it is closest to the end position, the end can be defined before the movement path of the end effector 3 is determined. Note that the closest approach may be, for example, calculating the distance between the end position and the end effector 3 and setting the point where the distance is minimized as the end, or setting the extreme value where the distance starts to increase as the end, but is not limited to these examples.

[0063] Hereinafter, the teaching operation from the start of the approach operation to the end of the search operation will be exemplified with reference to FIGS. 3 to 6. As shown in FIG. 3, the teaching operation execution unit 115 first controls the robot 2 to place the end effector 3 at the start position SP away from the area A1 where the work W is placed. For example, the teaching operation execution unit 115 sequentially generates position commands for the end effector 3 up to the start position SP and inputs them to the command generation unit 112. The command generation unit 112 generates a speed command for the end effector 3 by a feedback loop of the position of the end effector 3, generates an acceleration command for the end effector 3 by a feedback loop of the speed of the end effector 3, and converts the acceleration command for the end effector 3 into acceleration commands for the respective motors 40. The motor control unit 111 controls each motor 40 so that the acceleration follows the acceleration command. Thereby, the end effector 3 is placed at the start position SP.

[0064] Next, the teaching operation execution unit 115 starts the approach operation on the arm 10. For example, the teaching operation execution unit 115 inputs a force command in the approach direction D11 to the command generation unit 112, with the direction from the start position SP toward the area A1 (for example, the center of the area A1) as the approach direction D11. 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 a value below the limit value, and converts the acceleration command for the end effector 3 into acceleration commands for the respective motors 40. The motor control unit 111 controls each motor 40 so that the acceleration follows the acceleration command. Thereby, the approach operation is executed.

[0065] The instruction generation unit 112 detects that the end effector 3 has hit the workpiece W based on the increase in force, and notifies the teaching operation execution unit 115. As shown in FIG. 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 acting direction of the normal force from the end effector 3 to the workpiece W as the pressing direction D21. The teaching operation execution unit 115 may use the approach direction D11 as the pressing direction D21 as it is. The teaching operation execution unit 115 causes the storage unit 116 to store teaching data including a force command, the pressing direction D21, and the current position of the end effector 3.

[0066] The teaching operation execution unit 115 inputs the pressing direction D21 and a speed command in the orthogonal direction D22 perpendicular to the pressing direction D21 to the instruction generation unit 112. The instruction 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 speed close to the speed command, and converts the acceleration command of the end effector 3 into acceleration commands for each motor 40. The motor control unit 111 controls each motor 40 so that the acceleration follows the acceleration command. Thereby, the search operation is executed.

[0067] The teaching operation execution unit 115 monitors the deviation between the orthogonal direction D22 and the search direction D23. The deviation 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 deviation 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 FIG. 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 deviation between the orthogonal direction D22 and the search direction D23.

[0068] When detecting a deviation between the orthogonal direction D22 and the search direction D23, the teaching operation execution unit 115 temporarily stops the movement of the end effector 3. For example, the teaching operation execution unit 115 sets the speed 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 so as to be orthogonal to the search direction D23. The teaching operation execution unit 115 stores the 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 a speed command to the command generation unit 112 to resume the movement of the end effector 3.

[0069] In this way, each time a deviation between the orthogonal direction D22 and the search direction D23 is detected, by repeating the change of the pressing direction D21 and the registration of the teaching data, as shown in FIG. 5, the storage unit 116 stores the teaching data of a plurality of teaching points TP01 to TP06. When the end effector 3 comes closest to a predetermined end position DP (for example, when the distance L2 between the end position DP and the end effector 3 becomes the smallest), the teaching operation execution unit 115 determines the end of the search operation 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 as to be orthogonal to the search direction D23. The teaching operation execution unit 115 stores the 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, the teaching data of the teaching point TP07 is further registered.

[0070] The teaching operation execution unit 115 causes the arm 10 to execute a retract operation. For example, the teaching operation execution unit 115 sequentially generates position commands until it leaves area A1 and inputs them to the command generation unit 112. The command generation unit 112 generates a speed command for the end effector 3 through a feedback loop of the position of the end effector 3, generates an acceleration command for the end effector 3 through a feedback loop of the speed of the end effector 3, 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] The teaching operation is completed as described above. According to this teaching operation, it is also possible to teach an orbiting motion around the workpiece W. For example, FIG. 6 illustrates a state in which teaching data of a plurality of teaching points TP11 to TP24 along a movement path orbiting around the workpiece W is registered.

[0072] Returning to FIG. 1, the control device 100 may further include a playback unit 117. The playback unit 117 controls the arm 10 to perform an imitation operation on the workpiece W based on the teaching data stored in the storage unit 116. The imitation operation is, for example, an operation of moving the end effector 3 such as a polishing tool along the workpiece W. The playback unit 117 causes the arm 10 to perform the approach operation so as to place the end effector 3 at the first teaching point, and inputs the pressing direction D21 at the first teaching point, the force command, and the speed 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 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 speed close to the speed command, and converts the acceleration command for the end effector 3 into acceleration commands for the respective motors 40. The motor control unit 111 controls each motor 40 so that the acceleration follows the acceleration command. Each time the end effector 3 reaches the next teaching point, the playback unit 117 changes the pressing direction to the pressing direction of the next teaching point. Thereby, the imitation operation is performed. 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 retract operation. Thus, the imitation operation is completed.

[0073] The above configuration can also be used for other operations in addition to the imitation operation. For example, it can also be used when performing screwing by rotating the tip 18 together with a screwing tool (an example of the end effector 3).

[0074] For example, the command generation unit 112 generates an acceleration command for the motor 46 so as to output a torque close to a predetermined torque command to the screwing tool. The superimposing unit 113 superimposes a high-frequency dither signal on 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 on which the dither signal is superimposed. The force estimation unit 114 estimates the torque acting on the screwing tool based on the acceleration command on which the dither signal is superimposed and the acceleration. The command generation unit 112 generates an acceleration command using the estimated torque as a feedback value. As a result, screwing is performed with a torque that follows the torque command.

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

[0076] The storage 193 stores a program for causing the control device 100 to control at least one or more motors 40 of the robot system 1 so that a first control amount follows a first control command, and to limit the first control command according to a second control amount obtained by integrating the first control amount. For example, the storage 193 stores a program for configuring the control device 100 with each of the above-described functional blocks.

[0077] The storage 193 includes one or more storage devices. The storage device is a volatile storage medium such as a hard disk drive or a flash memory, for example. The storage device may include portable media such as an optical disk or a magnetic disk.

[0078] The memory 192 temporarily stores a program loaded from the storage 193. The memory 192 includes one or more memory devices. The memory device is a volatile storage medium such as a random access memory, for example.

[0079] The processor 191 causes the control device 100 to configure each of the above-described functional blocks by executing a program loaded in the memory 192. Data generated by the processor 191 is stored in the memory 192 as necessary. The servo circuits 194, 195, 196, 197, 198, 199 supply current to the motors 41, 42, 43, 44, 45, 46 based on a request from the processor 191. The hardware configuration of the control device 100 is not limited to the above and can be changed. For example, it is not necessary for all functions of the control device 100 to be executed by executing a program, and at least some functions may be configured by a dedicated logic circuit such as an ASIC (Application-Specific Integrated Circuit).

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

[0081] The control procedure illustrates a motor control procedure, an operation teaching procedure, and a feedback control procedure. Both the operation teaching procedure and the feedback control procedure are executed in parallel with the motor control procedure. Hereinafter, each procedure is illustrated.

[0082] (Motor Control Procedure) This procedure is a procedure for controlling the force of the arm 10 of the robot 2. As shown in FIG. 8, the control device 100 executes steps S01, S02, and S03. In step S01, the command generation unit 112 acquires a feedback value of a force (for example, a force acting from the end effector 3 on the workpiece). For example, the command generation unit 112 acquires an estimated value of the force by the force estimation unit 114. In step S02, the command generation unit 112 temporarily generates an acceleration command for the arm 10 so as to reduce the deviation between the force command and the feedback value of the force. In step S03, the superimposing 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 temporarily generated acceleration command exceeds the limit value.

[0084] In step S05, if it is determined that the acceleration command exceeds the limit value, the control device 100 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. In step S05, if 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 the acceleration commands of the respective motors 40, and the motor control unit 111 controls the respective motors 40 so as to follow the acceleration with the acceleration command. Thereafter, the control device 100 returns the process to step S01. The control device 100 repeats the above procedure.

[0086] (Operation teaching procedure) This procedure is a procedure for causing the arm 10 to execute the above-described approach operation and search operation by the above-described motor control procedure. As shown in FIG. 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 so that the end effector 3 is disposed at the start 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 toward the approach direction D11 while limiting the acceleration command to a value equal to or less than the 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 as to follow the acceleration with the acceleration command. Thereby, the approach operation is executed. In step S13, the command generation unit 112 checks whether or not the end effector 3 has hit the workpiece W based on the feedback value of the force. In step S13, if it is determined that the end effector 3 has not hit the workpiece W, the control device 100 returns the process to step S12. Thereafter, the approach operation is continued until the end effector 3 hits 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 feedback value of the force. In step S15, the teaching operation execution unit 115 causes the storage unit 116 to store teaching data including the force command, the pressing direction D21, and the current position of the end effector 3. 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 acceleration commands for the respective motors 40. The motor control unit 111 controls each motor 40 so that the acceleration follows the acceleration command. Thereby, the search operation is executed.

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

[0089] In step S17, if it is determined that the displacement amount of the end effector 3 exceeds the threshold value, the control device 100 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 so as to be orthogonal to the search direction D23. In step S21, the teaching operation execution unit 115 causes the storage unit 116 to store teaching data including the force command, the pressing direction D21, and the current position of the end effector 3. 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. In step S17, when it is determined that the displacement amount of the end effector 3 does not exceed the threshold value, 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 has come closest to the end position DP (for example, whether the distance between the end effector 3 and the end position DP has become minimum). In step S23, when it is determined that the end effector 3 has not come closest to the end position DP, the control device 100 returns the process to step S15. Thereafter, the search operation continues until the end effector 3 comes closest to the end position DP.

[0091] In step S23, when it is determined that the end effector 3 has come closest to the end position DP, the control device 100 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 so as to be orthogonal to the search direction D23. In step S26, the teaching operation execution unit 115 causes the storage unit 116 to store teaching data including the force command, the pressing direction D21, and the current position of the end effector 3. In step S27, the teaching operation execution unit 115 causes the arm 10 to execute the above retract operation. Thus, the operation teaching procedure is completed.

[0092] (Playback control procedure) This procedure is to make the arm 10 execute the imitation operation according to the above-described motor control procedure based on the teaching data registered in the memory unit 116. As shown in FIG. 10, the control device 100 executes steps S31, S32, and S33. In step S31, the playback unit 117 controls the robot 2 so that the end effector 3 is arranged at the start 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 or not the end effector 3 has hit the workpiece W at the first teaching point based on the force feedback value. In step S33, if it is determined that the end effector 3 has not hit the workpiece W, the control device 100 returns the process to step S32. Thereafter, the approach operation is continued until the end effector 3 hits the workpiece W.

[0093] In step S33, if it is determined that the end effector 3 has hit the workpiece W, the control device 100 executes steps S34 and S35. In step S34, the playback unit 117 inputs the pressing direction D21 at the first teaching point, the force command, and the speed 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 speed close to the speed command, and converts the acceleration command of the end effector 3 into the acceleration commands of the respective motors 40. The motor control unit 111 controls the respective motors 40 so that the acceleration follows the acceleration command. Thereby, the imitation operation is executed.

[0094] In step S35, the playback unit 117 checks whether or not the end effector 3 has reached the next teaching point. In step S35, if it is determined that the end effector 3 has not reached the next teaching point, the control device 100 returns the process to step S34 to continue the imitation operation.

[0095] In step S35, when it is determined that the end effector 3 has reached the next teaching point, the control device 100 executes step S36. In step S36, the playback unit 117 inputs the pressing direction D21, the force command, and the velocity command in the orthogonal direction D22 at the reached teaching point to the command generation unit 112. Thereby, the pressing direction D21 is changed and the tracing operation is continued.

[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. In step S37, when it is determined that the end effector 3 has not reached the final teaching point, the control device 100 returns the process to step S34 and continues the tracing operation. In step S37, when it is determined that the end effector 3 has reached the final teaching point, the control device 100 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 execute a retract operation. Thus, the playback control procedure is completed.

[0097] (Other operation teaching procedures) FIG. 11 is a flowchart illustrating an operation teaching procedure executed by the control device 100 in direct teaching performed by a person applying an external force to the arm 10. As shown in FIG. 11, the control device 100 first executes steps S41 to S47 (motor control procedure) similar to steps S01 to S07. In step S42, the command generation unit 112 temporarily generates an acceleration command for the arm 10 by setting the force command to a value (for example, zero) when no external force is generated.

[0098] Next to S47, the control device 100 executes step S51. In step S51, the command generation unit 112 checks whether or not a user has performed an operation to add a teaching point. The addition operation is input by a user interface (for example, a teaching pendant) that can communicate with the control device 100. In step S51, if it is determined that the operation to add a teaching point has been performed, the control device 100 executes step S52. In step S52, the command generation unit 112 causes the storage unit 116 to store the teaching point (for example, the current position of the end effector 3). Thereafter, the control device 100 returns the process to step S41 and continues direct teaching.

[0099] In step S51, if it is determined that the operation to add a teaching point has not been performed, the control device 100 executes step S53. The command generation unit 112 checks whether or not a user has performed an operation to end direct teaching. The end operation is input by, for example, the above-described user interface. In step S53, if it is determined that the end operation has not been performed, the control device 100 returns the process to step S41 and continues direct teaching. In step S53, if it is determined that the end operation has been performed, the control device 100 ends direct teaching.

[0100] (Screw tightening control procedure) FIG. 12 is a flowchart illustrating a screw tightening control procedure by an end effector 3 such as a screw tightening tool. This procedure is executed in a state where the end effector 3 that rotates together with the tip portion 18 is engaged with a bolt or the like. As shown in FIG. 12, the control device 100 executes steps S61, S62, S63, S64, and S65. In step S61, the command generation unit 112 acquires 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 as to output a torque close to a predetermined torque command to the end effector 3. In step S63, the superimposing unit 113 superimposes a dither signal on the acceleration command of the motor 46. In step S64, the motor control unit 111 controls the motor 46 so that the acceleration follows the acceleration command on which the dither signal is superimposed. In step S65, the command generation unit 112 checks whether or not the feedback value of the torque has reached the torque command. In step S65, if it is determined that the feedback value of the torque has not reached the torque command, the control device 100 returns the process to step S61 and continues the screw tightening control. In step S65, if it is determined that the feedback value of the torque has reached the torque command, the control device 100 completes the screw tightening control procedure.

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

[0102] (2) The command generation unit 112 generates a limit value that decreases as the second control quantity increases, and limits the first control command so as to be below the limit value, for the robot system 1 described in (1). The limit of the first control quantity is adjusted according to the magnitude of the second control quantity. Therefore, while the second control quantity is small, the first control command is not restricted or is restricted relatively little, so the first control quantity can be increased and the second control quantity can be changed rapidly. When the second control quantity increases, the first control command is restricted relatively more, so the first control quantity decreases and the change in the second control quantity can be reduced. The limit value may be generated so as to change continuously or discontinuously. However, when it is changed continuously, discontinuous restrictions do not occur and the operation of the robot can be made smoother.

[0103] (3) The motor control unit 111 controls the motor so that the acceleration, which is the first control quantity, follows the acceleration command as the first control command, and the command generation unit 112 generates a limit value that decreases as the speed, which is the second control quantity, increases, and limits the acceleration command so as to be below the limit value, for the robot system 1 described in (2). It becomes possible to apply speed limits under the situation where acceleration control is being performed. Therefore, for example, when causing a robot to perform a force application task, it is possible to prevent the speed from becoming excessively high as a result of moving away from the object.

[0104] (4) The control device 100 controls the force of the arm 10 of the robot, and the command generation unit 112 generates an acceleration command such that the force is output from the arm 10 while limiting the acceleration command to be equal to or less than the limit value, for the robot system 1 described in (3). While finely controlling the force by the acceleration command, it is possible to suppress the speed from becoming excessive.

[0105] (5) The control device 100 controls the force so that the external force decreases in response to the external force applied to the arm 10, for the robot system 1 described in (4). 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 the speed from rising excessively due to the external force added by the person.

[0106] (6) The robot system 1 described in (4) or (5) further includes a superimposing unit 113 that superimposes a high-frequency dither signal on the acceleration command generated by the command generation unit 112, and the motor control unit 111 controls the motor so that the acceleration follows the acceleration command with the dither signal superimposed. The influence of the force caused by static friction can be reduced. The influence of the force includes, for example, the force generated by the arm 10 increasing or decreasing, and the accuracy of the estimated value of the force generated by the arm 10 or the external force acting on the arm 10 decreasing.

[0107] (7) The robot system 1 described in (6) further includes a force estimation unit 114 that estimates the force acting on the arm 10 based on the acceleration command with the dither signal superimposed and the acceleration. An accurate force can be estimated. By using the estimated force to perform force control of the arm 10, sensorless operation can be realized.

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

[0109] (9) The control device 100 causes the robot to perform an approach operation of moving the end effector 3 in the approach direction and pressing it against the workpiece, and a search operation of moving the end effector 3 in the search direction intersecting the pressing direction while pressing it against the workpiece in the pressing direction. It has an instruction operation execution unit 115 for performing the above, and a storage unit 116 for storing at least the pressing direction in the search operation and the position of the end effector 3 as teaching data for the imitation work. The command generation unit 112 generates an acceleration command so that a force for pressing against the workpiece is output from the end effector 3 while limiting the acceleration command to a value equal to or less than the limit value at least in the approach operation. The robot system 1 according to (8). The teaching of the imitation work can be automatically performed. At this time, it is possible to prevent a high-speed collision with the workpiece during the movement in the approach direction.

[0110] (10) The instruction operation execution unit 115 determines the end of the search operation when the end effector 3 is closest to a predetermined end position. The robot system 1 according to (9). When automatically teaching the imitation work, since it does not always pass through a specific position, it is difficult to determine the end condition. However, in this robot system 1, the end of the search operation is determined when it is closest to the end position, so the end can be appropriately defined. Note that the closest approach may be, for example, calculating the distance between the end position and the end effector 3 and setting the point where the distance is minimized as the end, or setting the extreme value where the distance starts to increase as the end, but it is not limited to this example.

[0111] (11) 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 in the search operation. The robot system 1 according to (9) or (10). In the search operation, the state of pressing the end effector 3 against the workpiece can be easily maintained.

[0112] (12) In the search operation, the teaching operation execution unit 115 changes the pressing direction so as to be orthogonal to the search direction in the robot system 1 described in (11). In the search operation, the magnitude of the force acting from the end effector 3 on the workpiece and the speed of movement of the end effector 3 can be stabilized.

[0113] (13) When the deviation between the direction orthogonal to the pressing direction and the search direction is detected, the teaching operation execution unit 115 temporarily stops the movement of the end effector 3 and changes the pressing direction so as to be orthogonal to the search direction in the robot system 1 described in (12). By the temporary stop, the frictional force in the search direction can be reduced, and the pressing direction can be changed so as to be orthogonal to the search direction with higher accuracy. Thereby, the magnitude of the force acting from the end effector 3 on the workpiece and the speed of movement of the end effector 3 can be further stabilized.

[0114] (14) A control method including controlling at least one motor so that a first control amount follows a first control command, and restricting the first control command according to a second control amount obtained by integrating the first control amount.

Description of Reference Numerals

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

Claims

1. A robot having one or more motors for moving an arm, A control device for controlling the robot, Comprising: The control device, A motor control unit that controls at least one motor so that a first control amount follows a first control command, A robot system having a command generation unit that restricts the first control command according to a second control amount obtained by integrating the first control amount.

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

3. The motor control unit controls the motor so that an acceleration as the first control amount follows an acceleration command as the first control command, The command generation unit, Generates the limit value that decreases as the speed as the second control amount increases, Restricts the acceleration command so as to be equal to or less than the limit value. The robot system according to claim 2.

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

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

6. Further comprising a superimposing unit that superimposes a high-frequency dither signal on the acceleration command generated by the command generation unit, The motor control unit controls the motor so that the acceleration follows the acceleration command on which the dither signal is superimposed. The robot system according to claim 4.

7. Further comprising a force estimation unit that estimates the force acting on the arm based on the acceleration command on which the dither signal is superimposed and the acceleration. The robot system according to claim 6.

8. Further having an end effector attached to the tip of the arm and acting on the workpiece, The control device controls the force with which the end effector presses against the workpiece. The robot system according to any one of claims 4 to 7.

9. The control device, To the robot, An approach operation of moving the end effector in the approach direction and pressing it against the workpiece, A search operation for moving the end effector in a search direction intersecting the pressing direction while the end effector is pressed against the work in the pressing direction, An instruction operation execution unit for causing the above to be performed, A storage unit that stores at least the pressing direction in the search operation and the position of the end effector as teaching data for the imitation work, having, The robot system according to claim 8, wherein the command generation unit generates the acceleration command so that a force pressing against the work is output from the end effector while limiting the acceleration command to be equal to or less than the limit value at least in the approach operation.

10. The instruction operation execution unit determines the end of the search operation when the end effector comes closest to a predetermined end position. The robot system according to claim 9.

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

12. In the search operation, the instruction operation execution unit changes the pressing direction so as to be orthogonal to the search direction. The robot system according to claim 11.

13. When the instruction operation execution unit detects a deviation between the direction orthogonal to the pressing direction and the search direction, the movement of the end effector is temporarily stopped, and the pressing direction is changed so as to be orthogonal to the search direction. The robot system according to claim 12.

14. Controlling at least one motor so that a first control amount follows a first control command, Limiting the first control command according to a second control amount obtained by integrating the first control amount, A control method including.

Citation Information

Patent Citations

  • Controller for robot

    JP1985003715A

  • 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

  • Track formation system for robot

    JP1991184786A