ROBOT CONTROL DEVICE, ROBOT CONTROL METHOD AND ROBOT CONTROL PROGRAM

The robot controller updates workpiece information based on picking success or failure, addressing inaccuracies in traditional systems to enhance the precision and efficiency of bulk picking operations.

DE112023006534T5Undetermined Publication Date: 2026-06-25FANUC LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE112023006534P0
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-07
Filing Date
2023-09-07
Publication Date
2026-06-25

AI Technical Summary

Technical Problem

Existing robot control systems for bulk picking applications often fail to accurately update workpiece information, leading to inefficient and inaccurate removal of workpieces due to user oversight or incomplete program updates.

Method used

A robot controller that processes data from a vision sensor to detect workpieces, maintains a list of workpiece information, and updates this information based on successful or unsuccessful picking events, ensuring the list reflects the latest status for precise and efficient workpiece removal.

Benefits of technology

Ensures accurate and efficient removal of workpieces by continuously updating the workpiece information list, improving the robot's picking accuracy and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The present invention provides a robot control device capable of accurately and efficiently removing workpieces. The robot control device directs a robot to remove any workpiece from a plurality of workpieces, processes data from a vision sensor that detects the plurality of workpieces, and comprises: a list containing information about the workpieces to be accessed by the robot; and a workpiece information processing unit that, when the robot passes through a defined position, determines whether the robot successfully or unsuccessfully removed a workpiece and updates the information for workpieces stored in the list.
Need to check novelty before this filing date? Find Prior Art

Description

AREA The present disclosure relates to a robot controller, a robot control method and a robot control program. BACKGROUND In recent years, robots have been frequently used to pick and transport objects (workpieces) in various industrial sectors. Such a robot, a so-called "bulk picking application," is perceived as removing individual workpieces from a multitude of workpieces that are irregularly placed in a receiving device (container). For bulk picking applications, for example, the positions and orientations of the majority of workpieces in the container are detected by a vision sensor, and the workpiece is removed using an end effector (hand) of the robot. Various robots, such as a vertical articulated robot and a parallel robot, can be used as a single robot performing bulk removal, and different types, such as a gripper hand (pneumatic gripper), a suction hand, and a magnetic force hand, can be used as the end effector for removing the workpiece. Traditionally, various proposals have been put forward as robot control technology, which enables precise and highly efficient removal of a workpiece. [LIST OF QUOTES] [PATENT LITERATURE] [PTL 1] Unexamined Japanese patent publication (Kokai) No. 2008-087074 SUMMARY [TECHNICAL PROBLEM] Traditionally, to control a robot for a bulk picking application, data from a vision sensor that detects multiple workpieces is processed, and information about a workpiece accessed by the robot is managed internally as a list. This list is updated, for example, based on a picking result, namely whether the workpiece is successfully picked or not. Furthermore, updating the list is achieved, for example, by a technician (user) of a robot system performing bulk removal including an instruction to update the workpiece information in the robot's main operation program. However, when creating or modifying an operation program, the user might forget to include a command to update the workpiece information, or the workpiece information stored in the list might not be updated, resulting in inaccurate and inefficient workpiece removal. It is therefore desirable to provide a robot controller, a robot control method and a robot control program that make it possible to remove a workpiece accurately and with high efficiency. [SOLUTION TO THE PROBLEM] According to one embodiment of the present invention, a robot controller for controlling a robot is provided such that it picks any workpiece from a plurality of workpieces, the list comprising a list configured to process data from a vision sensor (or vision sensor) configured to detect the plurality of workpieces and store information about a workpiece to be accessed by the robot; and a workpiece information processing unit configured to determine whether any workpiece is successfully picked by the robot or not, and to update the workpiece information stored in the list when the robot passes through a predetermined position. BRIEF DESCRIPTION OF THE DRAWINGS [Fig. 1] Fig. 1 is a diagram schematically illustrating an example of a robot system to which a robot controller according to the present embodiment is applied. [Fig. 2] Fig. 2 is a functional block diagram illustrating an example of the robot controller according to the present embodiment. [Fig. 3] Fig. 3 is a diagram illustrating an example of a list (blacklist) in the robot controller shown in Fig. 2. [Fig. 4] Fig. 4 is a diagram schematically illustrating another example of a robot system to which a robot controller according to the present embodiment is applied. [Fig. 5] Fig. 5 is a flowchart to explain a processing example of the robot control program according to one embodiment of the present embodiment. DESCRIPTION OF EXECUTION FORMS Examples of a robot controller, a robot control method, and a robot control program according to the present embodiment are described in detail below with reference to the accompanying drawings. In each of the drawings, the same or similar components are assigned the same or similar reference numerals. Moreover, the embodiments described below do not limit the technical scope of protection or the meaning of the terms of the invention as set out in the claims. Fig. 1 is a diagram schematically illustrating an example of a robot system to which a robot controller according to the present embodiment is applied. In Fig. 1, reference numeral 1 denotes an industrial robot, 2 denotes a robot controller, 3 denotes a vision sensor (3D sensor, three-dimensional measuring device), 4 denotes a container, 100 denotes an industrial robot system (robot system), and W denotes a workpiece (object). It should be noted that the robot controller 2 according to the present embodiment can, for example, be applied to the industrial robot system 100, which picks a workpiece W from a plurality of workpieces that have been irregularly placed (randomly stacked) by the industrial robot 1, but is not limited to the industrial robot system.In particular, the robot controller 2 according to the present embodiment can be comprehensively applied to various robots, including an industrial robot, a collaborative robot and a workpiece removal function. As shown in Fig. 1, the industrial robot system 100, as an example of a robot system, includes the industrial robot 1, the robot controller 2, and a vision sensor 3. The industrial robot 1 is controlled by the robot controller 2, and a plurality of workpieces W, which are irregularly placed in the container 4, are, for example, picked up individually by a hand (end effector: gripper unit) 12, which is provided at the tip of an arm 11. The vision sensor 3, for example, is configured by a stereo camera and is mounted near hand 12. The image of the outer shape of the majority of workpieces W in the container 4, captured by the vision sensor 3, is output to the robot controller 2. In particular, the output (image data) from the vision sensor 3 is input into the robot controller 2 in such a way that the position and orientation of the workpiece W are detected (calculated) and, for example, the setting of the removal position for each workpiece W, or the like, is carried out. Hand 12, for example, is a pneumatic gripper that grasps the workpiece W using pneumatic pressure. Whether the workpiece W was successfully gripped (removed) by hand 12 can be determined by the measurement result of a pneumatic sensor 12a located in hand 12. It should be noted that the determination of whether the workpiece W was successfully or unsuccessfully gripped is not limited to the measurement result of the pneumatic sensor 12a and can also be determined, for example, based on the output of various contact sensors that detect the previous position or state of the workpiece W in the image captured by the camera. Although the vision sensor 3 is mounted near the moving hand 12 of the industrial robot 1, for example as shown in Fig. 4, which is described below, it can be attached to a camera stand 40, a ceiling, or the like, which is provided above the industrial robot 1, and the outer shape of the plurality of workpieces W in the container 4 can be captured by a stationary vision sensor 3. Furthermore, if the three-dimensional shape of the plurality of workpieces W can be measured, instead of being limited to a stereo camera, various cameras other than a ToF (flight-of-time) camera can be used. Fig. 2 is a functional block diagram illustrating an example of the robot controller according to the present embodiment. The robot controller 2 controls the industrial robot 1 such that individual workpieces W are extracted from the plurality of workpieces, for example, based on the operation program. As shown in Fig. 2, the robot controller 2 includes a data acquisition unit 21, a data processing unit 22, a list (blacklist, extraction position list) 23, a workpiece information processing unit 24, and a robot control unit 25. The data acquisition unit 21, for example, acquires image data of the outer shape of a plurality of workpieces W, which are randomly stacked in the container 4, which is detected by the vision sensor 3. The data processing unit 22 receives data from the data acquisition unit 21 and stores the data in list 23, corresponding to the respective workpiece W, when the industrial robot 1 accesses it. It should be noted that list 23 is a memory (a storage unit) and includes, for example, a pick-up position list, which specifies a workpiece W (position of workpiece W) that the industrial robot 1 picks up (accesses) from, and a blacklist, which specifies a workpiece W that the industrial robot 1 does not access. The workpiece information processing unit 24 updates workpiece information stored in list 23 according to a robot control program of the present embodiment and controls the robot 1 via the robot control unit 25 such that an optional workpiece W is removed based on the operating (main) program, using the workpiece information stored in list 23. It should be noted that, according to the present embodiment, the robot control program is an independent program that runs in parallel to an operation program for controlling the robot 1 to remove the workpiece W, and is executed, for example, in the background of the operation program. In the robot control program according to the present embodiment, for example, at a predetermined position of the robot 1, a determination is made as to whether an arbitrary workpiece W is successfully removed by the robot 1 or not. When the robot 1 passes through the predetermined position, the workpiece information stored in list 23 is updated based on the determination of whether the extraction of the arbitrary workpiece W by the robot 1 was successful or not. It should be noted that the success or failure of the removal of the workpiece W can be determined based on an output from a different contact sensor, and that an image from a camera can be captured as the starting point for the measurement result of the pneumatic sensor 12a, as described above. The operation program, for example, defines the workpiece W (an extraction position of workpiece W) to be picked up by the robot 1, with reference to the workpiece information stored in list 23, and controls the robot 1 via the robot control unit 25 such that the workpiece W is picked up based on the setting. It should be noted that the workpiece information stored in list 23 is updated by the robot control program according to the present invention to reflect the latest state. The user of the industrial robot system 100 can therefore pick up the workpiece with reference to the workpiece information updated by the robot program according to the present embodiment, for example, without having to include instructions for creating the latest workpiece information in the operation program. Fig. 3 is a diagram illustrating an example of a list (blacklist) in the robot controller shown in Fig. 2. It should be noted that the blacklist 23 is updated (created) by executing the robot control program according to the present disclosure, and that it is used by an operating program to control the industrial robot 1 and remove the workpiece W. The robot control program according to the present embodiment is a program that is executed in parallel to the operating program and is, for example, executed in the background of the operating program. Moreover, the robot control program according to the present embodiment can always be executed during the operation of the robot system 100 (robot controller 2). As shown in Fig. 3, the blacklist (List 23) is classified, for example, by elements such as "Work ID", "Position (X, Y, Z, W, P, R)", "Dwell Count", and "Lifetime". This blacklist is also used for processing, such as when the workpiece W moves due to, for example, a workpiece removal operation, or when the workpiece removal operation is performed a predetermined number of times, the stored (written) workpiece is deleted from the blacklist. This enables efficient workpiece removal. The "Work ID" is an identification number (IDentification) for each of a plurality of workpieces W in a container 4, and the "Position (X, Y, Z, W, P, R)" are three-dimensional position data (X, Y, Z) and orientation data (W, P, R) set for the respective workpieces W. It should be noted that the three-dimensional position data (X, Y, Z) specifies a distance (e.g., mm) from a reference point (origin: for example, a corner of the container), and the orientation data (W, P, R) specifies a rotation angle (e.g., degrees) in each axis (X-axis, Y-axis, and Z-axis). The "dwell count" is a counter value that is incremented in response to periods of time spent in Blacklist 23 after being stored there. Specifically, the "dwell count" is incremented by "1" each time any workpiece W is stored in Blacklist 23 and a workpiece W with a predetermined value (for example, "5") is deleted from the Blacklist. It should be noted, for example, that a workpiece W deleted from the Blacklist can be returned to a list (picking position list) containing a workpiece W that is not stored in the Blacklist. The "lifetime" is a count that decreases according to the number of accesses or similar operations stored in Blacklist 23. Specifically, the "lifetime" is reduced (decremented) by 1 from a predetermined value (e.g., 10) each time workpiece W is accessed (e.g., when workpiece W is removed) for any workpiece W stored in Blacklist 23, and workpiece W with a value below zero is deleted from Blacklist 23. It should be noted, for example, that the workpiece W deleted from the Blacklist can be returned to a list containing the workpiece W that is not stored in the Blacklist. As described above, the contents of Blacklist 23 change according to the removal operation (move operation, break operation) or similar operation of workpiece W by the industrial robot (robot) 1.Furthermore, list 23 can also be applied, for example, to a removal position list in which priority elements (removal sequence) are provided for the respective workpieces W. It should be noted that list 23 is not limited to the blacklist described above and can, for example, be a removal position list that specifies the position of the removable workpiece, and that various modifications and changes are possible. Fig. 4 is a diagram schematically illustrating another example of a robot system to which a robot controller according to the present embodiment is applied. In Fig. 4, reference numeral 6 denotes a conveyor, 40 denotes a camera stand for holding the sensor 3 above the robot 1, 60 denotes a transport unit of the conveyor 6, and P denotes a predetermined position (gripping position) of the robot 1. In the robot system 100 shown in Fig. 4, the robot controller 2 controls the industrial robot 1 such that each workpiece is individually picked from a plurality of workpieces that are irregularly placed in the container 4, and the picked workpiece W is placed sequentially on the transport unit 60 of the conveyor 6. It should be noted that, according to the present embodiment, the robot controller 2 does not, for example, control the industrial robot 1 as shown in Fig. 1 and Fig. 2.4 shown, is limited, but can be comprehensively applied to various robots that have functions for removing different workpieces. In the robot system 100 shown in Fig. 4, the robot controller 2, which executes the robot control program according to the present embodiment, obtains a determination result as to whether any workpiece W is successfully removed by the robot 1 or not, and when the robot 1 (for example, the hand 12 of the robot 1) passes through the gripping determination position P, the robot controller 2 updates the information of the workpiece stored in the list 23 based on the determination result as to whether the extraction of the workpiece W by the robot 1 was successful or failed. In particular, when it is determined that the robot 1 hand 12 has successfully picked up workpiece W[1], the grip determination signal RI[1] = ON is output to a workpiece information processing unit 24 of the robot controller 2 at the moment when the hand 12 grasping workpiece W[1] passes through the grip determination position P. Based on the grip determination signal RI[1] = ON, the workpiece information processing unit 24 successfully picks up workpiece W[1], recognizes that workpiece W[1] is not present in container 4, and updates (rewrites) the information of the workpiece stored in list 23. Consequently, the information of the workpiece stored in list 23 is updated to reflect the latest state.Therefore, the robot controller 2, which controls the robot based on the operation program, refers to the workpiece information, which reflects the latest status and is stored in list 23, and controls the industrial robot 1 such that the respective workpieces W are taken from the plurality of workpieces. The robot control program and the operation program according to the present embodiment are executed by an arithmetic processing device (data processing unit 22 and workpiece information processing unit 24, etc.) in the robot controller 2. Below are described an example of the robot control program according to the present embodiment, executed by the arithmetic processing device, and an example of the operation program with reference to Fig. 5. Fig. 5 is a flowchart to explain a processing example in an embodiment of the robot control program according to the present embodiment. Note that Fig. 5(a) depicts a processing example in an operation (main) program that controls the robot to remove the workpiece, and Fig. 5(b) depicts a processing example in an embodiment of the robot control program according to the present embodiment. An example of the robot control program according to the present embodiment is executed in parallel with the operation program and is executed, for example, in a background of the operation program. First, as shown in Fig. 5(a), when a processing example in an operation program for controlling the robot 1 to control the extraction of the workpiece W starts (START), in step ST11 the outer shape of the majority of workpieces W in the container 4, that is, the position and orientation (x, y, z, w, p, r) of each workpiece W in the container 4 is detected by the vision sensor 3, and the process proceeds to step ST12. In step ST12, the removal position for each workpiece W is calculated, and the workpiece W is gripped by proceeding to step ST13. The process then continues to step ST14 to remove the workpiece W. It should be noted that the calculation of the workpiece W's removal position in step ST12 references the workpiece information stored in list 23 and determines which workpiece W (to be accessed) is to be removed. The workpiece information stored in list 23 is updated to reflect the latest state by executing the robot control program according to the present embodiment, which will be described with reference to Fig. 5(b).When the robot 1 passes through the gripping determination position (predetermined position (P)) in the middle of gripping and removing the arbitrary workpiece W in steps ST13 and ST14, the workpiece information stored in the list is updated by the robot control program according to the present embodiment. Furthermore, the process proceeds to step ST15, which determines whether the workpiece removal is complete. If it is determined that the workpiece removal is not complete (NO), the process returns to step ST11 to repeat the same processing. Conversely, if step ST15 determines that the workpiece removal is complete (YES), the processing of an example of the operation program is terminated (END). It should be noted that although the processing of the robot controller 2 can be modified and changed based on the operation program, the latest state is reflected by executing the robot control program according to the present embodiment. If, as shown in Fig. 5(b), a processing example in an embodiment of the robot control program according to the present embodiment is started (START), step ST21 determines whether the robot 1 (the hand 12) has passed through the gripping position P. If, in step ST21, the robot 1 determines that it has not passed through the gripping position P (NO), the processing is repeated until it is determined that the robot 1 has passed through the gripping position P. If it is determined that the robot 1 has passed through the gripping position P (YES), it proceeds to step ST22 to determine whether the gripping signal of the workpiece is ON (gripping signal RI[1] = ON). If, in step ST22, it is determined that the workpiece gripping signal is ON (gripping of arbitrary workpiece W[1]), the process proceeds to step ST23, the processing of a workpiece gripping success is executed, and the workpiece to be removed is removed from the removal position list 23. Therefore, in step ST23, the arbitrary workpiece W[1] is removed and is not present in the container 4 based on a signal (gripping determination signal RI[1] = ON), indicating that the gripping of the arbitrary workpiece W[1] was successful. Consequently, the workpiece W[1] is deleted from the removal position list 23, and a processing example in the robot control program according to the present embodiment ends (END). On the other hand, if in step ST22 it is determined that the workpiece gripping signal is OFF (the arbitrary workpiece W[1] is not gripped), the process proceeds to step ST24, the processing of a workpiece gripping failure is executed, the workpiece to be removed is placed in blacklist 23, and the surrounding workpiece is also placed in blacklist 23 at the end (END) of a processing example in the robot control program of the present embodiment. It should be noted that it cannot be said that the information about the workpiece stored in list 23, such as the extraction position list and the blacklist (for example, workpieces surrounding the workpiece that could not be removed are stored in the list), can be appropriately modified according to the type of workpiece W to be removed, the robot system 100 to be used, and the like.The robot control program according to the present embodiment is a program that is executed in parallel to the operation program and, for example, runs in the background of the operation program. Furthermore, the robot control program according to the present embodiment can always be executed during operations of the robot controller 2. As described above, according to an example of the robot control program according to the present embodiment, it is possible to remove a workpiece accurately and with high efficiency, since the information about the workpiece stored in the list to which the operation program refers reflects the latest status. The abnormal load detection program according to the embodiment described above can be provided by recording to a computer-readable non-volatile recording medium or non-volatile semiconductor storage medium, or it can be provided via wired or wireless communication. It should be noted that the computer-readable non-volatile recording medium can be, for example, a CD-ROM (Compact Disc Read Only Memory), a DVD-ROM, a hard disk device, and the like. Furthermore, a PROM (Programmable Read Only Memory), flash memory, and the like are considered non-volatile semiconductor storage devices. Additionally, distribution from the server device is considered to be provided via a wired or wireless LAN (Local Area Network) or a WAN such as the Internet. As described in detail above, according to the robot controller, the robot control method and the robot control program according to the present embodiment, it is possible to remove a workpiece accurately and with high efficiency. Although the present disclosure is described in detail, it is not limited to the individual embodiments described above. These embodiments may be added, replaced, modified, partially omitted, or the like, within a scope that does not deviate from the essence of the present disclosure, or derived from the content described in the claims and their equivalents, within a scope that does not deviate from the spirit of the present disclosure. These embodiments may also be implemented in combination. In the embodiment described above, for example, the sequence of each operation and the sequence of each processing step are given as an example and are not limited to it. This also applies if a numerical value or a mathematical expression is used in the description of the embodiment described above. With regard to the embodiments and variations described above, the following descriptions are further disclosed. [Annex 1] Robot controller (2) for controlling a robot (1) for picking any workpiece (W) from a plurality of workpieces, comprising: a list (23) configured to process data from a vision sensor (3) configured to detect the plurality of workpieces and to store information about a workpiece to be accessed by the robot (1); and a workpiece information processing unit (24) configured to determine whether any workpiece (W) is successfully picked by the robot (1) and to update the workpiece information stored in the list (23) when the robot (1) passes through or through a predetermined position (P). [Annex 2] Robot controller according to Annex 1, which further comprises a robot control unit (25) configured to control the robot (1) to pick up any workpiece (W) based on the workpiece information stored in the list (23). [Annex 3] Robot controller according to Annex 2, wherein the workpiece information processing unit (24) updates the workpiece information stored in the list (23) based on a determination result of the arbitrary workpiece (W) when the robot (1) passes through the predetermined position (P) in an operation to control the robot (1) to extract the arbitrary workpiece (W) by the robot control unit (25). [Annex 4] Robot controller according to one of Annexes 1 to 3, wherein the plurality of workpieces (W) are workpieces randomly stacked in a container (4), and the vision sensor (3) is a three-dimensional measuring device configured to measure a three-dimensional shape of the plurality of workpieces (W) randomly stacked in the container (4). [Annex 5] Robot controller according to one of Annexes 1 to 4, wherein the workpiece information processing unit (24) updates workpiece information stored in the list (23) based on a robot control program executed in parallel to an operation program that controls the robot (1) to pick a particular workpiece (W) from the plurality of workpieces. [Annex 6] A robot control method for controlling a robot (1) to pick up any workpiece (W) from a plurality of workpieces, comprising: a workpiece information storage step for processing data from a vision sensor (3) for acquiring the plurality of workpieces and storing workpiece information accessed by the robot (1) in a list (23); and a workpiece information update step for obtaining a determination result as to whether the robot (1) was successful or failed in picking up the arbitrary workpiece (W) when the robot (1) passes through a predetermined position (P), and for updating the workpiece information stored in the list (23). [Annex 7] Robot control method according to Annex 6, which further includes a robot control step for controlling the robot (1) to remove any workpiece (W) based on the workpiece information stored in list (23). [Annex 8] Robot control program for controlling a robot (1) for extracting any workpiece (W) from a plurality of workpieces, wherein the robot control program causes an arithmetic processing unit to perform: a workpiece information storage step for processing data from a vision sensor (3) for detecting the plurality of workpieces and storing information of the workpiece accessed by the robot (1) in a list (23); and a workpiece information update step for obtaining a determination result as to whether the robot (1) was successful or failed in picking up the arbitrary workpiece when the robot (1) passes through a predetermined position (P), and for updating the workpiece information stored in the list (23). [Annex 9] Robot control program according to Annex 8, which further causes the arithmetic processing unit to execute a robot control step to control the robot (1) to remove any workpiece (W) based on the workpiece information stored in list (23). [Annex 10] Robot control program according to Annex 9, wherein the workpiece information update step updates the workpiece information stored in list (23) based on the determination result of any workpiece (W) when the robot (1) passes through the predetermined position (P) during an operation to control the robot (1) to pick up the arbitrary workpiece (W) based on an operation program. [Annex 11] Robot control program according to one of Annexes 8 to 10, wherein the plurality of workpieces (W) are workpieces randomly stacked in a container (4), and the vision sensor (3) is a three-dimensional measuring device configured to measure a three-dimensional shape of the plurality of workpieces (W) randomly stacked in the container (4). [Annex 12] Robot control program according to one of Annexes 8 to 11, wherein the robot control program performs a workpiece information update step in parallel with an operation program that is executed to control the robot (1) to remove respective workpieces (W) from the plurality of workpieces and updates the workpiece information stored in the list (23). [Annex 13] Robot control program according to Annex 12, wherein the robot control program is executed in a background of the operation program. REFERENCE MARK LIST 1 Industrial robot (robot) 2 Robot controller 3 Vision sensor (3D sensor, three-dimensional measuring device) 4 Container 6 Conveyor 11 Arm 12 Hand (end effector: gripping unit) 12a Pneumatic sensor 21 Image acquisition unit 22 Data processing unit 23 List (blacklist, pick-position list) 24 Workpiece information processing unit 25 Robot control unit 40 Camera stand 60 Transport unit 100 Industrial robot system (robot systems) W Workpiece (object)

Claims

A robot controller for controlling a robot to pick any workpiece from a plurality of workpieces, comprising: a list configured to process data from a vision sensor configured to detect the plurality of workpieces and to store information about a workpiece to be accessed by the robot; and a workpiece information processing unit configured to determine whether or not any workpiece is successfully picked by the robot and to update the workpiece information stored in the list when the robot passes through a predetermined position. Robot controller according to claim 1, further comprising a robot control unit configured to control the robot to pick up any workpiece based on the workpiece information stored in the list. Robot controller according to claim 2, wherein the workpiece information processing unit updates the workpiece information stored in the list based on a determination result of the arbitrary workpiece when the robot passes through the predetermined position in an operation to control the robot in order to extract the arbitrary workpiece by the robot control unit. Robot controller according to one of claims 1 to 3, wherein the plurality of workpieces are workpieces randomly stacked in a container, and the vision sensor is a three-dimensional measuring device configured to measure a three-dimensional shape of the plurality of workpieces randomly stacked in the container. Robot controller according to one of claims 1 to 4, wherein the workpiece information processing unit updates information of the workpiece stored in the list based on a robot control program that is executed in parallel to an operation program that controls the robot to pick a respective workpiece from the plurality of workpieces. A robot control method for controlling a robot to pick up any workpiece from a plurality of workpieces, comprising: a workpiece information storage step for processing data from a vision sensor for detecting the plurality of workpieces and storing information of the workpiece accessed by the robot in a list; and a workpiece information update step for obtaining a determination result as to whether the robot was successful or failed in picking up the any workpiece when the robot passes through a predetermined position, and for updating the workpiece information stored in the list. Robot control method according to claim 6, further comprising a robot control step for controlling the robot to remove any workpiece based on the workpiece information stored in the list. A robot control program for controlling a robot to extract any workpiece from a plurality of workpieces, wherein the robot control program causes an arithmetic processing unit to perform: a workpiece information storage step for processing data from a vision sensor for detecting the plurality of workpieces and storing information of the workpiece accessed by the robot in a list; and a workpiece information update step for obtaining a determination result as to whether the robot was successful or failed in picking up the any workpiece when the robot passes through a predetermined position, and for updating the workpiece information stored in the list. Robot control program according to claim 8, which further causes the arithmetic processing unit to execute a robot control step to control the robot to remove the arbitrary workpiece based on the workpiece information stored in the list. Robot control program according to claim 9, wherein the workpiece information update step updates the workpiece information stored in the list based on the determination result of the arbitrary workpiece when the robot passes through the predetermined position during an operation to control the robot to pick up the arbitrary workpiece based on an operation program. Robot control program according to one of claims 8 to 10, wherein the plurality of workpieces are workpieces randomly stacked in a container, and the vision sensor is a three-dimensional measuring device configured to measure a three-dimensional shape of the plurality of workpieces randomly stacked in the container. Robot control program according to one of claims 8 to 11, wherein the robot control program performs a workpiece information update step in parallel to an operation program that is executed to control the robot to remove respective workpieces from the plurality of workpieces and updates the workpiece information stored in the list. Robot control program according to claim 12, wherein the robot control program is executed in a background of the operation program.