Devices for correcting the taught position of a robot, teaching devices, robot systems, methods for correcting taught position, and computer programs.
By acquiring the posture and position change data of the workpiece relative to the robot, the teaching position is calculated and corrected, solving the problem of complex teaching position correction in the prior art, and realizing simplified positioning of the release action without physical touch.
Patent Information
- Application Number
- CN202180026006.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-04-02
- Filing Date
- 2021-03-26
- Publication Date
- 2025-10-28
- Estimated Expiration
- 2041-03-26
AI Technical Summary
In existing technologies, the robot teaching position correction process is complex, requires physical touch release action, and is difficult to maintain accurate positioning when the workpiece configuration changes.
By using indicators to identify changes in workpiece position, visual sensors and computer programs are used to acquire data on changes in workpiece posture and position relative to the robot, calculate and correct the taught position, avoid physical touch release actions, and simplify the position correction process.
It enables teaching position correction without physical touch release action, simplifies positioning operation when workpiece configuration changes, and improves positioning accuracy and efficiency.
Smart Images

Figure CN115362049B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to an apparatus, a teaching device, a robot system, a teaching position correction method, and a computer program for correcting the teaching position of a robot. Background Technology
[0002] Devices for correcting the taught position of a robot are known (e.g., Patent Document 1).
[0003] Prior art literature
[0004] Patent documents
[0005] Patent Document 1: Japanese Patent Application Publication No. 2018-202559 Summary of the Invention
[0006] The problem that the invention aims to solve
[0007] Previously, there was a demand for technologies that would simplify the tasks involved in correcting the taught position of a robot.
[0008] Methods for solving problems
[0009] In one aspect of this disclosure, an apparatus for correcting the taught position of a robot when the workpiece is configured relative to a robot using an index that is positioned relative to a predetermined position relative to the workpiece comprises: a first position data acquisition unit that acquires first position data of the robot when it is configured in a predetermined positional relationship relative to the index with the robot's forehand end in a first posture before the workpiece configuration changes; a second position data acquisition unit that acquires second position data of the robot when it is configured in a predetermined positional relationship relative to the index with the forehand end in the first posture after the configuration change; a posture change data acquisition unit that acquires posture change data representing the amount of change in the workpiece's posture relative to the robot caused by the configuration change, based on the first and second position data; a third position data acquisition unit that acquires third position data of the robot when it is configured in a predetermined positional relationship relative to the index with the forehand end in a second posture corrected from the first posture using the posture change data; and a position change data acquisition unit that acquires position change data representing the amount of change in the workpiece's position relative to the robot caused by the configuration change, based on the first and third position data.
[0010] In other embodiments of this disclosure, in a method for correcting the taught position of a robot when the workpiece's configuration relative to the robot changes using an index positioned relative to a predetermined position relative to the workpiece, the following steps are taken: obtaining first position data of the robot when it is configured in a predetermined position relative to the index with the robot's forehand end in a first posture before the workpiece's configuration changes; obtaining second position data of the robot when it is configured in a predetermined position relative to the index with the forehand end in the first posture after the configuration change; obtaining posture change data representing the amount of change in the workpiece's posture relative to the robot caused by the configuration change based on the first and second position data; obtaining third position data of the robot when it is configured in a predetermined position relative to the index with the forehand end in a second posture corrected from the first posture using the posture change data; and obtaining position change data representing the amount of change in the workpiece's position relative to the robot caused by the configuration change based on the first and third position data.
[0011] In another aspect of this disclosure, in order to correct the robot's taught position when the workpiece's configuration relative to the robot changes using an index positioned relative to a predetermined position, a computer program causes a computer to function as follows: a first position data acquisition unit that acquires first position data of the robot when it is configured in a predetermined positional relationship relative to the index with the robot's forehand end in a first posture before the workpiece's configuration changes; a second position data acquisition unit that acquires second position data of the robot when it is configured in a predetermined positional relationship relative to the index with the forehand end in the first posture after the configuration change; a posture change data acquisition unit that acquires posture change data representing the amount of change in the workpiece's posture relative to the robot caused by the configuration change, based on the first and second position data; a third position data acquisition unit that acquires third position data of the robot when it is configured in a predetermined positional relationship relative to the index with the forehand end in a second posture corrected from the first posture using the posture change data; and a position change data acquisition unit that acquires position change data representing the amount of change in the workpiece's position relative to the robot caused by the configuration change, based on the first and third position data.
[0012] Invention Effects
[0013] According to this disclosure, position change data for teaching position correction can be obtained through third position data without performing a physical touch release action. Therefore, the operation involved in teaching position correction can be simplified. Attached Figure Description
[0014] Figure 1 This is a diagram of a robot system according to one implementation method.
[0015] Figure 2 yes Figure 1 The diagram shows a block diagram of the robot system.
[0016] Figure 3 yes Figure 1 An enlarged view of the front end of the hand is shown.
[0017] Figure 4 This is observed from the positive z-axis direction of the MIF coordinate system. Figure 3 The diagram shown is of the front end of the hand.
[0018] Figure 5 This is a diagram used to illustrate the workpiece and its specifications in one embodiment.
[0019] Figure 6 This is a flowchart illustrating an example of a pre-process.
[0020] Figure 7 It means Figure 6 Step S2 and Figure 10 The flowchart is an example of step S2' in the process.
[0021] Figure 8 Indicates in Figure 7 An example of image data captured by the vision sensor in step S12.
[0022] Figure 9 This is a flowchart illustrating an example of a teaching position correction process.
[0023] Figure 10 It means Figure 9 The flowchart is an example of step S23 in the process.
[0024] Figure 11 This is a block diagram of a robot system with other implementation methods. Detailed Implementation
[0025] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. Furthermore, in the various embodiments described below, the same elements are labeled with the same reference numerals, and repeated descriptions are omitted. First, refer to... Figures 1-4 The robot system 10 according to one embodiment will be described. The robot system 10 includes: a robot 12, a vision sensor 14, a control device 16, and a teaching device 18.
[0026] In this embodiment, robot 12 is a vertical joint robot, comprising: a robot base 20, a rotating body 22, a robotic arm 24, and a wrist 26. The robot base 20 is fixed to the floor of the work unit. The rotating body 22 is mounted on the robot base 20 in a manner capable of rotating about a vertical axis. The robotic arm 24 comprises: a lower arm portion 28, which is mounted on the rotating body 22 in a manner capable of rotating about a horizontal axis; and an upper arm portion 30, which is rotatably mounted at the end of the lower arm portion 28.
[0027] The wrist portion 26 includes: a wrist base 32, which is rotatably connected to the end portion of the upper arm portion 30; and a wrist flange 34, which is rotatably disposed on the wrist base 32 about an axis A. The wrist flange 34 is a cylindrical component with the axis A as its central axis, and has a mounting surface 34a on its end side.
[0028] An end effector 36 for performing workpiece operations is mounted detachably on the mounting surface 34a. The end effector 36 may be, for example, a robotic hand, a welding torch, a laser processing head, a paint applicator, etc., and performs specified operations (workpiece handling, welding, laser processing, coating, etc.) on the workpiece W. The wrist flange 34 and the end effector 36 mounted on the end side of the wrist flange 34 constitute the hand end portion 38 of the robot 12.
[0029] Servo motors 39 are built into each structural element of robot 12 (i.e., robot base 20, rotating body 22, robotic arm 24, and wrist 26). Figure 2 Servo motor 39 drives the movable elements of robot 12 (i.e., rotary body 22, robotic arm 24, and wrist 26) according to instructions from control device 16.
[0030] Set the robot coordinate system C1 for robot 12. Figure 1 The robot coordinate system C1 is a coordinate system used for automatically controlling the movements of each movable element of the robot 12, and it is fixed in 3D space. In this embodiment, the robot coordinate system C1 is set for the robot 12 with its origin set at the center of the robot base 20 and its z-axis aligned with the rotation axis of the rotary body 22.
[0031] On the other hand, such as Figure 1 , Figure 3 as well as Figure 4 As shown, a mechanical interface (MIF) coordinate system C2 is set for the hand endpiece 38. The MIF coordinate system C2 is used to control the position and orientation of the hand endpiece 38 (i.e., the end effector 36) in the robot coordinate system C1.
[0032] In this embodiment, a MIF coordinate system C2 is established for the hand tip 38 with its origin positioned at the center of the mounting surface 34a of the wrist flange 34 and its z-axis aligned with axis A. When the hand tip 38 is moved, the processor 40 establishes the MIF coordinate system C2 in the robot coordinate system C1 and controls each servo motor 39 of the robot 12 to configure the hand tip 38 to a position and posture represented by the established MIF coordinate system C2. In this way, the processor 40 can position the hand tip 38 to any position and posture in the robot coordinate system C1.
[0033] The vision sensor 14 is, for example, a camera or a 3D vision sensor, having an optical system (condenser lens, focusing lens, etc.) and an image sensor (CCD, CMOS, etc.). The vision sensor 14 captures an image of an object and sends the captured image data to the control device 16. The vision sensor 14 is fixed at a predetermined position relative to the forehand end 38.
[0034] More specifically, such as Figure 4 As shown, the vision sensor 14 is built into the wrist flange 34 and fixed in a non-movable manner. The image of the subject is configured to be incident on the optical system of the vision sensor 14 along the optical axis O through the opening 34b formed in the mounting surface 34a. A sensor coordinate system C3 is set for the vision sensor 14.
[0035] Sensor coordinate system C3 is a coordinate system that defines the coordinates of each pixel in the image data captured by vision sensor 14, and sets vision sensor 14 such that its xy plane is orthogonal to the optical axis O of vision sensor 14. In this embodiment, the positional relationship between MIF coordinate system C2 and sensor coordinate system C3 is not calibrated and is unknown.
[0036] The control device 16 controls the movements of the robot 12 and the vision sensor 14. Specifically, the control device 16 is a computer having a processor 40, a memory 42, and an I / O interface 44. The processor 40 has a CPU or GPU, etc., and is communicatively connected to the memory 42 and the I / O interface 44 via a bus 46. While communicating with the memory 42 and the I / O interface 44, the processor 40 sends instructions to the robot 12 and the vision sensor 14 to control their movements.
[0037] The memory 42 has RAM or ROM, etc., to temporarily or permanently store various data. The I / O interface 44 has, for example, an Ethernet port, a USB port, a fiber optic connector, or an HDMI terminal, etc., and communicates with external devices wirelessly or via wired means under the instructions from the processor 40. The aforementioned servo motor 39 and vision sensor 14 are connected to the I / O interface 44 in a communicative manner via wireless or wired means.
[0038] The teaching pendant 18 is, for example, a handheld device (such as a teach pendant or a portable device like a tablet) used to teach the robot 12 actions to perform a specified task. Specifically, the teaching pendant 18 is a computer having a processor 50, a memory 52, an I / O interface 54, an input device 56, and a display device 58. The processor 50, such as a CPU or GPU, is communicatively connected to the memory 52, the input device 56, the display device 58, and the I / O interface 54 via a bus 60.
[0039] The memory 52 has RAM or ROM, etc., to temporarily or permanently store various data. The I / O interface 54 has, for example, an Ethernet port, a USB port, a fiber optic connector, or an HDMI terminal, etc., and communicates with external devices wirelessly or via wired means under the instructions from the processor 50. The I / O interface 54 is connected to the I / O interface 44 of the control device 16, and the control device 16 and the teaching device 18 can communicate with each other.
[0040] The input device 56 has buttons, switches, or touch panels, etc., to receive input from the operator and send the input information to the processor 50. The display device 58 has an LCD or OLED display, etc., to display various information under the instructions from the processor 50. The operator can perform jog operations on the robot 12 by operating the input device 56, and can teach the robot 12 actions.
[0041] By teaching robot 12, the operator can construct a work program WP for making robot 12 perform a specified task. The work program WP specifies a teach position TP0 for positioning the fore-end of robot 12 (specifically, the end effector 36) for the task. The work program WP is pre-stored in memories 42 and 52.
[0042] The processor 50 sends instructions to the control device 16 to make the robot 12 perform actions. The processor 40 of the control device 16 controls the robot 12 according to the instructions from the teaching device 18. In this way, the processor 50 can control the actions of the robot 12 via the control device 16.
[0043] like Figure 1 as well as Figure 5As shown, in this embodiment, the workpiece W, which becomes the object of operation for the robot 12, is fixed in a predetermined position by the holding structure B using a fixture (not shown). A workpiece coordinate system C4 is established for the workpiece W. The workpiece coordinate system C4 is a coordinate system that defines the position and orientation of the workpiece W in the robot coordinate system C1, and is fixed relative to the workpiece W (or, the robot coordinate system C1). In this embodiment, the workpiece coordinate system C4 is configured relative to the workpiece W such that its origin is located at a vertex of the upper surface of the workpiece W and its xy plane is parallel to the upper surface of the workpiece W.
[0044] Here, sometimes the robot 12, workpiece W, and holding structure B are moved to other production lines, or at least one of the robot 12, workpiece W, and holding structure B is replaced. In such cases, the configuration of workpiece W relative to robot 12 (or robot coordinate system C1) changes, and as a result, even if the robot 12 is moved according to the work procedure WP to position the hand end 38 toward the taught position TP0, it may not be possible to accurately perform the operation at the target position on workpiece W.
[0045] Therefore, in this embodiment, the teaching device 18 uses indices ID1, ID2, and ID3, which are positioned relative to the workpiece W at a predetermined location, to correct the teaching position TP0 of the robot 12 specified in the work procedure WP. For example... Figure 5 As shown, in this embodiment, a total of three indicators, ID1, ID2 and ID3, are set on the upper surface of the retaining structure B.
[0046] The first indicator ID1, the second indicator ID2, and the third indicator ID3 are each composed of a circular line D and two mutually orthogonal straight lines E and F. These indicators ID1, ID2, and ID3 are provided on the retaining structure B as visually identifiable features, such as patterns using paint or engravings (embossing) formed on the upper surface of the retaining structure B.
[0047] Next, the operation flow of the teaching pendant 18 will be explained. First, before changing the configuration of the robot 12 and the workpiece W (i.e., moving or replacing the robot 12, the workpiece W, or the holding mechanism B), the processor 50 of the teaching pendant 18 executes... Figure 6 The pre-process is shown. Figure 6 The pre-processing procedure shown begins when the processor 50 receives the pre-processing start instruction from the operator, the host controller, or the computer program CP used for teaching position correction.
[0048] In step S1, the processor 50 will determine the nth index ID. nThe number "n" (in this embodiment, n = 1, 2, 3) is set to "1". In step S2, the processor 50 executes the configuration of the hand front end 38 relative to the nth index ID. n The process of defining positional relationships. (Refer to...) Figure 7 The following explanation is provided for step S2.
[0049] In step S11, the processor 50 configures the hand front end 38 relative to the nth index ID. n initial position P A_n And the first pose OR1. Here, the initial position P A_n Predetermined as the nth index ID n The position of the forehand end 38 within the field of view of the vision sensor 14. Additionally, the first pose OR1 is determined as the coordinates (W1, P1, R1) of the robot coordinate system C1.
[0050] Here, coordinate W1 represents the angle of robot coordinate system C1 around the x-axis, coordinate P1 represents the angle of robot coordinate system C1 around the y-axis, and coordinate R1 represents the angle of robot coordinate system C1 around the z-axis. The initial position P... A_n The data for the first pose OR1 (i.e., the coordinates of the robot coordinate system C1) are specified by the computer program CP.
[0051] The processor 50 controls the robot 12 via the control device 16, causing the robot 12 to move and position the forehand end 38 to the initial position P. A_n And the first pose OR1. At this time, the vision sensor 14 moves together with the robot 12 and the forearm 38, and is configured to display the nth index ID. n Stored in a position within sight.
[0052] Assuming that the start time of step S11 is set to n=1, the processor 50 causes the robot 12 to perform an action, configuring the hand tip 38 to the initial position P relative to the first index ID1. A_1 And the first posture OR1. Thus, in this embodiment, the processor 50 serves as a robot control unit 72 that controls the movements of the robot 12 by moving the forearm 38 and the vision sensor 14. Figure 2 To fulfill its function.
[0053] In step S12, the processor 50 activates the vision sensor 14 to capture the nth index ID. n . Figure 8 This indicates the image data JD captured by the vision sensor 14 at this time. n Examples, such as... Figure 8 As shown, in this embodiment, the origin of the sensor coordinate system C3 is located at the image data JD.n The center (specifically, the pixel at the center).
[0054] Processor 50 acquires image data JD from vision sensor 14 via control device 16 n The data is stored in memory 52. Therefore, processor 50 acquires the nth index ID captured by vision sensor 14. n The obtained image data JD n Image acquisition unit 74 ( Figure 2 The processor 50 can also directly acquire image data from the vision sensor 14 without going through the control device 16. n In this case, I / O interface 54 can be connected to vision sensor 14 in a communicative manner via wired or wireless connection.
[0055] In step S13, the processor 50 determines the image data JD acquired in the most recent step S12. n The nth index ID n Location IP n Whether it is configured at a predetermined target location PO, and the nth index ID n Size SZ n Whether it is consistent with the predetermined target value TS.
[0056] Specifically, the processor 50 processes the acquired image data JD n The image data (JD) was analyzed to determine its meaning. n The nth index ID shown in the middle n The intersection point G of lines E and F. Furthermore, the processor 50 obtains the coordinates (x, y) of the intersection point G in the sensor coordinate system C3 as the position IP. n The data. Here, in this embodiment, the target position PO is set as the origin of the sensor coordinate system C3.
[0057] As an example, the position IP of processor 50 in sensor coordinate system C3 n The x-coordinate is at -x th ≤x≤x th The range (i.e., the range [-x]) th x th Within ]), and the y-coordinate is at -y th ≤y≤y th The range (i.e., the range [-y)) th y th In the case of []), it is determined to be a location IP. n Configured at the target location PO. As another example, processor 50 calculates the distance δ between the origin and intersection point G of the sensor coordinate system C3. G =(x2 +y 2 ) 1 / 2 At this distance δ G For the threshold δ Gth The following situations are considered as location IP addresses. n It is configured at the target location PO.
[0058] Thus, in this embodiment, the processor 50 acts as the decision maker in the image data JD. n The nth index ID n Location IP n Whether the image determination unit 76 is configured at the target position PO Figure 2 ) to perform its function. Furthermore, the target position PO can also be set anywhere outside the origin of the sensor coordinate system C3: coordinates (x0, y0). In this case, the aforementioned range [-x th x th ] and [-y th y th ] can be set to [-x th +x0, x th +x0] and [-y th +y0, y th +y0].
[0059] Additionally, the processor 50 parses image data JD. n Determine the image data JD n The nth index ID shown in the middle n The processor 50 obtains the area of circle D in the sensor coordinate system C3 (or the number of pixels contained within the image region of circle D) as the representation dimension SZ. n The data. Furthermore, the processor 50 is in size SZ. n If the value is within a pre-determined range based on the target value TS (e.g., [0.95×TS, 1.05×TS]), it is determined to be the size SZ. n Consistent with the target value TS.
[0060] In step S13, the processor 50 is at position IP n Configured at target location PO and size SZ n If the result matches the target value TS, it is considered "yes" and the process ends. Figure 7 Step S2, proceed to Figure 6 Step S3 in the process. On the other hand, the processor 50 at position IP n Not configured at target location PO or size SZ n If the value is inconsistent with the target value TS, it is determined as no, and proceed to step S14.
[0061] When the determination is yes in step S13, the forehand end 38, in the state configured in the first posture OR1, is relative to the nth index ID. n Configured to a predetermined positional relationship, which is the image data JD captured by the vision sensor 14 and determined to be correct in step S13. n The hand tip 38 and the nth index ID n The positional relationship. That is, when the forehand end 38 is configured in the first pose OR1, relative to the nth index ID. n The positional relationship is such that the optical axis O of the vision sensor 14 passes through the intersection point G and the vision sensor 14 moves away from the intersection point G by a specified distance.
[0062] In step S14, the processor 50 causes the forehand end portion 38 to translate a distance d in the direction H while in the state configured in the first posture OR1. Here, the processor 50 may also cause the forehand end portion 38 to translate by a predetermined (or randomly selected) distance d0 and direction H0 in the first execution of step S14.
[0063] Subsequently, the image data JD can also be captured in step S12, which is executed a second time or later. n In the middle, the nth index ID, which is the result of translational movement, generates displacement in the sensor coordinate system C3. n The displacement and its direction are used to determine the distance d and direction H of the translation of the front end of the hand 38 in step S14 executed after the second time.
[0064] Specifically, processor 50 enables location IP n And size SZ n The distance d and direction H are determined by the approach to the target position PO and the target value TS, respectively. After executing step S14, the processor 50 returns to step S12 and repeats steps S12 to S14 until it is determined to be true in step S13.
[0065] Refer again Figure 6 In step S3, the processor 50 obtains the position data PD of the robot 12 when it was determined to be true in step S13. 1_n (First position data). For example, at the time point determined by processor 50 in step S13, the coordinates (x, y, y) of the origin of MIF coordinate system C2 in robot coordinate system C1 are obtained. 1_n y 1_n , z 1_n ) as location data PD 1_n It is stored in memory 52.
[0066] Furthermore, the processor 50 can also calculate the coordinates (x, y) based on position feedback from the rotation detectors (encoders, Hall elements, etc.) of each servo motor 39 installed on the robot 12. 1_n y 1_n z 1_n Thus, in this embodiment, the processor 50 acts as the acquirer of location data PD. 1_n (First position data) First position data acquisition unit 78 ( Figure 2 To fulfill its function.
[0067] In step S4, the processor 50 will determine the nth index ID. n The number "n" is incremented by "1" (n = n + 1). In step S5, the processor 50 determines the nth index ID. n Is the index number "n" "4" (n=4)? This number "4" is the index ID. n The total number + 1. Processor 50 determines this to be true when n = 4, and ends. Figure 6 The pre-processing shown, on the other hand, determines no when n≤3, and returns to step S2. Then, processor 50 loops through steps S2 to S5 until it determines yes in step S5.
[0068] After the end Figure 6 The timeline of the pre-process involves obtaining location data PD for the first indicator ID1. 1_1 : coordinates (x 1_1 y 1_1 z 1_1 Regarding the location data PD obtained from the second indicator ID2 1_2 : coordinates (x 1_2 y 1_2 z 1_2 ), and location data PD obtained from the third indicator ID3. 1_3 : coordinates (x 1_3 y 1_3 z 1_3 ), stored in memory 52.
[0069] After the configuration of robot 12 and workpiece W is changed (i.e., the robot 12, workpiece W, or holding mechanism B is moved or replaced), processor 50 executes... Figure 9 The teaching position correction process is shown. Furthermore, even relative to the workpiece W after the configuration change, it is as follows... Figure 5 As shown, set the first indicator ID1, the second indicator ID2, and the third indicator ID3 in the same positions as before the configuration change. Figure 9The teaching position correction process shown begins when the processor 50 receives a position correction process start instruction from the operator, the host controller, or the computer program CP.
[0070] In step S21, the processor 50 executes the second position data acquisition process. The flow of step S21 is similar to... Figure 6 The process shown is the same. That is, processor 50 targets the nth index ID after the configuration change. n Execute steps S1 to S5. In step S3 executed in step S21, the processor 50, with the hand tip 38 configured in the first pose OR1, obtains the nth index ID relative to the configuration change. n The position data PD of robot 12 when configured with the positional relationship specified above (i.e., the positional relationship determined in step S13) 2_n (Second position data)
[0071] The result of step S21 is to obtain the location data PD obtained regarding the first indicator ID1. 2_1 : coordinates (x 2_1 y 2_1 , z 2_1 Regarding the location data PD obtained from the second indicator ID2 2_2 : coordinates (x 2_2 y 2_2 , z 2_2 ), and location data PD obtained from the third indicator ID3. 2_3 : coordinates (x 2_3 y 2_3 , z 2_3 The location data (PD) is stored in memory 52. Thus, in this embodiment, the processor 50 acts as the processor for acquiring location data (PD). 2_n (Second position data) Second position data acquisition unit 80 ( Figure 2 To fulfill its function.
[0072] In step S22, the processor 50 determines the location data PD based on the location data PD. 1_n and PD 2_n The processor 50 first obtains the posture change data. Specifically, the processor 50 first calculates the following matrix V1.
[0073] [Mathematical Expression 1]
[0074]
[0075] Here, n1 can use the aforementioned location data PD. 1_1 and PD 1_2 According to n1 = (PD) 1_2 -PD 1_1 ) / |PD1_2 -PD 1_1 The formula for | is used to calculate it. (PD) 1_2 -PD 1_1 ) is from coordinates (x 1_1 y 1_1 , z 1_1 ) to coordinate (x 1_2 y 1_2 , z 1_2 n1 represents the unit vector of VT1.
[0076] In addition, a1 can be calculated using the formula a1 = r1 / |r1|, and r1 can be obtained using the aforementioned position data PD. 1_1 and PD 1_3 And the unit vector n1, according to r1=(PD 1_3 -PD 1_1 The formula for (PD)·n1 is obtained. Here, (PD) 1_3 -PD 1_1 ) is from coordinates (x 1_1 y 1_1 , z 1_1 ) to coordinate (x 1_3 y 1_3 , z 1_3 The vector VT2, r1 is a vector orthogonal to both the vector VT2 and the aforementioned unit vector n1 (i.e., r1 is a vector VT2: (PD) 2_3 -PD 2_1 The outer product of the vector n1 and the position data PD. Thus, the processor 50 can determine the position data PD based on the vector n1. 1_n To calculate the parameters of matrix V1.
[0077] Next, processor 50 calculates the following matrix V2.
[0078] [Mathematical Expression 2]
[0079]
[0080] Here, n2 can use the aforementioned location data PD. 2_1 and PD 2_2 According to n2 = (PD) 2_2 -PD 2_1 ) / |PD 2_2 -PD 2_1 The formula for | is obtained here. 2_2 -PD 2_1 ) is from coordinates (x 2_1 y 2_1 , z 2_1 ) to coordinate (x 2_2 y 2_2 , z2_2 n2 represents the unit vector of VT3.
[0081] Furthermore, a2 can be calculated using the formula a2 = r2 / |r2|, and r2 can be obtained using the aforementioned position data PD. 2_1 and PD 2_3 And the unit vector n2, according to r2=(PD) 2_3 -PD 2_1 The formula for n is obtained by calculating n².
[0082] Here, (PD) 2_3 -PD 2_1 ) is from coordinates (x 2_1 y 2_1 , z 2_1 ) to coordinate (x 2_3 y 2_3 , z 2_3 The vector VT4, r2 is a vector orthogonal to both the vector VT4 and the aforementioned unit vector n2 (i.e., r2 is a vector VT4: (PD) 2_3 -PD 2_1 The outer product of the vector n2 and the position data PD. Thus, the processor 50 can determine the position data PD based on the vector n2. 2_n To calculate the parameters of matrix V2.
[0083] Next, the processor 50 uses the calculated matrices V1 and V2 to calculate matrix M1 according to the formula M1 = inv(V2)·V1. This matrix M1 corresponds to the pose change data, which represents the amount of change in the pose of the workpiece W relative to the robot 12 (or the robot coordinate system C1) caused by the configuration change. Thus, in this embodiment, the processor 50 acts as a processor based on position data PD. 1_n and PD 2_n The posture change data acquisition unit 82 (acquires posture change data M1) Figure 2 To fulfill its function.
[0084] In step S23, the processor 50 executes the third position data acquisition process. (Refer to...) Figure 10 Step S23 will be explained. In step S31, the processor 50 corrects the first posture OR1. Specifically, the processor 50 uses posture change data M1 to correct the first posture OR1 (W1, P1, R1) of the forehand end 38 (or tool coordinate system C2), thereby determining the second posture OR2 (W2, P2, R2) of the forehand end 38.
[0085] The coordinates (W1, P1, R1) of the first pose OR1 are transformed using the matrix M1 (=inv(V2)·V1) obtained in step S22, thereby enabling the calculation of the coordinates (W2, P2, R2) of the second pose OR2 (i.e., OR2=M1·OR1). The second pose OR2 is the pose of the forehand end 38 (i.e., the orientation of each axis of the tool coordinate system C2) after correction from the first pose OR1, corresponding to the change in the pose of the workpiece W relative to the robot 12 (or the robot coordinate system C1) caused by the configuration change.
[0086] Next, processor 50 executes step S2'. Step S2' includes... Figure 7 The steps S11 to S14 shown are different from step S2 described above in the following aspects. That is, in step S2', the processor 50 executes steps S11 to S14 with the hand front end 38 configured in the second posture OR2 after correction in step S31.
[0087] Specifically, in step S11, while the forehand end 38 is configured in a second pose OR2, the processor 50 configures it relative to an index ID. n initial position P A_n This is a single indicator ID. n It is one indicator selected from three indicators, ID1, ID2 and ID3, and can be specified in advance by the operator.
[0088] Next, with the hand tip 38 configured in the second posture OR2, the processor 50 checks the ID of the indicator. n Steps S12 to S14 are executed. As a result, the forehand end portion 38, configured in the second pose OR2, corresponds to one index ID. n Configured to a specified positional relationship (i.e., the visual sensor 14 captures image data JD that is determined to be true in step S13). n The hand tip has 38 and 1 indicator ID. n (Positional relationship).
[0089] Refer again Figure 10 After step S2' is completed, processor 50 executes step S3 to obtain the position data PD of robot 12 at this time. 3_n (Third position data). Specifically, the processor 50 obtains the coordinates (x, y) of the origin of the MIF coordinate system C2 in the robot coordinate system C1 at the time point determined in step S13 of step S2'. 3_n y 3_n , z 3_n ) as location data PD 3_n It is stored in memory 52.
[0090] Thus, in this embodiment, the processor 50 serves as the third location data acquisition unit 84. Figure 2 The third position data acquisition unit 84 acquires data relative to an index ID when the hand tip 38 is configured in the second posture OR2. n The third position data PD of robot 12 when configured with the specified positional relationship 3_n .
[0091] Refer again Figure 9 In step S24, the processor 50 determines the location data PD based on the location data PD. 1_n (First location data) and location data PD 3_n (Third position data), obtain position change data. Specifically, processor 50 obtains position change data based on M2 = W. B inv(M1·W A The matrix M2 is obtained using the formula.
[0092] Here, W A This refers to the ID of the index selected in step S2' above. n First location data PD obtained 1_n And the position and pose data of the first pose OR1. Assume that in step S2', the first indicator ID1 was selected as one indicator ID. n In this case, position and pose data W A Represented as coordinates (x 1_1 y 1_1 , z 1_1 (W1, P1, R1).
[0093] In addition, W B It means in Figure 10 The third location data PD obtained in step S3 of the process 3_n And the position and pose data of the second pose OR2 obtained in step S31. Assume that, when the first indicator ID1 is selected as one indicator ID... n In this case, position and pose data W B Represented as coordinates (x 3_1 y 3_1 , z 3_1 (W2, P2, R2).
[0094] The matrix M2 corresponds to position change data, which represents the amount of position change of the workpiece W relative to the robot 12 (robot coordinate system C1) based on configuration changes. Thus, in this embodiment, the processor 50 acts as a processor based on the position data PD. 1_n and PD 3_nPosition change data acquisition unit 86 (M2) Figure 2 To fulfill its function.
[0095] In step S25, the processor 50 obtains conversion data for correcting the teaching position TP0 specified by the work procedure WP based on the posture change data M1 and the position change data M2. Specifically, the processor 50 calculates matrix M3 as conversion data according to the formula M3 = M2·M1. Thus, in this embodiment, the processor 50 serves as a conversion data acquisition unit 88 that obtains conversion data M3 based on the posture change data M1 and the position change data M2. Figure 2 To fulfill its function.
[0096] In step S26, the processor 50 corrects the teaching position TP0. Specifically, the processor 50 uses the conversion data M3 obtained in step S25 to convert the original teaching position TP0 into a new teaching position TP1 using the formula TP1 = M3·TP0, and stores it in the memory 52. In this way, the processor 50 corrects the teaching position TP0, which was previously specified by the job program WP, to the teaching position TP1.
[0097] The revised teaching position TP1 is a teaching position that eliminates changes in the position and posture of the workpiece W relative to the robot 12 (robot coordinate system C1) caused by configuration changes. That is, it enables the position and posture of the hand tip 38 relative to the workpiece W when it is positioned at the teaching position TP0 before the configuration change to be consistent with the position and posture of the hand tip 38 relative to the workpiece W when it is positioned at the teaching position TP1 after the configuration change.
[0098] As described above, in this embodiment, the processor 50 functions as the robot control unit 72, image acquisition unit 74, image determination unit 76, first position data acquisition unit 78, second position data acquisition unit 80, posture change data acquisition unit 82, third position data acquisition unit 84, position change data acquisition unit 86, and conversion data acquisition unit 88, using the nth index ID. n To correct the teaching position TP0.
[0099] Therefore, the robot control unit 72, image acquisition unit 74, image determination unit 76, first position data acquisition unit 78, second position data acquisition unit 80, posture change data acquisition unit 82, third position data acquisition unit 84, position change data acquisition unit 86, and conversion data acquisition unit 88 constitute a configuration for using the nth index ID. n Device 70 for correcting the teaching position TP0 Figure 1 ).
[0100] According to this embodiment, the third position data PD is obtained when the forehand end 38 is corrected to the second posture OR2. 3_n The system obtains the position change data M2 required to correct the teaching position TP0. Based on this structure, the physical touch release action of the robot 12, previously required on a physical machine, can be eliminated.
[0101] The actual touch release action refers to the action of bringing the end of the pin mounted on the front end 38 of the hand into contact with the end of the opposite side pin fixedly set in the holding structure B. In the prior art including the above-mentioned Patent Document 1, in order for the robot to perform actual tasks, the actual touch release action needs to be performed after obtaining the matrix for teaching position correction.
[0102] According to this embodiment, no actual touch release action is performed; only the third position data PD is obtained in step S23. 3_n This allows for the acquisition of position change data M2 without the need to calibrate the positional relationship between the MIF coordinate system C2 and the sensor coordinate system C3. Therefore, it simplifies the work involved in teaching position correction.
[0103] Furthermore, according to this embodiment, in step S23 above, only the selected index ID is considered. n Obtain 1 location data PD 3_n This allows the acquisition of location change data M2. Based on this structure, the operational steps required to acquire location change data M2 can be reduced, thus simplifying the process. Figure 9 The process shown is for correcting the teaching position, thus simplifying the tasks involved in correcting the teaching position.
[0104] Furthermore, in this embodiment, the processor 50 executes the aforementioned steps S2 and S2' to utilize the image data JD captured by the vision sensor 14. n Relating the forehand end 38 to the nth index ID n Configured to a specified positional relationship (i.e., the visual sensor 14 captures image data JD that is determined to be true in step S13). n The hand tip 38 and the indicator ID n (Positional relationship). Based on this structure, the forehand end portion 38 can be accurately configured into a specified positional relationship using a relatively simple algorithm.
[0105] In addition, processor 50 can also execute according to computer program CP. Figure 6 , Figure 7 , Figure 9 as well as Figure 10The process is shown. The computer program CP can also be pre-stored in the memory 52. In this case, the computer program CP enables the processor 50 to function as the robot control unit 72, the image acquisition unit 74, the image determination unit 76, the first position data acquisition unit 78, the second position data acquisition unit 80, the posture change data acquisition unit 82, the third position data acquisition unit 84, the position change data acquisition unit 86, and the conversion data acquisition unit 88.
[0106] Furthermore, when the position and orientation of the workpiece W change due to configuration changes, in step S26 above, the processor 50 can also correct the taught position TP0, and based on the orientation change data M1 and the position change data M2, correct the position (origin position) and orientation (direction of each axis) of the workpiece coordinate system C4 in the robot coordinate system C1. Thus, the workpiece coordinate system C4 can be automatically and accurately reset for the workpiece W after configuration changes.
[0107] In addition, the vision sensor 14 can also be a 3D vision sensor that captures images of objects and measures the distance to those objects. In step S12 above, it can also capture the nth index ID. n To obtain image data JD n And measure from visual sensor 14 (origin of sensor coordinate system C3) to the nth index ID n (e.g., the distance k from the intersection point G).
[0108] In this case, the processor 50 can also determine in step S13 above that the most recently acquired image data JD n The nth index ID n Location IP n Whether it is configured at the target location PO, and whether the distance k is within a predetermined range [k] th1 k th2 [Within]. In this case, it is possible to avoid using the indicator ID. n The size of circle D, SZ n The forehand end 38 is relative to the nth index ID. n Configured to a specified positional relationship, therefore, it is possible to obtain the index ID. n Circle D is omitted.
[0109] Alternatively, the vision sensor 14 can be a laser scanning 3D sensor that has an optical system (laser diode, etc.) that emits light (e.g., a laser beam) along the optical axis O, and an image sensor (CCD, CMOS, etc.) that receives and photoelectrically converts the light reflected by the object. Alternatively, the vision sensor 14 can be composed of a 2D camera, and further, the forehand end 38 of the robot 12 is also fixed with a laser device (e.g., a laser pointer) capable of emitting a laser beam.
[0110] In this case, the visual sensor 14 may, in step S12 above, measure the index ID. n And image data showing the illumination point of the laser beam from the laser device JD n During the simultaneous shooting, the processor 50 determines in step S13 whether the illumination point of the laser beam is configured at the intersection point G.
[0111] Alternatively, the vision sensor 14 can be omitted from the robot system 10. In step S12, the operator visually determines whether the illumination point of the laser beam from the aforementioned laser device (laser indicator) is configured at the indicator ID. n The intersection point G. Alternatively, the operator can manually measure the distance from the laser device to the intersection point G at this time to determine whether the distance is within the predetermined target range.
[0112] Furthermore, the operator can also manually perform jog operations on the robot 12 by operating the input device 56 of the teaching pendant 18 in step S14. That is, in this case, the operator executes steps S2 and S2'. In this way, the hand tip 38 can also be positioned relative to the indicator ID. n The positions are configured according to a predetermined relationship. In this case, the robot control unit 72, the image acquisition unit 74, and the image determination unit 76 can be omitted from the device 70.
[0113] Alternatively, the conversion data acquisition unit 88 can be omitted from the device 70. For example, the teaching pendant 18 located in the factory can be connected to an external device (e.g., a PC) in a different facility via a communication network (Internet, LAN, etc.) in a communicative manner. The teaching pendant 18 sends the posture change data M1 and position change data M2 acquired by the device 70 in functioning to the external device. Furthermore, in other facilities, the operator can also operate the external device to obtain conversion data M3 using the posture change data M1 and position change data M2 received from the teaching pendant 18.
[0114] In addition, more than four index IDs can be set for workpiece W. n Additionally, the indicator ID n Not limited to Figure 5 The artificial pattern shown can also be any visually recognizable feature formed on the retaining structure B or workpiece W, such as holes, edges, or protrusions, and can be used as an indicator. Furthermore, the origin positions of the robot coordinate system C1, IMF coordinate system C2, sensor coordinate system C3, or workpiece coordinate system C4, as well as the directions of each axis, are not limited to the methods described above.
[0115] In addition, as the first location data PD 1_nSecond location data PD 2_n and third-position data PD 3_n It is not limited to the origin of the MIF coordinate system C2; it can also obtain the position data of any point that is in a known position relative to the origin of the MIF coordinate system C2 (or the hand tip 38). For example, the tool coordinate system C5 can be set at a known position relative to the MIF coordinate system C2.
[0116] The tool coordinate system C5 is used to define the position and orientation of the end effector 36 in the robot coordinate system C1. Its origin is set at the working point of the end effector 36 (e.g., the workpiece gripping position of the robot hand, the welding point of the welding torch, the laser exit of the laser processing head, the paint exit of the paint applicator, etc.).
[0117] If the coordinates of the origin of the MIF coordinate system C2 in the robot coordinate system C1 are set to (x, y, z), then the coordinates of the origin of the tool coordinate system C5 in the robot coordinate system C1 can be represented by (x+α, y+β, z+γ). The processor 50 can also obtain the coordinates of the origin of the tool coordinate system C5 as the first position data PD. 1_n Second location data PD 2_n and third-position data PD 3_n .
[0118] Furthermore, in the above embodiment, the device 70 (i.e., the robot control unit 72, image acquisition unit 74, image determination unit 76, first position data acquisition unit 78, second position data acquisition unit 80, posture change data acquisition unit 82, third position data acquisition unit 84, position change data acquisition unit 86, and conversion data acquisition unit 88) is described as being installed on the teaching pendant 18 as a function executed by the processor 50. However, the device 70 may also be installed on the control device 16. Figure 11 This indicates that it is done in this way.
[0119] exist Figure 11 In the robot system 10' shown, the processor 40 of the control device 16 executes... Figure 6 , Figure 7 , Figure 9 as well as Figure 10 The process shown functions as robot control unit 72, image acquisition unit 74, image determination unit 76, first position data acquisition unit 78, second position data acquisition unit 80, posture change data acquisition unit 82, third position data acquisition unit 84, position change data acquisition unit 86, and conversion data acquisition unit 88.
[0120] In this case, the processor 40 can also execute the computer program CP pre-stored in the memory 42. Figure 6 , Figure 7 , Figure 9 as well as Figure 10 The process is shown. Furthermore, the robot system 10' may or may not have a teaching pendant 18. Additionally, the robot 12 is not limited to a vertical joint robot; for example, it may be any type of robot capable of moving the end effector 36, such as a horizontal joint robot or a parallel linkage robot. In this case, the end effector 36 and the component of the robot on which the end effector 36 is mounted (wrist flange 34) constitute the forearm 38. The present disclosure has been described above through embodiments, but the above embodiments do not limit the invention as described in the claims.
[0121] Attached image captions
[0122] 10, 10' Robot System
[0123] 12 robots
[0124] 14. Visual Sensors
[0125] 16. Control device
[0126] 18 Teaching devices
[0127] 38. Forehand end
[0128] 40, 50 processors
[0129] 70 devices
[0130] 72 Robot Control Department
[0131] 74 Image Acquisition Unit
[0132] 76 Image Determination Unit
[0133] 78 First Position Data Acquisition Department
[0134] 80 Second Position Data Acquisition Department
[0135] 82. Posture Change Data Acquisition Department
[0136] 84 Third Position Data Acquisition Department
[0137] 86. Location Change Data Acquisition Department
[0138] 88. Data Acquisition Department.
Claims
1. An apparatus for correcting the taught position of a robot when the configuration of the workpiece relative to the robot changes, using an index relative to a predetermined position in which the workpiece is positioned, characterized in that, The device has: The first position data acquisition unit acquires the first position data of the robot when the robot's hand tip is configured in a predetermined positional relationship relative to the index in a state where the robot's hand tip is configured in a first posture before the configuration of the workpiece is changed. The second position data acquisition unit acquires the second position data of the robot when the forehand end is configured in the first posture and the robot is configured in the prescribed positional relationship relative to the indicator after the configuration change. The posture change data acquisition unit acquires posture change data, representing the amount of change in the posture of the workpiece relative to the robot caused by the configuration change, based on the first position data and the second position data. The third position data acquisition unit acquires the third position data of the robot when the forehand end is configured in a second posture after correction from the first posture using the posture change data, and is configured relative to the index in the prescribed positional relationship. The position change data acquisition unit acquires position change data, representing the amount of position change of the workpiece relative to the robot caused by the configuration change, based on the first position data and the third position data.
2. The apparatus according to claim 1, characterized in that, The device has: A robot control unit controls the robot's movements to move the forehand end and a vision sensor fixed relative to the forehand end; The image acquisition unit acquires image data of the indicator captured by the vision sensor that moves with the movement of the robot; The image determination unit determines whether the position of the indicator in the image data is configured at a predetermined target position. The specified positional relationship is the positional relationship between the forehand end and the indicator when the visual sensor captures image data that the image determination unit determines is positioned at the target location.
3. The apparatus according to claim 1 or 2, characterized in that, The device configures multiple of the aforementioned parameters for the workpiece. The first position data acquisition section acquires the first position data relative to each of the indicators when the forehand end is configured in the first posture and in the prescribed positional relationship. The second position data acquisition section acquires the second position data relative to each of the indicators when the forehand end is configured in the first posture and in the prescribed positional relationship. The posture change data acquisition unit acquires the posture change data based on multiple first position data acquired by the first position data acquisition unit and multiple second position data acquired by the second position data acquisition unit. The third position data acquisition unit acquires the third position data when the forehand end is configured in the second posture and positioned relative to one of the indicators in the prescribed positional relationship. The location change data acquisition unit acquires the location change data based on the first location data acquisition unit's acquisition of ... third location data acquisition unit's acquisition of the third location data acquisition unit's acquisition of the third location data acquisition unit's acquisition of the location change data.
4. The apparatus according to claim 1 or 2, characterized in that, The device further includes a conversion data acquisition unit, which acquires conversion data for correcting the teaching position specified in the robot's operating program based on the posture change data and the position change data.
5. A teaching device for the robot, characterized in that, have: The apparatus according to any one of claims 1 to 4.
6. A robot system, characterized in that, have: Robots; and The apparatus according to any one of claims 1 to 4.
7. A method for correcting the taught position of a robot as the workpiece's configuration relative to the robot changes, using an index relative to a specified position where the workpiece is positioned, characterized in that... Before the configuration change of the workpiece, the robot's hand tip is configured in a first posture and positioned relative to the index in a predetermined positional relationship. After the configuration change, the robot's second position data is obtained when the forehand end is configured in the first posture and positioned relative to the indicator in the specified positional relationship. Based on the first position data and the second position data, posture change data representing the amount of change in the workpiece's posture relative to the robot caused by the configuration change is obtained. Acquire third position data of the robot when the forehand end is configured in a second posture corrected from the first posture using the posture change data, and is positioned relative to the specified positional relationship with respect to the index. Based on the first position data and the third position data, position change data representing the amount of change in the position of the workpiece relative to the robot caused by the configuration change is obtained.
8. A computer program product, characterized in that, In order to correct the robot's taught position when the workpiece's configuration relative to the robot changes, using an index relative to the workpiece being configured in a specified position, the program enables the computer to function as a component of: The first position data acquisition unit acquires the first position data of the robot when the robot's hand tip is configured in a predetermined positional relationship relative to the index in a state where the robot's hand tip is configured in a first posture before the configuration of the workpiece is changed. The second position data acquisition unit acquires the second position data of the robot when the forehand end is configured in the first posture and the robot is configured in the prescribed positional relationship relative to the indicator after the configuration change. The posture change data acquisition unit acquires posture change data, representing the amount of change in the posture of the workpiece relative to the robot caused by the configuration change, based on the first position data and the second position data. The third position data acquisition unit acquires the third position data of the robot when the forehand end is configured in a second posture after correction from the first posture using the posture change data, and is configured relative to the index in the prescribed positional relationship. The position change data acquisition unit acquires position change data, representing the amount of position change of the workpiece relative to the robot caused by the configuration change, based on the first position data and the third position data.
Citation Information
Patent Citations
Teaching position correction device and teaching position correction method
JP2018202559A
Method of correcting locomotion control command of robot, and related apparatus for same
CN109311163A
Robot apparatus and control method of robot apparatus
JP2010076054A