Robot control method and robot system

By using an inertial sensor to generate and filter signals in a coordinate system with a closer origin, the method addresses the accuracy issues in vibration damping control, enhancing the positional precision of robot arms.

JP2025007889APending Publication Date: 2025-01-17SEIKO EPSON CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023109601
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-07-03
Publication Date
2025-01-17

AI Technical Summary

Technical Problem

The accuracy of vibration damping control in robot arms is insufficient due to the large positional variation of the sensor coordinate system origin, which is located far from the base end, leading to decreased positional accuracy during work.

Method used

An inertial sensor installed at a predetermined portion of the robot arm generates signals that undergo processing to remove specific frequency components, followed by conversion to a coordinate system with a closer origin, and further filtering to generate a drive signal for precise vibration damping control.

Benefits of technology

This method enables highly accurate vibration damping control, improving the positional accuracy of the robot arm by effectively removing noise and positional fluctuations, allowing smoother operation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025007889000001_ABST
    Figure 2025007889000001_ABST
Patent Text Reader

Abstract

To provide a robot control method and a robot system that are able to perform highly accurate damping control.SOLUTION: A robot control method includes: a first step of generating a second signal by performing a process of removing components of frequencies equal to or lower than a first frequency F1, from a first signal which is output from an inertial sensor installed in a predetermined part of a robot arm having a basal end and a distal end and which indicates an inertia force of the predetermined part in a first coordinate system having as a first origin an arbitrary point set in the inertial sensor; a second step of generating a third signal by converting the second signal into a signal in a second coordinate system having a second origin located closer to a basal-end side of the robot arm than the first origin; a third step of generating a fourth signal by performing a process of removing components of frequencies equal to or lower than a second frequency F2, from the third signal; and a fourth step of generating a drive signal for the robot arm on the basis of the fourth signal, and controlling an operation of the robot arm by the drive signal.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a robot control method and a robot system. [Background technology]

[0002] In recent years, due to rising labor costs and labor shortages in factories, robots with robotic arms are being used to perform tasks such as manufacturing, processing, and assembly of parts and products, and tasks that have been performed manually are being automated. In such robots, vibration control is performed to suppress vibrations caused by the robot's operation in order to smooth the robot's operation and perform the above-mentioned tasks better.

[0003] The robot described in Patent Document 1 includes a robot arm and an acceleration sensor built into the tip of the robot arm, and vibration suppression control is performed to suppress vibrations of the robot based on the detection value detected by the acceleration sensor.

[0004] In Patent Document 1, the detection value detected by the acceleration sensor is the acceleration value in a sensor coordinate system set in the acceleration sensor. This detection value is subjected to processing to remove predetermined frequency components to obtain a detection value from which noise has been removed, and a drive signal for a robot arm is generated by taking into account the detection value from which noise has been removed. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] JP 2011-136395 A Summary of the Invention [Problem to be solved by the invention]

[0006] However, since the sensor coordinate system is a coordinate system whose origin is located at a position relatively far away from the base end of the robot arm, the positional fluctuation of the origin itself is relatively large. Therefore, if the detection value of the sensor coordinate system is used for vibration suppression control, the accuracy of the vibration suppression control becomes insufficient. In Patent Document 1, due to such a configuration, it is not possible to perform highly accurate vibration suppression control. As a result, disadvantages due to insufficient accuracy of vibration suppression control occur, such as a problem of reduced positional accuracy in the above-mentioned work of the robot. [Means for solving the problem]

[0007] A method for controlling a robot of the present invention includes a first step of performing a process for removing frequency components equal to or lower than a first frequency F1 from a first signal that is output from an inertial sensor installed at a predetermined portion of a robot arm having a base end and a tip end, and indicates an inertial force of the predetermined portion in a first coordinate system having an arbitrary point set in the inertial sensor as a first origin, to generate a second signal; a second step of converting the second signal into a signal in a second coordinate system having a second origin located closer to the base end of the robot arm than the first origin to generate a third signal; a third step of performing a process for removing frequency components equal to or lower than a second frequency F2 from the third signal to generate a fourth signal; and a fourth step of generating a drive signal for the robot arm based on the fourth signal and controlling the operation of the robot arm using the drive signal.

[0008] The robot system of the present invention includes a first filter unit that performs processing to remove frequency components equal to or lower than a first frequency F1 from a first signal that is output from an inertial sensor installed at a predetermined portion of a robot arm having a base end and a tip end, and indicates an inertial force of the predetermined portion in a first coordinate system having an arbitrary point set in the inertial sensor as a first origin, to generate a second signal; a coordinate system conversion unit that converts the second signal into a signal in a second coordinate system having a second origin located closer to the base end of the robot arm than the first origin to generate a third signal; a second filter unit that performs processing on the third signal to remove frequency components equal to or lower than a second frequency F2 to generate a fourth signal; a drive control unit that generates a drive signal for the robot arm based on the fourth signal and controls the operation of the robot arm using the drive signal. [Brief description of the drawings]

[0009] [Figure 1] FIG. 1 is a diagram showing the overall configuration of a robot system according to a first embodiment of the present invention. [Diagram 2] FIG. 2 is a block diagram of the robot system shown in FIG. [Diagram 3] FIG. 3 is a schematic configuration diagram for explaining each process performed by the control unit shown in FIG. [Figure 4] FIG. 4 is a flowchart for explaining an example of a control operation performed by the control unit shown in FIG. [Diagram 5] FIG. 5 is a schematic configuration diagram for explaining each process performed by a control unit included in a robot system according to a second embodiment of the present invention. [Figure 6] FIG. 6 is a flowchart for explaining an example of a control operation performed by the control unit shown in FIG. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, a robot control method and a robot system according to the present invention will be described in detail based on preferred embodiments shown in the accompanying drawings.

[0011] First Embodiment Fig. 1 is a diagram showing the overall configuration of a first embodiment of a robot system of the present invention. Fig. 2 is a block diagram of the robot system shown in Fig. 1. Fig. 3 is a schematic configuration diagram for explaining each process performed by a control unit shown in Fig. 2. Fig. 4 is a flowchart for explaining an example of a control operation performed by the control unit shown in Fig. 2.

[0012] In the following, for ease of explanation, the side of the robot arm 10 facing the base 11 in FIG. 1 will be referred to as the "base end" or "base end side", and the opposite side, i.e., the side facing the end effector 20, will be referred to as the "tip" or "tip side".

[0013] 1, a robot system 100 includes a robot 1 and a control device 3 that controls the robot 1. The robot control method of the present invention is executed by the control device 3. However, the present invention is not limited to this configuration, and the robot control method of the present invention may be configured to be executed by a device other than the control device 3, such as a teaching device.

[0014] First, the robot 1 will be described. 1 is a single-arm, six-axis vertical articulated robot in this embodiment, and includes a base 11 and a robot arm 10. The robot arm 10 has a base end 10A and a tip end 10B. An end effector 20 can be attached to the tip end 10B of the robot arm 10. The end effector 20 may be a component of the robot 1, or may be a separate member from the robot 1, i.e., it does not have to be a component of the robot 1.

[0015] The robot 1 is not limited to the configuration shown in the figure, and may be, for example, a dual-arm articulated robot or a horizontal articulated robot.

[0016] The base 11 is a support that drivably supports the robot arm 10 at its base end side, and is fixed to, for example, a floor in a factory. The base 11 of the robot 1 is electrically connected to the control device 3 via a relay cable. Note that the connection between the robot 1 and the control device 3 is not limited to a wired connection as in the configuration shown in Fig. 1, and may be, for example, a wireless connection. Also, they may be connected via a network such as the Internet.

[0017] In this embodiment, the robot arm 10 has a first arm 12, a second arm 13, a third arm 14, a fourth arm 15, a fifth arm 16, and a sixth arm 17, and these arms are connected in this order from the base 11 side toward the tip side, that is, from the base end portion 10A side toward the tip end portion 10B side. The number of arms of the robot arm 10 is not limited to six, and may be, for example, one, two, three, four, five, or seven or more. The size of each arm, such as the total length, is not particularly limited and can be set appropriately.

[0018] The base 11 and the first arm 12 are connected via a joint 171. The first arm 12 is rotatable around a first rotation axis extending in the vertical direction relative to the base 11. In this manner, the first rotation axis coincides with the normal line of the floor surface to which the base 11 is fixed, and the entire robot arm 10 can rotate in either the forward or reverse direction around the first rotation axis.

[0019] The first arm 12 and the second arm 13 are connected via a joint 172. The second arm 13 is capable of rotating with respect to the first arm 12 about a second rotation axis that extends in the horizontal direction.

[0020] The second arm 13 and the third arm 14 are connected via a joint 173. The third arm 14 is rotatable about a third rotation axis that extends horizontally relative to the second arm 13. The third rotation axis is parallel to the second rotation axis.

[0021] The third arm 14 and the fourth arm 15 are connected via a joint 174. The fourth arm 15 is rotatable relative to the third arm 14 about a fourth rotation axis that is parallel to the central axial direction of the third arm 14. The fourth rotation axis is perpendicular to the third rotation axis.

[0022] The fourth arm 15 and the fifth arm 16 are connected via a joint 175. The fifth arm 16 is rotatable about a fifth rotation axis relative to the fourth arm 15. The fifth rotation axis is perpendicular to the fourth rotation axis.

[0023] The fifth arm 16 and the sixth arm 17 are connected via a joint 176. The sixth arm 17 is rotatable about a sixth rotation axis relative to the fifth arm 16. The sixth rotation axis is perpendicular to the fifth rotation axis.

[0024] The sixth arm 17 is located at the most distal end of the robot arm 10. The sixth arm 17 can be displaced together with the end effector 20 by being driven by the robot arm 10.

[0025] 1 has a gripping portion capable of gripping a workpiece or a tool. When the end effector 20 is attached to the sixth arm 17, the tip of the end effector 20 becomes the tool center point TCP.

[0026] The robot 1 includes motors M1, M2, M3, M4, M5, and M6 as driving units, and encoders E1, E2, E3, E4, E5, and E6. The motor M1 is built into the joint 171 and rotates the first arm 12 relative to the base 11 around the first rotation axis. The motor M2 is built into the joint 172 and rotates the first arm 12 and the second arm 13 relatively around the second rotation axis. The motor M3 is built into the joint 173 and rotates the second arm 13 and the third arm 14 relatively around the third rotation axis. The motor M4 is built into the joint 174 and rotates the third arm 14 and the fourth arm 15 relatively around the fourth rotation axis. The motor M5 is built into the joint 175 and rotates the fourth arm 15 and the fifth arm 16 relatively around the fifth rotation axis. The motor M6 is built into the joint 176 and rotates the fifth arm 16 and the sixth arm 17 relatively around the sixth rotation axis.

[0027] Additionally, encoder E1 is built into joint 171 and detects the position of motor M1. Encoder E2 is built into joint 172 and detects the position of motor M2. Encoder E3 is built into joint 173 and detects the position of motor M3. Encoder E4 is built into joint 174 and detects the position of motor M4. Encoder E5 is built into fifth arm 16 and detects the position of motor M5. Encoder E6 is built into sixth arm 17 and detects the position of motor M6. Note that "detecting position" here refers to detecting the rotation angle of the motor, i.e., the amount of rotation including forward and reverse, and the angular velocity, and the detected information is referred to as "position information."

[0028] As shown in FIG. 2, motor drivers D1, D2, D3, D4, D5 and D6 are connected to corresponding motors M1, M2, M3, M4, M5 and M6, respectively, and control the driving of these motors.

[0029] The encoders E1, E2, E3, E4, E5, E6, the motors M1, M2, M3, M4, M5, M6, and the motor drivers D1, D2, D3, D4, D5, and D6 are each electrically connected to the control device 3. Position information of the motors M1, M2, M3, M4, M5, and M6 detected by the encoders E1, E2, E3, E4, E5, and E6, i.e., the amount of rotation, is transmitted as an electric signal to the control device 3. Then, based on this position information, the control device 3 outputs a control signal to the motor drivers D1, D2, D3, D4, D5, and D6 shown in FIG. 2 to drive the motors M1, M2, M3, M4, M5, and M6. In other words, controlling the robot arm 10 means controlling the drive of motors M1, M2, M3, M4, M5 and M6 to control the operation of the first arm 12, the second arm 13, the third arm 14, the fourth arm 15, the fifth arm 16 and the sixth arm 17 belonging to the robot arm 10.

[0030] 1, the inertial sensor 19 is installed at a predetermined portion of the robot arm 10 and detects the inertial force of the predetermined portion. The predetermined portion is a portion that is subject to vibration control, which will be described later, and is the sixth arm 17 in this embodiment. That is, the inertial sensor 19 is installed at the sixth arm 17 and detects the inertial force of the sixth arm 17. In other words, the inertial sensor 19 detects the inertial force of the tip portion 10B of the robot arm 10.

[0031] A sensor coordinate system (first coordinate system) is set in the inertial sensor 19. The sensor coordinate system has an origin O1 (first origin) at an arbitrary point set in the inertial sensor 19, and has three mutually orthogonal axes, that is, an x-axis, a y-axis, and a z-axis.

[0032] In this embodiment, the inertial forces detected by the inertial sensor 19 include six types in total: acceleration along the x-axis, acceleration along the y-axis, acceleration along the z-axis, angular velocity around the x-axis, angular velocity around the y-axis, and angular velocity around the z-axis. That is, the inertial sensor 19 is an IMU (Inertial Measurement Unit) that detects acceleration and angular velocity in three mutually orthogonal axial directions.

[0033] However, without being limited to this configuration, the inertial sensor 19 may be configured to detect, for example, only acceleration along the x-axis, acceleration along the y-axis, and acceleration along the z-axis, or may be configured to detect only angular velocity around the x-axis, angular velocity around the y-axis, and angular velocity around the z-axis.

[0034] In addition to these, the inertial sensor 19 may be configured to detect angular acceleration around the x-axis, angular acceleration around the y-axis, and angular acceleration around the z-axis, or may be configured to detect only angular acceleration around the x-axis, angular acceleration around the y-axis, and angular acceleration around the z-axis.

[0035] The inertial sensor 19 is electrically connected to the control device 3 and transmits a signal indicating the detected inertial force to the control device 3 as needed. Hereinafter, the signals transmitted by the inertial sensor 19 are collectively referred to as a first signal S1. The first signal S1 includes a signal S1x indicating an acceleration in a direction along the x-axis, a signal S1y indicating an acceleration in a direction along the y-axis, a signal S1z indicating an acceleration in a direction along the z-axis, a signal S1u indicating an angular velocity around the x-axis, a signal S1v indicating an angular velocity around the y-axis, and a signal S1w indicating an angular velocity around the z-axis.

[0036] Using the first signal S1 output by the inertial sensor 19, the control device 3 performs vibration damping control, which will be described later.

[0037] An end effector 20 is detachably attached to the tip 10B of the robot arm 10. In the illustrated configuration, the end effector 20 is configured as a hand having a pair of claws that can approach and separate from each other and grip and release a workpiece or tool with each claw. The end effector 20 is not limited to the illustrated configuration, and may be configured to have an adsorption part and grip a workpiece or tool by adsorption of the adsorption part. The end effector 20 may be, for example, a polisher, a grinder, a cutting machine, a spray gun, a laser light irradiator, a screwdriver, a wrench, or other tool.

[0038] The robot 1 has such an end effector 20 attached to its tip 10B and drives the robot arm 10 to perform work such as manufacturing, processing, painting, assembling, dismantling, etc. (hereinafter, these are collectively referred to as "work") on an object, such as a part or product.

[0039] In such a robot 1, a base coordinate system (second coordinate system) is set on the base 11. The base coordinate system has an origin O2 (second origin) at an arbitrary point set on the base 11, and has three mutually orthogonal axes, that is, an X-axis, a Y-axis, and a Z-axis. It can be said that the origin O2 is located closer to the base end portion 10A of the robot arm 10 than the origin O1 of the sensor coordinate system. It can also be said that the sensor coordinate system is a coordinate system in which the origin O1 rotates in response to the movement of the robot arm 10, and the base coordinate system is a coordinate system in which the origin O2 does not rotate in response to the movement of the robot arm 10.

[0040] In addition, the origin O2 of the base coordinate system may be set at a position different from the base 11, such as the base end 10A of the robot arm 10, as long as it is located closer to the base end 10A of the robot arm 10 than the origin O1 of the sensor coordinate system.

[0041] Next, the control device 3 will be described. 1, in this embodiment, the control device 3 is installed at a position separate from the robot 1. However, the present invention is not limited to this configuration, and the control device 3 may be built into the base 11. The control device 3 also has a function of controlling the driving of the robot 1, and is electrically connected to each part of the robot 1 described above.

[0042] 2, the control device 3 includes a control unit 31, a storage unit 32, and a communication unit 33. These units are connected to each other so as to be able to communicate with each other via a bus, for example.

[0043] The control unit 31 is composed of, for example, at least one CPU (Central Processing Unit), and reads out and executes various programs such as operation programs stored in the storage unit 32. Signals generated by the control unit 31 are transmitted to each part of the robot 1 via the communication unit 33, and signals from each part of the robot 1 are received by the control unit 31 via the communication unit 33. This enables the robot arm 10 to perform a predetermined task under predetermined conditions.

[0044] The storage unit 32 stores various programs and the like executed by the control unit 31. Examples of the storage unit 32 include a configuration having a volatile memory such as a RAM (Random Access Memory), a non-volatile memory such as a ROM (Read Only Memory), a removable external storage device, and the like.

[0045] The communication unit 33 transmits and receives signals between the control device 3 and the robot 1 or an external device using an external interface such as a wired LAN (Local Area Network) or a wireless LAN. In this case, communication may be performed via a server (not shown), or via a network such as the Internet.

[0046] As shown in FIG. 3, the control unit 31 has a first filter unit 311, a coordinate system conversion unit 312, a second filter unit 313, a subtractor 314, a first filter unit 315, a coordinate system conversion unit 316, a second filter unit 317, an integrator 318, a calculation unit 319, and a drive control unit 320.

[0047] Each part of the control unit 31 will be described below, but the configuration for performing vibration suppression control when the robot arm 10 stops after being driven will be described below. That is, the signal output by the inertial sensor 19 will be described as being caused by a vibration component after the robot arm 10 stops.

[0048] The first filter unit 311 executes the first step and is composed of an HPF (High Pass Filter). The first filter unit 311 performs a process of removing frequency components equal to or lower than a first frequency F1 from the signals S1u, S1v, and S1w relating to the angular velocities output by the inertial sensor 19. That is, the first filter unit 311 performs a process of removing frequency components equal to or lower than a first frequency F1 contained in the waveforms of the angular velocities indicated by the signals S1u, S1v, and S1w. Note that "removal" in this specification refers to reducing the target frequency components by 90% or more.

[0049] The first frequency F1 is the upper limit of the frequency range to be removed, that is, the frequency range in which unwanted noise is included, and can be, for example, about 0.01 Hz or more and 1 Hz or less.

[0050] The signal from which frequency components equal to or less than the first frequency F1 have been removed by the first filter unit 311 will hereinafter be referred to as the second signal S2. The second signal S2 includes a signal S2u obtained by removing frequency components equal to or less than the first frequency F1 from the signal S1u, a signal S2v obtained by removing frequency components equal to or less than the first frequency F1 from the signal S1v, and a signal S2w obtained by removing frequency components equal to or less than the first frequency F1 from the signal S1w.

[0051] The coordinate system conversion unit 312 performs a second step of converting the second signal S2 in the sensor coordinate system into the base coordinate system to generate a third signal S3. The coordinate system conversion unit 312 generates the third signal S3 by performing a calculation based on the distance between the origin O1 of the sensor coordinate system and the origin O2 of the base coordinate system, and the rotation matrix. As a result, the waveforms of the angular velocities indicated by the signals S2u, S2v, and S2w are converted into waveforms of angular velocities as viewed from the origin O2. That is, the third signal S3 includes S3u obtained by converting the signal S2u into the base coordinate system, S3v obtained by converting the signal S2v into the base coordinate system, and S3w obtained by converting the signal S2w into the base coordinate system.

[0052] The second filter unit 313 executes the third step and is composed of an HPF. The second filter unit 313 receives the third signal S3, i.e., the signals S3u, S3v, and S3w, from the coordinate system conversion unit 312, and performs processing to remove frequency components equal to or less than the second frequency F2 from the received signals S3u, S3v, and S3w to generate a fourth signal S4. In other words, the second filter unit 313 performs processing to remove frequency components equal to or less than the second frequency F2 included in the waveform of the angular velocity represented by the signal S3u to generate a signal S4u, performs processing to remove frequency components equal to or less than the second frequency F2 included in the waveform of the angular velocity represented by the signal S3v to generate a signal S4v, and performs processing to remove frequency components equal to or less than the second frequency F2 included in the waveform of the angular velocity represented by the signal S3w to generate a signal S4w. In this way, the fourth signal S4 includes the signals S4u, S4v, and S4w.

[0053] The second frequency F2 is the upper limit of the frequency range to be removed, i.e., the frequency range including unnecessary noise generated when transformed into the base coordinate system, and can be, for example, 1 Hz to 10 Hz. The ratio F1 / F2 of the first frequency F1 to the second frequency F2 is not particularly limited, but is preferably 0.05 or less, more preferably 0.01 or less, and even more preferably 0.008 or less. The lower limit of F1 / F2 is not particularly limited, but can be about 0.0002.

[0054] In this manner, the signals S1u, S1v, and S1w relating to the angular velocity out of the first signal S1 output by the inertial sensor 19 are converted into the signals S4u, S4v, and S4w which are the fourth signal S4.

[0055] On the other hand, of the first signal S1 output by the inertial sensor 19, the acceleration-related signals S1x, S1y, and S1z are processed by a subtractor 314, a first filter unit 315, a coordinate system conversion unit 316, and a second filter unit 317 as follows.

[0056] The subtractor 314 receives signals S1x, S1y, and S1z relating to acceleration from the inertial sensor 19, and subtracts components Gx, Gy, and Gz caused by gravity from the received signals S1x, S1y, and S1z. The components Gx, Gy, and Gz are values ​​set in advance and stored in the storage unit 32.

[0057] The first filter unit 315 executes the first step and is configured by an HPF. The first filter unit 315 performs a process of removing frequency components equal to or lower than a first frequency F1 from the signals S1x, S1y, and S1z related to acceleration output by the subtractor 314. That is, the first filter unit 315 performs a process of removing frequency components equal to or lower than a first frequency F1 included in the waveforms of the respective accelerations represented by the signals S1x, S1y, and S1z.

[0058] The signal from which frequency components equal to or less than the first frequency F1 have been removed by the first filter unit 315 will hereinafter be referred to as the second signal S2. That is, the second signal S2 includes a signal S2x obtained by removing frequency components equal to or less than the first frequency F1 from the signal S1x, a signal S2y obtained by removing frequency components equal to or less than the first frequency F1 from the signal S1y, and a signal S2z obtained by removing frequency components equal to or less than the first frequency F1 from the signal S1z.

[0059] The coordinate system conversion unit 316 performs a second step of converting the second signal S2 in the sensor coordinate system into the base coordinate system to generate a third signal S3. The coordinate system conversion unit 316 generates the third signal S3 from the second signal S2 by, for example, performing the same calculation as the coordinate system conversion unit 312. As a result, the waveforms of the accelerations indicated by the signals S2x, S2y, and S2z are converted into the waveforms of the accelerations as viewed from the origin O2. That is, the third signal S3 includes S3x obtained by converting the signal S3x into the base coordinate system, S3y obtained by converting the signal S2y into the base coordinate system, and S3z obtained by converting the signal S2z into the base coordinate system.

[0060] The second filter unit 317 executes the third step and is configured with an HPF. The second filter unit 317 receives the third signal S3, i.e., the signals S3x, S3y, and S3z, from the coordinate system conversion unit 316, and performs processing to remove frequency components equal to or lower than the second frequency F2 from the received signals S3x, S3y, and S3z.

[0061] In other words, the second filter unit 317 performs processing to remove frequency components equal to or less than the second frequency F2 contained in the acceleration waveform represented by the signal S3x to generate signal S4x, performs processing to remove frequency components equal to or less than the second frequency F2 contained in the acceleration waveform represented by the signal S3y to generate signal S4y, and performs processing to remove frequency components equal to or less than the second frequency F2 contained in the acceleration waveform represented by the signal S3z to generate signal S4z.

[0062] The integrator 318 performs integration processing on each of the signals S4x, S4y, and S4z generated by the second filter unit 317, and converts them into a signal indicating the velocity of a predetermined portion of the robot arm 10, i.e., the portion where the inertial sensor 19 is installed.

[0063] The fourth signal S4 generated as described above, that is, the signals S4u, S4v, and S4w, and the signals S4x, S4y, and S4z obtained through the integrator 318 are input to the calculation unit 319.

[0064] The calculation unit 319 calculates the speed of a predetermined part, i.e., the part where the inertial sensor 19 is installed, based on the signals S4u, S4v, and S4w and the signals S4x, S4y, and S4z. Then, the calculation unit 319 calculates the rotation speed of each of the joints 171, 172, 173, 174, 175, and 176 by performing an inverse Jacobian matrix calculation from the speed of the part where the inertial sensor 19 is installed.

[0065] The drive control unit 320 generates a drive signal S with correction to cancel such vibration components (components caused by vibration) based on the rotation speeds of the joints 171, 172, 173, 174, 175, and 176 calculated by the calculation unit 319, and controls the operation of the robot arm 10 using this drive signal S. The drive signal S is a signal that determines the energization conditions for each of the motors M1, M2, M3, M4, M5, and M6.

[0066] For example, when the robot arm 10 stops after being driven, the first signal S1 (signals S1u, S1v, S1w, S1x, S1y, and S1z) received from the inertial sensor 19 is a component caused by vibration. The first filter units 311 and 315 perform processing on this first signal S1 to remove frequency components equal to or lower than the first frequency F1, thereby generating a second signal S2 (signals S2u, S2v, S2w, S2x, S2y, and S2z). Next, the coordinate system conversion units 312 and 316 convert the second signal S2 into the base coordinate system to generate a third signal S3 (signals S3u, S3v, S3w, S3x, S3y, and S3z). Next, the second filter units 313, 317 process the third signal S3 to remove frequency components equal to or lower than the second frequency F2, generating a fourth signal S4 (signals S4u, S4v, S4w, S4x, S4y, and S4z).Then, the drive control unit 320 generates a drive signal S for the robot arm 10 based on the fourth signal S4, and controls the operation of the robot arm 10 using this drive signal S.

[0067] Conventionally, a signal corresponding to the first signal S1 is subjected to a process of removing noise using a high-pass filter once, and then a drive signal for the robot arm is generated. In such a configuration, the positional fluctuation of the origin of the coordinate system of the first signal S1 is relatively large, making it difficult to generate an accurate drive signal. In contrast, the present invention can solve the above problem by performing the control described above. That is, in the present invention, noise caused by vibration is removed from the first signal S1 to generate a second signal S2, and then the signal is converted into a third signal S3 of a base coordinate system in which the positional fluctuation of the origin itself is relatively small. Next, noise caused by the conversion to the base coordinate system is removed to generate a fourth signal S4, and a drive signal S for the robot arm 10 is generated based on the fourth signal S4 to drive the robot arm 10. With such a configuration, it is possible to perform vibration suppression control with higher accuracy than conventionally, and as a result, it is possible to effectively improve the positional accuracy of the work of the robot 1. That is, the robot arm 10 can be driven more smoothly and appropriately.

[0068] As described above, the robot system 100 includes first filter units 311, 315 that perform processing to remove frequency components equal to or lower than a first frequency F1 from a first signal S1 that is output from an inertial sensor 19 installed at a predetermined position on the robot arm 10 having a base end 10A and a tip end 10B and indicates the inertial force of a predetermined portion in a sensor coordinate system that is a first coordinate system having an arbitrary point set on the inertial sensor 19 as a first origin O1 to generate a second signal S2, and a filter unit 315 that performs processing to remove frequency components equal to or lower than a first frequency F1 from a first signal S1 that is output from the inertial sensor 19 installed at a predetermined position on the robot arm 10 having a base end 10A and a tip end 10B and indicates the inertial force of a predetermined portion in a sensor coordinate system that is a first coordinate system having an arbitrary point set on the inertial sensor 19 as a first origin O1 to generate a second signal S2. coordinate system conversion units 312, 316 that convert the third signal S3 to a base coordinate system as a second coordinate system having an origin O2 that is a second origin located on the base end 10A side of the robot arm 10 and generate a third signal, second filter units 313, 317 that perform processing on the third signal S3 to remove frequency components equal to or lower than a second frequency F2 and generate a fourth signal S4, and a drive control unit 320 that generates a drive signal S for the robot arm 10 based on the fourth signal S4 and controls the operation of the robot arm 10 by the drive signal S. This makes it possible to perform highly accurate vibration suppression control and effectively improve the positional accuracy of the work of the robot 1.

[0069] In this embodiment, the configuration has been described in which the vibration suppression control is performed when the robot arm 10 stops after being driven, but the present invention is not limited to this, and for example, the vibration suppression control can also be performed when the robot arm 10 is being driven. In this case, since the fourth signal S4 contains a velocity component V1 caused by vibration of the robot arm 10 and a velocity component V2 caused by the robot arm 10 being driven according to a program, the velocity component V1 caused by vibration of the robot arm 10 can be obtained by subtracting the velocity component V2 caused by the robot arm 10 being driven according to a program from the fourth signal S4.

[0070] The velocity component V2 caused by the robot arm 10 being driven according to a program may be calculated from the program, or may be found from the output values ​​of the encoders E1, E2, E3, E4, E5 and E6, as described in the second embodiment.

[0071] Next, the control operation performed by the control device 3 will be described with reference to the flowchart shown in FIG.

[0072] First, in step S101, a predetermined process is performed on the first signal S1 acquired from the inertial sensor 19 to generate a second signal S2. That is, the first filter unit 311 performs a process to remove frequency components equal to or lower than a first frequency F1 contained in the waveforms of the angular velocities represented by the signals S1u, S1v, and S1w, and the first filter unit 315 performs a process to remove frequency components equal to or lower than the first frequency F1 contained in the waveforms of the accelerations represented by the signals S1x, S1y, and S1z. This makes it possible to generate the second signal S2 from which frequency components equal to or lower than the first frequency F1 have been removed. Such step S101 is the first step.

[0073] Next, in step S102, the second signal S2 is converted into a base coordinate system (second coordinate system) to generate a third signal S3. That is, the coordinate system conversion unit 312 converts the waveforms of the angular velocities indicated by the signals S2u, S2v, and S2w into waveforms of angular velocities seen from the origin O2 to generate signals S3u, S3v, and S3w, which are the third signal S3, and the coordinate system conversion unit 316 converts the waveforms of the accelerations indicated by the signals S2x, S2v, and S2w into waveforms of accelerations seen from the origin O2 to generate signals S3x, S3y, and S3z, which are the third signal S3. Such step S102 is the second step.

[0074] Next, in step S103, a predetermined process is performed on the third signal S3 to generate a fourth signal S4. That is, the second filter unit 313 performs a process to remove frequency components equal to or lower than a second frequency F2 included in the waveforms of the angular velocities of the signals S3u, S3v, and S3w to generate signals S4u, S4v, and S4w, and the second filter unit 317 performs a process to remove frequency components equal to or lower than a second frequency F2 included in the waveforms of the accelerations of the signals S3x, S3y, and S3z to generate signals S4x, S4y, and S4z.

[0075] In this step, the integrator 318 performs integration processing on each of the signals S4x, S4y, and S4z generated by the second filter unit 317, and converts them into a signal indicating the velocity of a specified part of the robot arm 10, i.e., the part where the inertial sensor 19 is installed. Such step S103 is the third step.

[0076] Next, in step S104, the drive signal S is generated based on the fourth signal S4. That is, the calculation unit 319 calculates the speed of a predetermined part, i.e., the part where the inertial sensor 19 is installed, based on the signals S4u, S4v, S4w, S4x, S4y, and S4z. Then, the calculation unit 319 calculates the rotation speed of each of the joints 171, 172, 173, 174, 175, and 176 from the speed of the part where the inertial sensor 19 is installed.

[0077] Next, the drive control unit 320 generates a drive signal S with correction so as to cancel the rotational speeds of the joints 171, 172, 173, 174, 175, and 176 calculated by the calculation unit 319, and controls the operation of the robot arm 10 using this drive signal S. This allows the joints 171, 172, 173, 174, 175, and 176 to perform operations so as to cancel out the vibrations of the robot arm 10. Such step S104 is the fourth step.

[0078] As described above, the control method of the robot of the present invention includes a first step of removing frequency components equal to or less than a first frequency F1 from a first signal S1 that indicates the inertial force of a predetermined portion in a sensor coordinate system that is a first coordinate system having an origin O1 that is an arbitrary point set on the inertial sensor 19 as a first origin, thereby generating a second signal S2, a second step of converting the second signal S2 into a base coordinate system that is a second coordinate system having an origin O2 that is a second origin located on the base end 10A side of the robot arm 10 from the origin O1, thereby generating a third signal, a third step of removing frequency components equal to or less than a second frequency F2 from the third signal S3, thereby generating a fourth signal S4, and a fourth step of generating a drive signal for the robot arm 10 based on the fourth signal S4 and controlling the operation of the robot arm 10 by the drive signal. This allows for highly accurate vibration suppression control, thereby effectively improving the positional accuracy of the work of the robot 1.

[0079] Also, the first frequency F1 is lower than the second frequency F2. That is, F1 < F2 is satisfied. Thereby, the noise generated when converting the second signal S2 into the third signal S3 in the base coordinate system can be effectively removed.

[0080] Note that depending on the position of the origin O2 which is the second origin, F2 = F1 may be satisfied, or F1 > F2 may be satisfied.

[0081] Also, F1 / F2 is 0.01 or less. Preferably, F1 / F2 is 0.0002 or more and 0.008 or less. Thereby, the noise generated when converting the second signal S2 into the third signal S3 in the base coordinate system can be more effectively removed. Note that F1 / F2 may be greater than 0.01.

[0082] Also, the first signal S1 indicates the acceleration of a predetermined part of the robot arm 10. In the third step, after performing a process of removing frequency components below the second frequency F2 on the third signal S3 (signals S3x, S3y, and S3z), an integration process is performed to generate a fourth signal S4 (signals S4x, S4y, and S4z) indicating the velocity of a predetermined part of the robot arm 10. Thereby, high-precision vibration control can be performed using the first signal S1 including a signal indicating acceleration, and the working position accuracy of the robot 1 can be effectively improved.

[0083] <Second Embodiment> FIG. 5 is a schematic configuration diagram for explaining each process performed by a control unit included in a second embodiment of the robot system of the present invention. FIG. 6 is a flowchart for explaining an example of a control operation performed by the control unit shown in FIG. 5.

[0084] Hereinafter, a control method of the robot and a second embodiment of the robot system of the present invention will be described with reference to FIGS. 5 and 6. Hereinafter, the description will focus on the differences from the first embodiment, and the description of the same matters will be omitted.

[0085] As shown in FIG. 5, the control unit 31 includes a calculation unit 321, a third filter unit 322, a coordinate system conversion unit 323, a fourth filter unit 324, and a subtractor 325, in addition to the units described in the first embodiment.

[0086] The calculation unit 321 receives the output values ​​of the encoders E1, E2, E3, E4, E5 and E6, i.e., the signals of the rotational speeds of the joints 171, 172, 173, 174, 175 and 176, and uses the Jacobian matrix to calculate the speed of a specific part of the robot arm 10, in this embodiment, the part where the inertial sensor 19 is installed.

[0087] The signal of the rotation speed of the joint 171 is the signal S51A, the signal of the rotation speed of the joint 172 is the signal S52A, the signal of the rotation speed of the joint 173 is the signal S53A, the signal of the rotation speed of the joint 174 is the signal S54A, the signal of the rotation speed of the joint 175 is the signal S55A, and the signal of the rotation speed of the joint 176 is the signal S56A. These signals S51A, S52A, S53A, S54A, S55A, and S56A are the fifth signal S5. The following process is performed on the fifth signal S5.

[0088] The speed of the part of the robot arm 10 where the inertial sensor 19 is installed, calculated by the calculation unit 321, is the speed around the x-axis, the speed around the y-axis, the speed around the z-axis, the speed in the x-axis direction, the speed in the y-axis direction, and the speed in the z-axis direction in the sensor coordinate system. The signal of the speed around the x-axis is signal S51B, the signal of the speed around the y-axis is signal S52B, the signal of the speed around the z-axis is signal S53B, the signal of the speed in the x-axis direction is signal S54B, the signal of the speed in the y-axis direction is signal S55B, and the signal of the speed in the z-axis direction is signal S56B.

[0089] The third filter unit 322 is composed of an HPF (High Pass Filter) and performs processing to remove frequency components equal to or lower than a third frequency F3 from the signals S51B, S52B, S53B, S54B, S55B, and S56B. That is, the third filter unit 322 performs processing to remove frequency components equal to or lower than the third frequency F3 contained in the waveforms of the respective speeds represented by the signals S51B, S52B, S53B, S54B, S55B, and S56B. As a result, the signals S51C, S52C, S53C, S54C, S55C, and S56C are generated.

[0090] The third frequency F3 is not particularly limited, but it is preferable that the third frequency F3 has a value similar to that of the first frequency F1. That is, F3 can be set to 0.01 Hz or more and 1 Hz or less. This allows the subtractor 325 to perform calculations using values ​​from which the same frequency components have been removed. This allows vibration suppression control with higher accuracy.

[0091] The third frequency F3 may be different from the first frequency F1. <F1でもよい。

[0092] The coordinate system conversion unit 323 converts the signals S51C, S52C, S53C, S54C, S55C, and S56C in the sensor coordinate system (first coordinate system) into the base coordinate system (second coordinate system) to generate the signals S51D, S52D, S53D, S54D, S55D, and S56D in the base coordinate system. The calculation method is the same as that of the coordinate system conversion units 312 and 316 in the first embodiment.

[0093] The fourth filter unit 324 is configured with an HPF and performs processing to remove frequency components equal to or lower than a fourth frequency F4 from the signals S51D, S52D, S53D, S54D, S55D, and S56D, thereby generating the signals S51E, S52E, S53E, S54E, S55E, and S56E.

[0094] The fourth frequency F4 is not particularly limited, but is preferably set to a value similar to the second frequency F2. That is, F4 can be set to 1 Hz or more and 10 Hz or less. This allows the subtractor 325 to perform calculations using values ​​from which the same frequency components have been removed. This allows vibration suppression control to be performed with higher accuracy.

[0095] The fourth frequency F4 may be different from the second frequency F2. <F2でもよい。

[0096] The ratio F3 / F4 of the third frequency F3 to the fourth frequency F4 is not particularly limited, but is preferably 0.0002 to 0.05, more preferably 0.0002 to 0.01, and even more preferably 0.0002 to 0.008.

[0097] The subtractor 325 receives signals S4u, S4v, and S4w from the second filter unit 313, receives signals S4x, S4y, and S4z from the integrator 318, and receives signals S51E, S52E, S53E, S54E, S55E, and S56E from the fourth filter unit 324.

[0098] The subtractor 325 performs calculations of (speed indicated by signal S4u-speed indicated by signal S51E), (speed indicated by signal S4v-speed indicated by signal S52E), (speed indicated by signal S4w-speed indicated by signal S53E), (speed indicated by signal S4x-speed indicated by signal S54E), (speed indicated by signal S4y-speed indicated by signal S55E), and (speed indicated by signal S4z-speed indicated by signal S56E).

[0099] The signals S4u, S4v, S4w, S4x, S4y and S4z contain a velocity component V1 caused by vibration of the robot arm 10 and a velocity component V2 caused by the robot arm 10 being driven according to a program. The signals S51E, S52E, S53E, S54E, S55E and S56E can be regarded as the velocity component V2 caused by the robot arm 10 being driven according to a program. Therefore, the subtractor 325 performs the above-mentioned calculation to determine the velocity component V1 caused by vibration of the robot arm 10.

[0100] The signal resulting from the calculation output from the subtractor 325 is input to the calculation unit 319, where it is subjected to the same processing as in the first embodiment and used for vibration suppression control.

[0101] Thus, according to this embodiment, it is possible to perform vibration suppression control with high accuracy when the robot arm 10 is in operation. In particular, by sequentially performing the processes described in the first embodiment on the fifth signal S5 output from the encoders E1, E2, E3, E4, E5, and E6, that is, removing frequency components equal to or lower than the third frequency F3, converting to the base coordinate system, and removing frequency components equal to or lower than the fourth frequency F4, it is possible to more accurately calculate the velocity component V2 caused by the robot arm 10 driving according to the program.

[0102] Next, a control method of the robot according to this embodiment will be described. In this embodiment, as shown in Fig. 6, in addition to steps S101, S102, S103, and S104 described in the first embodiment, step S105 is further executed.

[0103] In step S105, the calculation unit 321 performs calculations on the fifth signal S5 received from the encoders E1, E2, E3, E4, E5, and E6 using a Jacobian matrix to generate signals S51B, S52B, S53B, S54B, S55B, and S56B.

[0104] Next, the third filter unit 322 processes signals S51B, S52B, S53B, S54B, S55B, and S56B to remove frequency components below a third frequency F3, thereby generating signals S51C, S52C, S53C, S54C, S55C, and S56C.

[0105] Next, coordinate system conversion unit 323 converts signals S51C, S52C, S53C, S54C, S55C, and S56C into signals in the base coordinate system to generate signals S51D, S52D, S53D, S54D, S55D, and S56D.

[0106] Next, the fourth filter unit 324 performs processing on signals S51D, S52D, S53D, S54D, S55D, and S56D to remove frequency components below a fourth frequency F4, thereby generating signals S51E, S52E, S53E, S54E, S55E, and S56E.

[0107] By executing step S105 in this manner, noise removal processing can be performed on the output values ​​of encoders E1, E2, E3, E4, E5 and E6 installed at joints 171, 172, 173, 174, 175 and 176 of the robot arm 10 to obtain signals S51E, S52E, S53E, S54E, S55E and S56E.

[0108] In step S104, the subtractor 325 performs calculations of (speed indicated by signal S4u-speed indicated by signal S51E), (speed indicated by signal S4v-speed indicated by signal S52E), (speed indicated by signal S4w-speed indicated by signal S53E), (speed indicated by signal S4x-speed indicated by signal S54E), (speed indicated by signal S4y-speed indicated by signal S55E), and (speed indicated by signal S4z-speed indicated by signal S56E). Next, these calculation results are input to the calculation unit 319, which performs processing similar to that of the first embodiment to generate a drive signal S for the robot arm 10, and controls the operation of the robot arm 10 based on the drive signal S. This allows highly accurate vibration suppression control to be performed even when the robot arm 10 is driven, and effectively improves the positional accuracy of the work of the robot 1.

[0109] Thus, in this embodiment, in step S104, which is the fourth step, a drive signal S for the robot arm 10 is generated based on the fourth signals (signals S4u, S4v, S4w, S4x, S4y, and S4z) and the fifth signals (signals S51E, S52E, S53E, S54E, S55E, and S56E) obtained by performing noise removal processing on the output values ​​of the encoders E1, E2, E3, E4, E5, and E6 installed in the joints 171, 172, 173, 174, 175, and 176 of the robot arm 10, and the operation of the robot arm 10 is controlled by the drive signal S. This allows for highly accurate vibration suppression control even when the robot arm 10 is driven, and effectively improves the positional accuracy of the work of the robot 1.

[0110] The noise removal process includes a process of removing frequency components equal to or lower than a third frequency F3 from the output values ​​of the encoders E1, E2, E3, E4, E5, and E6, a process of converting the output values ​​into a base coordinate system as a second coordinate system, and a process of removing frequency components equal to or lower than a fourth frequency F4. This allows for more accurate vibration suppression control.

[0111] Although the robot control method and the robot system of the present invention have been described in the illustrated embodiments, the present invention is not limited to these. Each part of the robot system can be replaced with any structure that can perform the same function. Any structure may be added to the robot system. The configuration of the first embodiment may be arbitrarily combined with the configuration of the second embodiment.

[0112] Furthermore, the robot control method of the present invention may be obtained by adding any process for any purpose to each of the above-described embodiments. [Explanation of symbols]

[0113] 1...robot, 3...control device, 10...robot arm, 10A...base end, 10B...tip end, 11...base, 12...first arm, 13...second arm, 14...third arm, 15...fourth arm, 16...fifth arm, 17...sixth arm, 19...inertial sensor, 20...end effector, 31...control unit, 32...storage unit, 33...communication unit, 100...robot system, 171...joint, 172...joint, 173...joint, 174...joint, 175...joint, 176...joint, 311...first filter unit, 312...coordinate system conversion unit, 313...second filter unit, 314...subtractor, 315 ...first filter unit, 316...coordinate system conversion unit, 317...second filter unit, 318...integrator, 319...calculation unit, 320...drive control unit, 321...calculation unit, 322...third filter unit, 323...coordinate system conversion unit, 324...fourth filter unit, 325...subtractor, D1...motor driver, D2...motor driver, D3...motor driver, D4...motor driver, D5...motor driver, D6...motor driver, E1...encoder, E2...encoder, E3...encoder, E4...encoder, E5...encoder, E6...encoder -, M1...motor, M2...motor, M3...motor, M4...motor, M5...motor, M6...motor, S...drive signal, S1...first signal, S1u...signal, S1v...signal, S1w...signal, S1x...signal, S1y...signal, S1z...signal, S2...second signal, S2u...signal, S2v...signal, S2w...signal, S2x...signal, S2y...signal, S2z...signal, S3...third signal, S3u...signal, S3v...signal, S3w...signal, S3x...signal, S3y...signal, S3z...signal, S4...fourth signal, S4u...signal, S4v...signal, S4w...signal, S4x...signal, S4y...signal No., S4z…signal, S5…5th signal, S51A…signal, S51B…signal, S51C…signal, S51D…signal, S51E…signal, S52A…signal, S52B…signal, S52C…signal, S52D…signal, S52E…signal, S53A…signal, S53B…signal, S53C…signal, S53 D…signal, S53E…signal, S54A…signal, S54B…signal, S54C…signal, S54D…signal, S54E…signal, S55A…signal, S55B…signal, S55C…signal, S55D…signal, S55E…signal, S56A…signal, S56B…signal, S56C…signal, S56D…signal,S56E...signal, TCP...tool center point,

Claims

1. a first step of performing a process of removing frequency components equal to or lower than a first frequency F1 from a first signal that is output from an inertial sensor installed at a predetermined portion of a robot arm having a base end and a tip end and indicates an inertial force of the predetermined portion in a first coordinate system having an arbitrary point set in the inertial sensor as a first origin, thereby generating a second signal; a second step of converting the second signal into a signal in a second coordinate system having a second origin located closer to the base end of the robot arm than the first origin to generate a third signal; a third step of performing a process for removing frequency components equal to or lower than a second frequency F2 from the third signal to generate a fourth signal; a fourth step of generating a drive signal for the robot arm based on the fourth signal and controlling operation of the robot arm using the drive signal.

2. The method for controlling a robot according to claim 1 , wherein the first frequency F1 is lower than the second frequency F2.

3. 3. The method for controlling a robot according to claim 2, wherein F1 / F2 is 0.01 or less.

4. the first signal indicates an acceleration of the predetermined portion of the robot arm, 2. The robot control method according to claim 1, wherein in the third step, the third signal is subjected to a process of removing frequency components equal to or lower than the second frequency F2, and then an integration process is performed to generate the fourth signal indicating the speed of the specified part of the robot arm.

5. 2. The robot control method according to claim 1, wherein in the fourth step, the drive signal for the robot arm is generated based on the fourth signal and a fifth signal obtained by performing a noise removal process on an output value of an encoder installed at a joint of the robot arm, and the operation of the robot arm is controlled by the drive signal.

6. 6. The robot control method according to claim 5, wherein the noise removal process includes a process of removing frequency components equal to or lower than a third frequency F3 from the output value of the encoder, a process of converting to the second coordinate system, and a process of removing frequency components equal to or lower than a fourth frequency F4.

7. a first filter unit that performs processing to remove frequency components equal to or lower than a first frequency F1 from a first signal that is output from an inertial sensor installed at a predetermined portion of a robot arm having a base end and a tip end, the first signal indicating an inertial force of the predetermined portion in a first coordinate system having an arbitrary point set in the inertial sensor as a first origin, to generate a second signal; a coordinate system conversion unit that converts the second signal into a signal in a second coordinate system having a second origin located closer to the base end of the robot arm than the first origin to generate a third signal; a second filter unit that performs processing on the third signal to remove frequency components equal to or lower than a second frequency F2 to generate a fourth signal; a drive control unit that generates a drive signal for the robot arm based on the fourth signal and controls operation of the robot arm using the drive signal.

Citation Information

Patent Citations

  • Vibration control method of robot and control device of robot

    JP2011136395A