Teaching device
By storing and using mechanism data containing actual robot mechanism error parameters in the virtual robot teaching device, the problem of position error in virtual robot teaching is solved, and a higher teaching accuracy is achieved.
Patent Information
- Application Number
- CN202280099200.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-08-24
- Publication Date
- 2025-03-28
AI Technical Summary
In the prior art, the three-dimensional model used by virtual robots in offline teaching does not include manufacturing errors, resulting in errors between the position where the actual robot arrives and the command position, making it difficult to accurately calibrate.
By storing mechanism data containing the actual robot mechanism error parameters, and using the virtual robot control unit to control the movement of the virtual robot based on these data, so that it reflects the error of the actual robot, thereby improving the teaching accuracy.
It realizes that the accuracy of virtual robot teaching is improved without performing re-teaching assignments, so that the actual robot can reach the command position more accurately.
Smart Images

Figure CN119730994A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a teaching device for performing off-line teaching of a robot. Background Art
[0002] Teaching devices that arrange three-dimensional models of robots, workpieces, peripheral devices, etc. in virtual space to perform offline teaching of robot movements are widely used. For example, Patent Document 1 records "a system comprising: a variable-size three-dimensional model generation unit 71 that generates a variable-size three-dimensional model of a workpiece; a measuring unit 5 that measures the position, posture, and size of the actual workpiece; a three-dimensional model correction unit 72 that corrects the measurement of the three-dimensional model based on the measurement results; and an offline teaching unit 73 that teaches robot movements offline based on the corrected three-dimensional model" (Abstract).
[0003] The actual robot is different from the virtual robot in the offline teaching. Due to manufacturing errors, etc., there is an error between the command position and the actual position reached. Therefore, the mechanism data containing manufacturing errors, etc. are calibrated to make the actual position reached by the actual robot as close to the command position as possible, thereby improving the absolute position accuracy of the actual robot. In this regard, Patent Document 2 discloses that "that is, in the past, when the mechanism parameters were updated, the updated mechanism parameters were used to execute the action program thereafter. Therefore, when the action program taught before the update was directly executed, the position and posture of the front end of the robot during teaching could not be achieved. According to this method, by using the mechanism parameters before the update and the current mechanism parameters to correct the position data of the action program, even if the current mechanism parameters are used to execute the action program taught before the update, the position and posture of the front end of the robot during teaching can be achieved. As a result, the action program that was taught before calibration can be reused without re-teaching." (Paragraph 0009).
[0004] Prior art literature
[0005] Patent Literature
[0006] Patent Document 1: Japanese Patent Application Laid-Open No. 11-296218
[0007] Patent Document 2: Japanese Patent No. 6453918 Summary of the invention
[0008] Problems to be solved by the invention
[0009] In the past, a virtual robot used in offline teaching generally used a three-dimensional model that was designed (i.e., without errors). In a three-dimensional model without errors, errors sometimes occur between the position reached by the actual robot. A method of performing offline teaching by measuring the actual dimensions of the robot and correcting the three-dimensional model of the robot is also considered. However, the robot has connecting parts such as connecting rods, and it is difficult to accurately measure the distance between the rotation centers of the connecting rods by measurement.
[0010] An object of the present invention is to provide a teaching device capable of improving the accuracy of teaching using such a virtual robot.
[0011] Means for solving problems
[0012] One embodiment of the present disclosure is a teaching device for teaching a robot, the teaching device comprising: a storage unit for storing mechanism data, the mechanism data being used to calculate the relationship between the angular position of the robot's joints and the front end position of the robot, and including mechanism error parameters of the actual robot; and a virtual robot control unit for controlling the movement of the virtual robot based on the mechanism data, so that a position error generated in the actual robot by the mechanism error parameters is generated in the virtual robot. Another embodiment of the present disclosure is a teaching device for teaching a robot, the teaching device comprising: a storage unit that stores mechanism data and an action program, the mechanism data being used to calculate the relationship between the angular position of a joint of the robot and the front end position of the robot, and including a mechanism error parameter of the actual robot; a transformation unit that transforms the position data in the action program so that when the mechanism data is not applied to the actual robot, the actual robot reaches the same position as when the mechanism data is applied, or transforms the position data so that when the mechanism data is applied to the actual robot, the actual robot reaches the same position as when the mechanism data is not applied; and an association unit that estimates data required for the transformation of the position data and associates it with the position data for the transformation.
[0013] Effects of the Invention
[0014] According to the above configuration, it is possible to improve the accuracy of teaching using a virtual robot.
[0015] These and other objects, features and advantages of the present invention will become more apparent from the detailed description of typical embodiments of the present invention as shown in the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] Figure 1It is a diagram showing a calibration system according to a first embodiment and an off-line teaching device for performing off-line teaching.
[0017] Figure 2 It is a diagram showing the structure of a robot.
[0018] Figure 3 This is a flowchart showing the collection process of the command position and the measured position.
[0019] Figure 4 It is a diagram for explaining the error caused by the deflection of the robot arm due to gravity.
[0020] Figure 5 This is a diagram for explaining errors caused by torsion between axes of a robot.
[0021] Figure 6 This is a diagram for explaining angle transmission error.
[0022] Figure 7 This is a functional block diagram of the off-line teaching device according to the first embodiment.
[0023] Figure 8 This is a diagram showing an example of a UI screen of a mechanism data reading unit.
[0024] Fig. 9 This is a functional block diagram of the program transformation device according to the second embodiment.
[0025] Fig.10 This is a diagram showing an example of a UI screen for selecting a program to be converted.
[0026] Fig.11 This is a diagram showing an example of a UI screen related to detailed settings of conversion.
[0027] Fig.12 This is a diagram for explaining the position correction of the robot based on the mechanism data.
[0028] Fig.13 This is a functional block diagram of the program transformation device according to the third embodiment.
[0029] Fig.14 This is a functional block diagram of an off-line teaching device according to a fourth embodiment.
[0030] Fig.15 This is a functional block diagram of the program transformation device according to the fifth embodiment.
[0031] Fig.16 This is a functional block diagram of an off-line teaching device according to a sixth embodiment.
[0032] Fig.17AThis is a diagram for explaining a first function of converting position data of the off-line teaching device according to the sixth embodiment.
[0033] Fig. 17B This is a diagram for explaining a second function of converting position data of the off-line teaching device according to the sixth embodiment.
[0034] Fig.18 This is a functional block diagram of an off-line teaching device according to a seventh embodiment.
[0035] Fig.19 A diagram for explaining a layout correction function of the off-line teaching device according to the seventh embodiment.
[0036] Fig. 20 This is a functional block diagram of an off-line teaching device according to an eighth embodiment. DETAILED DESCRIPTION
[0037] Next, the embodiments of the present disclosure are described with reference to the accompanying drawings. In the referenced drawings, the same structural parts or functional parts are marked with the same reference symbols. For easy understanding, the scales of these drawings are appropriately changed. In addition, the method shown in the drawings is an example for implementing the present invention, and the present invention is not limited to the method shown in the drawings.
[0038] First embodiment
[0039] Figure 1 The calibration system 100 and the offline teaching device 50 for performing offline teaching according to one embodiment are shown. The actual robot may have an error between the command position and the actual position reached due to processing errors, assembly errors, etc. The calibration system 100 is capable of measuring and outputting mechanism data including such processing errors and assembly errors (i.e., calibrating the mechanism data). The offline teaching device 50 is a device for performing offline teaching of a virtual robot using the mechanism data output by the calibration system 100. The offline teaching device 50 obtains the calibrated mechanism data from the calibration system 100, causes the virtual robot to perform actions (simulations) that reflect the errors generated in the actual robot, and enables accurate teaching.
[0040] like Figure 1 As shown, the calibration system 100 includes a robot 1, a calibration device 130 for performing calibration of the robot 1, and a three-dimensional measuring device 20 for measuring the three-dimensional position of an object. In this embodiment, an example is shown in which the calibration device 130 is configured to realize functions by executing software by a processor in a robot control device 30. The three-dimensional measuring device 20 is a three-dimensional position measuring device such as a laser tracker.
[0041] like Figure 1As shown, the robot control device 30 has a teaching operation panel 40, which has a function as an operation input device for operating the robot 1. The teaching operation panel 40 has a display unit 41 and an input unit 42. The input unit 42 is a key input device or a touch panel input device, etc. In the case of a touch panel input device, the display unit 41 and the input unit 42 are integrally configured. The display unit 41 has, for example, a flat panel display. The robot control device 30 has a storage unit 140 (ROM, RAM, non-volatile memory or other storage device). The storage unit 140 stores various information required for the calibration device 130 to operate, such as action programs and mechanism data.
[0042] In the present embodiment, the calibration device 130 is a function implemented in the robot control device 30 , but there may be a configuration example in which the calibration device 130 is implemented in the off-line teaching device 50 .
[0043] In this embodiment, the robot 1 is a six-axis vertical multi-joint robot. In addition, various types of robots such as a parallel linkage robot and a dual-arm robot may be used as the robot 1 depending on the work object. The robot 1 can perform the desired work by using a work tool as an end effector installed on the wrist. The work tool is an external device that can be replaced according to the purpose, such as a hand, a welding gun, a tool, etc. Figure 1 , an example of using a welding gun as a working tool is shown.
[0044] Figure 2 1 is a perspective view showing a configuration example of a robot 1 according to the present embodiment. Figure 2 As shown, the robot 1 includes a base 14, a rotating base 13, a lower arm 12, an upper arm 11, a wrist 15, and a flange 16. The lower arm 12 is supported by the rotating base 13. The rotating base 13 is supported by the base 14. The wrist 15 is connected to the end of the upper arm 11. The wrist 15 includes a flange 16 for fixing the welding gun 5. The components such as the upper arm 11 and the lower arm 12 are connected via a joint.
[0045] The robot 1 includes a drive motor disposed in each of the rotating base 13, the upper arm 11, the lower arm 12, the wrist 15, and the flange 16. The welding gun 5 includes a tool drive device for driving the welding gun 5, a motor for driving a movable electrode, and the like.
[0046] The origin of the world coordinate system 71 is set on the base 14 of the robot 1. The world coordinate system 71 does not change when the position and posture of the robot 1 change, and is also called a reference coordinate system. A tool coordinate system 72 is set in the robot 1, and the tool coordinate system 72 has an origin set at an arbitrary position of the working tool. The position and posture of the tool coordinate system 72 change together with the welding gun 5. In the present embodiment, the origin of the tool coordinate system 72 is set to the tool front end point 72a (the front end point of the fixed electrode). As an example, in the present embodiment, the position of the robot 1 corresponds to the position of the tool front end point (the position of the origin of the tool coordinate system 72). In addition, the posture of the robot 1 corresponds to the posture of the tool coordinate system 72 relative to the world coordinate system 71.
[0047] exist Figure 2 The joint axes J1 to J6 in each joint are shown in FIG. In each joint axis J1 to J6, the angles D1 to D6 of the joint are determined. For example, the angle of the joint is equivalent to the angle between the components in the joint. Furthermore, the angle of the joint corresponds to the rotation position of the drive motor configured corresponding to each joint.
[0048] like Figure 1 As shown, the calibration device 130 includes a command generating unit 131 , a command position acquiring unit 132 , a measured position acquiring unit 133 , a mechanism data correcting unit 134 , a mechanism data outputting unit 135 , and a mechanism data correcting unit 136 .
[0049] The command generation unit 131 generates a command for moving the robot 1 to an arbitrary position. The robot control device 30 includes a servo control unit (not shown) for executing servo control of the motors of the axes of the robot 1 according to the command generated by the command generation unit 131 .
[0050] The command position acquisition unit 132 acquires and stores the current command position output by the command generation unit 131. The current command position is stored in the storage unit 140, for example.
[0051] The measurement position acquisition unit 133 gives a measurement command to the three-dimensional measuring device 20, acquires and stores the three-dimensional position information of the measurement object (for example, the tool tip point 72a). The measured three-dimensional position information is stored in the storage unit 140, for example.
[0052] Figure 3The action flow of the collection process of the command position and the measured position of the robot is shown. The collection process is performed under the control of the calibration device 130 (processor). The command generation unit 131 generates a command to move the robot 1 to an arbitrary position and causes the robot 1 to move (step S1). Next, the command position acquisition unit 132 records the command position for the robot 1 (step S2). Next, the measured position acquisition unit 133 records the position of the robot 1 measured by the three-dimensional measuring device 20 (for example, the position of the tool tip point 72a) (step S3). The calibration device 130 performs the process of steps S1 to S3 until the specified number of times is reached (step S4: No). In addition, the specified number of times is the number of times for obtaining data (command position, measured position) sufficient for the identification calculation of the mechanism data. When the process of steps S1 to S3 reaches the specified number of times, the present process is terminated (step S4: Yes). Thus, the set of command positions and measured positions required for the identification of the mechanism data is collected.
[0053] The mechanism data correction unit 134 calculates the mechanism data based on the difference between the command position maintained by the command position acquisition unit 132 and the measured position measured by the three-dimensional measuring device 20. The mechanism data includes DH parameters for representing the relative relationship between adjacent joint axes of the robot. The DH parameters are parameters in the DH method (Denavit Hartenberg) method used in the relationship between the angular position of each driving axis of the robot and the front end position of the robot. In the DH method, a coordinate system is set for each joint axis, and the position and posture of the robot are expressed based on the relationship between the coordinate systems of adjacent joint axes. In the DH method, parameters θ, d, a, α, and β are used. The meaning of each parameter is as follows.
[0054] θ: from x i-1 Axis to x i The rotation angle of the axis (around z i-1 axis)
[0055] d: from the origin of the i-1 coordinate system to z i-1 Axis and x i Distance of the intersection of the axes (connecting rod length)
[0056] a: from z i-1 Axis and x i The distance from the intersection of the axes to the origin of the i-th coordinate system (the distance between the joint axes)
[0057] α: from z i-1 Axis to z i The rotation angle of the axis (around x i axis)
[0058] β: from z i-1 Axis to z i The rotation angle of the axis (around yi axis)
[0059] The mechanism data includes mechanism error parameters, which may include factors that change the position and posture of the robot's front end, such as errors in DH parameters (θ, d, a, α, β), spring constants (elements that represent arm deflection caused by gravity or external forces) relative to the torque generated in the three-dimensional directions of each drive axis, and angle transmission errors that model the relationship between the encoder output and the rotation amount of each axis.
[0060] For example, when correcting the deflection of each axis relative to the torque generated around the axes x, y, and z, each axis can have three spring constants as error parameters, and torque×spring constant can be added to the above θ, α, β as the correction amount.
[0061] Regarding the angle transmission error, a model (y=ax) with the ratio (a) of the rotation amount (y) to the encoder output (x) as the error parameter, or a model (y=ax+b·cos(x)) that formulates the relationship between the encoder output (x) and the rotation amount (y) can be used as the correction amount and added to the above-mentioned θ, α, and β.
[0062] In addition, the mechanism data may include the position error of the origin of the world coordinate system, and a table of axis coordinate values and orthogonal coordinate values used for spatial correction.
[0063] The mechanism data may also include a matrix or a relational expression representing the relative positional relationship between adjacent joints in the robot. In this case, the mechanism data may include a homogeneous transformation matrix T that determines the positional relationship between adjacent joints determined by the above-mentioned DH parameters, and a relational expression that expands the homogeneous transformation matrix T.
[0064] Reference Figure 2 , coordinate system 75 represents the coordinate system of the kth joint. Coordinate system 76 represents the coordinate system of the (k+1)th joint next to the kth joint. Let the homogeneous transformation matrix used to calculate the (k+1)th coordinate system from the kth coordinate system be T k , and let the homogeneous transformation matrix used to calculate the tool coordinate system from the flange coordinate system be T UT When the tool tip position P is calculated from the first coordinate system P The homogeneous transformation matrix T 1P It can be expressed by the following formula (1).
[0065] T 1P =T1T2...T n T UT …(1)
[0066] When the homogeneous transformation matrix of equation (1) is expanded, the position P of the tool tip point can be calculated from the first coordinate system. P The homogeneous transformation matrix or relational expression may also include an error relative to the design value. For example, the mechanism data may also be a transformation matrix or relational expression determined by a parameter (ai+Δai) containing an error Δai relative to a parameter ai of the design value and a parameter (αi+Δαi) containing an error Δαi relative to a parameter αi of the design value.
[0067] The mechanism data correction unit 134 uses a least square method or other method to identify the mechanism data so as to minimize the error between the measured position and the command position. When the vector with the above error parameter as an element is set to q, the vector p representing the three-dimensional position of the front end of the robot can be expressed as follows by a function f that takes into account the error model.
[0068] p=f(q)
[0069] The vector Δp indicating the offset between the designated position and the measured position of the robot tip can be approximated as follows by the sum of linear combinations of small variations of the error parameters. JA is a Jacobian matrix.
[0070]
[0071] The three-dimensional measuring device obtains the measurement result of the three-dimensional position, so the three equations are established based on one posture measurement. By expanding them to multiple measurement postures, the vector Δr and Jacobian matrix D representing the corresponding offset are obtained, which can be expressed as follows.
[0072] Δr=D·Δq Generally, the error parameter is identified by solving an iterative estimation problem to minimize Δr.
[0073] As described above, the mechanism data correction unit 134 can calibrate the mechanism data to reflect the actual error in the position of the robot.
[0074] The mechanism data output unit 135 can output the calibrated mechanism data. The mechanism data output unit 135 can output the mechanism data in the form of a file. The output destination of the mechanism data can be an external device or the storage unit 140 in the calibration device 130. The mechanism data file 90 generated by the mechanism data output unit 135 can be set to different formats when used for the purpose of causing an error in the virtual robot and when used for the purpose of correcting an error in the actual robot. Alternatively, it can be set to a data format that can be commonly referenced by a device on the side used for the purpose of causing an error in the virtual robot and a device on the side used for the purpose of correcting an error in the actual robot, and the content and usage method can be distinguished on the reading side of the actual robot and the virtual robot.
[0075] Reference Figure 4 The deflection of the arm due to gravity, which is one element of the mechanism error parameter of the mechanism data, is described below. Figure 4 (as well as Figure 5 ), in order to simplify the description, the robot is assumed to have a structure including arms 61, 62 and a joint 63. It is assumed that arm 62 is bent downward due to the influence of gravity. Figure 4 As shown in FIG. 1 , when the arm 62 is deflected by gravity, the mechanism data calculated by the mechanism data correction unit 134 as described above reflects the error of the deflection. By using this mechanism data (mechanism error parameter), the arm 62 of the virtual robot can be made to deflect the same as the deflection caused by gravity that occurs in the actual robot (arrow A1 in the figure). On the other hand, the mechanism data for the actual robot can also be set so that the arm 62 can reach the desired position even if the arm is deflected. Figure 4 The position and posture of the robot shown in the figure is such that correction data is applied in the direction opposite to the error generated by the virtual robot (arrow B1 in the figure).
[0076] Reference Figure 5 The following describes the inter-axis torsion which is one of the elements of the mechanism error parameter of the mechanism data. Figure 5 As shown, it is assumed that an error caused by interaxial torsion occurs in the arm 61. In this case, the mechanism data calculated by the mechanism data correction unit 134 as described above reflects the interaxial torsion. By using this mechanism data (mechanism error parameter), the arm 61 of the virtual robot can generate the same interaxial torsion as the interaxial torsion generated by the actual robot (arrow A2 in the figure). On the other hand, as the mechanism data for the actual robot, in the actual robot, it can also be set to be able to reach the desired position even if interaxial torsion occurs. Figure 4 In the manner of the position and posture indicated by the solid line, correction data is applied in the direction opposite to the error generated by the virtual robot (arrow B2 in the figure).
[0077] Reference Figure 6 , the angle transfer error as one of the mechanism error parameters of the mechanism data is explained. The mechanism data calculated by the mechanism data correction unit 134 as described above reflects the angle transfer error. Assume that the angle transfer error represented by the mechanism data is Figure 6 In this case, in order to make the virtual robot produce the angle transfer error that occurs in the actual robot, the virtual robot is given Figure 6 On the other hand, as the mechanism data for the actual robot, data can be generated in such a way that an angle transfer error B3 such as a dotted line having characteristics opposite to those of the angle transfer error of the solid line is given in order to correct the position error caused by the angle transfer error such as the solid line.
[0078] The mechanism data correction unit 136 provides a function of setting whether to correct or not correct each element of the mechanism data of the actual robot. It is also possible to perform correction by specifying a ratio to be applied to each mechanism error parameter.
[0079] In addition, when the mechanism data of the actual robot is not corrected (the calibrated mechanism data is not applied), an offline program generated using a virtual robot to which the mechanism data is applied can be used. When the mechanism data of the actual robot is corrected (the calibrated mechanism data is applied), the position data taught before application can be achieved again by transforming the position data stored in the program or system that was taught before application (refer to the second embodiment, the fourth embodiment, etc. described later).
[0080] As described above, the mechanism data can be calculated by the mechanism data correction unit 134 and output by the mechanism data output unit 135, so that these data can be used in the offline teaching device 50 to make the virtual robot reflect the error of the actual robot. As a result, the program can be generated and converted using the virtual robot including the error.
[0081] Furthermore, by including the mechanism data correction unit 136, the ratio of the mechanism data to be applied to the actual robot can be selected according to the generation and conversion method of the offline program. As a result, the calibrated mechanism data can be applied to the robot in an optimal manner, such as by applying or not applying the mechanism data to the actual robot or applying the data taught before application to a degree that does not require correction, etc., taking into account the amount of position data taught before application of the mechanism data.
[0082] The offline teaching device 50 can make the virtual robot reach an appropriate position reflecting the mechanism data by using the mechanism data (calibrated mechanism data) output by the calibration device 130. Thus, the offline teaching device 50 can perform accurate teaching (offline programming).
[0083] In particular, in the embodiment, the mechanism data (mechanism error parameters) may include (a) elements such as the robot's link length and assembly error that cannot be accurately reflected in the CAD model in the data obtained based on measurement; and (b) elements such as the deflection caused by gravity and angle transmission error that cannot be reflected in the CAD model. Therefore, the offline teaching device 50 can accurately teach the mechanism data that reflects the mechanism error parameters such as (a) and (b).
[0084] Figure 71 is a functional block diagram of the off-line teaching device 50. The off-line teaching device 50 may include a processor 150, a memory (storage unit 156), a display unit 154, an operation unit 155, and an input / output interface (not shown) as a general computer structure. Figure 7 As shown, the offline teaching device 50 includes a mechanism data reading unit 151, a model correction unit 152, and a virtual robot control unit 153. In addition, the offline teaching device 50 displays a UI (user interface screen) related to the teaching of the robot, and has a display unit 154 and an operation unit 155 as a structure for accepting operations on the UI screen. The operation unit 155 is a keyboard, a mouse, or a touch panel. In the case of a touch panel, the display unit 154 and the operation unit 155 are integrally configured. The display unit 154 has, for example, a flat panel display.
[0085] The mechanism data reading unit 151 provides a function for reading and storing the mechanism data file 90. For example, the mechanism data reading unit 151 Figure 8 The UI screen shown is displayed on the display unit 154 , and an operation of applying mechanism data to the virtual robot (that is, an operation of reading mechanism data) is accepted. Figure 8 The UI screen shown includes a virtual robot model 1M and an image representing a mechanism data file 90. The user drags the mechanism data file 90 to the virtual robot model 1M via the UI screen, thereby applying the mechanism data in the mechanism data file 90 to the virtual robot model 1M. The mechanism data reading unit 151 stores the read mechanism data in, for example, the storage unit 156, and transmits the mechanism data to the model correction unit 152 and the virtual robot control unit 153.
[0086] The model correction unit 152 corrects the CAD model of the virtual robot based on information such as DH parameters in the mechanism data. By using the DH parameters, the model correction unit 152 can accurately reflect link lengths, assembly errors, etc. in the CAD model of the virtual robot.
[0087] The model correction unit 152 may also have a function of correcting the CAD model of the workpiece and the peripheral device. In this case, the model correction unit 152 can correct the three-dimensional model of the workpiece and the peripheral device defined by the variable size based on the size measured by the three-dimensional measuring device 20 .
[0088] The virtual robot control unit 153 can calculate the correction amount for correcting the position of the robot based on the mechanism data. When controlling the virtual robot, the virtual robot control unit 153 generates an action command in a manner that applies correction in the direction opposite to the calculated correction amount. In this way, the virtual robot can be operated in a manner that reflects the error generated in the actual robot to the virtual robot. The specific calculation method of the correction amount is described below.
[0089] The off-line teaching device 50 holds the following two pieces of mechanism data.
[0090] (D1) Mechanism data before update (Mechanism data before update through calibration)
[0091] (D2) Updated mechanism data (Mechanism data updated through calibration)
[0092] (Sequence K1: The position data of the action instruction in the mechanism data (D1) before application is used as the position (a) of each axis. Use the mechanism data (D1) before application to perform a positive transformation (transformation based on positive kinematics) on the position (a) of each axis to obtain the orthogonal position p of the robot fingertip.
[0093] (Sequence K2) Next, the orthogonal position p is inversely transformed (transformation based on inverse kinematics) using the applied mechanism data (D2) to obtain the position of each axis (b).
[0094] (Sequence K3) (b)-(a) represents the correction amount.
[0095] In order to transform the position data of the motion instruction (position of each axis (a)) into the position data to which the "mechanism data (D2) after application" is applied without applying the "mechanism data (D2) after application" to the actual robot, a correction amount is added to the position data of the motion instruction (position of each axis (a)).
[0096] When the "mechanism data after application (D2)" is applied to the actual robot, in order to transform the position data of the motion instruction (the position of each axis (a)) into the position data without applying the "mechanism data after application (D2)", the correction amount is subtracted from the position data of the motion instruction (the position of each axis (a)).
[0097] Furthermore, calculation of the correction amount based on the above-described procedure can also be applied when replacing the robot.
[0098] The virtual robot control unit 153 can generate an operation command so as to apply a correction in the opposite direction to the correction amount obtained as described above, and can perform control so that the error that occurs in the real robot also occurs in the virtual robot.
[0099] Thus, the virtual robot control unit 153 can take into account the deflection and angle transfer error caused by gravity that changes according to the robot's posture when calculating the correction amount, and introduce it into the virtual robot. This can improve the accuracy of interference detection, program generation and conversion regardless of the robot's posture.
[0100] For example, if the number of robots in a single unit of the offline teaching system exceeds 30, it may take time to select files one by one and apply the mechanism data to the virtual robot. In addition, the mechanism data related to the deflection caused by gravity can be reused as long as it is the same robot model. In this regard, as described above, the mechanism data reading unit adopts a structure that can apply the mechanism data to the robot model by dragging. As a result, the same mechanism data can be easily applied to multiple virtual robots, and the time can be shortened even when the mechanism data is applied to multiple robots.
[0101] Second embodiment
[0102] The following is a description of the program transformation device 250 of the second embodiment. The program transformation device 250 provides the following function: transforming the position data of the action program so that the robot reaches an appropriate position and posture reflecting the updated mechanism data. On the other hand, when the updated mechanism data is applied to the robot, the position data taught in the action program before application may not be used. The program transformation device 250 of this embodiment is configured to also provide the following function: when the updated mechanism data has been applied to the robot, the position data of the action program is transformed so that it reaches the same position as when it is not applied.
[0103] like Fig. 9 As shown, in this embodiment, the program conversion device 250 is implemented as a function implemented by a processor of the off-line teaching device 50. Alternatively, there may be an example in which the program conversion device 250 is configured as a function implemented by a processor in the robot control device 30.
[0104] Fig. 9 The program conversion device 250 includes a program extracting unit 251 , a program selecting unit 252 , a mechanism data reading unit 253 , and a related screen control unit 260 .
[0105] The mechanism data reading unit 253 reads the mechanism data file 90 (that is, the mechanism data after calibration of the actual robot) outputted from the calibration device 130 and stores it in the storage unit 254 .
[0106] The program extracting unit 251 extracts programs including the corrected robot position data from the program list and lists them on the display screen. The program selecting unit 252 provides the following function: at least one program is selected from the listed programs based on a user operation. In response to the program selection via the program selecting unit 252, the related screen control unit 260 is called.
[0107] like Fig. 9As shown, the related screen control unit 260 includes a related program selection unit 261 , a program display unit 262 , a related unit 263 , a related setting unit 264 , a conversion unit 265 , a conversion selection unit 266 , a conversion selection setting unit 267 , and a position correction unit 268 .
[0108] The related program selection unit 261 lists the selected programs on the display screen and identifiably displays the programs for which data required for position data conversion is insufficient. For example, the related program selection unit 261 may change the display color of the programs for which data required for position data conversion is insufficient.
[0109] The program display unit 262 displays information on the content of the program selected by the related program selection unit 261 and various information provided by the association unit 263 and the association setting unit 264 .
[0110] The association unit 263 provides a function of estimating and displaying data required for conversion of position data based on an operation program and allowing the user to modify the display result. The association setting unit 264 provides a function of presetting information included in the position data and an estimation method required for conversion.
[0111] The transformation selection unit 266 provides a function of setting transformation / non-transformation for each position data. The transformation selection setting unit 267 provides the following function: setting transformation / non-transformation according to the action form such as straight line, each axis, arc, etc., and the position form of the position data (orthogonal, each axis). The transformation selection unit 266 can also be configured to accept user input for setting transformation / non-transformation for each position data. The transformation selection unit 266 can determine transformation / non-transformation for each position data according to the setting of the transformation selection setting unit 267. The transformation selection setting unit 267 can also be configured to generate setting information according to user input.
[0112] The conversion unit 265 calculates the correction amount based on the updated mechanism data and performs addition or subtraction on the position data. That is, the conversion unit 265 can provide the following functions:
[0113] (F1) When the mechanism data is not applied to the actual robot, the position data in the motion program is converted into position data that becomes the same position as that in the application; or
[0114] (F2) When the mechanism data is applied to the actual robot, the position data in the action program is converted to position data that is the same as the position when the mechanism data is not applied. Here, the ratio of the amount of position data correction can also be specified. The conversion unit 265 can also notify the user when the position data cannot be converted. When the position data is set as a relative position, the conversion unit 265 can perform the operation by performing the conversion after returning to the absolute position and returning to the relative position.
[0115] The conversion unit 265 calculates the correction amount to be applied to the position data as follows to convert the position data.
[0116] The program conversion device 250 holds the following mechanism data.
[0117] (D1) Mechanism data before update (Mechanism data before update through calibration)
[0118] (D2) Updated mechanism data (Mechanism data updated through calibration)
[0119] The program transformation device 250 calculates the correction amount through (sequence K1) to (sequence K3) described in the first embodiment.
[0120] In order to convert the mechanism data (D2) into position data to which the mechanism data (D2) is applied instead of being applied to the actual robot, it is sufficient to add a correction amount to each axis position (a).
[0121] In order to apply the mechanism data (D2) to the actual robot and convert it to a position where the mechanism data (D2) is not applied, the correction amount is subtracted from each axis position (a).
[0122] When teaching in an orthogonal format, the position of each axis (a) is obtained by performing an inverse transformation using the mechanism data (D1).
[0123] In the case of the orthogonal form, the orthogonal position is obtained by performing positive transformation on the position of each axis by adding or subtracting the correction amount according to the mechanism data (D1).
[0124] Application of the correction amount as described above can also cope with a case where the robot is replaced and the mechanism data is updated.
[0125] Able to use Fig.12 The above-mentioned transformation function of the transformation unit 265 is explained with reference to the schematic diagram. Reference numeral 301 is the position and posture of the robot to be reached through offline programming (equivalent to the above-mentioned axis positions (a)). Due to the influence of the deflection caused by gravity, the actual robot obtains a position and posture that is bent downward compared to the position and posture shown in reference numeral 301 (arrow A4 marked on the robot indicated by reference numeral 303). The position and posture of the robot shown in reference numeral 302 is the position and posture obtained by adding the correction amount calculated in the above-mentioned transformation process to the position and posture of the robot shown in reference numeral 301 (each axis position (a)). The position data of the robot after correction is as shown in reference numeral 302, but in the actual robot, due to the influence of the deflection caused by gravity, as shown in reference numeral 303, the robot reaches the target position (the position of the robot shown in reference numeral 301).
[0126] The position correction unit 268 can provide a function of correcting the position obtained by the above-mentioned conversion on the off-line teaching device 50 .
[0127] Reference Fig.10 and Fig.11 , a UI (User Interface) screen provided as a function of the related screen control unit 260 is described. Fig.10 A configuration example of a UI screen for selecting a program to be converted is shown. Fig.10 The UI screen 280 shown is provided as a function of the program extraction unit 251 and the program selection unit 252. The UI screen 280 includes a program list display area 281 that displays a list of programs extracted by the program extraction unit 251. The user can select a program to be converted from the program list display area 281. For example, by selecting a program in the program list display area 281 and pressing an add button 283, the user can add the selected program to the conversion target program list display area 282 that displays a list of conversion target programs.
[0128] Fig.11 The UI screen 290 related to the detailed setting of the conversion is shown. The UI screen 290 can be activated by pressing the "Confirm estimated value" button 284 in the UI screen 280. That is, the UI screen 290 also has a function as a screen for confirming the data estimated by the association unit 263 as data required for the conversion of the position data. The UI screen 290 is provided as a function of the association screen control unit 260.
[0129] like Fig.11 As shown, the UI screen 290 includes a program list display area 291 for selecting a program to be processed (a program to be associated) in the UI screen 290. The program list display area 291 displays the program selected in the UI screen 280 and included in the conversion target program list display area 282.
[0130] UI screen 290 includes program display area 292 for displaying the content of a program selected from program list display area 291. Here, it is assumed that program "ABC" is selected from program list display area 291. In program display area 292, the content of program "ABC" is displayed.
[0131] In the program display area 292, the contents of the program "ABC" are displayed for each command statement.
[0132] A column 293 in the right column of the program display area 292 displays load setting information which is the result of estimation of data required for conversion obtained by the associating unit 263. The function provided by the column 293 corresponds to the function of the associating unit 263. In this example, a load setting number is set as load information.
[0133] The association unit 263 can estimate the load information corresponding to the position data based on the content of the program. For example, the load information (load setting number) applied to the position data can be estimated based on the load setting command (PAYLOAD) included in the program. In this case, the load setting applied to the position data can be grasped based on the configuration position of the load setting command (PAYLOAD). For example, the load setting command located before the command statement containing the position data and located closest to the command statement can be estimated as the load setting information related to the position data.
[0134] The user can check the load information estimated by the association unit 263 and set in the field 293 and modify it as necessary.
[0135] Thus, by configuring the load setting to be estimated by the association unit 263 and to be correctable by the user, the user's effort in load setting can be omitted. In addition, even in a situation where there are multiple load settings for position data (for example, a situation where multiple load settings are included for one position register in an action program), load information can be appropriately set for the position data.
[0136] The association unit 263 may also be configured to perform load setting according to setting information of the association setting unit 264. For example, the association setting unit 264 holds information indicating the correspondence between the tool coordinate system number included in the position data and the load setting number. The association unit 263 can estimate and set the load setting number for each position data according to the setting information.
[0137] In the column 294 on the right side of the program display area 292, it is possible to specify whether to transform the position data for each command statement containing the position data. The function provided by the column 294 is equivalent to the function of the transformation selection unit 266. Here, it is possible to set whether to transform each position data contained in the program. Therefore, the user can appropriately decide whether to transform according to the nature of the position data. For example, in the case of wanting to return the robot to the position before the transformation, such as the starting position, the user can set the position not to be transformed.
[0138] The transformation selection unit 266 may be configured to automatically set whether to perform transformation according to the setting information of the transformation selection setting unit 267. For example, the transformation selection setting unit 267 may have setting information defining "transform / not transform the specific motion form and position data of the robot". Thus, it is possible to perform transformation settings (transform / not transform) on the specific motion form and position data of the robot at the same time. Specifically, in the case of each axis motion, it is possible to realize an action in which no accuracy is required and therefore no transformation is performed.
[0139] The position correction unit 268 can confirm the transformed position and set the position, and reflect it in the position data of the program. For example, when the range of each axis is specified in the reference position and an alarm is generated outside the range, the position can be corrected to a position where no alarm is generated. The position correction unit 268 can also be configured to provide a UI screen for correcting the transformed position data and accept an operation to correct the position data.
[0140] Third embodiment
[0141] The following is a description of the program conversion device 350 of the third embodiment. When the mechanism data is applied to the robot, not only the arrival position of the robot changes, but also the trajectory changes. The program conversion device 350 has a function of converting the position data in the action program based on the mechanism data, as the conversion unit 265 of the second embodiment, and provides the following function: as a result of the conversion of the position data, when a deviation of a certain value or more occurs on the trajectory before and after the program conversion, the position data is corrected to reduce the deviation.
[0142] In the present embodiment, the program conversion device 350 is implemented as a function implemented by a processor of the off-line teaching device 50. Alternatively, there may be an example in which the program conversion device 350 is configured as a function implemented by a processor in the robot control device 30.
[0143] like Fig.13 As shown, the program conversion device 350 includes a program selection unit 351 , a trajectory storage unit 352 , a mechanism data reading unit 353 , a conversion unit 354 , a trajectory comparison unit 355 , and a teaching position correction unit 356 .
[0144] The program selection unit 351 provides a function for selecting a program to be converted.
[0145] The mechanism data reading unit 353 reads the mechanism data file 90 generated and output by the calibration device 130 and stores it in the storage unit 360 .
[0146] The conversion unit 354 provides a function of converting the program by correcting the position data in the program selected by the program selection unit 351 using the correction value obtained based on the mechanism data. The conversion unit 354 has the same conversion function as the conversion unit 265 in the second embodiment.
[0147] The trajectory storage unit 352 stores: the motion trajectory of the robot based on the action program selected by the program selection unit 351 (i.e., the motion trajectory before the mechanism error of the mechanism data is applied) (hereinafter referred to as motion trajectory T1); and the motion trajectory of the robot based on the transformed action program (the motion trajectory after the mechanism error of the mechanism data is applied) (hereinafter referred to as motion trajectory T2).
[0148] The trajectory comparison unit 355 compares the motion trajectory of the robot before and after the transformation to determine whether a certain degree of deviation has occurred. Specifically, when the transformation unit 354 performs the transformation based on the above-mentioned transformation function (F1), the trajectory comparison unit 355 compares the motion trajectory based on the transformed position data with the above-mentioned motion trajectory T1. On the other hand, when the transformation unit 354 performs the transformation based on the above-mentioned transformation function (F2), the trajectory comparison unit 355 compares the motion trajectory based on the transformed position data with the above-mentioned motion trajectory T2. When the motion trajectory of the robot before and after the transformation has a certain degree of deviation, the teaching position correction unit 356 corrects at least one position data in the transformed motion program to reduce the deviation.
[0149] When the mechanism data (mechanism error) is applied to the actual robot, not only the position data changes, but also the motion trajectory changes. That is, when the mechanism data is applied to the actual robot, even if the program is changed so that the robot moves to the target position before the mechanism data is applied, the motion trajectory will change. As a result, interference that did not occur before the change (interference between the robot and peripheral equipment, etc.) may occur. In this regard, according to this embodiment, the change of the trajectory before and after the change can be reduced. As a result, the action program can be used in a way that the change of the trajectory is reduced.
[0150] Furthermore, by treating the trajectory data as time series data, the trajectory can be changed (position data corrected) without changing the robot's motion speed or motion time. The functions of the structure described in this embodiment can also be provided as the functions of the program conversion device 250 described in the second embodiment.
[0151] Fourth embodiment
[0152] The position data conversion device 450 of the fourth embodiment is described below. Consider the case where updated mechanism data is applied to a robot system in production operation. In this case, it is desired to appropriately convert not only the position data in the robot's motion program, but also the coordinate system set in advance and other global position data shared in the system. The position data conversion device 450 of the fourth embodiment obtains the position data taught to the offline teaching device 50 or the actual robot (robot control device 30), converts the position data based on the mechanism data, and changes the position data of the offline teaching device 50 or the actual robot (robot control device 30).
[0153] In the present embodiment, the position data conversion device 450 is implemented as a function implemented by a processor of the off-line teaching device 50 .
[0154] Fig.14 4 is a functional block diagram of the off-line teaching device 50 of the fourth embodiment. The off-line teaching device 50 includes a position data conversion device 450. The off-line teaching device 50 stores the position data set in the action program in the position data storage unit 461. In addition, the robot control device 30 stores the position data set for the actual robot teaching in the position data storage unit 431. The off-line teaching device 50 obtains the position data set for the actual robot from the robot control device 30 and stores it in the position data storage unit 461.
[0155] The mechanism data reading unit 455 reads the mechanism data file 90 outputted from the calibration device 130 , and stores it in the storage unit 460 .
[0156] The transformation data extraction unit 451 extracts transformable position data and provides it to the transformation data selection unit 452. The transformation data selection unit 452 displays the extracted position data in a selectable manner. The transformation data selection unit 452 may be configured to display a UI screen for selecting position data to be transformed, and select position data based on user operation.
[0157] The associating unit 454 and the association setting unit 453 have the same functions as the associating unit 263 and the association setting unit 264 in the second embodiment, respectively. By providing the associating unit 454 and the association setting unit 453, it is possible to efficiently perform conversion when the position data does not include data required for conversion.
[0158] Regarding the selected position data, when the mechanism data is applied to the actual robot, the conversion unit 456 can convert the position data so that the actual robot reaches the same position as the position reached when the mechanism data is not applied.
[0159] In a robot in production operation, there is not only position data in the program, but also position data that can be shared by the entire robot system, such as a coordinate system and an origin recovery position that are set in advance by teaching. When the offline teaching system of this embodiment is applied to a robot in production operation and the mechanism data is applied to the actual robot in production operation, the position data of the entire system can be transformed into the position before application. The function of the structure (transformation unit 456, etc.) described in this embodiment can also be provided as the function of the program transformation device 250 described in the second embodiment.
[0160] Fifth embodiment
[0161] A program conversion device 550 of the fifth embodiment is described. In a tracking operation for tracking a workpiece moving on a conveyor or the like, position teaching is performed for a coordinate system attached to the workpiece and moving. The program conversion device 550 of the fifth embodiment provides a function of converting position data of a dynamic coordinate system used for tracking based on mechanism data.
[0162] In the present embodiment, the program conversion device 550 is implemented as a function implemented by a processor of the off-line teaching device 50. Alternatively, there may be an example in which the program conversion device 550 is configured as a function implemented by a processor in the robot control device 30.
[0163] Fig.15 FIG. 5 is a functional block diagram of a program transformation device 550 according to the fifth embodiment. Fig.15 As shown, the program conversion device 550 includes a program selection unit 551 , a mechanism data reading unit 552 , a conversion unit 553 , and a dynamic coordinate system setting unit 554 .
[0164] The program selection unit 551 provides a function for selecting a program to be converted.
[0165] The mechanism data reading unit 551 reads the mechanism data generated and output by the calibration device 130 and stores the read data in the storage unit 560 .
[0166] The dynamic coordinate system setting unit 554 provides a function for setting the motion of a dynamically moving coordinate system. The dynamic coordinate system setting unit 554 sets the motion of the dynamic coordinate system based on, for example, user input. The dynamic coordinate system setting unit 554 may also obtain information related to the motion of the dynamic coordinate system from an external device (for example, a robot control device).
[0167] The conversion unit 553 provides the following function: correcting the position data in the action program selected by the program selection unit 551 by the correction value obtained based on the mechanism data, thereby converting the program. In addition, the conversion unit 553 has the same conversion function as the conversion unit 265 in the second embodiment. When the position data in the selected action program is relative position data relative to the dynamic coordinate system, the conversion unit 553 performs the following processing: converting the relative position to the absolute position, converting the position data converted to the absolute position based on the mechanism data by the same processing as the conversion unit 265 in the second embodiment, and returning to the relative position again.
[0168] In the tracking action, dynamic coordinates appear based on signals from the outside, and the dynamic coordinate system is operated to track the movement of the conveyor or the positioner. Regarding the movement of the dynamic coordinate system, as setting information related to the action program, for example, information that specifies the starting position, direction, speed, shape, etc., such as "moving on the conveyor at a speed of Bmm / sec from point A", can be confirmed. Therefore, the dynamic coordinate system associated with the position data is known, so as described above, after the relative position is converted to the absolute position and the correction amount is added, it is returned to the relative position, thereby also being able to transform the program for tracking. The function of the structure described in this embodiment can also be provided as the function of the program transformation device 250 described in the second embodiment.
[0169] Sixth Embodiment
[0170] The offline teaching device 50 of the sixth embodiment is described below. The offline teaching device 50 of the sixth embodiment provides the following functions: (1) transforming the position data in the program so that the position and order reached by the robot are consistent with the teaching position information and teaching order information set in the workpiece model; (2) transforming the position data of the program into the position reached by the robot before the application of the mechanism data.
[0171] like Fig.16 As shown in FIG. 6 , the off-line teaching device 50 includes a mechanism data reading unit 151, a model correction unit 152, a virtual robot control unit 153, and a position conversion unit 651. Fig.16 4 also shows a display unit 154 as a component of the off-line teaching device 50. The off-line teaching device 50 of the present embodiment has workpiece model information 652. The workpiece model information 652 includes a workpiece model, teaching position information, and teaching sequence information.
[0172] The mechanism data reading unit 151 , the model correction unit 152 , and the virtual robot control unit 153 have the above-mentioned functions related to the first embodiment. That is, the virtual robot control unit 153 provides a function of obtaining a correction value for correcting position data based on the CAD model and mechanism data corrected by the model correction unit 152 .
[0173] An image showing the motion (simulated motion) of the robot model, the workpiece model, and other various models during teaching is displayed on the display unit 154 .
[0174] Fig.17A The above function (1) (the function of transforming the position data in the program so that the position and order reached by the robot are consistent with the teaching position information and teaching order information set in the workpiece model) is described. Fig.17A An example of the teaching position information and teaching sequence information included in the workpiece model WM is shown in FIG. Fig.17A As shown, four teaching positions P[1], P[2], P[3], and P[4] are defined in the workpiece model WM. These teaching positions are in the order of P[1], P[2], P[3], and P[4].
[0175] Fig.17A , the virtual robot's arrival positions M(1) to M(4) corresponding to the teaching positions P[1] to P[4] after the mechanism data is applied to the virtual robot are also shown. As a result of the application of the mechanism data, the arrival positions M(1) to M(4) of the virtual robot become inconsistent with the teaching positions P[1] to P[4] specified by the workpiece model. The position conversion unit 651 converts the position data in the action program so that the teaching sequence and positions (M(1) to M(4)) reached by the virtual robot are consistent with the teaching sequence and positions (P[1] to P[4]) contained in the workpiece model.
[0176] Fig. 17B The above function (2) (the function of converting the position data of the program to the position reached by the robot before the application of the mechanism data) is described. Fig.17A Similarly, the teaching sequence and positions set in the workpiece model WM are P[1] to P[4], and the positions reached by the virtual robot after applying the mechanism data are M(1) to M(4). The position conversion unit 651 converts the position data of the action program so that the teaching sequence and positions reached by the virtual robot become the teaching positions of the workpiece model and the positions of the point objects K(1) to K(4) with the virtual robot's reached positions M(1) to M(4) as the symmetric center.
[0177] When the position data of the program is changed offline by the above function (1) without applying the mechanism data to the actual robot, a program can be constructed so that the actual robot reaches the ideal position (P[1] to P[4]) that matches the workpiece model.
[0178] On the other hand, when the mechanism data is applied to a real robot and the position data of the program is converted offline through the above-mentioned function (2), it is possible to construct an action program for the robot to reach the position (M(1) to M(4)) reached by the robot before the mechanism data was applied to the robot.
[0179] The above describes a structural example of transforming the position data of the action program according to the teaching sequence and position (teaching information) specified in the workpiece model, but the above method can also be applied to transform the position data for a program including teaching position and sequence information (teaching information) instead of the workpiece model. The function of the position transforming unit 651 of this embodiment can also be provided as the function of the program transforming device 250 described in the second embodiment.
[0180] Seventh embodiment
[0181] Next, an off-line teaching device 50 according to a seventh embodiment will be described. The off-line teaching device 50 according to the seventh embodiment provides a function of correcting a workpiece model so that the difference between the position reached by the virtual robot and the teaching position specified in the workpiece model becomes small.
[0182] like Fig.18 As shown, the off-line teaching device 50 includes a mechanism data reading unit 151 , a model correction unit 152 , a virtual robot control unit 153 , a display unit 154 , a layout correction unit 751 , and workpiece model information 752 .
[0183] The mechanism data reading unit 151, the model correction unit 152, and the virtual robot control unit 153 have the above-mentioned functions related to the first embodiment. The workpiece model information 752 includes a workpiece model, teaching position information, and teaching sequence information.
[0184] An image showing the motion (simulated motion) of the robot model, the workpiece model, and other various models during teaching is displayed on the display unit 154 .
[0185] The layout correction unit 751 corrects the position and posture of the workpiece model so that the difference between the position reached by the virtual robot and the teaching position designated in the workpiece model becomes smaller.
[0186] Fig.19An operation example of the off-line teaching device 50 of the present embodiment is described. The workpiece model WM includes teaching positions and sequences P[1] to P[4]. By applying the mechanism data to the virtual robot, the positions reached by the virtual robot are set to M(1) to M(4). The layout correction unit 752 corrects the position and posture of the workpiece model WM so that the difference between the positions M(1) to M(4) reached by the virtual robot and the teaching positions P[1] to P[4] included in the workpiece model WM becomes smaller. Fig.19 This shows a situation in which the position of the workpiece model WM is corrected by the layout correction unit 752 and the corrected workpiece model (indicated by reference numeral WM2 ) is substantially consistent with the arrival positions M( 1 ) to M( 4 ) of the virtual robot.
[0187] According to this embodiment, the position and posture of a workpiece can be corrected using an operation program taught according to an actual object (workpiece, etc.). It is also possible to monitor the amount of workpiece displacement or monitor robot displacement (aging degradation) by fixing the position of the workpiece.
[0188] Eighth Embodiment
[0189] Next, an offline teaching device 50 according to an eighth embodiment will be described. The offline teaching device 50 provides a function of changing the position of the virtual robot to prevent interference when interference occurs between the virtual robot to which the mechanism data is applied and peripheral devices.
[0190] like Fig. 20 As shown, the off-line teaching device 50 includes a mechanism data reading unit 151, a model correction unit 152, a virtual robot control unit 153, a display unit 154, an interference detection unit 851, an interference avoidance action generation unit 852, and workpiece model information 853. The mechanism data reading unit 151, the model correction unit 152, and the virtual robot control unit 153 have the above-mentioned functions related to the first embodiment. The workpiece model information 853 includes a workpiece model, teaching position information, and teaching sequence information.
[0191] The interference detection unit 851 detects whether the virtual robot to which the mechanism data is applied has not interfered with peripheral devices or the like.
[0192] The interference avoidance action generation unit 852 generates a trajectory based on the action program according to the teaching position information and teaching sequence information included in the action program or the workpiece model information 853, so that when the virtual robot model is moved according to the action program, the interference detection unit 851 cannot detect interference.
[0193] According to this embodiment, since a virtual robot including the error of the actual robot is used, interference detection can be performed with high accuracy. In particular, errors when the robot changes its posture during operation can also be reflected in the virtual robot, and interference can be detected with higher accuracy.
[0194] The present disclosure has been described in detail, but the present disclosure is not limited to the above-mentioned embodiments. These embodiments can be variously added, replaced, changed, partially deleted, etc. without departing from the scope of the main purpose of the present disclosure, or without departing from the scope of the main purpose of the present disclosure derived from the contents recorded in the patent protection scope and its equivalents. In addition, these embodiments can also be implemented in combination. For example, in the above-mentioned embodiments, the order of each action and the order of each processing are shown as an example, and are not limited to this. In addition, the same is true for the case where numerical values or mathematical formulas are used in the description of the above-mentioned embodiments.
[0195] The respective functions of the program transformation device described as the above-mentioned second embodiment, third embodiment and fifth embodiment, and the position data transformation device described as the fourth embodiment can also be installed by adding the functions of the offline teaching device 50 described in the first embodiment, or as functions within the virtual robot control unit 153.
[0196] In the above-mentioned embodiment, the program for executing various sequences (collection and processing of instruction positions and measurement positions, etc.) can be recorded on various computer-readable recording media (for example, semiconductor memories such as ROM, EEPROM, flash memory, magnetic recording media, CD-ROM, DVD-ROM and other optical disks).
[0197] Description of Reference Numerals
[0198] 1. Robot
[0199] 20 Three-dimensional measuring device
[0200] 30Robot control device
[0201] 40 Teaching Operation Panel
[0202] 41 Display unit
[0203] 42 Input unit
[0204] 50 Offline teaching device
[0205] 90 Institutional Data File
[0206] 100 Calibration System
[0207] 130 Calibration device
[0208] 131 Instruction generation unit
[0209] 132 command position acquisition unit
[0210] 133 Measurement position acquisition unit
[0211] 134 Institutional Data Correction Department
[0212] 135 Institutional Data Output Department
[0213] 136 Institutional Data Correction Department
[0214] 140 Storage
[0215] 150 processors
[0216] 151 Institutional Data Reading Department
[0217] 152 Model Correction Department
[0218] 153 Virtual Robot Control Unit
[0219] 154 Display unit
[0220] 155 Operation Department
[0221] 156 Storage Department
[0222] 250 Program changer
[0223] 251 Program Extraction Department
[0224] 252 Program Selection Department
[0225] 253 Institutional Data Reading Department
[0226] 254 Storage
[0227] 260 Related screen control unit
[0228] 261 Related Program Selection Department
[0229] 262 Program display unit
[0230] 263 Related Department
[0231] 264 related settings
[0232] 265 Transformation Unit
[0233] 266 Transformation Selection Unit
[0234] 267 Transformation selection setting unit
[0235] 268 Position Correction Unit
[0236] 350 Program Transformation Device
[0237] 351 Program Selection Department
[0238] 352 track storage unit
[0239] 353 Institutional Data Reading Department
[0240] 354 Transformation Department
[0241] 355 Trajectory Comparison Department
[0242] 356 Teaching Position Correction Unit
[0243] 360 Storage Department
[0244] 450 Position Changing Device
[0245] 451 Transformation Data Extraction Unit
[0246] 452 Transformation data selection unit
[0247] 453 Related Setting Department
[0248] 454 Related Department
[0249] 455 Institutional Data Reading Department
[0250] 456 Transformation Department
[0251] 460 Storage Department
[0252] 550 Program Transformation Device
[0253] 551 Program Selection Department
[0254] 552 Institutional Data Reading Department
[0255] 553 Transformation Department
[0256] 554 Dynamic coordinate system setting unit
[0257] 560 Storage Department
[0258] 651 Position Transformation Unit
[0259] 652 Artifact model information
[0260] 660 Storage Department
[0261] 751 Layout Correction Department
[0262] 752 Artifact model information
[0263] 760 Storage Department
[0264] 851 Interference Detection Unit
[0265] 852 Interference Avoidance Action Generation Unit
[0266] 853 Artifact Model Information
[0267] 860 storage unit.
Claims
1. A teaching device for teaching a robot, characterized in that: The teaching device comprises: a storage unit storing mechanism data, the mechanism data being used to obtain a relationship between an angular position of a joint portion of the robot and a front end position of the robot, and including a mechanism error parameter of an actual robot; and A virtual robot control unit controls the motion of the virtual robot based on the mechanism data so that an error in the position generated in the actual robot by the mechanism error parameter is generated in the virtual robot.
2. The teaching device according to claim 1, characterized in that: The mechanism data includes at least one of the link length and assembly error of the robot. The teaching device further includes a model correction unit that corrects the three-dimensional model of the virtual robot based on at least one of a link length and an assembly error of the robot included in the mechanism data. The virtual robot control unit controls the virtual robot using the three-dimensional model corrected by the model correction unit.
3. The teaching device according to claim 1 or 2, characterized in that: The teaching device also has a mechanism data reading unit, which displays the three-dimensional model of the virtual robot and an image representing the mechanism data stored in the storage unit on a display screen, and accepts an operation of dragging the image representing the mechanism data to the three-dimensional model of the virtual robot, and reads the mechanism data and stores it in the storage unit based on the operation.
4. The teaching device according to claim 3, characterized in that: The mechanism data reading unit displays three-dimensional models of multiple virtual robots equipped in a single unit, and accepts an operation of dragging an image representing the mechanism data to the three-dimensional model of more than one virtual robot among the three-dimensional models of the multiple virtual robots. Based on the operation, the mechanism data is read in and stored in the storage unit as mechanism data for the more than one virtual robots.
5. The teaching device according to any one of claims 1 to 4, characterized in that: The teaching device further includes a conversion unit that converts the position data in the motion program so that when the mechanism data is not applied to the actual robot, the actual robot reaches the same position as the position reached when the mechanism data is applied.
6. The teaching device according to any one of claims 1 to 4, characterized in that: The teaching device further includes a conversion unit that converts position data in the motion program so that when the mechanism data is applied to the actual robot, the actual robot reaches the same position as the position reached when the mechanism data is not applied.
7. The teaching device according to claim 5 or 6, characterized in that: The teaching device further includes a correlating unit that estimates data necessary for conversion of the position data based on the operating program and correlates the estimated data with the position data for the conversion.
8. The teaching device according to claim 7, characterized in that: The teaching device further includes a correlation setting unit for setting setting information used for estimating data required for conversion of the position data.
9. The teaching device according to claim 7 or 8, characterized in that: The data required for the conversion of the position data is load setting information.
10. The teaching device according to any one of claims 5 to 9, characterized in that: The teaching device further includes a conversion selection unit for selecting whether to convert each of the position data in the operation program.
11. The teaching device according to claim 10, characterized in that: The teaching device further includes a conversion selection setting unit that sets setting information used by the conversion selection unit to determine whether to convert each of the position data.
12. The teaching device according to any one of claims 5 to 11, characterized in that: The teaching device comprises: a trajectory comparing unit that compares a first motion trajectory of the robot based on the position data before transformation by the transformation unit with a second motion trajectory of the robot based on the position data after transformation by the transformation unit; as well as A correction unit corrects the second motion trajectory so as to reduce the deviation when a deviation of a certain value or more occurs between the first motion trajectory and the second motion trajectory.
13. The teaching device according to any one of claims 1 to 4, characterized in that: The teaching device includes a transformation unit, which transforms the position data that includes at least one of the taught coordinate system and the origin reset position and is globally applied, so that the actual robot reaches the same position as the position reached when the mechanism data is not applied, when the mechanism data is applied to the actual robot.
14. The teaching device according to any one of claims 5 to 12, characterized in that: The teaching device further includes a dynamic coordinate system setting unit for setting the motion of a dynamically changing coordinate system. When the position data is set as a relative position with respect to the dynamic coordinate system set by the dynamic coordinate system setting unit, the transformation unit performs transformation on the position data after transforming the relative position into an absolute position, and returns the transformed position data as an absolute position to a relative position.
15. The teaching device according to any one of claims 1 to 4, characterized in that: The storage unit stores teaching information including teaching position information and teaching sequence information. The teaching device further includes a position conversion unit that converts position data in the action program so that the teaching position and teaching sequence reached by the virtual robot match the teaching position information and teaching sequence information set in the teaching information.
16. The teaching device according to any one of claims 1 to 4, characterized in that: The storage unit stores teaching information including teaching position information and teaching sequence information. The teaching device also has a position transformation unit, which transforms the position data in the action program so that the teaching position reached by the virtual robot arrives at a position that is point-symmetrical with respect to the teaching position set in the teaching information, with the position reached by the virtual robot before the transformation as the center of symmetry.
17. The teaching device according to any one of claims 1 to 4, characterized in that: The storage unit stores workpiece model information, the workpiece model information including the workpiece model, teaching position information for the workpiece model, and teaching sequence information. The teaching device further includes a layout correction unit that corrects the position and posture of the workpiece model so that a difference between a position reached by the virtual robot according to an operation program and a taught position of the workpiece model becomes smaller.
18. The teaching device according to any one of claims 1 to 4, characterized in that: The storage unit stores an action program including teaching position information and teaching sequence information. The teaching device further includes an interference detection unit that changes a display state of the virtual robot when interference between the virtual robot and a peripheral device model is detected when the virtual robot is operated based on the operation program.
19. The teaching device according to claim 18, characterized in that: The teaching device further includes an interference avoidance operation generating unit that changes an operation trajectory based on the operation program so as to avoid interference when interference is detected by the interference detecting unit.
20. A teaching device for teaching a robot, characterized in that: The teaching device comprises: A storage unit storing mechanism data and an action program, wherein the mechanism data is used to obtain the relationship between the angle position of the joint of the robot and the front end position of the robot and includes a mechanism error parameter of the actual robot; a conversion unit that converts the position data in the motion program so that, when the mechanism data is not applied to the actual robot, the actual robot reaches the same position as that reached when the mechanism data is applied, or converts the position data so that, when the mechanism data is applied to the actual robot, the actual robot reaches the same position as that reached when the mechanism data is not applied; and A correlating unit estimates data necessary for conversion of the position data and correlates the estimated data with the position data for the conversion.
21. The teaching device according to claim 20, characterized in that: The teaching device further includes a correlation setting unit for setting setting information used for estimating data required for conversion of the position data.
22. The teaching device according to claim 20 or 21, characterized in that: The data required for the conversion of the position data is load setting information.
23. The teaching device according to any one of claims 20 to 22, characterized in that: The teaching device further includes a conversion selection unit for selecting whether to convert each of the position data in the operation program.
24. The teaching device according to claim 23, characterized in that: The teaching device further includes a conversion selection setting unit that sets setting information used by the conversion selection unit to determine whether to convert each of the position data.
25. The teaching device according to any one of claims 20 to 24, characterized in that: The teaching device comprises: a trajectory comparing unit that compares a first motion trajectory of the robot based on the position data before transformation by the transformation unit with a second motion trajectory of the robot based on the position data after transformation by the transformation unit; as well as A correction unit corrects the second motion trajectory so as to reduce the deviation when a deviation of a certain value or more occurs between the first motion trajectory and the second motion trajectory.
26. The teaching device according to any one of claims 20 to 25, characterized in that: The teaching device also includes a position data transformation unit, which, for position data that includes at least one of the taught coordinate system and the origin reset position and is globally applied, transforms the position data when the mechanism data is applied to the actual robot so that the actual robot reaches the same position as the position reached when the mechanism data is not applied.
27. The teaching device according to any one of claims 20 to 26, characterized in that: The teaching device further includes a dynamic coordinate system setting unit for setting the motion of a dynamically changing coordinate system. When the position data is set as a relative position with respect to the dynamic coordinate system set by the dynamic coordinate system setting unit, the transformation unit performs transformation on the position data after transforming the relative position into an absolute position, and returns the transformed position data as an absolute position to a relative position.
28. The teaching device according to any one of claims 20 to 27, characterized in that: The storage unit stores teaching information including teaching position information and teaching sequence information. The teaching device further includes a position conversion unit that converts position data in the action program so that the teaching position and teaching sequence reached by the virtual robot match the teaching position information and teaching sequence information set in the teaching information.
29. The teaching device according to any one of claims 20 to 27, characterized in that: The storage unit stores teaching information including teaching position information and teaching sequence information. The teaching device also has a position transformation unit, which transforms the position data in the action program so that the teaching position reached by the virtual robot arrives at a position that is point-symmetrical with respect to the teaching position set in the teaching information, with the position reached by the virtual robot before the transformation as the center of symmetry.
Citation Information
Patent Citations
Substance assortment method
JP1989053918A
Method for off line teaching of robot
JP1999296218A