Robot control device and robot control method
The robot control device selects tetrahedron vertices for improved interpolation, reducing calculation errors and enhancing driving accuracy by optimizing vertex selection and approximation in three-dimensional coordinate spaces.
Patent Information
- Application Number
- JP2024009012
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-24
- Publication Date
- 2025-08-05
AI Technical Summary
Existing robot control methods using a rectangular grid for sample points lead to calculation errors at positions away from the target, particularly near the center of the grid, affecting driving accuracy.
A robot control device and method that selects four vertices forming a tetrahedron containing a target point from a three-dimensional coordinate space, using interpolation or approximation to calculate a control quantity for drive control, with selection rules minimizing tetrahedron volume or axis variation.
Improves driving accuracy by reducing calculation errors through optimized vertex selection and approximation, enhancing positional precision in robot operations.
Smart Images

Figure 2025114359000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a robot control device and a robot control method for controlling the drive of a robot. [Background technology]
[0002] For example, in the technical field of industrial robots, various drive control techniques have been proposed to improve the positioning accuracy of robots.
[0003] Patent Document 1 discloses a correction method for correcting the target position of a robot using the position distribution of measurement deviation amounts in the robot coordinate space. In this correction method, sample points (or blocks) that make up the position distribution are arranged in a rectangular lattice pattern, and the correction amount is calculated using linear interpolation. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Patent No. 6705017 Summary of the Invention [Problem to be solved by the invention]
[0005] However, when the sample points are arranged in a rectangular grid, as in Patent Document 1, calculation errors due to interpolation calculations tend to occur at positions away from the eight sample points near the target position (or target point), specifically, at positions near the center of gravity of the rectangular grid.
[0006] The present invention has been made in view of the above problems, and its object is to provide a robot control device and a robot control method that further improve the driving accuracy of a robot. [Means for solving the problem]
[0007] The robot control device of the present invention includes one or more processors, and the one or more processors execute the following operations: an acquisition process for acquiring a feature map composed of data sets of coordinate values and feature values corresponding to sample points in a three-dimensional coordinate space, and indicating a positional distribution of the feature values; a selection process for selecting, in accordance with predetermined selection rules, four vertices of a tetrahedron that contains a target point in the three-dimensional coordinate space from a plurality of sample points that constitute the feature map acquired through the acquisition process; a computation process for calculating a computed feature value at the target point by an interpolation operation or an approximation operation using four sets of data sets corresponding to the four vertices selected through the selection process; and a determination process for determining a control variable to be used for drive control of the robot, based on the computed feature values calculated through the computation process.
[0008] The selection rule may also be that the volume of the tetrahedron is minimized.
[0009] The selection rule may be such that the variation in position on one axis forming the robot coordinate space is minimized.
[0010] The approximation calculation may include a calculation for determining a three-dimensional linear transformation matrix from the four sets of data, and a calculation for applying the three-dimensional linear transformation matrix to the coordinate values of the target points.
[0011] Furthermore, the three-dimensional coordinate space may be a real coordinate space, the feature amounts may be coordinate values indicating a position corresponding to the sample point in a robot coordinate space used for the drive control, the target point may include a second point that is moved from a first point in the real coordinate space by a shift amount, the calculated feature amounts may include a first coordinate value indicating a position in the robot coordinate space corresponding to the first point, or a second coordinate value indicating a position in the robot coordinate space corresponding to the second point, and the determination process may determine the control amount based on the first coordinate value or the second coordinate value.
[0012] Furthermore, the three-dimensional coordinate space may be a robot coordinate space used for the drive control, the feature amount may be a deviation amount indicating a positional deviation in real coordinate space or a correction amount for the positional deviation, the target point may include a second point in the robot coordinate space that is moved from a first point by a shift amount, the calculated feature amount may include a first feature amount that is the deviation amount or the correction amount corresponding to the first point, or a second feature amount that is the deviation amount or the correction amount corresponding to the second point, and the determination process may determine the control amount based on a second coordinate value of the second point that is obtained by adding or subtracting a difference amount between the first feature amount and the second feature amount to or from a first coordinate value of the first point, and then adding the shift amount.
[0013] In the robot control method of the present invention, one or more computers execute the following steps: an acquisition step of acquiring a feature map composed of data sets of coordinate values and feature values corresponding to sample points in a three-dimensional coordinate space and indicating a positional distribution of the feature values; a selection step of selecting, in accordance with predetermined selection rules, four vertices of a tetrahedron that contains a target point in the three-dimensional coordinate space from a plurality of sample points that constitute the acquired feature map; a calculation step of calculating a calculated feature value at the target point by an interpolation operation or an approximation operation using four sets of data sets corresponding to the selected four vertices; and a determination step of determining a control variable to be used for drive control of the robot based on the calculated calculated feature values. [Effects of the Invention]
[0014] According to the present invention, the driving accuracy of the robot can be further improved. [Brief explanation of the drawings]
[0015] [Figure 1] 1 is a diagram showing the overall configuration of a robot system that executes a robot control method according to an embodiment of the present invention. [Figure 2] FIG. 2 is a block diagram of the robot system shown in FIG. [Figure 3]2A to 2C are diagrams schematically illustrating a shifting operation performed by the robot of FIG. 1. [Figure 4] 2 is a flowchart showing an example of drive control by the control device of FIG. 1. [Figure 5] FIG. 10 is a diagram illustrating an example of a method for selecting four vertices from a plurality of sample points. [Figure 6] FIG. 10 is a diagram illustrating a first example of a method for calculating a position after shifting and correction. [Figure 7] FIG. 10 is a diagram illustrating a second example of a method for calculating a position after shifting and correction. [Figure 8] FIG. 10 is a diagram showing the driving accuracy for each position in the real coordinate space. DETAILED DESCRIPTION OF THE INVENTION
[0016] Hereinafter, an embodiment of the present invention will be described with reference to the accompanying drawings. To facilitate understanding of the description, the same components in each drawing will be denoted by the same reference numerals as much as possible, and duplicate explanations will be omitted. Furthermore, the term "part" may be replaced with other terms such as unit, module, device, or element.
[0017] [Configuration of Robot System 10] <Overall structure> 1 is a diagram showing the overall configuration of a robot system 10 that executes a robot control method according to one embodiment of the present invention. Specifically, the robot system 10 includes a robot 12, a control device 14 (corresponding to a "robot control device"), a teach pendant 15, and a position measuring device 16.
[0018] The robot 12 loads and unloads substrates 18 used in the production of display panels. In the example of FIG. 1, the robot 12 is configured as a vertically articulated robot having an arm unit 20. A servo motor 52 (FIG. 2) that performs rotational drive through servo control is connected to a joint axis 50 (FIG. 2) of the arm unit 20. The robot 12 can perform various tasks, including moving and transporting the substrates 18, by independently driving the multiple joint axes 50 in response to commands from the control device 14.
[0019] A tool 22 for loading and unloading the substrate 18 is attached to the tip of the arm unit 20. Specifically, this tool 22 is a plate-shaped holding device that holds the substrate 18. A tool center point (hereinafter referred to as point TCP) for identifying the position and posture of the robot 12 is set on the arm unit 20 or tool 22 of the robot 12. In the example of FIG. 1, point TCP corresponds to the center position on the tip side of the tool 22.
[0020] A work table 24 is provided within the operating range of the robot 12. In the example of Fig. 1, the plane formed by the work table 24 is defined as the XY plane, and the normal direction of the work table 24 is defined as the Z axis. In this case, the real coordinate space is expressed as a three-dimensional Cartesian coordinate system with X, Y, and Z as the three axes.
[0021] A cassette 26 capable of storing multiple substrates 18 stacked vertically (i.e., in the Z-axis direction) is placed on a workbench 24. A plurality of racks 28 are provided inside the cassette 26, extending in the depth direction (e.g., in the Y-axis direction) and spaced at approximately equal intervals in the Z-axis direction. By inserting the substrates 18 one by one into a plurality of storage areas (hereinafter referred to as "sectioned areas 30") defined by the racks 28, the multiple substrates 18 can be stored spaced apart from one another.
[0022] The control device 14 is a computer that controls the operation of the robot 12. Specifically, the control device 14 includes a connector 32, a communication I / F 34, a processor 36, and a memory 38. The number of each component is one in the example of Fig. 1, but may be two or more.
[0023] The connector 32 is a terminal for electrically connecting to the robot 12 via a power cable or a communication cable (neither of which is shown). This allows the control device 14 to supply power and control signals to the robot 12 and acquire measurement signals from various sensors provided on the robot 12.
[0024] The communication I / F 34 is an interface for communicating with an external device, which allows the control device 14 to exchange data with, for example, the teach pendant 15, the position measuring device 16, or a higher-level device (not shown).
[0025] The processor 36 may be a general-purpose processor including a CPU (Central Processing Unit), or may be a dedicated processor including an FPGA (Field Programmable Gate Array) or a GPU (Graphics Processing Unit). The memory 38 is a non-transitory storage medium that stores programs and data required for the processor 36 to control each component.
[0026] The teach pendant 15 is a terminal used for teaching the robot 12 and has a human-machine interface. Here, it is assumed that an operator uses the teach pendant 15 as an operating device to perform teaching work while moving the arm unit 20 of the robot 12. Specifically, the teaching work is performed by repeating the operations of [1] guiding the arm unit 20 to a desired point and [2] specifying a teaching point at the desired point.
[0027] As actual teaching data 70 (FIG. 2), state quantities indicating the state of the position and posture of the robot 12 (more specifically, point TCP) in the robot coordinate space are acquired. Here, the robot coordinate space is expressed as a three-dimensional Cartesian coordinate system with UV and W as the three axes. These state quantities are, for example, a combination of state values of [1] coordinate value (U) on the U axis, [2] coordinate value (V) on the V axis, [3] coordinate value (W) on the W axis, [4] roll angle (r) around the U axis, [5] pitch angle (p) around the V axis, and [6] yaw angle (y) around the W axis.
[0028] The position measuring device 16 is a device that measures the three-dimensional position of the point TCP in the XYZ coordinate space, and is composed of, for example, a laser tracker. Prior to the above-mentioned teaching operation, the position measuring device 16 repeatedly [1] moves the arm unit 20 and [2] measures the three-dimensional position of the point TCP, and supplies the obtained set of measurement values to the control device 14.
[0029] <Block diagram> Figure 2 is a block diagram of the robot system 10 shown in Figure 1. The robot 12 includes a joint axis 50, a servo motor 52, and a position sensor 54. The control device 14 includes a servo control unit 60 for driving and controlling the servo motor 52. For convenience of illustration, only one set of components is shown, but in reality, multiple sets (six sets in the example of Figure 1) are provided.
[0030] The servo motor 52 is a rotary actuator that rotates the joint shaft 50. A position sensor 54 (or an encoder) outputs a detection signal (hereinafter referred to as a "position signal") that indicates the angular position of the servo motor 52. A servo control unit 60 controls the drive of the servo motor 52 based on the position signal from the position sensor 54. For the drive control, for example, PWM (Pulse Width Modulation) is used, in which the current flowing through the servo motor 52 is used as the control amount.
[0031] In addition to the servo control unit 60 described above, the control device 14 further includes a state calculation unit 62 , a data generation unit 64 , a data storage unit 66 , and a program execution unit 68 .
[0032] The state calculation unit 62 calculates a state quantity indicating the state of the position and posture of the robot 12 at the point TCP using the position information and dynamics parameters of the servo motor 52. As described above, this state quantity is composed of vector quantities (U, V, W, r, p, y) consisting of a combination of U coordinate value, V coordinate value, W coordinate value, roll angle r, pitch angle p, and yaw angle y. When the state calculation unit 62 receives a command signal from the teach pendant 15, it supplies the state value (hereinafter also referred to as the "calculated value") calculated by itself to the data generation unit 64. This calculated value corresponds to a monitor value for monitoring the state of the point TCP.
[0033] The data generation unit 64 generates data necessary for driving and controlling the robot 12 (specifically, teaching data 70 and feature map 72) using the calculated values supplied from the state calculation unit 62 and the measured values supplied from the position measuring device 16.
[0034] The data storage unit 66 stores the teaching data 70 and the feature amount map 72 generated by the data generation unit 64. The teaching data 70 and the feature amount map 72 are referenced by the program execution unit 68 as necessary.
[0035] The teaching data 70 includes [1] a set of state quantities at teaching points (hereinafter referred to as a state quantity set), and [2] information regarding the layout of the cassette 26 (hereinafter referred to as layout information). The layout information includes information indicating the relative positional relationships of a plurality of partitioned areas 30 partitioned one-dimensionally or two-dimensionally. Examples of the layout information include the number of stages of the rack 28, the number of teaching points per stage of the rack 28, and identification information of the rack 28 on which the teaching work is to be performed (for example, the top stage or the bottom stage).
[0036] The feature map 72 is a collection of combinations of coordinate values 74 and feature values 76 (hereinafter referred to as a "dataset"), and corresponds to a three-dimensional position distribution of the feature values 76. The coordinate values 74 are vector quantities indicating the positions of sample points in three-dimensional coordinate space. The feature values 76 are quantities characterized by the positions of the sample points, and are quantities correlated with positional deviations in the XYZ coordinate space, for example. This "positional deviation" occurs due to, for example, differences in the robot 12 or deflections of the arm unit 20 or a reducer (not shown).
[0037] For example, if the coordinate value 74 is a ternary value (X, Y, Z) indicating the position of a sample point in an XYZ coordinate space, the feature 76 is a ternary value (U, V, W) indicating the position of the sample point in a UVW coordinate space. Also, if the coordinate value 74 is a ternary value (U, V, W) indicating the position of the sample point in a UVW coordinate space, the feature 76 is a displacement amount (ΔU, ΔV, ΔW) indicating the positional displacement of the sample point in the UVW coordinate space, or a displacement correction amount (Cu, Cv, Cw). In this case, the feature 76 corresponds to a lookup table (LUT) that uses three-dimensional variables as input values and three-dimensional variables as output values.
[0038] The program execution unit 68, in conjunction with the servo control unit 60, executes an operation program for causing the robot 12 to carry in and out the substrate 18. The program execution unit 68 is configured to include a shift processing unit 80 that performs shift operation control. This "shift operation control" is a control for moving the robot 12 along multiple operation paths by translating one operation path consisting of multiple teaching points in a predetermined shift direction. Specifically, the shift processing unit 80 performs [1] data acquisition processing, [2] control parameter setting processing, [3] position shift processing, [4] position correction processing, or [5] control amount determination processing.
[0039] The “acquisition process” is a data process in which the teaching data 70 and the feature map 72 are read out from the data storage unit 66 and acquired.
[0040] The "setting process" is data processing that sets control parameters related to the shifting operation using the acquired teaching data 70. Examples of the control parameters include position information of the reference point, identification information of the rack 28, or the shift amount per stage (hereinafter referred to as unit shift amount). The reference point is set, for example, at the position of the bottom or top stage of the rack 28.
[0041] The "position shift process" is a data process that uses the acquired control parameters to shift the position of the reference point by a shift amount. The shift amount is a value obtained by multiplying the unit shift amount SFT by the step i (0≦i≦N-1) of the rack 28 from the reference point. The shift process may be performed in the XYZ coordinate space or the UVW coordinate space.
[0042] The "position correction process" is data processing that calculates the corrected position using the acquired feature map 72 and the set control parameters. The calculation process specifically includes [1] a "selection process" that selects sample points, [2] a "calculation process" that calculates calculated features, and [3] a "correction process" that corrects the position. Note that the calculation process and the correction process may be performed separately or simultaneously depending on the type of calculated features.
[0043] The "selection process" is a data process in which, from among the multiple sample points that make up the feature map 72, four vertices that form a tetrahedron that includes the target point in the UVW coordinate space are selected in accordance with predetermined selection rules.
[0044] The first selection rule may be determined so that the volume of a tetrahedron is minimized. In this case, the shifting unit 80 may extract multiple tetrahedron candidates that include the target point, calculate the volume of each tetrahedron candidate, and select the four vertices (or tetrahedron candidates) that have the smallest volume. Alternatively, the shifting unit 80 may select the two sample points closest to the target point, and then select the third and fourth sample points sequentially in order of proximity to the target point so as to satisfy the geometric conditions, thereby selecting the four vertices.
[0045] The second selection rule may be determined so as to minimize the variation in position on one axis forming the UVW coordinate space. This "one axis" may be the Z-axis or W-axis, which is substantially parallel to the direction of gravity, if the influence of positional deviation due to bending of the arm unit 20 or the reducer is significant. In this case, the shift processing unit 80 may extract multiple tetrahedron candidates that include the target point, calculate statistics (e.g., variance or standard deviation) that indicate the variation in W coordinate values at each of the four vertices, and select the four vertices (or tetrahedron candidates) that minimize the statistics.
[0046] The "arithmetic processing" is data processing that calculates the feature amount at the target point (hereinafter referred to as "calculated feature amount") by interpolation or approximation using four sets of data sets corresponding to the four selected vertices. One example of an interpolation method is tetrahedral interpolation (or triangular pyramid interpolation).
[0047] The approximation calculation may apply an approximation model that reduces the degrees of freedom of the three-dimensional affine transformation. This approximation model may be, for example, a mathematical model that includes linear transformations (rotation, scaling, and shear) but omits translation. In this case, the approximation calculation includes [1] a calculation to obtain a transformation matrix D (here, a three-dimensional linear transformation matrix) from four sets of data, and [2] a calculation to apply the transformation matrix to the coordinate values of the target points.
[0048] Specifically, the transformation matrix D is calculated using the following equations (1) and (2). Here, F is a 3x4 matrix with the coordinate values 74 at the four vertices as matrix elements. G is a 4x3 matrix with the feature quantities 76 at the four vertices as matrix elements. The operators "*", "-1", and "T" mean a pseudo-inverse matrix, an inverse matrix, and a transposed matrix, respectively.
[0049] D=F * ·G···(1) F * =(F T F) -1 F T ···(2)
[0050] For example, if the feature 76 is a coordinate value indicating a position corresponding to a sample point in the UVW coordinate space, the target point corresponds to the "first point" of multiple sample points in the XYZ coordinate space, or the "second point" shifted from the first point by the shift amount. The calculated feature corresponds to [1] the "first coordinate value" indicating the position in the UVW coordinate space corresponding to the first point, or [2] the "second coordinate value" indicating the position in the UVW coordinate space corresponding to the second point. In this case, the position after the shift and correction corresponds to the calculated feature itself. By reversing the input / output characteristics of the feature map 72, the inverse transformation matrix D -1 can be obtained.
[0051] For example, if feature 76 is a displacement amount or displacement correction amount indicating a positional displacement in XYZ coordinate space, the target point corresponds to a "first point" in UVW coordinate space or a "second point" shifted from the first point by the shift amount. The calculated feature corresponds to [1] a "first feature amount" that is the displacement amount or correction amount corresponding to the first point, or [2] a "second feature amount" that is the displacement amount or correction amount corresponding to the second point. In this case, the position after the shift or correction corresponds to the coordinate value of the second point calculated by adding or subtracting the difference between the first feature amount and the second feature amount to or from the coordinate value of the first point in UVW coordinate space and then adding the shift amount.
[0052] The first point may be one of the plurality of sample points, or a point different from the sample points. Similarly, the second point may be one of the plurality of sample points, or a point different from the sample points. For example, if the first point or the second point is a sample point, the feature 76 can be directly acquired by referring to the feature map 72, and therefore the interpolation or approximation calculation described above can be omitted.
[0053] The "determination process" is a data process for determining the control variables used to control the drive of the robot 12 from the shifted and corrected positions (U, V, W) calculated based on the calculation feature quantities. The control variables are, for example, the target values (U, V, W, r, p, y) of the next state quantities of the robot 12.
[0054] [Operation of robot system 10] The robot system 10 that executes the robot control method in this embodiment is configured as described above. Next, the shift operation control of the robot system 10, particularly the control device 14, will be described with reference to FIGS.
[0055] <Shift operation overview> FIG. 3 is a diagram illustrating a shift operation performed by the robot 12 of FIG. 1. More specifically, FIG. 3 illustrates the positional relationship between the teaching point group and the control point group. The filled circles correspond to teaching points, and the unfilled circles correspond to control points. For example, the teaching point group (A0, B0, C0) is a point on a motion path for accessing the first partitioned area 30 (FIG. 1) from the bottom. If the unit shift amount is defined as SFT, the control point group (A1, B1, C1) is set by shifting the teaching point group (A0, B0, C0) by SFT. The control point group (A1, B1, C1) is a point on a motion path for accessing the second partitioned area 30 (FIG. 1) from the bottom.
[0056] Similarly, a control point group (A2, B2, C2) or a control point group (A3, B3, C3) is set, respectively. In this way, the shift operation is an operation in which one movement path consisting of a plurality of teaching points is translated in a predetermined shift direction, and the robot 12 is driven along the plurality of movement paths. Since this shift operation requires a small number of teaching points, the number of man-hours required by the operator for teaching can be significantly reduced.
[0057] <Operation of the control device 14> FIG. 4 is a flowchart showing an example of drive control by the control device 14 of FIG.
[0058] (Step SP10: Acquisition process) In step SP10, the shift processing unit 80 acquires data necessary for shift operation control, that is, the teaching data 70 and the feature amount map 72.
[0059] (Step SP12: Setting process) In step SP12, the shift processing unit 80 refers to the teaching data 70 acquired in step SP10, and sets the corresponding sample point as the reference point for the shift operation.
[0060] (Step SP14: Setting process) In step SP12, the shift processing unit 80 sets the shift amount according to the number of stages of the rack 28, with reference to the teaching data 70 acquired in step SP10.
[0061] (Step SP16: Calculation processing) In step SP16, the shift processing unit 80 calculates the position of the reference point (i.e., control point) after the shift and after the correction, using the feature map 72 acquired in step SP10 and the reference point and shift amount set in steps SP12 and SP14. This calculation step S16 includes a selection step (SP16a) of selecting four vertices from a plurality of sample points, and an approximation step (SP16b) of performing an approximation calculation using four sets of data corresponding to the four vertices.
[0062] FIG. 5 is a diagram showing an example of a method for selecting four vertices VT1 to VT4 from a plurality of sample points. The filled circles indicate the positions of the sample points in the XYZ coordinate space (or the UVW coordinate space). Point P corresponds to the target point when the three-dimensional coordinate space is the XYZ coordinate space. Point Q2 corresponds to the target point when the three-dimensional coordinate space is the XYZ coordinate space. In the example of FIG. 5, only eight sample points constituting an octahedron 90 including target points P and Q2 are shown. Here, four vertices VT1 to VT4 are selected from the eight sample points so that the volume of a tetrahedron 92 is minimized.
[0063] Vertex VT1 is the sample point closest to target points P and Q2. Vertex VT2 is the sample point second closest to target points P and Q2. Vertex VT3 [1] does not exist on the line passing through vertices VT1 and VT2, and [2] is the sample point closest to target points P and Q2 excluding the two vertices VT1 and VT2. Vertex VT4 [1] does not exist on the plane passing through vertices VT1 to VT3, [2] target points P and Q2 are on the surface of or inside tetrahedron 92, and [3] is the sample point closest to target points P and Q2 excluding the three vertices VT1 to VT3.
[0064] If the octahedron 90 is a cube, the volume of the tetrahedron 92 is 1 / 6 of the volume of the octahedron 90. As the volume surrounded by the sample points becomes smaller, the distances between the target points P and Q2 inside the tetrahedron 92 and the vertices VT1 to VT4 become relatively shorter, and the calculation error tends to become smaller accordingly.
[0065] FIG. 6 is a diagram showing a first example of a method for calculating the position after shifting and correction. This first example corresponds to the case where the feature amount 76 is a coordinate value indicating a position on the UVW coordinate space. The left side of FIG. 6 shows the real coordinate space (here, the XY coordinate plane), and the right side of FIG. 6 shows the robot coordinate space (here, the UV coordinate plane). Also, the mapping function from the real coordinate space to the robot coordinate space is T(·), and the mapping function from the robot coordinate space to the real coordinate space is T -1 It is written as (·).
[0066] In the UV coordinate plane, point P is the reference point, and point R is the reference point (i.e., control point) after shifting and correction. In the UV coordinate plane, point Q1 is the point T -1 (P) is the corrected reference point corresponding to point Q1, and point Q2 is the reference point after shifting from point Q1. Then, the desired control point R is obtained by converting point Q2 to point T(Q2) through an approximation operation with a conversion characteristic of T(·).
[0067] FIG. 7 is a diagram showing a second example of a method for calculating the position after the shift and correction. This second example corresponds to the case where the feature 76 is the amount of positional deviation in the XYZ coordinate space. FIG. 7 shows the robot coordinate space (here, the UV coordinate plane). Here, point P is the reference point, and point R is the reference point after the shift and correction (i.e., the control point). Point Q1 is the corrected reference point corresponding to point P, and point Q2 is the reference point after the shift from point Q1. Then, the deviation amounts M(P) and M(Q2) are calculated through an approximation operation in which the error map is M(·), and the difference between the deviation amounts is added (or subtracted) to calculate the desired control point R.
[0068] (Step SP18: Decision process) In step SP18 of Figure 4, the shift processing unit 80 determines the control amount to be used for driving control of the robot 12 based on the shifted and corrected positions calculated in step SP16, and supplies the obtained control amount to the servo control unit 60.
[0069] (Step SP20: Output processing) In step SP20, the servo control unit 60 generates a control signal from the control amount determined in step SP18, and outputs the control signal to the servo motor 52. As a result, the shifting operation by the robot 12 is performed sequentially.
[0070] 8 is a diagram showing the drive accuracy for each position in the real coordinate space. The horizontal axis of the graph indicates the position on the Y axis, and the vertical axis of the graph indicates the position on the Z axis. The positive direction of the Y axis corresponds to the near side of the rack 28, and the negative direction of the Y axis corresponds to the far side of the rack 28. The positive direction of the Z axis corresponds to the upper side of the rack 28, and the negative direction of the Z axis corresponds to the lower side of the rack 28.
[0071] On this graph, plots of "ideal value," "before correction," and "after correction" are shown, respectively. Each point in the "ideal value" indicates the movement path taken by the robot 12 to carry in the substrate 18 along the Y direction. In the example of FIG. 8, as can be seen from each point in the "before correction" graph, the positional deviation in the Z-axis direction increases as the point TCP on the tool 22 approaches the position of the rack 28.
[0072] In contrast, each point in the "after correction" column indicates the movement path when the positional deviation is corrected according to the flowchart shown in Fig. 4. By performing the correction in this way, the deviation (error) from the ideal value is reduced, and the driving accuracy of the robot 12 can be further improved.
[0073] [Summary of the embodiment] As described above, according to the robot control device and control method of this embodiment, the control device 14 selects, in accordance with predetermined selection rules, four vertices of a tetrahedron 92 that contains a target point in three-dimensional coordinate space from among a plurality of sample points that make up the feature map 72 acquired through the acquisition process, so that calculation errors that occur due to interpolation or approximation calculations are smaller than in the case of the octahedron 90. This makes it possible to further improve the driving accuracy of the robot 12.
[0074] Alternatively, the selection rule may be to minimize the volume of the tetrahedron 92. By reducing the volume of the tetrahedron 92, the distance between the target point (P, Q2) inside the tetrahedron 92 and the vertices VT1 to VT4 (i.e., sample points) becomes relatively shorter, which tends to reduce the calculation error accordingly.
[0075] Alternatively, the selection rule may be to minimize the variation in position on one axis (here, the W axis) that forms the UVW coordinate space. By reducing the variation in position on the W axis, the deviation in W coordinate between the target point (P, Q2) inside the tetrahedron 92 and the vertices VT1 to VT4 (i.e., sample points) becomes relatively small, which tends to increase the accuracy of position calculation.
[0076] The approximation calculation may include a calculation to obtain a three-dimensional linear transformation matrix from the four sets of data, and a calculation to apply the three-dimensional linear transformation matrix to the coordinate values of the target point (P, Q2). By reducing the translation variables in the affine transformation, the approximation calculation can be performed faster and the robustness against measurement errors contained in the feature 76 can be improved.
[0077] [Variations] The present invention is not limited to the above-described embodiment, and can be freely modified without departing from the spirit and scope of the present invention. Alternatively, the respective configurations may be arbitrarily combined within the scope of no technical contradiction. Alternatively, the execution or execution order of each step constituting the flowchart may be changed within the scope of no technical contradiction.
[0078] In the above embodiment, a vertical articulated robot has been described as an example, but the type of industrial robot is not limited to this. For example, a horizontal articulated robot, a parallel link robot, or an orthogonal robot may be used. [Explanation of symbols]
[0079] 10...Robot system, 12...Robot, 14...Control device (robot control device), 36...Processor, 38...Memory, 70...Teaching data, 72...Feature map, 74...Coordinate values, 76...Features, 92...Tetrahedron, P...Reference point (target point), Q1...Reference point after correction, Q2...Reference point (target point) after shift, R...Control point, VT1 to VT4...Vertices
Claims
1. one or more processors, the one or more processors: an acquisition process for acquiring a feature map that is composed of a dataset of coordinate values and feature values corresponding to sample points in a three-dimensional coordinate space and indicates a position distribution of the feature values; a selection process for selecting, from a plurality of sample points constituting the feature map acquired through the acquisition process, four vertices of a tetrahedron containing a target point in the three-dimensional coordinate space in accordance with a predetermined selection rule; a calculation process of calculating a calculation feature amount at the target point by an interpolation calculation or an approximation calculation using four sets of the data sets corresponding to the four vertices selected through the selection process; a determination process for determining a control amount to be used for drive control of the robot based on the calculation feature amount calculated through the calculation process; A robot control device characterized by executing the above.
2. 2. The robot control device according to claim 1, wherein the selection rule is to minimize the volume of the tetrahedron.
3. 2. The robot control device according to claim 1, wherein the selection rule minimizes the variation in position on one axis that forms the robot coordinate space.
4. 2. The robot control device according to claim 1, wherein the approximation calculation includes a calculation for determining a three-dimensional linear transformation matrix from the four sets of data sets, and a calculation for applying the three-dimensional linear transformation matrix to the coordinate values of the target point.
5. the three-dimensional coordinate space is a real coordinate space, the feature amount is a coordinate value indicating a position corresponding to the sample point in a robot coordinate space used for the drive control, the target point includes a second point that is shifted from the first point in the real coordinate space by a shift amount, the calculated feature amount includes a first coordinate value indicating a position in the robot coordinate space corresponding to the first point, or a second coordinate value indicating a position in the robot coordinate space corresponding to the second point, The robot control device according to claim 1 , wherein the determination process determines the control amount based on the first coordinate value or the second coordinate value.
6. the three-dimensional coordinate space is a robot coordinate space used for the drive control, the feature amount is a displacement amount indicating a positional displacement in a real coordinate space or a correction amount for the positional displacement, the target point includes a second point that is shifted from the first point in the robot coordinate space by a shift amount, the calculated feature amount includes a first feature amount that is the deviation amount or the correction amount corresponding to the first point, or a second feature amount that is the deviation amount or the correction amount corresponding to the second point, 2. The robot control device according to claim 1, wherein the determination process determines the control amount based on a second coordinate value of the second point obtained by adding or subtracting a difference between the first feature amount and the second feature amount to or from a first coordinate value of the first point, and then adding the shift amount.
7. an acquisition step of acquiring a feature map consisting of a dataset of coordinate values and feature values corresponding to sample points in a three-dimensional coordinate space, the feature map indicating a position distribution of the feature values; a selection step of selecting, from a plurality of sample points constituting the acquired feature map, four vertices of a tetrahedron that includes a target point in the three-dimensional coordinate space, in accordance with a predetermined selection rule; a calculation step of calculating a calculation feature amount at the target point by interpolation or approximation using four sets of the data sets corresponding to the selected four vertices; a determining step of determining a control amount to be used for drive control of the robot based on the calculated computational feature amount; A robot control method characterized by being executed by one or more computers.
Citation Information
Patent Citations
Method for correcting target position of work robot
JP6705017B2