Robot system and robot control device

WO2025041575A1PCT designated stage expired Publication Date: 2025-02-27PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/027854
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-08-23
Filing Date
2024-08-05
Publication Date
2025-02-27

Smart Images

  • Figure JP2024027854_27022025_PF_FP_ABST
    Figure JP2024027854_27022025_PF_FP_ABST
Patent Text Reader

Abstract

This robot system includes: an articulated robot provided with a plurality of joints; a control unit that controls the robot on the basis of action commands; and a detection device that detects at least acceleration and angular velocity. The detection device is disposed between a joint closest to the tip end of the robot and a control point established in a position separated from the tip end of the robot so that when the control unit causes the robot to execute n action command for an arcing action in which the tip end of the robot moves, centered on the control point and within a predetermined plane in the form of an arc, acceleration along a first direction parallel to the plane and angular velocity about an axis extending along a second direction intersecting the plane are detected.
Need to check novelty before this filing date? Find Prior Art

Description

Robot system and robot control device

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

[0002] For example, Patent Document 1 discloses a system for calibrating a robot to operate the robot with high precision. In the system described in Patent Document 1, the three-dimensional position of a control point at the tip of the robot is measured using a three-dimensional position measuring device installed outside the robot to calibrate the robot.

[0003] Japanese Patent Application Laid-Open No. 2001-38662

[0004] However, in the case of Patent Document 1, it is necessary to install a three-dimensional position measuring device near the robot every time the robot is calibrated. Alternatively, if the three-dimensional position measuring device is permanently installed, it is necessary to secure space for installing the three-dimensional position measuring device near the robot.

[0005] Therefore, an object of the present disclosure is to realize highly accurate measurement of the position (e.g., relative position) of a robot's control point without installing a device outside the robot that measures the three-dimensional position of the robot's tip.

[0006] In order to solve the above-mentioned problems, according to one aspect of the present disclosure, there is provided a robot system comprising: a multi-joint robot having a plurality of joints; a control unit that controls the robot based on a movement command; and a detection device that detects at least acceleration and angular velocity, wherein when the control unit causes the robot to execute a movement command for an arc movement in which the tip of the robot moves in an arc within a predetermined plane around a control point set at a position away from the tip of the robot, the detection device is disposed between the joint closest to the tip of the robot and the control point so as to detect acceleration in a first direction parallel to the plane or angular velocity around an axis extending in a second direction intersecting the plane.

[0007] According to another aspect of the present disclosure, there is provided a robot control device for controlling an articulated robot having a plurality of joints, the robot being equipped with a detection device for detecting at least acceleration and angular velocity, the robot being controlled based on a movement command for an arc movement in which the tip of the robot moves in an arc within a predetermined plane around a control point set at a position away from the tip of the robot, the detection device being arranged between the joint closest to the tip of the robot and the control point, the movement command including: a first movement command for causing the robot to perform the arc movement; and a second movement command for causing the detection device to detect acceleration in a first direction parallel to the plane and to detect angular velocity around an axis extending in a second direction intersecting the plane.

[0008] According to the present disclosure, it is possible to measure the position (e.g., relative position) of a robot's control point with high accuracy without installing a device outside the robot that measures the three-dimensional position of the robot's tip.

[0009] Schematic diagram of a robot system according to an embodiment of the present disclosure. Block diagram of the robot system. Perspective view showing the periphery of a flange portion of a robot provided with a detection device. Schematic diagram of the detection device including an acceleration sensor and an angular velocity sensor. Diagram showing arcuate motion of a robot. Conceptual diagram showing an operation command for executing a multi-step arcuate motion. Diagram for explaining the positional displacement amount of the detection device resulting from the arcuate motion and the positional displacement amount of the center point of the arcuate motion. Flowchart showing the calibration flow of an example of a table robot showing the relationship between the command value of the rotation angle in each of the multi-step arcuate motions and the positional displacement amount of the center point of the arcuate motion.

[0010] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. However, unnecessary detailed descriptions may be omitted. For example, detailed descriptions of well-known matters or redundant descriptions of substantially identical configurations may be omitted. This is to avoid unnecessary redundancy in the following description and to facilitate understanding by those skilled in the art.

[0011] The accompanying drawings and the following description are provided to enable those skilled in the art to fully understand the present disclosure, and are not intended to limit the subject matter described in the claims.

[0012] A robot system according to an embodiment of the present disclosure will be described below with reference to the drawings.

[0013] Fig. 1 is a schematic diagram of a robot system according to an embodiment of the present disclosure, and Fig. 2 is a block diagram of the robot system.

[0014] 1 and 2, a robot system 10 of this embodiment includes an articulated robot 20 having multiple joints, specifically four or more joints. In this embodiment, the robot 20 has six joints 20a to 20f. Furthermore, in this embodiment, the six joints 20a to 20f are rotary joints. The rotation angles θa to θf of the joints 20a to 20f, respectively, are adjusted by motors 22A to 22F.

[0015] The tip of the robot 20 is equipped with a flange portion 24 having a flange surface 24a. The flange surface 24a is the surface located on the tip side of the flange portion 24. An end effector 26, such as a welding torch, a spray gun, or a robot hand, corresponding to the work performed by the robot 20 is detachably attached to the flange surface 24a. Changes in the rotation angles θa to θf of the six joints change the position and posture of the flange surface 24a, i.e., the position and posture of the end effector 26 attached to the flange surface 24a.

[0016] 1 and 2, the robot system 10 includes a control device 30 that controls the operation of the robot 20. The control device 30 controls the rotation angles θa to θf of the joints 20a to 20f, respectively. Specifically, the control device 30 controls the motors 22A to 22F that drive the joints 20a to 20f, respectively, based on operation commands created by a user. The control device 30 includes a storage device 32 such as a memory, a processor 34 such as a CPU or MPU that operates in accordance with a program stored in the storage device 32, and a circuit board (not shown) on which the storage device 32, the processor 34, etc. are mounted and which is electrically connected to the motors 22A to 22F, etc.

[0017] The processor 34 of the control device 30 performs various functions by operating in accordance with the programs stored in the storage device 32. In the present embodiment, the processor 34 functions as a motor control unit 36 ​​that outputs control signals corresponding to command values ​​for the rotation angles θa to θf of the joints 20a to 20f, respectively, to the motors 22A to 22F. Note that in the present embodiment, the control device 30 acquires the command values ​​for the rotation angles θa to θf from the outside and stores them in the storage device 32, as will be described in detail later.

[0018] The operation command is a command for causing the robot 20 to perform an operation desired by the user, and is, for example, parameters that define the target position of the flange surface 24a of the robot 20, the attitude when the target position is reached, the movement path to the target position, etc. In addition, when the end effector 26 is attached to the flange surface 24a, the operation command is parameters that define the target position of the end effector 26, the attitude when the target position is reached, the movement path to the target position, etc.

[0019] In order to operate the robot 20 based on the operation command, a reference point Pr and a control point Pe are set for the robot 20. The reference point Pr is the intersection of the flange surface 24a and the rotation axis of the joint 20f closest to the flange portion 24. The control point Pe is a point set closer to the tip of the flange portion 24, that is, a point set at a position away from the tip of the robot. When the end effector 26 is attached to the flange surface 24a of the flange portion 24, the control point Pe is set at a predetermined position (e.g., the tip) of the end effector 26. Furthermore, when the end effector 26 has a rod-shaped portion, the control point Pe may be set at a position on an extension of the rod-shaped portion.

[0020] The operation command is created by the user in order to cause the robot 20 to perform a desired operation. In the present embodiment, the operation command is created by the user via an arithmetic device 40, which is an external device to the control device 30. The arithmetic device 40 is, for example, a computer, and includes a storage device 42 such as a memory, a processor 44 such as a CPU or MPU that operates according to a program stored in the storage device 42, and a user interface 46 such as a keyboard or display for exchanging information with the user.

[0021] The processor 44 of the arithmetic device 40 performs various functions by operating in accordance with the programs stored in the storage device 42. For example, the processor 44 functions as a movement command creation unit 48 that creates movement commands in cooperation with the user via the user interface 46, and a rotation angle calculation unit 50 that calculates command values ​​for the rotation angles θa to θf of the joints 20a to 20f, respectively, based on the movement commands created by the movement command creation unit 48. The processor 44 also functions as a displacement amount calculation unit 52 and a rotation angle correction unit 54, which will be described in detail later.

[0022] The storage device 42 stores basic structural data of the robot 20, such as link lengths (distances between joints), which are necessary for calculating command values ​​for the rotation angles θa to θf. For example, the command values ​​for the rotation angles θa to θf, which are required for placing the control point Pe of the end effector 26 at a target position and causing the end effector 26 to assume a desired posture, are calculated based on the basic structural data of the robot 20.

[0023] In addition, in this embodiment, the robot system 10 is configured to be able to perform calibration so that the robot 20 can perform operations in accordance with operation commands with high precision.

[0024] For example, even if the robot 20 operates in accordance with a motion command to position a control point Pe, offset from a reference point Pr where the flange surface 24a intersects with the rotation axis of the joint 20f closest to the flange portion 24, at a target position, the actual position of the control point Pe of the robot 20 may deviate from the target position. This occurs because, even if the multiple motors 22A-22F are controlled by control signals corresponding to command values ​​of the rotation angles θa-θf calculated in accordance with the motion command, the actual values ​​(output values) of these rotation angles θa-θf may differ. Such deviations between the command values ​​and the output values ​​may be caused, for example, by the positioning accuracy of the angular positions of the motors. Furthermore, a positional deviation between the actual position of the control point Pe of the robot 20 and the target position may also be caused by, for example, deflection of the links between the joints.

[0025] Such deviations between the command value and output value for each of the rotation angles θa to θf affect the positional deviation between the actual position and the target position of the control point Pe of the robot 20. Therefore, the rotation angle correction unit 54 performs calibration, i.e., corrects the command values ​​of the rotation angles θa to θf to values ​​that will cause the actual position of the control point Pe to become the target position, based on the positional deviation between the actual position and the target position of the control point Pe of the robot 20.

[0026] Controlling the motors 22A to 22F with control signals corresponding to these corrected command values ​​makes it possible to reduce the error between the actual position and the target position of the control point Pe of the robot 20. Calibration, which reduces the error between the actual position and the target position of the control point Pe of the robot 20, is performed by setting the control point at an arbitrary position and changing the posture of the robot, and by causing the flange portion 24 of the robot 20 to move in an arc within a predetermined plane around the control point. The robot system 10 is configured to perform calibration using this arc movement.

[0027] To perform such calibration, as shown in FIGS. 1 and 2, the robot system 10 includes a detection device 60 that detects acceleration and angular velocity.

[0028] Fig. 3 is a perspective view showing the periphery of a flange of a robot provided with a detection device, and Fig. 4 is a diagram showing the detection device including an acceleration sensor and an angular velocity sensor.

[0029] 4, in this embodiment, the detection device 60 includes an acceleration sensor 62 that detects acceleration in each of three axes that extend in different directions and are orthogonal to one another, and an angular velocity sensor 64 that detects angular velocity around each of the three axes that extend in different directions and are orthogonal to one another. Alternatively, the detection device 60 may be a six-axis sensor.

[0030] 3 and 4, in this embodiment, the detection device 60 has a sensor coordinate system ΣS composed of an Xs-axis, a Ys-axis, and a Zs-axis that are orthogonal to each other. The detection device 60 detects accelerations Ax, Ay, and Az in the directions along which the Xs-axis, Ys-axis, and Zs-axis extend, respectively, and detects angular velocities ωx, ωy, and ωz about the Xs-axis, Ys-axis, and Zs-axis, respectively.

[0031] The detection device 60 is provided between the joint 20f closest to the flange portion 24 of the robot 20 and the control point Pe. In this embodiment, the detection device 60 is detachably attached to the flange surface 24a of the robot 20. The detection device 60 is attached to the robot 20 when calibration is performed. Note that the detection device 60 may be permanently attached to the flange surface 24a as long as it does not interfere with the attachment of the end effector 26 to the flange surface 24a. For example, the detection device 60 may be non-detachably incorporated into the flange surface 24a. Furthermore, if the end effector 26 and the detection device 60 interfere with each other at the attachment positions, the end effector 26 is removed and only the detection device 60 is attached during calibration.

[0032] To perform the above-described calibration, the robot 20 performs a circular movement.

[0033] 5 is a diagram showing the circular motion of the robot 20. Note that part of the robot 20 is not shown in FIG.

[0034] As shown in Figure 5, the arc motion is a motion of the robot 20 in which the flange surface 24a moves within a predetermined plane centered on a center point Pp (control point Pe) of the arc motion. Strictly speaking, the arc motion is performed by moving the flange surface 24a within a predetermined plane that passes through the center point Pp of the arc motion, intersects with a center line SL that is parallel to the Xs axis, as the axis of rotation. According to this arc motion, the flange surface 24a (its reference point Pr) moves along an arc trajectory.

[0035] The center point Pp and center line SL of the arc movement are set at predetermined positions in the global coordinate system ΣG shown in Fig. 1. The global coordinate system ΣG is composed of an X-axis, a Y-axis, and a Z-axis that are perpendicular to each other. The global coordinate system ΣG is a coordinate system defined in the space in which the robot 20 is installed, and the target position of the control point Pe of the robot 20 is defined by the coordinates of the global coordinate system ΣG.

[0036] In this embodiment, the position of the center point Pp and the direction of extension of the center line SL are set so that the rotation angles θa to θf of all of the joints 20a to 20f change when the robot 20 performs an arc movement based on the center point Pp and the center line SL. This allows calibration to be performed for the rotation angles θa to θf of all of the joints 20a to 20f. In other words, from another perspective, the position of the center point Pp and the direction of extension of the center line SL in the global coordinate system ΣG are not limited. These do not need to be set precisely and can be set roughly.

[0037] 4, the position and orientation of the flange surface 24a of the robot 20 during arc movement are set so that the flange surface 24a is located at a position away from the center point Pp. In this embodiment, the position and orientation of the flange surface 24a are set so that the control point Pe of the end effector 26 attached to the flange surface 24a coincides with the center point Pp. In other words, the center point Pp is the target position of the control point Pe when performing arc movement.

[0038] 3 and 5, the detection device 60 is attached to the flange surface 24a so that one axis of the sensor coordinate system ΣS of the detection device 60 is substantially parallel to the center line SL during the arcuate movement. From another perspective, the position and orientation of the flange surface 24a during the arcuate movement are set so that one axis of the sensor coordinate system ΣS of the detection device 60 attached to the flange surface 24a is substantially parallel to the center line SL. In the present embodiment, the Xs axis of the sensor coordinate system ΣS is set to be substantially parallel to the center line SL.

[0039] Such arcuate motion is performed in succession over multiple steps.

[0040] FIG. 6 is a conceptual diagram showing a motion command for executing a circular motion of multiple steps.

[0041] As shown in FIG. 6 , multiple-step (n steps, n being a natural number greater than or equal to 2) arcuate movements M(1) to M(n) are continuously executed. Each of the multiple-step arcuate movements M(1) to M(n) is executed using a common arcuate center point Pp and a common center line SL. Furthermore, the target value of the pivot angle φ of the flange surface 24a (its reference point Pr) in each arcuate movement is the same. The multiple-step arcuate movements M(1) to M(n) are continuously executed so that the next arcuate movement M(m+1) starts immediately after the completion of the arcuate movement M(m) (where m is a natural number less than n). Here, the pivot angle φ is an angle between 0.5° and 10°.

[0042] According to the motion commands for these multiple-step arc motions M(1) to M(n), the center point Pp should not move, and the reference point Pr on the flange surface 24a and the detector 60 attached to the flange surface 24a should move along an arc trajectory. However, in reality, the center point Pp may displace between the start and completion of one arc motion due to factors such as the positioning accuracy of the angular positions of the motors 22A to 22F and link deflection. Furthermore, the actual value of the rotation angle φ may differ from the target value. As a result, the reference point Pr on the flange surface 24a and the detector 60 may not move along an arc trajectory at a single center point.

[0043] Therefore, the robot system 10 of this embodiment must be configured to perform calibration to correct the command values ​​of the rotation angles θa to θf so that the robot 20 can perform a circular motion of multiple steps in which the center point Pp does not substantially displace and the rotation angle φ of the detection device 60 is substantially constant at a target value. Note that, although it is desirable that all of the rotation angles of the multiple steps are constant, the rotation angles φ1 to φn of the multiple steps may be different as long as each of the rotation angles φ1 to φn of the multiple steps is known.

[0044] To this end, the robot system 10 of this embodiment is configured to calculate the amount of displacement of the center point Pp displaced by each of the multiple-step arcuate movements based on the acceleration and angular velocity detected by the detection device 60.

[0045] FIG. 7 is a diagram for explaining the amount of positional displacement of the detection device due to arcuate motion and the amount of positional displacement of the center point of the arcuate motion.

[0046] As shown in FIGS. 5 and 7 , when the robot 20 performs an arcuate movement, the detection device 60 is displaced and its posture changes. As a result, the detection device 60 detects acceleration in a direction parallel to a plane perpendicular to the center line SL. In this embodiment, the detection device 60 detects at least one of the Ys-axis component and the Zs-axis component of the acceleration. The detection device 60 also detects angular velocity around an axis intersecting with the plane. The plane and the axis intersect at an angle of 80° to 90°. In this embodiment, the detection device 60 detects angular velocity ωx around the Xs-axis, which is substantially parallel to the center line SL. The positional displacement ΔDs of the detection device 60 can be calculated by integrating the detected acceleration and angular velocity.

[0047] For reference, if the angular displacement Δωx=φ and the positional displacement ΔDs=2×L×sin(φ / 2), the center point Pp will not be displaced. Note that the distance L is the distance between the center point Pp and the detection device 60, as shown in Figures 6 and 7.

[0048] As shown in FIG. 3 , the detection device 60 is attached to the flange surface 24 a. That is, the detection device 60 is disposed at a predetermined position and in a predetermined orientation in the tool coordinate system ΣM defined on the flange surface 24 a. Therefore, vectors in the sensor coordinate system ΣS can be coordinate-transformed into vectors in the tool coordinate system, and further, vectors in the tool coordinate system can be coordinate-transformed into vectors in the global coordinate system. By such coordinate transformation, the positional displacement amount ΔDs of the detection device 60 in the sensor coordinate system ΣS can be converted into a positional displacement amount in the global coordinate system ΣG.

[0049] 3, the center point Pp (control point Pe) of the arc movement is set at a predetermined position in the tool coordinate system ΣM of the flange surface 24a. Therefore, the position of the center point Pp in the tool coordinate system ΣM can be converted to a position in the global coordinate system ΣG by coordinate transformation.

[0050] 3, the center point Pp is located at a predetermined position in the sensor coordinate system ΣS of the detection device 60. Therefore, the positional displacement amount ΔDp of the center point Pp in the global coordinate system ΣG can be calculated based on the positional displacement amount ΔDs of the detection device 60 in the global coordinate system ΣG.

[0051] In this embodiment, as shown in FIG. 1 , a positional displacement ΔDp of the center point Pp of the arc motion is calculated by a displacement calculation unit 52 of the calculation device 40. The displacement calculation unit 52 calculates the positional displacement ΔDp of the center point Pp caused by each of the multiple steps of arc motion M(1) to M(n). In this embodiment, the positional displacement ΔDp is calculated as the positional displacement in the X-axis direction, the Y-axis direction, and the Z-axis direction in the global coordinate system ΣG. The arc motion M(m) and the positional displacement in each direction of the center point Pp caused by that arc motion M(m) are associated with each other and stored in the storage device 42.

[0052] The rotation angle correction unit 54 of the calculation device 40 corrects the command values ​​of the rotation angles θa to θf based on the position displacement amounts ΔDp of the multiple center points Pp that occur due to each of the multiple-step arc movements M(1) to M(n) and are calculated by the displacement amount calculation unit 52.

[0053] FIG. 8 is a table showing the relationship between the command value of the rotation angle in each of the multiple-step arcuate movements and the positional displacement amount of the center point of the arcuate movement.

[0054] First, as shown in FIG. 8 , the storage device 42 of the arithmetic unit 40 stores, in association with each other, arcuate motion M(m), command values ​​θa(m) to θf(m) for rotation angles θa to θf calculated based on the arcuate motion M(m), and positional displacement amounts ΔDX(m), ΔDY(m), and ΔDZ(m) of the center point Pp caused by the arcuate motion M(m). The command values ​​θa(m) to θf(m) for rotation angles θa to θf are stored in the storage device 42 by the rotation angle calculation unit 50 that calculated them. Furthermore, the positional displacement amounts ΔDX(m), ΔDY(m), and ΔDZ(m) are stored in the storage device 42 by the displacement amount calculation unit 52 that calculated them.

[0055] In this embodiment, the rotation angle correction unit 54 of the calculation device 40 calculates correction coefficients for correcting the command values ​​θa(m) to θf(m) of the rotation angles θa to θf, based on the command values ​​θa(m) to θf(m) of the rotation angles θa to θf associated with the arc movement M(m) and the positional displacement amounts ΔDX(m), ΔDY(m), and ΔDZ(m).

[0056] First, the positional displacement amounts ΔDX(m), ΔDY(m), and ΔDZ(m) can be regarded as functions of the command values ​​θa(m) to θf(m) of the rotation angles θa to θf. Therefore, correction equations are used to correct the command values ​​θa(m) to θf(m) of the rotation angles θa to θf, as shown in Equations 1 to 6 as examples. The rotation angle correction unit 54 calculates correction coefficients α1 to α6 and β1 to β6 in the correction equations. Note that θa(m)' to θf(m)' represent corrected command values. θa(m)' = α1 × θa(m) + β1 (Formula 1) θb(m)' = α2 × θb(m) + β2 (Formula 2) θc(m)' = α3 × θc(m) + β3 (Formula 3) θd(m)' = α4 × θd(m) + β4 (Formula 4) θe(m)' = α5 × θe(m) + β5 (Formula 5) θf(m)' = α6 × θf(m) + β6 (Formula 6)

[0057] The correction coefficients α1 to α6 and β1 to β6 are calculated so as to cancel the positional displacement amounts (ΔDX(m), ΔDY(m), ΔDZ(m)) of the center point Pp caused when the robot 20 executes the arc movement M(m) with the pre-correction command values ​​θa(m) to θf(m) for the rotation angles θa to θf. In other words, the correction coefficients α1 to α6 and β1 to β6 are values ​​that cause the center point Pp to be displaced by the positional displacement amounts of (-ΔDX(m), -ΔDY(m), -ΔDZ(m)) when the robot 20 executes the arc movement M(m) with the corrected command values ​​θa(m)' to θf(m)'.

[0058] In order to calculate the 12 correction coefficients α1 to α6 and β1 to β6, the arc motion M(m) is executed for at least twice the number of joints of the robot 20, that is, at least 12 steps (n≧12).

[0059] The rotation angle correction unit 54 uses the correction coefficients calculated in this manner to correct the command values ​​θa(m) to θf(m) of the rotation angles θa to θf calculated by the rotation angle calculation unit 50. By operating the robot 20 using the corrected command values ​​θa(m)' to θf(m)', the robot 20 can execute a multi-step arc motion M(1) to M(n) while the center point Pp is substantially maintained at a constant position without displacement and while the turning angle φ is maintained at a target value.

[0060] Furthermore, by correcting the command values ​​for the rotation angles θa to θf using the calculated correction coefficients, the robot 20 can also perform movements other than circular movements with high precision.

[0061] In order to perform a variety of movements with higher accuracy, it is preferable to perform the arc movements using multiple center lines SL extending in different directions. For example, first, a first arc movement of multiple steps is performed around a first center line SL extending in a first direction, and then a second arc movement of multiple steps is performed around a second center line SL extending in a second direction. By performing multiple types of arc movements with center lines SL extending in different directions in this way, it is possible to calculate correction coefficients for the command values ​​of the rotation angles θa to θf corresponding to a variety of movements.

[0062] The calibration procedure will now be described.

[0063] FIG. 9 is a flowchart showing an example of a calibration flow of a robot.

[0064] FIG. 9 shows a flow for calculating correction coefficients required for correcting command values ​​for the rotation angles θa to θf of the joints 20a to 20f as part of the calibration of the robot 20.

[0065] First, in step S100, the position of the center point Pp of the arc motion to be executed by the robot 20 and the extending direction of the center line SL are set.

[0066] Next, in step S110, the flange surface 24a of the robot 20 is placed in the calibration start position and start posture. For example, as shown in FIG. 1 , the detection device 60 is attached to the flange surface 24a, the control point Pe is aligned with the center point Pp set in step S100, and the flange surface 24a of the robot 20 is placed in the calibration start position and start posture.

[0067] Steps S100 and S110 may be performed manually by the user, or may be performed automatically by the robot 20 when the user operates a button or the like to start calibration.

[0068] In step S120, the control device 30 controls the detection device 60, causing the detection device 60 to start detecting the acceleration and angular velocity of the Xs-axis, Ys-axis, and Zs-axis (execution of the second operation command is started).

[0069] In step S130, the robot 20 is controlled by the control device 30, whereby the arc movement of the flange surface 24a of the robot 20 is initiated (the execution of the first movement command is initiated). Specifically, as shown in FIG. 6, a movement command is executed for the arc movement of the flange surface 24a to rotate at a rotation angle φ around a center line SL that passes through the control point Pp. Next, control signals corresponding to command values ​​of the rotation angles θa to θf of the multiple joints 20a to 20f calculated based on the movement command are output to the motors 22A to 22F. The motors 22A to 22F then drive the multiple joints 22a to 22f, causing the robot 20 to perform the arc movement.

[0070] In step S140, the arc movement of the robot 20 on the flange surface 24a is completed.

[0071] In step S150, it is determined whether a predetermined number of arcuate movements have been completed. For example, as shown in Fig. 6, it is determined whether a predetermined number (n steps) of arcuate movements have been completed. If the predetermined number of steps has not been reached, the process returns to step S130, and the next arcuate movement is performed.

[0072] When it is confirmed in step S150 that the number of steps of the arcuate movement has reached a predetermined number, in the next step S160, the control device 30 causes the detection device 60 to end detection of the acceleration and angular velocity.

[0073] In step S170, the positional displacement ΔDp(m) of the center point Pp is calculated for each step of the arcuate motion. Specifically, first, time waveform data corresponding to each step of the arcuate motion is extracted from the acceleration and angular velocity data detected by the detection device 60. The extracted data is used to calculate the positional displacement ΔDp(m) of the center point Pp caused by each step M(m) of the arcuate motion. The positional displacement ΔDp(m) is the actual positional displacement from the center point Pp, which does not move in the calculation.

[0074] In step S180, correction coefficients α1 to α6 and β1 to β6 for correcting the command values ​​of the rotation angles θa(m) to θf(m) shown in Equations 1 to 6 are calculated based on the command values ​​of the rotation angles θa(m) to θf(m) of each step of the arc movement and the positional displacement amount ΔDp(m) of the center point Pp in each corresponding arc movement calculated in step S170. When the calculation of the correction coefficients is completed, the flow for calculating the correction coefficients is completed.

[0075] In this embodiment, the circular motion is performed once for the specified n steps, but the circular motion may be performed multiple times for the specified n steps. Also, the position of the control point Pe or the plane on which the circular motion is performed may be changed to perform the circular motion multiple times for the specified n steps.

[0076] Furthermore, the calibration method using the displacement of the center point Pp caused by each of the multiple steps of the arc movement is not limited to the method of calculating the 12 correction coefficients α1 to α6 and β1 to β6 described above. Such a calibration method may be, for example, a machine learning method using the displacement of the center point Pp as a loss function, a method of frequency analysis of time waveform data corresponding to each step of the arc movement, or a combination of these methods.

[0077] According to the above-described embodiment, by providing a detection device at the tip of the robot, it is possible to measure the position (e.g., relative position) of the robot's control point with high accuracy without providing a device for measuring the three-dimensional position of the robot's tip outside the robot.

[0078] In other words, since the robot is provided with a sensor (detection device 60 in this embodiment) that detects physical quantities (acceleration and angular velocity in this embodiment) necessary for calibration to achieve high-precision operation of the robot, there is no need for an external device such as a three-dimensional position measuring device that measures the three-dimensional position of the tip of the robot.

[0079] Although the present disclosure has been described above with reference to the above-mentioned embodiments, the present disclosure is not limited to these embodiments.

[0080] For example, in the above-described embodiment, as shown in FIG. 2 , the operation command for the robot 20 is generated by a calculation device 40 external to the control device 30 of the robot 20. However, the embodiment of the present disclosure is not limited to this. The operation command may be generated, for example, by a teaching pendant (not shown) connected to the control device 30. A user may manually operate the robot via the teaching pendant to cause the robot to perform a desired operation, and the operation command may be generated based on the manual operation. In this case, a rotation angle calculation unit 50 that calculates a rotation angle command value based on the operation command is also provided in the control device 30. Note that if a sensor that detects acceleration and angular velocity (detection device 60 in the above-described embodiment) is non-detachably provided on the flange portion of the robot 20, the entire calculation device 40 may be included in the control device 30.

[0081] Furthermore, in the above-described embodiment, the robot 20 has six rotary joints 20a to 20f. However, embodiments of the present disclosure are not limited to this. The number of joints of the robot 20 is not limited to six. A multi-joint robot with at least three or more joints is capable of circular movement, and a multi-joint robot with four or more joints is capable of circular movement at any point. Therefore, the present disclosure is applicable to multi-joint robots with three or more joints, and is particularly effective for multi-joint robots with four or more joints. Furthermore, the multiple joints of the robot 20 may include at least one prismatic joint. In the case of a rotary joint, the rotation angle is controlled by the control device 30, while in the case of a prismatic joint, the stroke amount is controlled.

[0082] Furthermore, in the above-described embodiment, the circular movement is performed for calibration. However, the reason for performing the circular movement is not limited to calibration. For example, it is possible to evaluate the inherent positioning accuracy of the robot 20 based on the displacement of the center point of the circular movement.

[0083] Furthermore, in the above-described embodiment, as shown in FIG. 4 , the center point Pp of the arc movement coincides with the control point Pe of the end effector 26 attached to the flange surface 24a. This allows the position and orientation of the end effector 26 to be controlled with high precision after calibration. However, in the embodiment of the present disclosure, the center point Pp of the arc movement is not limited to the control point Pe of the end effector 26. For example, a reference point of the robot 20, such as the reference point Pr of the flange surface 24a, may be set as the center point Pp. That is, it is sufficient that the center point Pp remains at a constant position in the sensor coordinate system ΣS of the detection device 60 that detects acceleration and angular velocity. For this purpose, the detection device 60 is disposed between the joint 20f closest to the flange portion 24 of the robot 20 and the control point Pe.

[0084] Additionally, in the above-described embodiment, the center point Pp and the center line SL are set so that all of the joints 20a to 20f change when the robot 20 performs an arc motion. This allows calibration to be performed for the rotation angles θa to θf of all of the joints 20a to 20f. However, the embodiment of the present disclosure is not limited to this. For example, if calibration is not required for a specific joint, the center point Pp and the center line SL may be set to perform an arc motion in which the other joints change.

[0085] In addition, in the above-described embodiment, as shown in FIG. 5 , the robot 20 performs an arc movement in which the flange portion 24, i.e., the detection device 60, rotates around a center line SL that is substantially parallel to the Xs axis of the sensor coordinate system ΣS of the detection device 60. However, the detection device 60 can detect angular velocity around an axis extending in any direction. Therefore, when detecting angular velocity using the detection device 60, the rotation center line SL can be set without taking into account the sensor coordinate system ΣS of the detection device 60.

[0086] Furthermore, in the above-described embodiment, a detection device 60 including an acceleration sensor 62 and an angular velocity sensor 64 is used to detect acceleration and angular velocity. As shown in Figures 3 and 4, the acceleration sensor 62 detects accelerations Ax, Ay, and Az in the directions along the Xs-axis, Ys-axis, and Zs-axis, which are orthogonal to each other, in the sensor coordinate system ΣS. The angular velocity sensor 64 detects angular velocities ωx, ωy, and ωz around the Xs-axis, Ys-axis, and Zs-axis, respectively. However, the embodiments of the present disclosure are not limited to this.

[0087] As shown in Figures 6 and 7, the arcuate motion causes the detection device 60 to move in a direction parallel to a predetermined plane perpendicular to the center line SL. The detection device 60 also moves in a direction intersecting a line S connecting the center point Pp (i.e., the control point Pe) of the arcuate motion and the detection device 60. Therefore, it is sufficient to detect acceleration in a first direction, which is the direction of movement of the detection device 60. It is also sufficient to detect angular velocity around an axis extending in a second direction, which is a direction intersecting a predetermined plane perpendicular to the center line SL. Therefore, the detection device 60 may include an acceleration sensor that detects only acceleration in the direction of extension of the first axis in the sensor coordinate system, and an angular velocity sensor that detects only angular velocity around an axis parallel to the second axis in the sensor coordinate system.

[0088] In addition, when the detection device 60 includes an acceleration sensor that detects acceleration in the extension direction of a first axis in the sensor coordinate system and an angular velocity sensor that detects angular velocity around an axis parallel to the second axis in the sensor coordinate system, the positions and orientations of the acceleration sensor and the angular velocity sensor are uniquely determined with respect to the center point Pp (i.e., the control point Pe) and the center line SL. Therefore, the acceleration sensor and the angular velocity sensor of the detection device 60 need to be positioned with a certain degree of precision and provided on the flange portion 24 of the robot 20. In other words, the detection device 60 is disposed on the robot 20 so that the direction of movement (first direction) of the detection device 60, which moves by an arc, is substantially parallel to the first axis, and so that the second direction, which is a direction intersecting a predetermined plane perpendicular to the center line SL, is substantially parallel to the second axis.

[0089] For example, it is preferable to provide the acceleration sensor on the flange 24 of the robot 20 so that the acceleration detection direction of the acceleration sensor (extension direction of the first axis) intersects with a line S connecting the acceleration sensor and the center point with an accuracy of 90°±5°. Also, it is preferable to provide the angular velocity sensor on the flange 24 of the robot 20 so that the angle formed between the extension direction of the axis (second axis) along which angular velocity is detected and the extension direction of the center line SL is within the range of −5° to +5°.

[0090] Furthermore, in the above-described embodiment, the positional displacement amounts (ΔDX(m), ΔDY(m), ΔDZ(m)) of the center point Pp (control point Pe) of the arc movement are calculated using one detection device 60. However, the embodiments of the present disclosure are not limited to this. For example, final positional displacement amounts (ΔDX(m), ΔDY(m), ΔDZ(m)) for correcting the command values ​​θa(m) to θf(m) of the rotational angles θa to θf of the joints 20a to 20f may be calculated based on two positional displacement amounts calculated from the detection results of the two detection devices. For example, the final positional displacement amount is obtained by calculating the average value of the two positional displacement amounts calculated based on the detection results of the two detection devices.

[0091] That is, in a broad sense, an embodiment of the present disclosure is a robot system comprising: an articulated robot having a plurality of joints; a control unit that controls the robot based on a movement command; and a detection device that detects at least acceleration and angular velocity, wherein the detection device is disposed between the joint closest to the tip of the robot and the control point so as to detect acceleration in a first direction parallel to the plane and angular velocity around an axis extending in a second direction intersecting the plane when the control unit causes the robot to execute a movement command for arc movement in which the tip of the robot moves in an arc within a predetermined plane around a control point set at a position away from the tip of the robot.

[0092] Another embodiment of the present disclosure, in a broad sense, is a robot control device that controls an articulated robot having a plurality of joints and that is provided with a detection device that detects at least acceleration and angular velocity, and that controls the robot based on a movement command for an arc movement in which the tip of the robot moves in an arc within a predetermined plane around a control point set at a position away from the tip of the robot, the detection device being disposed between the joint closest to the tip of the robot and the control point, and the movement command including a first movement command that causes the robot to perform the arc movement, and a second movement command that causes the detection device to detect acceleration in a first direction parallel to the plane and detect angular velocity around an axis extending in a second direction intersecting the plane.

[0093] Although the tip of the robot according to the above-described embodiment is a flange portion as shown in FIG. 1 , the embodiment of the present disclosure is not limited to this. For example, in a robot according to another embodiment of the present disclosure, the tip may be a robot hand. That is, the embodiment of the present disclosure is not limited to a robot whose tip is a flange portion.

[0094] Although the robot according to the above-described embodiment is a welding robot, the embodiment of the present disclosure is not limited to this. The robot according to the embodiment of the present disclosure is not limited to a welding robot, but may be a stationary robot such as an assembly robot, a disassembly robot, or a picking robot.

[0095] As described above, the above-described embodiments have been described as examples of the technology of the present disclosure. For this purpose, drawings and detailed descriptions are provided. Therefore, the components described in the drawings and detailed descriptions may include not only components essential for solving the problem, but also components that are not essential for solving the problem in order to exemplify the above-described technology. Therefore, the fact that these non-essential components are described in the drawings or detailed descriptions should not be interpreted as immediately indicating that these non-essential components are essential.

[0096] Furthermore, since the above-described embodiments are intended to illustrate the technology of the present disclosure, various modifications, substitutions, additions, omissions, etc. may be made within the scope of the claims or their equivalents.

[0097] The present disclosure is applicable to robots with multiple joints.

Claims

1. A robot system comprising: a multi-joint robot having a plurality of joints; a control unit which controls the robot based on movement commands; and a detection device which detects at least acceleration and angular velocity, wherein the detection device is disposed between the joint closest to the tip of the robot and the control point so as to detect acceleration in a first direction parallel to the plane and angular velocity around an axis extending in a second direction intersecting the plane when the control unit causes the robot to execute a movement command for arc movement in which the tip of the robot moves in an arc within a predetermined plane around a control point set at a position away from the tip of the robot.

2. The robot system according to claim 1, further comprising a calculation unit that calculates the amount of displacement of said control point caused by said arc motion based on the acceleration and angular velocity detected by said detection device.

3. The robot system of claim 2, wherein the control unit controls the robot based on an operation command for continuously executing multiple steps of the arc motion based on a common control point, and the calculation unit calculates multiple displacement amounts of the control point caused by each of the multiple steps of the arc motion of the robot.

4. The robot system according to claim 3, further comprising a memory unit that stores the amount of displacement of the control point in each of the multiple steps of the arc movement calculated by the calculation unit, and the memory unit stores the command values ​​of the control parameters of the joints in each of the multiple steps of the arc movement in correspondence with the amount of displacement of the control point calculated by the calculation unit.

5. A robot system as described in claim 4, wherein the calculation unit performs calibration to correct command values ​​of the control parameters of the multiple joints of the robot based on multiple displacement amounts of the control points during each of the multiple steps of the circular movement of the robot.

6. The robot system of claim 1, wherein the control point is a reference point of an end effector attached to the tip of the robot.

7. The robot system according to claim 1, wherein the detection device has a sensor coordinate system including a first axis and a second axis that intersect with each other, detects acceleration in the extension direction of the first axis, and detects angular velocity around an axis parallel to the second axis, and the detection device is disposed on the robot such that the extension direction of the first axis is parallel to the first direction, and the extension direction of the second axis is parallel to the second direction.

8. The robotic system of claim 1, wherein the detection device is a six-axis sensor that detects acceleration in the first direction parallel to the plane and angular velocity about an axis extending in the second direction intersecting the plane.

9. The robot system according to claim 1, wherein the detection device is detachably provided at the tip of the robot.

10. The robot system of claim 1, wherein the tip portion comprises a flange portion.

11. A robot control device that controls a multi-joint robot having multiple joints and is equipped with a detection device that detects at least acceleration and angular velocity, the robot being controlled based on movement commands for arc movement in which the tip of the robot moves in an arc within a specified plane around a control point set at a position away from the tip of the robot, the detection device being arranged between the joint closest to the tip of the robot and the control point, the movement commands including: a first movement command that causes the robot to perform an arc movement; and a second movement command that causes the detection device to detect acceleration in a first direction parallel to the plane and detect angular velocity around an axis extending in a second direction intersecting the plane.

12. A robot control device as described in claim 11, characterized in that a calibration is performed to correct the command values ​​of the control parameters of the multiple joints of the robot based on the arc motion and on the multiple displacement amounts of the control points during each of the multiple steps of the arc motion of the robot.

Citation Information

Patent Citations

  • Measuring apparatus and method of its calibration

    JP2008012604A

  • Method of detecting inter-axis offset of six-axis robot

    JP2013039643A