WO2019163116A1 - 補正関数生成装置、ロボット制御システム及びロボットシステム - Google Patents

補正関数生成装置、ロボット制御システム及びロボットシステム Download PDF

Info

Publication number
WO2019163116A1
WO2019163116A1 PCT/JP2018/006894 JP2018006894W WO2019163116A1 WO 2019163116 A1 WO2019163116 A1 WO 2019163116A1 JP 2018006894 W JP2018006894 W JP 2018006894W WO 2019163116 A1 WO2019163116 A1 WO 2019163116A1
Authority
WO
WIPO (PCT)
Prior art keywords
correction function
robot
unit
hand
robot arm
Prior art date
Application number
PCT/JP2018/006894
Other languages
English (en)
French (fr)
Inventor
諒 児島
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to CN201880090017.7A priority Critical patent/CN111819037B/zh
Priority to PCT/JP2018/006894 priority patent/WO2019163116A1/ja
Priority to JP2018554517A priority patent/JP6528913B1/ja
Priority to DE112018007159.6T priority patent/DE112018007159B4/de
Publication of WO2019163116A1 publication Critical patent/WO2019163116A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/404Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control arrangements for compensation, e.g. for backlash, overshoot, tool offset, tool wear, temperature, machine construction errors, load, inertia

Definitions

  • the present invention relates to a correction function generation device that generates a correction function used to control the position of a hand of a robot arm having a joint, a robot control system including the correction function generation device, and a robot system.
  • the present invention has been made to solve the above-described problem, and can generate a correction function for accurately estimating the position of the hand of the robot arm without increasing the number of points to be measured.
  • An object of the present invention is to obtain a correct correction function generator.
  • Another object of the present invention is to obtain a robot control system and a robot system provided with this correction function generation device.
  • a correction function generation device is a correction function generation device that generates a correction function used to control the position of a hand of a robot arm having a joint, and includes temperature information measured at a predetermined position of the robot arm, Based on the angle of the joint when the temperature information is measured, and the information acquisition unit that acquires the measurement position obtained by measuring the position of the hand when the temperature information is measured, the temperature information is obtained based on the angle of the joint.
  • Correction for determining a correction function which is a function using temperature information as a variable, based on the result of comparing the measurement position and the estimated position with the hand position estimation unit that estimates the position of the hand at the time of acquisition and obtains the estimated position And a function determining unit.
  • the correction function generation device of the present invention it is possible to generate a correction function for controlling the position of the hand of the robot arm with high accuracy without increasing the points to be subjected to position measurement. Further, according to the robot control system and the robot system of the present invention, it is possible to control the position of the hand of the robot arm with high accuracy without increasing the points to be subjected to position measurement.
  • FIG. 1 is a diagram illustrating an example of a configuration of a robot system 1a and a robot control system 2a including a correction function generation device 100a according to Embodiment 1 of the present invention.
  • the robot system 1a includes a robot including a robot arm 300a and a robot control system 2a.
  • the robot control system 2a includes a correction function generation device 100a and a robot control device 200a.
  • the illustration of the robot parts other than the robot arm 300a is omitted.
  • the hand position measuring device 3a that measures the three-dimensional position of the hand of the robot arm 300a is connected to the robot system 1a.
  • the hand position measuring device 3a for example, a laser distance sensor, a vision sensor, or the like is used.
  • the hand of the robot arm 300a is the tip of the robot arm 300a and refers to a part that acts on the work target.
  • the hand of the robot arm 300a can be rephrased as the hand of the robot.
  • the robot system 1a in addition to industrial robots, service robots that provide services to humans are conceivable. As the work performed by the industrial robot, parts transportation, assembly, processing, and the like can be considered.
  • the hand of the robot arm 300a may be simply referred to as the hand.
  • the robot arm 300a has one or more joints.
  • the robot arm 300a is equipped with a sensor for detecting the temperature at a predetermined position of the robot arm 300a, a sensor for detecting the joint angle of the robot arm 300a, and the like.
  • FIG. 2 is a diagram showing an example of the configuration of the robot arm 300a according to the first embodiment of the present invention.
  • the robot arm 300a has a configuration in which a first link 311, a second link 312, a third link 313, and a fourth link 314 are connected by a joint.
  • the angle of the joint is controlled by an operation command value output from the robot controller 200a.
  • the robot arm 300 a includes a first temperature sensor 321, a second temperature sensor 322, a third temperature sensor 323, a fourth temperature sensor 324, a fifth temperature sensor 325, and a sixth temperature sensor 326. Are mounted at predetermined positions.
  • the robot arm 300a includes the first link 311, the second link 312, the third link 313, and the fourth link 314 as four links.
  • the robot arm 300a includes a first temperature sensor 321, a second temperature sensor 322, a third temperature sensor 323, a fourth temperature sensor 324, a fifth temperature sensor 325, and a sixth temperature sensor as six temperature sensors.
  • Six temperature sensors 326 are provided.
  • Each of the four links is a part obtained by dividing the robot arm 300a.
  • each part obtained by dividing the robot arm 300a is set to be arranged in a direction connecting both ends of the robot arm 300a when the robot arm 300a is extended linearly.
  • Each part obtained by dividing the robot arm 300a is set so as not to straddle the joint. In other words, each part obtained by dividing the robot arm 300a is set so as not to include a joint inside each part even though there is a joint at the end of each part.
  • a sensor for detecting the joint angle and the like are mounted on the robot arm 300a, but the illustration is omitted.
  • the angle of the joint of the robot arm 300a represents the angle between the links connected to each other, and can be detected from the rotation angle of the motor that drives the joint.
  • the configuration of the robot arm 300a illustrated in FIG. 3 is an example, and the number of links, the number of temperature sensors, the arrangement of the temperature sensors, and the like are not limited to those illustrated in FIG.
  • the temperature sensor may be installed at an arbitrary position, or a temperature sensor incorporated in an encoder physically connected to a servo motor that drives a joint may be used.
  • the length of the first link 311 is L1.
  • the length of the second link 312 is L2.
  • the length of the third link 313 is L3.
  • the length of the fourth link 314 is L4.
  • the link length is the length of each link in the direction connecting both ends of the robot arm 300a when the robot arm 300a is linearly extended.
  • the length of the link is represented by the distance between the joints at both ends of the link.
  • the position of the joint can be defined as the position of the rotation axis of the joint.
  • the hand of the robot arm 300 a is the tip of the fourth link 314. That is, the hand of the robot arm 300a is the end of the fourth link 314 that is not connected to the third link.
  • FIG. 3 is a diagram illustrating an example of a specific hardware configuration for realizing the robot control system 2a including the correction function generation device 100a according to the first embodiment of the present invention. That is, FIG. 3 is a diagram illustrating an example of a specific hardware configuration for realizing the correction function generation device 100a and the robot control device 200a.
  • the robot control system 2a is realized by the processor 401 executing a program stored in the memory 402.
  • the processor 401 and the memory 402 are connected by a data bus 403.
  • the memory 402 includes a volatile memory and a non-volatile memory, and temporary information is stored in the volatile memory. Note that the robot control system 2a may be integrated as shown in FIG.
  • the correction function generation device 100a and the robot control device 200a may be separated and each may have the configuration shown in FIG.
  • the correction function generation device 100a and the robot control device 200a may be connected via a network or the like.
  • the robot control system 2a can be realized with the same hardware configuration.
  • FIG. 4 is a diagram illustrating an example of an operation flow of the robot control system 2a including the correction function generation device 100a according to the first embodiment of the present invention. That is, FIG. 4 is a diagram illustrating an example of the flow of operations of the correction function generation device 100a and the robot control device 200a.
  • the robot control device 200a acquires the measurement result of the hand position measurement device 3a and the detection value of the sensor attached to the robot arm 300a. More specifically, in step S001a, the robot control device 200a acquires temperature information from the robot arm 300a.
  • the temperature information is information on the temperature measured at a predetermined position of the robot arm 300a, and is measured by the six temperature sensors 321 to 326 mounted on the robot arm 300a.
  • step S001a the robot control device 200a acquires the joint angle of the robot arm 300a from the robot arm 300a.
  • the angle of the joint of the robot arm 300a is measured by a sensor mounted on the robot arm.
  • the robot control device 200a obtains the joint angle of the robot arm 300a when the temperature information is measured by the temperature sensors 321 to 326.
  • the robot control apparatus 200a acquires the measurement position at the time when the temperature information is measured from the hand position measurement apparatus 3a.
  • the measurement position is the position of the hand of the robot arm 300a obtained by measuring with the hand position measurement device 3a.
  • the robot control device 200a obtains temperature information, joint angles, and measurement positions at a plurality of times. It is more likely that a more accurate correction effect can be obtained by generating a correction function using temperature information, joint angles, and measurement positions at a plurality of times.
  • the robot control device 200a acquires temperature information, joint angles, and measurement positions at a plurality of times.
  • the robot control device 200a controls the robot arm 300a and the hand position measurement device 3a so that the acquired temperature information, joint angle, and measurement position become information measured in synchronization with the measurement time.
  • the robot control device 200a can acquire the joint angle at the time when the temperature information is measured and the measurement position at the time when the temperature information is measured.
  • the time for measuring temperature information, the time for measuring the angle of the joint, and the time for measuring the hand position need not be exactly the same, and differ within a range that does not affect the correction accuracy required in practice. May be.
  • the temperature information, the joint angle, and the measurement position may be measured at an arbitrary time, but are desirably measured in a plurality of states in which the degree of elongation of the robot arm 300a due to heat is different from each other.
  • the robot control device 200a executes an operation that applies a high load to the robot arm 300a as a warm-up operation, and acquires temperature information, joint angles, and measurement positions in the process.
  • the operation to be executed by the robot arm 300a in the actual work is determined in advance as one pattern, the operation may be executed as a warm-up operation and temperature information may be measured in the process.
  • the correction function generation device can generate a correction function that is optimal for the elongation specific to the operation.
  • the robot control device 200a also controls the measurement posture of the robot arm 300a.
  • the measurement posture means the posture of the robot arm 300a when temperature information is measured. That is, the robot control device 200a also controls the joint angle of the robot arm 300a when temperature information is measured.
  • the measurement posture of the robot arm 300a is arbitrary. For example, it is conceivable to select a posture in which the hand position measurement device 3a can be easily installed as the measurement posture of the robot arm 300a.
  • the measurement posture of the robot arm 300a may be a predetermined posture that is determined in advance, or may be a posture that changes every time temperature information is measured.
  • the robot control device 200a controls the robot arm 300a so that the joint angle is stored in advance.
  • the robot control device 200a does not necessarily need to acquire the joint angle from the robot arm 300a, and may read the joint angle stored in advance in the robot control device 200a. Even in this case, the robot control apparatus 200a acquires the angle of the joint from the internal memory.
  • the robot control system 2a of the present embodiment is configured to acquire the joint angle from the robot arm 300a.
  • the hand position measuring device 3a measures the absolute position of the hand. The above is the operation of the robot control apparatus 200a in step S001a.
  • step S100a the correction function generation device 100a acquires temperature information, joint angles, and measurement positions from the robot control device 200a.
  • the correction function generation device 100a acquires temperature information, joint angles, and measurement positions at a plurality of times.
  • the correction function generation device 100a generates a correction function used for controlling the position of the hand based on the information acquired from the robot control device 200a.
  • the generated correction function is output to the robot controller 200a.
  • the correction function generation device 100a is configured to acquire temperature information, joint angles, and measurement positions via the robot control device 200a.
  • the present invention is not limited to this configuration. .
  • step S002 the robot control apparatus 200a acquires the correction function generated by the correction function generation apparatus 100a.
  • step S200 the robot control device 200a generates an operation command value for controlling the operation of the robot arm 300a based on the acquired correction function.
  • the generated operation command value is output to the robot arm 300a.
  • the robot arm 300a operates according to the operation command value.
  • the robot control device 200a can move the hand to a predetermined position with high accuracy. That is, the positioning accuracy of the hand by the robot control device 200a is improved.
  • step S003 the robot control device 200a determines whether or not to end the operation of the robot arm 300a.
  • the robot control device 200a ends the operation when a predetermined work is completed. If it is determined in step S003 that the operation is to be ended, the robot control system 2a ends the operation. On the other hand, if it is determined in step S003 that the operation is not yet finished, the operation of the robot control system 2a returns to step S200, and the generation of the operation command value is repeated.
  • the above is the operation flow of the robot control system 2a. Below, operation
  • FIG. 5 is a diagram showing an example of the configuration of the correction function generation device 100a according to Embodiment 1 of the present invention.
  • the correction function generation device 100a includes an information acquisition unit 110a, a hand position estimation unit 120a, and a correction function determination unit 130a.
  • the hand position estimation unit 120a includes a candidate function generation unit 121a and a hand position calculation unit 122a.
  • the hand position calculation unit 122a includes a link length calculation unit 123a and a hand position conversion unit 124a.
  • the correction function determination unit 130a includes a hand position comparison unit 131a and a correction function evaluation unit 132a.
  • FIG. 6 is a diagram showing an example of the operation flow of the correction function generation device 100a according to Embodiment 1 of the present invention.
  • FIG. 6 shows a flow of operation of the correction function generation device 100a in step S100a of FIG.
  • the operation of the correction function generation device 100a will be described with reference to FIGS.
  • the information acquisition unit 110a acquires temperature information, a joint angle, and a measurement position from the robot control device 200a.
  • the information acquisition unit 110a acquires the reference link length from the robot control device 200a.
  • the reference link length is a standard length of the four links 311 to 314 of the robot arm 300a and is stored in advance in the robot control device 200a.
  • the reference link length may be a design value of the robot arm 300a or a value measured in advance under a predetermined condition.
  • the information acquisition part 110a is set as the structure which acquires reference
  • the correction function generation device 100a may store the reference link length in advance.
  • the hand position estimation unit 120a acquires the reference link length, the temperature information, and the joint angle from the information acquisition unit 110a, and the robot at the time when the temperature information is measured based on the acquired information.
  • the hand position of the arm 300a is estimated to obtain the estimated position.
  • the hand position means the position of the hand.
  • the estimated position is the hand position estimated by the hand position estimating unit 120a.
  • the temperature information and the joint angle are information measured at a plurality of times
  • an estimated position is also obtained for each of the plurality of times at which the temperature information is measured. For example, when N is an integer and temperature information and joint angles are measured N times, N estimated positions are obtained.
  • step S130a the correction function determination unit 130a compares the measurement position acquired from the information acquisition unit 110a with the estimated position acquired from the hand position estimation unit 120a, and determines a correction function based on the comparison result. To do. As will be described later, depending on the comparison result between the measurement position and the estimated position, the process returns to step S120a. That is, when the comparison result between the measurement position and the estimated position does not satisfy the predetermined condition, the correction function determination unit 130a requests the hand position estimation unit 120a to re-execute the hand position estimation.
  • the measurement position is information measured at each of a plurality of times when the temperature information is measured. Moreover, an estimated position is calculated
  • the correction function determination unit 130a compares the corresponding measurement position and estimated position at each of a plurality of times when the temperature information is measured.
  • N is an integer and temperature information is measured N times, N measurement positions are acquired, and N estimated positions are obtained. Therefore, the correction function determination unit 130a compares N sets of measured positions and estimated positions.
  • the correction function determination unit 130a may compare the average value of the measurement positions with the average value of the estimated positions.
  • the correction function determined by the correction function determination unit 130a is a function having temperature information as a variable.
  • the correction function is a function for correcting the lengths of the four links 311 to 314 of the robot arm 300a with the temperature information. The above is the operation flow of the correction function generation device 100a in step S100a of FIG.
  • FIG. 7 is a diagram showing an example of the flow of operations of the hand position estimation unit 120a and the correction function determination unit 130a in the correction function generation device 100a according to Embodiment 1 of the present invention.
  • Steps S121a to S124a in FIG. 7 are operations of the hand position estimation unit 120a in step S120a in FIG.
  • steps S131a to S134a in FIG. 7 are operations of the correction function determination unit 130a in step S130a in FIG.
  • the candidate function generation unit 121a generates a candidate function that is a candidate for the correction function.
  • the candidate function is a function having temperature information as a variable, like the correction function, and the lengths of the four links 311 to 314 of the robot arm 300a are based on the temperature information. Function to correct.
  • the format such as the order is not limited.
  • the candidate function generation unit 121a repeatedly generates candidate functions until a comparison result in a correction function determination unit 130a described later satisfies a predetermined condition.
  • the following equation (1) is an example of a candidate function generated by the candidate function generation unit 121a.
  • Lb1 n is the length of the first link 311 after correction at time n.
  • Lb2 n is the length of the corrected second link 312 at time n.
  • Lb3 n is the length of the corrected third link 313 at time n.
  • Lb4 n is the length of the corrected fourth link 314 at time n.
  • the time n represents one of a plurality of times when the temperature information is measured. For example, when temperature information is measured N times, where N is an integer, time n represents one of N times when temperature information was measured.
  • L1 is the reference link length of the first link 311.
  • L2 is the reference link length of the second link 312.
  • L3 is the reference link length of the third link 313.
  • L4 is the reference link length of the fourth link 314.
  • T1 n is temperature information at the time n measured by the first temperature sensor 321.
  • T2 n is temperature information at time n measured by the second temperature sensor 322.
  • T3 n is temperature information at time n measured by the third temperature sensor 323.
  • T4 n is temperature information at time n measured by the fourth temperature sensor 324.
  • T5 n is temperature information at time n measured by the fifth temperature sensor 325.
  • T6 n is temperature information at time n measured by the sixth temperature sensor 326.
  • Equation (1) k i, j is a coefficient for correction.
  • i is any one of 1 to 4
  • j is any one of a to g.
  • the candidate function shown in Formula (1) can also be expressed in a matrix format as shown in Formula (2) below.
  • K1 is a 4 ⁇ 7 matrix having coefficients k i, j as elements.
  • the candidate function generation unit 121a changes the value of the coefficient k i, j or changes the format of the candidate function each time the process of step S121a is performed.
  • the format of the candidate function is not limited to that shown in Formula (1) or Formula (2).
  • the candidate function may be an expression in which a time constant is provided in the temperature information. In such a candidate function, correction reflecting the history of changes in temperature information is possible, and it can be expected that the accuracy of correction is improved. Equation (3) below is an example of a candidate function in which a time constant is provided for temperature information.
  • time n ⁇ 1 represents a time before time n.
  • K2 is a matrix having coefficients as elements.
  • the candidate function may have an expression other than the primary expression.
  • Equation (4) is an example of a candidate function of a quadratic equation.
  • K3 is a matrix having coefficients as elements.
  • the candidate function may be a higher order expression.
  • step S123a and step S124a the hand position calculation unit 122a obtains an estimated position based on the temperature information, the joint angle, and the candidate function.
  • the link length calculation unit 123a inputs the temperature information and the reference link length to the candidate function, thereby correcting the link length to obtain the corrected link length at time n.
  • the link length is the length of each of the four links 311 to 314 of the robot arm 300a.
  • step S124a the hand position conversion unit 124a estimates the hand position at time n based on the joint angle and the corrected link length obtained by the link length calculation unit 123a. That is, in step S124a, the hand position converting unit 124a obtains an estimated position Pe n at time n.
  • the estimated position can be obtained by a geometric calculation based on the corrected link length and the joint angle.
  • the correction function generation device 100a of the present embodiment corrects the lengths of the four links of the robot arm 300a using the correction function, and estimates the position of the hand based on the corrected lengths. Therefore, each of the four links of the robot arm 300a can be considered as a constituent unit of the robot arm 300a for estimating the position of the hand. At this time, the correction function can be considered as a function for correcting the length of the constituent unit of the robot arm 300a for estimating the position of the hand. As described above, each of the four links of the robot arm 300a is also a part obtained by dividing the robot arm 300a. In this way, the correction function is a function for correcting the length of the part obtained by dividing the robot arm 300a. The above is the operation of the hand position calculation unit 122a in step S123a and step S124a.
  • the hand position comparison unit 131a compares the estimated position obtained by the hand position estimation unit 120a with the measurement position acquired by the information acquisition unit 110a. That is, in step S131a, the hand position comparison unit 131a compares the estimated hand position with the measured hand position. For example, in the correction function generation device 100a of the present embodiment, the hand position comparison unit 131a compares the measurement position with the estimated position by calculating the distance between the measurement position and the estimated position. The estimated position at time n and Pe n, when the Pm n the measured measuring positions at time n, the hand position comparison unit 131a obtains the distance D n at time n from the estimated position Pe n and the measured position Pm n . The distance between the measurement position and the estimated position represents an error of the estimated position with respect to the measured position.
  • the hand position comparison unit 131a calculates the distance D n between the measurement position Pm n and the estimated position Pe n. In this case, a plurality of distances are obtained as comparison results. For example, when N is an integer and temperature information is measured N times, N measurement positions are acquired and N estimated positions are obtained, so the hand position comparison unit 131a calculates N distances. To do. On the other hand, the hand position comparison unit 131a may calculate the distance between the mean of the mean and the estimated position Pe n measurement position Pm n. In this case, one distance is obtained as a comparison result.
  • step S132a the correction function evaluation unit 132a determines whether the comparison result satisfies a predetermined condition.
  • the correction function evaluation unit 132a determines, for example, whether or not the distance between the measurement position and the estimated position is shorter than a predetermined distance.
  • the correction function evaluation unit 132a determines that the comparison result satisfies the predetermined condition when the distance between the measurement position and the estimated position is shorter than the predetermined distance.
  • the correction function evaluation unit 132a may determine whether or not the maximum value is shorter than a predetermined distance, and the average value is It may be determined whether or not the distance is shorter than a predetermined distance.
  • step S133 the correction function evaluation unit 132a determines the latest candidate function as the correction function and outputs the correction function to the robot control device 200a.
  • the latest candidate function is a candidate function used to obtain an estimated position that satisfies a predetermined condition. That is, the correction function evaluation unit 132a outputs the latest candidate function as a correction function corresponding to an estimated position that satisfies a predetermined condition.
  • step S134a the correction function evaluation unit 132a requests the candidate function generation unit 121a to regenerate the candidate function. Thereafter, the operation of the correction function generation device 100a returns to S121a.
  • the candidate function generation unit 121a When requested to regenerate the candidate function, the candidate function generation unit 121a changes the format or coefficient of the candidate function and generates a new candidate function in step S121a. At this time, the candidate function generation unit 121a determines whether to change the coefficient of the candidate function or the format of the candidate function according to the comparison result between the measurement position and the estimated position in the correction function determination unit 130a. Also good. For example, when a plurality of distances between the measurement position and the estimated position are obtained, when the variation in distance is large, the format of the candidate function is changed, and when the variation in distance is small, the coefficient of the candidate function is changed. It can be changed.
  • the candidate function generation unit 121a can generate a candidate function having an arbitrary format and an arbitrary coefficient.
  • the candidate function generation unit 121a can use, as an initial candidate function, a correction function previously obtained with another product or the like. In this case, there is a possibility that the distance between the measurement position and the estimated position converges earlier, and the correction function is obtained earlier.
  • the operation after step S123a is as described above. The above is the operation of the robot control system 2a in step S100a of FIG.
  • FIG. 8 is a diagram showing an example of the configuration of the robot control apparatus 200a according to the first embodiment of the present invention.
  • the configuration of the robot control device 200a is shown together with the correction function generation device 100a, the hand position measurement device 3a, and the robot arm 300a.
  • the robot control apparatus 200a according to the present embodiment includes a measurement control unit 201a, a storage unit 202, a correction function acquisition unit 210, a link length correction unit 220a, a target position setting unit 230, and a command value generation unit 240a. Prepare.
  • the measurement control unit 201a controls the hand position measurement device 3a and the robot arm 300a, and acquires temperature information, joint angles, and measurement positions. This operation is executed in step S001a of FIG. 4 as described above. Further, the measurement control unit 201a also acquires temperature information from the robot arm 300a in the operation of the robot control device 200a described later.
  • the storage unit 202 stores a reference link length. Further, the correction function acquisition unit 210 acquires a correction function generated by the correction function generation device 100a. This operation is executed in step S002 of FIG. 4 as described above.
  • FIG. 9 is a diagram showing an example of an operation flow of the robot control apparatus 200a according to the first embodiment of the present invention.
  • FIG. 9 shows an operation flow of the robot control apparatus 200a in step S200 of FIG.
  • the operation of the robot control apparatus 200a in steps S001a, S002, and S003 in FIG. 4 is as described above.
  • the operation of the robot control apparatus 200a will be described with reference to FIGS.
  • step S201 the measurement control unit 201a acquires the latest temperature information from the robot arm 300a.
  • step S ⁇ b> 220 the link length correction unit 220 a adds the latest temperature information acquired by the measurement control unit 201 a to the correction function acquired by the correction function acquisition unit 210 and the reference link stored in the storage unit 202.
  • the length is input, the link lengths of the four links 311 to 314 of the robot arm 300a are corrected, and the corrected link length is obtained.
  • the target position setting unit 230 sets a target position to which the hand of the robot arm 300a is moved.
  • the target position includes the orientation of the target hand.
  • the target position setting unit 230 reads a target position stored in advance.
  • the target position setting unit 230 calculates a joint angle from a motion command value stored in advance, and calculates a target position based on the calculated joint angle and the reference link length.
  • step S240 the command value generation unit 240a calculates, based on the corrected link length, the joint angle of the robot arm 300a for the hand to reach the target position as the target angle. Further, in step S240, the command value generation unit 240a generates an operation command value so that the joint angle of the robot arm 300a becomes the target angle, and outputs the operation command value to the robot arm 300a.
  • the above is the operation of the robot control system 2a in step S200 of FIG. Note that the flow of operation of the robot control device 200a shown in FIG. 9 is an example, and the order of some operations can be changed.
  • FIG. 10 is a diagram illustrating another example of the operation flow of the robot control system 2a including the correction function generation device 100a according to the first embodiment of the present invention. Compared to the operation flow shown in FIG. 4, the operation flow shown in FIG. 10 is different in that it includes step S004. Only the differences will be described below.
  • step S200 the operation of the robot control system 2a proceeds to step S004.
  • step S004 the robot controller 200a determines whether the correction function needs to be updated. If it is determined that the update is necessary, the operation of the robot control system 2a returns to step S001a, the temperature information, the joint angle, and the measurement position are acquired again, and the correction function is again executed based on the acquired information. Generated. On the other hand, if it is determined that the update is unnecessary, the operation of the robot control system 2a proceeds to step S003.
  • step S004 the robot controller 200a determines whether or not the correction function needs to be updated according to a predetermined condition.
  • predetermined conditions when a predetermined time is reached, temperature information acquired from the robot arm 300a has changed significantly, an instruction to update a correction function is received from the outside, or the robot arm 300a performs The case where a failure occurs in the work can be considered.
  • the robot control system 2a can update the correction function as necessary.
  • the robot control system 2a can correct the link length with higher accuracy, and can control the position of the hand of the robot arm 300a with higher accuracy. Therefore, the robot control system 2a can cause the robot arm 300a to perform an operation with higher accuracy.
  • the correction function generation device 100a, the robot control system 2a, and the robot system 1a according to the present embodiment operate as described above.
  • the correction function generation device 100a of the present embodiment can generate a correction function if the position of the hand of the robot arm 300a is measured. Therefore, according to the correction function generation device 100a of the present embodiment, it is possible to generate a correction function for controlling the position of the hand of the robot arm 300a with high accuracy without increasing the points to be subjected to position measurement. Become. Further, according to the robot control system 2a and the robot system 1a of the present embodiment, it is possible to control the position of the hand of the robot arm 300a with high accuracy without increasing the points to be subjected to position measurement. .
  • FIG. 11 is a diagram illustrating an example of a configuration of a robot system 1b and a robot control system 2b including the correction function generation device 100b according to the second embodiment of the present invention.
  • the robot system 1b includes a robot including a robot arm 300a and a robot control system 2b.
  • the robot control system 2b includes a correction function generation device 100b and a robot control device 200b.
  • a hand position measuring device 3b is connected to the robot system 1b. In the robot system 1b shown in FIG.
  • the configuration other than the robot control system 2b and the hand position measurement device 3b is the same as that of the robot system 1a in the first embodiment shown in FIG.
  • differences from the correction function generation device 100a, the robot system 1a, and the robot control system 2a in the first embodiment will be described.
  • the hand position measuring device 3b measures the absolute position of the hand of the robot arm 300a.
  • the hand position measuring device 3b shown in FIG. 11 measures the position of the hand of the robot arm 300a as a displacement from the reference position.
  • the hand position measurement device 3b need not be able to measure the absolute position of the hand.
  • the hand position measuring device 3b only needs to be able to measure the displacement from the reference position with the position of the hand at a predetermined reference time as the reference position.
  • the displacement from the reference position can be restated as a relative position from the reference position. Therefore, the correction function generation device 100a according to the first embodiment generates a correction function based on the absolute position of the hand, whereas the correction function generation device 100b according to the present embodiment is based on the relative position of the hand. Generate a correction function.
  • the hand position measurement device 3b can be realized by using, for example, a laser distance sensor that measures the position of the marker attached to the hand from three directions.
  • the marker has a cubic block shape and is made of a material that hardly changes in shape due to a change in ambient temperature.
  • the hand position measurement device 3b may be realized using a vision sensor or a contact-type position sensor.
  • the hand position measuring device 3b only needs to be able to measure the relative displacement from the reference position. Therefore, in the hand position measuring device 3b, the installation work of the measuring device is simplified as compared with the case of measuring the absolute position. In order to measure the absolute position of the hand, it is necessary to acquire the positional relationship between the robot and the measuring device in advance.
  • the hand position at an arbitrarily selected reference time is measured as a reference position, and the hand position measured at each time point may be compared with the reference position. It is not necessary to acquire the positional relationship with the measuring device.
  • FIG. 12 is a diagram illustrating an example of an operation flow of the robot control system 2b including the correction function generation device 100b according to the second embodiment of the present invention.
  • the operation flow shown in FIG. 12 is different from that shown in FIG. 4 in the following three points.
  • the flow of operation shown in FIG. 12 includes the operation of step S005.
  • the operation in step S001b in FIG. 12 is partially different from the operation in step S001a in FIG.
  • the operation in step S100b in FIG. 12 is partially different from the operation in step S100a in FIG.
  • the flow of operation shown in FIG. 12 is illustrated as a change in the flow of operation shown in FIG. 4, but the flow of operation shown in FIG. 10 may be changed.
  • the flow of the operation of the robot control system 2b according to the present embodiment will be described with a focus on differences in operation compared to the first embodiment.
  • the robot control apparatus 200b acquires temperature information and joint angles at the reference time from the robot arm 300a.
  • the reference time may be a predetermined time, or may be a time when the temperature information indicates a predetermined temperature. If the reference time is selected from the time when the temperature indicated by the temperature information is stable, it can be expected to obtain a correction function that can estimate the hand position with higher accuracy. For example, it is considered that the temperature indicated by the temperature information is stable if the robot arm 300a is left for a while under a constant temperature environmental condition.
  • the robot control device 200b causes the hand position measurement device 3b to store the position of the hand at the reference time as the reference position.
  • the robot control device 200b controls the robot arm 300a so that the robot arm 300a assumes a predetermined measurement posture at the reference time.
  • step S001b the robot control device 200b acquires temperature information and joint angles at the measurement time from the robot arm 300a.
  • the measurement time is different from the reference time, and is preferably a plurality of times.
  • the robot control apparatus 200b acquires a measurement displacement at the measurement time from the hand position measurement apparatus 3b as a measurement position.
  • the measured displacement is a displacement from the reference position of the hand position measured by the hand position measurement device 3b.
  • the robot control device 200b controls the robot arm 300a so that the measurement posture of the robot arm 300a at the measurement time is the same as the measurement posture at the reference time.
  • step S100b the correction function generation device 100b acquires temperature information, joint angles, and measured displacement from the robot control device 200b.
  • step S100b the correction function generation device 100b generates a correction function based on information acquired from the robot control device 200b.
  • the operation of the robot control system 2b after step S002 is the same as the operation of the robot control system 2a in the first embodiment. The above is the operation flow of the robot control system 2b. Hereinafter, the operation of the robot control system 2b in step S100b will be described in more detail.
  • the correction function generation device 100b operates.
  • FIG. 13 is a diagram illustrating an example of the configuration of the correction function generation device 100b according to the second embodiment of the present invention.
  • the correction function generation device 100b includes an information acquisition unit 110b, a hand position estimation unit 120b, and a correction function determination unit 130b.
  • the hand position estimation unit 120b includes a candidate function generation unit 121a and a hand position calculation unit 122b.
  • the hand position calculation unit 122b includes a link length calculation unit 123b and a hand position conversion unit 124b.
  • the correction function determination unit 130b includes a hand position comparison unit 131b and a correction function evaluation unit 132a. 13, the same components as those shown in FIG. 5 are denoted by the same reference numerals, and detailed description thereof will be omitted.
  • FIG. 14 is a diagram illustrating an example of an operation flow of the correction function generation device 100b according to the second embodiment of the present invention.
  • FIG. 14 shows an operation flow of the correction function generation device 100b in step S100b of FIG.
  • the operation of the correction function generation device 100b will be described using FIG. 13 and FIG.
  • the information acquisition unit 110b acquires temperature information, a joint angle, and a measurement position from the robot control device 200b.
  • the information acquisition unit 110b acquires information at the reference time and information at each measurement time.
  • the information acquisition unit 110b acquires the reference link length from the robot control device 200b.
  • the hand position estimation unit 120b acquires the reference link length, the temperature information, and the joint angle from the information acquisition unit 110b, and the robot at the time when the temperature information is measured based on the acquired information.
  • the hand position of the arm 300a is estimated to obtain the estimated position.
  • the hand position estimation unit 120b obtains an estimated position as a displacement from the reference position.
  • the hand position estimation unit 120b obtains an estimated position at the reference time based on the temperature information at the reference time and the joint angle.
  • the hand position estimation unit 120b obtains an estimated position at the measurement time based on the temperature information at the measurement time and the joint angle.
  • the hand position estimation unit 120b obtains a displacement between the estimated position at the reference time and the estimated position at the measurement time, and outputs it as the final estimated position.
  • step S130b the correction function determination unit 130b compares the measured displacement acquired from the information acquisition unit 110b with the estimated position obtained as the displacement from the reference position in the hand position estimation unit 120b, and the comparison result A correction function is determined based on As in FIG. 6, depending on the comparison result between the measured displacement and the estimated position, the process returns to step S120b.
  • the above is the operation flow of the correction function generation device 100b in step S100b of FIG. Next, processing for obtaining the estimated position by the hand position estimation unit 120b and processing for determining the correction function by the correction function determination unit 130b will be further described.
  • FIG. 15 is a diagram illustrating an example of a flow of operations of the hand position estimation unit 120b and the correction function determination unit 130b in the correction function generation device 100b according to Embodiment 2 of the present invention.
  • Steps S121a to S124b in FIG. 15 are the operations of the hand position estimation unit 120b in step S120b in FIG.
  • Step S131b to Step S134a in FIG. 15 are operations of the correction function determination unit 130b in Step S130b in FIG.
  • step S121a the candidate function generation unit 121a generates a candidate function that is a candidate for the correction function. This operation is the same as the operation in step S121a of FIG.
  • step S123b the link length calculation unit 123b obtains the link length at the reference time by inputting the temperature information and the reference link length at the reference time into the candidate function.
  • step S123b the link length calculation unit 123b obtains the link length at each measurement time by inputting the temperature information and the reference link length at each measurement time to the candidate function.
  • step S124b the hand position conversion unit 124b estimates the hand position at the reference time based on the joint angle at the reference time and the link length at the reference time.
  • step S124b the hand position conversion unit 124b estimates the hand position at each measurement time based on the joint angle at each measurement time and the link length at each measurement time. Further, in step S124b, the hand position conversion unit 124b obtains a displacement between the hand position at the reference time and the hand position at each of the measurement times and sets it as a final estimated position at each of the measurement times.
  • the above is the operation of the hand position calculation unit 122b in step S123b and step S124b.
  • step S131b the hand position comparison unit 131b compares the estimated position obtained as the displacement by the hand position estimation unit 120b with the measured displacement acquired by the information acquisition unit 110b. For example, the hand position comparison unit 131b compares the estimated position and the measured displacement by calculating a difference between the estimated position and the measured displacement.
  • step S132a the correction function evaluation unit 132a determines whether the comparison result satisfies a predetermined condition. In step S132a, the correction function evaluation unit 132a determines, for example, whether or not the difference between the estimated position and the measured displacement is smaller than a predetermined value.
  • the correction function evaluation unit 132a determines that the comparison result satisfies the predetermined condition when the difference between the estimated position and the measured displacement is smaller than the predetermined value.
  • the operation of the correction function evaluation unit 132a in step S133 and step S134a is the same as the operation in step S133 and step S134a in FIG.
  • the above is the operation of the robot control system 2b in step S100b of FIG.
  • the operations in step S002, step S200, and step S003 in FIG. 12 are the same as the operations in step S002, step S200, and step S003 in FIG.
  • the correction function generation device 100b, the robot control system 2b, and the robot system 1b according to the present embodiment operate as described above. According to the correction function generation device 100b, the robot control system 2b, and the robot system 1b of the present embodiment, the position of the hand of the robot arm 300a is controlled with high accuracy using the hand position measuring device 3b that can be easily installed. It becomes possible to do. Further, the correction function generation device 100b, the robot control system 2b, and the robot system 1b of the present embodiment also have the effects described in the first embodiment.
  • Embodiment 3 The correction function generation device 100a according to the first embodiment and the correction function generation device 100b according to the second embodiment generate a correction function based on temperature information measured by the temperature sensors 321 to 326 mounted on the robot arm 300a. It was a configuration. On the other hand, the correction function generation device 100c according to the present embodiment also generates a correction function using the ambient temperature around the robot arm 300a.
  • FIG. 16 is a diagram illustrating an example of the configuration of the robot system 1c and the robot control system 2c including the correction function generation device 100c according to the third embodiment of the present invention.
  • the robot system 1c includes a robot including a robot arm 300a and a robot control system 2c.
  • the robot control system 2c includes a correction function generation device 100c and a robot control device 200c.
  • a hand position measuring device 3a and an environmental temperature measuring device 4 are connected to the robot system 1c.
  • the configuration other than the robot control system 2c is the same as that of the robot system 1a in the first embodiment shown in FIG.
  • FIG. 17 is a diagram illustrating an example of the configuration of the correction function generation device 100c according to the third embodiment of the present invention.
  • the correction function generation device 100c includes an information acquisition unit 110c, a hand position estimation unit 120c, and a correction function determination unit 130a.
  • the hand position estimation unit 120c includes a candidate function generation unit 121c and a hand position calculation unit 122c.
  • the hand position calculation unit 122c includes a link length calculation unit 123c and a hand position conversion unit 124a.
  • the correction function determination unit 130a includes a hand position comparison unit 131a and a correction function evaluation unit 132a. 17, the same components as those shown in FIG. 5 are denoted by the same reference numerals, and detailed description thereof will be omitted.
  • the information acquisition unit 110c acquires the temperature information, the joint angle, the measurement position, and the reference link length from the robot control device 200c, and also acquires the environmental temperature measured by the environmental temperature measurement device 4 from the robot control device 200c.
  • the acquired environmental temperature is the temperature of the surrounding environment of the robot arm 300a when the temperature information is measured.
  • the candidate function generation unit 121c generates a candidate function.
  • the candidate function generated in the correction function generation device 100c of the present embodiment is a function having temperature information and environmental temperature as variables.
  • the following equation (5) is an example of a candidate function generated by the candidate function generation unit 121c.
  • T0 n is the environmental temperature at time n measured by the environmental temperature measurement device 4.
  • k i, j is a coefficient for correction.
  • i is any one of 1 to 4
  • j is any one of a to h.
  • K4 is a 4 ⁇ 8 matrix having coefficients k i, j as elements.
  • Other symbols in the formula (5) are the same as those in the formula (2).
  • the link length calculation unit 123c corrects the link length and obtains the link length at time n by inputting the temperature information, the reference link length, and the environmental temperature into the candidate function generated by the candidate function generation unit 121c. Operations of other blocks in the correction function generation device 100c are the same as those in the first embodiment.
  • FIG. 18 is a diagram showing an example of the configuration of the robot control apparatus 200c according to the third embodiment of the present invention.
  • the configuration of the robot control device 200c is shown together with the correction function generation device 100c, the hand position measurement device 3a, the environmental temperature measurement device 4, and the robot arm 300a.
  • the robot control apparatus 200c of the present embodiment includes a measurement control unit 201c, a storage unit 202, a correction function acquisition unit 210, a link length correction unit 220c, a target position setting unit 230, and a command value generation unit 240a. Prepare.
  • the configuration of the robot control device 200c shown in FIG. 18 is different from the configuration of the robot control device 200a shown in FIG. 8 only in the measurement control unit 201c and the link length correction unit 220c.
  • the measurement control unit 201c controls the environmental temperature measurement device 4 in addition to the hand position measurement device 3a and the robot arm 300a, and acquires temperature information, joint angles, measurement positions, and environmental temperature.
  • the link length correction unit 220c corrects the link length by using the correction function having the temperature information generated by the correction function generation device and the environmental temperature as variables, and obtains the link length corresponding to the latest measured value. .
  • the operation of other blocks of the robot control device 200c is the same as the operation described in the first embodiment.
  • the correction function generation device 100c, the robot control system 2c, and the robot system 1c of the present embodiment operate as described above. According to the correction function generation device 100c, the robot control system 2c, and the robot system 1c of the present embodiment, the influence of the surrounding environment of the robot arm 300a is reflected, and the position of the hand of the robot arm 300a is controlled with higher accuracy. Is possible. When the load of the robot arm 300a is small, such as when the operation of the robot arm 300a is slow, the temperature change caused by the environmental temperature is more dominant than the temperature change caused by the operation of the robot arm 300a. The correction function generation device 100c, the robot control system 2c, and the robot system 1c of the present embodiment are particularly effective in such a case.
  • the temperature at a location where a heat source such as a motor does not exist nearby is considered to be greatly affected by the temperature of the surrounding environment. If the temperature of the surrounding environment is measured, it is not always necessary to attach a temperature sensor to such a location. Therefore, according to the correction function generation device 100c, the robot control system 2c, and the robot system 1c of the present embodiment, the number of temperature sensors attached to the robot arm 300a can be reduced. Further, the correction function generation device 100c, the robot control system 2c, and the robot system 1c of the present embodiment also have the effects described in the first embodiment or the second embodiment.
  • Embodiment 4 The correction function generation device 100a according to the first embodiment, the correction function generation device 100b according to the second embodiment, and the correction function generation device 100c according to the third embodiment have correction functions for correcting the respective lengths of the links 311 to 314. It was what was produced. However, each of the links 311 to 314 may be further divided into a plurality of parts. The correction function generation device of this embodiment generates a correction function that corrects the length of each part obtained by further dividing each of the links 311 to 314.
  • FIG. 19 is a diagram showing an example of the configuration of a robot system 1d according to the fourth embodiment of the present invention.
  • the robot system 1d according to the present embodiment includes a robot including a robot arm 300d and a robot control system 2a.
  • the robot system 1d of the present embodiment is connected to the hand position measurement device 3a.
  • the configurations of the robot control system 2a and the hand position measurement device 3a are the same as those in the first embodiment, and only the candidate function and the correction function generated by the robot control system 2a are different. Only the differences will be described below.
  • the robot system 1d is exemplified as a configuration including the robot control system 2a in the first embodiment.
  • the robot control system 2b in the second embodiment or the robot control system 2c in the third embodiment It can also be set as the structure provided with.
  • FIG. 20 is a diagram showing an example of the configuration of the robot arm 300d in the robot system 1d according to the fourth embodiment of the present invention.
  • the first link 311 is divided into a part 3111 having a length L11 and a part 3112 having a length L12.
  • the first link 311 is considered to be divided into a part 3111 and a part 3112, but is not necessarily physically divided into the part 3111 and the part 3112. This also applies to other links.
  • the second link 312 is divided into a part 3121 having a length L21 and a part 3122 having a length L22.
  • the third link 313 is divided into a part 3131 having a length L31, a part 3132 having a length L32, and a part 3133 having a length L33.
  • the part 3111, the part 3112, the part 3121, the part 3122, the part 3131, the part 3132, the part 3133, and the fourth link 314 are parts obtained by dividing the robot arm 300d, and the position of the hand This is a structural unit of the robot arm 300d for estimating.
  • each part is divided with the installation position of the temperature sensor or the position of the joint as a partition.
  • the number and position of each part shown in FIG. 20 is an example, but each part is set so as not to straddle the joint.
  • the correction function generation device 100a generates a correction function for correcting the length of each part set as described above.
  • the following equation (6) is an example of a correction function generated by the correction function generation device 100a.
  • Lb11 n , Lb12 n , Lb21 n , Lb22 n , Lb31 n , Lb32 n , Lb33 n , Lb4 n are the lengths of each part after correction at time n.
  • L11, L12, L21, L22, L31, L32, L33, and L4 are reference lengths of the respective parts, and are the lengths before correction of the respective parts.
  • K5 is an 8-by-7 matrix having coefficients k i, j as elements. Other symbols in Equation (6) are the same as those in Equation (2).
  • the degree of expansion / contraction at that location may be locally different.
  • the robot arm 300d has a different tendency of thermal expansion locally in the link depending on the attachment method of the motor that drives the joint and the internal structure.
  • Embodiment 5 The correction function generation device 100a according to the first embodiment, the correction function generation device 100b according to the second embodiment, and the correction function generation device 100c according to the third embodiment first generate a candidate function and satisfy the predetermined condition.
  • the correction function generation apparatus according to the present embodiment first generates a link length candidate, and generates a correction function using a link length candidate that satisfies a predetermined condition.
  • FIG. 21 is a diagram showing an example of the configuration of the robot system 1e according to the fifth embodiment of the present invention.
  • the robot system 1e according to the present embodiment includes a robot including a robot arm 300a and a robot control system 2e.
  • the robot control system 2e includes a correction function generation device 100e and a robot control device 200a.
  • the robot system 1e according to the present embodiment is connected to the hand position measurement device 3a.
  • the configuration of the robot system 1e according to the present embodiment is the same as that according to the first embodiment except for the correction function generation device 100e.
  • the correction function generation device 100e which is a difference will be described.
  • FIG. 1 is a diagram showing an example of the configuration of the robot system 1e according to the fifth embodiment of the present invention.
  • the robot system 1e according to the present embodiment includes a robot including a robot arm 300a and a robot control system 2e.
  • the robot control system 2e includes a correction function generation device 100e and a robot control device 200a.
  • the robot system 1d is exemplified as a configuration in which the correction function generation device is replaced with the robot system 1a in the first embodiment.
  • the robot system 1b in the second embodiment and the robot in the third embodiment A configuration in which the correction function generation device is replaced with the system 1c or the robot system 1d according to the fourth embodiment may be employed.
  • FIG. 22 is a diagram illustrating an example of the configuration of the correction function generation device 100e according to the fifth embodiment of the present invention.
  • the correction function generation device 100e of this embodiment includes an information acquisition unit 110a, a hand position estimation unit 120e, and a correction function determination unit 130e.
  • the hand position estimation unit 120e includes a candidate link length generation unit 125 and a hand position calculation unit 122e.
  • the correction function determination unit 130e includes a hand position comparison unit 131a, a link length evaluation unit 135, and a correction function generation unit 136.
  • the same blocks as those in FIG. 5 are denoted by the same reference numerals, and detailed description thereof is omitted.
  • FIG. 23 is a diagram showing an example of the operation flow of the correction function generation device 100e according to the fifth embodiment of the present invention. Except for the operation of the correction function generation device 100e, the operation flow of the robot control system 2e is the same as the operation flow of the robot control system 2a shown in FIG. FIG. 23 shows a flow of operation of the correction function generation device 100e in step S100a of FIG. The operation of the correction function generation device 100e will be described with reference to FIGS. First, in step S110a, the information acquisition unit 110a acquires temperature information, a joint angle, a measurement position, and a reference link length.
  • the candidate link length generation unit 125 generates a candidate link length that is a link length candidate at the time when the temperature information is measured. More specifically, if temperature information is measured at time n, the candidate link length generation unit 125 selects the candidate link length La1 n of the first link 311 corresponding to time n and the candidate link of the second link 312. length La2 n, generates a candidate link length La4 n of the third candidate link length of the link 313 of La3 n, and the fourth link 314. The candidate link length generation unit 125 repeatedly generates a candidate link length until a comparison result in a correction function determination unit 130e described later satisfies a predetermined condition.
  • a candidate link length is also generated for each of the plurality of times at which the temperature information is measured. For example, when temperature information is measured N times, where N is an integer, N sets of candidate link lengths are generated.
  • the candidate link length generation unit 125 sets the initial value of the candidate link length as the reference link length, and then changes the value every time the operation is repeated to generate the candidate link length.
  • the candidate link length generation unit 125 functions as a length estimation unit that estimates the length of each of a plurality of parts obtained by dividing the robot arm 300a.
  • the hand position calculation unit 122e obtains an estimated position based on the candidate link length and the joint angle. More particularly, the hand position calculating unit 122e, the candidate link length corresponding to the time n, and based on the angle of the measured joint at time n, obtains an estimated position Pe n at time n. As described above, the estimated position is the estimated hand position. The estimated position can be obtained by a geometric calculation based on the candidate link length and the joint angle. When temperature information is measured at a plurality of times, the hand position is estimated for each of the plurality of times. For example, when N is an integer and temperature information is measured N times, N estimated positions are obtained.
  • the hand position comparison unit 131a compares the estimated position obtained by the hand position estimation unit 120e with the measurement position acquired by the information acquisition unit 110a. For example, the hand position comparison unit 131a compares the measured position with the estimated position by calculating a distance D n between the measured position at time n and the estimated position at time n. When temperature information is measured at a plurality of times, the hand position comparison unit 131a calculates a distance between the measurement position and the estimated position at each of the plurality of times. In this case, a plurality of distances are obtained as comparison results. For example, when N is an integer and temperature information is measured N times, N measurement positions are acquired and N estimated positions are obtained, so the hand position comparison unit 131a calculates N distances. To do.
  • step S135 the link length evaluation unit 135 determines whether the comparison result satisfies a predetermined condition.
  • the link length evaluation unit 135 determines whether or not the distance between the measurement position and the estimated position is shorter than a predetermined distance.
  • the link length evaluation unit 135 determines that the comparison result satisfies the predetermined condition when the distance between the measurement position and the estimated position is shorter than the predetermined distance.
  • the link length evaluation unit 135 determines that the comparison result satisfies a predetermined condition when all of the plurality of distances satisfy the predetermined condition. judge.
  • the link length evaluation unit 135 determines that the comparison result does not satisfy the predetermined condition.
  • step S135 the link length evaluation unit 135 outputs latest candidate link length La1 n, La2 n, La3 n , and La4 n to the correction function generating unit 136.
  • the latest candidate link length is a candidate link length used for obtaining an estimated position that satisfies a predetermined condition.
  • step S136 the correction function generation unit 136 generates a correction function based on the candidate link length output from the link length evaluation unit 135, the temperature information acquired by the information acquisition unit 110a, and the reference link length. To the robot controller 200a. Therefore, the correction function generation unit 136 generates a correction function corresponding to the estimated position that satisfies a predetermined condition.
  • step S135 when it is determined in step S135 that the comparison result does not satisfy the predetermined condition, the operation of the correction function determination unit 130e proceeds to step S137.
  • step S137 the link length evaluation unit 135 requests the candidate link length generation unit 125 to regenerate the candidate link length. Thereafter, the operation of the correction function generation device 100e returns to S125.
  • the candidate link length generation unit 125 does not always need to generate candidate link lengths corresponding to all the times, and the candidate link that does not satisfy the predetermined condition in step S135. Only the length needs to be regenerated. For example, when temperature information is measured N times, where N is an integer, N sets of candidate link lengths are generated.
  • the candidate link length generation unit 125 regenerates only the candidate link length at time n1. It ’s fine. The above is the operation of the correction function generation device 100e.
  • FIG. 24 is a diagram illustrating an example of the configuration of the correction function generation unit 136 in the correction function generation device 100e according to Embodiment 5 of the present invention.
  • the correction function generation unit 136 includes a candidate function generation unit 121a, a link length calculation unit 123a, a link length comparison unit 138, and a correction function evaluation unit 132b.
  • the candidate function generation unit 121a and the link length calculation unit 123a are the same as those in the first embodiment.
  • FIG. 25 is a diagram illustrating an example of an operation flow of the correction function generation unit 136 in the correction function generation device 100e according to Embodiment 5 of the present invention. The operation of the correction function generation unit 136 will be described with reference to FIGS.
  • the candidate function generation unit 121a generates a candidate function that is a correction function candidate.
  • the candidate function generation unit 121a generates, for example, a candidate function represented by the above formula (2), formula (3), or formula (4).
  • the candidate function generation unit 121a repeatedly generates candidate functions until a comparison result in a link length comparison unit 138 described later satisfies a predetermined condition.
  • the link length calculation unit 123a corrects the link length by inputting the temperature information and the reference link length acquired by the information acquisition unit 110a into the candidate function, and the link length Lb1 n at time n. , Lb2 n , Lb3 n , and Lb4 n are obtained.
  • Time n represents the time when the temperature information was measured.
  • the link length is corrected for each of the plurality of times. For example, when temperature information is measured N times, where N is an integer, N sets of link lengths are obtained.
  • the link length comparison unit 138 compares the two types of link lengths.
  • one of the two types of link lengths is the link lengths Lb1 n , Lb2 n , Lb3 n , and Lb4 n obtained by using the candidate function in the link length calculation unit 123a.
  • two types of link length of the other is the link output from the link length evaluation unit 135 length La1 n, La2 n, La3 n , and La4 n.
  • the link length comparison unit 138 calculates a difference between two types of link lengths.
  • the link length comparison unit 138 compares two types of link lengths for each link provided in the robot arm 300a.
  • the link length comparison unit 138 calculates the difference dL1 n between Lb1 n and La1 n as the difference with respect to the first link 311 at time n.
  • the link length comparing unit 138, the difference dL2 n between Lb2 n and La2 n is calculated as a difference with respect to the second link 312 at time n.
  • the link length comparing unit 138, a difference DL3 n between Lb3 n and La3 n is calculated as the difference with respect to the third link 313 at time n.
  • the link length comparing unit 138, a difference DL4 n between Lb4 n and La4 n is calculated as the difference with respect to the fourth link 314 at time n.
  • the link length comparison unit 138 compares the corresponding two sets of link lengths at each of the plurality of times. For example, when N is an integer and the temperature information is measured N times, the link length comparison unit 138 calculates N sets of differences dL1 n , dL2 n , dL3 n , and dL4 n . Next, in step S132b, the correction function evaluation unit 132b determines whether the comparison result in the link length comparison unit 138 satisfies a predetermined condition.
  • step S132b the correction function evaluation unit 132b determines whether, for example, all of the differences dL1 n , dL2 n , dL3 n , and dL4 n obtained by the link length comparison unit 138 are smaller than a predetermined value. To do. The correction function evaluation unit 132b determines that the comparison result satisfies a predetermined condition when all of the differences dL1 n , dL2 n , dL3 n , and dL4 n are smaller than a predetermined value.
  • the correction function evaluation unit 132b determines that the comparison result does not satisfy the predetermined condition when at least one of the differences dL1 n , dL2 n , dL3 n , and dL4 n is greater than a predetermined value.
  • step S138 when the link length comparison unit 138 obtains N sets of differences, the correction function evaluation unit 132b obtains a maximum value or an average value of N differences for each link, and obtains the maximum value obtained. Alternatively, it may be determined whether or not the average value is smaller than a predetermined value. In this case, the correction function evaluation unit 132b determines that the comparison result satisfies the predetermined condition when all of the obtained average value or maximum value are smaller than the predetermined value. If it is determined in step S132b that the comparison result satisfies the predetermined condition, the operation of the correction function evaluation unit 132b proceeds to step S133. In step S133, the correction function evaluation unit 132b determines the latest candidate function as the correction function and outputs the correction function to the robot control device 200a.
  • step S132b when it is determined in step S132b that the comparison result does not satisfy the predetermined condition, the operation of the correction function evaluation unit 132b proceeds to step S134b.
  • step S134b the correction function evaluation unit 132b requests the candidate function generation unit 121a to regenerate the candidate function. Thereafter, the operation of the correction function generation unit 136 returns to S121a.
  • the candidate function generation unit 121a changes the format or coefficient of the candidate function and generates a new candidate function in step S121a. At this time, the candidate function generation unit 121a may change only the coefficient corresponding to the link determined to have a difference larger than a predetermined value.
  • the correction function generation device 100e of the present embodiment operates as described above. According to the correction function generation device 100e of the present embodiment, it is possible to generate a correction function for controlling the position of the hand of the robot arm 300a with high accuracy without increasing the points to be subjected to position measurement. Further, according to the robot control system 2e and the robot system 1e of the present embodiment, it is possible to control the position of the hand of the robot arm 300a with high accuracy without increasing the points to be subjected to position measurement. .
  • Embodiment 6 It is considered that the expansion and contraction of the robot arm with respect to temperature changes has different characteristics depending on the operating conditions. For example, it is conceivable that the part where the robot arm expands or contracts or the degree of expansion or contraction changes depending on the operating conditions.
  • As the operation condition various conditions such as the operation path of the robot arm, the operation speed, the operation acceleration, the temperature of the surrounding environment, or the structure of the installed base can be considered.
  • the motion path, motion speed, or motion acceleration of the robot arm is called the motion content of the robot arm.
  • the robot control device stores a plurality of correction functions generated for each operation condition, and sets the correction function according to the operation condition when the robot arm performs work. By selecting, a more accurate work is realized.
  • FIG. 26 is a diagram showing an example of the configuration of the robot system 1f according to the sixth embodiment of the present invention.
  • the robot system 1f according to the present embodiment includes a robot including a robot arm 300a and a robot control system 2f.
  • the robot control system 2f includes a correction function generation device 100a and a robot control device 200f. Further, the robot system 1f of the present embodiment is connected to the hand position measurement device 3a.
  • the configuration of the robot system 1f of the present embodiment is the same as that of the robot system 1a of the first embodiment except for the robot control device 200f.
  • the robot controller 200f which is a difference will be described.
  • the robot system 1f is exemplified as a configuration in which the robot control device is replaced with the robot system 1a in the first embodiment, but the robot system 1b in the second embodiment and the robot system in the third embodiment.
  • the robot control device may be replaced with the robot system 1d in the first embodiment, the robot system 1d in the fourth embodiment, or the robot system 1e in the fifth embodiment.
  • FIG. 27 is a diagram showing an example of the configuration of the robot control apparatus 200f according to the sixth embodiment of the present invention.
  • the robot control apparatus 200f of the present embodiment includes a measurement control unit 201f, a storage unit 202, a correction function acquisition unit 210, a correction function storage unit 250, a correction function selection unit 260, a link length correction unit 220a, A target position setting unit 230 and a command value generation unit 240a are provided.
  • the robot control device 200f shown in FIG. 27 has the same configuration as the robot control device 200a shown in FIG. 8 except for the measurement control unit 201f, the correction function storage unit 250, and the correction function selection unit 260. Become.
  • FIG. 28 is a diagram illustrating an example of an operation flow of the robot control system 2f according to the sixth embodiment of the present invention.
  • the measurement control unit 201f selects one from a plurality of operation conditions of the robot arm 300a, and sets the selected operation condition. For example, if the operation condition is the operation content of the robot arm 300a, the measurement control unit 201f prepares an operation command value of the robot arm 300a that is the operation content. For example, if the operating condition is the temperature of the surrounding environment of the robot arm 300a, the measurement control unit 201f waits for the operation of the robot arm 300a until the surrounding environment reaches that temperature.
  • step S001a the measurement control unit 201f controls the measurement posture of the robot arm 300a, and acquires temperature information, joint angles, and measurement positions at a plurality of times.
  • the operation of the robot control apparatus 200f in step S001a is the same as the operation of the robot control apparatus 200a in the first embodiment.
  • the measurement control unit 201f causes the robot arm 300a to perform an operation that matches the set operation condition.
  • the measurement control unit 201f confirms that the surrounding environment matches the operating conditions.
  • step S100a the correction function generation device 100a acquires temperature information, joint angles, and measurement positions from the robot control device 200f.
  • step S100a the correction function generation device 100a generates a correction function based on information acquired from the robot control device 200f.
  • the generated correction function is output to the robot controller 200f.
  • the operation of the correction function generation device 100a in step S100a is the same as the operation of the correction function generation device 100a in the first embodiment.
  • step S012 the correction function acquisition unit 210 acquires the correction function output from the correction function generation device 100a.
  • the correction function storage unit 250 stores the acquired correction function in association with the operation condition.
  • the correction function storage unit 250 stores a plurality of correction functions generated under different operating conditions.
  • step S013 the measurement control unit 201f determines whether the generation of the correction function is completed for all operation conditions that require generation of the correction function. If correction functions have been generated for all operating conditions, the operation of the robot control system 2f proceeds to step S014. On the other hand, if there is an operation condition for which a correction function has not yet been generated, the operation of the robot control system 2f returns to step S011. Steps S011 to S013 are operations in which the robot control system 2f generates a correction function.
  • the operations after step S014 are operations in which the robot control system 2f generates an operation command value based on the correction function.
  • the correction function selection unit 260 selects a correction function that matches the operation condition for causing the robot arm 300a to perform work from the plurality of correction functions stored in the correction function storage unit.
  • the robot control device 200f generates an operation command value for controlling the operation of the robot arm 300a based on the selected correction function.
  • the generated operation command value is output to the robot arm 300a.
  • the operation of the robot control device 200f in step S200 is the same as the operation of the robot control device 200a in the first embodiment.
  • step S003 the robot control device 200f determines whether or not to end the operation of the robot arm 300a. If it is determined in step S003 that the operation is to be ended, the robot control system 2f ends the operation. On the other hand, if it is determined in step S003 that the operation is not yet finished, the operation of the robot control system 2f returns to step S200, and the generation of the operation command value is repeated. The above is the operation flow of the robot control system 2f.
  • the robot control system 2f and the robot system 1f of the present embodiment operate as described above. According to the robot control system 2f and the robot system 1f of the present embodiment, the position of the hand of the robot arm 300a can be controlled with higher accuracy when a plurality of operation conditions are determined in advance. . For example, when the robot arm 300a performs a continuous operation with a predetermined operation pattern or performs a continuous operation under a plurality of types of temperature conditions such as a freezer warehouse and a room temperature environment, the robot control of the present embodiment The system 2f and the robot system 1f are effective.
  • the robot control device 200a is configured to obtain the target value of the joint angle of the robot arm 300a based on the link length corrected using the correction function. Further, the robot control device 200a is configured to obtain an operation command value of the robot arm 300a from the obtained target value of the joint angle.
  • the robot control device 200a cannot calculate the target value of the joint angle. That is, when the robot arm 300a is contracted, the target position may be outside the operation range of the robot arm 300a.
  • the target position generated by the target position setting unit 230 may become a singular point.
  • the singular point refers to the position and orientation of the hand that cannot uniquely determine the angle of the joint from the position and orientation of the hand.
  • the robot system and the robot control system according to the present embodiment include a robot control device having a function of evaluating the calculated joint angle.
  • FIG. 29 is a diagram showing an example of the configuration of a robot system 1g according to the seventh embodiment of the present invention.
  • a robot system 1g according to the present embodiment includes a robot including a robot arm 300a and a robot control system 2g.
  • the robot control system 2g includes a correction function generation device 100a and a robot control device 200g.
  • the robot system 1g of the present embodiment is connected to the hand position measurement device 3a.
  • the configuration of the robot system 1g according to the present embodiment is the same as that of the robot system 1a according to the first embodiment except for the robot controller 200g.
  • the robot control device 200g which is a difference will be described.
  • the robot system 1g is illustrated as a configuration in which the robot control device is replaced with the robot system 1a in the first embodiment.
  • the robot control device may be replaced with the robot system 1d in the first embodiment, the robot system 1d in the fourth embodiment, or the robot system 1e in the fifth embodiment.
  • the robot system 1g can be configured to select and use one of a plurality of stored correction functions when generating an operation command value, similarly to the robot system 1f in the sixth embodiment. .
  • FIG. 30 is a diagram showing an example of the configuration of the robot control apparatus 200g according to the seventh embodiment of the present invention.
  • the configuration of the robot control device 200g is shown together with the correction function generation device 100a, the hand position measurement device 3a, and the robot arm 300a.
  • the robot control apparatus 200g of the present embodiment includes a measurement control unit 201a, a storage unit 202, a correction function acquisition unit 210, a link length correction unit 220a, a target position setting unit 230, and a command value generation unit 240g. Prepare.
  • the robot control device 200g shown in FIG. 30 has the same configuration as the robot control device 200a shown in FIG. 8 except for the command value generation unit 240g.
  • FIG. 31 is a diagram illustrating an example of the configuration of the command value generation unit 240g in the robot control apparatus 200g according to the seventh embodiment of the present invention.
  • the configuration of the command value generation unit 240g is shown together with the storage unit 202, the link length correction unit 220a, the target position setting unit 230, and the robot arm 300a.
  • the command value generation unit 240g includes a first angle calculation unit 241, a second angle calculation unit 242, a joint angle evaluation unit 243, a third angle calculation unit 244, and a command value output unit 245. Based on the reference link length stored in the storage unit 202 and the target position output from the target position setting unit 230, the first angle calculation unit 241 uses the robot arm 300a for the hand to reach the target position.
  • the angle of the joint is calculated as the first target angle ⁇ 1 q .
  • the target position includes the orientation of the target hand.
  • the first target angle ⁇ 1 q is a joint target angle when the length of each link of the robot arm 300a is the reference link length.
  • q is an identifier for identifying the joint of the robot arm 300a.
  • the second angle calculation unit 242 is used for the hand to reach the target position. calculating the angle of the joints of the robot arm 300a as the second target angle .theta.2 q. Second target angle .theta.2 q is the target angle of the joint in the case where the length of each link of the robot arm 300a is a link length after correction.
  • the joint angle evaluation unit 243 evaluates whether or not the second target angle ⁇ 2 q is approaching an undesirable angle, and generates a correction coefficient a1.
  • the undesired angle is a joint angle at which the posture of the robot arm 300a approaches a singular point.
  • an angle of a joint where many joints are extended is an undesirable angle.
  • the posture of the robot arm 300a in which the angle of the joint is an undesirable angle is an unacceptable posture.
  • Undesirable joint angles may be paraphrased as unacceptable joint angles.
  • the undesired joint angle is set in advance as a constraint on the joint angle. Therefore, the joint angle evaluation unit 243 evaluates whether or not the second target angle ⁇ 2 q is close to an undesirable angle by comparing the second target angle ⁇ 2 q with preset constraint conditions.
  • Posture of the robot arm 300a, represented by the second target angle .theta.2 q is the case close to the unacceptable posture, joint angle evaluation unit 243 the correction coefficient a1 and 0. Further, the posture of the robot arm 300a, represented by the second target angle .theta.2 q is the distance from the unacceptable posture, joint angle evaluation unit 243 gradually increases the correction coefficient a1. Then, the posture of the robot arm 300a, represented by the second target angle .theta.2 q is, if sufficiently separated from the unacceptable posture, joint angle evaluation unit 243 the correction coefficient a1 and 1.
  • the third angle calculation unit 244 calculates the third target angle ⁇ 3 q by the calculation of the following equation (7) using the first target angle ⁇ 1 q , the second target angle ⁇ 2 q , and the correction coefficient a1. To do.
  • Command value output unit 245 generates an operation command value as the angle of the joints of the robot arm 300a a third target angle .theta.3 q, and outputs to the robot arm 300a.
  • the command value generation unit 240g operates as described above. In the robot control device 200g, operations other than the command value generation unit 240g are the same as the operations of the robot control device 200a in the first embodiment. According to the robot control system 2g and the robot system 1g of the present embodiment, it is possible to prevent the robot arm 300a from being in an unacceptable posture.
  • the robot control system 2g and the robot system 1g of the present embodiment it is possible to control the position of the hand of the robot arm 300a with higher accuracy while continuing the smooth operation of the robot arm 300a.
  • the robot arm 300a contracts and the target position becomes a position where the hand of the robot arm 300a cannot reach, it is conceivable that the operation of the robot arm stops.
  • the position of the hand of the robot arm 300a is controlled with higher accuracy while the operation of the robot arm 300a is stably stopped without stopping the operation. It is also possible.

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)
  • Automatic Control Of Machine Tools (AREA)
  • Numerical Control (AREA)

Abstract

位置計測の対象となる点を増加させることなく、ロボットアームの手先の位置を高精度に制御することを可能とする。関節を有するロボットアームの手先の位置を制御するために用いられる補正関数を生成する補正関数生成装置(100a)であって、ロボットアームの所定位置で計測された温度情報、温度情報が計測された時点の関節の角度、及び温度情報が計測された時点の手先の位置を計測して得られる計測位置を取得する情報取得部(110a)と、取得された関節の角度に基づいて、温度情報を取得した時点の手先の位置を推定して推定位置を求める手先位置推定部(120a)と、計測位置と推定位置とを比較した結果に基づいて、温度情報を変数とする関数である前記補正関数を決定する補正関数決定部(130a)とを備える。

Description

補正関数生成装置、ロボット制御システム及びロボットシステム
 この発明は、関節を有するロボットアームの手先の位置を制御するために用いられる補正関数を生成する補正関数生成装置、この補正関数生成装置を備えるロボット制御システム及びロボットシステムに関する。
 工場などにおいて、ロボットアームは、繰り返し作業を精度良く行う用途に使用されている。しかし、ロボットアームを駆動させるためのモータの発熱や周囲の温度変化の影響によって、ロボットアームの温度が変化する現象が発生する。ロボットアームの温度が変化することで、ロボットアームが熱膨張又は熱収縮し、ロボットアームの手先の位置が変化する。この結果、ロボット制御システムがロボットアームの手先の位置を高精度に制御できないという問題が発生する。すなわち、手先の位置決め精度が低下するという問題が発生する。例えば、規定の位置に繰り返しアプローチする作業においては、ロボットアームの温度が上がるにつれてロボットアームが徐々に伸びる。この結果、手先の位置が徐々に変化し、作業精度が著しく損なわれていた。この問題を解決するために、例えば特許文献1では、所望の制御点間の長さを計測し、基準温度時からの長さの変化を求めることで、所望の制御点間の長さを補正する補正係数を求める手法が提案されている。
特開2015-141583号公報
 特許文献1において提案されている手法では、温度変化に応じたロボットアームの制御点間の長さの変化を高精度に計測する必要がある。制御点間の長さは、各制御点の位置を計測することで求めることができる。しかし、制御点が増加すると計測対象となる点も増加するという問題があった。この結果、計測時間が増大するか、又は計測機が複雑化するという問題が発生する。
 本発明は上記の問題を解決するためになされたものであって、位置計測の対象となる点を増加させることなく、ロボットアームの手先の位置を高精度に推定するための補正関数を生成可能な補正関数生成装置を得ることを目的とする。また、この補正関数生成装置を備えるロボット制御システム及びロボットシステムを得ることを目的とする。
 この発明における補正関数生成装置は、関節を有するロボットアームの手先の位置を制御するために用いられる補正関数を生成する補正関数生成装置であって、ロボットアームの所定位置で計測された温度情報、温度情報が計測された時点の関節の角度、及び温度情報が計測された時点の手先の位置を計測して得られる計測位置を取得する情報取得部と、関節の角度に基づいて、温度情報を取得した時点の手先の位置を推定して推定位置を求める手先位置推定部と、計測位置と推定位置とを比較した結果に基づいて、温度情報を変数とする関数である補正関数を決定する補正関数決定部とを備えるものである。
 この発明における補正関数生成装置によれば、位置計測の対象となる点を増加させることなく、ロボットアームの手先の位置を高精度に制御するための補正関数を生成可能となる。また、この発明におけるロボット制御システム及びロボットシステムによれば、位置計測の対象となる点を増加させることなく、ロボットアームの手先の位置を高精度に制御することが可能となる。
本発明の実施の形態1による補正関数生成装置を備えるロボットシステム及びロボット制御システムの構成の一例を示す図である。 本発明の実施の形態1によるロボットアームの構成の一例を示す図である。 本発明の実施の形態1による補正関数生成装置を備えるロボット制御システムを実現するためのハードウェア構成の一例を示す図である。 本発明の実施の形態1による補正関数生成装置を備えるロボット制御システムの動作の流れの一例を示す図である。 本発明の実施の形態1による補正関数生成装置の構成の一例を示す図である。 本発明の実施の形態1による補正関数生成装置の動作の流れの一例を示す図である。 本発明の実施の形態1による補正関数生成装置における手先位置推定部及び補正関数決定部の動作の流れの一例を示す図である。 本発明の実施の形態1によるロボット制御装置の構成の一例を示す図である。 本発明の実施の形態1によるロボット制御装置の動作の流れの一例を示す図である。 本発明の実施の形態1による補正関数生成装置を備えるロボット制御システムの動作の流れの別の例を示す図である。 本発明の実施の形態2による補正関数生成装置を備えるロボットシステム及びロボット制御システムの構成の一例を示す図である。 本発明の実施の形態2による補正関数生成装置を備えるロボット制御システムの動作の流れの一例を示す図である。 本発明の実施の形態2による補正関数生成装置の構成の一例を示す図である。 本発明の実施の形態2による補正関数生成装置の動作の流れの一例を示す図である。 本発明の実施の形態2による補正関数生成装置における手先位置推定部及び補正関数決定部の動作の流れの一例を示す図である。 本発明の実施の形態3による補正関数生成装置を備えるロボットシステム及びロボット制御システムの構成の一例を示す図である。 本発明の実施の形態3による補正関数生成装置の構成の一例を示す図である。 本発明の実施の形態3によるロボット制御装置の構成の一例を示す図である。 本発明の実施の形態4によるロボットシステムの構成の一例を示す図である。 本発明の実施の形態4によるロボットシステムにおけるロボットアームの構成の一例を示す図である。 本発明の実施の形態5によるロボットシステムの構成の一例を示す図である。 本発明の実施の形態5による補正関数生成装置の構成の一例を示す図である。 本発明の実施の形態5による補正関数生成装置の動作の流れの一例を示す図である。 本発明の実施の形態5による補正関数生成装置における補正関数生成部の構成の一例を示す図である。 本発明の実施の形態5による補正関数生成装置における補正関数生成部の動作の流れの一例を示す図である。 本発明の実施の形態6によるロボットシステムの構成の一例を示す図である。 本発明の実施の形態6によるロボット制御装置の構成の一例を示す図である。 本発明の実施の形態6によるロボット制御システムの動作の流れの一例を示す図である。 本発明の実施の形態7によるロボットシステムの構成の一例を示す図である。 本発明の実施の形態7によるロボット制御装置の構成の一例を示す図である。 本発明の実施の形態7によるロボット制御装置における指令値生成部の構成の一例を示す図である。
実施の形態1.
 図1は、本発明の実施の形態1による補正関数生成装置100aを備えるロボットシステム1a及びロボット制御システム2aの構成の一例を示す図である。ロボットシステム1aは、ロボットアーム300aを備えるロボットと、ロボット制御システム2aとを備える。また、ロボット制御システム2aは、補正関数生成装置100a及びロボット制御装置200aを備える。なお、図1においては、ロボットアーム300a以外のロボットの部位の図示は省略している。
 ロボットシステム1aには、ロボットアーム300aの手先の三次元位置を計測する手先位置計測装置3aが接続される。手先位置計測装置3aとしては、例えば、レーザ距離センサ、ビジョンセンサ等が用いられる。ここで、ロボットアーム300aの手先は、ロボットアーム300aの先端であり、作業対象物に作用する部位を指す。ロボットアーム300aの手先は、ロボットの手先と言い換えることもできる。ロボットシステム1aとしては、産業用ロボットの他、人にサービスを提供するサービスロボット等が考えられる。産業用ロボットが行う作業としては、部品の搬送、組み立て、加工などが考えられる。以降において、ロボットアーム300aの手先は、単に手先と記載されることがある。また、以降において、手先の位置は、手先位置と記載されることがある。ロボットアーム300aは、1つ以上の関節を有している。また、ロボットアーム300aには、ロボットアーム300aの所定位置の温度を検出するセンサ、ロボットアーム300aの関節の角度を検出するセンサ等が搭載される。
 図2は、本発明の実施の形態1によるロボットアーム300aの構成の一例を示す図である。ロボットアーム300aは、第1のリンク311、第2のリンク312、第3のリンク313、及び第4のリンク314が、関節によって接続された構成となっている。関節の角度は、ロボット制御装置200aから出力される動作指令値によって制御される。この結果、関節によって互いに接続されるリンク間の角度が制御される。また、ロボットアーム300aには、第1の温度センサ321、第2の温度センサ322、第3の温度センサ323、第4の温度センサ324、第5の温度センサ325、及び第6の温度センサ326が、それぞれ所定の位置に搭載されている。
 このように、ロボットアーム300aは、4つのリンクとして、第1のリンク311、第2のリンク312、第3のリンク313、及び第4のリンク314を備える。また、ロボットアーム300aは、6つの温度センサとして、第1の温度センサ321、第2の温度センサ322、第3の温度センサ323、第4の温度センサ324、第5の温度センサ325、及び第6の温度センサ326を備える。4つのリンクのそれぞれは、ロボットアーム300aを分割して得られる部位となる。ここで、ロボットアーム300aを分割して得られる各部位は、ロボットアーム300aを直線状に伸ばした時に、ロボットアーム300aの両端を結ぶ方向に配列されるように設定される。また、ロボットアーム300aを分割して得られる各部位は、関節を跨がないように設定される。言い換えると、ロボットアーム300aを分割して得られる各部位は、各部位の端部に関節が存在することはあっても、各部位の内部に関節を含まないように設定される。
 ロボットアーム300aには、温度センサ以外に、関節の角度を検出するセンサ等も搭載されるが、図示を省略している。ロボットアーム300aの関節の角度は、互いに接続されるリンク間の角度を表し、関節を駆動するモータの回転角度等から検出することができる。なお、図3に示すロボットアーム300aの構成は一例であり、リンクの数、温度センサの数、温度センサの配置等は、図2に示すものに限定されない。例えば、温度センサは任意の位置に設置されてもよいし、関節を駆動するサーボモータに物理的に接続されたエンコーダに内蔵された温度センサを活用してもよい。
 ロボットアーム300aにおいて、第1のリンク311の長さはL1となっている。また、第2のリンク312の長さはL2となっている。また、第3のリンク313の長さはL3となっている。また、第4のリンク314の長さはL4となっている。なお、リンクの長さは、ロボットアーム300aを直線状に伸ばした時に、ロボットアーム300aの両端を結ぶ方向の各リンクの長さである。リンクの両端に関節が存在する場合には、リンクの長さは、そのリンクの両端の関節間の距離で表される。関節の位置は、関節の回転軸の位置として定義できる。一方、リンクの一端のみ関節が存在する場合には、リンクの長さは、そのリンクの一端の関節から他端の先までの距離で表される。また、ロボットアーム300aの手先は、第4のリンク314の先端となる。すなわち、ロボットアーム300aの手先は、第4のリンク314において、第3のリンクと接続されていない側の端部となる。
 次に、ロボット制御システム2aについて説明する。図3は、本発明の実施の形態1による補正関数生成装置100aを備えるロボット制御システム2aを実現するための具体的なハードウェア構成の一例を示す図である。すなわち、図3は、補正関数生成装置100a及びロボット制御装置200aを実現するための具体的なハードウェア構成の一例を示す図である。ロボット制御システム2aは、メモリ402に記憶されるプログラムをプロセッサ401で実行することで実現される。プロセッサ401とメモリ402とは、データバス403で接続される。メモリ402には、揮発性のメモリ及び非揮発性のメモリが備えられ、一時的な情報は揮発性のメモリに記憶される。なお、ロボット制御システム2aは一体として図3の構成としても良い。もしくは、補正関数生成装置100a及びロボット制御装置200aを別体として、それぞれを図3の構成としても良い。例えば、補正関数生成装置100a及びロボット制御装置200aが、ネットワークなどを介して接続されていても良い。以降の実施の形態においても、ロボット制御システム2aは同様のハードウェア構成で実現できる。
 図4は、本発明の実施の形態1による補正関数生成装置100aを備えるロボット制御システム2aの動作の流れの一例を示す図である。すなわち、図4は、補正関数生成装置100a及びロボット制御装置200aの動作の流れの一例を示す図である。まず、ステップS001aにおいて、ロボット制御装置200aは、手先位置計測装置3aの計測結果、及びロボットアーム300aに装着されるセンサの検出値を取得する。より具体的には、ステップS001aにおいて、ロボット制御装置200aは、ロボットアーム300aから温度情報を取得する。温度情報は、ロボットアーム300aの所定位置で計測された温度の情報であり、ロボットアーム300aに搭載されている6つの温度センサ321~326によって計測される。
 また、ステップS001aにおいて、ロボット制御装置200aは、ロボットアーム300aの関節の角度をロボットアーム300aから取得する。ロボットアーム300aの関節の角度は、ロボットアームに搭載されているセンサによって計測される。ロボット制御装置200aは、温度センサ321~326によって温度情報が計測された時点のロボットアーム300aの関節の角度を取得する。さらに、ステップS001aにおいて、ロボット制御装置200aは、温度情報が計測された時点の計測位置を手先位置計測装置3aから取得する。計測位置は、手先位置計測装置3aによって計測することで得られるロボットアーム300aの手先の位置である。
 ここで、ロボット制御装置200aは、複数の時刻における温度情報、関節の角度、及び計測位置を取得することが望ましい。複数の時刻における温度情報、関節の角度、及び計測位置を用いて補正関数を生成した方が、より高精度の補正効果が得られる可能性が高い。以下では、ロボット制御装置200aは、複数の時刻における温度情報、関節の角度、及び計測位置を取得するものとする。ロボット制御装置200aは、取得される温度情報、関節の角度及び計測位置が、計測時刻が同期して計測された情報となるように、ロボットアーム300a及び手先位置計測装置3aを制御する。この結果、ロボット制御装置200aは、温度情報が計測された時点の関節の角度、及び温度情報が計測された時点の計測位置を取得することができる。なお、温度情報を計測する時刻、関節の角度を計測する時刻、及び手先の位置を計測する時刻は、厳密に同一である必要はなく、実用上で求められる補正精度に影響のない範囲で異なっていても良い。
 温度情報、関節の角度、及び計測位置は、任意の時刻に測定されれば良いが、熱に起因するロボットアーム300aの伸びの程度が互いに異なる複数の状態で測定されることが望ましい。このためには、ロボット制御装置200aは、ロボットアーム300aに高負荷を与えるような動作を暖機動作として実行させ、その過程で温度情報、関節の角度、及び計測位置を取得することが望ましい。実際の作業においてロボットアーム300aに実行させる動作が予め1つのパターンに決まっている場合などでは、その動作を暖機動作として実行し、その過程で温度情報を計測すれば良い。その結果、補正関数生成装置は、その動作特有の伸びに最適な補正関数を生成することができる。
 また、ロボット制御装置200aは、ロボットアーム300aの計測姿勢も制御する。ここで、計測姿勢とは、温度情報が計測される際のロボットアーム300aの姿勢を意味する。すなわち、ロボット制御装置200aは、温度情報が計測される際のロボットアーム300aの関節の角度も制御する。ロボットアーム300aの計測姿勢は任意である。例えば、ロボットアーム300aの計測姿勢として、手先位置計測装置3aの設置がし易い姿勢を選択することが考えられる。また、ロボットアーム300aの計測姿勢は、予め決定された一定の姿勢であっても良いし、温度情報が計測される毎に異なる姿勢であっても良い。
 ロボットアーム300aの計測姿勢が一定である場合には、ロボット制御装置200aは、予め記憶された関節の角度となるようにロボットアーム300aを制御する。この場合には、ロボット制御装置200aは、必ずしもロボットアーム300aから関節の角度を取得する必要はなく、ロボット制御装置200aに予め記憶された関節の角度を読み出せば良い。この場合でも、ロボット制御装置200aは内部のメモリから関節の角度を取得している。本実施の形態のロボット制御システム2aは、関節の角度をロボットアーム300aから取得する構成としている。
 また、ロボットアーム300aの計測姿勢が一定である場合には、手先位置の変動は温度変化に起因するものに限られるので、手先の存在範囲が限定される。この場合には、手先位置計測装置3aとして簡易な計測器を使用することができ、例えば基準位置からの位置の変化を測定する変位センサを使用することができる。一方、計測位置が一定ではない場合には、手先位置計測装置3aの計測範囲は広くなるが、ロボットアームに任意の作業をさせている間にも、補正関数の生成が可能となる。本実施の形態のロボットシステム1aにおいては、手先位置計測装置3aは、手先の絶対位置を計測するものとする。以上が、ステップS001aにおけるロボット制御装置200aの動作である。
 次に、ステップS100aにおいて、補正関数生成装置100aは、温度情報、関節の角度、及び計測位置をロボット制御装置200aから取得する。ここで、補正関数生成装置100aは、複数の時刻における温度情報、関節の角度、及び計測位置を取得するものとする。また、ステップS100aにおいて、補正関数生成装置100aは、ロボット制御装置200aから取得した情報に基づいて、手先の位置を制御するために用いられる補正関数を生成する。生成された補正関数は、ロボット制御装置200aに出力される。なお、本実施の形態では、補正関数生成装置100aは、ロボット制御装置200aを介して、温度情報、関節の角度、及び計測位置を取得する構成としているが、この構成に限定されるわけではない。
 次に、ステップS002において、ロボット制御装置200aは、補正関数生成装置100aで生成された補正関数を取得する。次に、ステップS200において、ロボット制御装置200aは、取得された補正関数に基づいて、ロボットアーム300aの動作を制御するための動作指令値を生成する。生成された動作指令値は、ロボットアーム300aに出力される。ロボットアーム300aは、動作指令値に従って動作する。ロボット制御装置200aが補正関数に基づいて動作指令値を生成することによって、ロボット制御装置200aは手先を所定の位置に高精度に移動させることができる。すなわち、ロボット制御装置200aによる手先の位置決め精度が向上する。
 次に、ステップS003において、ロボット制御装置200aは、ロボットアーム300aの動作を終了させるか否かを判定する。ロボット制御装置200aは、予め定められた作業を完了した場合などに動作を終了させる。ステップS003において、動作を終了させると判定されると、ロボット制御システム2aは動作を終了する。一方、ステップS003において、まだ動作を終了させないと判定されると、ロボット制御システム2aの動作はステップS200へと戻り、動作指令値の生成が繰り返される。以上が、ロボット制御システム2aの動作の流れである。以下では、ステップS100a及びステップS200におけるロボット制御システム2aの動作について、更に詳しく述べる。
 まず、ステップS100aにおけるロボット制御システム2aの動作について述べる。前述の通り、ステップS100aでは、補正関数生成装置100aが動作する。図5は、本発明の実施の形態1による補正関数生成装置100aの構成の一例を示す図である。図5では、補正関数生成装置100aの構成が、ロボット制御装置200aとともに示されている。本実施の形態の補正関数生成装置100aは、情報取得部110aと、手先位置推定部120aと、補正関数決定部130aとを備える。また、手先位置推定部120aは、候補関数生成部121aと、手先位置演算部122aとを備える。また、手先位置演算部122aは、リンク長演算部123aと、手先位置変換部124aとを備える。また、補正関数決定部130aは、手先位置比較部131aと、補正関数評価部132aとを備える。
 また、図6は、本発明の実施の形態1による補正関数生成装置100aの動作の流れの一例を示す図である。図6は、図4のステップS100aにおける補正関数生成装置100aの動作の流れを示している。図5及び図6を用いて、補正関数生成装置100aの動作について述べる。まず、ステップS110aにおいて、情報取得部110aは、温度情報、関節の角度、及び計測位置をロボット制御装置200aから取得する。また、ステップS110aにおいて、情報取得部110aは、基準リンク長をロボット制御装置200aから取得する。基準リンク長は、ロボットアーム300aの4つのリンク311~314の標準的な長さであり、ロボット制御装置200aに予め記憶される。基準リンク長は、例えば、ロボットアーム300aの設計値とすることや、所定の条件下で予め計測した値とすること等が考えられる。なお、本実施の形態では、情報取得部110aは、ロボット制御装置200aから基準リンク長を取得する構成としているが、この構成に限定されるわけではない。例えば、補正関数生成装置100aが、基準リンク長を予め記憶していても良い。
 次に、ステップS120aにおいて、手先位置推定部120aは、情報取得部110aから基準リンク長、温度情報、及び関節の角度を取得し、取得した情報に基づいて、温度情報が計測された時点のロボットアーム300aの手先位置を推定して推定位置を求める。なお、手先位置は、手先の位置を意味する。また、推定位置は、手先位置推定部120aによって推定された手先位置である。ここで、温度情報及び関節の角度は、複数の時刻において計測された情報であるので、推定位置も、温度情報が計測された複数の時刻のそれぞれに対して求められる。例えば、Nを整数として、温度情報及び関節の角度がN回測定されている場合、N個の推定位置が求められる。
 次に、ステップS130aにおいて、補正関数決定部130aは、情報取得部110aから取得した計測位置と、手先位置推定部120aから取得した推定位置とを比較し、比較した結果に基づいて補正関数を決定する。なお、後述するように、計測位置と推測位置との比較結果によっては、処理がステップS120aに戻ることになる。すなわち、計測位置と推測位置との比較結果が所定の条件を満たさない場合には、補正関数決定部130aは、手先の位置の推定を再実施するように手先位置推定部120aに要請する。ここで、計測位置は、温度情報が計測された複数の時刻のそれぞれにおいて計測された情報である。また、推定位置は、温度情報が計測された複数の時刻のそれぞれに対して求められる。例えば、補正関数決定部130aは、温度情報が計測された複数の時刻のそれぞれにおいて、対応する計測位置及び推定位置を比較する。Nを整数として、温度情報がN回測定されている場合、N個の計測位置が取得され、N個の推定位置が求められる。したがって、補正関数決定部130aは、計測位置と推定位置とのN個の組を比較する。
 別の例としては、補正関数決定部130aは、計測位置の平均値と推定位置の平均値とを比較しても良い。補正関数決定部130aで決定される補正関数は、温度情報を変数とする関数である。また、本実施の形態の補正関数生成装置100aにおいて、補正関数は、ロボットアーム300aの4つのリンク311~314の長さを温度情報によって補正する関数となる。以上が、図4のステップS100aにおける補正関数生成装置100aの動作の流れとなる。
 次に、手先位置推定部120aが推定位置を求める処理、及び補正関数決定部130aが補正関数を決定する処理について、さらに述べる。図7は、本発明の実施の形態1による補正関数生成装置100aにおける手先位置推定部120a及び補正関数決定部130aの動作の流れの一例を示す図である。図7のステップS121aからステップS124aまでが、図6のステップS120aにおける手先位置推定部120aの動作となる。また、図7のステップS131aからステップS134aまでが、図6のステップS130aにおける補正関数決定部130aの動作となる。
 まず、ステップS121aにおいて、候補関数生成部121aは、補正関数の候補となる候補関数を生成する。本実施の形態の補正関数生成装置100aにおいて、候補関数は、補正関数と同様に、温度情報を変数とする関数であり、ロボットアーム300aの4つのリンク311~314の長さを温度情報に基づいて補正する関数となる。候補関数生成部121aで生成される候補関数において、次数等の形式は限定されない。後述する補正関数決定部130aにおける比較結果が所定の条件を満たすまで、候補関数生成部121aは候補関数の生成を繰り返し行う。下記の式(1)は、候補関数生成部121aで生成される候補関数の一例である。
Figure JPOXMLDOC01-appb-M000001
 式(1)において、Lb1は、時刻nにおける補正後の第1のリンク311の長さである。また、Lb2は、時刻nにおける補正後の第2のリンク312の長さである。また、Lb3は、時刻nにおける補正後の第3のリンク313の長さである。また、Lb4は、時刻nにおける補正後の第4のリンク314の長さである。ここで、時刻nは、温度情報が計測された複数の時刻のいずれかを表す。例えば、Nを整数として、温度情報がN回測定されている場合、時刻nは、温度情報が測定されたN個の時刻のうちのいずれかを表す。また、式(1)において、L1は、第1のリンク311の基準リンク長である。また、L2は、第2のリンク312の基準リンク長である。また、L3は、第3のリンク313の基準リンク長である。また、L4は、第4のリンク314の基準リンク長である。
 また、式(1)において、T1は、第1の温度センサ321で計測された時刻nにおける温度情報である。また、T2は、第2の温度センサ322で計測された時刻nにおける温度情報である。また、T3は、第3の温度センサ323で計測された時刻nにおける温度情報である。また、T4は、第4の温度センサ324で計測された時刻nにおける温度情報である。また、T5は、第5の温度センサ325で計測された時刻nにおける温度情報である。また、T6は、第6の温度センサ326で計測された時刻nにおける温度情報である。
 さらに、式(1)において、ki,jは補正のための係数である。ここで、iは1~4のいずれかであり、jはa~gのいずれかを表す。また、式(1)に示す候補関数は、下記の式(2)のようにマトリクス形式で表すこともできる。式(2)において、K1は、係数ki,jを要素とする4行7列の行列である。
Figure JPOXMLDOC01-appb-M000002
 候補関数生成部121aは、ステップS121aの処理が行われるたびに、係数ki,jの値を変化させるか、候補関数の形式を変化させる。候補関数の形式は、式(1)又は式(2)に示すものに限定されない。例えば、候補関数は、温度情報に時定数が設けられた式とすることもできる。このような候補関数では、温度情報の変化の履歴も反映した補正が可能となり、補正の精度が向上することが期待できる。下記の式(3)は、温度情報に時定数を設けた候補関数の一例である。式(3)において、時刻n-1は、時刻nより前の時刻を表す。また、式(3)において、K2は、係数を要素とする行列である。さらに、候補関数は、式を一次式以外の形式とすることもできる。下記の式(4)は、二次式の候補関数の例である。式(4)において、K3は、係数を要素とする行列である。候補関数は、更に高次の式としても良い。高次の候補関数とすることで、温度情報に対して非線形なリンク長の変化にも対応でき、補正の精度が向上することが期待できる。
Figure JPOXMLDOC01-appb-M000003
Figure JPOXMLDOC01-appb-M000004
 次に、ステップS123a及びステップS124aにおいて、手先位置演算部122aは、温度情報、関節の角度及び候補関数に基づいて、推定位置を求める。まず、ステップS123aにおいて、リンク長演算部123aは、温度情報及び基準リンク長を候補関数に入力することによって、リンク長を補正して時刻nにおける補正後のリンク長を求める。リンク長は、ロボットアーム300aの4つのリンク311~314のそれぞれの長さである。次に、ステップS124aにおいて、手先位置変換部124aは、関節の角度と、リンク長演算部123aで求められた補正後のリンク長とに基づいて、時刻nにおける手先位置を推定する。すなわち、ステップS124aにおいて、手先位置変換部124aは、時刻nにおける推定位置Peを求める。推定位置は、補正されたリンク長と、関節の角度とに基づいた幾何学演算によって求めることができる。複数の時刻において温度情報が計測された場合、リンク長の補正及び手先位置の推定は、複数の時刻のそれぞれに対して行われる。
 このように、本実施の形態の補正関数生成装置100aは、補正関数を用いてロボットアーム300aの4つのリンクの長さを補正し、補正した長さに基づいて手先の位置を推定する。したがって、ロボットアーム300aの4つのリンクのそれぞれは、手先の位置を推定するためのロボットアーム300aの構成単位と考えることができる。この時、補正関数は、手先の位置を推定するためのロボットアーム300aの構成単位の長さを補正する関数であると考えることができる。また、上述の通り、ロボットアーム300aの4つのリンクのそれぞれは、ロボットアーム300aを分割して得られる部位でもある。このように考えると、補正関数は、ロボットアーム300aを分割して得られる部位の長さを補正する関数となる。以上が、ステップS123a及びステップS124aにおける手先位置演算部122aの動作である。
 次に、ステップS131aにおいて、手先位置比較部131aは、手先位置推定部120aで求められた推定位置と、情報取得部110aで取得された計測位置とを比較する。すなわち、ステップS131aにおいて、手先位置比較部131aは、推定された手先位置と、計測された手先位置とを比較する。例えば本実施の形態の補正関数生成装置100aにおいては、手先位置比較部131aは、計測位置と推定位置との間の距離を算出することによって、計測位置と推定位置とを比較する。時刻nにおける推定位置をPeとし、時刻nにおいて計測された計測位置をPmとすると、手先位置比較部131aは、推定位置Peと計測位置Pmとの時刻nにおける距離Dを求める。計測位置と推定位置との間の距離は、計測位置に対する推定位置の誤差を表す。
 複数の時刻において温度情報が計測された場合、手先位置比較部131aは、複数の時刻のそれぞれにおいて、計測位置Pmと推定位置Peとの間の距離Dを算出する。この場合、比較結果として、複数の距離が求められる。例えば、Nを整数として、温度情報がN回測定されている場合、N個の計測位置が取得され、N個の推定位置が求められるので、手先位置比較部131aは、N個の距離を算出する。一方、手先位置比較部131aは、計測位置Pmの平均と推定位置Peの平均との間の距離を算出することもできる。この場合、比較結果として、1つの距離が求められる。
 次に、ステップS132aにおいて、補正関数評価部132aは、比較結果が所定の条件を満たすか否かを判定する。ステップS132aにおいて、補正関数評価部132aは、例えば、計測位置と推定位置との間の距離が、所定の距離よりも短いか否かを判定する。補正関数評価部132aは、計測位置と推定位置との間の距離が所定の距離よりも短い場合に、比較結果が所定の条件を満たすと判定する。ステップS131aにおいて手先位置比較部131aが複数の距離を求めている場合には、補正関数評価部132aは、最大値が所定の距離よりも短いか否かを判定しても良いし、平均値が所定の距離よりも短いか否かを判定しても良い。
 ステップS132aにおいて、比較結果が所定の条件を満たすと判定された場合には、補正関数評価部132aの動作は、ステップS133へと進む。ステップS133では、補正関数評価部132aは、最新の候補関数を補正関数として決定し、ロボット制御装置200aに出力する。ここで、最新の候補関数は、所定の条件を満たした推定位置を求めるために使用された候補関数となる。すなわち、補正関数評価部132aは、所定の条件を満たした推定位置に対応する補正関数として、最新の候補関数を出力する。一方、ステップS132aにおいて、比較結果が所定の条件を満たさないと判定された場合には、補正関数評価部132aの動作は、ステップS134aへと進む。ステップS134aでは、補正関数評価部132aは、候補関数生成部121aに候補関数の再生成を要請する。その後、補正関数生成装置100aの動作はS121aに戻る。
 候補関数の再生成を要請されると、候補関数生成部121aは、ステップS121aにおいて、候補関数の形式または係数を変更し、新たな候補関数を生成する。この際、候補関数生成部121aは、補正関数決定部130aにおける計測位置と推定位置との比較結果に応じて、候補関数の係数を変化させるか、候補関数の形式を変化させるかを決定しても良い。例えば、計測位置と推定位置との間の複数の距離が求められる場合、距離のばらつきが大きい場合には、候補関数の形式を変化させ、距離のばらつきが小さい場合には、候補関数の係数を変化させることが考えられる。
 なお、1回目のステップS121aの動作において、候補関数生成部121aは、任意の形式、任意の係数の候補関数を生成することができる。候補関数生成部121aは、例えば、他の製品等で以前に求められた補正関数を初期の候補関数とすることができる。この場合、計測位置と推定位置との間の距離がより早く収束し、補正関数がより早く求められる可能性がある。ステップS123a以降の動作は前述の通りである。以上が、図4のステップS100aにおけるロボット制御システム2aの動作である。
 次に、図4のステップS200におけるロボット制御システム2aの動作について述べる。前述の通り、ステップS200では、ロボット制御装置200aが動作する。図8は、本発明の実施の形態1によるロボット制御装置200aの構成の一例を示す図である。図8では、ロボット制御装置200aの構成が、補正関数生成装置100a、手先位置計測装置3a、及びロボットアーム300aとともに示されている。本実施の形態のロボット制御装置200aは、計測制御部201aと、記憶部202と、補正関数取得部210と、リンク長補正部220aと、目標位置設定部230と、指令値生成部240aとを備える。
 計測制御部201aは、手先位置計測装置3a及びロボットアーム300aを制御し、温度情報、関節の角度、及び計測位置を取得する。この動作は、前述の通り図4のステップS001aで実行される。また、計測制御部201aは、後述するロボット制御装置200aの動作においても、ロボットアーム300aから温度情報を取得する。また、記憶部202は、基準リンク長を記憶している。また、補正関数取得部210は、補正関数生成装置100aで生成された補正関数を取得する。この動作は、前述の通り図4のステップS002で実行される。
 また、図9は、本発明の実施の形態1によるロボット制御装置200aの動作の流れの一例を示す図である。なお、図9は、図4のステップS200におけるロボット制御装置200aの動作の流れを示している。図4のステップS001a、ステップS002、及びステップS003におけるロボット制御装置200aの動作は前述の通りである。図8及び図9を用いて、ロボット制御装置200aの動作について述べる。まず、ステップS201において、計測制御部201aは、ロボットアーム300aから最新の温度情報を取得する。次に、ステップS220において、リンク長補正部220aは、補正関数取得部210で取得された補正関数に、計測制御部201aで取得された最新の温度情報、及び記憶部202に記憶される基準リンク長を入力して、ロボットアーム300aの4つのリンク311~314のそれぞれのリンク長を補正し、補正されたリンク長を求める。
 次に、ステップS230において、目標位置設定部230は、ロボットアーム300aの手先を移動させる先となる目標位置を設定する。なお、目標位置には、目標となる手先の向きも含まれる。目標位置設定部230の構成は、様々な構成が考えられる。例えば、目標位置設定部230は、予め記憶された目標位置を読み出す。また、別の例としては、目標位置設定部230は、予め記憶された動作指令値から関節の角度を求め、求められた関節の角度と基準リンク長とに基づいて目標位置を算出する。
 次に、ステップS240において、指令値生成部240aは、補正されたリンク長に基づいて、手先が目標位置に到達するためのロボットアーム300aの関節の角度を目標角度として算出する。さらに、ステップS240において、指令値生成部240aは、ロボットアーム300aの関節の角度が目標角度となるように動作指令値を生成し、ロボットアーム300aに出力する。以上が、図4のステップS200におけるロボット制御システム2aの動作である。なお、図9に示すロボット制御装置200aの動作の流れは一例であり、一部の動作の順序などを変更することも可能である。
 ここで、図4に示す動作では、ロボット制御システム2aは、動作指令値の生成を繰り返す間、同一の補正関数を使用し続ける。この場合、ロボットアーム300aに所定の作業を開始させる前に、ロボット制御システム2aは、準備作業として補正関数生成を生成することになる。これに対して、ロボットアーム300aに所定の作業を実施させている間にも、ロボット制御システム2aは補正関数を適宜更新しても良い。図10は、本発明の実施の形態1による補正関数生成装置100aを備えるロボット制御システム2aの動作の流れの別の例を示す図である。図4に示す動作の流れと比較すると、図10に示す動作の流れは、ステップS004を備える点で異なる。以下では、相違点のみを述べる。
 ステップS200の動作が完了すると、ロボット制御システム2aの動作は、ステップS004に進む。ステップS004において、ロボット制御装置200aは、補正関数の更新が必要か否かを判定する。更新が必要であると判定されれば、ロボット制御システム2aの動作は、ステップS001aに戻り、温度情報、関節の角度、及び計測位置が再度取得され、取得された情報に基づいて補正関数が再度生成される。一方、更新は不要であると判定されれば、ロボット制御システム2aの動作は、ステップS003に進む。
 ステップS004において、ロボット制御装置200aは、所定の条件に従って補正関数の更新の要否を判定する。所定の条件としては、所定の時刻に到達した場合、ロボットアーム300aから取得された温度情報が大きく変化した場合、補正関数を更新する指示を外部から受け付けた場合、又はロボットアーム300aが行っている作業に失敗が発生した場合などが考えられる。図10に示す動作の流れによれば、ロボットアーム300aが作業を継続中であっても、ロボット制御システム2aは、必要に応じて補正関数を更新することができる。この結果、ロボット制御システム2aは、更に高精度にリンク長を補正でき、ロボットアーム300aの手先の位置を更に高精度に制御することができる。したがって、ロボット制御システム2aは、更に高精度の作業をロボットアーム300aに実行させることができる。
 本実施の形態の補正関数生成装置100a、ロボット制御システム2a、及びロボットシステム1aは、以上のように動作する。本実施の形態の補正関数生成装置100aは、ロボットアーム300aの手先の位置が計測されれば、補正関数を生成可能である。したがって、本実施の形態の補正関数生成装置100aによれば、位置計測の対象となる点を増加させることなく、ロボットアーム300aの手先の位置を高精度に制御するための補正関数を生成可能となる。また、本実施の形態のロボット制御システム2a及びロボットシステム1aによれば、位置計測の対象となる点を増加させることなく、ロボットアーム300aの手先の位置を高精度に制御することが可能となる。
実施の形態2.
 本実施の形態の補正関数生成装置は、手先の位置の基準位置からの変位を評価して、補正関数を生成するものである。図11は、本発明の実施の形態2による補正関数生成装置100bを備えるロボットシステム1b及びロボット制御システム2bの構成の一例を示す図である。ロボットシステム1bは、ロボットアーム300aを備えるロボットと、ロボット制御システム2bとを備える。また、ロボット制御システム2bは、補正関数生成装置100b及びロボット制御装置200bを備える。ロボットシステム1bには、手先位置計測装置3bが接続される。図11に示されたロボットシステム1bにおいて、ロボット制御システム2bと、手先位置計測装置3bとを除いた他の構成は、図1に示された実施の形態1におけるロボットシステム1aと同様である。以下では、実施の形態1における補正関数生成装置100a、ロボットシステム1a及びロボット制御システム2aとの相違点について述べる。
 まず、手先位置計測装置3bについて述べる。図1に示された手先位置計測装置3aは、ロボットアーム300aの手先の絶対位置を計測するものとした。一方、図11に示される手先位置計測装置3bは、ロボットアーム300aの手先の位置を基準位置からの変位として計測する。実施の形態1でも述べた通り、手先位置計測装置3bは、手先の絶対位置を計測できる必要はない。手先位置計測装置3bは、所定の基準時間の手先の位置を基準位置として、その基準位置からの変位を計測できればよい。基準位置からの変位は、基準位置からの相対位置と言い換えることができる。したがって、実施の形態1における補正関数生成装置100aは、手先の絶対位置に基づいて補正関数を生成するのに対して、本実施の形態における補正関数生成装置100bは、手先の相対位置に基づいて補正関数を生成する。
 手先位置計測装置3bは、例えば、手先に取り付けられたマーカの位置を三方向から計測するレーザ距離センサを用いて実現することができる。マーカは、立方体のブロック形状とし、周囲温度の変化に起因する形状の変化が起こりにくい素材とする。手先位置計測装置3bは、ビジョンセンサや接触式の位置センサを用いて実現しても良い。手先位置計測装置3bは、基準位置からの相対変位を測定することができれば良い。したがって、手先位置計測装置3bにおいては、絶対位置を計測する場合と比較して、計測装置の設置作業が簡易となる。手先の絶対位置を計測するためには、ロボットと計測装置との位置関係を予め取得しておく必要がある。一方、手先の相対位置を計測する場合には、任意に選択された基準時刻における手先位置を計測して基準位置とし、各時点において計測した手先位置を基準位置と比較すれば良いため、ロボットと計測装置との位置関係を取得しておく必要はない。
 次に、ロボット制御システム2bについて、述べる。図12は、本発明の実施の形態2による補正関数生成装置100bを備えるロボット制御システム2bの動作の流れの一例を示す図である。図12に示された動作の流れは、図4に示されたものと比較して、次の3つの点で異なる。第1に、図12に示された動作の流れは、ステップS005の動作を備える。第2に、図12のステップS001bの動作は、図4のステップS001aの動作と部分的に異なる。第3に、図12のステップS100bの動作は、図4のステップS100aの動作と部分的に異なる。なお、図12に示された動作の流れは、図4に示された動作の流れが変更されたものとして例示されているが、図10に示された動作の流れが変更されても良い。以下、実施の形態1と比べて動作が異なる点を中心に、本実施の形態のロボット制御システム2bの動作の流れを述べる。
 まず、ステップS005において、ロボット制御装置200bは、基準時刻における温度情報及び関節の角度をロボットアーム300aから取得する。基準時刻は、予め定められた時刻であっても良いし、温度情報が予め定められた温度を示した時刻であっても良い。また、温度情報が示す温度が安定している時間から基準時刻が選択されれば、より高精度に手先位置を推測可能な補正関数を得ることが期待できる。例えば、ロボットアーム300aを恒温状態の環境条件でしばらく放置すれば、温度情報が示す温度は安定すると考えられる。また、ステップS005において、ロボット制御装置200bは、手先位置計測装置3bに、基準時刻における手先の位置を基準位置として記憶させる。なお、ロボット制御装置200bは、基準時刻において、ロボットアーム300aが予め定められた計測姿勢となるように、ロボットアーム300aを制御する。
 次に、ステップS001bにおいて、ロボット制御装置200bは、計測時刻における温度情報及び関節の角度をロボットアーム300aから取得する。計測時刻は、基準時刻とは異なる時刻であり、複数の時刻であることが望ましい。また、ステップS001bにおいて、ロボット制御装置200bは、計測位置として、計測時刻における計測変位を手先位置計測装置3bから取得する。計測変位は、手先位置計測装置3bによって計測される手先位置の基準位置からの変位である。なお、ロボット制御装置200bは、計測時刻におけるロボットアーム300aの計測姿勢が、基準時刻における計測姿勢と同じとなるように、ロボットアーム300aを制御する。
 次に、ステップS100bにおいて、補正関数生成装置100bは、温度情報、関節の角度、及び計測変位をロボット制御装置200bから取得する。また、ステップS100bにおいて、補正関数生成装置100bは、ロボット制御装置200bから取得した情報に基づいて、補正関数を生成する。ステップS002以降のロボット制御システム2bの動作は、実施の形態1におけるロボット制御システム2aの動作と同様である。以上が、ロボット制御システム2bの動作の流れである。以下では、ステップS100bにおけるロボット制御システム2bの動作について、更に詳しく述べる。前述の通り、ステップS100bでは、補正関数生成装置100bが動作する。
 図13は、本発明の実施の形態2による補正関数生成装置100bの構成の一例を示す図である。図13では、補正関数生成装置100bの構成が、ロボット制御装置200bとともに示されている。本実施の形態の補正関数生成装置100bは、情報取得部110bと、手先位置推定部120bと、補正関数決定部130bとを備える。また、手先位置推定部120bは、候補関数生成部121aと、手先位置演算部122bとを備える。また、手先位置演算部122bは、リンク長演算部123bと、手先位置変換部124bとを備える。また、補正関数決定部130bは、手先位置比較部131bと、補正関数評価部132aとを備える。図13において、図5に示されるものと同一のものには同一の符号が付されており、これらについての詳細な説明は省略される。
 また、図14は、本発明の実施の形態2による補正関数生成装置100bの動作の流れの一例を示す図である。図14は、図12のステップS100bにおける補正関数生成装置100bの動作の流れを示している。図13及び図14を用いて、補正関数生成装置100bの動作について述べる。まず、ステップS110bにおいて、情報取得部110bは、温度情報、関節の角度、及び計測位置をロボット制御装置200bから取得する。ここで、情報取得部110bは、基準時刻における情報と、計測時刻のそれぞれにおける情報とを取得する。また、ステップS110bにおいて、情報取得部110bは、基準リンク長をロボット制御装置200bから取得する。
 次に、ステップS120bにおいて、手先位置推定部120bは、情報取得部110bから基準リンク長、温度情報、及び関節の角度を取得し、取得した情報に基づいて、温度情報が計測された時点のロボットアーム300aの手先位置を推定して推定位置を求める。なお、手先位置推定部120bは、基準位置からの変位として推定位置を求める。具体的には、手先位置推定部120bは、基準時刻における温度情報と関節の角度とに基づいて、基準時刻における推定位置を求める。また、手先位置推定部120bは、計測時刻における温度情報と関節の角度とに基づいて、計測時刻における推定位置を求める。さらに、手先位置推定部120bは、基準時刻における推定位置と計測時刻における推定位置との間の変位を求めて、最終的な推定位置として出力する。
 次に、ステップS130bにおいて、補正関数決定部130bは、情報取得部110bから取得した計測変位と、手先位置推定部120bにおいて基準位置からの変位として求められた推定位置とを比較し、比較した結果に基づいて補正関数を決定する。なお、図6と同様に、計測変位と推測位置との比較結果によっては、処理がステップS120bに戻ることになる。以上が、図12のステップS100bにおける補正関数生成装置100bの動作の流れとなる。次に、手先位置推定部120bが推定位置を求める処理、及び補正関数決定部130bが補正関数を決定する処理について、さらに述べる。
 図15は、本発明の実施の形態2による補正関数生成装置100bにおける手先位置推定部120b及び補正関数決定部130bの動作の流れの一例を示す図である。図15のステップS121aからステップS124bまでが、図14のステップS120bにおける手先位置推定部120bの動作となる。また、図15のステップS131bからステップS134aまでが、図14のステップS130bにおける補正関数決定部130bの動作となる。
 まず、ステップS121aにおいて、候補関数生成部121aは、補正関数の候補となる候補関数を生成する。この動作は、図7のステップS121aにおける動作と同様である。次に、ステップS123bにおいて、リンク長演算部123bは、基準時刻における温度情報及び基準リンク長を候補関数に入力することによって、基準時刻におけるリンク長を求める。また、ステップS123bにおいて、リンク長演算部123bは、計測時刻のそれぞれにおける温度情報及び基準リンク長を候補関数に入力することによって、計測時刻のそれぞれにおけるリンク長を求める。
 次に、ステップS124bにおいて、手先位置変換部124bは、基準時刻における関節の角度と、基準時刻におけるリンク長とに基づいて、基準時刻における手先位置を推定する。また、ステップS124bにおいて、手先位置変換部124bは、計測時刻のそれぞれにおける関節の角度と、計測時刻のそれぞれにおけるリンク長とに基づいて、計測時刻のそれぞれにおける手先位置を推定する。さらに、ステップS124bにおいて、手先位置変換部124bは、基準時刻における手先位置と、計測時刻のそれぞれにおける手先位置との間の変位を求めて、計測時刻のそれぞれにおける最終的な推定位置とする。以上が、ステップS123b及びステップS124bにおける手先位置演算部122bの動作である。
 次に、ステップS131bにおいて、手先位置比較部131bは、手先位置推定部120bで変位として求められた推定位置と、情報取得部110bで取得された計測変位とを比較する。例えば、手先位置比較部131bは、推定位置と計測変位との間の差分を算出することによって、推定位置と計測変位とを比較する。次に、ステップS132aにおいて、補正関数評価部132aは、比較結果が所定の条件を満たすか否かを判定する。ステップS132aにおいて、補正関数評価部132aは、例えば、推定位置と計測変位との間の差分が、所定の値よりも小さいか否かを判定する。補正関数評価部132aは、推定位置と計測変位との間の差分が所定の値よりも小さい場合に、比較結果が所定の条件を満たすと判定する。ステップS133及びステップS134aにおける補正関数評価部132aの動作は、図7のステップS133及びステップS134aにおける動作と同様である。以上が、図12のステップS100bにおけるロボット制御システム2bの動作である。図12のステップS002、ステップS200、及びステップS003の動作は、図4のステップS002、ステップS200、及びステップS003の動作と同様である。
 本実施の形態の補正関数生成装置100b、ロボット制御システム2b、及びロボットシステム1bは、以上のように動作する。本実施の形態の補正関数生成装置100b、ロボット制御システム2b及びロボットシステム1bによれば、簡易に設置可能である手先位置計測装置3bを用いて、ロボットアーム300aの手先の位置を高精度に制御することが可能となる。また、本実施の形態の補正関数生成装置100b、ロボット制御システム2b、及びロボットシステム1bは、実施の形態1で述べた効果も有する。
実施の形態3.
 実施の形態1による補正関数生成装置100a、及び実施の形態2による補正関数生成装置100bは、ロボットアーム300aに搭載された温度センサ321~326で計測された温度情報に基づいて補正関数を生成する構成であった。これに対して、本実施の形態の補正関数生成装置100cは、ロボットアーム300aの周囲の環境温度も使用して補正関数を生成する。
 図16は、本発明の実施の形態3による補正関数生成装置100cを備えるロボットシステム1c及びロボット制御システム2cの構成の一例を示す図である。ロボットシステム1cは、ロボットアーム300aを備えるロボットと、ロボット制御システム2cとを備える。また、ロボット制御システム2cは、補正関数生成装置100c及びロボット制御装置200cを備える。ロボットシステム1cには、手先位置計測装置3a及び環境温度計測装置4が接続される。図16に示されたロボットシステム1cにおいて、ロボット制御システム2cを除いた他の構成は、図1に示された実施の形態1におけるロボットシステム1aと同様である。なお、図16に示されるロボットシステム1cは、実施の形態1におけるロボットシステム1aの構成の一部が変更されたものであるが、他の実施の形態のロボットシステムの構成の一部を変更することもできる。以下では、実施の形態1におけるロボット制御システム2aと、本実施の形態におけるロボット制御システム2cとの相違点について述べる。まず、補正関数生成装置100cについて述べる。
 図17は、本発明の実施の形態3による補正関数生成装置100cの構成の一例を示す図である。図17では、補正関数生成装置100cの構成が、ロボット制御装置200cとともに示されている。本実施の形態の補正関数生成装置100cは、情報取得部110cと、手先位置推定部120cと、補正関数決定部130aとを備える。また、手先位置推定部120cは、候補関数生成部121cと、手先位置演算部122cとを備える。また、手先位置演算部122cは、リンク長演算部123cと、手先位置変換部124aとを備える。また、補正関数決定部130aは、手先位置比較部131aと、補正関数評価部132aとを備える。図17において、図5に示されるものと同一のものには同一の符号が付されており、これらについての詳細な説明は省略される。
 図17に示される補正関数生成装置100cの構成は、図5に示される補正関数生成装置100aの構成と比較すると、情報取得部110c、候補関数生成部121c及びリンク長演算部123cのみが異なる。まず、情報取得部110cについて述べる。情報取得部110cは、温度情報、関節の角度、計測位置、及び基準リンク長をロボット制御装置200cから取得するとともに、環境温度計測装置4で計測された環境温度もロボット制御装置200cから取得する。取得される環境温度は、温度情報が計測された時点のロボットアーム300aの周囲環境の温度である。
 次に、候補関数生成部121cについて述べる。候補関数生成部121cは、候補関数を生成する。本実施の形態の補正関数生成装置100cにおいて生成される候補関数は、温度情報及び環境温度を変数とする関数である。下記の式(5)は、候補関数生成部121cで生成される候補関数の一例である。式(5)において、T0は、環境温度計測装置4で計測された時刻nにおける環境温度である。また、式(5)において、ki,jは補正のための係数である。ここで、iは1~4のいずれかであり、jはa~hのいずれかを表す。さらに、式(5)において、K4は、係数ki,jを要素とする4行8列の行列である。式(5)における他の記号は、式(2)におけるものと同様である。
Figure JPOXMLDOC01-appb-M000005
 次に、リンク長演算部123cについて述べる。リンク長演算部123cは、候補関数生成部121cで生成される候補関数に、温度情報、基準リンク長、及び環境温度を入力することによって、リンク長を補正して時刻nにおけるリンク長を求める。補正関数生成装置100cにおける他のブロックの動作は、実施の形態1におけるものと同様である。
 次に、本実施の形態のロボット制御装置200cと、実施の形態1におけるロボット制御装置200aとの相違点について述べる。図18は、本発明の実施の形態3によるロボット制御装置200cの構成の一例を示す図である。図18では、ロボット制御装置200cの構成が、補正関数生成装置100c、手先位置計測装置3a、環境温度計測装置4、及びロボットアーム300aとともに示されている。本実施の形態のロボット制御装置200cは、計測制御部201cと、記憶部202と、補正関数取得部210と、リンク長補正部220cと、目標位置設定部230と、指令値生成部240aとを備える。
 図18に示されるロボット制御装置200cの構成は、図8に示されるロボット制御装置200aの構成と比較して、計測制御部201c及びリンク長補正部220cのみが異なる。以下では、計測制御部201c及びリンク長補正部220cの動作についてのみ相違点を述べ、他のブロックの動作については説明を省略する。計測制御部201cは、手先位置計測装置3a、ロボットアーム300aに加えて環境温度計測装置4も制御し、温度情報、関節の角度、計測位置、及び環境温度を取得する。また、リンク長補正部220cは、補正関数生成装置で生成された温度情報及び環境温度を変数とする補正関数を用いて、リンク長を補正して、最新の計測値に対応したリンク長を求める。ロボット制御装置200cの他のブロックの動作は、実施の形態1で述べた動作と同様である。
 本実施の形態の補正関数生成装置100c、ロボット制御システム2c、及びロボットシステム1cは、以上のように動作する。本実施の形態の補正関数生成装置100c、ロボット制御システム2c及びロボットシステム1cによれば、ロボットアーム300aの周囲環境の影響も反映され、ロボットアーム300aの手先の位置を更に高精度に制御することが可能となる。ロボットアーム300aの動作が遅い場合など、ロボットアーム300aの負荷が小さい場合には、ロボットアーム300aの動作に起因する温度変化よりも、環境温度に起因する温度変化が支配的となる。本実施の形態の補正関数生成装置100c、ロボット制御システム2c及びロボットシステム1cは、このような場合に特に有効となる。
 さらに、ロボットアーム300aにおいて、モータ等の発熱源が近くに存在しない箇所の温度は、周囲環境の温度の影響を大きく受けると考えられる。周囲環境の温度が計測されていれば、このような箇所には必ずしも温度センサが取り付けられる必要はない。したがって、本実施の形態の補正関数生成装置100c、ロボット制御システム2c及びロボットシステム1cによれば、ロボットアーム300aに取り付けられる温度センサの数を減少させることが可能となる。また、本実施の形態の補正関数生成装置100c、ロボット制御システム2c、及びロボットシステム1cは、実施の形態1又は実施の形態2で述べた効果も有する。
実施の形態4.
 実施の形態1による補正関数生成装置100a、実施の形態2による補正関数生成装置100b、及び実施の形態3による補正関数生成装置100cは、リンク311~314のそれぞれの長さを補正する補正関数を生成するものであった。しかし、リンク311~314のそれぞれを、更に複数の部位に分割することも考えられる。本実施の形態の補正関数生成装置は、リンク311~314のそれぞれが更に分割されて得られた部位ごとの長さを補正する補正関数を生成する。
 図19は、本発明の実施の形態4によるロボットシステム1dの構成の一例を示す図である。本実施の形態のロボットシステム1dは、ロボットアーム300dを備えるロボットと、ロボット制御システム2aとを備える。また、本実施の形態のロボットシステム1dは、手先位置計測装置3aと接続される。ロボット制御システム2a及び手先位置計測装置3aの構成は、実施の形態1におけるものと同様であり、ロボット制御システム2aで生成される候補関数及び補正関数のみが異なる。以下では、相違点についてのみ説明する。なお、図19において、ロボットシステム1dは、実施の形態1におけるロボット制御システム2aを備える構成として例示されているが、実施の形態2におけるロボット制御システム2b、又は実施の形態3におけるロボット制御システム2cを備える構成とすることもできる。
 図20は、本発明の実施の形態4によるロボットシステム1dにおけるロボットアーム300dの構成の一例を示す図である。図20において、図2に示されたと同一のものには同一の符号を付している。図20に示されたロボットアーム300dにおいて、第1のリンク311、第2のリンク312、及び第3のリンク313のそれぞれは、複数の部位に分割される。具体的には、第1のリンク311は、長さがL11である部位3111と、長さがL12である部位3112とに分割される。ここで、第1のリンク311は、部位3111と部位3112とに分割して考えられるが、必ずしも部位3111と部位3112とに物理的に分割されている訳ではない。この点は、他のリンクについても同様である。また、第2のリンク312は、長さがL21である部位3121と、長さがL22である部位3122とに分割される。また、第3のリンク313は、長さがL31である部位3131と、長さがL32である部位3132と、長さがL33である部位3133とに分割される。
 ロボットアーム300dにおいて、部位3111、部位3112、部位3121、部位3122、部位3131、部位3132、部位3133、及び第4のリンク314が、ロボットアーム300dを分割して得られる部位であり、手先の位置を推定するためのロボットアーム300dの構成単位である。ロボットアーム300dにおいて、各部位は温度センサの設置位置、または関節の位置を区切りとして分割されている。図20で示された各部位の数及び位置は一例であるが、各部位は関節を跨がないように設定される。
 補正関数生成装置100aは、上記のように設定された各部位の長さを補正する補正関数を生成する。下記の式(6)は、補正関数生成装置100aで生成される補正関数の一例である。式(6)において、Lb11、Lb12、Lb21、Lb22、Lb31、Lb32、Lb33、Lb4は、時刻nにおける補正後の各部位の長さである。また、式(6)において、L11、L12、L21、L22、L31、L32、L33、L4は、各部位の基準となる長さであり、各部位の補正前の長さである。さらに、式(6)において、K5は、係数ki,jを要素とする8行7列の行列である。式(6)における他の記号は、式(2)におけるものと同様である。
Figure JPOXMLDOC01-appb-M000006
 本実施の形態のロボットシステム1dの他の動作は、実施の形態1のロボットシステム1aと同様である。本実施の形態の補正関数生成装置100a、ロボット制御システム2a、及びロボットシステム1dによれば、ロボットアーム300dのリンク内を分割した部位を設定し、部位毎の長さを補正する補正関数を生成するので、ロボットアーム300dの手先の位置を更に高精度に制御することが可能となる。本実施の形態の補正関数生成装置100a、ロボット制御システム2a、及びロボットシステム1dは、ロボットアーム300dのリンク内に、温度変化に対する伸縮の度合いが局所的に異なる箇所が存在する場合に特に有効となる。例えば、他の箇所と比べて異なる素材が使用されている箇所や、構造が異なる箇所が、リンク内に存在すると、その箇所の伸縮の度合いは局所的に異なる可能性がある。例えば、ロボットアーム300dは、関節を駆動するモータの取り付け方法や内部の構造によっては、リンク内で局所的に熱膨張の傾向が異なる可能性がある。
 実施の形態5.
 実施の形態1による補正関数生成装置100a、実施の形態2による補正関数生成装置100b、及び実施の形態3による補正関数生成装置100cは、まず候補関数を生成し、所定の条件を満たした候補関数を補正関数とするものであった。これに対して、本実施の形態の補正関数生成装置は、まずリンク長の候補を生成し、所定の条件を満たしたリンク長の候補を用いて補正関数を生成するものである。
 図21は、本発明の実施の形態5によるロボットシステム1eの構成の一例を示す図である。本実施の形態のロボットシステム1eは、ロボットアーム300aを備えるロボットと、ロボット制御システム2eとを備える。また、ロボット制御システム2eは、補正関数生成装置100eと、ロボット制御装置200aとを備える。また、本実施の形態のロボットシステム1eは、手先位置計測装置3aと接続される。本実施の形態のロボットシステム1eの構成は、補正関数生成装置100eを除いて実施の形態1におけるものと同様である。以下では、相違点である補正関数生成装置100eについてのみ説明する。なお、図21において、ロボットシステム1dは、実施の形態1におけるロボットシステム1aから補正関数生成装置を置き換えた構成として例示されているが、実施の形態2におけるロボットシステム1b、実施の形態3におけるロボットシステム1c、又は実施の形態4におけるロボットシステム1dから補正関数生成装置を置き換えた構成とすることもできる。
 図22は、本発明の実施の形態5による補正関数生成装置100eの構成の一例を示す図である。図22では、補正関数生成装置100eの構成が、ロボット制御装置200aとともに示されている。本実施の形態の補正関数生成装置100eは、情報取得部110aと、手先位置推定部120eと、補正関数決定部130eとを備える。また、手先位置推定部120eは、候補リンク長生成部125と、手先位置演算部122eとを備える。また、補正関数決定部130eは、手先位置比較部131aと、リンク長評価部135と、補正関数生成部136とを備える。なお、図22において、図5におけるものと同様のブロックには、同一の符号が付されており、詳細な説明は省略される。
 また、図23は、本発明の実施の形態5による補正関数生成装置100eの動作の流れの一例を示す図である。補正関数生成装置100eの動作を除き、ロボット制御システム2eの動作の流れは、図4に示されるロボット制御システム2aの動作の流れと同様である。図23は、図4のステップS100aにおける補正関数生成装置100eの動作の流れを示している。図22及び図23を用いて、補正関数生成装置100eの動作について述べる。まず、ステップS110aにおいて、情報取得部110aは、温度情報、関節の角度、計測位置、及び基準リンク長を取得する。
 次に、ステップS125において、候補リンク長生成部125は、温度情報が測定された時点におけるリンク長の候補となる候補リンク長を生成する。より具体的には、時刻nに温度情報が計測されたとすると、候補リンク長生成部125は、時刻nに対応する第1のリンク311の候補リンク長La1、第2のリンク312の候補リンク長La2、第3のリンク313の候補リンク長La3、及び第4のリンク314の候補リンク長La4を生成する。後述する補正関数決定部130eにおける比較結果が所定の条件を満たすまで、候補リンク長生成部125は候補リンク長の生成を繰り返し行う。
 ここで、温度情報が複数の時刻において計測されている場合、候補リンク長も、温度情報が計測された複数の時刻のそれぞれに対して生成される。例えば、Nを整数として、温度情報がN回測定されている場合、N組の候補リンク長が生成される。候補リンク長生成部125は、例えば、候補リンク長の初期値を基準リンク長とし、その後、動作が繰り返されるたびに値を変化させて候補リンク長の生成を行う。候補リンク長生成部125は、ロボットアーム300aを分割して得られる複数の部位のそれぞれの長さを推定する長さ推定部として機能する。
 次に、ステップS122eにおいて、手先位置演算部122eは、候補リンク長及び関節の角度に基づいて、推定位置を求める。より詳細には、手先位置演算部122eは、時刻nに対応する候補リンク長、及び時刻nにおいて計測された関節の角度に基づいて、時刻nにおける推定位置Peを求める。前述の通り、推定位置は、推定された手先位置である。推定位置は、候補リンク長と、関節の角度とに基づいた幾何学演算によって求めることができる。複数の時刻において温度情報が計測されている場合、手先位置の推定は、複数の時刻のそれぞれに対して行われる。例えば、Nを整数として、温度情報がN回測定されている場合、N個の推定位置が求められる。
 次に、ステップS131aにおいて、手先位置比較部131aは、手先位置推定部120eで求められた推定位置と、情報取得部110aで取得された計測位置とを比較する。例えば、手先位置比較部131aは、時刻nにおける計測位置と、時刻nにおける推定位置との間の距離Dを算出することによって、計測位置と推定位置とを比較する。複数の時刻において温度情報が計測されている場合、手先位置比較部131aは、複数の時刻のそれぞれにおいて、計測位置と推定位置との間の距離を算出する。この場合、比較結果として、複数の距離が求められる。例えば、Nを整数として、温度情報がN回測定されている場合、N個の計測位置が取得され、N個の推定位置が求められるので、手先位置比較部131aは、N個の距離を算出する。
 次に、ステップS135において、リンク長評価部135は、比較結果が所定の条件を満たすか否かを判定する。ステップS135において、リンク長評価部135は、例えば、計測位置と推定位置との間の距離が、所定の距離よりも短いか否かを判定する。リンク長評価部135は、計測位置と推定位置との間の距離が所定の距離よりも短い場合に、比較結果が所定の条件を満たすと判定する。ステップS131aにおいて手先位置比較部131aが複数の距離を求めている場合には、リンク長評価部135は、複数の距離の全てが所定の条件を満たす場合に、比較結果が所定の条件を満たすと判定する。一方、複数の距離のうちの1つでも所定の条件を満たさない場合、リンク長評価部135は、比較結果が所定の条件を満たさないと判定する。
 ステップS135において、比較結果が所定の条件を満たすと判定された場合には、補正関数決定部130eの動作は、ステップS136へと進む。ステップS136において、リンク長評価部135は、最新の候補リンク長La1、La2、La3、及びLa4を補正関数生成部136に出力する。ここで、最新の候補リンク長は、所定の条件を満たした推定位置を求めるために使用された候補リンク長となる。また、ステップS136において、補正関数生成部136は、リンク長評価部135から出力された候補リンク長と、情報取得部110aで取得された温度情報及び基準リンク長とに基づいて補正関数を生成し、ロボット制御装置200aに出力する。したがって、補正関数生成部136は、所定の条件を満たした推定位置に対応する補正関数を生成することになる。
 一方、ステップS135において、比較結果が所定の条件を満たさないと判定された場合には、補正関数決定部130eの動作は、ステップS137へと進む。ステップS137において、リンク長評価部135は、候補リンク長生成部125に候補リンク長の再生成を要請する。その後、補正関数生成装置100eの動作はS125に戻る。複数の時刻において温度情報が計測されている場合、候補リンク長生成部125は、常に全ての時刻に対応する候補リンク長を生成する必要はなく、ステップS135において所定の条件を満たさなかった候補リンク長のみを再生成すれば良い。例えば、Nを整数として、温度情報がN回測定されている場合、N組の候補リンク長が生成される。N組の候補リンク長のうち時刻n1における候補リンク長のみが、ステップS135において所定の条件を満たさなかったのであれば、候補リンク長生成部125は、時刻n1における候補リンク長のみを再生成すれば良い。以上が、補正関数生成装置100eの動作である。
 次に、図23のステップS136における補正関数生成部136の動作について、更に詳細に述べる。図24は、本発明の実施の形態5による補正関数生成装置100eにおける補正関数生成部136の構成の一例を示す図である。図24では、補正関数生成部136の構成が、情報取得部110a、リンク長評価部135、及びロボット制御装置200aとともに示されている。補正関数生成部136は、候補関数生成部121aと、リンク長演算部123aと、リンク長比較部138と、補正関数評価部132bとを備える。なお、候補関数生成部121a及びリンク長演算部123aは、実施の形態1におけるものと同様のものである。また、図25は、本発明の実施の形態5による補正関数生成装置100eにおける補正関数生成部136の動作の流れの一例を示す図である。図24及び図25を用いて、補正関数生成部136の動作について述べる。
 まず、ステップS121aにおいて、候補関数生成部121aは、補正関数の候補となる候補関数を生成する。候補関数生成部121aは、例えば、上述の式(2)、式(3)、又は式(4)で表される候補関数を生成する。後述するリンク長比較部138における比較結果が所定の条件を満たすまで、候補関数生成部121aは候補関数の生成を繰り返し行う。次に、ステップS123aにおいて、リンク長演算部123aは、情報取得部110aによって取得された温度情報及び基準リンク長を候補関数に入力することによって、リンク長を補正して時刻nにおけるリンク長Lb1、Lb2、Lb3、及びLb4を求める。時刻nは、温度情報が計測された時刻を表す。複数の時刻において温度情報が計測されている場合、リンク長の補正は、複数の時刻のそれぞれに対して行われる。例えば、Nを整数として、温度情報がN回測定されている場合、N組のリンク長が求められる。
 次に、ステップS138において、リンク長比較部138は、2種類のリンク長を比較する。ここで、2種類のリンク長の一方は、リンク長演算部123aで候補関数を用いて求められたリンク長Lb1、Lb2、Lb3、及びLb4である。また、2種類のリンク長の他方は、リンク長評価部135から出力されたリンク長La1、La2、La3、及びLa4である。例えば、リンク長比較部138は、2種類のリンク長の間の差分を算出する。また、リンク長比較部138は、ロボットアーム300aが備えるリンク毎に、2種類のリンク長を比較する。
 より具体的には、リンク長比較部138は、Lb1とLa1との差分dL1を、時刻nにおける第1のリンク311に対する差分として算出する。また、リンク長比較部138は、Lb2とLa2との差分dL2を、時刻nにおける第2のリンク312に対する差分として算出する。また、リンク長比較部138は、Lb3とLa3との差分dL3を、時刻nにおける第3のリンク313に対する差分として算出する。また、リンク長比較部138は、Lb4とLa4との差分dL4を、時刻nにおける第4のリンク314に対する差分として算出する。
 複数の時刻において温度情報が計測されている場合、リンク長比較部138は、複数の時刻のそれぞれにおいて、対応する2組のリンク長を比較する。例えば、Nを整数として、温度情報がN回測定されている場合、リンク長比較部138は、差分dL1、dL2、dL3、及びdL4からなる組をN組算出する。次に、ステップS132bにおいて、補正関数評価部132bは、リンク長比較部138における比較結果が所定の条件を満たすか否かを判定する。ステップS132bにおいて、補正関数評価部132bは、例えば、リンク長比較部138で求められた差分dL1、dL2、dL3、及びdL4の全てが、所定の値よりも小さいか否かを判定する。補正関数評価部132bは、差分dL1、dL2、dL3、及びdL4の全てが所定の値よりも小さい場合に、比較結果が所定の条件を満たすと判定する。一方、補正関数評価部132bは、差分dL1、dL2、dL3、及びdL4の少なくとも1つが所定の値よりも大きい場合に、比較結果が所定の条件を満たさないと判定する。
 ステップS138において、リンク長比較部138がN組の差分を求めている場合には、補正関数評価部132bは、各リンクに対するN個の差分の最大値または平均値を求め、求められた最大値または平均値が所定の値よりも小さい否かを判定すれば良い。この場合、補正関数評価部132bは、求められた平均値または最大値の全てが所定の値よりも小さい場合に、比較結果が所定の条件を満たすと判定する。ステップS132bにおいて、比較結果が所定の条件を満たすと判定された場合には、補正関数評価部132bの動作は、ステップS133へと進む。ステップS133では、補正関数評価部132bは、最新の候補関数を補正関数として決定し、ロボット制御装置200aに出力する。
 一方、ステップS132bにおいて、比較結果が所定の条件を満たさないと判定された場合には、補正関数評価部132bの動作は、ステップS134bへと進む。ステップS134bでは、補正関数評価部132bは、候補関数生成部121aに候補関数の再生成を要請する。その後、補正関数生成部136の動作はS121aに戻る。候補関数の再生成を要請されると、候補関数生成部121aは、ステップS121aにおいて、候補関数の形式または係数を変更し、新たな候補関数を生成する。この際、候補関数生成部121aは、所定の値よりも差分が大きいと判定されたリンクに対応する係数のみを変更しても良い。
 本実施の形態の補正関数生成装置100eは、以上のように動作する。本実施の形態の補正関数生成装置100eによれば、位置計測の対象となる点を増加させることなく、ロボットアーム300aの手先の位置を高精度に制御するための補正関数を生成可能となる。また、本実施の形態のロボット制御システム2e及びロボットシステム1eによれば、位置計測の対象となる点を増加させることなく、ロボットアーム300aの手先の位置を高精度に制御することが可能となる。
 実施の形態6.
 温度変化に対するロボットアームの伸縮は、動作条件によって異なる特徴を持つことが考えられる。例えば、動作条件によって、ロボットアームの伸縮する部位が変化したり、伸縮の程度が変化したりすることが考えられる。動作条件としては、ロボットアームの動作経路、動作速度、動作加速度、周囲環境の温度、または設置される台の構造など、様々な条件が考えられる。ロボットアームの動作経路、動作速度、又は動作加速度をロボットアームの動作内容と呼ぶ。本実施の形態のロボット制御システム及びロボットシステムは、ロボット制御装置が、動作条件毎に生成された複数の補正関数を記憶し、ロボットアームに作業を行わせる際の動作条件に応じて補正関数を選択することで、より高精度な作業を実現するものである。
 図26は、本発明の実施の形態6によるロボットシステム1fの構成の一例を示す図である。本実施の形態のロボットシステム1fは、ロボットアーム300aを備えるロボットと、ロボット制御システム2fとを備える。また、ロボット制御システム2fは、補正関数生成装置100aと、ロボット制御装置200fとを備える。また、本実施の形態のロボットシステム1fは、手先位置計測装置3aと接続される。本実施の形態のロボットシステム1fの構成は、ロボット制御装置200fを除いて実施の形態1におけるロボットシステム1aと同様である。以下では、相違点であるロボット制御装置200fについてのみ説明する。なお、図26において、ロボットシステム1fは、実施の形態1におけるロボットシステム1aからロボット制御装置を置き換えた構成として例示されているが、実施の形態2におけるロボットシステム1b、実施の形態3におけるロボットシステム1c、実施の形態4におけるロボットシステム1d、又は実施の形態5におけるロボットシステム1eからロボット制御装置を置き換えた構成とすることもできる。
 図27は、本発明の実施の形態6によるロボット制御装置200fの構成の一例を示す図である。図27では、ロボット制御装置200fの構成が、補正関数生成装置100a、手先位置計測装置3a、及びロボットアーム300aとともに示されている。本実施の形態のロボット制御装置200fは、計測制御部201fと、記憶部202と、補正関数取得部210と、補正関数記憶部250と、補正関数選択部260と、リンク長補正部220aと、目標位置設定部230と、指令値生成部240aとを備える。図27に示されたロボット制御装置200fは、計測制御部201fと、補正関数記憶部250と、補正関数選択部260とを除いて、図8に示されたロボット制御装置200aと同様の構成となる。
 図28は、本発明の実施の形態6によるロボット制御システム2fの動作の流れの一例を示す図である。図28において、図4に示されたロボット制御システム2aの動作と同様の動作には、同一の符号を付している。以下、図28を用いて、図8に示されたロボット制御装置200aからの相違点を中心に、図27に示されたロボット制御装置200fの動作を述べる。まず、ステップS011において、計測制御部201fは、ロボットアーム300aの複数の動作条件から1つを選択し、選択した動作条件を設定する。例えば、動作条件がロボットアーム300aの動作内容であれば、計測制御部201fは、その動作内容となるようなロボットアーム300aの動作指令値を準備する。また、例えば、動作条件がロボットアーム300aの周囲環境の温度であれば、計測制御部201fは、周囲環境がその温度となるまでロボットアーム300aの動作を待機させる。
 次に、ステップS001aにおいて、計測制御部201fは、ロボットアーム300aの計測姿勢を制御するとともに、複数の時刻における温度情報、関節の角度、及び計測位置を取得する。ステップS001aにおけるロボット制御装置200fの動作は、実施の形態1におけるロボット制御装置200aの動作と同様である。ただし、温度情報が取得される複数の時刻の間には、計測制御部201fは、設定された動作条件に合致した動作をロボットアーム300aにさせる。また、計測制御部201fは、周囲環境が動作条件に合致していることを確認する。
 次に、ステップS100aにおいて、補正関数生成装置100aは、温度情報、関節の角度、及び計測位置をロボット制御装置200fから取得する。また、ステップS100aにおいて、補正関数生成装置100aは、ロボット制御装置200fから取得した情報に基づいて、補正関数を生成する。生成された補正関数は、ロボット制御装置200fに出力される。ステップS100aにおける補正関数生成装置100aの動作は、実施の形態1における補正関数生成装置100aの動作と同様である。
 次に、ステップS012において、補正関数取得部210は、補正関数生成装置100aから出力された補正関数を取得する。また、ステップS012において、補正関数記憶部250は、取得された補正関数を動作条件と関連付けて記憶する。補正関数記憶部250は、互いに異なる動作条件において生成された複数の補正関数を記憶する。次に、ステップS013において、計測制御部201fは、補正関数の生成が必要な全ての動作条件に対して、補正関数の生成が完了したかを判定する。全ての動作条件に対して補正関数を生成済みであれば、ロボット制御システム2fの動作はステップS014へと進む。一方、補正関数がまだ生成されていない動作条件が存在する場合には、ロボット制御システム2fの動作はステップS011へと戻る。ステップS011からステップS013までが、ロボット制御システム2fが補正関数を生成する動作である。
 ステップS014以降の動作は、ロボット制御システム2fが、補正関数に基づいて動作指令値を生成する動作である。ステップS014において、補正関数選択部260は、補正関数記憶部に記憶された複数の補正関数から、ロボットアーム300aに作業をさせる際の動作条件に合った補正関数を選択する。次に、ステップS200において、ロボット制御装置200fは、選択された補正関数に基づいて、ロボットアーム300aの動作を制御するための動作指令値を生成する。生成された動作指令値は、ロボットアーム300aに出力される。ステップS200におけるロボット制御装置200fの動作は、実施の形態1におけるロボット制御装置200aの動作と同様である。
 次に、ステップS003において、ロボット制御装置200fは、ロボットアーム300aの動作を終了させるか否かを判定する。ステップS003において、動作を終了させると判定されると、ロボット制御システム2fは動作を終了する。一方、ステップS003において、まだ動作を終了させないと判定されると、ロボット制御システム2fの動作はステップS200へと戻り、動作指令値の生成が繰り返される。以上が、ロボット制御システム2fの動作の流れである。
 本実施の形態のロボット制御システム2f、及びロボットシステム1fは、以上のように動作する。本実施の形態のロボット制御システム2f、及びロボットシステム1fによれば、複数の動作条件が予め決定されている場合に、ロボットアーム300aの手先の位置を更に高精度に制御することが可能となる。例えば、ロボットアーム300aが予め定められた動作パターンでの連続運転を行う場合や、冷凍倉庫、常温環境などの複数種類の温度条件での連続運転を行う場合などに、本実施の形態のロボット制御システム2f、及びロボットシステム1fは効果的である。
 実施の形態7.
 実施の形態1のロボット制御システム2aにおいて、ロボット制御装置200aは、補正関数を用いて補正されたリンク長に基づいて、ロボットアーム300aの関節の角度の目標値を求める構成であった。さらに、ロボット制御装置200aは、求められた関節の角度の目標値からロボットアーム300aの動作指令値を求める構成であった。しかし、ロボットアーム300aが縮んだ場合には、目標とする位置に手先を届かせるロボットアーム300aの姿勢が存在せず、ロボット制御装置200aが関節の角度の目標値を算出できない場合が起こり得る。すなわち、ロボットアーム300aが縮んだ場合には、目標とする位置がロボットアーム300aの動作範囲外となる可能性がある。
 また、ロボット制御装置200aにおいて、リンク長補正部220aがリンク長を補正した結果、目標位置設定部230が生成する目標位置が特異点となってしまう可能性がある。なお、特異点とは、手先の位置および向きから関節の角度を一意に決定することのできない、手先の位置および向きをいう。本実施の形態のロボットシステム及びロボット制御システムは、算出された関節の角度を評価する機能を備えたロボット制御装置を備える。
 図29は、本発明の実施の形態7によるロボットシステム1gの構成の一例を示す図である。本実施の形態のロボットシステム1gは、ロボットアーム300aを備えるロボットと、ロボット制御システム2gとを備える。また、ロボット制御システム2gは、補正関数生成装置100aと、ロボット制御装置200gとを備える。また、本実施の形態のロボットシステム1gは、手先位置計測装置3aと接続される。本実施の形態のロボットシステム1gの構成は、ロボット制御装置200gを除いて実施の形態1におけるロボットシステム1aと同様である。以下では、相違点であるロボット制御装置200gについてのみ説明する。
 なお、図29において、ロボットシステム1gは、実施の形態1におけるロボットシステム1aからロボット制御装置を置き換えた構成として例示されているが、実施の形態2におけるロボットシステム1b、実施の形態3におけるロボットシステム1c、実施の形態4におけるロボットシステム1d、又は実施の形態5におけるロボットシステム1eからロボット制御装置を置き換えた構成とすることもできる。また、ロボットシステム1gは、実施の形態6におけるロボットシステム1fと同様に、動作指令値を生成する際に、記憶された複数の補正関数から1つを選択して使用する構成とすることもできる。
 図30は、本発明の実施の形態7によるロボット制御装置200gの構成の一例を示す図である。図30では、ロボット制御装置200gの構成が、補正関数生成装置100a、手先位置計測装置3a、及びロボットアーム300aとともに示されている。本実施の形態のロボット制御装置200gは、計測制御部201aと、記憶部202と、補正関数取得部210と、リンク長補正部220aと、目標位置設定部230と、指令値生成部240gとを備える。図30に示されたロボット制御装置200gは、指令値生成部240gを除いて、図8に示されたロボット制御装置200aと同様の構成となる。
 図31は、本発明の実施の形態7によるロボット制御装置200gにおける指令値生成部240gの構成の一例を示す図である。図31では、指令値生成部240gの構成が、記憶部202、リンク長補正部220a、目標位置設定部230、及びロボットアーム300aとともに示されている。指令値生成部240gは、第1の角度算出部241と、第2の角度算出部242と、関節角度評価部243と、第3の角度算出部244と、指令値出力部245とを備える。第1の角度算出部241は、記憶部202に記憶される基準リンク長と、目標位置設定部230から出力される目標位置とに基づいて、手先が目標位置に到達するためのロボットアーム300aの関節の角度を第1の目標角度θ1として算出する。なお、目標位置には、目標となる手先の向きも含まれる。第1の目標角度θ1は、ロボットアーム300aの各リンクの長さが基準リンク長である場合における関節の目標角度である。なお、qは、ロボットアーム300aの関節を識別するための識別子である。
 第2の角度算出部242は、リンク長補正部220aから出力される補正後のリンク長と、目標位置設定部230から出力される目標位置とに基づいて、手先が目標位置に到達するためのロボットアーム300aの関節の角度を第2の目標角度θ2として算出する。第2の目標角度θ2は、ロボットアーム300aの各リンクの長さが補正後のリンク長である場合における関節の目標角度である。関節角度評価部243は、第2の目標角度θ2が望ましくない角度に近付いていないかを評価し、補正係数a1を生成する。
 ここで、望ましくない角度とは、ロボットアーム300aの姿勢が特異点に近付くような関節の角度である。また、多くの関節が伸びきるような関節の角度も、望ましくない角度となる。関節の角度が望ましくない角度となるようなロボットアーム300aの姿勢は、許容されない姿勢となる。望ましくない関節の角度は、許容されない関節の角度と言い換えることもできる。望ましくない関節の角度は、関節の角度に関する制約条件として予め設定される。したがって、関節角度評価部243は、第2の目標角度θ2と予め設定された制約条件とを比較することで、第2の目標角度θ2が望ましくない角度に近いか否かを評価する。
 第2の目標角度θ2で表されるロボットアーム300aの姿勢が、許容されない姿勢に近い場合、関節角度評価部243は補正係数a1を0とする。また、第2の目標角度θ2で表されるロボットアーム300aの姿勢が、許容されない姿勢から離れるに従って、関節角度評価部243は補正係数a1を徐々に大きくする。そして、第2の目標角度θ2で表されるロボットアーム300aの姿勢が、許容されない姿勢から十分離れている場合、関節角度評価部243は補正係数a1を1とする。第3の角度算出部244は、第1の目標角度θ1、第2の目標角度θ2、補正係数a1を用いた下記の式(7)の演算によって、第3の目標角度θ3を算出する。
Figure JPOXMLDOC01-appb-M000007
 指令値出力部245は、ロボットアーム300aの関節の角度が第3の目標角度θ3となるように動作指令値を生成し、ロボットアーム300aに出力する。指令値生成部240gは、以上のように動作する。ロボット制御装置200gにおいて、指令値生成部240g以外の動作は実施の形態1におけるロボット制御装置200aの動作と同様である。本実施の形態のロボット制御システム2g及びロボットシステム1gによれば、ロボットアーム300aが許容されない姿勢となることを防止することが可能となる。
 例えば、ロボットアーム300aの姿勢が特異点に陥ると、動作を継続するためにはロボットアーム300aは姿勢を大幅に変更する必要がある。この結果、ロボットアーム300aは、滑らかな動作を実現することが困難となる。本実施の形態のロボット制御システム2g及びロボットシステム1gによれば、ロボットアーム300aに滑らかな動作を継続させながら、ロボットアーム300aの手先の位置を更に高精度に制御することも可能となる。また、例えば、ロボットアーム300aが縮むことによって、目標とする位置がロボットアーム300aの手先が到達できない位置となると、ロボットアームの動作が停止することが考えられる。本実施の形態のロボット制御システム2g及びロボットシステム1gによれば、ロボットアーム300aの動作を停止させず、安定して動作を継続させながら、ロボットアーム300aの手先の位置を更に高精度に制御することも可能となる。
 1a、1b、1c、1d、1e、1f、1g ロボットシステム、2a、2b、2c、2e、2f、2g ロボット制御システム、3a、3b 手先位置計測装置、100a、100b、100c、100e 補正関数生成装置、110a、110b、110c 情報取得部、120a、120b、120c、120e 手先位置推定部、121a、121c 候補関数生成部、122a、122b、122c、122e 手先位置演算部、123a、123b、123c リンク長演算部、124a、124b 手先位置変換部、125 候補リンク長生成部、130a、130b、130e 補正関数決定部、131a、131b 手先位置比較部、132a、132b 補正関数評価部、135 リンク長評価部、136 補正関数生成部、138 リンク長比較部、200a、200c、200f、200g ロボット制御装置、201a、201c、201f 計測制御部、202 記憶部、210 補正関数取得部、220a、220c リンク長補正部、230 目標位置設定部、240a、240g 指令値生成部、241 第1の角度算出部、242 第2の角度算出部、243 関節角度評価部、244 第3の角度算出部、245 指令値出力部、250 補正関数記憶部、260 補正関数選択部、300a、300d ロボットアーム、311 第1のリンク、312 第2のリンク、313 第3のリンク、314 第4のリンク、321 第1の温度センサ、322 第2の温度センサ、323 第3の温度センサ、324 第4の温度センサ、325 第5の温度センサ、326 第6の温度センサ、4 環境温度計測装置、401 プロセッサ、402メモリ、403 データバス、3111、3112、3121、3122、3131、3132、3133 部位。

Claims (15)

  1.  関節を有するロボットアームの手先の位置を制御するために用いられる補正関数を生成する補正関数生成装置であって、
     前記ロボットアームの所定位置で計測された温度情報、前記温度情報が計測された時点の前記関節の角度、及び前記温度情報が計測された時点の前記手先の位置を計測して得られる計測位置を取得する情報取得部と、
     前記関節の角度に基づいて、前記温度情報を取得した時点の前記手先の位置を推定して推定位置を求める手先位置推定部と、
     前記計測位置と前記推定位置とを比較した結果に基づいて、前記温度情報を変数とする関数である前記補正関数を決定する補正関数決定部と
    を備える補正関数生成装置。
  2.  前記温度情報、前記関節の角度及び前記計測位置は、複数の時刻のそれぞれにおいて取得され、
     前記手先位置推定部は、前記複数の時刻のそれぞれにおける前記推定位置を求め、
     前記補正関数決定部は、前記複数の時刻のそれぞれにおける前記計測位置と前記推定位置とを比較した結果に基づいて、前記補正関数を決定する
    請求項1に記載の補正関数生成装置。
  3.  前記計測位置は、所定の基準位置からの変位として取得される請求項1又は請求項2に記載の補正関数生成装置。
  4.  前記補正関数決定部は、
     前記計測位置と前記推定位置とを比較した結果が所定の条件を満たす場合には、前記推定位置に対応する前記補正関数を出力し、
     前記計測位置と前記推定位置とを比較した結果が前記所定の条件を満たさない場合には、前記手先の位置の推定を再実施するように前記手先位置推定部に要請する
    請求項1から請求項3のいずれか1項に記載の補正関数生成装置。
  5.  前記手先位置推定部は、
     前記温度情報を変数とする関数である候補関数を前記補正関数の候補として生成する候補関数生成部と、
     前記温度情報、前記関節の角度及び前記候補関数に基づいて、前記推定位置を求める手先位置演算部と
    を備える請求項4に記載の補正関数生成装置。
  6.  前記補正関数決定部は、前記計測位置と前記推定位置とを比較した結果が前記所定の条件を満たす場合には、前記推定位置を求めるために使用された前記候補関数を前記補正関数として出力する請求項5に記載の補正関数生成装置。
  7.  前記候補関数は、前記ロボットアームの周囲環境の温度を変数とする関数である請求項5又は請求項6に記載の補正関数生成装置。
  8.  前記候補関数は、前記温度情報を変数として前記ロボットアームを分割して得られる複数の部位のそれぞれの長さを補正する関数であり、
     前記手先位置演算部は、前記温度情報及び前記候補関数に基づいて前記複数の部位のそれぞれの長さを補正し、補正された前記複数の部位のそれぞれの長さ及び前記関節の角度に基づいて前記推定位置を求める
    請求項5から請求項7のいずれか1項に記載の補正関数生成装置。
  9.  前記複数の部位のそれぞれが存在する範囲は、前記関節を跨がない請求項8に記載の補正関数生成装置。
  10.  前記手先位置推定部は、
     前記ロボットアームを分割して得られる複数の部位のそれぞれの長さを推定する長さ推定部と、
     前記関節の角度及び推定された前記複数の部位のそれぞれの長さに基づいて、前記推定位置を求める手先位置演算部と
    を備える請求項4に記載の補正関数生成装置。
  11.  前記補正関数決定部は、前記計測位置と前記推定位置とを比較した結果が前記所定の条件を満たす場合には、前記推定位置を求めるために使用された前記複数の部位のそれぞれの長さと、前記温度情報とに基づいて前記補正関数を生成する
    請求項10に記載の補正関数生成装置。
  12.  請求項8から請求項11のいずれか1項に記載の補正関数生成装置と、ロボット制御装置とを備えるロボット制御システムであって、
     前記ロボット制御装置は、
     前記補正関数生成装置から前記補正関数を取得する補正関数取得部と、
     前記補正関数及び前記温度情報を用いて前記複数の部位のそれぞれの長さを補正するリンク長補正部と、
     補正された前記複数の部位のそれぞれの長さに基づいて、前記手先が目標位置に到達するように前記ロボットアームを制御するための動作指令値を生成する指令値生成部と
    を備えるロボット制御システム。
  13.  前記ロボット制御装置は、
     前記ロボットアームの互いに異なる動作条件のそれぞれにおいて前記補正関数生成装置が生成した複数の前記補正関数を記憶する補正関数記憶部と、
     前記ロボットアームの前記動作条件に基づいて、前記補正関数記憶部が記憶する複数の前記補正関数のうちの1つを選択する補正関数選択部と
    を備え、
     前記リンク長補正部は、前記補正関数選択部が選択した前記補正関数と、前記温度情報とを用いて前記複数の部位のそれぞれの長さを補正する請求項12に記載のロボット制御システム。
  14.  前記指令値生成部は、
     基準となる前記各部位の長さに基づいて、前記手先が前記目標位置に到達するための前記関節の角度を第1の目標角度として算出する第1の角度算出部と、
     補正された前記各部位の長さに基づいて、前記手先が前記目標位置に到達するための前記関節の角度を第2の目標角度として算出する第2の角度算出部と、
     前記第2の目標角度と予め設定された制約条件とを比較して補正係数を生成する関節角度評価部と、
     前記第1の目標角度と、前記第2の目標角度と、前記補正係数とに基づいて、第3の目標角度を算出する第3の角度算出部と
    を備え、前記第3の目標角度に基づいて前記動作指令値を生成する請求項12又は請求項13に記載のロボット制御システム。
  15.  請求項12から請求項14のいずれか1項に記載のロボット制御システムと、前記ロボット制御システムによって制御される前記ロボットアームとを備えるロボットシステム。
PCT/JP2018/006894 2018-02-26 2018-02-26 補正関数生成装置、ロボット制御システム及びロボットシステム WO2019163116A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201880090017.7A CN111819037B (zh) 2018-02-26 2018-02-26 校正函数生成装置、机器人控制系统及机器人系统
PCT/JP2018/006894 WO2019163116A1 (ja) 2018-02-26 2018-02-26 補正関数生成装置、ロボット制御システム及びロボットシステム
JP2018554517A JP6528913B1 (ja) 2018-02-26 2018-02-26 補正関数生成装置、ロボット制御システム及びロボットシステム
DE112018007159.6T DE112018007159B4 (de) 2018-02-26 2018-02-26 Korrekturfunktion-erzeugungseinrichtung, robotersteuersystem und robotersystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/006894 WO2019163116A1 (ja) 2018-02-26 2018-02-26 補正関数生成装置、ロボット制御システム及びロボットシステム

Publications (1)

Publication Number Publication Date
WO2019163116A1 true WO2019163116A1 (ja) 2019-08-29

Family

ID=66821526

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/006894 WO2019163116A1 (ja) 2018-02-26 2018-02-26 補正関数生成装置、ロボット制御システム及びロボットシステム

Country Status (4)

Country Link
JP (1) JP6528913B1 (ja)
CN (1) CN111819037B (ja)
DE (1) DE112018007159B4 (ja)
WO (1) WO2019163116A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021019071A (ja) * 2019-07-19 2021-02-15 日本電産サンキョー株式会社 産業用ロボットおよび産業用ロボットの制御方法
KR102303812B1 (ko) * 2019-11-12 2021-09-23 현대위아 주식회사 공작기계의 주축 열변위 측정 및 보정방법과 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09319420A (ja) * 1996-05-31 1997-12-12 Ricoh Co Ltd 組立ロボット
JP2006285301A (ja) * 2005-03-31 2006-10-19 Yaskawa Electric Corp ロボット制御装置およびロボットの位置決め精度補正方法
JP2014000649A (ja) * 2012-06-20 2014-01-09 Canon Inc ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体
JP2017146879A (ja) * 2016-02-19 2017-08-24 ファナック株式会社 複数の産業機械の作業分担を学習する機械学習装置,産業機械セル,製造システムおよび機械学習方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62169213A (ja) 1986-01-22 1987-07-25 Hitachi Ltd 位置決め装置
JPH06114769A (ja) * 1992-09-29 1994-04-26 Toyoda Mach Works Ltd オフラインティーチング装置
JPH06297362A (ja) * 1993-04-15 1994-10-25 Nachi Fujikoshi Corp ロボット位置補正方法及び装置
JP6398204B2 (ja) 2014-01-29 2018-10-03 株式会社デンソーウェーブ ロボット装置の位置決め精度補正方法
EP3134780B1 (en) 2014-04-22 2019-11-20 ABB Schweiz AG Compensating robot movement deviations
KR102469258B1 (ko) * 2014-11-18 2022-11-22 퍼시몬 테크놀로지스 코포레이션 엔드 이펙터 위치 추정을 위한 로봇의 적응형 배치 시스템
JP6710518B2 (ja) * 2015-12-03 2020-06-17 東京エレクトロン株式会社 搬送装置及び補正方法
JP6805812B2 (ja) 2016-12-26 2020-12-23 株式会社デンソーウェーブ マニプレータの動作判定装置
JP6805811B2 (ja) 2016-12-26 2020-12-23 株式会社デンソーウェーブ マニプレータの動作判定装置
JP6542839B2 (ja) 2017-06-07 2019-07-10 ファナック株式会社 制御装置及び機械学習装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09319420A (ja) * 1996-05-31 1997-12-12 Ricoh Co Ltd 組立ロボット
JP2006285301A (ja) * 2005-03-31 2006-10-19 Yaskawa Electric Corp ロボット制御装置およびロボットの位置決め精度補正方法
JP2014000649A (ja) * 2012-06-20 2014-01-09 Canon Inc ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体
JP2017146879A (ja) * 2016-02-19 2017-08-24 ファナック株式会社 複数の産業機械の作業分担を学習する機械学習装置,産業機械セル,製造システムおよび機械学習方法

Also Published As

Publication number Publication date
CN111819037B (zh) 2023-06-02
CN111819037A (zh) 2020-10-23
DE112018007159T5 (de) 2020-12-17
DE112018007159B4 (de) 2022-10-06
JPWO2019163116A1 (ja) 2020-04-09
JP6528913B1 (ja) 2019-06-12

Similar Documents

Publication Publication Date Title
KR102050895B1 (ko) 로봇의 캘리브레이션 및 프로그래밍
JP6429473B2 (ja) ロボットシステム、ロボットシステムの校正方法、プログラム、およびコンピュータ読み取り可能な記録媒体
JP5632036B2 (ja) Cnc工作機械の誤差を補正する装置
JP2020142367A5 (ja)
US10618164B2 (en) Robot system having learning control function and learning control method
KR102271941B1 (ko) 비전을 갖는 자동화 기계가공 헤드 및 방법
JP6430986B2 (ja) ロボットを用いた位置決め装置
JP5949242B2 (ja) ロボットシステム、ロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラム
US20190176325A1 (en) An Error Modeling Method For End-Effector Space-Curve Trajectory Of Six Degree-of-Freedom Robots
JP4112538B2 (ja) ロボットの運動学的キャリブレーション装置及びその方法
EP2767370A2 (en) Robot system and method for controlling the same
US11292132B2 (en) Robot path planning method with static and dynamic collision avoidance in an uncertain environment
WO2019163116A1 (ja) 補正関数生成装置、ロボット制御システム及びロボットシステム
WO2021242215A1 (en) A robot path planning method with static and dynamic collision avoidance in an uncertain environment
CN110977963A (zh) 一种工业机器人标定系统的自适应对准控制方法
KR20080088165A (ko) 로봇 캘리브레이션 방법
JP6485620B2 (ja) ロボット制御システムおよびロボット制御方法
CN113910218A (zh) 基于运动学与深度神经网络融合的机器人标定方法和装置
JP5378908B2 (ja) ロボットの精度調整方法およびロボット
CN115008476A (zh) 基于等效运动学模型的机器人标定方法及设备
KR20200057503A (ko) 로봇 보정 시스템 및 그것의 보정 방법
CN107263463B (zh) 用于机器手臂系统的机构参数校正方法
KR20160007791A (ko) 중재시술 로봇의 캘리브레이션 방법
WO2022025059A1 (ja) ロボットシステム
JP6343938B2 (ja) ロボット、制御装置、ロボットシステム及び制御方法

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018554517

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18907396

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 18907396

Country of ref document: EP

Kind code of ref document: A1