Controller for multi-axis robot, robot system, and control program

The control device for multi-axis robots employs a position and posture correction mechanism using matrix calculations to dynamically update axis state quantities, ensuring accurate target positioning and collision avoidance.

JP7732762B2Active Publication Date: 2025-09-02MAYEKAWA MFG CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2021066449
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-04-09
Publication Date
2025-09-02
Estimated Expiration
2041-04-09

AI Technical Summary

Technical Problem

Existing control devices for multi-axis robots struggle to accurately change the position and posture to a target position and posture with strict accuracy, especially when obstacles are present, leading to potential collisions.

Method used

A control device for multi-axis robots that includes a position and posture correction unit, first and second matrix acquisition units, and an updating unit to dynamically update axis state quantities, ensuring the tip of the robot reaches a corrected position and posture within allowable ranges, avoiding collisions.

Benefits of technology

Enables flexible control for multi-axis robots to accurately reach target positions and postures while avoiding obstacles, reducing the risk of collisions and improving operational efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007732762000004
    Figure 0007732762000004
  • Figure 0007732762000005
    Figure 0007732762000005
  • Figure 0007732762000006
    Figure 0007732762000006
Patent Text Reader

Abstract

To provide a controller for multi-axis robot, a robot system, and a control program that can flexibly execute control for changing of a tip of a multi-axis robot to a target position attitude.SOLUTION: A controller 20 for a multi-axis robot acquires a first matrix that indicates at least sensitivity of a first parameter which is a part of a plurality of position attitude parameters indicating a position attitude of a tip 38 of a multi-axis robot 30 for each axis state quantity of the multi-axis robot 30. Further, the controller 20 acquires a second matrix that indicates at least sensitivity of a second parameter for each axis state quantity. Further, the controller 20 renews candidate values of each axis state quantity by using a first deviation including a deviation based on a target position attitude of the first parameter corresponding to the candidate values of each axis state quantity, a second deviation including a deviation based on a target position attitude of the second parameter corresponding to the candidate values of each axis state quantity, the first matrix and the second matrix.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a control device for a multi-axis robot, a robot system, and a control program. [Background technology]

[0002] Conventionally, there is known a control device for a multi-axis robot that determines whether the position and posture of the multi-axis robot can be changed to a target position and posture. For example, in the control device for a multi-axis robot disclosed in Patent Document 1, a change in the distance between the multi-axis robot and an obstacle when the position and posture of the multi-axis robot changes is calculated in advance. Based on the calculation result, it is determined whether a collision between the multi-axis robot and the obstacle will occur. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2008-279524 Summary of the Invention [Problem to be solved by the invention]

[0004] However, Patent Document 1 does not disclose a configuration for changing the target position and posture to another position and posture when it is difficult to control the position and posture of a multi-axis robot to match the target position and posture with strict accuracy.

[0005] An object of the present disclosure is to provide a control device, a robot system, and a control program for a multi-axis robot that can flexibly execute control for changing the tip of the multi-axis robot to a target position and posture. [Means for solving the problem]

[0006] A control device for a multi-axis robot according to at least one embodiment of the present invention comprises: a position and posture correction unit for obtaining a corrected position and posture to substitute for a target position and posture of the tip of the multi-axis robot; The position and orientation correction unit a first matrix acquisition unit for acquiring a first matrix indicating at least sensitivity of a first parameter, which is a part of a plurality of position and posture parameters indicating a position and posture of the tip of the multi-axis robot, to each axis state quantity of the multi-axis robot; a second matrix acquisition unit for acquiring a second matrix indicating at least a sensitivity of a second parameter different from the position and posture parameters to each of the axis state quantities; an updating unit for updating the candidate values ​​of each of the axis state quantities by using a first deviation including a deviation of the first parameter corresponding to the candidate value of each of the axis state quantities with reference to the target position and attitude, a second deviation including a deviation of the second parameter corresponding to the candidate value of each of the axis state quantities with reference to a target value of the second parameter, the first matrix, and the second matrix; Includes:

[0007] In accordance with at least one embodiment of the present invention, a robot system for a multi-axis robot includes: a controller for the multi-axis robot; the multi-axis robot; Equipped with.

[0008] A control program for a multi-axis robot according to at least one embodiment of the present invention comprises: On the computer, a position and posture correcting step for obtaining a corrected position and posture to be substituted for the target position and posture of the tip of the multi-axis robot; The position and orientation correcting step a first matrix acquisition step for acquiring a first matrix indicating at least sensitivity of a first parameter, which is a part of a plurality of position and posture parameters indicating the position and posture of the tip of the multi-axis robot, to each axis state quantity of the multi-axis robot; a second matrix acquisition step of acquiring a second matrix indicating at least a sensitivity of a second parameter different from the position and posture parameters to each of the axis state quantities; an updating step for updating the candidate value of each of the axis state quantities by using a first deviation including a deviation of the first parameter corresponding to the candidate value of each of the axis state quantities with reference to the target position and attitude, a second deviation including a deviation of the second parameter corresponding to the candidate value of each of the axis state quantities with reference to a target value of the second parameter, the first matrix, and the second matrix; Includes: [Effects of the Invention]

[0009] According to the present disclosure, it is possible to provide a control device, a robot system, and a control program for a multi-axis robot that can flexibly execute control for changing the tip of the multi-axis robot to a target position and posture. [Brief explanation of the drawings]

[0010] [Figure 1] FIG. 1 is an explanatory diagram illustrating a robot system 1 according to an embodiment. [Figure 2] FIG. 10 is a diagram showing an intermediate point C corrected by the position and orientation correcting unit 22 according to an embodiment. [Figure 3] FIG. 2 is a diagram illustrating a configuration of a position and orientation correction unit 22 according to an embodiment. [Figure 4] 10A and 10B are diagrams illustrating a process in which the position and orientation correction unit 22 according to an embodiment obtains a corrected position and orientation to replace a target position and orientation. [Figure 5] FIG. 3 is a conceptual diagram showing the principle of calculating an update amount Δq of each axis state amount based on equation (1) according to one embodiment. [Figure 6] 1A and 1B are diagrams illustrating a model 50 set in multi-axis robots 30A and 30B according to an embodiment. [Figure 7] FIG. 10 is a diagram illustrating a method for calculating a distance parameter according to an embodiment. [Figure 8] 1 is a block diagram showing an electrical configuration of a robot system 1 according to an embodiment. [Figure 9] 10 is a flowchart illustrating a robot control process according to an embodiment. [Figure 10] 10 is a flowchart illustrating a position and orientation correction process according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0011] Hereinafter, several embodiments of the present invention will be described with reference to the accompanying drawings. However, the dimensions, materials, shapes, relative arrangements, etc. of components described as embodiments or shown in the drawings are merely illustrative examples and are not intended to limit the scope of the present invention. For example, expressions expressing relative or absolute arrangement such as "in a certain direction," "along a certain direction," "parallel," "orthogonal," "center," "concentric," or "coaxial" not only express such an arrangement exactly, but also express a state in which there is a relative displacement with a tolerance or an angle or distance to the extent that the same function is obtained. For example, expressions such as "identical," "equal," and "homogeneous" that indicate that something is in an equal state not only indicate a state of strict equality, but also indicate a state in which there is a tolerance or a difference to the extent that the same function is obtained. For example, expressions representing shapes such as a square shape or a cylindrical shape not only represent shapes such as a square shape or a cylindrical shape in the strict geometric sense, but also represent shapes including uneven portions, chamfered portions, etc., to the extent that the same effect can be obtained. On the other hand, the expressions "comprises," "includes," "has," "includes," or "has" one element are not exclusive expressions that exclude the presence of other elements.

[0012] FIG. 1 is a diagram showing a robot system 1 for a multi-axis robot (hereinafter, also simply referred to as "robot system 1") according to one embodiment.

[0013] A robot system 1 in one embodiment includes a multi-axis robot 30 and a control device 20 for the multi-axis robot (hereinafter also simply referred to as the "control device 20"). In one embodiment, the control device 20 controls the position and orientation of a tip 38 of the multi-axis robot 30, causing a tool 39 attached to the multi-axis robot 30 to move along a target movement path 33. In this way, the multi-axis robot 30 performs an operation on a workpiece 5 using the tool 39. Examples of operations performed on the workpiece 5 include cutting, grasping, lifting, pressing, drilling, photographing, blowing air, suction, and water spraying. In one embodiment, the workpiece 5 is transported by a transporting device 7, such as a belt conveyor. The transported workpiece 5 is photographed by a camera 8, and the movement path 33 is set based on the image photographed by the camera 8. In another embodiment, the workpiece 5 may be transported by a person. Also, the camera 8 may not be provided. The workpiece 5 may be any object on which an operation is performed. For example, the workpiece 5 may be food, daily necessities, parts of industrial products, or chemical materials. In one embodiment, the workpiece 5 is food such as agricultural products, livestock products, or seafood products. The workpiece 5 illustrated in FIG. 1 is fresh meat (similar to FIG. 2). In one embodiment, the control device 20 includes a robot controller and a personal computer as components, but the control device 20 does not necessarily have to include a personal computer.

[0014] In one embodiment, the multi-axis robot 30 has multiple joint axes. Each joint axis is a rotary joint or a linear joint with one degree of freedom. In one embodiment, each axis state quantity (joint variable), which is the state quantity of each joint axis, is represented by the angle or axial position of the joint axis. Changes in these axis state quantities change the position and orientation of the tip 38 of the multi-axis robot 30. The tip 38 may be the tip of the link 35 of the multi-axis robot 30 that is located closest to the tip, or may be the tip of a tool 39 attached to the link 35. Each of the above-mentioned axis state quantities is represented by an axis state quantity vector q that includes the state quantities of each joint axis as elements. For example, if the multi-axis robot 30 has six joint axes, each axis state quantity vector q is a column vector that includes the six axis state quantities q1 to q6 as elements. The number of joint axes of the multi-axis robot 30 may be, instead of six, five, seven or more.

[0015] The position and orientation of the tip 38 is represented by a position and orientation vector p that includes position and orientation parameters as elements. In one embodiment, there are six position and orientation parameters. More specifically, the six position and orientation parameters include three position parameters (X, Y, and Z) that indicate the position of the tip 38 and three orientation parameters (R X , R Y , and R Z ) In one embodiment, these parameters are shown in an arbitrarily configurable reference coordinate system Σ 0 .

[0016] The relationship between the position and posture vector p of the multi-axis robot 30 and each axis state quantity vector q is defined by the following equation (2). p=fr(q) Equation (2) fr is a function that converts the joint angle into a position and posture vector. Specifically, if the number of joint axes (i.e., the number of joints) of the multi-axis robot 30 is n, it can be expressed as follows using the function fp: p=fp( 0 T n )...Equation (2A) 0 T n is a homogeneous transformation matrix, and is a matrix obtained by dividing the coordinates in the reference coordinate system Σ0 and the coordinate system Σ of the n-th joint located at the tip end of the multi-axis robot 30. n The reference coordinate system Σ0 can be set arbitrarily depending on the application of the multi-axis robot 30. In one embodiment, the reference coordinate system Σ0 is set on the transport path of the transport device 7. In other embodiments, the reference coordinate system Σ0 may be set on, for example, the pedestal 9. The coordinates in the above-mentioned arbitrary reference coordinate system Σ0 may also be called world coordinates. 0 T n is defined by equation (3). 0 T n = 0 T1 1 T2... n―1 T n ...Equation (3) In equation (3), 0 T1 is a homogeneous transformation matrix for transforming the reference coordinate system Σ0 into the coordinate system Σ1 of the joint located most proximal side. 1 T2 is a homogeneous transformation matrix for transforming the coordinate system Σ1 into the coordinate system Σ2 of the second joint from the base end. In this way, each homogeneous transformation matrix shown on the right side of equation (3) defines the relationship between the coordinate systems of two adjacent joints. In one embodiment, each homogeneous transformation matrix shown on the right side of equation (3) is a 4-by-4 matrix. Each homogeneous transformation matrix includes, as elements, a 3-by-3 rotation matrix and a 1-by-3 translation vector that indicates the positional relationship between the two coordinate systems of interest. For example, the homogeneous transformation matrix n―1 T n is expressed by the following equation (4).

number

[0017] In one embodiment, the multi-axis robot 30 includes multi-axis robots 30A and 30B. A tool 39A attached to the multi-axis robot 30A is a knife. A tool 39B attached to the multi-axis robot 30B is a clamper. In one embodiment, the multi-axis robots 30A and 30B operate in synchronization with each other under the control of the control device 20, thereby gripping and cutting the workpiece 5. In one embodiment, the multi-axis robots 30A and 30B operate asynchronously with each other. In another embodiment, the multi-axis robots 30A and 30B may operate in synchronization with each other.

[0018] In one embodiment, each of the movable areas of the multi-axis robots 30A and 30B includes an obstacle, and therefore the position and orientation of the tip 38 of each of the multi-axis robots 30A and 30B must be changed while avoiding collision between the multi-axis robots 30A and 30B and the obstacle. In one embodiment, the working envelopes of the multi-axis robots 30A and 30B overlap, and therefore the multi-axis robot 30B is an obstacle to the multi-axis robot 30A. In other embodiments, a component of the robot system 1, such as the transport device 7, may be an obstacle for the multi-axis robot 30, or another object may be an obstacle.

[0019] The distance between the multi-axis robot 30 according to one embodiment and an obstacle is represented by a distance vector including at least one distance parameter. The distance vector is, for example, a column vector. For example, when the number of distance parameters is three, the elements of the distance vector are represented as d1 and d2. In FIG. 1, one distance parameter is represented by the symbol d m Illustrated by: If at least one distance parameter included in the distance vector is equal to or less than a threshold, there is a high possibility that the multi-axis robot 30 will collide with an obstacle. In one embodiment, the threshold is a value equal to or greater than 0 that is set in association with each distance parameter. The threshold may be a positive value that reflects a safety factor.

[0020] In one embodiment, the distance vector can be determined based on each axis state vector q. Specifically, it is as follows. If the state vector q of each axis of the multi-axis robot 30 is known, the position parameters (X, Y, and Z) of the tip 38 can be obtained based on equation (2). 0 T n-1 Applying these to equations (2) and (2A) also determines the position parameters of the (n-1)th link 35. Using a similar method, the position parameters of any part of the multi-axis robot 30 can be determined based on each axis state quantity vector q and equation (1). This determines the distance vector between the multi-axis robot 30 and the obstacle. In an embodiment in which the multi-axis robot 30B is an obstacle to the multi-axis robot 30A, the distance parameters of the multi-axis robots 30A and 30B are calculated assuming that the multi-axis robots 30A and 30B are stationary at each time step. The method for calculating the distance parameter will be described in further detail below.

[0021] In one embodiment, a control device 20 for controlling a multi-axis robot 30 includes a path setting unit 21, a position and orientation correction unit 22, a determination unit 24, and a position and orientation control unit .

[0022] In one embodiment, the path setting unit 21 sets a movement path 33 of the tip 38 when a task is performed on the workpiece 5. For example, the path setting unit 21 sets the movement path 33 of the tip 38 according to the shape or position of the workpiece 5. In one embodiment, the movement path 33 includes a start point D, multiple intermediate points C, and an end point G. The position and posture of the tip 38 (i.e., position and posture parameters of the tip 38) are set at each of these points included in the movement path 33. Hereinafter, the position and posture of the tip 38 at each intermediate point C will also be referred to as a target position and posture, and the position and posture of the tip 38 at the end point G will also be referred to as a final position and posture. The target position and posture of each intermediate point C is a position and posture that is a transit point when the position and posture of the tip 38 of the multi-axis robot 30 changes to the final position and posture.

[0023] In one embodiment, the determination unit 24 is configured to determine whether each of the multiple intermediate points C should be set as a correction target. As a specific example, the determination unit 24 determines whether the value of a parameter to be determined for each of the multiple intermediate points C falls within an allowable range. The parameters to be determined include, for example, at least a distance parameter. The distance parameter is a parameter related to each axis state quantity indicating a target position and attitude, and is a parameter separate from the position and attitude parameter. In one embodiment, the value of the distance parameter for at least one of the multiple intermediate points C deviates from the allowable range. The determination unit 24 determines that such an intermediate point C is a correction target. In other embodiments, each axis state quantity (joint parameter) may be used as the parameter to be determined instead of the distance parameter. For example, the movable range of the multi-axis robot 30 may be set as the allowable range. In this embodiment, too, at least one of the multiple intermediate points C has each axis state quantity corresponding to the target position and posture outside the allowable range, and such intermediate point C is treated as a correction target.

[0024] The position and attitude correcting unit 22 in one embodiment is configured to obtain (search for) a corrected position and attitude that substitutes for the target position and attitude of the correction target intermediate point C. In other words, the position and attitude correcting unit 22 is configured to obtain a corrected position and attitude that substitutes for the target position and attitude of the tip 38 of the multi-axis robot 30. In one embodiment, the position and attitude correcting unit 22 is configured to calculate the corrected position and attitude in response to the determination by the determination unit 24 that the value of the distance parameter corresponding to the target position and attitude deviates from the allowable range. In another embodiment, the position and attitude correcting unit 22 may be configured to calculate the target position and attitude in response to the determination by the determination unit 24 that each axis state quantity (joint parameter) corresponding to the target position and attitude deviates from the allowable range.

[0025] The position and orientation correction unit 22 according to an embodiment obtains the corrected position and orientation by updating each axis state quantity determined based on the position and orientation parameters of the intermediate point C treated as the correction target. With regard to the candidate values ​​of each axis state quantity to be updated, it is required that the values ​​of both the distance parameter and the position and orientation parameter corresponding to the candidate value fall within the allowable range. If the value of at least one of these parameters corresponding to the candidate value of each axis state quantity deviates from the allowable range, the candidate value of each axis state quantity is updated again. On the other hand, if the values ​​of these parameters corresponding to each axis state quantity fall within the allowable range, the position and posture determined based on the candidate values ​​of each axis state quantity is determined as the corrected position and posture. When the values ​​of the position and posture parameters fall within the allowable range, the corrected position and posture can be prevented from deviating too much from the ideal position and posture. The ideal position and posture is, for example, the initial position and posture of the midpoint C set as the correction target. Furthermore, when the value of the distance parameter falls within the allowable range, the distance parameter can be prevented from deviating too much from an ideal value (e.g., a threshold value). This reduces waste in the operation of the multi-axis robot 30 in which the tip 38 passes through the corrected position and posture. The allowable range of the position and posture parameter is set, for example, based on the target position and posture. Furthermore, the allowable range may be determined according to each position and posture parameter. In one embodiment, the distance parameter is set, for example, based on a threshold value.

[0026] In one embodiment, the aforementioned determination unit 24 determines whether the values ​​of the above parameters fall within an allowable range. That is, the aforementioned parameters to be determined include position and orientation parameters in addition to the distance parameter. Therefore, the determination unit 24 in one embodiment is configured to determine whether the values ​​of the parameters to be determined, including the position and orientation parameters corresponding to the latest candidate values ​​of each updated axis-state quantity, and the distance parameter, fall within the allowable range. In one embodiment, the movement path 33 includes a plurality of intermediate points C. That is, the determination unit 24 is configured to determine whether the value of the parameter to be determined is within the allowable range for at least one of a plurality of target positions and postures that the tip 38 of the multi-axis robot 30 passes through before changing to the final position and posture. In the above-described process for determining whether midpoint C should be set as a correction target, the determination criterion is, for example, whether the value of the distance parameter falls within an allowable range, not whether the value of the position and orientation parameters falls within an allowable range. However, even if the parameters to be determined include position and orientation parameters in addition to the distance parameter, the above-described process remains essentially the same. This is because the position and orientation parameters of midpoint C match the position and orientation parameters of the determination criterion and therefore do not deviate from the allowable range.

[0027] The position and orientation control unit 23 of the present embodiment is configured to control the multi-axis robot 30 . In one embodiment, the position and orientation control unit 23 controls the multi-axis robot 30 so that the position and orientation of the tip 38 changes from the corrected position and orientation obtained by the position and orientation correction unit 22 to the final position and orientation. In one embodiment, the position and orientation control unit 23 controls the multi-axis robot 30 so that the tip 38 moves along the movement path 33 .

[0028] Fig. 2 is a diagram illustrating intermediate points C corrected by the position and orientation correction unit 22 according to one embodiment. Fig. 2 illustrates a view seen along the conveying direction of the conveying device 7. In one embodiment, a number is assigned to each of the multiple intermediate points C in order from the upstream side of the movement path 33. In one embodiment, the first intermediate point C1 and the i+1th intermediate point C i+1 In this case, the distance parameter included in the parameters to be determined is equal to or less than the threshold value. i+1 When the tip 38 of the multi-axis robot 30 changes to the target position and posture indicated by each of the midpoints C1 and C2, a collision between the multi-axis robot 30 and an obstacle may occur. i+1 In this case, it is difficult to make the position and orientation of the tip 38 coincide with the target position and orientation indicated by each of the intermediate points C1 and C2. i+1 For each of the above, the position and orientation correcting unit 22 determines (searches for) a corrected position and orientation that substitutes for the target position and orientation. In one embodiment, each axis state quantity corresponding to the target position and orientation of the intermediate point C1 is set as a candidate value for each axis state quantity. The position and orientation correction unit 22 updates the candidate value for each axis state quantity to obtain (search for) the corrected position and orientation at the intermediate point C1. i+1 Using the same method, we find the midpoint C i In one embodiment, the value of the determination target parameter in the corrected position and orientation falls within an allowable range, so that the corrected position and orientation is prevented from deviating too much from the target position and orientation. Corrected midpoints C1 and C shown in Figure 2 i+1 In the above, the orientation parameter (R X , R Y , or R Z In other embodiments, at least one of the position parameters (X, Y, or Z) may be corrected, or all six position and orientation parameters may be corrected. In this way, when it is difficult to match the position and attitude of the tip 38 with the target position and attitude with strict accuracy, a corrected position and attitude is obtained in which at least one of the six position and attitude parameters indicating the target position and attitude is changed. In this case, control is executed to change the tip 38 to the target position and attitude, and the position and attitude of the tip 38 are changed to the corrected position and attitude.

[0029] The position and orientation parameters to be corrected by the position and orientation correcting unit 22 are not necessarily the same throughout the search for the corrected position and orientation. That is, the position and orientation parameters to be corrected can be dynamically switched depending on the search status or search conditions of the intermediate position and orientation. For example, the number of position and orientation parameters to be corrected may increase as the number of searches increases (or as the threshold that the distance parameter must satisfy becomes smaller), or the types of position and orientation parameters to be corrected may change but the number itself may remain constant. Alternatively, a combination of these two may be performed. As a more specific example, until the number of searches for the corrected position and orientation reaches a specified number, R x Before the number of searches reaches the specified number, only R x If an appropriate corrected position and posture in which only the distance parameter is corrected (i.e., an intermediate position and posture in which the distance parameter exceeds the threshold) is identified, the search ends. At this time, a corrected position and posture that is extremely close to the position and posture before correction can be identified. On the other hand, if an appropriate corrected position and posture (a corrected position and posture that allows collision avoidance, etc.) is not found even after the specified number of searches, R x In addition to (or R x instead of ), e.g., R Y and R Z This can be added as a correction target, which can avoid the problem of not being able to identify the appropriate intermediate position and orientation. As described above, it is possible to obtain (search for) a corrected intermediate position and posture that is as close as possible to the target position and posture, and it is also possible to increase the probability of finding a corrected position and posture that allows collision avoidance and the like.

[0030] FIG. 3 is a diagram showing the configuration of the position and orientation correction unit 22 according to an embodiment. The position and attitude correction unit 22 includes a first matrix acquisition unit 11 for acquiring a first matrix, a second matrix acquisition unit 12 for acquiring a second matrix, and an update unit 13 for updating candidate values ​​of each axis state quantity based on the first matrix and the second matrix. The candidate values ​​of each axis state quantity are updated by the update unit 13, whereby the position and attitude correction unit 22 obtains a corrected position and attitude.

[0031] In one embodiment, the first matrix acquired by the first matrix acquisition unit 11 is a matrix obtained by the multi-axis robot 30 of The first parameter indicates at least the sensitivity of the first parameter to each axis state quantity. The first parameter is a part of the position and orientation parameters. As an example, the first parameter may be three position parameters (X, Y, and Z) and one orientation parameter (R Z In this case, in an embodiment in which each axis state quantity vector q includes six elements q1 to q6, the first matrix is ​​J in the following equation (6): 1s is defined by

number

[0032] In one embodiment, the second matrix Acquisition part 12 The second matrix obtained by the above equation indicates at least the sensitivity of the second parameter to each axis state quantity of the multi-axis robot 30. The second parameter is a parameter that changes depending on each axis state quantity and is a parameter different from the position and posture parameter. The second parameter is, for example, a distance parameter. In one embodiment, the second matrix indicates the sensitivity of the m distance parameters to each axis state quantity. In this case, in an embodiment in which each axis state quantity vector q includes six elements q1 to q6, the second matrix is ​​obtained by J in the following equation (7): 2s is defined by

number

[0033] In one embodiment, the update unit 13 calculates candidate values ​​of each axis state quantity. of As a more specific example, the update unit 13 is configured to update the candidate values ​​of the initial axis state quantities, which are the axis state quantities indicating the target position and posture, in response to the determination by the determination unit 24 that the values ​​of the parameters to be determined, including the distance parameters in the target position and posture, deviate from the allowable range. Furthermore, the update unit 13 of one embodiment is configured to update the candidate values ​​of the axis state quantities in response to the determination by the determination unit 24 that the values ​​of the parameters to be determined, including the position and posture parameters and the distance parameters, fall within the allowable range. Update It is configured to stop

[0034] The method of updating each axis state quantity by the update unit 13 will be described. The update unit 13 of one embodiment is configured to update the candidate values ​​of each axis state quantity using the first and second deviations in addition to the first and second matrices. The first deviation includes a deviation of the first parameter corresponding to the candidate value of each axis state quantity from the target position and posture. In one embodiment, the position and posture parameters handled by the first deviation are the same as the first parameters handled by the first matrix. For example, if the first parameters handled by the first matrix are X, Y, Z, and R, Z If so, these four parameters in the candidate values ​​of each axis state quantity are compared with these four parameters in the target position and posture to obtain the first deviation. The second deviation includes a deviation based on a target value of the second parameter corresponding to the candidate value of each axis state quantity.

[0035] In one embodiment, once the first deviation and the first matrix are known, an update amount (first update amount) for each axis state quantity for bringing the first parameter corresponding to the candidate value of each axis state quantity before update closer to the target value is obtained by, for example, applying a gradient method. The target value is, for example, the first parameter in the target position and posture. Similarly, when the second deviation and the second matrix are known, the update amount (second update amount) of each axis state amount for bringing the second parameter (for example, the distance parameter) corresponding to the candidate value before update closer to the target value can be determined. The update unit 13 in one embodiment calculates an update amount for updating the latest candidate value of each axis state quantity based on the first update amount and the second update amount. The candidate value is updated by adding the update amount to the latest candidate value of each axis state quantity.

[0036] FIG. 4 is a diagram showing a process in which the position and orientation correction unit 22 according to an embodiment obtains a corrected position and orientation to replace the target position and orientation. 4 In this example, the process of determining the corrected position and orientation of the first intermediate point C1 is shown. Also, in FIG. 4, the movement path 33 is partially omitted. In one embodiment, when the determining unit 24 (see FIG. 1) determines that the value of the determination target parameter including the distance parameter at the intermediate point C1 deviates from the allowable range, the target position and orientation of the intermediate point C1 is treated as a target for correction.

[0037] In this case, in one embodiment, the position and orientation correction unit 22 calculates the intermediate point C1, which is the initial intermediate point C1. 1、1 Update the intermediate point C as a candidate for intermediate point C1. 1、2 Ask for. midpoint C 1、2 An example of a specific method for finding candidates for midpoint C is as follows: 1、1 The position and orientation vector p at the intermediate point C1 (i.e., the position and orientation parameters indicating the target position and orientation of the intermediate point C1) is substituted into Equation (5), 1、1 Each axis state quantity q 1、1 In one embodiment, each axis state quantity q 1、1 is the latest candidate value of each axis state quantity. Also, the midpoint C 1、1 Furthermore, the first matrix acquisition unit 11 calculates the first and second deviations in each axis state quantity q 1、1 The second matrix acquisition unit 12 acquires the first matrix in each axis state quantity q 1、1 The first and second update amounts are calculated based on the first deviation, second deviation, first matrix, and second matrix. This gives the update amount for each axis state amount, Δq 1、1 (More details on how to obtain the update amount will be described later.) The latest candidate value of each axis state amount, q 1、1 is the state quantity of each axis q 1、2 (=q 1、1 +Δq 1、1 ) is updated to the state quantity q 1、2 By substituting into equation (2), the midpoint C 1、2 The position and orientation parameters are calculated. midpoint C 1、2 In the above, when at least one of the parameters to be judged including the position and posture parameters and the distance parameters deviates from the allowable range, each axis state quantity q 1、2is further updated. More specifically, the latest candidate value of each axis state quantity, q 1、2 , Δq 1、2 By adding these, each axis state quantity q 1、2 is the state quantity of each axis q 1、3 This will update the intermediate point C 1、3 The update of each axis state quantity is repeated until the value of the parameter to be judged falls within the allowable range. Then, the intermediate point C identified in the k-1th update 1、k If the values ​​of the parameters to be judged are all within the allowable range, then the midpoint C 1、k The position and posture of the intermediate point C1 are set as the corrected position and posture that replaces the target position and posture of the intermediate point C1. During this repetition, the position and orientation parameters to be corrected (e.g., R x ,R y By dynamically switching or adding these depending on the conditions, the degree of freedom in orbit correction can be increased. Although detailed illustration and explanation are omitted, the i+1th intermediate point C i+1 The same process is repeated even when the intermediate point C is the target of correction. For example, the intermediate point C identified in the k-1th update i+1、k If the values ​​of all the parameters to be judged are within the allowable range, then the midpoint C i+1、k The position and orientation of i+1 The corrected position and posture are set to replace the target position and posture.

[0038] A process for determining the update amount (Δq) of each axis state amount based on the first update amount and the second update amount according to one embodiment will be described. The update amount (Δq) of each axis state amount is defined by the following equations (8), (9), and (10). Δq=Δq1+Δq2 Equation (8) Δq1=J + Δx Equation (9) Δq2=(J C (IJ + J)) + (Δx C -J C J + Δx) Equation (10) In equations (8) to (10), Δq1 is either the first update amount or the second update amount described above, and Δq2 is the other of the first update amount or the second update amount. In one embodiment, Δq1 is the first update amount, and Δq2 is the second update amount. In this case, Δx is a first vector (for example, a column vector) containing the first deviation as an element, and J is a first matrix. C is the second vector (for example, a column vector) containing the second deviation as an element, and J C is the second matrix. That is, the combination of Δx and J is the combination of the first vector and the first matrix that includes the first deviation as an element. And, Δx C and J. C is a combination of a second vector and a second matrix including the second deviation as an element. In another embodiment, Δq1 is the second update amount and Δq2 is the first update amount. In this case, the combinations described above are reversed. That is, the combination of Δx and J is the combination of the second vector and the second matrix, and Δx C and J. C is a combination of the first vector and the first matrix. In equations (8) to (10), reducing Δx C This means that a Δq that takes priority over reducing Δq can be obtained. Before explaining in detail the principle by which such Δq can be obtained, the following equation (1) derived from equations (8) to (10) is shown below. Δq=J + Δx+(J C (IJ + J)) + (Δx C -J C J + Δx) Equation (1)

[0039] 5 is a conceptual diagram showing the principle of determining the update amount Δq of each axis state quantity based on equation (1) according to one embodiment. C is conceptually shown using two-dimensional coordinates. In the following, it is assumed that Δq1 is the first update amount and Δq2 is the second update amount. In other words, the combination of Δx and J is the combination of the first vector and the first matrix, and Δx C and J. C Assume that the combination of the second vector and the second matrix is ​​the combination of the second vector and the second matrix. Note that even if the combination is reversed, the principle of finding the update amount Δq remains the same. Furthermore, it is assumed that equations (11) and (12) hold true, and that f(q) is upwardly convex and g(q) is downwardly convex. x=f(q)...Equation (11) x C =g(q)...Equation (12) Also, the target value and tolerance of the vector x are respectively x tgt , x tgt -τ and vector x C The target value and tolerance of x C_tgt , x C_tgt +τ C Furthermore, the candidate value of the current state quantity of each axis is q cur Let's say.

[0040] The principle of determining Δq1, which is the update amount of each axis state quantity for keeping the vector x within the allowable range, is as follows. q cur x is the vector x that corresponds to cur corresponds to the height position of point P1. As mentioned above, the first matrix (J) indicates the sensitivity of the first parameter to each axis state quantity. In other words, the slope of the tangent line to the graph at point P1 corresponds to the first matrix. Therefore, the first deviation Δx (=x cur -x tgt ) is defined by the following equation (13): Δx=JΔq1...Equation (13) The above-mentioned equation (9) can be derived by transforming equation (13). From this, it can be understood that Δq1 is an update amount for bringing the first parameter closer to the target value, and is an update amount that reflects the first deviation.

[0041] Vector x CThe principle of determining Δq2, which is the update amount of each axis state quantity to keep within the allowable range, is as follows. q cur Vector x in C x C_cur corresponds to the height position of point Q1. The tangent to the graph at point Q1 is the second matrix (J C ) and x C_cur -x C_tgt is the second deviation Δx C Shows. When specifying Δq2, the second deviation Δx C Instead, Δx C -J C J + The deviation defined by Δx (deviation using the second deviation) is used. Also, instead of the tangent to the graph at point Q1 (the slope of the tangent corresponds to the second matrix), J C (IJ + J) is treated as a straight line having a slope defined by That is, the vector x C The target value x C_tgt Δq2 to approach is defined by equation (14). By transforming equation (14), the above equation (10) can be obtained. Δx C -J C J + Δx=J C (IJ + J)Δq2...Equation (14) Suppose the second deviation is Δx C and the tangent to point Q1, Δq is calculated by the same formula (15) as formula (13). 2d is obtained. Δx C =J C Δq 2d ...Equation (15) Δq2 calculated based on equation (10) and Δq calculated based on equation (15) 2d are both vectors x C is the update amount for bringing the second parameter and distance parameter handled in closer to the target value, and is the update amount that reflects the second deviation.

[0042] The state quantities of each axis are updated using Δq1 and Δq2 obtained above, and q cur +Δq1+Δq2 is the new q cur In the conceptual example shown in FIG. 5, Δq2 is set as Δq 2d Since it is smaller than q, the result of the first update is cur +Δq1+Δq2 can be understood as the state quantity of each axis to prioritize reducing the first deviation over the second deviation. In other words, by using equation (1), the vector x becomes the vector x C A Δq (=Δq1+Δq2) that falls within the allowable range is determined in priority to the above. In the example of Figure 5, point P2 indicates the updated vector x, and point P3 indicates the updated vector x C Since all of the points Q2 indicating the above are within the allowable range, the updating of the axis state vector q is completed. Suppose vector x and vector x C If at least one of the above deviations from the allowable range, the update of each axis state vector q is further executed. For example, even if the first deviation becomes 0 as a result of updating each axis state vector, the vector x C If falls outside the tolerance range, Δq is further updated. As described above, the first parameter handled in the first deviation is a part of the position and orientation parameters. When the first vector including the first deviation as an element corresponds to Δx in formula (1), priority is given to the first parameter being included in the allowable range among the position and orientation parameters, and the priority of the position and orientation parameters other than the first parameter being included in the allowable range is automatically lowered by using formula (1).

[0043] In one embodiment, the tolerance of the parameter corresponding to the vector x is CThe range may be set narrower (stricter) than the allowable range of the parameter corresponding to vector x. This allows the amount of correction of the parameter corresponding to vector x to be reduced when a corrected position and posture is set to replace the target position and posture. For example, a parameter that may have a relatively large effect on the quality of the work performed on the workpiece 5 is set as the parameter of vector x. This prevents a decrease in the quality of the work performed on the workpiece 5 even when the corrected position and posture is set. In one embodiment, X, Y, Z, and R Z The first parameter containing the distance parameter is set to the parameter corresponding to the vector x, and the second parameter containing the distance parameter is set to the parameter corresponding to the vector x. C is set to The width of the allowable range can be determined by the size of the range of variation of the link 35 (or tool 39) closest to the tip when the position and orientation of the tip 38 changes within the allowable range. Furthermore, the position and orientation parameters indicated by the first vector can be dynamically switched during the repeated calculation. For example, the type of the position and orientation parameters may change (or increase) as the calculation is repeated. In this case, the first matrix may be changed in response to the change (or increase) in the type of the position and orientation parameters.

[0044] FIG. 6 is a diagram illustrating a model 50 set in the multi-axis robots 30A and 30B according to an embodiment. FIG. 7 is a diagram illustrating a method for calculating a distance parameter according to an embodiment. FIGS. 6 and 7 illustrate multi-axis robots 30A and 30B including six rotational joints. In addition, the model 50 is shown by a two-dot chain line in FIG. 6, while the model 50 is shown by a solid line in FIG. 7.

[0045] In one embodiment, a model 50 encompassing at least a portion of the multi-axis robot 30 is virtually set up, and the distance between the model 50 and an obstacle is treated as a distance parameter indicating the distance between the multi-axis robot 30 and the obstacle. The model 50 may include all parts of the multi-axis robot 30, or may include only a part of the multi-axis robot 30. For example, if parts of the multi-axis robot 30 that may collide with an obstacle are identified in advance, the model 50 may be set to include only those parts. This reduces the number of distance parameters and improves the efficiency of calculations for calculating distances.

[0046] The model 50 in one embodiment includes a model 50A set on the link 35 closest to the tip of the multi-axis robot 30A, and a model 50B set on the second link 35 from the tip. As an example, the model 50A includes all parts of the tool 39A. In one embodiment, a model 50 may be set for an obstacle of the multi-axis robot 30A. The model 50 does not need to have the same shape as the model 50 set for the multi-axis robot 30, and may have a shape corresponding to the obstacle, for example. In one embodiment, a model 50 is also set for the multi-axis robot 30B, which is an obstacle to the multi-axis robot 30A. As a more specific example, the model 50 includes a model 50C set for the link 35 closest to the tip of the multi-axis robot 30B. In one embodiment, each of the models 50A to 50C is formed by a cylindrical portion 55 along the axial direction of the link 35 and two hemispherical portions 56 connected to both ends of the cylindrical portion 55.

[0047] In one embodiment, the distance vectors of the multi-axis robots 30A, 30B include a distance parameter d1 indicating the distance between the models 50A and 50C, and a distance parameter d2 indicating the distance between the models 50B and 50C. In one embodiment, the distance parameter d1 is calculated as follows. The coordinates of the reference points of model 50A (in the example of FIG. 7, points A1 and A2 located at both ends of center line 57A of cylindrical portion 55) are calculated based on candidate values ​​of the state quantities of each axis of multi-axis robot 30A. Additionally, the coordinates of the reference points of model 50B (in the example of FIG. 7, points B1 and B2 located at both ends of center line 57C of cylindrical portion 55) are calculated assuming that multi-axis robot 30B is stopped. The shortest distance among the four distances between the reference points (two points) of model 50A and the reference points (two points) of model 50B is treated as the distance parameter d1. If the value of the identified distance parameter d1 is equal to or less than the diameter of the hemispherical portion 56, the updated candidate values ​​for each axis state quantity will cause interference between the models 50A and 50C. In other words, if the actual axis state quantity of the multi-axis robot 30A changes to the candidate value, a collision between the multi-axis robot 30A and the multi-axis robot 30B may occur. Therefore, the candidate values ​​for each axis state quantity are further updated. The value of the distance parameter d2 is determined in the same manner as above. If the identified distance parameter d2 is equal to or less than the diameter of the hemispherical portion 56, the candidate values ​​of each axis state quantity are updated. The shapes of the models 50A to 50C are not limited to those shown in FIGS. 6 and 7. The models 50A to 50C may be, for example, spherical in shape that encompasses at least a portion of the multi-axis robots 30A and 30B. In this case, the center position of the spherical model corresponds to the reference point of the model. Furthermore, the shapes of the models 50A to 50C may be changed as appropriate depending on the work performed by the multi-axis robots 30A and 30B.

[0048] 8 is a block diagram showing the electrical configuration of the robot system 1 according to one embodiment. The control device 20 of the robot system 1 includes a processor 91 that controls the robot system 1. The processor 91 is configured to read a control program 95 stored in a ROM 92, load it into a RAM 93, and execute instructions included in the loaded control program 95. The processor 91 is a CPU, a GPU, an MPU, a DSP, or any other type of arithmetic device, or a combination of these. The processor 91 may be realized by an integrated circuit such as a PLD, an ASIC, an FPGA, or an MCU. The ROM 92 is an example of a storage device. The memory 94, which is a component of the control device 20, temporarily or non-temporarily stores various data to be processed in association with the execution of the control program 95. The memory 94 is, for example, a flash memory. As an example, when the power to the robot system 1 is turned off, the information stored in the RAM 93 is non-temporarily stored in the memory 94. The control device 20 may include at least one of the ROM 92, the RAM 93, and the memory 94. The processor 91 is electrically connected to the multi-axis robot 30 , the transport device 7 , and the imaging device 8 . In one embodiment, the processor 91 is configured to control a plurality of driving units of the multi-axis robot 30. Each of the driving units is a motor, an air cylinder, or the like. In one embodiment, each driving unit is a motor. In this case, the processor 91 obtains the output result of an encoder included in the motor to obtain each axis state quantity vector q. The processor 91 is configured to control the drive unit of the transport device 7. The processor 91 is configured to send a photographing instruction signal to the photographing device 8 and to acquire photographed images generated by the photographing device 8.

[0049] Fig. 9 is a flowchart showing a robot control process according to an embodiment. Fig. 10 is a flowchart showing a position and orientation correction process according to an embodiment. The robot control process will be described below while referring to the correspondence between the processes executed by the processor 91 and the components of the control device 20 described above. In the following description, an embodiment will be described in which Δq1 is the first update amount and Δq2 is the second update amount. In other words, a combination of Δx and J is a combination of a first vector and a first matrix, and Δx C and J. C is a combination of a second vector and a second matrix. Furthermore, in the following description, step may be abbreviated as "S."

[0050] 9, the processor 91 sets the travel route 33 (S11). The processor 91 that executes S11 functions as the route setting unit 21. For example, the workpiece 5 transported by the transporting device 7 is photographed by the photographing device 8. The processor 91 acquires the photographed image generated by the photographing device 8 and sets the movement path 33 according to the shape or position of the workpiece 5 shown in the photographed image. In one embodiment, the position and orientation of the tip 38 at each of the start point D, the multiple intermediate points C, and the end point G included in the movement path 33 are determined in conjunction with the setting of the movement path 33. Therefore, it is determined at this point in time at which of the multiple intermediate points C the distance parameter is equal to or less than the threshold value.

[0051] The processor 91 selects the i-th intermediate point C among the plurality of intermediate points C. i is set as a target for determining whether it satisfies an allowable condition (described later) (S13). Note that the number i is stored in, for example, the RAM 93, and is set to 1 when the robot control process starts. The processor 91 determines the i-th intermediate point C i Based on the position and orientation parameters of i The state quantity of each axis is obtained (S15). As an example, the state quantity of each axis is calculated by the formula (5).

[0052] The processor 91 determines the intermediate point C iThe processor 91 that executes S17 functions as the determination unit 24. The determination unit 24 determines whether the parameters to be determined, including the position and orientation parameters and the distance parameters, satisfy the allowable condition (S17). The allowable condition is a condition in which all of the parameters to be determined, including the position and orientation parameters and the distance parameters, fall within the allowable range. As an example, the tolerance of the position and orientation parameters is i The range is set based on the initial target position and orientation. The allowable range of the distance parameter is set based on a threshold, for example. For example, in the first S17 after the start of the robot control process, it is determined whether the intermediate point C1 satisfies the tolerance conditions. In this case, the position and orientation parameters to be determined are the same as the position and orientation parameters of the determination reference, so the position and orientation parameters of the intermediate point C1 are included in the tolerance range. If the distance parameters of the intermediate point C1 deviate from the tolerance range, it is determined that the intermediate point C1 does not satisfy the tolerance conditions, and the processor 91 sets the intermediate point C1 as the correction target.

[0053] midpoint C i does not satisfy the permissible condition (S17: NO), the processor 91 i It is determined whether the number of updates k has reached an upper limit (S19). The number of updates k is stored in, for example, the RAM 93, and is set to 1 at the start of the robot control process. The number of updates k is synonymous with the number of searches described above. If the number of updates k has reached the upper limit (S19: YES), the processor 91 ends this control process.

[0054] On the other hand, if the number of updates k is less than the upper limit (S19: NO), the processor 91 i The processor 91 that executes S21 functions as the position and orientation corrector 22. In the position and orientation correction process of one embodiment, the intermediate point C i For example, the candidate values ​​of the axis state quantities are updated for the intermediate point C iWhen the distance parameter corresponding to the intermediate point C1 is equal to or smaller than the threshold and is set as a correction target (S17: NO), the original state quantities of each axis at the intermediate point C1 are updated. As will be described in detail later, the update count k is incremented each time the position and orientation correction process is executed.

[0055] After executing the position and attitude correction process (S21), the processor 91 returns to S17. In this case, parameters to be determined, including the position and attitude parameters and the distance parameters, are calculated based on the latest candidate values ​​of the state quantities of each axis updated in the position and attitude correction process, and it is determined whether the permissible conditions are satisfied (S17). If the permissible conditions are not satisfied (S17: NO), the processor 91 repeats S17 to S21.

[0056] If it is determined that the position and attitude corresponding to the candidate value of each axis state quantity satisfies the tolerance condition (S17: YES), the processor 91 converts the position and attitude into C i The corrected position and orientation are determined as follows (S23). Then, the processor 91 calculates the intermediate point C i It is determined whether the intermediate point C is the most downstream point on the moving path 33 (S25). i If there is another intermediate point C downstream of (S25: NO), the processor 91 increments the number i and initializes the update count k to 1 (S27). After that, the processor 91 returns the process to S13. When the processor 91 repeats steps S11 to S27, the intermediate point C i coincides with the downstream-most intermediate point C (S25: YES). Thereafter, the processor 91 controls the multi-axis robot 30 so that the tip 38 moves along the corrected movement path 33 (S29). In this case, the processor 91 controls the multi-axis robot 30 so that the position and posture of the tip 38 changes from the corrected position and posture to the final position and posture. The processor 91 that executes S29 functions as the position and posture control unit 23.

[0057] In addition, in the process (S13) of setting the intermediate point C as the judgment target in another embodiment, the intermediate points C may be set as the judgment target in order from the downstream side of the movement path 33, or the intermediate points C may be set as the judgment target randomly.

[0058] The position and orientation correction process will be described with reference to FIG. 10. At the start of this process, the midpoint C i does not satisfy the admissibility condition.

[0059] The processor 91 calculates the candidate values ​​of each axis state quantity, q i、k is set (S51). For example, if the intermediate point C1 does not satisfy the tolerance condition (S17: NO) and the number of updates k is 1, the processor 91 selects q as a candidate value of each axis state quantity. 1、1 (S51). For example, q 1、1 are the axis state quantities in the initial target position and posture of the intermediate point C1. In another embodiment, q 1、1 may be the amount of manipulation of each axis of the position and posture shifted from the intermediate point C1. For example, q 1、1 may be the position and orientation of a point near the intermediate point C1, or may be the position and orientation of the starting point D. In the calculation process, the position and orientation of the starting point D can be regarded as the position and orientation of the intermediate point C that is one intermediate point upstream of the intermediate point C1.

[0060] The processor 91 calculates the first deviation Δx _i、k and the second deviation Δx C_i、k is calculated (S53). For example, the candidate value of each axis state quantity, q i、k The position and orientation parameters corresponding to the above are calculated based on the formula (1). Furthermore, the distance parameters are calculated by calculating the position parameters included in the position and orientation parameters. The processor 91 calculates a first deviation Δx based on the position and orientation parameters, the target values ​​of the position and orientation parameters, the distance parameters, and the target values ​​of the distance parameters. _i、k and the second deviation Δx C_i、k Ask for.

[0061] The processor 91 calculates the latest candidate value of each axis state quantity, q i、k The first matrix in (J _i、k ) (S55), and q i、k The second matrix (J C_i、k The processor 91 that executes S55 functions as the first matrix acquisition unit 11, and the processor 91 that executes S57 functions as the second matrix acquisition unit 12 (S57).

[0062] The processor 91 calculates the update amount Δq of each axis state amount. i、k is obtained using equation (1) (S59). Equation (1) includes the q obtained in S51. i、k , S First deviation Δx obtained at 53 _i、k and the second deviation Δx C_i、k , J obtained in S55 _i、k , as well as Jc obtained in S57 _i、k is assigned. The processor 91 calculates the Δq obtained in S59. i、k The latest Q i、k By adding to q i、k The processor 91 that executes S61 functions as the update unit 13. The processor 91 increments the number of updates k (S63), ends the position and orientation correction process, and returns to the robot control process.

[0063] In the position and orientation correction process according to another embodiment, Δq1 may be the second update amount, and Δq2 may be the first update amount. In other words, the combination of Δx and J is the combination of the second vector and the second matrix, and Δx C and J. C may be a combination of a first vector and a first matrix. In this case, S5 3 So, the first deviation is Δxc _i、k The second deviation is treated as Δx _i、k Furthermore, the first matrix obtained in S55 is treated as Jc _i、k The second matrix obtained in S57 is J _i、k is treated as In addition, the first matrix (J _i、k ) may be a first matrix based on each axis state quantity deviated from the latest candidate value instead of the first matrix based on the latest candidate value of each axis state quantity. Similarly, the second matrix (J C_i、k ) may be a second matrix based on each axis state quantity deviated from the latest candidate value of each axis state quantity, instead of being a second matrix based on the latest candidate value of each axis state quantity.

[0064] Hereinafter, a control device 20 for a multi-axis robot, a robot system 1 for a multi-axis robot, and a control program 95 for a multi-axis robot according to some embodiments will be described.

[0065] (1) A control device 20 for a multi-axis robot according to at least one embodiment of the present invention includes: a position and orientation correction unit (22) for determining a corrected position and orientation to substitute for a target position and orientation of a tip (38) of the multi-axis robot (30); The position and orientation correction unit 22 a first matrix acquisition unit 11 for acquiring a first matrix indicating at least the sensitivity of a first parameter, which is a part of a plurality of position and posture parameters indicating the position and posture of the tip 38 of the multi-axis robot 30, to each axis state quantity of the multi-axis robot 30; a second matrix acquisition unit 12 for acquiring a second matrix indicating at least a sensitivity of a second parameter different from the position and posture parameters to each of the axial state quantities; an updating unit 13 for updating the candidate values ​​of each of the axis state quantities using a first deviation including a deviation of the first parameter corresponding to the candidate value of each of the axis state quantities with reference to the target position and attitude, a second deviation including a deviation of the second parameter corresponding to the candidate value of each of the axis state quantities with reference to a target value of the second parameter, the first matrix, and the second matrix; Includes:

[0066] According to the configuration (1) above, the position and attitude correction unit 22 treats the position and attitude corresponding to each axis state quantity updated by the update unit 13 as the corrected position and attitude. The update unit 13 updates the candidate value of each axis state quantity using the first deviation, the second deviation, the first matrix, and the second matrix. As a result, the updated candidate value that reflects the first deviation and the second deviation is obtained. Therefore, the position and attitude correction unit 22 can obtain the corrected position and attitude according to the first deviation and the second deviation. This realizes the control device 20 for a multi-axis robot that can flexibly execute control for changing the tip 38 of the multi-axis robot 30 to a target position and attitude. For example, the position and posture of the tip 38 of the multi-axis robot 30 is changed to a corrected position and posture that replaces the target position and posture under the control of the position and posture control unit 23, whereby control for changing the tip 38 to the target position and posture is flexibly executed. In some embodiments, the matrices indicating the sensitivity to each axis state quantity used by the update unit 13 are not limited to the first matrix and the second matrix. In addition to the first matrix and the second matrix, another matrix (a matrix indicating the sensitivity to each axis state quantity) may be used.

[0067] (2) In some embodiments, in the configuration of (1), the updating unit 13 is configured to update the candidate value by adding Δq shown by Equation (1) to the latest candidate value of each of the axis state quantities, In the formula (1), a combination of Δx and J is one of a combination of a first vector including the first deviation as an element and the first matrix, or a combination of a second vector including the second deviation as an element and the second matrix, Δx C and J. C is the other of the combination of the first vector and the first matrix or the combination of the second vector and the second matrix. Δq=J + Δx+(J C (IJ + J)) + (Δx C -J C J+ Δx) Equation (1)

[0068] According to the above configuration (2), priority is given to either the value of the first parameter or the value of the second parameter being within the allowable range rather than the other. The corrected position and posture is determined while giving priority to either the first parameter or the second parameter over the other. Therefore, in the corrected position and posture, the value of the parameter with the higher priority can be set close to the ideal value. Furthermore, for the first parameter and the second parameter with a higher priority, the tolerance range can be set narrower (stricter) than for the parameter with a lower priority. As a result, the parameter with a higher priority among the position and posture parameters of the corrected position and posture is set close to the position and posture parameters of the target position and posture. Therefore, a decrease in the quality of the work performed by the tool 39 on the workpiece 5 is suppressed.

[0069] (3) In some embodiments, in the configuration of (1) or (2), a determination unit (24) for determining whether a value of a determination target parameter including at least the position and posture parameter corresponding to the latest candidate value of each of the axis state quantities updated by the update unit (13) falls within an allowable range; The update unit 13 is configured to stop updating the candidate values ​​of the axis state quantities in response to the determination that the value of the parameter to be determined falls within the allowable range.

[0070] According to the above configuration (3), the update unit 13 can update the candidate values ​​of each axis state quantity in accordance with the determination result of the determination unit 24. This prevents the update unit 13 from performing unnecessary updates, improving the efficiency of the process for determining the corrected position and attitude.

[0071] (4) In some embodiments, in the configuration of (3), The judgment unit 24 is configured to judge whether the parameter to be judged is within the allowable range for at least one of the multiple target position and postures that the tip 38 of the multi-axis robot 30 passes through before changing to the final position and posture.

[0072] According to the configuration (4) above, a plurality of target positions and postures are set as targets for the position and posture of the tip 38 of the multi-axis robot 30 to pass through. This allows the path (movement path 33) that the tip 38 follows to be flexibly set in accordance with changes in the position and posture of the tip 38. Therefore, the control device 20 can execute control that flexibly changes the position and posture of the tip 38 of the multi-axis robot 30.

[0073] (5) In some embodiments, in any of the configurations (1) to (4) above, a determination unit (24) for determining whether a determination target parameter, which is related to each of the axis state quantities indicating the target position and posture and includes at least a parameter other than the position and posture parameters, falls within an allowable range; The update unit 13 updates the initial candidate value, which is the axis state quantity indicating the target position and posture, in response to the determination by the determination unit 24 that the parameter to be determined deviates from the allowable range.

[0074] According to the above configuration (5), the position and orientation correcting unit 22 calculates a corrected position and orientation for a target position and orientation in which the parameter to be determined deviates from the allowable range. Therefore, the efficiency of the process by the position and orientation correcting unit 22 to calculate the corrected position and orientation is improved.

[0075] (6) In some embodiments, in any of the configurations (1) to (5) above, the first matrix acquisition unit 11 is configured to acquire the first matrix indicating sensitivity of the first parameter to each of the axis state quantities at the latest candidate value of each of the axis state quantities, The second matrix acquisition unit 12 is configured to acquire the second matrix indicating the sensitivity of the second parameter to each of the axis state quantities at the latest candidate value of each of the axis state quantities.

[0076] According to the configuration of (6) above, when the update unit 13 updates the candidate values, the first deviation and the second deviation in the candidate values ​​of each axis state quantity to be updated are strongly reflected. This prevents the first parameter and the second parameter corresponding to each updated axis state quantity from deviating too much from the position and posture parameters of the target position and posture. Therefore, the number of updates k in the robot control processing is reduced, and the efficiency of the processing for determining the corrected position and posture in which the value of the parameter to be determined falls within the allowable range is improved.

[0077] (7) A robot system 1 for a multi-axis robot according to at least one embodiment of the present invention includes: A control device 20 for a multi-axis robot according to any one of (1) to (6) above; The multi-axis robot 30 Equipped with.

[0078] According to the configuration (7) above, for the same reason as in (1) above, a robot system 1 for a multi-axis robot is realized that can flexibly execute control to change the tip 38 of the multi-axis robot 30 to a target position and posture.

[0079] (8) A control program 95 for a multi-axis robot according to at least one embodiment of the present invention includes: On the computer, a position and attitude correction step is executed to obtain a corrected position and attitude to substitute for the target position and attitude of the tip 38 of the multi-axis robot 30; The position and orientation correcting step a first matrix acquisition step for acquiring a first matrix indicating at least the sensitivity of a first parameter among a plurality of position and posture parameters indicating the position and posture of the tip 38 of the multi-axis robot 30 with respect to each axis state quantity of the multi-axis robot 30; a second matrix acquisition step of acquiring a second matrix indicating at least a sensitivity of a second parameter different from the position and posture parameters to each of the axis state quantities; an updating step of updating the candidate value of each of the axis state quantities by using a first deviation including a deviation of the first parameter corresponding to the candidate value of each of the axis state quantities from the target position and attitude as a reference, a second deviation including a deviation of the second parameter corresponding to the candidate value of each of the axis state quantities from a target value as a reference, and the first matrix and the second matrix.

[0080] According to the configuration (8) above, for the same reason as in (1) above, a control program 95 for a multi-axis robot is realized that can flexibly execute control to change the tip 38 of the multi-axis robot 30 to a target position and posture.

[0081] In the above description, in FIG. 9, the point indicating the position and orientation that satisfies the tolerance condition in S17 and the intermediate point C determined in S23 i In another embodiment, the intermediate points C that are determined to satisfy the permissible condition in S17 and are included in the corrected trajectory of the multi-axis robot 30 are determined to be equal to each other. i (For example, five intermediate points) are assigned weighting coefficients, and the arbitrary number of intermediate points C i It is also possible to fine-tune the position and attitude in (i.e., the corrected trajectory). It is preferable that all of the fine-tuned waypoints satisfy the tolerance conditions. However, it is also possible to adopt a fine-tuned waypoint that does not satisfy the tolerance conditions set in S17 but satisfies a collision avoidance condition that is looser than the tolerance conditions. This allows us to find the intermediate point C i is any of the intermediate points C downstream of that intermediate point. i This allows for a smoother trajectory of the multi-axis robot 30. Therefore, the operation of the multi-axis robot 30 becomes smoother. [Explanation of symbols]

[0082] 1: Robot system 11: First matrix acquisition part 12: Second matrix acquisition part 13: Update section 20: Control device 22:Position and orientation correction section 24: Judgment section 30: Multi-axis robot 38: Tip 95: Control program q1~q6: Axis state quantity

Claims

1. a position and posture correction unit for obtaining a corrected position and posture to substitute for a target position and posture of the tip of the multi-axis robot; The position and orientation correction unit a first matrix acquisition unit for acquiring a first matrix indicating at least sensitivity of a first parameter, which is a part of a plurality of position and posture parameters indicating a position and posture of the tip of the multi-axis robot, to each axis state quantity of the multi-axis robot; a second matrix acquisition unit for acquiring a second matrix indicating at least a sensitivity of a second parameter different from the position and posture parameters to each of the axis state quantities; an updating unit for updating the candidate values ​​of the axis state quantities by using a first deviation including a deviation of the first parameter corresponding to the candidate value of each axis state quantity with reference to the target position and attitude, a second deviation including a deviation of the second parameter corresponding to the candidate value of each axis state quantity with reference to a target value of the second parameter, the first matrix, and the second matrix; Including, The position and attitude correction unit is configured to obtain, as the corrected position and attitude, a position and attitude of the tip of the multi-axis robot determined based on the candidate values ​​updated by the update unit. A control device for a multi-axis robot.

2. the updating unit is configured to update the candidate value by adding Δq expressed by Equation (1) to the latest candidate value of each of the axis state quantities, In the formula (1), a combination of Δx and J is one of a combination of a first vector including the first deviation as an element and the first matrix, or a combination of a second vector including the second deviation as an element and the second matrix, Δx C and J. C 2. The control device for a multi-axis robot according to claim 1, wherein the combination of is the other of the combination of the first vector and the first matrix or the combination of the second vector and the second matrix. Δq = J + Δx + (J C (I - J + J)) + (Δx C - J C J + Δx) ··· Equation (1)

3. a determination unit for determining whether a determination target parameter including at least the position and posture parameter corresponding to the latest candidate value of each of the axis state quantities updated by the update unit falls within an allowable range; 3. The control device for a multi-axis robot according to claim 1, wherein the update unit is configured to stop updating the candidate values ​​of the axis state quantities in response to a determination that the parameter to be determined falls within the allowable range.

4. 4. The control device for a multi-axis robot according to claim 3, wherein the determination unit is configured to determine whether the parameter to be determined is within the allowable range for at least one of a plurality of target position and postures that the multi-axis robot passes through until the position and posture of the tip end thereof changes to a final position and posture.

5. a determination unit for determining whether a value of a determination target parameter including at least the second parameter falls within an allowable range; 5. The control device for a multi-axis robot according to claim 1, wherein the update unit updates the initial candidate value, which is the axis state quantity indicating the target position and posture, in response to the determination by the determination unit that the value of the parameter to be determined deviates from the allowable range.

6. the first matrix acquisition unit is configured to acquire the first matrix indicating sensitivity of the first parameter to each of the axis state quantities at the latest candidate value of each of the axis state quantities, 6. The control device for a multi-axis robot according to claim 1, wherein the second matrix acquisition unit is configured to acquire the second matrix indicating the sensitivity of the second parameter to each of the axis state quantities at the latest candidate value of each of the axis state quantities.

7. A control device for a multi-axis robot according to any one of claims 1 to 6; the multi-axis robot; A multi-axis robot system comprising:

8. On the computer, a position and posture correcting step for obtaining a corrected position and posture to be substituted for the target position and posture of the tip of the multi-axis robot; The position and orientation correcting step a first matrix acquisition step for acquiring a first matrix indicating at least sensitivity of a first parameter, which is a part of a plurality of position and posture parameters indicating a position and posture of the tip of the multi-axis robot, to each axis state quantity of the multi-axis robot; a second matrix acquisition step of acquiring a second matrix indicating at least a sensitivity of a second parameter different from the position and posture parameters to each of the axis state quantities; an updating step for updating the candidate value of each of the axis state quantities by using a first deviation including a deviation of the first parameter corresponding to the candidate value of each of the axis state quantities with reference to the target position and attitude, a second deviation including a deviation of the second parameter corresponding to the candidate value of each of the axis state quantities with reference to a target value of the second parameter, the first matrix, and the second matrix; Including, In the position and orientation correcting step, the position and orientation of the tip of the multi-axis robot determined based on the candidate values ​​updated in the updating step is obtained as the corrected position and orientation. Control program for multi-axis robots.

Citation Information

Patent Citations

  • Collision detecting method for a plurality of robots and robot device

    JP2008279524A