Robot teaching device, robot teaching method and method for storing motion commands
The robot teaching device automates the storage and association of position data with motion commands, reducing the time and effort needed for teaching robots by eliminating the need for repeated manual input of target position data and identifiers.
Patent Information
- Application Number
- CN201910926694.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-10-03
- Filing Date
- 2019-09-27
- Publication Date
- 2024-12-31
- Estimated Expiration
- 2039-09-27
AI Technical Summary
Existing robot teaching methods require operators to input target position data and identifiers for motion commands repeatedly, which is time-consuming and inefficient.
A robot teaching device and method that automatically stores current position data with an inherent identifier and adds it to motion commands, eliminating the need for manual input of target position data and identifiers each time a motion command is given.
Reduces the work hours required for teaching robots by automating the process of storing and associating position data with motion commands, thereby simplifying the teaching process.
Smart Images

Figure CN110977932B_ABST
Abstract
Description
Technical Field
[0001] The invention relates to a robot teaching device, a robot teaching method and a method for storing action commands. Background Art
[0002] A robot teaching device for teaching a robot a predetermined operation is known (for example, Japanese Patent Application Laid-Open No. 2006-167884). Conventionally, there is a demand to simplify the work required for teaching a robot. Summary of the invention
[0003] In one embodiment of the present disclosure, a robot teaching device comprises: a position data storage unit, which stores target position data of the robot; an action command storage unit, which stores action commands for configuring the robot at a target position and which do not include target position data; and a position data writing unit, which obtains the current position data of the robot when an action command is input, writes the current position data as target position data into the position data storage unit together with an inherent identifier, and teaches the robot action by automatically adding an identifier of the target position data to the input action command.
[0004] In another embodiment of the present disclosure, in a robot teaching method, the current position data of the robot is obtained when an action command that does not include the target position data of the robot is input, the current position data is stored as target position data together with an inherent identifier, and the action of the robot is taught by automatically adding the identifier of the target position data to the input action command.
[0005] In another embodiment of the present disclosure, a robot teaching device comprises: a position data storage unit, which stores the target position data of the robot together with an inherent identifier; a motion command storage unit, which stores motion commands for configuring the robot at a target position and which do not include the target position data; and a motion command writing unit, which, when newly input target position data is consistent with target position data stored in the position data storage unit in the past, automatically adds the identifier of the target position data stored in the past to the input motion command and writes it into the motion command storage unit as a motion command that does not include the target position data.
[0006] In another embodiment of the present disclosure, in a robot teaching method, an action command for configuring a robot at a target position and not including target position data of the robot is stored, and when newly input target position data is consistent with target position data stored in the past together with an inherent identifier, an identifier of the target position data stored in the past is automatically appended to the input action command and the command is stored as an action command not including the target position data.
[0007] According to the present disclosure, the operator does not need to input target position data and write identifiers to the motion command every time the operator inputs a motion command, so the work hours for teaching the robot motion can be reduced. Therefore, the work required for teaching the robot can be simplified. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Figure 1 A robot teaching device according to one embodiment is shown.
[0009] Figure 2 for Figure 1 A block diagram of a robot teaching device is shown.
[0010] Figure 3 A robot teaching device according to another embodiment is shown.
[0011] Figure 4 for Figure 3 A block diagram of a robot teaching device is shown. DETAILED DESCRIPTION
[0012] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. In the various embodiments described below, the same elements are given the same reference numerals, and repeated descriptions are omitted. Figure 1 and Figure 2 A robot teaching device 10 according to one embodiment will be described. The robot teaching device 10 is a device for teaching an operation to a robot 100 .
[0013] The robot 100 is a vertical multi-joint robot, and includes a robot base 102, a steering body 104, a robot arm 106, a wrist 108, and an end effector 110. The robot base 102 is fixed to a bottom plate of a work unit. The steering body 104 is arranged on the robot base 102 in a manner that allows rotation around a vertical axis. The robot arm 106 includes: a lower arm 112 rotatably mounted on the steering body 104; and an upper arm 114 rotatably mounted on the front end of the lower arm 112.
[0014] The wrist 108 is connected to the front end of the upper arm 114. The end effector 110 is mounted on the wrist 108, and the wrist 108 rotatably supports the end effector 110. The end effector 110 is a robot arm, a welding torch, a paint sprayer, etc., and is used to perform a predetermined operation on a workpiece.
[0015] The robot 100 has a plurality of servo motors 116 ( Figure 2 ). These servo motors 116 are built into each component of the robot 100 (the robot base 102, the steering body 104, the robot arm 106, and the wrist 108) to rotate these components around the drive axis.
[0016] The robot teaching device 10 includes a robot control device 12 and a teaching device 14. The robot control device 12 includes a processor 16 and a storage device 18 for controlling the robot 100. The processor 16 is a CPU or a GPU, etc., and is used to perform various processes described below. The storage device 18 includes a ROM and a RAM, etc., and stores various data. The processor 16 and the storage device 18 are connected to each other via a bus 20 so as to be able to communicate with each other.
[0017] A robot coordinate system C is set in the robot 100. R In this embodiment, the robot coordinate system C R It is assumed that its origin is arranged at the robot base 102 , its z-axis is parallel to the vertical direction, and the steering body 104 rotates around the z-axis.
[0018] On the other hand, a tool coordinate system C is set at the tip of the robot 100 (ie, the end effector 110). T . Tool coordinate system C T It is specified that the end effector 110 is in the robot coordinate system C R In this article, "position" sometimes means both position and posture.
[0019] The robot control device 12 generates instructions to the servo motors 116 according to the motion commands stored in the storage device 18, and moves the components of the robot 100, thereby sequentially arranging the end effector 110 at a plurality of target positions. Thus, the robot 100 moves along the motion trajectory defined by the plurality of target positions.
[0020] When the end effector 110 is arranged at a target position, the robot control device 12 first sets the robot coordinate system C R Set tool coordinate system C T Then, the robot control device 12 uses the robot coordinate system C R The robot 100 is operated based on the tool coordinate system C. T In this way, the end effector 110 is arranged in the robot coordinate system C R Target location in .
[0021] In this embodiment, the teaching device 14 is, for example, a handheld teaching pendant, and has a processor (CPU, GPU, etc.), a storage device (RAM, ROM, etc.), a display device 22, and an input device 24. The display device 22 is, for example, an LCD or an organic EL display, etc., which displays data as an image. The input device 24 is, for example, a keyboard with a plurality of operation keys, which is used to receive input operations from an operator.
[0022] The teaching device 14 is wirelessly or wiredly connected to the robot control device 12 so as to be communicable. The operator can place the robot 100 at an arbitrary position via the robot control device 12 by operating the input device 24 of the teaching device 14 (so-called jog operation).
[0023] Furthermore, the operator can input motion commands to the robot 100 by operating the input device 24 of the teaching pendant 14. The teaching pendant 14 receives the input of motion commands to the robot 100 from the operator and transmits the input information of the motion commands to the robot control device 12.
[0024] The storage device 18 stores the motion command for arranging the robot 100 at the target position. That is, in the present embodiment, the storage device 18 serves as the motion command storage unit 26 ( Figure 2 Table 1 below shows examples of the action commands stored in the storage device 18.
[0025]
[0026] Table 1
[0027] In the example of Table 1, a total of n rows of motion commands are stored, from the motion command containing a character string of "MOVE POSITION[1]" in the first row to the motion command containing a character string of "MOVE POSITION[m]" in the nth row.
[0028] In addition, the storage device 18 stores the target position data of the robot 100. That is, in the present embodiment, the storage device 18 serves as the position data storage unit 28 ( Figure 2 ) is used. In addition, one ROM (or RAM) of the storage device 18 may function as the motion command storage unit 26 and the position data storage unit 28, or the first ROM (or RAM) of the storage device 18 may function as the motion command storage unit 26, and the second ROM (or RAM) of the storage device 18 may function as the position data storage unit 28. An example of a database of target position data is shown in Table 2 below.
[0029]
[0030] Table 2
[0031] In the example shown in Table 2, coordinates (X, Y, Z, W, P, R) are stored as target position data. In the present embodiment, the target position data (X, Y, Z, W, P, R) is used to define the target position in the robot coordinate system C when the end effector 110 is arranged at the target position.R The tool coordinate system C set in T The position (origin and direction of each axis).
[0032] Specifically, coordinate X represents the tool coordinate system C T The origin of the robot coordinate system C R The x-coordinate in the tool coordinate system C T The origin of the robot coordinate system C R The y coordinate in the tool coordinate system C T The origin of the robot coordinate system C R Based on these coordinates X, Y and Z, the tool coordinate system C is defined T (i.e., the end effector 110) in the robot coordinate system C R The position in.
[0033] In addition, the coordinate W represents the tool coordinate system C T Around the reference coordinate system (such as the robot coordinate system C R ), the coordinate P represents the tool coordinate system C T The rotation angle around the y-axis of the reference coordinate system, the coordinate R represents the tool coordinate system C T The rotation angle around the z-axis of the reference coordinate system. Based on these coordinates W, P and R, the tool coordinate system C is defined. T (ie, the pose of the end effector 110 ).
[0034] A unique identifier ID is assigned to each target position data. In the example shown in Table 2, the identifier ID is set to a number from 1 to m. For example, the mth target position data assigned ID=m is the coordinate (X m , Y m , Z m , W m , P m , R m ).
[0035] Thus, in the database shown in Table 2, from the first target position data (X1, Y1, Z1, W1, P1, R1) to the mth target position data (X m , Y m , Z m , W m , P m , R m ) stores a total of m target location data so that they can be identified based on their respective inherent identifiers.
[0036] When the robot 100 is moved, the robot control device 12 sequentially reads the motion commands from the first row to the nth row shown in Table 1, and causes the robot 100 to perform the motion defined by these motion commands. For example, the motion command of the nth row, such as "MOVE POSITION[m]", causes the robot 100 to perform the motion of placing the end effector 110 at the mth target position identified by ID=m.
[0037] "POSITION[m]" in the motion command of the nth line is a character string that refers to the identifier ID=m of the mth target position data. When the robot control device 12 reads the character string "POSITION[m]", it refers to the database shown in Table 2 stored in the storage device 18 (position data storage unit 28) and reads the mth target position data (X m , Y m , Z m , W m , P m , R m ).
[0038] Then, the robot control device 12 calculates the target position data (X) according to the mth target position data (X) m , Y m , Z m , W m , P m , R m ) defines the mth target position to set the tool coordinate system C T , the robot 100 is moved so that the end effector 110 is arranged in the tool coordinate system C set by T Thus, in this embodiment, the action command of the nth line includes a character string that references the identifier ID=m of the mth target position data, and does not include the mth target position data (X m , Y m , Z m , W m , P m , R m ).
[0039] Next, a method of teaching the robot 100 using the robot teaching apparatus 10 will be described. When teaching the robot 100, the operator first operates the teaching device 14 to jog the robot 100 and place the end effector 110 at the target position to be taught.
[0040] Next, the operator operates the input device 24 to input a motion command for teaching the robot 100 a motion. As an example, the robot teaching device 10 displays a motion teaching button for inputting a motion command on the display device 22. In this case, the operator operates the input device 24 and operates the motion teaching button displayed on the display device 22 on the image to input a motion command.
[0041] As another example, in the teaching device 14, one operation key of the input device 24 may be assigned as an action teaching button. In this case, the operator operates the input device 24 as the action teaching button to input an action command. The processor of the teaching device 14 receives the input of the action command from the operator via the input device 24, and transmits the input information of the action command to the robot control device 12.
[0042] When receiving the input of the motion command from the operator, the processor 16 of the robot control device 12 obtains the current position data of the robot 100 at that time. Specifically, the processor 16 obtains the coordinates (X m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ) as the current position data of the robot 100. It is also possible to set the processor 16 to obtain the rotation angle of each servo motor 116 when receiving the input of the action command, and calculate the coordinates (X m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ).
[0043] The processor 16 obtains the current position data (X m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ) is assigned a unique identifier: m+1, and the current position data (X m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ) is written as new target position data to the storage device 18. As a result, as shown in Table 3 below, new target position data (X) assigned with identifier "m+1" is added to the database of target position data stored in the storage device 18. m+1 , Ym+1 , Z m+1 , W m+1 , P m+1 , R m+1 ).
[0044]
[0045] Table 3
[0046] Thus, in this embodiment, the processor 16 functions as the position data writing unit 30 ( Figure 2 ) performs the following functions: obtaining the current position data of the robot when an action command is input, and writing the current position data as target position data together with an identifier into the position data storage unit 28 (ie, the storage device 18).
[0047] In addition, when the processor 16 receives the input of the motion command, it automatically adds new target position data (X m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ) is automatically written as a new motion command "MOVE POSITION [m+1]" to the storage device 18. As a result, as shown in Table 4 below, a new motion command "MOVE POSITION [m+1]" is added to the n+1th row.
[0048]
[0049] Table 4
[0050] Thus, in the present embodiment, the processor 16 functions as the motion command writing unit 32 that writes the input motion command into the motion command storage unit 26 (i.e., the storage device 18). In this way, the robot 100 is taught the motion defined by the new motion command (i.e., the motion of placing the end effector 110 at the m+1th target position).
[0051] As described above, in this embodiment, when the operator inputs a motion command, the processor 16 (position data writing unit 30) obtains the current position data of the robot 100 and writes it as new target position data together with a new identifier into the position data storage unit 28. Then, the processor 16 automatically adds a new identifier to the input motion command to teach the motion.
[0052] According to this configuration, the operator does not need to input target position data and write an identifier to the motion command every time the operator inputs a motion command, so it is possible to reduce the work hours for teaching the robot 100 to perform motion. Therefore, the work required for teaching the robot 100 can be simplified.
[0053] Next, other functions of the robot teaching device 10 are described. As described above, when the processor 16 receives an input of an action command from the operator via the teaching device 14, it functions as the position data writing unit 30 to obtain the current position data (X) of the robot 100 at that time. m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ).
[0054] Then, the processor 16 determines the newly acquired current position data (X m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ) is consistent with the first to mth target position data stored in the storage device 18 (position data storage unit 28) in the past. As an example, the processor 16 determines whether the coordinate X of the current position data obtained is consistent with the first to mth target position data stored in the storage device 18 (position data storage unit 28). m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 Whether the coordinates X, Y, Z, W, P, and R of the first to m-th target position data are within the range of a predetermined threshold value.
[0055] For example, the range of the threshold can be determined as 95% to 105% of the coordinates X, Y, Z, W, P, and R of the first to mth target position data ([X×0.95, X×1.05], [Y×0.95, Y×1.05], [Z×0.95, Z×1.05], [W×0.95, W×1.05], [P×0.95, P×1.05], [R×0.95, R×1.05]).
[0056] The processor 16 determines that the coordinate X of the acquired current position data m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 If the current position data (X m+1 , Ym+1 , Z m+1 , W m+1 , P m+1 , R m+1 ) is consistent with the target position data stored in the storage device 18 in the past.
[0057] The processor 16 can determine the coordinates X of the current position data obtained. m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 and R m+1 At least one of (e.g. X m+1 , Y m+1 , Z m+1 ) is within a predetermined threshold range for at least one (for example, X, Y, and Z) of each coordinate X, Y, Z, W, P, and R of the first to m-th target position data.
[0058] Alternatively, the processor 16 may be configured to only process the coordinate X of the acquired current position data. m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 and R m+1 At least one of (e.g. X m+1 , Y m+1 and Z m+1 ) is completely consistent with at least one (for example, X, Y and Z) of the coordinates X, Y, Z, W, P and R of the first to m-th target position data, it is judged that the current position data is consistent with the target position data stored in the past.
[0059] As another example, the processor 16 calculates the current position data obtained in the robot coordinate system C R The position in (X m+1 , Y m+1 , Z m+1 ) and the first to mth target position data stored in the storage device 18 in the past are respectively in the robot coordinate system C R The distance between the positions (X, Y, Z) in m+1 -X) 2 +(Y m+1 -Y) 2 +(Z m+1 -Z) 2 ) 1 / 2 .
[0060] Then, the processor 16 determines whether the calculated distance δ is within a predetermined threshold range [0, δ th] The processor 16 determines that the distance δ is within the range [0, δ th ](i.e., 0≤δ≤δ th ), it is determined that the current position data obtained is consistent with the target position data stored in the storage device 18 in the past.
[0061] In addition to calculating the distance δ, the processor 16 can also calculate the coordinates (W m+1 , P m+1 , R m+1 ) and the coordinates (W, P, R) of each posture of the target position data stored in the storage device 18 in the past W =W m+1 -W,φ P =P m+1 -P,φ R =R m+1 -R.
[0062] Furthermore, the processor 16 can determine the difference φ W ,φ P and φ R Whether it is within the predetermined range [0, φ Wth ], [0, φ Pth ] and [0, φ Rth ]. In this case, the processor 16 can determine that the distance δ is within the range [0, δ th ], and the difference φ W ,φ P and φ R In the range [0, φ Wth ], [0, φ Pth ] and [0, φ Rth ] In the case of the above, it is determined that the current position data obtained is consistent with the target position data stored in the storage device 18 in the past.
[0063] When the processor 16 determines that the acquired current position data does not match the target position data stored in the past, it functions as the position data writing unit 30 and writes the current position data together with a new identifier into the storage device 18 similarly to the above embodiment.
[0064] On the other hand, when the processor 16 determines that the acquired current position data is consistent with the target position data stored in the past, it does not write the current position data to the storage device 18, and automatically adds the identifier of the target position data stored in the past to the action command when acquiring the current position data.
[0065] For example, the processor 16 determines that the acquired current position data is consistent with the third target position data (X3, Y3, Z3, W3, P3, R3) in the database of Table 2 previously stored in the storage device 18. In this case, the processor 16 automatically adds the identifier "3" of the third target position data (X3, Y3, Z3, W3, P3, R3) to the input motion command, and writes the motion command to the storage device 18 by adding the motion command "MOVE POSITION [3]" to the n+1th row of the motion command shown in Table 4.
[0066] As described above, in this embodiment, when the acquired current position data is consistent with the target position data previously stored in the storage device 18, the processor 16 does not write the current position data to the storage device 18. According to this structure, it is prevented that a plurality of target position data substantially consistent with each other are stored repeatedly in the storage device 18, so that the existing target position data can be effectively used. As a result, the amount of data in the database for storing the target position data can be suppressed, so the capacity of the storage device 18 used can be reduced.
[0067] In addition, when the display unit displays the database of target position data in a manner that can be visually recognized by the operator, it is possible to avoid displaying multiple substantially identical target position data, thereby improving the maintainability of the database. In addition, when the display unit displays the target position as an image, unnecessary target positions are omitted, thereby improving the visual recognition of the image.
[0068] In addition, there may be a plurality of target position data that are determined to be consistent with the acquired current position data among the target position data stored in the storage device 18. For example, when the processor 16 calculates the distance δ, the distance δ is in the range [0, δ th ] There may be multiple target position data in . In this case, the processor 16 can select a target position data whose distance δ is closest to zero, and automatically add an identifier of the target position data to the input action command.
[0069] Instead, the processor 16 may set the distance δ to a range of [0, δ th ] is presented to the operator as a list of multiple target position data. For example, the processor 16 can send an instruction to the teaching device 14, and the teaching device 14 displays a list of multiple target position data on the display device 22.
[0070] Furthermore, the operator can operate the input device 24 to input a signal for selecting desired target position data from a plurality of displayed target position data, and the processor 16 receives the input and automatically adds an identifier of the target position data selected by the operator to the input action command.
[0071] Alternatively, the processor 16 may display a list of a plurality of target position data on a display device (not shown) provided in the robot control device 12. Furthermore, the operator may operate an input device (e.g., a keyboard, etc.) provided in the robot control device 12 to input a signal for selecting a desired target position data from the displayed plurality of target position data, and the processor 16 may automatically add an identifier of the target position data selected by the operator to the input action command.
[0072] Next, other functions of the robot teaching device 10 are described. The following describes a case where a database of target position data shown in Table 3 and motion commands shown in Table 4 are stored in the storage device 18, and an operator operates the teaching device 14 to add a new motion command in the row between the motion command "MOVE POSITION [m]" in the nth row and the motion command "MOVEPOSITION [m+1]" in the n+1th row shown in Table 4.
[0073] That is, the motion command "MOVE POSITION [m]" of the nth line and the motion command "MOVE POSITION [m+1]" of the n+1th line are motion commands that have been taught before the new motion command. In this case, the processor 16 calculates the mth target position data (X) of the identifier ID=m instructed by the motion command of the nth line. m , Y m , Z m , W m , P m , R m ) and the m+1th target position data (X) indicated by the identifier ID=m+1 of the action command of the n+1th row m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ) instead of obtaining the current position data of the robot 100 when the new action command is input.
[0074] As an example, regarding the intermediate position, the processor 16 calculates the robot coordinate system C included in the m-th target position data. R The coordinates (X m , Y m , Z m ) and the robot coordinate system C contained in the m+1th target position data R The coordinates (X m+1 , Y m+1 , Z m+1 ) between the midpoint ((X m+1-X m ) / 2、(Y m+1 -Y m ) / 2、(Z m+1 -Z m ) / 2).
[0075] On the other hand, regarding the coordinates (W, P, R) indicating the posture at the intermediate position, the processor 16 adopts the coordinates (W, P, R) of the posture of the m-th target position data. m , P m , R m ). Therefore, in this example, the processor 16 calculates the position data of the intermediate position ((X m+1 -X m ) / 2,(Y m+1 -Y m ) / 2,(Z m+1 -Z m ) / 2,W m , P m , R m ).
[0076] Alternatively, the processor 16 may use the coordinates (W, P, R) of the m+1th target position data as the coordinates (W, P, R) representing the posture of the intermediate position. m+1 , P m+1 , R m+1 In this case, the processor 16 calculates the position data of the intermediate position ((X m+1 -X m ) / 2,(Y m+1 -Y m ) / 2,(Z m+1 -Z m ) / 2,W m+1 , P m+1 , R m+1 ).
[0077] As another example, regarding the intermediate position, in addition to calculating the coordinates of the midpoint of the two target positions described in the above example, the processor 16 can also calculate the coordinates of the intermediate posture between the posture specified by the mth target position data and the posture specified by the m+1th target position data.
[0078] Specifically, the processor 16 calculates the coordinates (W m +(W m+1 -W m ) / 2,P m +(P m+1 -P m ) / 2,R m +(R m+1 -R m) / 2). Therefore, in this example, the processor 16 calculates the position data of the intermediate position ((X m+1 -X m ) / 2,(Y m+1 -Y m ) / 2,(Z m+1 -Z m ) / 2,W m +(W m+1 -W m ) / 2,P m +(P m+1 -P m ) / 2,R m +(R m+1 -R m ) / 2).
[0079] The processor 16 uses the intermediate position data thus obtained as new target position data (X m+2 , Y m+2 , Z m+2 , W m+2 , P m+2 , R m+2 ) is written to the storage device 18 (position data storage unit 28) together with the unique identifier ID=m+2. As a result, as shown in the following Table 5, the m+2th target position data (X) to which the identifier ID=m+2 is added is added to the target position data database. m+2 , Y m+2 , Z m+2 , W m+2 , P m+2 , R m+2 ).
[0080]
[0081] Table 5
[0082] According to the above example, X m+2 =(X m+1 -X m ) / 2, Y m+2 =(Y m+1 -Y m ) / 2, Z m+2 =(Z m+1 -Z m ) / 2, W m+2 =W m (or W m+1 ), P m+2 =P m (or P m+1 ), R m+2 =R m (or R m+1 ). In addition, according to the above another example, Xm+2 =(X m+1 -X m ) / 2, Y m+2 =(Y m+1 -Y m ) / 2, Z m+2 =(Z m+1 -Z m ) / 2, W m+2 =W m +(W m+1 -W m ) / 2, P m+2 =P m +(P m+1 -P m ) / 2, R m+2 =R m +(R m+1 -R m ) / 2.
[0083] In addition, the processor 16 writes a new motion command "MOVE POSITION [m+2]" into the storage device 18 in the form of inserting the motion command "MOVE POSITION [m]" in the nth row and the motion command "MOVE POSITION [m+1]" in the n+1th row in the database shown in Table 4. At this time, the processor 16 automatically adds the identifier "m+2" of the obtained m+2th target position data to the newly written motion command.
[0084] As a result, a new motion command "MOVE POSITION[m+2]" is added to the n+1th row as shown in Table 6. Then, the robot 100 is taught the motion defined by the new motion command "MOVE POSITION[m+2]" (i.e., the motion of placing the end effector 110 at the m+1th target position).
[0085]
[0086] Table 6
[0087] As described above, in this embodiment, when the processor 16 adds a new motion command "MOVE POSITION [m+2]" between the motion command "MOVE POSITION [m]" of the nth row and the motion command "MOVE POSITION [m+1]" of the n+1th row shown in Table 4, the position data of the intermediate position between the mth target position and the m+1th target position is obtained as the new m+2th target position data (X m+2 , Y m+2 , Z m+2 , W m+2 , Pm+2 , R m+2 ) is stored in the storage device 18.
[0088] The m+2th target position calculated as the intermediate position does not deviate significantly from the motion path of the robot 100 from the mth target position to the m+1th target position. Therefore, the safety of the motion of the robot 100 when moving from the mth target position → the m+2th target position → the m+1th target position can be improved, and the operator can easily correct the added m+2th target position. In addition, since the m+2th target position is automatically written to the storage device 18, the work required for teaching can be reduced.
[0089] In addition, the teaching device 14 is not limited to a teaching pendant, and may be, for example, a desktop or mobile (tablet, notebook, etc.) PC. In addition, in the above embodiment, the storage device 18 is built into the robot control device 12, and the processor 16 of the robot control device 12 functions as the position data writing unit 30 and the motion command writing unit 32. However, this is not limited to this, and the robot teaching device having the storage device 18, the position data writing unit 30, and the motion command writing unit 32 may be provided as a device different from the robot control device.
[0090] Figure 3 and Figure 4 Such an embodiment is shown. In this embodiment, the robot teaching device 50 is, for example, a mobile PC, and includes a processor 16, a storage device 18, a display device 22, and an input device 54. The input device 54 is, for example, a touch sensor provided on the screen of the display device 22, and is used to receive a touch operation by an operator. The processor 16, the storage device 18, the display device 22, and the input device 54 are communicatively connected via the bus 20.
[0091] The robot teaching device 50 is connected to the robot control device 52 by wireless or wired communication. The storage device 18 built into the robot teaching device 50 functions as the above-mentioned motion command storage unit 26 and position data storage unit 28. In addition, the processor 16 built into the robot teaching device 50 functions as the above-mentioned position data writing unit 30 and motion command writing unit 32.
[0092] The following describes a method of teaching the robot 100 using the robot teaching device 50. First, the operator operates the input device 54 to jog the robot 100 via the robot control device 52 to place the end effector 110 at a target position to be taught.
[0093] Next, the operator operates the input device 54 to input a motion command to the robot 100. When receiving the motion command input to the input device 54, the processor 16 of the robot teaching device 50 functions as the position data writing unit 30 and obtains the current position data (X) of the robot 100 at that time through the robot control device 52. m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ).
[0094] Next, the processor 16 determines the current position data (X m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ) is consistent with the target position data stored in the storage device 18 in the past. The processor 16 determines whether the current position data (X) obtained is consistent with the target position data stored in the storage device 18 in the past. m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ) does not coincide with the target position data stored in the past, the current position data (X) is written as the position data writing unit 30. m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ) is written to the storage device 18 together with the identifier ID=m+1.
[0095] On the other hand, the processor 16 determines that the acquired current position data (X m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ) is consistent with the target position data stored in the past, the current position data (X m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ) is written into the storage device 18, and the current position data (X) is automatically added to the input action command. m+1 , Y m+1 , Z m+1 , W m+1 , P m+1, R m+1 ) is an identifier for target location data that is consistent with the target location data.
[0096] In addition, when the operator operates the input device 54 and adds a new motion command to the line between the motion command of the nth line and the motion command of the n+1th line, the processor 16 of the robot teaching device 50 obtains the position data of the intermediate position between the mth target position and the m+1th target position as the new m+2th target position data (X m+2 , Y m+2 , Z m+2 , W m+2 , P m+2 , R m+2 ) is written into the storage device 18 together with the identifier "m+2". According to this embodiment, the same effect as the above-mentioned robot teaching device 10 can be achieved.
[0097] In addition, in the robot teaching apparatus 10, 50, the operator can operate the input device 24, 54 to manually input the target position data (X m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ) coordinates. In this case, the processor 16 determines the input target position data (X m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ) is consistent with the target position data stored in the storage device 18 in the past.
[0098] Furthermore, the processor 16 determines that the input target position data (X m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ) is consistent with the target position data stored in the past, the input target position data (X m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ) is written to the storage device 18. Furthermore, the processor 16 automatically adds the input target position data (X) to the motion command received from the operator. m+1 , Y m+1 , Z m+1 , W m+1 , Pm+1 , R m+1 ) is consistent with the identifier of the target position data stored in the past and written into the storage device 18.
[0099] On the other hand, the processor 16 determines that the input target position data (X m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ) does not match the target position data stored in the past, the position data writing unit 30 functions as the position data writing unit 30 and writes the target position data (X) to the target position data. m+1 , Y m+1 , Z m+1 , W m+1 , P m+1 , R m+1 ) is written to the storage device 18 together with the identifier ID=m+1.
[0100] In addition, the robot teaching device 50 may be, for example, a desktop PC. In addition, the target position data is not limited to the above-mentioned coordinates (X, Y, Z, W, P, R), and may be, for example, the rotation angle of each servo motor. In addition, the identifier is not limited to a number, and may be any character or symbol.
[0101] In addition, the storage device 18 may not be built into the robot control device 12 or the robot teaching device 50, but may be provided outside the robot control device 12 or the robot teaching device 50. For example, the storage device 18 may be an external storage device (such as an EEPROM) external to the robot control device 12 or the robot teaching device 50, or may be built into an external server connected to the robot control device 12 or the robot teaching device 50 via a network. In addition, the motion command storage unit 26 and the position data storage unit 28 may each be composed of an independent storage device.
[0102] In addition, a plurality of robots 100 may be connected to the robot control device 12, 52 via a network, and the robot teaching device 10, 50 may teach the plurality of robots 100 actions. In this case, a database of target position data and action command data may be shared between the plurality of robots 100. In addition, the robot 100 is not limited to a vertical multi-joint robot, and may be any type of robot such as a horizontal multi-joint robot or a parallel linkage robot.
[0103] As mentioned above, although this disclosure was described by embodiment, the said embodiment does not limit the invention concerning the scope of a claim.
Claims
1. A robot teaching device, characterized in that: have: A position data storage unit that stores target position data of the robot; an action command storage unit storing an action command for placing the robot at a target position and excluding the target position data; and a position data writing unit which, after inputting the action command, obtains the current position data of the robot when the robot is configured at the target position in accordance with the input of the action command, determines whether the obtained current position data is consistent with the target position data stored in the position data storage unit in the past, and when the obtained current position data is inconsistent with the target position data stored in the past, writes the obtained current position data as the target position data together with the inherent identifier into the position data storage unit, The robot is taught an action by automatically adding the identifier of the target position data to the input action command.
2. The robot teaching device according to claim 1, characterized in that: When the current position data newly acquired by the position data writing unit is consistent with the target position data stored in the position data storage unit in the past, the position data writing unit does not write the new current position data into the position data storage unit, and automatically adds the identifier of the target position data stored in the past to the action command when the new current position data is acquired.
3. The robot teaching device according to claim 2, characterized in that: The position data writing unit does not write the new current position data into the position data storage unit when the new current position data is within a range of a threshold value predetermined with respect to the target position data stored in the past.
4. The robot teaching device according to claim 2 or 3, characterized in that: The robot teaching device further includes an input device for receiving an input for selecting one of the plurality of target position data when the new current position data coincides with the plurality of target position data previously stored in the position data storage unit.
5. The robot teaching device according to any one of claims 1 to 3, characterized in that: The robot teaching device further includes a motion command writing unit configured to write the motion command to which the identifier is automatically added into the motion command storage unit as a motion command not including the target position data.
6. A robot teaching device, characterized in that: have: A position data storage unit that stores target position data of the robot; an action command storage unit storing an action command for placing the robot at a target position and excluding the target position data; and a position data writing unit which, after inputting the action command, obtains the current position data of the robot when the robot is arranged at the target position in accordance with the input of the action command, and writes the current position data into the position data storage unit together with the unique identifier as the target position data. The robot is taught to move by automatically adding the identifier of the target position data to the inputted movement command, When the third action command is added between the first action command and the second action command among the three different action commands are taught, the position data writing unit obtains the position data of the intermediate position between the first target position instructed by the first action command and the second target position instructed by the second action command, instead of obtaining the current position data when the third action command is input, and writes the position data of the intermediate position as the target position data into the position data storage unit together with the inherent identifier.
7. A robot teaching method, characterized in that: After inputting an action command that does not include the target position data of the robot, obtaining the current position data of the robot when the robot is arranged at the target position in accordance with the input of the action command, Determine whether the acquired current position data is consistent with the target position data stored in the position data storage unit in the past, When the acquired current position data is inconsistent with the target position data stored in the past, the acquired current position data is stored as the target position data together with the unique identifier. The robot is taught an action by automatically adding the identifier of the target position data to the input action command.
8. A robot teaching device, characterized in that: have: A position data storage unit that stores the target position data of the robot together with the unique identifier; an action command storage unit storing an action command for placing the robot at a target position and excluding the target position data; as well as An action command writing unit determines whether the current position data of the robot when the robot is configured at the target position, which is obtained as new target position data corresponding to the input of the action command after the action command is input, is consistent with the target position data stored in the position data storage unit in the past. When the current position data obtained is consistent with the target position data stored in the past, the identifier of the target position data stored in the past is automatically added to the input action command, and the action command is written into the action command storage unit as an action command that does not contain the target position data.
9. A method, characterized in that storing an action command for placing the robot at a target position and excluding target position data of the robot, determining whether the current position data of the robot when the robot is arranged at the target position, which is obtained as new target position data corresponding to the input of the action command after the action command is input, is consistent with the target position data stored in the past together with the inherent identifier, When the acquired current position data is consistent with the target position data stored in the past, the identifier of the target position data stored in the past is automatically added to the input action command and the command is stored as an action command not including the target position data.