Device for adjusting parameters, robot system, method for adjusting parameters, and computer program
Patent Information
- Application Number
- TW110141851
- Authority / Receiving Office
- TW · TW
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-11-18
- Filing Date
- 2021-11-10
- Publication Date
- 2026-10-11
- Estimated Expiration
- 2041-11-09
AI Technical Summary
Existing methods require specialized knowledge to adjust parameters for comparing workpiece features in image data with workpiece models, limiting accessibility for operators without such expertise.
A device and method that utilize a position detection unit, matching position acquisition unit, and parameter adjustment unit to automatically adjust parameters based on the difference between detected and matched positions, enabling operators without specialized knowledge to align workpiece models with features in image data.
Enables non-specialist operators to accurately adjust parameters, facilitating precise alignment of workpiece models with features, thereby improving the accuracy of workpiece processing operations.
Smart Images

Figure TWG2TB001914784_001 
Figure TWG2TB001914784_002 
Figure TWG2TB001914784_003
Abstract
Description
Technical Field
[0001] This invention relates to an apparatus, robot system, method, and computer program for adjusting parameters, the aforementioned parameters being used to compare workpiece features and workpiece models in image data. Prior Technology
[0002] There is a known technique for obtaining parameters that are used to detect the position of a workpiece as shown in image data captured by a vision sensor (e.g., Patent Document 1). Previous technical documents Patent documents
[0003] Patent Document 1: Japanese Patent Application Publication No. 2-210584 Summary of the Invention
[0004] The problem the invention aims to solve
[0005] Sometimes, parameters are used to compare the workpiece features shown in the image data captured by the vision sensor with the workpiece model that has been modeled, in order to determine the position of the workpiece shown in the image data. In the past, operators with specialized knowledge were required to adjust such comparison parameters. The means to solve the problem
[0006] In one embodiment disclosed herein, the apparatus includes: a position detection unit that uses parameters to determine the position of a workpiece in image data as a detection position, wherein the parameters are used to compare a workpiece model with workpiece features captured by a vision sensor in image data displaying workpiece features; a matching position acquisition unit that acquires the position of the workpiece model in the image data when the workpiece model is configured to match the workpiece features, as a matching position; and a parameter adjustment unit that adjusts the parameters based on data representing the difference between the detection position and the matching position, so that the position detection unit can determine the detection position as the position corresponding to the matching position.
[0007] In other embodiments disclosed herein, the method involves the processor performing the following: using parameters to determine the position of the workpiece in the image data as the detection position. The aforementioned parameters are used to compare the workpiece model and the workpiece features in the image data displaying the workpiece features captured by the vision sensor, and to obtain the position of the workpiece model in the image data when the workpiece model is configured to match the workpiece features, as the matching position. The parameters are adjusted based on data representing the difference between the detection position and the matching position, so that the detection position can be determined as the position corresponding to the matching position. Invention Effects
[0008] According to this disclosure, the parameters are adjusted using the matching position obtained when the workpiece model is matched to the workpiece features in the image data. Therefore, even operators without specialized knowledge related to parameter adjustment can obtain the matching position and thus adjust the parameters. Simple Explanation of the Diagram
[0009] Figure 1 is a schematic diagram of a robot system in one embodiment. Figure 2 is a block diagram of the robot system shown in Figure 1. Figure 3 is a flowchart showing a parameter adjustment method in one implementation. Figure 4 shows an example of the image data generated in step S3 of Figure 3. Figure 5 is an example of the flow chart for step S4 in Figure 3. Figure 6 shows an example of the image data generated in step S11 of Figure 5. Figure 7 shows the state of the workpiece model matching the workpiece features in the image data. Figure 8 is an example of the flow chart for step S5 in Figure 3. Figure 9 shows another example of the flow of step S4 in Figure 3. Figure 10 shows an example of the image data generated in step S11 of Figure 9. Figure 11 shows another example of the image data generated in step S11 of Figure 9. Figure 12 shows an example of the image data generated in step S32 of Figure 9. Figure 13 shows the state of the workpiece model randomly displayed in the image data generated in step S11 of Figure 9. Figure 14 shows the state of the workpiece model in the image data generated in step S11 of Figure 9, according to the pre-defined rules. Figure 15 is another example showing the flow of step S4 in Figure 3. Figure 16 shows an example of the image data generated in step S42 of Figure 15. Figure 17 shows an example of the process of acquiring image data using a vision sensor. Figure 18 is a flowchart showing the parameter adjustment methods for other implementations. Implementation
[0010] Forms used to implement inventions
[0011] The embodiments disclosed herein will now be described in detail with reference to the accompanying drawings. Furthermore, in the various embodiments described below, the same symbols are used for the same elements, and repeated descriptions are omitted. First, referring to Figures 1 and 2, a robot system 10 of one embodiment will be described. The robot system 10 includes a robot 12, a vision sensor 14, and a control device 16.
[0012] In this embodiment, robot 12 is a vertical joint robot and includes a robot base 18, a rotating body 20, a lower arm 22, an upper arm 24, a wrist 26, and an end-connector 28. The robot base 18 is fixed to the floor of the work unit. The rotating body 20 is mounted on the robot base 18 and is configured to rotate around a vertical axis.
[0013] The lower arm portion 22 is configured to rotate about a horizontal axis on the rotating body 20, and the upper arm portion 24 is configured to rotate at the front end of the lower arm portion 22. The wrist portion 26 has a wrist base 26a configured to rotate at the front end of the upper arm portion 24, and a wrist flange 26b configured to rotate about a wrist axis A1 on the wrist base 26a.
[0014] The terminator 28 is detachably mounted on the wrist flange 26b and performs a predetermined operation on the workpiece W. In this embodiment, the terminator 28 is a robotic hand capable of holding the workpiece W and has, for example, multiple fingers that can be opened and closed, or suction parts (negative pressure generating device, suction cup, electromagnet, etc.).
[0015] Servo motors 29 (Fig. 2) are installed in each component of robot 12 (robot base 18, rotating body 20, lower arm 22, upper arm 24, wrist 26). These servo motors 29 rotate around drive shafts in response to commands from control device 16 to each movable component of robot 12 (rotating body 20, lower arm 22, upper arm 24, wrist 26, wrist flange 26b). As a result, robot 12 can move terminator 28 and position it in any location and posture.
[0016] The vision sensor 14 is fixed to the terminator 28 (or wrist flange 26b). For example, the vision sensor 14 is a three-dimensional vision sensor having an image sensor (CMOS, CCD, etc.) and an optical lens (collimating lens, focusing lens, etc.) that guides the image of the subject to be photographed to the image sensor, and is configured to photograph the image of the subject along the optical axis A2 and measure the distance d to the image of the subject.
[0017] As shown in Figure 1, a robot coordinate system C1 and a tool coordinate system C2 are set in the robot 12. The robot coordinate system C1 is a control coordinate system used to control the movements of various movable elements of the robot 12. In this embodiment, the robot coordinate system C1 is fixed relative to the robot base 18 such that its origin is located at the center of the robot base 18, and its z-axis is parallel to the vertical direction.
[0018] On the other hand, the tool coordinate system C2 is a control coordinate system used to control the position of the terminator 28 in the robot coordinate system C1. In this embodiment, the tool coordinate system C2 is set relative to the terminator 28 such that its origin (so-called TCP) is located at the working position (workpiece holding position) of the terminator 28, and its z-axis is parallel (specifically, aligned) with the wrist axis A1.
[0019] When the terminator 28 is moved, the control device 16 sets the tool coordinate system C2 in the robot coordinate system C1 and generates commands for each servo motor 29 of the robot 12 to position the terminator 28 at the position represented by the set coordinate system C2. In this way, the control device 16 can position the terminator 28 at any position in the robot coordinate system C1. Furthermore, in this specification, "position" may refer to both position and orientation.
[0020] On the other hand, a sensor coordinate system C3 is provided in the vision sensor 14. The sensor coordinate system C3 defines the coordinates of each pixel of the image data (or imaging sensor) captured by the vision sensor 14. In this embodiment, the sensor coordinate system C3 is set relative to the vision sensor 14 such that its origin is located at the center of the imaging sensor, and its z-axis is parallel to (specifically, aligned with) the optical axis A2.
[0021] The positional relationship between sensor coordinate system C3 and tool coordinate system C2 is determined through calibration. Therefore, the coordinates of sensor coordinate system C3 and tool coordinate system C2 can be converted to each other using a known transformation matrix (e.g., a homogeneous transformation matrix). Furthermore, since the positional relationship between tool coordinate system C2 and robot coordinate system C1 is known, the coordinates of sensor coordinate system C3 and robot coordinate system C1 can be converted to each other using tool coordinate system C2.
[0022] The control device 16 controls the movements of the robot 12. Specifically, the control device 16 is a computer having a processor 30, a memory 32, and an I / O interface 34. The processor 30 is communicatively connected to the memory 32 and the I / O interface 34 via a bus 36, and can communicate with these components while performing computational processing to implement the various functions described later.
[0023] The memory 32 has RAM or ROM, etc., and stores various data temporarily or permanently. The I / O interface 34 has, for example, an Ethernet port, a USB port, a fiber optic connector, or an HDMI terminal, and communicates with external machines via wired or wireless means under instructions from the processor 30. The servo motors 29 and vision sensors 14 of the robot 12 are communicatively connected to the I / O interface 34.
[0024] Furthermore, a display device 38 and an input device 40 are provided in the control device 16. The display device 38 and the input device 40 are connected to the I / O interface 34 in a communicable manner. The display device 38 has a liquid crystal display or an organic EL display, etc., and displays various data in a visually identifiable manner under the instructions from the processor 30.
[0025] The input device 40 includes a keyboard, mouse, or touch panel, and accepts input data from the operator. Additionally, the display device 38 and the input device 40 can be integrally integrated into the housing of the control device 16, or they can be externally connected to the housing, separate from the housing of the control device 16.
[0026] In this embodiment, the processor 30 causes the robot 12 to perform a workpiece handling operation by using the terminator 28 to grasp and pick up the workpiece W in bulk within the container B. To perform this workpiece handling operation, the processor 30 first uses the vision sensor 14 to photograph the workpiece W inside the container B.
[0027] At this time, the image data ID1 captured by the vision sensor 14 contains the following information: workpiece feature WP, which shows the visual feature points (edges, contours, faces, sides, corners, holes, protrusions, etc.) of each workpiece W that has been captured; distance d, which is the distance from the vision sensor 14 (specifically the origin of the sensor coordinate system C3) to the point on the workpiece W represented by each pixel of the workpiece feature WP.
[0028] Next, the processor 30 obtains parameter PM, which is used to compare the workpiece model WM (of which the workpiece W has been modeled) with the workpiece feature WP (of the workpiece W captured by the vision sensor 14). Then, the processor 30 applies parameter PM to a predetermined algorithm AL (software) and compares the workpiece model WM with the workpiece feature WP according to the algorithm AL, thereby obtaining the position (specifically, position and pose) data (specifically, coordinates) of the workpiece W displayed in the image data ID1 in the sensor coordinate system C3. Then, the processor 30 converts the obtained position in the sensor coordinate system C3 into the robot coordinate system C1, thereby obtaining the position data of the captured workpiece W in the robot coordinate system C1.
[0029] In order to obtain the position of the workpiece W displayed in the image data ID1 with high accuracy, the parameter PM must be optimized. In this embodiment, the processor 30 uses the workpiece feature WP of the workpiece W captured by the vision sensor 14 to optimize the parameter PM.
[0030] The method for adjusting parameter PM will now be described with reference to FIG3. The process shown in FIG3 begins, for example, when control device 16 is started. In addition, at the start time of the process in FIG3, the aforementioned algorithm AL and the pre-prepared parameter PM1 have been stored in memory 32.
[0031] In step S1, the processor 30 determines whether a parameter adjustment command has been received. For example, an operator manually inputs a parameter adjustment command using the input device 40. When the processor 30 receives the parameter adjustment command from the input device 40 through the I / O interface 34, it determines "yes" and proceeds to step S2. On the other hand, if the processor 30 does not receive a parameter adjustment command, it determines "no" and proceeds to step S6.
[0032] In step S2, the processor 30 uses the vision sensor 14 to capture images of the workpiece W. Specifically, the processor 30 moves the robot 12 to position the vision sensor 14 at a capture position where at least one workpiece W falls within the field of view of the vision sensor 14, as shown in FIG1.
[0033] Next, the processor 30 sends a capture command to the vision sensor 14. In response to the capture command, the vision sensor 14 captures images of the workpiece W to obtain image data ID1. As described above, image data ID1 contains information about the workpiece features WP of each captured workpiece W and the aforementioned distance d. The processor 30 obtains image data ID1 from the vision sensor 14. Each pixel of image data ID1 is represented in coordinates of the sensor coordinate system C3.
[0034] In step S3, the processor 30 generates image data ID2 displaying the workpiece feature WP. Specifically, the processor 30 generates image data ID2 based on image data ID1 obtained from the vision sensor 14, which serves as a graphical user interface (GUI) for the operator to visually identify the workpiece feature WP. An example of this image data ID2 is shown in Figure 4.
[0035] In the example shown in Figure 4, the workpiece feature WP is displayed as a group of three-dimensional points in image data ID2. Furthermore, a sensor coordinate system C3 is set in image data ID2, and each pixel of image data ID2 is represented by the coordinates of sensor coordinate system C3, just like the image data ID1 captured by vision sensor 14.
[0036] Furthermore, since the plurality of points constituting the workpiece feature WP each possess the aforementioned distance d information, they can be represented using the three-dimensional coordinates (x, y, z) of the sensor coordinate system C3. That is, in this embodiment, the image data ID2 is three-dimensional image data. Additionally, while Figure 4 shows an example with a total of three workpiece features WP displayed in the image data ID2 for ease of understanding, it is intended to be understood that more workpiece features WP (i.e., workpiece W) can actually be displayed.
[0037] The processor 30 can also generate image data ID2 as a GUI with better visual recognition than image data ID1, and generate image data different from image data ID1. For example, the processor 30 can also generate image data ID2 by setting the area other than the workpiece feature WP displayed in image data ID1 to be colorless, and coloring the workpiece feature WP (black, blue, red, etc.), thereby making it easy for the operator to identify the workpiece feature WP.
[0038] The processor 30 causes the display device 38 to display the generated image data ID2. Thus, the operator can visually identify the image data ID2 as shown in FIG. 4. In this embodiment, the processor 30 functions as an image generation unit 52 (FIG. 2), which generates image data ID2 displaying the workpiece feature WP.
[0039] Alternatively, the processor 30 can update the image data ID2 displayed on the display device 38 by changing the viewing orientation of the workpiece W displayed on the image data ID2 in response to the operator's operation of the input device 40 (e.g., like 3D CAD data). In this case, the operator can visually identify the workpiece W displayed in the image data ID2 from the desired orientation by operating the input device 40.
[0040] Referring again to Figure 3, in step S4, the processor 30 executes a program to obtain the matching position. This step S4 will be explained with reference to Figure 5. In step S11, the processor 30 further displays the workpiece model WM in the image data ID2 generated in step S3 above. In this embodiment, the workpiece model WM is 3D CAD data.
[0041] Figure 6 shows an example of the image data ID2 generated in step S11. In step S11, the processor 30 configures the workpiece model WM in the virtual space defined by the sensor coordinate system C3, and generates image data ID2 containing the workpiece feature WP of the workpiece W and the virtual space of the workpiece model WM. Furthermore, the processor 30 sets the workpiece coordinate system C4 in the sensor coordinate system C3 along with the workpiece model WM. This workpiece coordinate system C4 is a coordinate system that defines the position (specifically, the position and orientation) of the workpiece model WM.
[0042] In this embodiment, in step S11, the processor 30 uses the parameter PM 1, which is stored in memory 32 at the start time of step S11, to determine the position of the workpiece W in the image data ID2 as the detection position DP 1. When determining the detection position DP 1, the processor 30 applies the parameter PM 1 to the algorithm AL, and compares the workpiece model WM with the workpiece feature WP displayed in the image data ID2 according to the algorithm AL.
[0043] More specifically, the processor 30 uses the algorithm AL with parameter PM 1 to gradually change the position of the workpiece model WM in the virtual space defined by the sensor coordinate system C3 by a predetermined displacement E, in order to retrieve the position of the workpiece model WM whose feature points (edges, contours, faces, sides, corners, holes, protrusions, etc.) are consistent with the feature points of the workpiece feature WP corresponding to those feature points.
[0044] Then, when the feature points of the workpiece model WM match the feature points of the corresponding workpiece feature WP, the processor 30 detects the coordinates (x, y, z, W, P, R) of the workpiece coordinate system C4 set in the workpiece model WM in the sensor coordinate system C3, and uses this as the detection position DP1. Here, the coordinates (x, y, z) represent the origin position of the workpiece coordinate system C4 in the sensor coordinate system C3, and the coordinates (W, P, R) represent the pose (yaw, pitch, roll) of the workpiece coordinate system C4 relative to the sensor coordinate system C3.
[0045] The parameter PM1 mentioned above is used to compare the workpiece model WM and the workpiece feature WP. It includes, for example, the displacement E mentioned above, the size SZ of the window that defines the range of the feature points to be compared in the image data ID2, the image coarseness (or resolution) σ during comparison, and the data of which feature points of the workpiece model WM and the workpiece feature WP are to be compared (for example, the data of the "outline" of the workpiece model WM and the workpiece feature WP to be compared).
[0046] Thus, the processor 30 uses parameter PM 1 to compare the workpiece model WM with the workpiece feature WP, thereby obtaining the detection position DP 1 (x, y, z, W, P, R). Therefore, in this embodiment, the processor 30 functions as a position detection unit 54 (Fig. 2) that uses parameter PM 1 to determine the detection position DP 1.
[0047] Next, the processor 30 functions as an image generation unit 52, and displays the workpiece model WM at the acquired detection position DP 1 in the image data ID2. Specifically, the processor 30 displays the workpiece WM at the following position: the position disposed on the coordinates (x, y, z, W, P, R) of the sensor coordinate system C3 detected as the detection position DP 1 and represented by the workpiece coordinate system C4.
[0048] Thus, as shown in Figure 6, in image data ID2, three workpiece models WM are displayed at positions corresponding to the three workpiece features WP. Here, if parameter PM 1 is not optimized, as shown in Figure 6, the obtained detection position DP 1 (i.e., the position of the workpiece model WM shown in Figure 6) may deviate from the workpiece feature WP.
[0049] Referring again to Figure 5, in step S12, the processor 30 determines whether input data IP1 (first input data) has been accepted. The aforementioned input data IP1 is data used to displace the workpiece model WM in image data ID2. Specifically, in order to visually recognize the image data ID2 shown in Figure 6 displayed by the display device 38, and to move the workpiece model WM displayed in the image data ID2 to a position consistent with the corresponding workpiece feature WP, the operator operates the input device 40 to input input data IP1.
[0050] When the processor 30 receives input data IP1 from the input device 40 through the I / O interface 34, it determines "yes" and proceeds to step S13. On the other hand, if the processor 30 does not receive input data IP1 from the input device 40, it determines "no" and proceeds to step S14. Thus, in this embodiment, the processor 30 functions as an input receiving unit 56 (FIG. 2), which receives input data IP1 used to displace the position of the workpiece model WM in the image data ID2.
[0051] In step S13, the processor 30 displaces the position of the workpiece model WM displayed in the image data ID2 in response to the input data IP1. Specifically, the processor 30 functions as an image generation unit 52, updating the image data ID2 by displacing the workpiece model WM in response to the input data IP1 within the virtual space defined by the sensor coordinate system C3. Thus, the operator can visually recognize the image data ID2 displayed on the display device 38 while operating the input device 40, thereby displacing the workpiece model WM in the image data ID2 in a manner close to the corresponding workpiece feature WP.
[0052] In step S14, the processor 30 determines whether the input data IP2 for obtaining the matching position MP has been accepted. Specifically, when the operator moves the workpiece model WM in step S13, and the position of the workpiece model WM in the image data ID2 finally matches the position of the workpiece feature WP, the operator inputs the input data IP2 for obtaining the matching position MP through the input device 40.
[0053] Figure 7 shows the state where the position of the workpiece model WM in image data ID2 matches the workpiece feature WP. When the processor 30 receives input data IP2 from the input device 40 through the I / O interface 34, it determines "yes" and proceeds to step S15. On the other hand, if it does not receive input data IP2 from the input device 40, it determines "no" and returns to step S12. Thus, the processor 30 will cycle through steps S12 to S14 until it determines "yes" in step S14.
[0054] In step S15, the processor 30 obtains the position of the workpiece model WM as the matching position MP. The aforementioned position of the workpiece model WM is the position of the workpiece model WM in the image data ID2 when the input data IP2 is received. As mentioned above, when the processor 30 receives the input data IP2, as shown in Figure 7, in the image data ID2, the workpiece model WM is consistent with the corresponding workpiece feature WP.
[0055] The processor 30 obtains the coordinates (x, y, z, W, P, R) of the workpiece coordinate system C4 set in the sensor coordinate system C3 for each workpiece model WM shown in FIG. 7 as the matching position MP, and stores them in the memory 32. Thus, in this embodiment, the processor 30 functions as a matching position acquisition unit 58 (FIG. 2) for acquiring the matching position MP.
[0056] Referring again to Figure 3, in step S5, the processor 30 executes a procedure to adjust the parameter PM. This step S5 will be explained with reference to Figure 8. In step S21, the processor 30 sets the update number "n" of the specific output parameter PM n to "1".
[0057] In step S22, the processor 30 functions as a position detection unit 54 and obtains the detection position DPn. Specifically, the processor 30 uses the parameter PMn stored in memory 32 at the start time of this step S22 to calculate the detection position DPn. Assuming that the start time of this step S22 is set to n=1 (that is, when step S22 is executed for the first time), the processor 30 uses the parameter PM1 to calculate the detection position DP1 shown in FIG6, just like in step S11 above.
[0058] In step S23, the processor 30 acquires data Δn representing the difference, which is the difference between the detection position DPn obtained in the most recent step S22 and the matching position MP obtained in step S4. This data Δn is, for example, the value of an objective function representing the difference between the detection position DPn and the matching position MP in the sensor coordinate system C3. This objective function can be, for example, a function representing the sum, sum of squares, average, or average of the differences between a pair of corresponding detection positions DPn and matching positions MP. The processor 30 stores the acquired data Δn in memory 32.
[0059] Assuming that the start time of step S23 is set to n=1 (i.e., when step S23 is executed for the first time), processor 30 obtains data Δ1 representing the difference between the detection position DP1 and the matching position MP. This data Δ1 represents the difference between the position of the sensor coordinate system C3 of the workpiece model WM shown in Figure 6 (i.e., the detection position DP1) and the position of the sensor coordinate system C3 of the workpiece model WM shown in Figure 7 (i.e., the matching position MP).
[0060] In step S24, the processor 30 determines whether the value of the data Δn obtained in the most recent step S23 is below a predefined threshold Δth (Δn ≦ Δth). This threshold Δth is defined by the operator and is stored in memory 32 beforehand. If Δn ≦ Δth, the processor 30 determines "yes", ends step S5, and proceeds to step S6 in Figure 3.
[0061] When the determination is "yes" in step S24, the detection position DPn obtained in the most recent step S22 is essentially the same as the matching position MP, so it can be considered that the parameter PMn has been optimized. On the other hand, if Δn>Δth, the processor 30 determines "no" and proceeds to step S25.
[0062] In step S25, the processor 30 determines, based on the data Δn obtained in the most recent step S23, the amount of change αn of the parameter PMn that reduces the difference between the detection position DPn and the matching position MP in the image data ID2. Specifically, the processor 30 determines, based on the data Δn obtained in the most recent step S23, the amount of change αn of the parameter PMn (e.g., displacement E, size SZ, or image coarseness σ) that will cause the value of the data Δn obtained in step S23 to converge toward zero when repeating the loop of steps S22 to S28 in FIG8. The processor 30 can calculate this amount of change αn by using the data Δn and a predetermined algorithm.
[0063] In step S26, processor 30 updates parameter PMn. Specifically, processor 30 changes parameter PMn (e.g., displacement E, size SZ, or image coarseness σ) by the amount of change αn determined in the most recent step S25, thereby updating parameter PMn to a new parameter PMn+1. Processor 30 stores the updated parameter PMn+1 in memory 32. Assuming that the start time of step S26 is set to n=1, processor 30 updates parameter PM2 by changing the previously prepared parameter PM1 by only the amount of change α1.
[0064] In step S27, the processor 30 increments the update number "n" of the specific output parameter PM n by "1" (n = n + 1). In step S28, the processor 30 determines whether the update number "n" of the specific output parameter PM n has exceeded the maximum value n MAX (n > n MAX), or whether the change α n determined in the most recent step S25 has fallen below the predefined threshold α th (α n ≦ α th). This maximum value n MAX and threshold α th are predefined by the operator and stored in memory 32.
[0065] Here, as shown in Figure 8, the processor 30 will repeat the loop of steps S22 to S28 until it determines "yes" in step S24 or S28. In step S25 above, since the processor 30 determines the change amount αn in a way that can reduce the difference between the detection position DPn and the matching position MP (that is, the value of data Δn), the value of data Δn obtained in step S23 and the change amount αn determined in step S25 will become smaller and smaller with each repetition of the loop of steps S22 to S28.
[0066] Therefore, when the change αn falls below the threshold αth, the parameter PMn can be considered optimal. On the other hand, even if steps S22 to S28 are repeated multiple times, there will still be cases where the change αn converges to a certain value (>αth) and does not fall below the threshold αth. In such cases, the parameter PMn can also be considered sufficiently optimal.
[0067] Accordingly, in step S28, processor 30 determines whether n > n MAX or α n ≦ α th. If n > n MAX or α n ≦ α th, it determines "yes" and ends step S5. On the other hand, if n ≦ n MAX and α n > α th, processor 30 determines "no" and returns to step S22, and uses the updated parameter PM n + 1 to execute the loop of steps S22 to S28.
[0068] Thus, until the processor 30 determines "yes" in step S24 or S28, it repeatedly executes a series of actions from S22 to S28, thereby updating and adjusting the parameter PMn based on the data Δn. Therefore, in this embodiment, the processor 30 functions as a parameter adjustment unit 60 (FIG. 2) that adjusts the parameter PMn based on the data Δn.
[0069] When the processor 30 functions as a position detection unit 54 and obtains the detection position DP n from the image data ID2, it can obtain the detection position DP n in the image data ID2 by using the parameters PM n that have been optimized as described above, and use it as the position corresponding to (for example, substantially consistent with) the matching position MP.
[0070] Referring again to Figure 3, in step S6, the processor 30 determines whether an action end command has been received. For example, an operator manually inputs an action end command through the input device 40. When the processor 30 receives the action end command from the input device 40 via the I / O interface 34, it determines "yes" and terminates the operation of the control device 16. On the other hand, if no action end command has been received, the processor 30 determines "no" and returns to step S1.
[0071] For example, after step S5, the operator changes the configuration of the workpiece W in container B as shown in Figure 1 without inputting an action end command. Then, the operator operates input device 40 to input the aforementioned parameter adjustment command. In this way, processor 30 determines "yes" in step S1 and executes steps S2-S5 to adjust parameter PMn for the workpiece W in container B after its configuration has been changed. Thus, steps S2-S5 are executed whenever the configuration of workpiece W in container B is changed, thereby optimizing parameter PMn for workpieces W positioned in various locations.
[0072] As described above, in this embodiment, the processor 30 functions as an image generation unit 52, a position detection unit 54, an input receiving unit 56, a matching position acquisition unit 58, and a parameter adjustment unit 60, and adjusts the parameter PM. Thus, the image generation unit 52, the position detection unit 54, the input receiving unit 56, the matching position acquisition unit 58, and the parameter adjustment unit 60 constitute a device 50 for adjusting the parameter PM (FIG. 2).
[0073] According to this device 50, the matching position MP obtained when the workpiece model WM is matched with the workpiece feature WP in the image data ID2 is used to adjust the parameter PM. Therefore, even operators without specialized knowledge related to the adjustment of parameter PM can obtain the matching position MP and thereby adjust the parameter PM.
[0074] Furthermore, in this embodiment, the processor 30 repeatedly executes a series of actions, S22 to S28, in FIG8, thereby adjusting the parameter PMn. Based on this configuration, the parameter PMn can be adjusted automatically and optimized quickly.
[0075] Furthermore, in this embodiment, the processor 30 functions as an image generation unit 52, further displaying the workpiece model WM in the image data ID2 (step S11), and adjusting the position of the workpiece model WM displayed in the image data ID2 in response to the input data IP1 (step S13). Additionally, when the workpiece model WM is configured to match the workpiece feature WP in the image data ID2, the processor 30 functions as a matching position acquisition unit 58, acquiring the matching position MP (step S15).
[0076] Based on this configuration, the operator can simultaneously operate the input device 40 while visually recognizing the image data ID2 displayed on the display device 38, thereby easily aligning the workpiece model WM and the workpiece feature WP in the image data ID2, and thus obtaining the matching position MP. Therefore, even operators without specialized knowledge related to adjusting the parameter PM can easily obtain the matching position MP simply by aligning the workpiece model WM with the workpiece feature WP on the image.
[0077] After adjusting the parameter PMn as described above, the processor 30 uses the adjusted parameter PMn to cause the robot 12 to perform a task on the workpiece W (specifically, a workpiece handling task). The following describes the task performed by the robot 12 on the workpiece W. When the processor 30 receives a task start command from the operator, the host controller, or the computer program, it causes the robot 12 to move, positioning the vision sensor 14 to a position where it can capture images of the workpiece W inside the container B, and then causes the vision sensor 14 to move to capture images of the workpiece W.
[0078] At this time, the image data ID3 captured by the vision sensor 14 shows the workpiece feature WP of at least one workpiece W. The processor 30 obtains the image data ID3 from the vision sensor 14 through the I / O interface 34, and generates motion instructions CM for the robot 12 to move based on the image data ID3.
[0079] More specifically, the processor 30 functions as a position detection unit 54, applying the adjusted parameter PMn to the algorithm AL, and comparing the workpiece model WM with the workpiece feature WP displayed in the image data ID3 according to the algorithm AL. As a result, the processor 30 obtains the detection position DP ID3 in the image data ID3 using the coordinates of the sensor coordinate system C3.
[0080] Next, the processor 30 converts the acquired detection position DP ID3 into the robot coordinate system C1 (or tool coordinate system C2), thereby obtaining the position data PD of the photographed workpiece W in the robot coordinate system C1 (or tool coordinate system C2). Then, the processor 30 generates motion commands CM for controlling the robot 12 based on the acquired position data PD, and controls each servo motor 29 according to the motion commands CM, thereby enabling the robot 12 to perform workpiece handling operations by grasping and picking up the workpiece W with the acquired position data PD via the terminator 28.
[0081] In this embodiment, the processor 30 functions as an instruction generation unit 62 that generates motion instructions CM. Since the correct detection position DP ID3 (i.e., position data PD) can be detected by using the adjusted parameter PM n, the processor 30 enables the robot 12 to perform workpiece handling operations with high precision.
[0082] Next, referring to FIG9, other examples of step S4 (i.e., the procedure for obtaining the matching position) will be described. Furthermore, in the flowchart shown in FIG9, the same step numbers are given for procedures identical to those shown in FIG5, and repeated descriptions are omitted. In step S4 shown in FIG9, the processor 30 executes steps S31 and S32 after step S11.
[0083] Specifically, in step S31, the processor 30 determines whether input data IP3 (second input data) for deleting workpiece model WM from image data ID2 has been accepted, or input data IP4 (second input data) for adding other workpiece models WM to image data ID2 has been accepted.
[0084] Here, in step S11 above, the processor 30 may incorrectly display the workpiece model WM in an inappropriate position. Figure 10 shows an example of image data ID2 showing the workpiece model WM in an inappropriate position. In image data ID2 shown in Figure 10, a feature F of a component different from the workpiece W is captured.
[0085] When processor 30 uses parameter PM 1 to determine the detection position DP 1, it may mistakenly identify feature F as workpiece feature WP of workpiece W and thus determine the detection position DP 1 corresponding to feature F. In such cases, the operator must delete the workpiece model WM displayed at the position corresponding to feature F from image data ID2.
[0086] On the other hand, in step S11 above, the processor 30 may fail to recognize the workpiece feature WP displayed in image data ID2, and thus fail to display the workpiece model WM. An example of this is shown in Figure 11. In image data ID2 shown in Figure 11, among the three workpiece features WP, the workpiece model WM corresponding to the upper right workpiece feature WP is not displayed. In such cases, the operator must add the workpiece model WM to image data ID2.
[0087] Therefore, in this embodiment, the processor 30 is configured to accept input data IP3 for deleting workpiece model WM from image data ID2, and input data IP4 for adding other workpiece models WM to image data ID2. Specifically, when image data ID2 as shown in FIG10 is displayed in step S11, the operator visually identifies the image data ID2 while operating the input device 40 to input the input data IP3 specifying the workpiece model WM to be deleted.
[0088] Furthermore, when the image data ID2 shown in FIG11 is displayed in step S11, the operator visually identifies the image data ID2 while operating the input device 40 to input input data IP4, which specifies the position (e.g., coordinates) of the workpiece model WM to be added in the image data ID2 (sensor coordinate system C3).
[0089] When the processor 30 receives input data IP3 or IP4 from the input device 40 through the I / O interface 34 in step S31, it determines "yes" and proceeds to step S32. On the other hand, if it does not receive input data IP3 or IP4 from the input device 40, it determines "no" and proceeds to step S12.
[0090] In step S32, the processor 30 functions as an image generation unit 52, deleting the displayed workpiece model WM from image data ID2 or adding other workpiece models WM to image data ID2 for display, depending on the accepted input data IP3 or IP4. For example, when input data IP3 is accepted, the processor 30 deletes the workpiece model WM displayed at the position corresponding to feature F from image data ID2 shown in FIG10. As a result, as shown in FIG12, image data ID2 can be updated.
[0091] On the other hand, when input data IP4 has been received, processor 30 appends and displays workpiece model WM at the position specified by input data IP4 in image data ID2 as shown in FIG11. As a result, as shown in FIG6, a total of 3 workpiece models WM will be displayed in image data ID2 to correspond to all workpiece features WP.
[0092] After step S32, processor 30 executes steps S12 to S15 in the same manner as in the flowchart of FIG5. Additionally, in the flowchart shown in FIG9, if processor 30 determines "no" in step S14, it returns to step S31. As described above, according to this embodiment, the operator can delete or add processing to the part model WM as needed from the image data ID2 displayed in step S11.
[0093] Additionally, in step S11 of Figure 9, the processor 30 may also display the workpiece model WM at a randomly determined position in the image data ID2. Figure 13 shows an example of the processor 30 randomly displaying the workpiece model WM in the image data ID2. In this case, the processor 30 may also randomly determine the number of workpiece models WM to be configured in the image data ID2, or the operator may predetermine the number.
[0094] Alternatively, in step S11 of Figure 9, the processor 30 may also display the workpiece model WM in image data ID2 at positions determined according to predefined rules. For example, this rule may be defined as follows: the workpiece models WM are arranged in a grid pattern at equal intervals in image data ID2. Figure 14 shows an example of the processor 30 displaying the workpiece model WM in image data ID2 according to the rule of arranging it in a grid pattern at equal intervals.
[0095] After the processor 30 randomly or according to a predetermined rule configures the workpiece model WM in step S11, the operator can input the input data IP3 or IP4 to the input device 40 in step S31, thereby deleting or adding the workpiece model WM displayed in the image data ID2 as needed.
[0096] Next, referring to FIG15, another example of step S4 (the procedure for obtaining the matching position) described above will be explained. In step S4 shown in FIG15, the processor 30 executes steps S41 and S42 after step S11. In step S41, the processor 30 determines whether there is a workpiece model WM in the image data ID2 that satisfies the condition G1 for setting as a deletion object.
[0097] Specifically, processor 30 calculates the number N of points (or pixels that capture the workpiece feature WP) that constitute the three-dimensional point group within the occupied area of each workpiece model WM displayed in image data ID2. Then, in this step S41, processor 30 determines whether the calculated number N is below a pre-defined threshold Nth (N≦Nth) for each workpiece model WM. If there is a workpiece model WM that is determined to be below Nth, then that workpiece model WM is designated as a deletion object and determined to be "yes". That is, in this embodiment, condition G1 is defined as the number N being below the threshold Nth.
[0098] For example, suppose processor 30 generates image data ID2 as shown in FIG14 in step S11. In this case, among the workpiece models WM displayed in image data ID2, the workpiece model WMs that are the second and fourth from the left in the above column, and the first, third, and fourth from the left in the following column, have fewer workpiece feature WP points (pixels) in their exclusive areas. Therefore, in this case, processor 30 identifies these five workpiece models WM in total as deletion targets in step S11 and determines "yes".
[0099] In step S42, the processor 30 functions as an image generation unit 52, automatically deleting the workpiece models WM that were designated as deletion targets in step S41 from the image data ID2. In the example shown in FIG14, the processor 30 automatically deletes a total of 5 workpiece models WM that were designated as deletion targets from the image data ID2. FIG16 shows an example of the image data ID2 after these 5 workpiece models WM have been deleted. Thus, in this embodiment, the processor 30 automatically deletes the displayed workpiece models WM from the image data ID2 according to the predefined condition G1.
[0100] Alternatively, processor 30 may also determine in step S41 whether condition G2 for appending workpiece model WM to image data ID2 is met. For example, suppose processor 30 generates image data ID2 as shown in FIG11 in step S11. Processor 30 determines for each workpiece feature WP whether it has a point (or pixel) contained in a proprietary region of workpiece model WM.
[0101] Then, if there is a workpiece feature WP that does not have a point (pixel) contained in the workpiece model WM, the processor 30 designates the workpiece feature WP as a model addition object and determines it as "yes". That is, in this embodiment, condition G2 is defined as: there exists a workpiece feature WP that does not have a point (pixel) contained in the workpiece model WM. For example, in the case shown in FIG11, in this step S41, the processor 30 designates the workpiece feature WP shown in the upper right corner of the image data ID2 as a model addition object and determines it as "yes".
[0102] Then, in step S42, the processor 30 functions as an image generation unit 52, and automatically adds the workpiece model WM to the image data ID2 at the position corresponding to the workpiece feature WP, which was specified as the model addition object in step S41. As a result, for example, as shown in FIG6, the workpiece model WM is added.
[0103] In this embodiment, the processor 30 adds and displays the workpiece model WM to the image data ID2 according to the predefined condition G2. According to the process shown in Figure 15, since the processor 30 can automatically delete or add workpiece models WM according to conditions G1 or G2, the operator's workload can be reduced.
[0104] Next, referring to Figures 17 and 18, other functions of the robot system 10 will be described. In this embodiment, the processor 30 first executes the image acquisition procedure shown in Figure 17. In step S51, the processor 30 sets the number "i" of the image data ID1_i captured by the vision sensor 14 to "1".
[0105] In step S52, the processor 30 determines whether a shooting start command has been received. For example, an operator inputs a shooting start command through the input device 40. When the processor 30 receives the shooting start command from the input device 40 through the I / O interface 34, it determines "yes" and proceeds to step S53. On the other hand, if the processor 30 does not receive a shooting start command, it determines "no" and proceeds to step S56.
[0106] In step S53, the processor 30, in the same manner as in step S2, uses the vision sensor 14 to capture an image of the workpiece W. As a result, the vision sensor 14 captures the i-th image data ID1_i and supplies it to the processor 30. In step S54, the processor 30 stores the most recently acquired i-th image data ID1_i from step S53 along with the identification number "i" in memory 32. In step S55, the processor 30 increments the identification number "i" by "1" (i = i + 1).
[0107] In step S56, the processor 30 determines whether a shooting end command has been accepted. For example, an operator inputs a shooting end command using the input device 40. When the processor 30 accepts the shooting end command, it determines "yes" and ends the process shown in FIG17. On the other hand, if the processor 30 does not accept the shooting end command, it determines "no" and returns to step S52.
[0108] For example, after step S55, the operator changes the arrangement of the workpiece W in container B as shown in Figure 1 without inputting a shooting end command. Then, the operator uses input device 40 to input a shooting start command. In this case, processor 30 determines "yes" in step S52, and executes steps S53-S55 for the workpiece W in container B after its arrangement has changed, to obtain the (i+1)th image data ID1_i+1.
[0109] After the process shown in Figure 17 is completed, the processor 30 executes the process shown in Figure 18. Furthermore, in the process shown in Figure 18, the same step numbers are appended to procedures identical to those shown in Figures 3 and 17, and repeated descriptions are omitted. If the processor 30 determines "yes" in step S1, it proceeds to step S51; otherwise, if it determines "no," it proceeds to step S6.
[0110] Then, if the processor 30 determines "yes" in step S6, the process shown in FIG18 ends; otherwise, if it determines "no", it returns to step S1. In step S51, the processor 30 sets the identification number "i" of the image data ID1_i to "1".
[0111] In step S62, the processor 30 generates image data ID2_i displaying the workpiece feature WP. Specifically, the processor 30 reads the i-th image data ID1_i identified by the identification number "i" from the memory 32. Furthermore, based on the i-th image data ID1_i, the processor 30 sets the workpiece feature WP displayed by the i-th image data ID1_i as a GUI that can be visually recognized by the operator, and generates the i-th image data ID2_i, as shown in FIG4.
[0112] After step S62, the processor 30 uses the i-th image data ID2_i to sequentially execute the above steps S4 and S5, and optimizes the parameter PMn for the i-th image data ID2_i. Next, the processor 30 executes step S55, incrementing the identification number "i" by "1" (i=i+1).
[0113] In step S64, the processor 30 determines whether the identification number "i" has exceeded the maximum value i MAX (i>i MAX). This maximum value i MAX is the total number of image data ID1_i obtained by the processor 30 in the process of FIG17. In step S64, if i>i MAX, the processor 30 determines "yes" and ends the process shown in FIG18; on the other hand, if i≦i MAX, it determines "no" and returns to step S62. Thus, the processor 30 repeats the loop of steps S62, S4, S5, S55, and S64 until it determines "yes" in step S64, adjusting the parameter PMn for all image data ID2_i (i=1,2,3,…i MAX).
[0114] As described above, in this embodiment, the process shown in FIG17 is used to accumulate a plurality of image data ID1_i of workpieces W positioned at various locations. Then, in the process shown in FIG18, the accumulated plurality of image data ID1_i are used to adjust the parameter PM. Based on this configuration, the parameter PM can be optimized for workpieces W positioned at various locations.
[0115] Alternatively, in the process shown in Figure 17, the processor 30 may omit step S52 and instead execute step S64 to determine whether the identification number "i" has exceeded the maximum value i MAX (i>i MAX). In this case, the threshold i MAX used in step S64 is a pre-defined integer greater than 2 by the operator.
[0116] Then, if the processor 30 determines "yes" in step S64, it ends the process shown in FIG17; otherwise, if it determines "no," it returns to step S53. In this variation of the process in FIG17, the processor 30 can also change the position (specifically, the position and orientation) of the vision sensor 14 each time step S53 is executed, and photograph the workpiece W from different positions and viewing directions A2. According to this variation, even if the operator does not manually change the configuration of the workpiece W, it can still automatically acquire and accumulate image data ID1_i of the workpiece W with various configurations.
[0117] Alternatively, the processor 30 can also execute the processes shown in Figures 3, 17, and 18 according to a computer program pre-stored in memory 32. This computer program contains command statements for causing the processor 30 to execute the processes shown in Figures 3, 17, and 18, and is pre-stored in memory 32.
[0118] In the above embodiment, it is described that the processor 30 obtains the image data ID1 of the physical workpiece W using the actual robot 12 and the vision sensor 14. However, the processor 30 can also obtain the image data ID1 by virtually photographing the workpiece model WM using the vision sensor model 14M, which has been modeled as the vision sensor 14.
[0119] In this configuration, the processor 30 can also configure a robot model 12M (modeled from the robot 12) and a vision sensor model 14M (fixed to the terminator model 28M of the robot model 12M) within a virtual space, allowing the robot model 12M and the vision sensor model 14M to simulate movements within the virtual space, thereby executing the processes shown in Figures 3, 17, and 18 (i.e., simulation). Based on this configuration, parameters PM can be adjusted through so-called offline movements without using the actual robot 12 and vision sensor 14.
[0120] Alternatively, the input receiving unit 56 can be omitted from the aforementioned device 50. In this case, steps S12 to S14 of FIG. 5 can also be omitted from the processor 30, and the matching position MP can be automatically obtained from the image data ID2 generated in step S11. For example, the learning model LM can be stored in memory 32 in advance, and the learning model LM displays the correlation between the workpiece feature WP shown in the image data ID and the matching position MP.
[0121] The machine learning device can be repeatedly fed a learning dataset, such as an image data ID displaying at least one workpiece feature WP, and the matching position MP within that image data ID, to construct a learning model LM (e.g., supervised learning). The processor 30 inputs the image data ID2 generated in step S11 into the learning model LM. In this way, the learning model LM outputs the matching position MP corresponding to the workpiece feature WP displayed by the input image data ID2. Thus, the processor 30 can automatically obtain the matching position MP from the image data ID2. Furthermore, the processor 30 can also be configured to execute the functions of this machine learning device.
[0122] Furthermore, the above embodiment describes the case where the workpiece feature WP is composed of a group of three-dimensional points in the image data ID2. However, it is not limited to this. In step S3, the processor 30 may also generate a distance image from the image data ID2, wherein the distance image represents the color or hue (saturation) of each pixel of the workpiece feature WP that changes according to the distance d.
[0123] Furthermore, in step S3, the processor 30 may also generate image data for display on the display device 38 from the image data ID1 already obtained from the vision sensor 14 without generating new image data ID2, and display it on the display device 38. Additionally, the processor 30 may also use image data ID1 to execute steps S3 and S4.
[0124] Alternatively, the image generation unit 52 can be omitted from the aforementioned device 50, and the function of the image generation unit 52 can be requested from an external machine (e.g., the vision sensor 14 or a PC). For example, the processor 30 can also use the image data ID1 captured by the vision sensor 14 as the original data form without any changes, and adjust the parameter PM. In this case, the vision sensor 14 becomes responsible for the function of the image generation unit 52.
[0125] The vision sensor 14 is not limited to a three-dimensional vision sensor, but can also be a two-dimensional camera. In this case, the processor 30 can also generate two-dimensional image data ID2 based on the two-dimensional image data ID1, and execute steps S3 and S4. In this case, the sensor coordinate system C3 is a two-dimensional coordinate system (x, y).
[0126] In the above embodiment, the case where device 50 is assembled with control device 16 is described. However, it is not limited to this; device 50 may also be assembled with a computer (e.g., a desktop PC, tablet terminal device, or smartphone, or a teaching device for teaching robot 12) independent of control device 16. In this case, the independent computer may also have a processor that functions as device 50 and be communicatively connected to the I / O interface 34 of control device 16.
[0127] Furthermore, the aforementioned terminator 28 is not limited to a robotic arm, but can be any device used for performing operations on a workpiece (laser processing head, welding torch, paint applicator, etc.). This disclosure has been described above through embodiments, but these embodiments are not intended to limit the scope of the invention for which a patent is sought.
[0128] 10: Robotic Systems 12: Robot 14: Vision Sensor 16: Control device 18: Robot Base 20:Spiral body 22: Lower arm 24: Upper arm 26: Wrist 26a: Wrist base 26b: Wrist flange 28: Terminator 29: Servo Motor 30: Processor 32: Memory 34:I / O interface 36: Busbar 38: Display device 40: Input device 50: Device 52: Image Generation Unit 54: Position Detection Department 56: Input Acceptance Department 58: Matching Position Acquisition Section 60: Parameter Adjustment Section 62: Instruction Generation Department A1: Wrist pivot A2: Optical axis (line of sight) B: Container C1: Robot Coordinate System C2: Tool Coordinate System C3: Sensor Coordinate System C4: Workpiece Coordinate System F: Features ID2: Image data S1~S6, S11~S15, S21~S28, S31, S32, S41, S42, S51~S56, S62, S64: Steps W: Workpiece WM: Workpiece Model WP: Workpiece Features x: x-axis y: y-axis z: z-axis
Claims
1. An apparatus for adjusting parameters, comprising: a position detection unit that applies parameters to a comparison algorithm and compares a workpiece model with workpiece features according to the algorithm to determine the position of the workpiece in image data as a detection position, wherein the parameters are used to compare the workpiece model (with the workpiece modeled as it is displayed) with the workpiece features captured by a vision sensor in the aforementioned image data; a matching position acquisition unit that acquires the position of the workpiece model in the aforementioned image data when the workpiece model is configured to match the workpiece features, and uses it as a matching position; and a parameter adjustment unit that adjusts the parameters applied to the algorithm based on data representing the difference between the detection position and the matching position, so that the position detection unit can determine the detection position as the position corresponding to the matching position.
2. The apparatus for adjusting parameters as described in claim 1 further includes an image generation unit for generating the aforementioned image data.
3. The apparatus for adjusting parameters as claimed in claim 2, wherein the aforementioned image generation unit further displays the aforementioned workpiece model in the aforementioned image data, the aforementioned apparatus further includes an input receiving unit for receiving first input data, the aforementioned first input data being data for displacing the position of the aforementioned workpiece model in the aforementioned image data, and the aforementioned matching position obtaining unit obtaining the aforementioned matching position when the aforementioned image generation unit displaces the position of the aforementioned workpiece model displayed in the aforementioned image data in accordance with the aforementioned first input data, and configures the workpiece model to be consistent with the aforementioned workpiece features.
4. The apparatus for adjusting parameters as claimed in claim 3, wherein the aforementioned image generation unit performs the following operations: displaying the aforementioned workpiece model at the aforementioned detection position obtained by the aforementioned position detection unit; or displaying the aforementioned workpiece model at a position randomly determined in the aforementioned image data; or displaying the aforementioned workpiece model in the aforementioned image data at a position determined according to a predetermined rule.
5. The device for adjusting parameters as requested in item 3 or 4, wherein the aforementioned input receiving unit further receives second input data, the aforementioned second input data being used to delete the aforementioned workpiece model from the aforementioned image data or to add the second aforementioned workpiece model to the aforementioned image data, and the aforementioned image generating unit, according to the aforementioned second input data, deletes the displayed aforementioned workpiece model from the aforementioned image data or adds the aforementioned second workpiece model to and displays it in the aforementioned image data.
6. The device for adjusting parameters as requested in item 3 or 4, wherein the aforementioned image generation unit deletes the previously displayed workpiece model from the aforementioned image data or adds and displays a second aforementioned workpiece model in the aforementioned image data according to pre-defined conditions.
7. The device for adjusting parameters as described in any of claims 1 to 4, wherein the parameter adjustment unit adjusts the parameter by repeatedly performing the following series of actions: determining the amount of change of the parameter that can reduce the difference based on data representing the difference; updating the parameter by changing the parameter by the determined amount of change; and using the updated parameter to obtain data representing the difference between the detection position and the matching position obtained by the position detection unit.
8. The apparatus for adjusting parameters as described in any of claims 1 to 4, wherein the aforementioned workpiece features are obtained by virtually photographing the aforementioned workpiece model using a vision sensor model that has modeled the aforementioned vision sensor.
9. A robot system comprising: a vision sensor for capturing images of a workpiece; a robot for performing operations on the workpiece; an instruction generation unit for generating motion instructions for moving the robot based on image data captured by the vision sensor; and means for adjusting parameters as described in any of claims 1 to 8, wherein the position detection unit uses the parameters adjusted by the parameter adjustment unit to obtain the position of the workpiece in the image data captured by the vision sensor as a detection position, the instruction generation unit obtains position data of the workpiece in a control coordinate system for controlling the robot based on the detection position obtained by the position detection unit using the adjusted parameters, and generates the motion instructions based on the position data.
10. A method for adjusting parameters, wherein a processor performs the following: applying parameters to a comparison algorithm, and comparing a workpiece model with workpiece features according to the algorithm, thereby determining the position of the workpiece in image data as a detection position, wherein the aforementioned parameters are used to compare the workpiece model (with the workpiece modeled) with the workpiece features in the aforementioned image data displaying the workpiece features captured by a vision sensor, to obtain the position of the workpiece model in the aforementioned image data when the workpiece model is configured to match the aforementioned workpiece features, as a matching position, and adjusting the aforementioned parameters applied to the aforementioned algorithm based on data representing the difference between the aforementioned detection position and the aforementioned matching position, so that the aforementioned detection position can be determined as the position corresponding to the aforementioned matching position.
11. A computer program that causes the aforementioned processor to perform the method of adjusting parameters as requested in claim 10.
Citation Information
Patent Citations
Image processing device, control method thereof, and program
JP2020082274A
Robot teaching apparatus
TW200602829A
Method for deriving parameter for three-dimensional measurement processing and three-dimensional visual sensor
US20100232682A1
Information processing apparatus, information processing method, and program
US20170106540A1
