Robot system
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- SEIKO EPSON CORP
- Filing Date
- 2023-08-22
- Publication Date
- 2026-08-03
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to 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, in order to smooth the drive of the robot and perform the above-mentioned tasks more efficiently, control of vibrations that accompany the drive of the robot, i.e., vibration suppression control, is performed.
[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. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] JP 2011-136395 A Summary of the Invention [Problem to be solved by the invention]
[0005] However, in the case of a robot whose base moves relative to the robot installation surface, if the vibration suppression control described in Patent Document 1 is applied as is, appropriate vibration suppression control may not be performed depending on the moving state (movement pattern) of the base. In other words, disadvantages due to insufficient precision of the vibration suppression control occur, such as a problem of reduced positional precision in the above-mentioned work of the robot. [Means for solving the problem]
[0006] The robot system of the present invention includes a base and A robot arm supported by the base; an inertial sensor that is installed at a predetermined portion of the robot arm, and detects the acceleration of the predetermined portion to output an acceleration signal, and detects the angular velocity of the predetermined portion to output an angular velocity signal; a vibration suppression control unit that controls vibrations generated in the robot arm based on the acceleration signal or the angular velocity signal output by the inertial sensor, The vibration suppression control section selects a combination of the acceleration signals or the angular velocity signals to be used for controlling the vibrations, depending on the moving state of the base. [Brief description of the drawings]
[0007] [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 of a robot system according to a second embodiment of the present invention. [Figure 6] FIG. 6 is a schematic configuration diagram for explaining each process performed by a control unit of a robot system according to a third embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0008] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS A robot system according to the present invention will now be described in detail with reference to preferred embodiments shown in the accompanying drawings.
[0009] 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.
[0010] 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".
[0011] As shown in FIG. 1, a robot system 100 includes a robot 1 and a control device 3 that controls the robot 1.
[0012] 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.
[0013] 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.
[0014] The base 11 is a support that drivably supports the robot arm 10 at its base end side, and is installed on a robot installation surface 200. The robot installation surface 200 is, for example, a floor surface in a factory. However, the robot installation surface 200 is not limited to this configuration, and may be a ceiling surface, a wall surface, etc.
[0015] The base 11 has a plurality of wheels 111 as a moving mechanism, and is configured to be movable by rotation of the wheels 111. At least one of the wheels 111 is connected to a motor M11. As shown in FIG. 2, the motor M11 is electrically connected to the control device 3 via a motor driver (not shown). The control device 3 controls the conditions for supplying electricity to the motor M11, thereby controlling the driving of the motor M11.
[0016] For example, in the case where one wheel 111 is provided at each of the four corners of the base 11 that is rectangular in plan view from the Z-axis direction, and a motor M11 is connected to each of these four wheels 111, when each motor M11 is operated to drive each wheel 111 in the same direction at the same speed, the base 11 performs translational motion at a predetermined speed. Also, when a pair of diagonally opposite wheels 111 among the four wheels 111 are rotated in opposite directions, the base 11 performs rotational motion at a predetermined angular speed around the Z-axis, for example. Also, the base 11 may have a dedicated motor for performing rotational motion.
[0017] The moving mechanism is not limited to the above configuration, and may be a belt-driven one, a configuration for moving on rails, a walking leg unit for walking on two or four legs, or the like.
[0018] Although not shown, a separate transport device, towing device, etc. are attached to the base 11, and these can move (translational motion) or rotate (rotational motion) the base 11. In this embodiment, a configuration in which the base 11 has a movement mechanism is exemplified, but this configuration is not limiting. For example, a robot equipped with a base without a movement mechanism may be installed on an AGV (Automatic Guided Vehicle) or conveyor, and the base may be moved (translational motion) or rotated (rotational motion) by these transport devices and towing devices.
[0019] Furthermore, the motor M11 as a drive source may be omitted from the base 11. In this case, the operator can apply a force to the base 11 to move (translational motion) or rotate (rotational motion).
[0020] The base 11 can perform rotational and translational movements relative to the robot installation surface 200 .
[0021] Rotational motion refers to motion in which the base 11 rotates clockwise or counterclockwise around an axis normal to the robot mounting surface 200 that passes through the base 11, for example, a vertical axis (Z axis) that passes through the origin O2 (second origin) shown in Figure 1.
[0022] Translational motion refers to motion that moves along the robot installation surface 200. In other words, it refers to the base 11 moving in any direction along a horizontal plane, i.e., the XY plane, by rotation of the wheels 111. Note that in the case of eccentric rotation that rotates around a vertical axis displaced from the origin O2 when viewed from the normal direction (Z-axis direction) of the robot installation surface 200, if the central axis of the eccentric rotation overlaps with the base 11, it is considered to be rotational motion.
[0023] 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 shown in Fig. 1, and may be, for example, a wireless connection. Also, they may be connected via a network such as the Internet.
[0024] 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.
[0025] 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 on which the base 11 is placed, and the entire robot arm 10 can rotate in either the forward or reverse direction around the first rotation axis.
[0026] 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.
[0027] 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.
[0028] 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.
[0029] 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.
[0030] 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.
[0031] 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.
[0032] 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.
[0033] 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 (pivots) 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.
[0034] 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."
[0035] 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.
[0036] 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.
[0037] As shown in FIG. 1, the inertial sensor 19 is installed in a predetermined portion 300 of the robot arm 10 and detects the inertial force of the predetermined portion. The inertial sensor 19 detects the acceleration of the predetermined portion 300 and outputs an acceleration signal, and detects the angular velocity of the predetermined portion 300 and outputs an angular velocity signal. The predetermined portion 300 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 in 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. The predetermined portion 300 where the inertial sensor 19 is installed is not limited to the sixth arm 17, and may be another arm.
[0038] 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.
[0039] 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 in three mutually orthogonal axial directions and angular velocity around the three axes.
[0040] 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.
[0041] 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.
[0042] 2 and 3, 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 the inertial signal S1. The inertial 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.
[0043] The signals S1u, S1v and S1w are angular velocity signals indicating the angular velocity of the predetermined part 300 of the robot arm 10, and the signals S1x, S1y and S1z are acceleration signals indicating the acceleration of the predetermined part 300 of the robot arm 10.
[0044] Using the inertia signal S1 output by the inertia sensor 19, the control device 3 performs vibration suppression control, which will be described later.
[0045] 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.
[0046] 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.
[0047] 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.
[0048] 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.
[0049] 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.
[0050] 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.
[0051] 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.
[0052] 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.
[0053] The communication unit 33 transmits and receives signals to and from the control device 3 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.
[0054] As shown in FIG. 3, the control unit 31 has a coordinate system conversion unit 311, a filter unit 312, a subtractor 313, a coordinate system conversion unit 314, a filter unit 315, an integrator 316, a vibration suppression control unit 310, a differentiator 321, a Jacobian matrix calculation unit 322, a filter unit 323, a subtractor 324, and a subtractor 325.
[0055] The coordinate system conversion unit 311 acquires the inertial signal S1 (signals S1u, S1v, and S1w) in the sensor coordinate system from the inertial sensor 19, and converts the inertial signal S1 into the base coordinate system to generate the inertial signal S2. The coordinate system conversion unit 311 generates the inertial signal S2 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 S1u, S1v, and S1w are converted into the waveforms of the angular velocities as viewed from the origin O2. That is, the inertial signal S2 includes S2u obtained by converting the signal S1u into the base coordinate system, S2v obtained by converting the signal S1v into the base coordinate system, and S2w obtained by converting the signal S1w into the base coordinate system. Here, the method of generating the inertial signal S2 is not limited to the above method. For example, the coordinate system conversion unit 311 may generate the inertia signal S2 by performing a calculation based on a coordinate conversion matrix calculated from the positions and angles of the rotation shafts of each motor.
[0056] Moreover, the signals S1u, S1v, and S1w are angular velocity signals indicating the angular velocity of the predetermined part 300 of the robot arm 10.
[0057] The filter unit 312 is composed of an HPF (High Pass Filter). The filter unit 312 performs processing to remove frequency components equal to or less than a cutoff value F1 from the signals S2u, S2v, and S2w relating to the angular velocities output by the coordinate system conversion unit 311. That is, the filter unit 312 performs processing to remove frequency components equal to or less than a cutoff value F1 contained in the waveforms of the angular velocities indicated by the signals S2u, S2v, and S2w. Note that "removal" in this specification refers to reducing the target frequency components by 90% or more.
[0058] The cutoff value F1 is the upper limit of the frequency range to be removed, that is, the frequency range in which unnecessary noise is included, and is not particularly limited, but can be, for example, about 0.01 Hz to 10 Hz.
[0059] The signal from which frequency components equal to or less than the cutoff value F1 have been removed by the filter unit 312 is hereinafter referred to as the second inertial signal S3. The second inertial signal S3 includes a signal S3u obtained by removing frequency components equal to or less than the cutoff value F1 from the signal S2u, a signal S3v obtained by removing frequency components equal to or less than the cutoff value F1 from the signal S2v, and a signal S3w obtained by removing frequency components equal to or less than the cutoff value F1 from the signal S2w.
[0060] In this manner, the signals S1u, S1v, and S1w relating to the angular velocity out of the inertial signal S1 output by the inertial sensor 19 are converted into the signals S3u, S3v, and S3w which are the second inertial signal S3.
[0061] On the other hand, of the inertial signal S1 output by the inertial sensor 19, the signals S1x, S1y, and S1z relating to acceleration are processed by a subtractor 313, a coordinate system conversion unit 314, a filter unit 315, and an integrator 316 as follows.
[0062] The coordinate system conversion unit 314 receives signals S1x, S1y, and S1z related to acceleration from the inertial sensor 19, and converts the inertial signal S1 in the received sensor coordinate system into the base coordinate system to generate an inertial signal S2. The coordinate system conversion unit 314 generates the inertial signal S2 from the inertial signal S1 by, for example, performing the same calculation as the coordinate system conversion unit 311. As a result, the waveforms of the accelerations indicated by the signals S1x, S1y, and S1z are converted into the waveforms of the accelerations as viewed from the origin O2. That is, the inertial signal S2 includes S2x obtained by converting the signal S1x into the base coordinate system, S2y obtained by converting the signal S1y into the base coordinate system, and S2z obtained by converting the signal S1z into the base coordinate system.
[0063] Moreover, the signals S1x, S1y, and S1z are acceleration signals that indicate the acceleration of the predetermined portion 300 of the robot arm 10.
[0064] The subtractor 313 receives the signals S2x, S2y, and S2z output from the coordinate system conversion unit 314, and subtracts the components Gx, Gy, and Gz caused by gravity from the received signals S2x, S2y, and S2z. The components Gx, Gy, and Gz are preset values and stored in the storage unit 32.
[0065] The filter unit 315 is configured by an HPF. The filter unit 315 performs processing to remove frequency components equal to or less than a cutoff value F2 from the signals S2x, S2y, and S2z, which are the inertia signals S2 output by the coordinate system conversion unit 314. That is, the filter unit 315 performs processing to remove frequency components equal to or less than the cutoff value F2 included in the waveforms of the accelerations indicated by the signals S2x, S2y, and S2z.
[0066] The cutoff value F2 is the upper limit of the frequency range to be removed, that is, the frequency range in which unwanted noise is included, and is not particularly limited, but can be, for example, about 1 Hz to 100 Hz.
[0067] The second inertia signal S3 from which frequency components below the cutoff value F2 have been removed by the filter section 315 includes a signal S3x which is a signal from which frequency components below the cutoff value F2 have been removed from the signal S2x, a signal S3y which is a signal from which frequency components below the cutoff value F2 have been removed from the signal S2y, and a signal S3z which is a signal from which frequency components below the cutoff value F2 have been removed from the signal S2z.
[0068] In other words, filter unit 315 performs processing to remove frequency components equal to or less than cutoff value F2 contained in the acceleration waveform represented by signal S2x to generate signal S3x, performs processing to remove frequency components equal to or less than cutoff value F2 contained in the acceleration waveform represented by signal S2y to generate signal S3y, and performs processing to remove frequency components equal to or less than cutoff value F2 contained in the acceleration waveform represented by signal S2z to generate signal S3z.
[0069] The integrator 316 performs integration processing on each of the signals S3x, S3y, and S3z generated by the filter unit 315, and converts them into a signal indicating the velocity of the predetermined part 300 of the robot arm 10.
[0070] The signals S3u, S3v, and S3w generated as described above are input to subtractors 324 and 325, respectively, and the signals S3x, S3y, and S3z are input to the subtractor 324.
[0071] The signals S3u, S3v, S3w, S3x, S3y, and S3z are used by a calculation unit 318, which will be described later, to calculate a velocity component V1 of the predetermined part 300.
[0072] The signals S1u, S1v, S1w, S1x, S1y and S1z 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. Therefore, 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 second inertia signal S3 (signals S3u, S3v, S3w, S3x, S3y and S3z).
[0073] On the other hand, the velocity component V2 can be obtained from the output values of the encoders E1, E2, E3, E4, E5 and E6. This will be described below.
[0074] The differentiator 321 performs differentiation processing on the output values of the encoders E1, E2, E3, E4, E5, and E6 received from the encoders E1, E2, E3, E4, E5, and E6, i.e., the signals of the rotational positions of the joints 171, 172, 173, 174, 175, and 176, and converts them into signals indicating the rotational speeds of the joints 171, 172, 173, 174, 175, and 176.
[0075] The signal of the rotational position of joint 171 is signal S51A, the signal of the rotational position of joint 172 is signal S52A, the signal of the rotational position of joint 173 is signal S53A, the signal of the rotational position of joint 174 is signal S54A, the signal of the rotational position of joint 175 is signal S55A, and the signal of the rotational position of joint 176 is signal S56A. These signals S51A, S52A, S53A, S54A, S55A, and S56A are signal S5. The following processing is performed on signal S5.
[0076] Of the signals output by differentiator 321, the signal of the rotational speed of joint 171 is signal S51B, the signal of the rotational speed of joint 172 is signal S52B, the signal of the rotational speed of joint 173 is signal S53B, the signal of the rotational speed of joint 174 is signal S54B, the signal of the rotational speed of joint 175 is signal S55B, and the signal of the rotational speed of joint 176 is signal S56B.
[0077] Based on signals S51B, S52B, S53B, S54B, S55B and S56B, the Jacobian matrix calculation unit 322 generates a signal S51C which is the velocity around the x-axis, a signal S52C which is the velocity around the y-axis, a signal S53C which is the velocity around the z-axis, a signal S54C which is the velocity in the x-axis direction, a signal S55C which is the velocity in the y-axis direction and a signal S56C which is the velocity in the z-axis direction of the location where the inertial sensor 19 of the robot arm 10 is installed in the base coordinate system (second coordinate system).
[0078] Filter unit 323 is configured with an HPF and performs processing to remove frequency components equal to or lower than cutoff value F3 from signals S51C, S52C, S53C, S54C, S55C, and S56C, thereby generating signals S51D, S52D, S53D, S54D, S55D, and S56D.
[0079] The cutoff value F3 is not particularly limited, but is preferably set to a value similar to the cutoff value F2. That is, F3 can be set to, for example, 1 Hz or more and 100 Hz or less. This allows the subtractors 324 and 325 to perform calculations using values from which the same frequency components have been removed. This allows for more accurate vibration suppression control (hereinafter also referred to as "vibration control"). The cutoff value F3 may be different from the cutoff value F2.
[0080] As described above, the subtractor 324 receives the signals S3u, S3v, S3w, S3x, S3y, and S3z as input, and further receives the signals S51D, S52D, S53D, S54D, S55D, and S56D from the filter unit 323.
[0081] The subtractor 324 performs calculations of (speed indicated by signal S3u-speed indicated by signal S51D), (speed indicated by signal S3v-speed indicated by signal S52D), (speed indicated by signal S3w-speed indicated by signal S53D), (speed indicated by signal S3x-speed indicated by signal S54D), (speed indicated by signal S3y-speed indicated by signal S55D), and (speed indicated by signal S3z-speed indicated by signal S56D).
[0082] As described above, the signals S3u, S3v, S3w, S3x, S3y, and S3z include the velocity component V1 caused by the vibration of the robot arm 10 and the velocity component V2 caused by the robot arm 10 being driven according to the program. The signals S51D, S52D, S53D, S54D, S55D, and S56D can be regarded as the velocity component V2 caused by the robot arm 10 being driven according to the program. Therefore, the subtractor 324 performs the above-mentioned calculation to obtain the velocity component V1 caused by the vibration of the robot arm 10. The signal of the velocity component V1 calculated using the signals S3u, S3v, S3w, S3x, S3y, and S3z is called the velocity signal SV1.
[0083] As described above, the subtractor 325 receives the signals S3u, S3v, and S3w as input, and further receives the signals S51D, S52D, and S53D from the filter unit 323 as input.
[0084] The subtractor 325 performs the calculations of (speed indicated by signal S3u-speed indicated by signal S51D), (speed indicated by signal S3v-speed indicated by signal S52D), and (speed indicated by signal S3w-speed indicated by signal S53D).
[0085] As described above, the signals S3u, S3v, and S3w contain the velocity component V1 caused by the vibration of the robot arm 10 and the velocity component V2 caused by the robot arm 10 being driven according to the program. The signals S51D, S52D, and S53D can be regarded as the velocity component V2 caused by the robot arm 10 being driven according to the program. Therefore, the subtractor 325 performs the above-mentioned calculation to obtain the velocity component V1 caused by the vibration of the robot arm 10. The signal of the velocity component V1 calculated using the signals S3u, S3v, and S3w in this way, without using the signals S3x, S3y, and S3z, is called the velocity signal SV2.
[0086] Next, the vibration suppression control section 310 will be described. 3, the vibration suppression control unit 310 performs vibration suppression control on the robot arm 10 based on the inertia signals S1 and S2 output by the inertia sensor 19, i.e., based on the acceleration signal or the angular velocity signal. The vibration suppression control unit 310 has a determination unit 317, a calculation unit 318, and a drive control unit 319.
[0087] The determination unit 317 determines the movement state of the base 11. In this embodiment, the determination unit 317 determines the movement state (movement pattern) of the base 11 based on the speed signal SV1. Here, the movement state may be whether or not the base 11 is performing a rotational motion, or whether or not the base 11 is performing a translational motion, and may also include, as necessary, the rotation direction and rotation speed when the base 11 is performing a rotational motion, the movement direction and movement speed when the base 11 is performing a translational motion, or a combination of two or more of these.
[0088] The determination unit 317 determines that the base 11 is performing a rotational motion when a velocity component (velocity) in a direction in which the base 11 performs a rotational motion, among the velocity information included in the velocity signal SV1, exceeds a first threshold value. The first threshold value is a value at which the base 11 can be regarded as performing a rotational motion while the robot arm 10 is being driven, and is stored in the storage unit 32 in advance.
[0089] Furthermore, when a velocity component (velocity) in the direction in which the base 11 performs translational motion, among the velocity information included in the velocity signal SV1, exceeds a second threshold value, the determination unit 317 determines that the base 11 is performing translational motion. The second threshold value is a value at which the base 11 can be regarded as performing translational motion while the robot arm 10 is being driven, and is stored in the storage unit 32 in advance.
[0090] The determination result of the determination unit 317, that is, information that the base 11 is stopped (case 1), that the base 11 is performing translational motion and is not performing rotational motion (case 2), or that the base 11 is performing rotational motion (case 3), is transmitted to the calculation unit 318. Note that such information may be temporarily stored in the storage unit 32 and read out by the calculation unit 318.
[0091] The calculation unit 318 performs the following calculations according to Case 1, Case 2, and Case 3.
[0092] (Case 1) The calculation unit 318 calculates the velocity of the predetermined part 300 based on the above-mentioned velocity signal SV1. That is, the calculation unit 318 selects a combination of [acceleration signal and angular velocity signal] from the acceleration signal and angular velocity signal output by the inertial sensor 19 to calculate the velocity of the predetermined part 300. Then, the calculation unit 318 calculates the rotational velocity of each of the joints 171, 172, 173, 174, 175, and 176 by performing an inverse Jacobian matrix calculation from the calculated velocities.
[0093] (Case 2) The calculation unit 318 calculates the velocity of the predetermined part 300 based on the above-mentioned velocity signal SV2. That is, the calculation unit 318 selects a combination of [angular velocity signals only] from the acceleration signals and angular velocity signals output by the inertial sensor 19, and calculates the velocity of the predetermined part 300. Then, the calculation unit 318 calculates the rotational velocity of each of the joints 171, 172, 173, 174, 175, and 176 by performing an inverse Jacobian matrix calculation from the calculated velocities.
[0094] (Case 3) The calculation unit 318 does not calculate the velocity of the predetermined part 300. In other words, the calculation unit 318 does not select either the acceleration signal or the angular velocity signal output by the inertial sensor 19.
[0095] In this way, the calculation unit 318 selects a combination of acceleration signals or angular velocity signals to be used for vibration damping control depending on the judgment result of the judgment unit 317, i.e., case 1, case 2, or case 3, and calculates the rotational speed of each of the joints 171, 172, 173, 174, 175, and 176.
[0096] The drive control unit 319 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 318, and controls the operation of the robot arm 10 by 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. In addition, in case 3, the drive signal S is not generated, so vibration suppression control is not performed.
[0097] In this manner, in the robot system 100, the vibration suppression control section 310 selects a combination of acceleration signals or angular velocity signals to be used for vibration suppression control in accordance with the moving state of the base 11, and performs vibration suppression control.
[0098] When the base 11 is stationary, vibration suppression control can be performed with high accuracy by using the acceleration signal and the angular velocity signal.
[0099] When base 11 is performing a rotational motion, the acceleration signal and angular velocity signal output by inertial sensor 19 contain components resulting from the rotational motion of base 11. For this reason, no matter whether the acceleration signal or the angular velocity signal is used for vibration suppression control, highly accurate vibration suppression control cannot be performed.
[0100] When the base 11 is performing translational motion and is not performing rotational motion, the acceleration signal output by the inertial sensor 19 contains a component resulting from the translational motion of the base 11, while the angular velocity signal output by the inertial sensor 19 contains substantially no component resulting from the translational motion of the base 11. Therefore, in this case, by performing vibration suppression control using the angular velocity signal output by the inertial sensor 19, highly accurate vibration suppression control can be performed even though the base 11 is performing translational motion.
[0101] In this way, by selecting a combination of acceleration signals or angular velocity signals to be used for vibration suppression control in accordance with the moving state of the base 11, it is possible to perform vibration suppression control in accordance with the moving state of the base 11.
[0102] As described above, the robot system 100 includes the base 11, the robot arm 10 supported by the base 11, the inertial sensor 19 installed at a predetermined portion 300 of the robot arm 10, which detects the acceleration of the predetermined portion 300 and outputs an acceleration signal, and detects the angular velocity of the predetermined portion 300 and outputs an angular velocity signal, and the vibration suppression control unit 310 controls vibrations generated in the robot arm 10 based on the acceleration signal or the angular velocity signal output by the inertial sensor 19, and the vibration suppression control unit 310 selects a combination of the acceleration signal or the angular velocity signal used for vibration control according to the moving state of the base 11. This makes it possible to perform appropriate vibration control according to the moving state of the base 11. As a result, it is possible to maintain high positional accuracy during the work of the robot 1.
[0103] Furthermore, when the base 11 is performing translational motion and is not performing rotational motion, the vibration suppression control unit 310 controls the vibration using the angular velocity signal. This allows appropriate vibration control to be performed even when the base 11 is performing translational motion.
[0104] When the base 11 is performing a translational motion and is not performing a rotational motion, the vibration suppression control section 310 may appropriately correct the acceleration signal and the angular velocity signal to control the vibration.
[0105] Furthermore, the vibration suppression control unit 310 controls vibration using the acceleration signal and the angular velocity signal when the base 11 is not performing translational or rotational motion, i.e., when the base 11 is stationary relative to the robot installation surface 200. This allows for highly accurate vibration control.
[0106] Furthermore, the vibration suppression control unit 310 does not control vibration when the base 11 is performing a rotational motion. This makes it possible to prevent a decrease in the positional accuracy of the robot arm 10 caused by controlling vibration when the base 11 is performing a rotational motion.
[0107] When the base 11 is undergoing a rotational motion, the vibration suppression control section 310 may appropriately correct the acceleration signal and the angular velocity signal to control the vibration.
[0108] Furthermore, when the speed of the predetermined part 300 in the rotational direction exceeds a first threshold value, the vibration suppression control unit 310 determines that the base 11 is performing a rotational motion. This makes it possible to detect the movement state of the base 11 without providing a separate detection unit for detecting the movement state of the base 11. This contributes to simplifying the structure of the robot system 100.
[0109] Furthermore, when the speed of the predetermined part 300 in the translational direction exceeds a second threshold value, the vibration control unit 310 determines that the base 11 is performing translational motion. This makes it possible to detect the movement state of the base 11 without providing a separate detection unit for detecting the movement state of the base 11. This contributes to simplifying the structure of the robot system 100.
[0110] Next, the control operation performed by the control device 3 will be described with reference to the flowchart shown in Fig. 4. The following description will begin from the point where the robot arm 10 starts to operate according to the program.
[0111] First, in step S101, the acceleration signal and the angular velocity signal output by the inertial sensor 19 are acquired. That is, the signals S3u, S3v, S3w, S3x, S3y, and S3z are acquired.
[0112] Next, in step S102, the speed of the predetermined part 300, that is, the speed signal SV1 and the speed signal SV2, are calculated from the signals S3u, S3v, S3w, S3x, S3y, and S3z. The calculation method is as described above.
[0113] Next, in step S103, it is determined whether the speed in the rotation direction of the predetermined part 300 included in the speed signal SV1 is equal to or less than a first threshold value. If it is determined in step S103 that it is equal to or less than the first threshold value (YES), the process proceeds to step S104, and if it is determined that it is not equal to or less than the first threshold value (NO), the process proceeds to step S105.
[0114] In step S105, it is determined whether the state in which the speed in the rotation direction exceeds the first threshold value has continued for a predetermined time. If it is determined in step S105 that the state has continued for the predetermined time (YES), it is determined in step S109 that vibration damping control is not to be performed, and the process proceeds to step S111.
[0115] If it is determined in step S105 that the predetermined time has not continued, the process proceeds to step S104.
[0116] In step S104, it is determined whether the translational velocity of the predetermined part 300 included in the velocity signal SV1 is equal to or less than a second threshold. If it is determined in step S104 that it is equal to or less than the second threshold (YES), the process proceeds to step S108, where it is determined to perform vibration suppression control using the velocity signal SV1. If it is determined in step S104 that it is not equal to or less than the second threshold (NO), the process proceeds to step S106.
[0117] In step S106, it is determined whether the state in which the translational velocity exceeds the second threshold value continues for a predetermined time. If it is determined in step S105 that the state has continued for the predetermined time (YES), in step S107, it is determined to perform vibration suppression control using the velocity signal SV2.
[0118] If it is determined in step S106 that the vibration has not continued for the predetermined time (NO), then in step S108, it is determined that vibration suppression control is to be performed using the speed signal SV1.
[0119] Next, in step S110, the drive signal S is generated and executed, that is, the drive signal S is generated and the robot arm 10 is driven using the drive signal S.
[0120] Next, in step S111, it is determined whether or not the operation program has been completed. If it is determined in step S111 that the operation program has been completed, the driving of the robot 1 is stopped. If it is determined in step S111 that the operation program has not been completed, the process returns to step S101, and the subsequent steps are repeated.
[0121] In this manner, in the robot system 100, appropriate vibration suppression control can be performed in accordance with the moving state of the base 11.
[0122] <Second embodiment> FIG. 5 is a schematic configuration diagram for explaining each process performed by a control unit of a robot system according to a second embodiment of the present invention.
[0123] Hereinafter, a second embodiment of the robot system of the present invention will be described with reference to FIG. 5. In the following, the differences from the first embodiment will be mainly described, and a description of the similarities will be omitted.
[0124] 5, the robot system 100 includes a detection unit 18 that detects the movement state of the base 11. In this embodiment, the detection unit 18 is configured with an encoder that detects rotational position information of a motor M11 in the movement mechanism of the base 11.
[0125] However, the configuration is not limited to this, and other devices such as a camera and an inertial sensor may be used as the detection unit 18.
[0126] In this embodiment, the determination unit 317 determines the movement state of the base 11 based on the detection value of the detection unit 18, i.e., the encoder value. That is, the determination unit 317 acquires the encoder value over time and calculates the movement speed and movement direction of the base 11. The determination unit 317 can grasp the movement state of the base 11 based on the calculated movement speed and movement direction.
[0127] Then, similarly to the first embodiment, a calculation unit 318 calculates a speed based on the result of the determination by the determination unit 317, and a drive control unit 319 calculates a drive signal S.
[0128] In this way, the robot system 100 includes a detector 18 that detects the movement state of the base 11, and the vibration control unit 310 determines the movement state of the base 11 based on the detection value of the detector 18. This makes it possible to more accurately determine the movement state of the base 11. As a result, more appropriate vibration control can be performed.
[0129] <Third embodiment> FIG. 6 is a schematic configuration diagram for explaining each process performed by a control unit of a robot system according to a third embodiment of the present invention.
[0130] Hereinafter, a robot system according to a third embodiment of the present invention will be described with reference to FIG. 6. The following description will focus on the differences from the first embodiment, and a description of the same points will be omitted.
[0131] 6, in the robot system 100, the determination unit 317 determines the movement state of the base 11 based on the operation program P. The determination unit 317 reads out and acquires the operation program P from the storage unit 32. The operation program P includes speed information over time of the robot arm 10 and speed information over time of the base 11. The speed information over time of the base 11 includes information indicating the start and end times of the rotational motion and information indicating the start and end times of the translational motion.
[0132] The determination unit 317 reads out information on the speed of the base 11 over time, and determines whether or not rotational motion and translational motion of the base 11 are included, and if so, when they start and end.
[0133] Then, similarly to the first embodiment, a calculation unit 318 calculates a speed based on the result of the determination by the determination unit 317, and a drive control unit 319 calculates a drive signal S.
[0134] In this way, the vibration suppression control unit 310 judges the movement state of the base 11 based on the input operation program P. This makes it possible to more accurately judge the movement state of the base 11. As a result, more appropriate vibration suppression control can be performed.
[0135] In the present invention, the vibration suppression control section 310 may be configured to determine the moving state of the base 11 based on the input operation program P and the detection value of the detection section 18.
[0136] Although the robot system of the present invention has been described above with reference to 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 a similar function. Any structure may be added to the robot system. The configuration of the first embodiment may be arbitrarily combined with one or both of the configurations of the second and third embodiments.
[0137] Furthermore, in each of the above-described embodiments, a configuration has been exemplified in which signals S3u, S3v, and S3w input to subtractor 325 are signals processed by filter unit 312, and signals S51D, S52D, and S53D are signals processed by filter unit 323, but the configuration is not limited to this. For example, the signals input to subtractor 325 may be signals S2u, S2v, and S2w before being processed by filter unit 312, and signals S51C, S52C, and S53C before being processed by filter unit 323. [Explanation of symbols]
[0138] 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, 18...detection unit, 19...inertial sensor, 20...end effector, 31...control unit, 32...storage unit, 33...communication unit, 100...robot system, 111...wheel, 171...joint, 172...joint, 173...joint, 174...joint, 175...joint, 176...joint, 200...robot installation surface, 300...predetermined portion, 310...vibration damping control unit, 3 11...coordinate system conversion unit, 312...filter unit, 313...subtractor, 314...coordinate system conversion unit, 315...filter unit, 316...integrator, 317...judgment unit, 318...calculation unit, 319...drive control unit, 321...calculation unit, 322...coordinate system conversion unit, 323...filter unit, 324...subtractor, 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, M11...motor, M2...motor, M3...motor, M4...motor, M5...motor, M6...motor, O1...origin, O2...origin, P...operation program, S...drive signal, S1...inertia signal, S1u...signal, S1v...signal, S1w...signal, S1x...signal, S1y...signal, S1z...signal, S2...inertia signal, S2u...signal, S2v...signal, S2w...signal, S2x...signal, S2y...signal, S2z...signal, S3...second inertia signal, S3u...signal, S3v...signal, S3w...signal, S3x...signal , S3y... signal, S3z... signal, S5... signal, S51A... signal, S51B... signal, S51C... signal, S51D... signal, S52A... signal, S52B... signal, S52C... signal, S52D... signal, S53A... signal, S53B... signal, S53C... signal, S53D... signal, S54A... signal, S54B... signal, S54C... signal, S54D... signal, S55A... signal, S55B... signal, S55C... signal, S55D... signal, S56A... signal, S56B... signal, S56C... signal, S56D... signal, SV1... speed signal, SV2... speed signal, TCP... tool centre point
Claims
1. The base and A robot arm supported by the base; an inertial sensor that is installed at a predetermined portion of the robot arm, and detects the acceleration of the predetermined portion to output an acceleration signal, and detects the angular velocity of the predetermined portion to output an angular velocity signal; a vibration suppression control unit that controls vibrations generated in the robot arm based on the acceleration signal or the angular velocity signal output by the inertial sensor, A robot system characterized in that the vibration control unit selects a combination of the acceleration signals or the angular velocity signals to be used for controlling the vibration depending on the moving state of the base.
2. The robot system according to claim 1 , wherein the vibration suppression control section controls the vibration using the angular velocity signal when the base is performing a translational motion and is not performing a rotational motion.
3. The robot system according to claim 1 , wherein the vibration suppression control section controls the vibration using the acceleration signal and the angular velocity signal when the base is neither performing translational motion nor rotational motion.
4. The robot system according to claim 1 , wherein the vibration suppression control section does not control the vibration when the base is performing a rotational motion.
5. The robot system according to claim 1 , wherein the vibration suppression control unit determines that the base is performing a rotational motion when a speed of the predetermined portion in a rotational direction exceeds a first threshold value.
6. 5. The robot system according to claim 1, wherein the vibration suppression control unit determines that the base is performing a translational motion when a speed of the predetermined portion in the translational direction exceeds a second threshold value.
7. 5. The robot system according to claim 1, wherein the vibration suppression control unit determines the moving state of the base based on an input operation program.
8. a detection unit for detecting the moving state of the base, The robot system according to claim 1 , wherein the vibration suppression control unit determines the moving state of the base based on a detection value of the detection unit.