Correction device, correction method, and robot system
12220824 ยท 2025-02-11
Assignee
Inventors
Cpc classification
International classification
Abstract
A correction device includes: a measurement point generation unit configured to generate a plurality of candidate points corresponding to posture of a robot within a movable range of the robot based on robot mechanism model information representing a mechanism of the robot and end effector information concerning an end effector installed in the robot, and determine, among the generated plurality of candidate points, a candidate point at which joint torque of each joint of the robot in the posture corresponding to each candidate point is equal to or more than a predetermined threshold as a measurement point; and a parameter identification unit configured to calculate a position error between a calculated position and a measured position of the end effector in the posture corresponding to the measurement point and identify mechanism error parameters so that the calculated position error is minimized.
Claims
1. A correction device comprising: a measurement point generation unit configured to generate a plurality of candidate points corresponding to posture of a robot within a movable range of the robot based on robot mechanism model information representing a mechanism of the robot and end effector information concerning an end effector installed in the robot, and determine, among the generated plurality of candidate points, a candidate point at which joint torque of each joint of the robot in the posture corresponding to each candidate point is equal to or more than a predetermined threshold as a measurement point; and a control unit configured to calculate a position error between a calculated position and a measured position of the end effector in the posture corresponding to the measurement point and identify mechanism error parameters so that the calculated position error is minimized.
2. The correction device according to claim 1, wherein the parameter identification unit is configured to identify a link length error L, an assembly error , and an angle error as the mechanism error parameters so that the calculated position error is minimized, and estimate a coefficient c of joint deflection c, an angle offset error , and a backlash based on the identified angle error and the joint torque at each joint.
3. The correction device according to claim 1, wherein the measurement point generation unit is configured to analyze a robot operation program for controlling operation of the robot and determine the candidate points within a predetermined distance from a teaching point corresponding to the robot posture until the operation corresponding to the robot operation program is completed as the measurement points.
4. The correction device according to claim 1, comprising a measurement point measuring unit configured to measure the measured position.
5. The correction device according to claim 1, comprising a position error estimation unit configured to estimate the position error of the end effector when the robot is operated according to a robot operation program for controlling operation of the robot, based on the mechanism error parameters.
6. The correction device according to claim 5, wherein the position error estimation unit corrects the robot operation program based on the estimated position error.
7. A correction method by a correction device, the correction method comprising: a measurement point generation step of generating a plurality of candidate points corresponding to posture of a robot within a movable range of the robot based on robot mechanism model information representing a mechanism of the robot and end effector information concerning an end effector installed in the robot, and determining among the generated plurality of candidate points, a candidate point at which joint torque of each joint of the robot in the posture corresponding to each candidate point is equal to or more than a predetermined threshold as a measurement point; and a control step of calculating a position error between a calculated position and a measured position of the end effector in the posture corresponding to the measurement point and identifying mechanism error parameters so that the calculated position error is minimized.
8. A robot system comprising: a robot; and a correction device configured to correct a robot operation program for controlling operation of the robot, wherein the correction device includes a measurement point generation unit configured to generate a plurality of candidate points corresponding to posture of the robot within a movable range of the robot based on robot mechanism model information representing a mechanism of the robot and end effector information concerning an end effector installed in the robot, and determine, among the generated plurality of candidate points, a candidate point at which joint torque of each joint of the robot in the posture corresponding to each candidate point is equal to or more than a predetermined threshold as a measurement point, a control unit configured to calculate a position error between a calculated position and a measured position of the end effector in the posture corresponding to the measurement point and identify mechanism error parameters so that the calculated position error is minimized, a position error estimation unit configured to estimate the position error of the end effector when the robot is operated according to the robot operation program based on the mechanism error parameters, and correct the robot operation program based on the estimated position error, and the robot control unit configured to control the robot based on the corrected robot operation program.
Description
BRIEF DESCRIPTION OF DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
DETAILED DESCRIPTION
(9) Hereinafter, an embodiment of the present invention will be described with reference to the drawings. In all the drawings illustrating the embodiments, the same members are denoted by the same reference numerals in principle, and repeated description thereof will be omitted. In the following embodiments, the components (including elemental steps and the like) are not necessarily essential, except when specifically indicated or when clearly considered essential in principle. In addition, when the terms composed of A, consisting of A, having A, and including A are used, other elements are not excluded, except when, for example, it is specifically stated that it is only that element. Similarly, in the following embodiments, when reference is made to the shape, positional relationship, and the like of the components and the like, it includes those that substantially approximate or resemble the shape and the like, except when specifically indicated or when it is clearly considered that this is not the case in principle.
(10) <Configuration Example of Robot System 10 According to Embodiment of Present Invention>
(11)
(12) The robot system 10 includes a correction device 20, a robot controller 30, a robot 40, and an image capturing device 50.
(13) The correction device 20 identifies the mechanism error parameters of the robot 40. The correction device 20 corrects a robot operation program 223 using the identified mechanism error parameters.
(14) The robot controller 30 is connected to the correction device 20 via a network 31. The robot controller 30 controls the operation of the robot 40 according to the robot operation program 223 corrected by the correction device 20.
(15) The image capturing device 50 is connected to the correction device 20 via the network 31. The image capturing device 50 captures images of the entire robot 40 including the end effector 42 in accordance with control from the correction device 20.
(16) The correction device 20 includes a general computer such as a personal computer including a processor such as a central processing unit (CPU), a memory such as a static random access memory (SDRAM), a storage such as a hard disk drive (HDD) or a solid state drive (SSD), a communication module, an input device, and a display device.
(17) The correction device 20 includes a calculation unit 21, a storage unit 22, an input unit 23, a display unit 24, and a communication unit 25.
(18) The calculation unit 21 is realized by a computer processor. The calculation unit 21 has the following functional blocks: an information acquisition unit 211, a measurement point generation unit 212, a measurement point measuring unit 213, a parameter identification unit 214, a position error estimation unit 215, a display control unit 216, and a robot control unit 217. These functional blocks are realized by a computer processor executing a predetermined program.
(19) The information acquisition unit 211 acquires the robot mechanism model information 221, the end effector information 222, and the robot operation program 223 input from the user using the input unit 23, and stores them in the storage unit 22.
(20) The measurement point generation unit 212 generates a plurality of measurement points representing the posture of the robot 40 within the movable range of the robot 40, which are necessary to calculate the mechanism error parameters of the robot 40, based on the robot mechanism model information 221 and the end effector information 222. The method of generating measurement points is described later.
(21) The measurement point measuring unit 213 measures the actual position of the end effector 42 (hereinafter referred to as measured position) when the robot 40 is in the posture corresponding to each measurement point, based on images captured by the image capturing device 50. The measurement point measuring unit 213 may be omitted, and the measured position may be measured manually.
(22) The parameter identification unit 214 calculates the calculated position of the end effector 42 (hereinafter referred to as the calculated position) when the robot 40 is in the posture corresponding to each measurement point. The parameter identification unit 214 also calculates the position error between the calculated and measured positions corresponding to each measurement point. Furthermore, the parameter identification unit 214 identifies the mechanism error parameter that minimizes the position error corresponding to each measurement point using, for example, a nonlinear least-squares method.
(23) The position error estimation unit 215 analyzes the trajectory information contained in the robot operation program 223 to specify the target position of the end effector 42. Based on the mechanism error parameter information 225, the position error estimation unit 215 estimates the position error between the target position of the end effector 42 and the position when the end effector 42 is actually operated. Furthermore, the position error estimation unit 215 corrects the trajectory information contained in the robot operation program 223 by correcting the target position based on the estimated position error.
(24) The display control unit 216 displays the input/output screen 500 (
(25) The storage unit 22 is realized by a computer memory and storage. The storage unit 22 stores the robot mechanism model information 221, the end effector information 222, and the robot operation program 223 input by the user. The storage unit 22 also stores the measurement point information 224 and the mechanism error parameter information 225 input from the calculation unit 21.
(26) The input unit 23 is realized by a computer input device. The input unit 23 accepts various input operations from the user.
(27) The display unit 24 is realized by a computer display device. The display unit 24 displays, for example, an input/output screen 500 and other screens on which the user makes various inputs and display the identified mechanism error parameters.
(28) The communication unit 25 is realized by a computer communication module. The communication unit 25 connects to the robot controller 30 via the network 31 such as the Internet or a cellular phone communication network to communicate various data.
(29) The robot 40 is an articulated robot. The robot 40 has the end effector 42 at the end of the arm 41. The robot 40 performs predetermined operations and tasks according to control from the robot controller 30.
(30) <Mechanism Error Parameter>
(31) Next section describes the mechanism error parameters of the robot 40. The posture of the robot 40 can be expressed by the following formula (1) indicating the position of each joint.
[Mathematical Formula 1]
P.sub.k,i+1=R.sub..sub.
.sub.i=.sub.i*+.sub.i
.sub.k,i=.sub.k,i*+c.sub.i.sub.k,i+.sub.i+.sub.i(1)
(32) Here, P.sub.k,i+1 indicates the position of the i+1-th joint in the stationary state when the robot 40 is operated to be in the posture corresponding to the measurement point k. R is a known rotation matrix that acts on the i-th link length L (not illustrated) connecting the i-th joint and the i+1-th joint. The link length L can include a link length error L.sub.i with respect to the link length (known design value) L*. The assembly angle (known design value) .sub.i for assembling the i-th link for the i-th joint can include an assembly error .sub.i with respect to the assembly angle *. The joint angle .sub.k,i of the i-th joint corresponding to the measurement point k can include the joint deflection c.sub.i.sub.k,i, the angle offset error Dei, and the backlash .sub.i with respect to the joint angle (known command value) *.
(33) Hereinafter, the link length error L.sub.i, the assembly error .sub.i, the joint deflection c.sub.i.sub.k,i, the angle offset error .sub.i, and the backlash .sub.i are referred to as mechanism error parameters. In addition, the joint deflection c.sub.i.sub.k,i, the angle offset error .sub.i, and the backlash .sub.i are collectively referred to as an angle error.
(34) <About Various Information>
(35)
(36) In the robot mechanism model information 221, the robot 40 is denoted as a Denavit-Hartenberg (DH) model. In the robot mechanism model information 221, the assembly angle , joint angle , a and d representing the link length L, and mass are recorded in association with each joint axis.
(37) In the end effector information 222, the mass and barycentric coordinate of the end effector 42 are recorded.
(38) In the measurement point information 224, the joint angle , the joint torque , the joint deflection c, and the backlash of each joint from the first to the n-th are recorded in association with the ID of the measurement point.
(39) In the mechanism error parameter information 225, a and d representing the link length error L, the assembly error , the angle offset error , the coefficient c of joint deflection c, and the backlash are recorded in association with each joint.
(40) <Operation Program Correction Process by Correction Device 20>
(41)
(42) The operation program correction process is started, for example, in response to user operation of a calculation execution button 505 on the input/output screen 500 (
(43) First, the information acquisition unit 211 acquires the robot mechanism model information 221, the end effector information 222, and the robot operation program 223, which are input by the user using the input unit 23, and stores them in the storage unit 22 (step S1).
(44) Next, the measurement point generation unit 212 executes the measurement point generation process (step S2).
(45)
(46) First, as a first restriction, the measurement point generation unit 212 specifies the inside of the movable region of the robot 40 based on the robot mechanism model information 221, and randomly generates a plurality of candidate points within the movable region (step S11).
(47) Next, the measurement point generation unit 212 specifies the joint angle at each joint with the robot 40 in the posture corresponding to each candidate point. The measurement point generation unit 212 also refers to the robot mechanism model information 221 and the end effector information 222, and calculates the joint torque at rest in that state for each joint using the mass of the arm 41 on the end effector 42 side from that joint and the mass of the end effector, and the distance from that joint to the center of gravity of the arm 41 and the end effector 42 (step S12).
(48) Next, as a second restriction, the measurement point generation unit 212 determines, among the plurality of candidate points, the candidate point for which the joint torque at each joint of the robot 40 is equal to or more than the threshold as a measurement point. Appropriate threshold values should be set for each joint. Then, the measurement point generation unit 212 records the joint angle and the joint torque at each joint in the measurement point information 224 in the storage unit 22 in association with the ID for identifying each measurement point (step S13). This completes the measurement point generation process.
(49) The measurement point generation process can generate measurement points corresponding to postures where joint deflection in the angle error is dominant and the backlash can be ignored.
(50) Now back to
(51) Next, the parameter identification unit 214 executes the mechanism error parameter identification process (step S4).
(52)
[Mathematical Formula 2]
P.sub.k,i+1=R.sub..sub.
.sub.i=.sub.i*+.sub.i
.sub.k,i=.sub.k,i*+c.sub.i.sub.k,i(2)
(53) As described above, at the measurement point, the angle error is dominated by joint deflection. As a result, in the formula (2), compared to the formula (1), the angle offset error Dei and the backlash .sub.i are omitted from the formula representing the joint angle .sub.k,i of the i-th joint corresponding to the measurement point k.
(54) Next, the parameter identification unit 214 calculates the position error between the calculated and measured positions corresponding to each measurement point. In addition, the parameter identification unit 214 identifies the link length error L.sub.i, the assembly error .sub.i, and the angle error (joint deflection c) at which the position error corresponding to each measurement point is minimized using, for example, the nonlinear least squares method (step S23). However, since the joint deflection in the angle error is dominant at each measurement point, the identified angle error can be regarded as the joint deflection c.
(55) Next, the parameter identification unit 214 estimates the coefficient c of joint deflection c, the angle offset error , and the backlash at each joint (step S24).
(56)
(57) First, the parameter identification unit 214 plots the joint torque on the x-axis and the angle error (joint deflection c) on the y-axis for each joint in association with each measurement point, and calculates the coefficient c by estimating two straight lines representing the angle error (joint deflection c), which varies depending on the joint torque . Next, the parameter identification unit 214 calculates the first Y-intercept (angle offset error +backlash ) of the line in the region X>0 and Y>0. The parameter identification unit 214 also calculates the second Y-intercept (backlash ) of the line in the region of X<0 and Y<0. Furthermore, the parameter identification unit 214 calculates the angle offset error by subtracting the absolute value of the second Y-intercept from the value of the first Y-intercept, and calculates the backlash by subtracting the angle offset error from the value of the first Y-intercept. This completes the mechanism error parameter identification process.
(58) Now back to
(59) Next, the position error estimation unit 215 corrects the current robot operation program 223 stored in the storage unit 22 based on the mechanism error parameter information 225 (step S6). This completes the operation program correction process by the correction device 20.
(60) The operation program correction process described above can discriminate and identify the joint deflection c and the backlash as the angle error included in the mechanism error parameters. This improves the accuracy of calibration.
(61) <Display Example of Input/Output Screen 500>
(62) Next,
(63) In the mechanism error parameter display area 501, the identified mechanism error parameters are displayed based on the mechanism error parameter information 225 stored in the storage unit 22. In the mechanism error parameter display area 501, a robot mechanism model representing the robot mechanism is displayed based on the robot mechanism model information 221 stored in the storage unit 22. In the measurement point information display area 502, the joint angle , the joint torque , the joint deflection c, and the backlash corresponding to each measurement point are displayed for each joint based on the measurement point information 224 stored in the storage unit 22.
(64) The robot mechanism model input button 503 is an operation button for the user to instruct the selection and readout of the robot mechanism model information 221. The end effector information input button 504 is an operation button for the user to instruct the selection and readout of the end effector information 222. The calculation execution button 505 is an operation button for the user to instruct the start of the mechanism error parameter identification process.
(65) On the input/output screen 500, the user can select the robot mechanism model information 221 and the end effector information 222 and instruct its readout. The user can also check the identified mechanism error parameters and the generated measurement point information.
(66) <Modification>
(67) Regarding the generation of measurement points by the measurement point generation unit 212, a third restriction may be added to the first and second restrictions described above. That is, as the third restriction, the measurement point generation unit 212 may analyze the robot operation program 223 and determine the candidate points that are close (distance is equal to or less than a predetermined threshold) to the teaching points that the robot 40 will pass by the end of its operation as measurement points. By adding the third restriction, the mechanism error parameter can be identified with higher accuracy.
(68) The present invention is not limited to the above-described embodiments, and various modifications are possible. For example, the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the described configurations. Some of the configurations of one embodiment may be replaced by or added to the configurations of other embodiments.
(69) In addition, each of the above components, functions, processing units, processing means, and others may be realized in hardware, for example, by designing some or all of them in an integrated circuit. In addition, each of the above-described configurations, functions, and the like may be realized in software by a processor interpreting and executing a program that realizes each function. Information such as programs, tables, and files that realize each function can be placed in recording devices such as memory, hard disks, SSDs, or in recording media such as IC cards, SD cards, and DVDs. In addition, control and information lines considered necessary for illustrative purposes are illustrated here, and not all control and information lines on the product are necessarily illustrated. In practice, almost all configurations may be considered connected to each other.