WO2024047711A1 - 取り出し機械制御装置、取り出し機械制御プログラムおよび取り出し機械システム - Google Patents

取り出し機械制御装置、取り出し機械制御プログラムおよび取り出し機械システム Download PDF

Info

Publication number
WO2024047711A1
WO2024047711A1 PCT/JP2022/032447 JP2022032447W WO2024047711A1 WO 2024047711 A1 WO2024047711 A1 WO 2024047711A1 JP 2022032447 W JP2022032447 W JP 2022032447W WO 2024047711 A1 WO2024047711 A1 WO 2024047711A1
Authority
WO
WIPO (PCT)
Prior art keywords
take
data
retrieval
machine control
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2022/032447
Other languages
English (en)
French (fr)
Inventor
潤 和田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Original Assignee
Fanuc Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fanuc Corp filed Critical Fanuc Corp
Priority to DE112022007422.1T priority Critical patent/DE112022007422T5/de
Priority to CN202280099430.6A priority patent/CN120693238A/zh
Priority to PCT/JP2022/032447 priority patent/WO2024047711A1/ja
Priority to US18/878,900 priority patent/US20250384579A1/en
Priority to JP2024543621A priority patent/JPWO2024047711A1/ja
Priority to TW112128553A priority patent/TW202408752A/zh
Publication of WO2024047711A1 publication Critical patent/WO2024047711A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1694Program controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0014Image feed-back for automatic industrial control, e.g. robot with camera
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/001Industrial image inspection using an image reference approach
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40053Pick 3-D object from pile of objects
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40564Recognize shape, contour of object, extract position and orientation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40584Camera, non-contact sensor mounted on wrist, indep from gripper
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40607Fixed camera to observe workspace, object, workpiece, global
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45063Pick and place manipulator
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • G06T2207/10012Stereo images
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component

Definitions

  • the present disclosure relates to a take-out machine control device, a take-out machine control program, and a take-out machine system.
  • robots retriev machines
  • workpieces objects
  • a so-called "bulk pick-up" use is the use of picking out individual workpieces from a plurality of workpieces randomly placed in a container, a so-called "bulk pick-up" use.
  • the positions and orientations of multiple workpieces within the container are detected based on measurement results from a 3D sensor such as a stereo camera, and the workpieces are taken out using the end effector (hand part) of the robot. .
  • the blacklist is, for example, a list in which among a plurality of works, works that the robot is not allowed to access are written.
  • the blacklist is Store in. Then, for example, the robot is not allowed to take out workpieces around the workpieces stored in the blacklist until they are next measured by a 3D sensor or the like.
  • the problem to be solved by the present disclosure is to provide a take-out machine control device, a take-out machine control program, and a take-out machine system that can efficiently take out objects.
  • a take-out machine control device that controls a take-out machine to take out an arbitrary object from a plurality of objects including at least one object in which a plurality of take-out positions are set. be done.
  • This take-out machine control device includes a data import section, a data processing section, a take-out position selection section, and a take-out machine control section.
  • the data capture unit captures data from sensors that measure the external shapes of multiple objects.
  • the data processing unit processes the data from the data importing unit, and stores data in a list for each of the retrieval positions in association with the retrieval position when controlling the retrieval machine to access the object.
  • the take-out position selection unit selects the take-out position of the object to be taken out by the take-out machine based on the output of the list.
  • the take-out machine control unit controls the take-out machine to take out the object based on the output of the take-out position selection unit.
  • FIG. 1 is a diagram schematically showing an industrial robot system as an example of a take-out machine system according to the present embodiment.
  • FIG. 2 is a block diagram showing each function of the industrial robot system shown in FIG. 1.
  • FIG. 3 is a diagram showing an example of a list (black list) in the industrial robot system shown in FIG. 2.
  • FIG. 4 is a flowchart for explaining an example of processing in the first example of the take-out machine control program according to the present embodiment.
  • FIG. 5 is a flowchart for explaining an example of the first process in the flowchart shown in FIG.
  • FIG. 6 is a flowchart for explaining an example of the second process in the flowchart shown in FIG.
  • FIG. 7 is a flowchart for explaining an example of the third process in the flowchart shown in FIG. 4.
  • FIG. 8 is a flowchart for explaining an example of the fourth process in the flowchart shown in FIG.
  • FIG. 9 is a flowchart for explaining an example of processing in the first modified example of the take-out machine control program according to the present embodiment.
  • FIG. 10 is a flowchart for explaining the main part of the process in the second modified example of the take-out machine control program according to the present embodiment.
  • FIG. 11 is a flowchart for explaining an example of processing in the second example of the take-out machine control program according to the present embodiment.
  • FIG. 12 is a diagram showing an example of a list (take-out position list) in the industrial robot system shown in FIG. 2.
  • FIG. 13 is a flowchart for explaining an example of the first process in the flowchart shown in FIG. 11.
  • FIG. 11 is a flowchart for explaining an example of the first process in the flowchart shown in FIG. 11.
  • FIG. 14 is a flowchart for explaining an example of the second process in the flowchart shown in FIG. 11.
  • FIG. 15 is a flowchart for explaining an example of the third process in the flowchart shown in FIG. 11.
  • FIG. 16 is a flowchart for explaining an example of the fourth process in the flowchart shown in FIG. 11.
  • FIG. 17 is a flowchart for explaining an example of processing in the third example of the take-out machine control program according to the present embodiment.
  • FIG. 18 is a diagram showing another example of the list (take-out position list) in the industrial robot system shown in FIG. 2.
  • FIG. 19 is a flowchart for explaining an example of the first process in the flowchart shown in FIG. 17.
  • FIG. 19 is a flowchart for explaining an example of the first process in the flowchart shown in FIG. 17.
  • FIG. 20 is a flowchart for explaining an example of the second process in the flowchart shown in FIG. 17.
  • FIG. 21 is a flowchart for explaining an example of the third process in the flowchart shown in FIG. 17.
  • FIG. 22 is a flowchart (Part 1) for explaining an example of the fourth process in the flowchart shown in FIG. 17.
  • FIG. 23 is a flowchart (part 2) for explaining an example of the fourth process in the flowchart shown in FIG. 17.
  • FIG. 24 is a flowchart for explaining an example of the process of selecting data to be taken out from the take-out position list according to the priority in the take-out machine control program of the third embodiment shown in FIG.
  • FIG. 25 is a flowchart for explaining another example of the process of selecting data to be extracted from the extraction position list according to priority in the extraction machine control program of the third embodiment shown in FIG.
  • FIG. 1 is a diagram schematically showing an industrial robot system as an example of a retrieval machine system according to the present embodiment.
  • the take-out machine system according to the present embodiment can be applied to, for example, an industrial robot system that uses an industrial robot to take out workpieces that are placed randomly (stacked in bulk). It is not limited to. That is, the retrieval machine system according to the present embodiment is widely applicable not only to robot systems such as industrial robots and collaborative robots, but also to retrieval machine systems that have the function of retrieving various objects using various machines. Is possible.
  • reference numeral 1 is an industrial robot (extraction machine)
  • 2 is a robot control device (extraction machine control device)
  • 3 is a 3D sensor (three-dimensional measuring instrument)
  • 4 is a stored object
  • 100 is an industrial robot system. (mechanical system)
  • W indicates a workpiece (object).
  • an industrial robot system 100 as an example of a retrieval machine system according to the present embodiment includes an industrial robot 1, a robot control device 2, and a 3D sensor 3.
  • the industrial robot 1 is controlled by a robot control device 2, and picks up a plurality of workpieces W randomly placed in a storage object 4 by using a hand section (end effector: gripping section) 12 provided at the tip of an arm 11. It is designed to be taken out (grasped) one by one.
  • the 3D sensor 3 is composed of, for example, a stereo camera, and is attached near the hand section 12. Images of the external shapes of the plurality of workpieces W in the container 4 captured by the 3D sensor 3 are output to the robot control device 2 . That is, the output of the 3D sensor 3 is input to the robot control device 2, where the position and orientation of the workpiece W is detected (calculated), and, for example, multiple takeout positions can be set for one workpiece W. be exposed.
  • the hand unit 12 is, for example, a pneumatic gripper that grips the workpiece W using air pressure, and whether or not the hand unit 12 has successfully gripped (taken out) the workpiece W is determined by the measurement of the air pressure sensor 12a provided in the hand unit 12. This can be determined based on the results. Note that the determination as to whether or not the work W has been successfully taken out is not limited to the one based on the measurement results of the air pressure sensor 12a. It is also possible to make a determination based on the state etc.
  • the 3D sensor 3 is attached near the moving hand part 12 of the industrial robot 1, but for example, it is fixed to the ceiling above the industrial robot 1, and the fixed 3D sensor 3
  • the outer shapes of the plurality of works W within the storage object 4 may be measured (photographed).
  • the 3D sensor 3 is not limited to a stereo camera, and various sensors can be used as long as the three-dimensional shapes of a plurality of works can be measured.
  • FIG. 2 is a block diagram showing each function of the industrial robot system shown in FIG. 1.
  • the robot control device 2 controls the industrial robot 1 to take out the workpiece W, etc., and includes a data import section 21, a data processing section 22, a list 23, and a take-out position selection section. 24 and a robot control section 25.
  • the retrieval machine control program according to the present embodiment which will be described in detail later, is executed by, for example, an arithmetic processing unit configured of the data processing unit 22, the retrieval position selection unit 24, the robot control unit, etc. in the robot control device 2. .
  • the list 23 is a memory (storage unit), and is used as a black list or an extraction position list, which will be described in detail later. That is, the list 23 can be applied, for example, as a black list in which a plurality of take-out positions that the industrial robot 1 is not allowed to access are stored. Furthermore, the list 23 can also be applied as a take-out position list, for example, in which an item of priority (take-out order) is further provided for each take-out position. Note that in the following description, for example, a description of a retrieval position that is not stored in the blacklist will be omitted because it is out of the subject of this embodiment.
  • the data acquisition unit 21 acquires, for example, data on the external shapes of a plurality of works W that are stacked (disorderly placed) in the container 4 and measured by the 3D sensor 3.
  • the data processing unit 22 receives and processes the data from the data importing unit 21, and associates data for controlling the industrial robot 1 to access the workpiece W with each retrieval position for each retrieval position. Store in list 23.
  • a plurality of take-out positions are set for at least one work W to be taken out by the hand section 12.
  • the take-out position selection unit 24 selects the take-out position of the work W to be taken out by the industrial robot 1 based on the output of the list 23, and the robot control unit 25 selects the take-out position of the workpiece W to be taken out by the industrial robot 1 based on the output of the take-out position selection unit 24.
  • the workpiece W is taken out under control. That is, the take-out position selection unit 24 selects the take-out position of the work W to be taken out (accessed) by the industrial robot 1 based on the output of the list 23. Then, the robot control unit 25 controls the industrial robot 1 to access the take-out position selected by the take-out position selection unit 24, perform a take-out operation, and take out the workpiece W including the take-out position.
  • FIG. 3 is a diagram showing an example of a list (black list) in the industrial robot system shown in FIG. It shows an example of a blacklist used in the processing of the embodiment.
  • the blacklist 23 includes, for example, "work ID”, “take-out position ID”, “position/orientation (X, Y, Z, W, P, R)", “stay count”, and " It is classified by items such as "life count”.
  • This blacklist is used for processing such as deleting the stored (written) takeout position from the blacklist when the takeout position moves due to a workpiece takeout operation, or when the workpiece takeout operation is performed a predetermined number of times. It is also used to carry out. This makes it possible to efficiently perform workpiece removal processing.
  • Work ID is an identification number (IDentification) for each of the plurality of works W in the storage object 4
  • Take-out position ID is an identification number for each of the plurality of take-out positions set for the work W. .
  • the "work ID” is "3"
  • the "take-out position ID” of "2" indicates the second take-out position
  • the "take-out position ID” of "3" indicates the third take-out position.
  • Position/orientation (X, Y, Z, W, P, R) is the three-dimensional position data (X, Y, Z) and orientation data (W, P, R) at the take-out position set for each workpiece W. ).
  • the three-dimensional position data (X, Y, Z) indicates the distance (e.g., mm) from the reference point (origin: for example, the corner of the stored object), and the posture data (W, P, R) indicates each Indicates the rotation angle (e.g., degrees) about the axes (X-axis, Y-axis, Z-axis).
  • the "stay count” is a count value that is increased according to the stay after being stored in the blacklist 23. Specifically, the "stay count” is incremented by "1" each time the pick-up position of an arbitrary workpiece W is stored in the blacklist 23, and when the pick-up position reaches a predetermined value (for example, "5"), The location is removed from the blacklist. Note that the extraction position deleted from the blacklist may be returned to a list (extraction position list) in which extraction positions that are not stored in the blacklist are stored, for example.
  • the "life count” is a count value that is decreased according to the number of accesses after being stored in the blacklist 23. Specifically, the "life count” is set by “1" each time a workpiece W is accessed from a predetermined value (for example, "10") to the take-out position of any workpiece W stored in the blacklist 23.
  • the extraction position that is decremented and becomes less than or equal to zero is deleted from the blacklist 23. Note that the extraction position deleted from the blacklist may be returned to a list (extraction position list) in which extraction positions that are not stored in the blacklist are stored, for example. Therefore, as will be described in detail later, the contents of the blacklist 23 will change depending on the operation (shifting operation, breaking operation) of the workpiece W by the extraction machine (industrial robot) 1, and the like.
  • the data processing section 22 processes the data acquired by the data acquisition section 21, and the blacklist 23, the extraction position selection section 24, and the robot The operation of picking up the work W by the industrial robot 1 is controlled via the control unit 25 .
  • the black list 23 is managed for each take-out position of the workpiece W.
  • the first take-out position and the second take-out position are set for one workpiece W, if taking out is attempted at the first take-out position and fails, the first take-out position is stored (written) in the blacklist 23. Then, in subsequent retrieval accesses, the first retrieval position is excluded from retrieval targets (retrieval candidates) until a certain condition is met.
  • the second take-out position set for the same workpiece W as the first take-out position stored in the black list 23 is not stored in the black list 23.
  • the second retrieval position of the work W whose first retrieval position is stored in the blacklist is accessible without being excluded from the retrieval target, like other retrieval positions not stored in the blacklist.
  • the robot control device 2 may check for interference, and regarding a take-out operation at a pick-up position where interference may occur, consider it as a failure before performing the pick-up operation and store the take-out position in the black list 23. good.
  • the movement route to the extraction position includes a position outside the robot's operating range or a position of a singular point, Since the extraction position cannot be reached, it is preferable that such an extraction position is also stored in the blacklist.
  • the application of the present embodiment is not limited to the operation of taking out the work W in a narrow sense, but also applies to operations after the taking out operation fails, such as shifting or breaking the work W, for example.
  • the shifting operation is performed, for example, when the hand unit 12 of the industrial robot 1 accesses the take-out position set on the workpiece W and performs the take-out operation, but when the workpiece cannot be taken out because the grip is shallow, the hand unit This is an operation of moving the work W by 12.
  • the breaking operation may be performed, for example, when the workpiece cannot be taken out by accessing all the takeout positions set for the workpiece W, by applying an external force to any workpiece W using the hand section 12 of the industrial robot 1 (workpiece (Press W) This is an action to break up the surrounding workpieces.
  • the breaking operation is also normally performed by accessing one of the take-out positions set on the workpiece W.
  • the retrieval machine system As described above, according to the retrieval machine system according to the present embodiment, it is possible to efficiently access the work W in which a plurality of retrieval positions are set. Regarding the application of this embodiment, it is not necessary to set a plurality of take-out positions for all the works W in the stored object 4, and only one take-out position is set for some of the works W. It is possible to apply even if
  • FIG. 4 is a flowchart for explaining an example of processing in the first example of the take-out machine control program according to the present embodiment.
  • a 3D sensor (3) detects a plurality of objects in the contained object (4).
  • the external shape of the workpiece (W) is measured, and the process proceeds to step ST12, where the position and orientation (x, y, z, w, p, r) of each workpiece is detected (calculated), and the process proceeds to step ST13.
  • step ST13 the take-out position for each workpiece is calculated, and the process proceeds to step ST14.
  • step ST13 if possible, a plurality of take-out positions are calculated for one workpiece. Note that the take-out positions calculated in step ST13 do not need to be calculated (set) for each of two or more take-out positions for all the workpieces in the container; for example, for a work for which only one take-out position is set. may be included as described above.
  • step ST14 it is determined (comparative determination) whether there is a blacklist (23) that overlaps with the detection result, and if it is determined that there is a blacklist (23) that overlaps with the detection result (YES), the process proceeds to step ST15.
  • step ST15 blacklist information is inherited from the duplicate blacklist, the corresponding blacklist is deleted, and the process proceeds to step ST16 (second process Pb).
  • step ST14 if it is determined in step ST14 that there is no blacklist that overlaps with the detection result (NO), the process directly proceeds to step ST16.
  • steps ST14 and ST15 constitute a first process Pa. Note that an example of the first process Pa will be described in detail later with reference to FIG. 5.
  • step ST16 the blacklist is updated, and the process proceeds to step ST17, where it is determined whether there are any detection results and extraction positions remaining that can be extracted.
  • step ST17 if it is determined that there are remaining detection results and extraction positions that can be retrieved (YES), the process proceeds to step ST19, and if it is determined that there are no detection results and extraction positions that can be taken out (NO), the process proceeds to step ST18. Note that an example of the process of step ST16 (second process Pb) will be described in detail later with reference to FIG. 6.
  • step ST18 it is determined whether or not the removal of the workpieces from the storage object has been completed, and if it is determined that the removal of the workpieces from the storage object has been completed (YES), the process ends. On the other hand, if it is determined in step ST18 that the removal of the workpieces in the stored object is not completed (NO), the process returns to step ST11, the 3D sensor measures the plurality of works in the stored object, and the above-described process is repeated.
  • step ST19 the detection result to be extracted and the extraction position are determined, and the process proceeds to step ST20, where operations such as extraction, shifting, and collapse are performed, and the process further proceeds to step ST21.
  • step ST21 it is determined whether or not the operation was successful. If it is determined that the operation is successful (YES), the process proceeds to step ST22 (third process Pc), and if it is determined that the operation is not successful (NO), step ST23 ( Proceed to fourth process Pd).
  • step ST22 third process Pc
  • step ST23 Proceed to fourth process Pd.
  • FIG. 5 is a flowchart for explaining an example of the first process Pa (processing of steps ST14 and ST15) in the flowchart shown in FIG.
  • This first process Pa is related to, for example, processing of a blacklist for other works moved by the take-out operation when the industrial robot 1 performs a take-out operation on a work in the stored object.
  • step ST31 when the first process Pa starts (after calculating the take-out position for each workpiece in step ST13), it is determined in step ST31 whether there is a new unconfirmed detection result.
  • step ST31 If it is determined in step ST31 that there are no new unconfirmed detection results (NO), the process proceeds to step ST34, in which all data in the blacklist with a deletion flag set is deleted from the blacklist, and the first process Pa is ended.
  • step ST34 In step ST34, once all the data in the blacklist for which the deletion flag is set is deleted from the blacklist, the process proceeds to step ST16 (second process Pb) in FIG. 4.
  • step ST31 determines whether there is a new unconfirmed detection result (YES). If it is determined in step ST31 that there is a new unconfirmed detection result (YES), the process proceeds to step ST32, where the position/orientation and extraction position of the detection result are acquired, and the process proceeds to step ST33. In step ST33, it is determined whether there is unconfirmed data in the blacklist. If it is determined that there is unconfirmed data in the blacklist (YES), the process proceeds to step ST35, and if it is determined that there is unconfirmed data in the blacklist (NO). Once determined, the process returns to step ST31.
  • step ST35 the blacklist data is acquired, the process proceeds to step ST36, the detection result is compared with the position and orientation of the blacklist data, and the process further proceeds to step ST37 to determine whether there is overlap.
  • the position and orientation (X, Y, Z, W, P, R) of the blacklist data described above may be, for example, only the position (X, Y, Z) of the blacklist data.
  • step ST37 if it is determined that the position and orientation of the detection result and the blacklist data overlap (YES), the process proceeds to step ST38, and if it is determined that they do not overlap (NO), the process returns to step ST33.
  • step ST38 a deletion flag is set on the blacklist data, and the process proceeds to step ST39, where the detection result and the position and orientation of the blacklist data extraction position are compared.
  • the comparison of the position and orientation data (X, Y, Z, W, P, R) may be performed by comparing only the position data (X, Y, Z).
  • posture data (W, P, R) is just one expression format; for example, it can be expressed in other expression formats such as rotation matrix, quaternion, rotation axis and rotation angle, or polar coordinates. There may be.
  • the comparison of position and orientation data (X, Y, Z, W, P, R) may be performed by comparing only position data (X, Y, Z) or only (X, Y), as described later. The same applies to other processes, and this makes it possible to reduce the number of parameters to be compared.
  • step ST40 it is determined (comparative judgment) whether or not there is an overlap. If it is determined that there is an overlap (YES), the process proceeds to step ST41, and if it is determined that there is no overlap (NO), the process proceeds to step ST33. Return to In step ST41, the extraction position of the detection result is added to the blacklist, data other than the work ID, extraction position ID, detection position, extraction position, and deletion flag of the compared blacklist data are copied, and the process returns to step ST33.
  • the newly detected retrieval position when the information on the newly detected retrieval position based on the data from the sensor (the position and orientation of the detection result) overlaps the information on the retrieval position (position and orientation) that is already stored in the blacklist, the newly detected retrieval position Store the extraction position in the blacklist. Further, data other than the work ID, the extraction position ID, the detection position, the extraction position, and the deletion flag of the extraction position stored in the compared blacklist is copied (inherited). Then, the information about the extraction position stored in the duplicate blacklist is deleted.
  • FIG. 5 is for explaining an example of the first processing Pa, and includes, for example, the error range (margin; threshold value) when determining duplication, and the influence of proximity to the extraction position added to the blacklist.
  • error range margin; threshold value
  • FIG. 5 is for explaining an example of the first processing Pa, and includes, for example, the error range (margin; threshold value) when determining duplication, and the influence of proximity to the extraction position added to the blacklist.
  • Various settings can be made for the range that is considered to be affected. It goes without saying that when a workpiece is successfully taken out, all the takeout positions set for that workpiece are deleted from the list for taking out and the blacklist.
  • FIG. 6 is a flowchart for explaining an example of the second process Pb in the flowchart shown in FIG. 4.
  • step ST51 it is determined whether there is unupdated data in the blacklist.
  • step ST52 if it is determined that there is unupdated data in the blacklist (YES), the process proceeds to step ST52, and if it is determined that there is no unupdated data in the blacklist (NO), the second process Pb is ended.
  • the process proceeds to step ST17 in the flowchart of FIG. 4 described above.
  • step ST52 the life count of the blacklist data is decreased by a predetermined value (for example, by "1"), and the process further proceeds to step ST53, where the stay count of the blacklist data is reduced to a predetermined value (for example, by "1"). Increase by ⁇ 1'').
  • the life count can be set to "10" as an initial value (when stored in the blacklist), and the stay count can be set to "1" as an initial value.
  • step ST54 it is determined whether the life count ⁇ 0. Note that determining whether the life count ⁇ 0 is determined by, for example, if the predetermined value to be decremented in step ST52 is set to "3" and the previous life count is "1", there is a possibility that the life count becomes negative. This is because there is.
  • the value by which the life count is decreased in step ST52 is not a uniform fixed value, but may be weighted depending on the distance from the extraction position accessed to perform the extraction operation, for example. For example, for a retrieval position that is closest to the accessed retrieval position, the life count is decreased by "3", and for a retrieval position that is a certain distance away from the accessed retrieval position, the life count is reduced to "1". It is also possible to reduce the amount by just . In this way, a weight is set for the value that decreases the life count set at the first take-out position based on the distance from the second take-out position that is related to (fails in) the take-out operation of the object. That is, it is also possible to set a weight based on a predetermined condition (third condition) for the value that decreases the life count set at the extraction position.
  • a workpiece whose takeout position is set very close to the accessed takeout position is more likely to move than a workpiece that is a certain distance away (for example, several cm). Therefore, it is preferable to greatly reduce the life count. Furthermore, it is also possible to give weight to the value that decreases the life count depending on the type of access to the workpiece, such as whether it is a take-out operation or a shifting or breaking operation. For example, when the access to the workpiece is a breaking operation, the value for decreasing the life count is set to a large value, and when the access to the workpiece is a take-out operation or a shifting operation, the value for decreasing the life count is set to a small value.
  • step ST54 if it is determined that the life count ⁇ 0 (YES), the process proceeds to step ST56, and if it is determined that the life count ⁇ 0 is not (NO), the process proceeds to step ST55.
  • step ST55 it is determined whether the stay count ⁇ a predetermined value (for example, “5”). In step ST55, if it is determined that the stay count is greater than or equal to the predetermined value (YES), the process proceeds to step ST56, and if it is determined that the stay count is not greater than or equal to the predetermined value (NO), the process is returned to step ST51 and the same process is performed. repeat.
  • a predetermined value for example, “5”.
  • a stay count is set for the first take-out position of the workpiece stored in the blacklist, and a stay count is set for the first take-out position of the workpiece stored in the blacklist, and the stay count is set within a predetermined range (around ) includes the first retrieval position, the stay count of the first retrieval position is increased.
  • the stay count of the first extraction position reaches a predetermined value (for example, "5") or more, the first extraction position is deleted from the blacklist. That is, a stay count is set for the take-out position of the object stored in the blacklist, and the stay count set for the take-out position is increased based on a predetermined condition (first condition).
  • the extraction position of the object stored in the blacklist is deleted from the blacklist.
  • the first retrieval position becomes an access target as a retrieval position that is not stored in the blacklist.
  • a life count is set for the first take-out position of the workpieces stored in the blacklist, and the life count of the first take-out position is decreased based on the number of times a given workpiece take-out operation is performed. Then, when the life count of the first extraction position becomes zero or less, the first extraction position is deleted from the blacklist. That is, a life count is set for the extraction position of the object stored in the blacklist, and the life count set for the extraction position is decreased based on a predetermined condition (second condition). Then, when the life count set at the extraction position becomes zero or less, the extraction position of the object stored in the blacklist is deleted from the blacklist.
  • the first retrieval position becomes an access target as a retrieval position that is not stored in the blacklist.
  • the initial values of the life count and the stay count, the values to be decreased/increased, etc. can be changed and modified in various ways depending on the specifications and requirements of the mechanical system to which this embodiment is applied.
  • FIG. 7 is a flowchart for explaining an example of the third process Pc in the flowchart shown in FIG. 4.
  • step ST61 settings (predetermined settings) are acquired, and processing is performed according to the acquired settings.
  • step ST61 if it is determined that blacklist data that overlaps with the detection result of the motion extraction position is to be set (leftward) and all blacklist data is to be set (downward), the process advances to step ST62. Note that if it is determined in step ST61 that nothing is to be done (toward the right), the process directly proceeds to step ST63.
  • step ST62 the life count is decreased by a predetermined value, and the process further proceeds to step ST63.
  • the initial value of the life count and the value by which the life count is decreased can be changed and modified in various ways depending on the specifications and requirements of the mechanical system to which this embodiment is applied.
  • step ST63 all data on the blacklist whose life count is less than or equal to zero is deleted, and the third process Pc is ended. After completing the third process Pc, the process proceeds to step ST17 in the flowchart of FIG. 4 described above.
  • FIG. 8 is a flowchart for explaining an example of the fourth process Pd in the flowchart shown in FIG. 4.
  • the fourth process Pd in the flowchart of FIG. 4 starts, settings are acquired in step ST71, and processing is performed according to the acquired settings.
  • step ST71 if it is determined that blacklist data that overlaps with the detection result of the motion extraction position is to be set (leftward) and all blacklist data is to be set (downward), the process advances to step ST72. Note that if it is determined in step ST71 that nothing is to be done (to the right), the process directly proceeds to step ST73.
  • step ST72 the life count is decreased by a predetermined value, and the process further proceeds to step ST73.
  • the initial value of the life count and the value by which the life count is decreased can be changed and modified in various ways depending on the specifications and requirements of the mechanical system to which this embodiment is applied.
  • step ST73 all data on the blacklist whose life count is less than or equal to zero is deleted, the process proceeds to step ST74, settings are acquired, and processing is performed according to the acquired settings.
  • step ST74 If it is determined in step ST74 that the motion should be added to the blacklist (downwards), the process proceeds to step ST75, where the extraction position of the motion is added to the blacklist and the fourth process Pd is ended, and it is not added to the blacklist (rightward). If it is determined that this is the case, the fourth process Pd is immediately terminated. That is, if it is determined in step ST74 not to add to the blacklist and the process in step ST75 is completed, the process advances to step ST17 in the flowchart of FIG. 4 described above.
  • FIG. 9 is a flowchart for explaining an example of processing in the first modification of the take-out machine control program according to the present embodiment. As is clear from the comparison between FIG. 9 and FIG. This is to add. Note that the processing in other steps ST11 to ST23 is the same as that described with reference to FIG. 4, and their description will be omitted.
  • step ST81 it is determined whether there is a take-out position that does not interfere. That is, in step ST81, for example, it is determined whether there is a take-out position where the hand part 12 of the industrial robot 1 does not interfere with the side surface of the stored object 4, etc., and if it is determined that there is no take-out position where it does not interfere (NO), step ST81 is performed. Proceed to ST23. On the other hand, if it is determined in step ST81 that there is a take-out position that does not interfere (YES), the process proceeds to step ST20, where operations such as take-out, shifting, and breaking are performed.
  • the process in step ST81 is performed when the robot reaches the take-out position, for example, when it is outside the operating range of the robot or when a singular point of the robot is on the movement route to the take-out position.
  • This also includes determination processing when it is not possible.
  • the corresponding extraction position may be added to the blacklist. That is, for example, work related to automatic route generation can also be added to the blacklist.
  • automatic path generation is, for example, a path that allows the robot control device to move from the robot's current position to the take-out position (avoiding interference between the robot and peripheral equipment or workpieces, outside the robot's operating range, singularities of the robot, etc.).
  • FIG. 10 is a flowchart for explaining the main part of the process in the second modified example of the take-out machine control program according to the present embodiment, and explains another example of the second process Pb in the flowchart shown in FIG. 4 described above. It is for the purpose of
  • step ST91 when the second process Pb in the flowchart of FIG. 4 starts, all elements of the blacklist are deleted in step ST91, and the second process Pb is ended.
  • the fact that there are no duplicates in the blacklist with new detection results after measurement means that data does not exist in the position and orientation when it was stored in the blacklist due to reasons such as the load collapsing or the workpiece being taken out. This is because it shows. Therefore, in such a case, it is preferable to delete all the data on the blacklist, which makes it possible to take out the object even more efficiently.
  • the second modification shown in FIG. 10 includes not only the take-out machine control program of the first embodiment described with reference to FIGS. 4 to 8, but also the first modification shown with reference to FIG. It can also be applied as the second process Pb in the take-out machine control program.
  • the first modification shown in FIG. 9, that is, the modification in which the process of step ST81 is added between steps ST19 and ST20, is applicable to the take-out machine control program of the second and third embodiments described later. can also be applied.
  • the second modification shown in FIG. 10 that is, the process of deleting all the elements of the blacklist in step ST91 as the second process Pb, can be applied to the extraction machine control program of the second embodiment described later. You can also do it. That is, even if the priority of the data of all the extraction positions in the extraction position list is returned to a predetermined value (for example, the initial value) as the second process Pb' in the extraction machine control program of the second embodiment described later, good.
  • the black list 23 determines whether the take-out position is a target for taking out the workpiece W by the robot 1, based on whether the take-out position is stored or not. It is used for binary control such as whether or not to do so.
  • the priority (weight) of taking out is assigned to each taking out position, instead of using the blacklist 23 to perform either-or-nothing control. Based on the priority, the order of the take-off positions from which the work W is taken out by the robot 1 is controlled.
  • the list 23 in FIG. 2 described above will be used, for example, as an extraction position list to which a new priority item is added.
  • the above-mentioned processing of the life count and stay count is performed in the same manner as in the above-mentioned first embodiment, but for example, when the life count becomes zero or less, the data in the blacklist 23 is Rather than deleting (erasing) data and treating it as an accessible retrieval position that is not stored in the blacklist 23, the priority of the data at the retrieval position whose life count has become zero or less is set to a predetermined value (for example, By returning it to the initial value "100"), it will be processed as an accessible extraction position.
  • a predetermined value for example, By returning it to the initial value "100
  • FIG. 11 is a flowchart for explaining an example of processing in the second example of the take-out machine control program according to the present embodiment
  • FIG. 12 is a list (take-out position list) in the industrial robot system shown in FIG. It is a figure showing an example. Note that the processes in steps ST11 to ST13 and ST18 to ST21 in FIG. 11 are substantially the same as those described with reference to FIG. 4, so a detailed explanation of these processes will be omitted. Furthermore, as is clear from the comparison between FIG. 12 and FIG. This corresponds to the addition of a priority item indicated by a value of ⁇ 100''.
  • the priority is an index when selecting each extraction position from the extraction position list 23, and it is sufficient to identify the priority order, so it is not limited to integers or real numbers, and if the size relationship can be defined, various It may be a symbol etc.
  • step ST13 the position and orientation of each workpiece detected in step ST12 (x, y, z, w, p, After calculating the take-out position for each work from r), the process proceeds to step ST84.
  • step ST13 if a plurality of takeout positions can be set for one workpiece depending on the shape and size of the workpiece W, the plurality of takeout positions are calculated. Furthermore, the take-out positions calculated in step ST13 do not need to be calculated for each of two or more take-out positions for all the works in the storage object. Needless to say, you can leave it alone.
  • step ST84 it is determined (comparative judgment) whether or not there is a take-out position whose priority level is lowered and which overlaps with the detection result, and it is determined that there is a take-out position whose priority level is lowered which overlaps with the detection result (YES). Once determined, the process advances to step ST85. In step ST85, the information is taken over from the overlapping take-out position with lower priority, the corresponding take-over source take-out position is deleted, and the process proceeds to step ST86 (second process Pb').
  • step ST84 determines whether there is no retrieval position with lowered priority that overlaps with the detection result (NO)
  • steps ST84 and ST85 constitute a first process Pa'.
  • the data of the retrieval position whose priority has been lowered is updated, and the process proceeds to step ST17, where it is determined whether there remain detection results and retrieval positions that can be retrieved.
  • step ST86 second process Pb'
  • step ST21 it is determined whether the operation was successful or not. If it is determined that the operation is successful (YES), the process proceeds to step ST92 (third process Pc'), and if it is determined that the operation is not successful (NO), step ST93 Proceed to (fourth process Pd').
  • step ST92 third process Pc'
  • step ST93 fourth process Pd'
  • FIG. 13 is a flowchart for explaining an example of the first process Pa′ (processing of steps ST84 and ST85) in the flowchart shown in FIG.
  • the first process Pa' starts (after calculating the take-out position for each work in step ST13)
  • step STA4 if all the extraction positions with lower priorities for which deletion flags are set are deleted, the process proceeds to step ST86 (second process Pb') in FIG. 11.
  • step ST31 determines whether or not there is unconfirmed detection result (YES)
  • step ST32 determines whether or not there is unconfirmed data at the retrieval position whose priority has been lowered
  • step STA5 it is determined whether or not there is unconfirmed data at the extraction position where the priority has been lowered (NO)
  • the process returns to step ST31.
  • step STA5 the data of the take-out position whose priority has been lowered is acquired, and the process proceeds to step STA6, where the detection result is compared with the position and orientation of the workpiece at the take-out position whose priority has been lowered, and the process further proceeds to step ST37. to determine whether there are duplicates.
  • the position/orientation (X, Y, Z, W, P, R) of the workpiece at the takeout position whose priority level has been lowered is, for example, the position (X, The fact that only Y, Z) can be used is the same as described with reference to FIG.
  • step ST37 if it is determined that the detection result and the position and orientation of the workpiece at the take-out position whose priority has been lowered overlap (YES), the process proceeds to step STA8, and if it is determined that they do not overlap (NO), step STA3 Return to In step STA8, a deletion flag is set for the data at the retrieval position whose priority has been lowered, and the process proceeds to step STA9, where the detection result and the position and orientation of the retrieval position of the data at the retrieval position whose priority has been lowered are compared. .
  • the comparison of the position and orientation data may be a comparison of only the position data (X, Y, Z).
  • the pose data (W, P, R) is just one representation format; for example, it can be expressed in other representation formats such as rotation matrix, quaternion, rotation axis and rotation angle, or polar coordinates. There may be.
  • the comparison of position and orientation data (X, Y, Z, W, P, R) may be performed by comparing only position data (X, Y, Z) or only (X, Y). This makes it possible to reduce the number of parameters to be compared.
  • step ST40 it is determined whether or not there is an overlap. If it is determined that there is an overlap (YES), the process proceeds to step STB1, and if it is determined that there is no overlap (NO), the process returns to step STA3.
  • step STB1 data other than the work ID, extraction position ID, detection position, extraction position, and deletion flag of the data of the extraction position whose priority level has been lowered is copied to the extraction position data of the detection result, and in step STA3 Return to
  • FIG. 14 is a flowchart for explaining an example of the second process Pb' in the flowchart shown in FIG. 11.
  • step STC1 it is determined whether or not there is unupdated data at a retrieval position whose priority has been lowered. If it is determined in step STC1 that there is unupdated data at the retrieval position whose priority has been lowered (YES), the process proceeds to step STC2, where it is determined that there is no unupdated data at the retrieval position whose priority has been lowered (NO). Once determined, the second process Pb' is ended. When the second process Pb' is finished, the process proceeds to step ST17 in the flowchart of FIG. 11 described above.
  • step STC2 the life count of the data at the retrieval position whose priority has been lowered is decreased by a predetermined value (for example, by "1"), and the process further proceeds to step STC3, where the life count of the data at the retrieval position whose priority has been lowered is decreased.
  • Increase the data stay count by a predetermined value for example, by "1”
  • the life count can be set to "10" as an initial value
  • the stay count can be set to "1" as an initial value.
  • step ST54 it is determined whether the life count ⁇ 0.
  • the value by which the life count is decreased in step STC2 is not a uniform fixed value, but may be weighted depending on the distance from the extraction position accessed to perform the extraction operation, for example. For example, for a retrieval position that is closest to the accessed retrieval position, the life count is decreased by "3", and for a retrieval position that is a certain distance away from the accessed retrieval position, the life count is reduced to "1". It is also possible to reduce the amount by just . In this way, a weight is set for the value that decreases the life count set at the first retrieval position based on the distance from the second retrieval position related to the object retrieval operation. That is, it is also possible to set a weight based on a predetermined condition (third condition) for the value that decreases the life count set at the extraction position.
  • a predetermined condition third condition
  • a workpiece whose takeout position is set very close to the accessed takeout position is more likely to move than a workpiece that is a certain distance away (for example, several cm). Therefore, it is preferable to greatly reduce the life count. Furthermore, it is also possible to give weight to the value that decreases the life count depending on the type of access to the workpiece, such as whether it is a take-out operation or a shifting or breaking operation. For example, when the access to the workpiece is a breaking operation, the value for decreasing the life count is set to a large value, and when the access to the workpiece is a take-out operation or a shifting operation, the value for decreasing the life count is set to a small value.
  • step ST54 If it is determined in step ST54 that the life count ⁇ 0 (YES), the process proceeds to step STC6, and the priority of the data at the retrieval position whose priority has decreased is set to a predetermined value (for example, the initial value "100"). return. On the other hand, if it is determined in step ST54 that the life count is not 0 (NO), the process proceeds to step ST55, and it is determined whether the stay count is ⁇ a predetermined value (for example, "5"). If it is determined in step ST55 that the stay count is greater than or equal to the predetermined value (YES), the process proceeds to step STC6, where the priority of the data at the retrieval position whose priority has decreased is set to a predetermined value (for example, the initial value). return. On the other hand, if it is determined in step ST55 that the stay count is not the predetermined value (NO), the process returns to step STC1 and the same process is repeated.
  • a predetermined value for example, the initial value "100"
  • a stay count is set for the first take-out position of the workpiece whose priority has decreased, and the first take-out position is within a predetermined range from the second take-out position related to the object take-out operation. If included, increases the dwell count of the first retrieval position. Then, when the stay count of the first pick-up position reaches a predetermined value (for example, "5") or more, the priority of the data at the first pick-up position of the work whose priority has been lowered is returned to the predetermined value. . That is, a stay count is set for the take-out position of the work whose priority has decreased, and the stay count set for the take-out position is increased based on a predetermined condition (first condition).
  • a predetermined condition for example, "5"
  • the priority of the data at the take-out position of the work whose priority has been lowered is returned to a predetermined value.
  • the first take-out position becomes an access target as a take-out position for a workpiece with a high priority.
  • a life count is set for the first take-out position of the work whose priority has been lowered, and the life count of the first take-out position is decreased based on the number of times the take-out operation of a given work is performed. Then, when the life count at the first take-out position becomes zero or less, the priority of the data at the take-out position of the work whose priority has been lowered is returned to a predetermined value. That is, a life count is set for the take-out position of the work whose priority has decreased, and the life count set for the take-out position is decreased based on a predetermined condition (second condition).
  • the priority of the data at the take-out position of the work whose priority has been lowered is returned to a predetermined value.
  • the first take-out position becomes an access target as a take-out position for a workpiece with a high priority.
  • the second modification described with reference to FIG. 10 can be applied as the second process Pb' in the flowchart of FIG. 11. That is, as the second process Pb' in the flowchart of FIG. 11, if there is no new detection result that overlaps with the work of the data at the take-out position whose priority has been lowered, the data at the take-out position whose priority has been lowered is deleted. You may. For example, if there is no duplicate data for the take-out position whose priority has been lowered due to new detection results after measurement, this means that when the priority is lowered due to a load collapse or a workpiece being taken out, etc. This is because it indicates that the workpiece no longer exists in the position and orientation.
  • FIG. 15 is a flowchart for explaining an example of the third process Pc' in the flowchart shown in FIG. 11.
  • step ST61 settings (predetermined settings) are acquired, and processing is performed according to the acquired settings.
  • step ST61 the data of the take-out position whose priority has been lowered overlaps with the detection result of the pick-up position of the operation is set (leftward), and the data of the take-out position of all the workpieces whose priority has been lowered is set. If it is determined to be (downward), the process advances to step STD2. Note that if it is determined in step ST61 that nothing is to be done (to the right), the process directly proceeds to step STD3.
  • step STD2 the life count is decreased by a predetermined value, and the process further proceeds to step STD3.
  • the initial value of the life count and the value by which the life count is decreased can be changed and modified in various ways depending on the specifications and requirements of the mechanical system to which this embodiment is applied.
  • step STD3 the priority of the data at the take-out position of the work whose life count is less than zero and whose priority has decreased is returned to a predetermined value (for example, the initial value "100"), and the third process Pc' is terminated. do.
  • the process proceeds to step ST17 in the flowchart of FIG. 11 described above.
  • FIG. 16 is a flowchart for explaining an example of the fourth process Pd' in the flowchart shown in FIG. 11.
  • the fourth process Pd' in the flowchart of FIG. 11 starts, settings are acquired in step ST71, and processing is performed according to the acquired settings.
  • step ST71 the data of the take-out position whose priority is lowered and overlaps with the detection result of the pick-up position of the operation is set (leftward), and the data of the take-out position of all the workpieces whose priority is lowered is set. If it is determined to be (downward), the process advances to step STE2. Note that if it is determined in step ST71 that nothing is to be done (toward the right), the process directly proceeds to step STE3.
  • step STE2 the life count is decreased by a predetermined value, and the process further proceeds to step STE3.
  • the initial value of the life count and the value by which the life count is decreased can be changed and modified in various ways depending on the specifications and requirements of the mechanical system to which this embodiment is applied. be.
  • step STE3 the priority of the data of the take-out position of the work whose life count is below zero and whose priority has decreased is returned to a predetermined value (for example, the initial value), and the process proceeds to step ST74 to obtain the settings. , perform processing according to the acquired settings.
  • step ST74 if it is determined that the priority is to be lowered by a predetermined value (downward), the process proceeds to step STE5, the priority of the action extraction position is lowered by a predetermined value, and the fourth process Pd' is ended, and the priority is not lowered. (To the right), the fourth process Pd' is immediately terminated. That is, if it is determined in step ST74 that the priority is not to be lowered and the process in step STE5 is completed, the process proceeds to step ST17 in the flowchart of FIG. 11 described above.
  • a priority item is added to the blacklist of the first embodiment, and the priority Based on this, the next extraction position to be accessed can be selected.
  • FIG. 17 is a flowchart for explaining an example of processing in the third example of the take-out machine control program according to the present embodiment
  • FIG. 18 is a list (take-out position list) in the industrial robot system shown in FIG. It is a figure showing other examples. Note that the processes in steps ST11 to ST13 and ST18 to ST21 in FIG. 17 are substantially the same as those described with reference to FIG. 4, so a detailed explanation of these processes will be omitted. Furthermore, as is clear from a comparison between FIG. 18 and FIG.
  • the take-out position list 23 used in the take-out machine control program of the third embodiment deletes the stay count and life count items in FIG. It is integrated into priority items. That is, the data processing unit 22 integrates the stay count processing and life count processing in the extraction machine control program of the second embodiment into the priority processing.
  • step ST13 the take-out position of each workpiece is calculated from the position and orientation (x, y, z, w, p, r) of each workpiece detected in step ST12, and then in step STF8. , set the priority to the extraction position. Furthermore, the process proceeds to step STF4, and it is determined whether or not there is an extraction position in the list that overlaps with the detection result.
  • step ST13 if multiple take-out positions can be set for one workpiece depending on the shape and size of the workpiece W, these multiple take-out positions are calculated, and further, in step STF8, , a priority is set for each extraction position. Furthermore, the take-out positions calculated in step ST13 do not need to be calculated for each of two or more take-out positions for all the works in the storage object. It is the same as mentioned above.
  • step STF4 determines whether or not selectable data remains in the extraction position list.
  • steps STF4 and STF5 constitute a first process Pa''. An example of the first process Pa" will be described later in detail with reference to FIG. 19, and an example of the second process Pb" will be described later in detail with reference to FIG. 20.
  • step STF7 if it is determined that there is selectable data remaining in the extraction position list (YES), the process proceeds to step ST19, and if it is determined that there is no selectable data remaining in the extraction position list (NO), the process proceeds to step ST18. move on.
  • step ST19 the detection result and the extraction position to be extracted are determined, and the process proceeds to step STF1, where it is confirmed whether interference can be avoided and whether it can be reached.
  • step STF1 it is confirmed whether interference can be avoided and whether it can be reached.
  • step STF2 it is possible to reach the take-out position without interference within the tolerance set for the industrial robot's posture and peripheral equipment relative to the take-out position. This is done by recalculating whether or not. Then, proceeding to step STF2, it is determined whether there is interference or unreachability.
  • step STF2 If it is determined in step STF2 that there will be interference or that it is unreachable (YES), the process proceeds to step STF3, where a take-out position that can be reached without interference is calculated within a set range from the take-out position, and the process proceeds to step STF9.
  • step STF2 determines whether the operation was successful or not. If it is determined that the operation was successful (YES), the process proceeds to step STG2 (third process Pc''), and if it is determined that the operation has failed (NO), step STG3 Proceed to (fourth process Pd'').
  • step STF9 it is determined whether there is a take-out position that can be reached without interference. If it is determined that there is a take-out position that can be reached (YES), the process proceeds to step ST20, and if there is no take-out position that can be reached (NO). ), the process advances to step STF7.
  • An example of the process in step STG2 (third process Pc") will be described later in detail with reference to FIG. 21, and an example of the process in step STG3 (fourth process Pd”) will be described later in FIG. This will be explained in detail with reference to 23.
  • FIG. 19 is a flowchart for explaining an example of the first process Pa" (processing of steps STF4 and STF5) in the flowchart shown in FIG. 17.
  • step ST31 it is determined whether there is a new unconfirmed detection result. If it is determined in step ST31 that there are no new unconfirmed detection results (NO), the process proceeds to step STH4, in which all data in the extraction position list for which the deletion flag is set is deleted, and the first process Pa'' is terminated.
  • step STH4 after all data in the extraction position list for which the deletion flag is set is deleted, the process proceeds to step STF6 (second process Pb'') in FIG.
  • step ST31 determines whether there is a new unconfirmed detection result (YES). If it is determined in step ST31 that there is a new unconfirmed detection result (YES), the process proceeds to step ST32, where the position/orientation and extraction position of the detection result are acquired, and the process proceeds to step STH3. In step STH3, it is determined whether there is unconfirmed data in the data in the extraction position list. If it is determined that there is unconfirmed data (YES), the process proceeds to step STH5, and if it is determined that there is no unconfirmed data (NO), Return to step ST31.
  • step STH5 the data in the take-out position list is acquired, and the process proceeds to step STH6, where the detection result and the workpiece position/orientation in the data in the take-out position list are compared, and the process proceeds to step ST37, in which it is determined whether there is any overlap. judge.
  • the position and orientation of the workpiece (X, Y, Z, W, P, R) in the above-mentioned extraction position list data is, for example, only the position (X, Y, Z) of the workpiece in the extraction position data. What can be done is the same as in the first and second embodiments described above.
  • step ST37 if it is determined that the position and orientation of the workpiece in the detection result and the data in the extraction position list overlap (YES), the process proceeds to step STH8, and if it is determined that they do not overlap (NO), the process returns to step STH3.
  • step STH8 a deletion flag is set for the data in the extraction position list, and the process proceeds to step STH9, where the detection result is compared with the position and orientation of the extraction position of the data in the extraction position list, and the process proceeds to step ST40.
  • step ST40 it is determined whether or not there is overlap. If it is determined that there is overlap (YES), the process proceeds to step STJ1, and if it is determined that there is no overlap (NO), the process returns to step STH3.
  • step STJ1 data other than the work ID, extracting position ID, detected position, extracting position, and deletion flag of the data in the compared extracting position list is copied to the extracting position data of the detection result, and the process returns to step STH3.
  • FIG. 20 is a flowchart for explaining an example of the second process Pb" in the flowchart shown in FIG. 17.
  • the second process Pb in the flowchart shown in FIG. , it is determined whether there is unupdated data in the retrieval position list. If it is determined in step STK1 that there is unupdated data in the take-out position list (YES), the process proceeds to step STK2, where data in the take-out position list is acquired, and the process proceeds to step STK3. On the other hand, in step STK1, if it is determined that there is no unupdated data in the extraction position list (NO), the second process Pb" is terminated. Then, when the second process Pb" is terminated, the flowchart of FIG. The process will proceed to step STF7.
  • step STK3 the priority of the data in the extraction position list is increased by a predetermined value. However, do not exceed the upper limit. That is, in step STK3, if there is unupdated data in the extraction position list, the priority of that data is increased by a predetermined value (for example, by "10"), but the priority is increased by an upper limit value (for example, by the initial value of "100"). ), and return to step STK1.
  • a predetermined value for example, by "10"
  • an upper limit value for example, by the initial value of "100”
  • FIG. 21 is a flowchart for explaining an example of the third process Pc'' in the flowchart shown in FIG. 17.
  • the third process Pc'' in the flowchart shown in FIG. it is determined whether there is unupdated data in the retrieval position list. If it is determined in step STL1 that there is unupdated data in the extraction position list (YES), the process proceeds to step STL2, where data in the extraction position list is acquired, and the process proceeds to step STM11. On the other hand, if it is determined in step STL1 that there is no unupdated data in the extraction position list (NO), the process proceeds to step STL3, deletes the data of the extraction position used in the operation, and ends the third process Pc''. When the third process Pc'' is completed, the process proceeds to step STF7 in the flowchart of FIG. 17 described above.
  • steps STM11 to STM15, STM21 to STM25, ..., STMN1 to STMN5 perform similar processing for the respective conditions (settings) C1, C2, ..., CN. It has become. Therefore, in the following description, the processing for condition C1 (steps STM11 to STM15) will be explained, but the same processing will be performed for steps STM21 to STM25, ..., STMN1 to STMN5, except that the target conditions are different. become.
  • step STM11 it is determined whether or not the unupdated data acquired from the extraction position list matches the condition C1. If it is determined that C1 is matched (YES), the process proceeds to step STM12, and if it is determined that the unupdated data obtained from the extraction position list matches the condition C1 (YES), the process proceeds to step STM12. If the determination is NO, the process advances to step STM21. Here, if it does not match C1 in step STM11, it is determined whether it matches C2 in step STM21, the same process is repeated, and it is determined whether or not it matches CN in step STMN1. Processing for conditions C1 to CN will be performed.
  • step STM12 the setting C1 is acquired, and the process proceeds to step STM13, where it is determined whether the data in the extraction position list is to be deleted.
  • step STM13 if it is determined that the data in the extraction position list is not to be deleted (NO), the process proceeds to step STM14, and if it is determined that the data in the extraction position list is to be deleted (YES), the process proceeds to step STM15.
  • step STM14 a predetermined value C1 is added to the priority of the data in the extraction position list, and the process returns to step STL1.
  • the priority addition process in step STM14 is made so as not to exceed the upper and lower limits.
  • step STM15 the data in the extraction position list is deleted, and the process returns to step STL1. Note that STM21 to STM25, . . . , STMN1 to STMN5 are the same as the processing of STM11 to STM15, except that the target conditions C2, .
  • the priority of the data in the take-out position list is adjusted according to various conditions C (C1, C2,...,CN), It is possible to control the extraction position that the industrial robot accesses.
  • the conditions C may be, for example, the following.Note that the conditions C are limited to, for example, those listed below. Needless to say, any combination of these and various other possible changes and modifications are possible.
  • C means that the position of the workpiece of the data in the extraction position list and the data of the extraction position used in the operation is within a predetermined distance, or that the extraction position of the data in the extraction position list and the extraction position used in the operation are There is a condition that the data extraction position is within a predetermined distance. Further, as C, there are also conditions such as no condition (applicable in any case), when the operation is a break, when the operation is a take-out, or when the operation is a shift.
  • the position of the work of the data in the extraction position list and the work of the extraction position data used for the operation is within a predetermined distance, or if the operation is a collapse.
  • the condition may be that the data retrieval position in the retrieval position list and the data retrieval position of the retrieval position used in the operation are within a predetermined distance.
  • the operation is retrieval
  • there is a condition that the position of the work of data in the retrieval position list and the work of the retrieval position data used for the operation is within a predetermined distance, or if the operation is retrieval.
  • Another possible condition is that the data retrieval position in the retrieval position list and the data retrieval position of the retrieval position used in the operation are within a predetermined distance.
  • the condition may be such that the data retrieval position in the retrieval position list and the data retrieval position of the retrieval position used in the operation are within a predetermined distance.
  • the condition that the data retrieval position of the retrieval position used for the operation is within a predetermined range from a predetermined position, or the retrieval position used for the operation
  • a possible condition is that the data retrieval position is within a predetermined range from the wall of the container.
  • the condition that the data retrieval position of the retrieval position used for the operation is within a predetermined range from the top of the container, or the retrieval position used for the operation The condition may be such that the data retrieval position is within a predetermined range from the bottom of the container.
  • each setting C (C1, C2, ..., CN)
  • delete the data in the corresponding extraction position list or change the priority by a predetermined value C1, C2, ..., CN.
  • the contents of each of the settings C1, C2, . . . , CN may change depending on predetermined conditions. That is, examples of the contents changing depending on predetermined conditions include, for example, the processing of the take-out machine control program of the first embodiment described with reference to FIGS. An example of this is to change the contents of the settings C1, C2, .
  • each of the predetermined values C1, C2, ..., CN can be, for example, a value such as "-100", "-20", “0", "10", "100”, etc. It is also possible to set variables corresponding to the distance from the take-out position used in the above to the predetermined values C1, C2, . . . , CN. Further, each of the predetermined values C1, C2, . . . , CN can be changed depending on predetermined conditions. That is, examples of values changing depending on predetermined conditions include, for example, the processing of the take-out machine control program of the first embodiment described with reference to FIGS. An example of this is to change the values of the predetermined values C1, C2, .
  • step STP1 it is determined whether there is any unupdated data in the extraction position list. If it is determined in step STP1 that there is unupdated data in the extraction position list (YES), the process proceeds to step STP2, where the data in the extraction position list is acquired, and the process proceeds to step STQ11. On the other hand, if it is determined in step STP1 that there is no unupdated data in the extraction position list (NO), the process advances to step STR11.
  • steps STQ11 to STQ15, STQ21 to STQ25, ..., STQN1 to STQN5 perform similar processing for the respective conditions (settings) D1, D2, ..., DN. It is supposed to be done. Furthermore, steps STR11 to STR15, STR21 to STR25, . . . , STRN1 to STRN5 perform similar processing for the respective conditions DD1, DD2, .
  • processing for condition D1 steps STQ11 to STQ15
  • processing for condition DD1 steps STQ11 to STR15
  • steps STQ21 to STQ25, ..., STQN1 to STQN5 and steps STR21 to STR25, ... , STRN1 to STRQN5 steps STQ21 to STQ25, ... , STRN1 to STRQN5
  • steps STQ21 to STQ25, ..., STQN1 to STQN5 steps STR21 to STR25, ... , STRN1 to STRQN5
  • step STQ11 it is determined whether or not the unupdated data acquired from the extraction position list matches the condition D1. If it is determined that D1 is matched (YES), the process proceeds to step STQ12, and if it is determined that the unupdated data obtained from the extraction position list does not match D1 ( If the determination is NO, the process advances to step STQ21.
  • step STQ11 it is determined whether it matches D2 in step STQ21, the same process is repeated, and it is determined whether it matches DN in step STQN1. The processing for the conditions D1 to DN will be performed.
  • step STQ12 the setting D1 is obtained, and the process proceeds to step STQ13, where it is determined whether the data in the extraction position list is to be deleted. If it is determined in step STQ13 that the data in the extraction position list is not to be deleted (NO), the process proceeds to step STQ14, and if it is determined that the data in the extraction position list is to be deleted (YES), the process proceeds to step STQ25.
  • step STQ14 a predetermined value D1 is added to the priority of the data in the extraction position list, and the process returns to step STP1.
  • the priority addition process in step STQ14 is made so that the upper and lower limits are not exceeded.
  • step STQ15 the data in the extraction position list is deleted, and the process returns to step STP1. Note that STQ21 to STQ25,..., STQN1 to STQN5 are the same as the processing of STQ11 to STQ15, except that the target conditions D2,..., DN are different from D1.
  • step STP1 if it is determined that there is no unupdated data in the extraction position list (NO), the process proceeds to step STR11, but in step STR11, it is determined whether the condition DD1 is met.
  • step STR11 if it is determined that it matches DD1 (YES), the process proceeds to step STR12, and if it is determined that it does not match DD1 (NO), the process proceeds to step STR21.
  • step STR21 if it does not match DD1 in step STR11, it is determined in step STR21 whether or not it matches DD2, and the same process is repeated, and in step STRN1 it is determined whether or not it matches DDN.
  • the processing for the conditions DD1 to DDN will be performed.
  • step STR12 the setting DD1 is acquired, and the process proceeds to step STR13, where it is determined whether the data in the take-out position list used for the operation is to be deleted from the take-out position list.
  • step STR13 if it is determined to delete from the take-out position list (YES), the process advances to step STR14, and if it is determined not to delete from the take-out position list (NO), the process advances to step STR15.
  • step STR14 the data of the retrieval position used for the operation is deleted from the retrieval position list, and the fourth process Pd'' is completed.
  • a predetermined value DD1 is added to the priority of the data in the retrieval position list.
  • step STR15 is made so that the upper and lower limits are not exceeded.
  • STR21 to STR25, . . . , STRN1 to STRN5 are the same as the processing of STR11 to STR15, except that the target conditions DD2, .
  • the take-out position is determined based on various conditions D (D1, D2,...,DN) and DD (DD1, DD2,..., DDN).
  • D various conditions
  • DD DD1, DD2,..., DDN
  • the conditions D and DD can be, for example, the following.
  • Conditions D and DD are not limited to, for example, those listed below, and it goes without saying that any combination of these and various other analogous changes and modifications are possible.
  • D is the condition that the position of the workpiece of the data in the extraction position list and the data in the extraction position used for the operation is within a predetermined distance, or the condition that the data extraction position in the extraction position list and the extraction used in the operation are There is a condition that the position from which the position data is extracted is within a predetermined distance.
  • there are also conditions for D such as no condition (applicable in any case), when the operation is a break, when the operation is a take-out, or when the operation is a shift.
  • the condition may be such that the data retrieval position in the retrieval position list and the data retrieval position of the retrieval position used for the operation are within a predetermined distance.
  • the operation is retrieval
  • there is a condition that the position of the work of data in the retrieval position list and the work of the retrieval position data used for the operation is within a predetermined distance, or if the operation is retrieval.
  • Another possible condition is that the data retrieval position in the retrieval position list and the data retrieval position of the retrieval position used in the operation are within a predetermined distance.
  • the condition may be such that the data retrieval position in the retrieval position list and the data retrieval position of the retrieval position used in the operation are within a predetermined distance.
  • the condition that the data retrieval position of the retrieval position used for the operation is within a predetermined range from a predetermined position, or the retrieval position used for the operation
  • a possible condition is that the data retrieval position is within a predetermined range from the wall of the container.
  • the condition that the data retrieval position of the retrieval position used for the operation is within a predetermined range from the top of the container, or the condition that the data retrieval position of the retrieval position used for the operation is within a predetermined range from the bottom of the container. good.
  • each setting D for example, the data in the corresponding extraction position list is deleted, or the priority is set by a predetermined value D1, D2, ..., DN. You can also specify whether to lower the value or lower the value.
  • variables depending on the distance from the take-out position used for the operation, etc. can also be set to predetermined values D1, D2, . . . , DN.
  • each of the predetermined values D1, D2, ..., DN may change depending on predetermined conditions.
  • changing the value according to a predetermined condition means, for example, controlling the priority of data in each retrieval position list using the life count or stay count in the processing of the retrieval machine control program of the first and second embodiments described above. You can also do that.
  • each of the predetermined values DD1, DD2,..., DDN may change in value depending on predetermined conditions, similarly to D1, D2,..., DN.
  • changing the value according to a predetermined condition means, for example, controlling the priority of data in each retrieval position list using the life count or stay count in the processing of the retrieval machine control program of the first and second embodiments described above. You can also do that.
  • FIG. 24 is a flowchart for explaining an example of the process of selecting data to be extracted from the extraction position list according to priority in the extraction machine control program of the third embodiment shown in FIG. 17.
  • list Ai another list
  • step STU7 it is determined whether there is unselected data in the list Ai. If it is determined that there is unselected data (YES), the process proceeds to step STU8, and if it is determined that there is no unselected data (NO), Proceed to step STU3.
  • step STU8 one extraction position data is selected from among the unselected data in the list Ai under predetermined conditions, and the process is ended.
  • selecting one piece of take-out position data under a predetermined condition in step STU8 means selecting based on a certain index, such as selecting data with the largest Z coordinate value of the take-out position. means.
  • step STU3 the list Ai is returned to the extraction position list, and the process proceeds to step STU2, where i is incremented. That is, the priority (selection order) is increased by one, so that the extraction position of the next priority can be selected. Furthermore, the process proceeds to step STU1 to determine whether i>N, and if it is determined that i>N is not (NO), the process returns to step STU6, and if it is determined that i>N (YES), the process ends. .
  • FIG. 25 is a flowchart for explaining another example of the process of selecting data to be extracted from the extraction position list according to priority in the extraction machine control program of the third embodiment shown in FIG. 17.
  • step STV4 when another example of the process of selecting data to be retrieved from the retrieval position list according to the priority starts, in step STV4, the retrieval position list is acquired, and the process proceeds to step STV5, where the retrieval position list is All the priorities of the data are set as priorities A1, A2, . . . , AN in ascending order.
  • the process of step STV5 those whose priority is "0" or lower are excluded.
  • the reason for excluding data whose priority is "0" or lower is to enable data not to be selected as extraction position data to be specified by priority.
  • the black list in the extraction machine control program of the first embodiment This corresponds to the process of setting the priority of the retrieved position data entered in ⁇ 0''.
  • step STV7 it is determined whether there is unselected data in the list Ai, and if it is determined that there is unselected data (YES), the process proceeds to step STV8, and if it is determined that there is no unselected data (NO), Proceed to step STV3.
  • step STV8 one piece of extraction position data is selected from among the unselected data in the list Ai under predetermined conditions, and the process is ended.
  • selecting one piece of take-out position data under a predetermined condition in step STV8 means selecting based on a certain index, such as selecting data with the largest Z coordinate value of the take-out position. means.
  • step STV3 the list Ai is returned to the extraction position list, and the process proceeds to step STV2, where i is incremented. That is, the priority level is increased by one so that the extraction position of the next priority level can be selected. Furthermore, the process proceeds to step STV1 to determine whether i>N, and if it is determined that i>N is not (NO), the process returns to step STV6, and if it is determined that i>N (YES), the process ends. .
  • take-out machine control program according to the present embodiment described above can be modified and modified in various ways depending on the specifications and requirements of the mechanical system to which the present embodiment is applied.
  • the retrieval machine control program according to the present embodiment described above may be provided by being recorded on a computer-readable non-temporary recording medium or a non-volatile semiconductor storage device, or may be provided via wired or wireless communication.
  • the computer-readable non-temporary recording medium may be, for example, an optical disk such as a CD-ROM (Compact Disc Read Only Memory) or a DVD-ROM, or a hard disk device.
  • PROM Program Programmable Read Only Memory
  • flash memory etc.
  • distribution from the server device may be provided via a wired or wireless WAN (Wide Area Network), LAN (Local Area Network), the Internet, or the like.
  • the take-out machine control device As described above in detail, according to the take-out machine control device, the take-out machine control program, and the take-out machine system according to the present embodiment, it is possible to efficiently take out objects.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Quality & Reliability (AREA)
  • Multimedia (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)
  • Feedback Control In General (AREA)
  • Supply And Installment Of Electrical Components (AREA)

Abstract

取り出し機械制御装置は、取り出し機械を制御して、複数の取り出し位置が設定された少なくとも1つの対象物を含む複数の対象物から任意の対象物を取り出す。取り出し機械制御装置は、複数の対象物の外形を計測するセンサからのデータを取り込むデータ取り込み部と、データ取り込み部からのデータを処理し、取り出し位置のそれぞれに対して、取り出し機械を制御して対象物をアクセスするときのデータを当該取り出し位置に関連付けてリストに格納するデータ処理部と、リストの出力に基づいて、取り出し機械が取り出す対象物の取り出し位置を選択する取り出し位置選択部と、取り出し位置選択部の出力に基づいて、取り出し機械を制御して対象物を取り出す取り出し機械制御部と、を備える。

Description

取り出し機械制御装置、取り出し機械制御プログラムおよび取り出し機械システム
 本開示は、取り出し機械制御装置、取り出し機械制御プログラムおよび取り出し機械システムに関する。
 近年、各種産業において、ワーク(対象物)の把持や取り出しにロボット(取り出し機械)が使用されている。このようなロボットの用途の中には、収容物内に乱雑に置かれた複数のワークの中から個々のワークの取り出しを行う用途、いわゆる「バラ積み取り出し」用途がある。
 バラ積み取り出し用途では、例えば、ステレオカメラといった3Dセンサ等による計測結果に基づいて収容物内の複数のワークの位置姿勢を検出し、ロボットのエンドエフェクタ(ハンド部)を用いてワークを取り出している。
 例えば、取り出しに失敗した情報、取り出すときにロボットが周辺機器と干渉する情報、並びに、取り出した結果による周囲の情報等をブラックリストに格納(記憶)し、そのブラックリストに基づいてロボットを制御するものが提案されている。ここで、ブラックリストは、例えば、複数のワークにおいて、ロボットにアクセスを行わせないワークが書き込まれたリストである。
 具体的に、ロボットが或るワークに対して取り出し動作を行って取り出しに失敗した場合、その取り出しに失敗したワークは、取り出しの失敗により計測した位置からズレている可能性が高いため、ブラックリストに格納する。そして、ブラックリストに格納されたワークの周辺のワークに対しては、例えば、次に3Dセンサ等による計測を行うまでロボットによる取り出し動作を行わないようにしている。
 すなわち、ロボットによる取り出し動作が失敗した場合、その取り出しに失敗したワークをブラックリストに格納し、次回以降の取り出し動作では、一定の条件を満たすまでブラックリストに格納されたワークの周辺を取り出しの対象から削除するように管理する。
 このように、ブラックリストに基づいてワークの取り出しを管理することにより、取り出し失敗の可能性の高いワークを取りに行く回数を減らし、或いは、荷崩れしたワークを取りに行かないようにすることで、効率的なワークの取り出しを可能にしている。
 従来、ワークの取り出しをより効率的に行うことを可能にするロボットの制御技術としては、様々な提案がなされている。
特開2018-144161号公報 特開2008-087074号公報
 前述したように、例えば、ロボットによりワークの取り出しを行う場合、取り出しに失敗したワークの情報をブラックリストに格納し、そのブラックリストに基づいてロボットを制御することで、ワークの取り出し効率を向上させるものが提案されている。
 ところで、近年、1つのワークに対して複数の取り出し位置を設定し、そのいずれかの取り出し位置に基づいてロボットにワークの取り出し動作を行わせるものが研究・開発されている。すなわち、1つのワークに設定された複数の取り出し位置において、或る1つの取り出し位置で取り出しに失敗しても他の取り出し位置で取り出すことができる場合があるため、ワークの取り出し効率を向上させることが可能であると考えられている。
 しかしながら、例えば、取り出しに失敗したワークの情報をブラックリストに格納して取り出し制御を行うと、同じワークの他の取り出し位置に対して取り出しを試行することができない。さらに、ワークの取り出しだけでなく、ワークを取り出し可能な位置にずらす動作やエンドエフェクタでワークの積載状態を崩す動作といったアクセスも行うことができなくなる。その結果、ワークの取り出しを効率的に行うことが困難になってしまう。
 本開示が解決しようとする課題は、対象物の取り出しを効率的に行うことができる取り出し機械制御装置、取り出し機械制御プログラムおよび取り出し機械システムの提供にある。
 本開示に係る一実施形態によれば、取り出し機械を制御して、複数の取り出し位置が設定された少なくとも1つの対象物を含む複数の対象物から任意の対象物を取り出す取り出し機械制御装置が提供される。この取り出し機械制御装置は、データ取り込み部と、データ処理部と、取り出し位置選択部と、取り出し機械制御部と、を備える。
 データ取り込み部は、複数の対象物の外形を計測するセンサからのデータを取り込む。データ処理部は、データ取り込み部からのデータを処理し、取り出し位置のそれぞれに対して、取り出し機械を制御して対象物をアクセスするときのデータを当該取り出し位置に関連付けてリストに格納する。取り出し位置選択部は、リストの出力に基づいて、取り出し機械が取り出す対象物の取り出し位置を選択する。取り出し機械制御部は、取り出し位置選択部の出力に基づいて、取り出し機械を制御して対象物を取り出す。
 本発明の目的および効果は、特に請求項において指摘される構成要素および組み合わせを用いることによって認識され且つ得られるであろう。前述の一般的な説明および後述の詳細な説明の両方は、例示的および説明的なものであり、請求の範囲に記載されている本発明を制限するものではない。
図1は、本実施形態に係る取り出し機械システムの一例としての産業用ロボットシステムを模式的に示す図である。 図2は、図1に示す産業用ロボットシステムの各機能を示すブロック図である。 図3は、図2に示す産業用ロボットシステムにおけるリスト(ブラックリスト)の一例を示す図である。 図4は、本実施形態に係る取り出し機械制御プログラムの第1実施例における処理の一例を説明するためのフローチャートである。 図5は、図4に示すフローチャートにおける第1処理の一例を説明するためのフローチャートである。 図6は、図4に示すフローチャートにおける第2処理の一例を説明するためのフローチャートである。 図7は、図4に示すフローチャートにおける第3処理の一例を説明するためのフローチャートである。 図8は、図4に示すフローチャートにおける第4処理の一例を説明するためのフローチャートである。 図9は、本実施形態に係る取り出し機械制御プログラムの第1変形例における処理の一例を説明するためのフローチャートである。 図10は、本実施形態に係る取り出し機械制御プログラムの第2変形例における処理の要部を説明するためのフローチャートである。 図11は、本実施形態に係る取り出し機械制御プログラムの第2実施例における処理の一例を説明するためのフローチャートである。 図12は、図2に示す産業用ロボットシステムにおけるリスト(取り出し位置リスト)の一例を示す図である。 図13は、図11に示すフローチャートにおける第1処理の一例を説明するためのフローチャートである。 図14は、図11に示すフローチャートにおける第2処理の一例を説明するためのフローチャートである。 図15は、図11に示すフローチャートにおける第3処理の一例を説明するためのフローチャートである。 図16は、図11に示すフローチャートにおける第4処理の一例を説明するためのフローチャートである。 図17は、本実施形態に係る取り出し機械制御プログラムの第3実施例における処理の一例を説明するためのフローチャートである。 図18は、図2に示す産業用ロボットシステムにおけるリスト(取り出し位置リスト)の他の例を示す図である。 図19は、図17に示すフローチャートにおける第1処理の一例を説明するためのフローチャートである。 図20は、図17に示すフローチャートにおける第2処理の一例を説明するためのフローチャートである。 図21は、図17に示すフローチャートにおける第3処理の一例を説明するためのフローチャートである。 図22は、図17に示すフローチャートにおける第4処理の一例を説明するためのフローチャート(その1)である。 図23は、図17に示すフローチャートにおける第4処理の一例を説明するためのフローチャート(その2)である。 図24は、図17に示す第3実施例の取り出し機械制御プログラムにおいて、優先度に応じて取り出し位置リストから取り出すデータの選択処理の一例を説明するためのフローチャートである。 図25は、図17に示す第3実施例の取り出し機械制御プログラムにおいて、優先度に応じて取り出し位置リストから取り出すデータの選択処理の他の例を説明するためのフローチャートである。
 以下、本実施形態に係る取り出し機械制御装置、取り出し機械制御プログラムおよび取り出し機械システムの実施例を、添付図面を参照して詳述する。各図面において、同一または類似の構成要素には同一または類似の符号が付与されている。また、以下に記載する実施形態は、特許請求の範囲に記載される発明の技術的範囲および用語の意義を限定するものではない。
 図1は、本実施形態に係る取り出し機械システムの一例としての産業用ロボットシステムを模式的に示す図である。ここで、本実施形態に係る取り出し機械システムは、例えば、産業用ロボットにより、乱雑に置かれた(バラ積みされた)ワークを取り出す産業用ロボットシステムに適用することができるが、産業用ロボットシステムに限定されるものではない。すなわち、本実施形態に係る取り出し機械システムは、産業用ロボットや協働ロボット等のロボットシステムだけでなく、様々な機械により種々の対象物を取り出す機能を有する取り出し機械システムに対して、幅広く適用することが可能である。
 図1において、参照符号1は産業用ロボット(取り出し機械)、2はロボット制御装置(取り出し機械制御装置)、3は3Dセンサ(三次元計測器)、4は収容物、100は産業用ロボットシステム(機械システム)、そして、Wはワーク(対象物)を示す。
 図1に示されるように、本実施形態に係る取り出し機械システムの一例としての産業用ロボットシステム100は、産業用ロボット1、ロボット制御装置2および3Dセンサ3を備える。産業用ロボット1は、ロボット制御装置2により制御され、収容物4内に乱雑に置かれた複数のワークWを、アーム11の先端に設けられたハンド部(エンドエフェクタ:把持部)12により1つずつ取り出す(把持する)ようになっている。
 3Dセンサ3は、例えば、ステレオカメラで構成され、ハンド部12の近傍に取り付けられている。3Dセンサ3により撮影された収容物4内における複数のワークWの外形の画像は、ロボット制御装置2に出力される。すなわち、3Dセンサ3の出力は、ロボット制御装置2に入力され、そこで、ワークWの位置姿勢が検出(計算)され、例えば、1つのワークWに対して、複数の取り出し位置の設定等が行われる。
 ハンド部12は、例えば、空気圧によりワークWを把持する空気圧グリッパであり、ハンド部12によるワークWの把持(取り出し)が成功したか否かは、ハンド部12に設けられた空気圧センサ12aの測定結果により判定することができる。なお、ワークWの取り出しが成功したか否かの判定は、空気圧センサ12aの測定結果に基づくものに限定されず、例えば、様々な接触センサの出力、或いは、カメラで撮影された画像におけるワークWの状態等に基づいて判定することも可能である。
 ここで、3Dセンサ3は、産業用ロボット1の移動するハンド部12の近傍に取り付けられているが、例えば、産業用ロボット1の上方の天井等に固定し、その固定された3Dセンサ3により収容物4内の複数のワークWの外形を計測(撮影)してもよい。さらに、3Dセンサ3は、ステレオカメラに限定されるものではなく、複数のワーク等の三次元形状が測定可能であれば、様々なものを適用することができる。
 図2は、図1に示す産業用ロボットシステムの各機能を示すブロック図である。図2に示されるように、ロボット制御装置2は、産業用ロボット1を制御してワークWの取り出し動作等を行うもので、データ取り込み部21、データ処理部22、リスト23、取り出し位置選択部24およびロボット制御部25を備える。なお、後に詳述する本実施形態に係る取り出し機械制御プログラムは、例えば、ロボット制御装置2におけるデータ処理部22,取り出し位置選択部24およびロボット制御部等で構成される演算処理装置により実行される。
 ここで、リスト23は、メモリ(記憶部)であり、後に詳述するブラックリストまたは取り出し位置リストとして使用される。すなわち、リスト23は、例えば、複数の取り出し位置において、産業用ロボット1にアクセスを行わせない取り出し位置が格納されたブラックリストとして適用することができる。さらに、リスト23は、例えば、それぞれの取り出し位置に対して、さらに優先度(取り出す順番)の項目を設けた取り出し位置リストとして適用することもできる。なお、以下の説明において、例えば、ブラックリストに格納されていない取り出し位置については、本実施形態の主題とは外れるため、その説明は省略されている。
 データ取り込み部21は、例えば、3Dセンサ3により計測された収容物4内にバラ積みされた(乱雑に置かれた)複数のワークWの外形のデータを取り込む。データ処理部22は、データ取り込み部21からのデータを受け取って処理し、取り出し位置のそれぞれに対して、産業用ロボット1を制御してワークWをアクセスするときのデータをその取り出し位置に関連付けてリスト23に格納する。ここで、収容物4内の複数のワークWにおいて、少なくとも1つのワークWは、ハンド部12により取り出しを行う複数の取り出し位置が設定されている。
 取り出し位置選択部24は、リスト23の出力に基づいて産業用ロボット1が取り出すワークWの取り出し位置を選択し、ロボット制御部25は、取り出し位置選択部24の出力に基づいて産業用ロボット1を制御してワークWを取り出す。すなわち、取り出し位置選択部24は、リスト23の出力に基づいて、産業用ロボット1が取り出す(アクセスする)ワークWの取り出し位置を選択する。そして、ロボット制御部25は、例えば、取り出し位置選択部24により選択された取り出し位置にアクセスし、取り出し動作を行うように産業用ロボット1を制御して、その取り出し位置を含むワークWを取り出す。
 図3は、図2に示す産業用ロボットシステムにおけるリスト(ブラックリスト)の一例を示す図であり、図4~図8を参照して詳述する本実施形態に係る取り出し機械制御プログラムの第1実施例の処理で使用されるブラックリストの例を示すものである。
 図3に示されるように、ブラックリスト23は、例えば、「ワークID」、「取り出し位置ID」、「位置姿勢(X, Y, Z, W, P, R)」、「滞在カウント」および「ライフカウント」といった項目により分類されている。このブラックリストは、例えば、ワークの取り出し動作等により取り出し位置が移動したら、或いは、ワークの取り出し動作が所定回数行われたら、格納された(書き込まれた)取り出し位置をブラックリストから削除するといった処理を行うためにも利用する。これにより、ワークの取り出し処理を効率的に行うことが可能になる。
 「ワークID」は、収納物4内の複数のワークWのそれぞれに対する識別番号(IDentification)であり、「取り出し位置ID」は、ワークWに設定された複数の取り出し位置のそれぞれに対する識別番号である。具体的に、図3に示されるように、「ワークID」が『3』になっているのは2個所あるが、これは同じワークWを示している。なお、同じワークWにおいて、『2』の「取り出し位置ID」は、2番目に取り出す位置を示し、『3』の「取り出し位置ID」は、3番目に取り出す位置を示す。
 「位置姿勢(X, Y, Z, W, P, R)」は、それぞれのワークWに設定された取り出し位置における三次元位置データ(X, Y, Z)および姿勢データ(W, P, R)である。ここで、三次元位置データ(X, Y, Z)は、基準点(原点:例えば、収容物の隅)からの距離(例えば、mm)を示し、姿勢データ(W, P, R)は各軸(X軸, Y軸, Z軸)における回転角(例えば、度)を示す。
 「滞在カウント」は、ブラックリスト23に格納されてから滞在に応じて増加させるカウントの値である。具体的に、「滞在カウント」は、任意のワークWの取り出し位置をブラックリスト23に格納するごとに『1』だけ増加(インクリメント)され、所定の値(例えば、『5』)になった取り出し位置は、ブラックリストから削除される。なお、ブラックリストから削除された取り出し位置は、例えば、ブラックリストに格納されていない取り出し位置が格納されたリスト(取り出し位置リスト)に戻されてもよい。
 「ライフカウント」は、ブラックリスト23に格納されてからのアクセス数等に応じて減少させるカウントの値である。具体的に、「ライフカウント」は、ブラックリスト23に格納された任意のワークWの取り出し位置に対して、所定の値(例えば、『10』)からワークWをアクセスするごとに『1』だけ減少(デクリメント)され、ゼロ以下になった取り出し位置は、ブラックリスト23から削除される。なお、ブラックリストから削除された取り出し位置は、例えば、ブラックリストに格納されていない取り出し位置が格納されたリスト(取り出し位置リスト)に戻されてもよい。従って、後に詳述するように、ブラックリスト23の内容は、取り出し機械(産業用ロボット)1によるワークWの取り出し動作(ずらし動作、崩し動作)等に応じて変化することになる。
 例えば、第1実施例の取り出し機械制御プログラムを実行する産業用ロボットシステム100において、データ処理部22は、データ取り込み部21で取り込んだデータを処理し、ブラックリスト23、取り出し位置選択部24およびロボット制御部25を介して、産業用ロボット1によるワークWの取り出し動作を制御する。ここで、本実施形態に係る取り出し機械システム(産業用ロボットシステム)100において、ブラックリスト23は、ワークWの取り出し位置ごとに管理するようになっている。
 例えば、1つのワークWに対して第1取り出し位置と第2取り出し位置の2つの取り出し位置が設定されているとき、第1取り出し位置で取り出しを試みて失敗した場合には、その第1取り出し位置をブラックリスト23に格納する(書き込む)。そして、次回以降の取り出しアクセスにおいて、一定の条件を満たすまで第1取り出し位置を取り出し対象(取り出し候補)から除外する。
 なお、ブラックリスト23に格納された第1取り出し位置が設定されているのと同じワークWに設定された第2取り出し位置に関しては、ブラックリスト23には格納しない。すなわち、第1取り出し位置がブラックリストに格納されたワークWの第2取り出し位置は、ブラックリストに格納されていない他の取り出し位置と同様に、取り出し対象から除外されずにアクセス可能となっている。また、例えば、ロボット制御装置2が干渉の確認を行い、干渉が起き得る取り位置に対する取り出し動作に関しては、取り出し動作を行う前に失敗とみなして、その取り出し位置をブラックリスト23に格納してもよい。さらに、実際に取り出し動作を行って失敗した取り出し位置に干渉すると判定された取り出し位置以外に、例えば、取り出し位置までの移動経路にロボットの稼働範囲外の位置や特異点の位置が含まれる場合には、その取り出し位置へ到達できないため、このような取り出し位置もブラックリストに格納するのが好ましい。
 以上において、本実施形態の適用は、狭い意味でのワークWの取り出し動作自体に限定されず、例えば、ワークWのずらし動作や崩し動作といった取り出し動作に失敗した後の動作等に関しても、同様にアクセス(試行)することができる。すなわち、本明細書において、ワークWの取り出し動作は、広い意味での取り出し位置にアクセスして行う動作であり、ずらし動作および崩し動作も含むものとする。
 ここで、ずらし動作は、例えば、産業用ロボット1のハンド部12によりワークWに設定された取り出し位置にアクセスして取り出し動作を行ったが、把持が浅くてワークを取り出せない場合に、ハンド部12によりそのワークWを移動させる動作である。また、崩し動作は、例えば、ワークWに設定された全ての取り出し位置に対するアクセスではワークを取り出せない場合に、任意のワークWに対して産業用ロボット1のハンド部12により外力を加えて(ワークWを押して)周辺の積み重なったワークを崩す動作である。なお、崩し動作も、通常、ワークWに設定された何れかの取り出し位置にアクセスして行う。
 このように、本実施形態に係る取り出し機械システムによれば、複数の取り出し位置が設定されたワークWに対するアクセスを効率的に行うことが可能になる。なお、本実施形態の適用に関して、収容物4における全てのワークWに対して複数の取り出し位置を設定している必要はなく、一部のワークWには1つの取り出し位置しか設定されていない場合であっても適用することが可能である。
 次に、演算処理装置(データ処理部22および取り出し位置選択部24等)により実行される本実施形態に係る取り出し機械制御プログラムの実施例を詳述する。
 図4は、本実施形態に係る取り出し機械制御プログラムの第1実施例における処理の一例を説明するためのフローチャートである。図4に示されるように、本実施形態に係る取り出し機械制御プログラムの第1実施例における処理の一例が開始すると、ステップST11において、例えば、3Dセンサ(3)により収容物(4)内における複数のワーク(W)の外形を計測し、ステップST12に進んで、各ワークの位置姿勢(x, y, z, w, p, r)を検出(計算)してステップST13に進む。
 ステップST13では、各ワークにおける取り出し位置を計算し、ステップST14に進む。ここで、ステップST13において、可能であれば、1つのワークに対して複数の取り出し位置を計算する。なお、ステップST13で計算する取り出し位置は、収容物内の全てのワークに対してそれぞれ2つ以上の取り出し位置を計算(設定)する必要はなく、例えば、1つの取り出し位置しか設定されていないワークが含まれていてもよいのは、前述した通りである。
 ステップST14では、検出結果と重複するブラックリスト(23)が存在するかどうかを判定(比較判定)し、検出結果と重複するブラックリストが存在する(YES)と判定すると、ステップST15に進む。ステップST15では、重複するブラックリストからブラックリストの情報を引き継ぎ、該当するブラックリストを削除して、ステップST16(第2処理Pb)に進む。
 すなわち、新たな計測に基づく取り出し位置が、既にブラックリストに格納されていて重複する場合には、そのブラックリストに格納されているデータの引き継ぎおよび利用の少なくとも一方を行う(換言すると、ブラックリストに格納されているデータを引き継ぐ、または、利用する、或いは、それら引き継ぎおよび利用の両方を行う)。一方、ステップST14において、検出結果と重複するブラックリストが存在しない(NO)と判定すると、そのままステップST16に進む。ここで、ステップST14およびST15は、第1処理Paを構成する。なお、第1処理Paの一例は、後に、図5を参照して詳述する。
 次に、ステップST16では、ブラックリストを更新し、ステップST17に進み、取り出せる検出結果と取り出し位置が残っているかどうかを判定する。ステップST17において、取り出せる検出結果と取り出し位置が残っている(YES)と判定すると、ステップST19に進み、取り出せる検出結果と取り出し位置が残っていない(NO)と判定すると、ステップST18に進む。なお、ステップST16の処理(第2処理Pb)の一例は、後に、図6を参照して詳述する。
 ステップST18では、収容物内のワークの取り出しが完了したかどうかを判定し、収容物内のワークの取り出しが完了した(YES)と判定すると処理を終了する。一方、ステップST18において、収容物内のワークの取り出しが完了していない(NO)と判定すると、ステップST11に戻って3Dセンサによる収容物内の複数のワークを計測し、上述した処理を繰り返す。
 ステップST19では、取り出す検出結果と取り出し位置を決定し、ステップST20に進んで、取り出し、ずらしおよび崩し等の動作を行い、さらに、ステップST21に進む。ステップST21では、動作が成功したかどうかを判定し、動作が成功した(YES)と判定すると、ステップST22(第3処理Pc)に進み、動作が成功しない(NO)と判定すると、ステップST23(第4処理Pd)に進む。なお、ステップST22の処理(第3処理Pc)の一例は、後に、図7を参照して詳述し、ステップST23の処理(第4処理Pd)の一例は、後に、図8を参照して詳述する。
 図5は、図4に示すフローチャートにおける第1処理Pa(ステップST14およびST15の処理)の一例を説明するためのフローチャートである。この第1処理Paは、産業用ロボット1により収容物内のワークに取り出し動作を行ったとき、例えば、その取り出し動作により移動した他のワークに対するブラックリストの処理等に関するものである。
 図5に示されるように、第1処理Paが開始すると(ステップST13の各ワークにおける取り出し位置の計算を行った後)、ステップST31において、未確認の新しい検出結果があるかどうかを判定する。
 ステップST31において、未確認の新しい検出結果がない(NO)と判定すると、ステップST34に進み、削除フラグが立っているブラックリストのデータを全てブラックリストから削除し、第1処理Paを終了する。ここで、ステップST31でNOと判定する場合は、例えば、全ての検出結果の取り出し位置と全てのブラックリストのデータに対して、ステップST32以降の処理を行った場合に相当する。そして、ステップST34において、削除フラグが立っているブラックリストのデータを全てブラックリストから削除したら、図4のステップST16(第2処理Pb)に進むことになる。
 一方、ステップST31において、未確認の新しい検出結果がある(YES)と判定すると、ステップST32に進んで、検出結果の位置姿勢と取り出し位置を取得し、ステップST33に進む。ステップST33では、ブラックリストに未確認のデータがあるかどうかを判定し、ブラックリストに未確認のデータがある(YES)と判定すると、ステップST35に進み、ブラックリストに未確認のデータがない(NO)と判定すると、ステップST31に戻る。
 ステップST35では、ブラックリストのデータを取得し、ステップST36に進んで、検出結果とブラックリストのデータの位置姿勢を比較し、さらに、ステップST37に進んで、重複しているかどうかを判定する。ここで、上述したブラックリストのデータの位置姿勢(X, Y, Z, W, P, R)は、例えば、ブラックリストのデータの位置(X, Y, Z)のみとすることもできる。
 ステップST37において、検出結果とブラックリストのデータの位置姿勢が重複している(YES)と判定すると、ステップST38に進み、重複していない(NO)と判定すると、ステップST33に戻る。ステップST38では、ブラックリストのデータに削除フラグを立て、さらに、ステップST39に進んで、検出結果とブラックリストのデータの取り出し位置の位置姿勢を比較する。ここで、位置姿勢データ(X, Y, Z, W, P, R)の比較は、位置データ(X, Y, Z)のみの比較としてもよいのは、上述した通りである。また、姿勢データ(W, P, R)は、あくまでも1つの表現形式であり、例えば、回転行列、クォータニオン(quaternion:四元数)、回転軸と回転角度、若しくは、極座標といった他の表現形式であってもよい。なお、位置姿勢データ(X, Y, Z, W, P, R)の比較は、位置データ(X, Y, Z)のみ、或いは、(X, Y)のみの比較としてもよいのは、後述する他の処理でも同様であり、これにより比較するパラメータの数を低減することが可能になる。これは、例えば、収容物内のワークを上から三次元センサ(X, Y, Z)で計測する場合、上から見えるワークの下に隠れているワークを三次元センサで計測することができないため、重複を考えて二次元センサ(X, Y)の出力により行うことも可能なためである。
 そして、ステップST40に進んで、重複しているかどうかを判定(比較判定)し、重複している(YES)と判定すると、ステップST41に進み、重複していない(NO)と判定すると、ステップST33に戻る。ステップST41では、検出結果の取り出し位置をブラックリストに追加し、比較したブラックリストのデータのワークID、取り出し位置ID、検出位置、取り出し位置、削除フラグ以外のデータをコピーし、ステップST33に戻る。
 すなわち、センサからのデータに基づいて新たに検出した取り出し位置の情報(検出結果の位置姿勢)が、既にブラックリストに格納された取り出し位置の情報(位置姿勢)に重複するとき、新たに検出した取り出し位置をブラックリストに格納する。さらに、比較したブラックリストに格納された取り出し位置のワークID、取り出し位置ID、検出位置、取り出し位置、削除フラグ以外のデータをコピーする(引き継ぐ)。そして、重複するブラックリストに格納された取り出し位置の情報を削除する。ここで、新たに検出した取り出し位置が、既にブラックリストに格納された取り出し位置と空間的に重複(位置データ(X, Y, Z)が所定の誤差範囲(閾値)で重複)するとき、そのブラックリストに格納された重複する取り出し位置の情報を引き継ぐことができる。
 なお、図5は第1処理Paの一例を説明するためのものであり、例えば、重複を判定するときの誤差範囲(マージン;閾値)、並びに、ブラックリストに追加した取り出し位置に近接して影響を受けると考えられる範囲等は様々な設定が可能である。また、ワークの取り出しに成功したときに、そのワークに設定された全ての取り出し位置を、取り出しを行うためのリストおよびブラックリストから削除するといった処理を行うのはいうまでもない。
 図6は、図4に示すフローチャートにおける第2処理Pbの一例を説明するためのフローチャートである。図6に示されるように、図4のフローチャートにおける第2処理Pbが開始すると、ステップST51において、ブラックリストに未更新のデータがあるかどうかを判定する。ステップST51において、ブラックリストに未更新のデータがある(YES)と判定すると、ステップST52に進み、ブラックリストに未更新のデータがない(NO)と判定すると、第2処理Pbを終了する。そして、第2処理Pbを終了したら、前述した図4のフローチャートおけるステップST17に進むことになる。
 ステップST52では、ブラックリストのデータのライフカウントを定められた値(例えば、『1』だけ)減少させ、さらに、ステップST53に進んで、ブラックリストのデータの滞在カウントを定められた値(例えば、『1』だけ)増加させる。ここで、例えば、ライフカウントは、初期値(ブラックリストに格納されたとき)として『10』に設定し、滞在カウントは、初期値として『1』に設定することができる。
 さらに、ステップST54に進んで、ライフカウント≦0かどうかを判定する。なお、ライフカウント≦0かどうかを判定するのは、例えば、ステップST52で減少させる定められた値を『3』に設定した場合、直前のライフカウントが『1』ならば、負になる可能性が有るためである。
 ここで、ステップST52でライフカウントを減少させる値としては、一律の固定値ではなく、例えば、取り出し動作を行うためにアクセスした取り出し位置からの距離に応じて重みを持たせてもよい。例えば、アクセスした取り出し位置の至近の取り出し位置に対しては、ライフカウントを『3』だけ減少させ、アクセスした取り出し位置からある程度の距離を隔てた取り出し位置に対しては、ライフカウントを『1』だけ減少させるようにしてもよい。このように、第1取り出し位置に設定されたライフカウントを減少させる値に対して、対象物の取り出し動作に関連する(失敗する)第2取り出し位置からの距離に基づいて重みを設定する。すなわち、取り出し位置に設定されたライフカウントを減少させる値に対して、予め定められた条件(第3条件)に基づいて重みを設定することもできる。
 これは、アクセスした取り出し位置に対して至近(例えば、数mm以内)の取り出し位置が設定されたワークは、ある程度の距離(例えば、数cm程度)を隔てたワークよりも移動する可能性が高いため、ライフカウントを大きく減少させた方が好ましいからである。さらに、ワークに対するアクセスが取り出し動作そのものか、或いは、ずらしや崩し動作かといった種類に応じて、ライフカウントを減少させる値に重みを持たせることも可能である。例えば、ワークに対するアクセスが崩し動作の場合には、ライフカウントを減少させる値を大きく設定し、ワークに対するアクセスが取り出し動作やずらし動作の場合には、ライフカウントを減少させる値を小さく設定する。
 ステップST54において、ライフカウント≦0である(YES)と判定すると、ステップST56に進み、ライフカウント≦0ではない(NO)と判定すると、ステップST55に進む。ステップST55では、滞在カウント≧定められた値(例えば、『5』)かどうかを判定する。ステップST55において、滞在カウント≧定められた値である(YES)と判定すると、ステップST56に進み、滞在カウント≧定められた値ではない(NO)と判定すると、ステップST51に戻り、同様の処理を繰り返す。
 このように、ブラックリストに格納されたワークの第1取り出し位置に対して滞在カウントを設定し、対象物の取り出し動作に関連する(失敗する)第2取り出し位置から予め定められた範囲内(周囲)に第1取り出し位置が含まれると、第1取り出し位置の滞在カウントを増加させる。そして、第1取り出し位置の滞在カウントが予め定められた値(例えば、『5』)以上になったら、第1取り出し位置をブラックリストから削除する。すなわち、ブラックリストに格納された対象物の取り出し位置に対して滞在カウントを設定し、予め定められた条件(第1条件)に基づいて取り出し位置に設定された滞在カウントを増加させる。そして、取り出し位置に設定された滞在カウントが予め定められた値以上になったら、ブラックリストに格納された対象物の取り出し位置をブラックリストから削除する。これにより、第1取り出し位置は、ブラックリストに格納されていない取り出し位置として、アクセスの対象になる。
 さらに、ブラックリストに格納されたワークの第1取り出し位置に対してライフカウントを設定し、任意のワークの取り出し動作を行った回数に基づいて第1取り出し位置のライフカウントを減少させる。そして、第1取り出し位置のライフカウントがゼロ以下になったら、第1取り出し位置をブラックリストから削除する。すなわち、ブラックリストに格納された対象物の取り出し位置に対してライフカウントを設定し、予め定められた条件(第2条件)に基づいて取り出し位置に設定されたライフカウントを減少させる。そして、取り出し位置に設定されたライフカウントがゼロ以下になったら、ブラックリストに格納された対象物の取り出し位置をブラックリストから削除する。これにより、第1取り出し位置は、ブラックリストに格納されていない取り出し位置として、アクセスの対象になる。なお、ライフカウントおよび滞在カウントの初期値や減少/増加させる値等は、本実施形態が適用される機械システムの仕様や要求に応じて、様々に変更および変形が可能である。
 図7は、図4に示すフローチャートにおける第3処理Pcの一例を説明するためのフローチャートである。図7に示されるように、図4のフローチャートにおける第3処理Pcが開始すると、ステップST61において、設定(事前に定められた設定)を取得し、取得した設定に応じて処理を行う。ステップST61において、動作の取り出し位置の検出結果と重複するブラックリストのデータを設定する(左向)、および、全てのブラックリストのデータを設定する(下向)と判定すると、ステップST62に進む。なお、ステップST61において、何もしない(右向)と判定すると、そのままステップST63に進む。
 ステップST62では、ライフカウントを定められた値減少させ、さらに、ステップST63に進む。なお、ライフカウントの初期値、および、ライフカウントを減少させる値は、本実施形態が適用される機械システムの仕様や要求に応じて、様々に変更および変形が可能である。そして、ステップST63では、ライフカウントがゼロ以下のブラックリストのデータを全て削除し、第3処理Pcを終了する。そして、第3処理Pcを終了したら、前述した図4のフローチャートおけるステップST17に進むことになる。
 図8は、図4に示すフローチャートにおける第4処理Pdの一例を説明するためのフローチャートである。図8に示されるように、図4のフローチャートにおける第4処理Pdが開始すると、ステップST71において、設定を取得し、取得した設定に応じて処理を行う。ステップST71において、動作の取り出し位置の検出結果と重複するブラックリストのデータを設定する(左向)、および、全てのブラックリストのデータを設定する(下向)と判定すると、ステップST72に進む。なお、ステップST71において、何もしない(右向)と判定すると、そのままステップST73に進む。
 ステップST72では、ライフカウントを定められた値減少させ、さらに、ステップST73に進む。なお、ライフカウントの初期値、および、ライフカウントを減少させる値は、本実施形態が適用される機械システムの仕様や要求に応じて、様々に変更および変形が可能なのは、前述した通りである。そして、ステップST73では、ライフカウントがゼロ以下のブラックリストのデータを全て削除し、ステップST74に進んで、設定を取得し、取得した設定に応じて処理を行う。
 ステップST74において、ブラックリストに追加する(下向)と判定すると、ステップST75に進み、動作の取り出し位置をブラックリストに追加して第4処理Pdを終了し、ブラックリストに追加しない(右向)と判定すると、そのまま第4処理Pdを終了する。すなわち、ステップST74でブラックリストに追加しないと判定、および、ステップST75の処理が終了した場合には、前述した図4のフローチャートおけるステップST17に進む。
 図9は、本実施形態に係る取り出し機械制御プログラムの第1変形例における処理の一例を説明するためのフローチャートである。図9と前述した図4の比較から明らかなように、本実施形態に係る取り出し機械制御プログラムの第1変形例における処理は、第1実施例のステップST19とST20の間に、新たなステップST81を追加するものである。なお、他のステップST11~ST23の処理は、図4を参照して説明したのと同様であり、それらの説明は省略する。
 図9に示されるように、本実施形態に係る取り出し機械制御プログラムの第1変形例の処理が開始し、ステップST19まで進んで、取り出す検出結果と取り出し位置を決定すると、ステップST81に進む。ステップST81では、干渉しない取り出し位置があるかどうかを判定する。すなわち、ステップST81では、例えば、産業用ロボット1のハンド部12が収容物4の側面等に干渉しない取り出し位置があるかどうかを判定し、干渉しない取り出し位置がない(NO)と判定すると、ステップST23に進む。一方、ステップST81において、干渉しない取り出し位置がある(YES)と判定すると、ステップST20に進んで、取り出し、ずらしおよび崩し等の動作を行う。
 ここで、ステップST81における処理は、周辺機器や他のワークとの干渉以外に、例えば、ロボットの動作範囲外やロボットの特異点が取り出し位置への移動ルート上にある場合にその取り出し位置に到達できない場合といった判定処理も含まれる。このような場合も、該当する取り出し位置をブラックリストに追加してもよい。すなわち、例えば、自動経路生成に関連するワークもブラックリストに追加することもできる。なお、自動経路生成とは、例えば、ロボット制御装置がロボットの現在位置から取り出し位置へ移動可能な経路(ロボットと周辺機器やワークとの干渉、ロボットの動作範囲外、ロボットの特異点等を回避した経路)をその都度計算し、計算した経路を通ってロボットがワークの取り出しを行う機能である。さらに、この自動経路生成の機能により、例えば、移動可能な経路が存在しないという結果が出た場合も、ブラックリストに追加するのが好ましい。なお、上述したブラックリストに追加する取り出し位置は、その条件を満たす複数の取り出し位置の内の一部、或いは、全てであってもよい。
 このように、本実施形態に係る取り出し機械制御プログラムの第1変形例は、図4を参照して説明した第1実施例に加えて、産業用ロボット1のハンド部12が収容物4の側面等に干渉しない取り出し位置があるかどうかを考慮するものである。なお、図9における第1処理Pa、第2処理Pb、第3処理Pcおよび第4処理Pdの詳細は、図5~図8を参照して説明したのと同様であり、本第1変形例の取り出し機械制御プログラムに対しても、そのまま適用することができる。
 図10は、本実施形態に係る取り出し機械制御プログラムの第2変形例における処理の要部を説明するためのフローチャートであり、前述した図4に示すフローチャートにおける第2処理Pbの他の例を説明するためのものである。
 図10に示されるように、図4のフローチャートにおける第2処理Pbが開始すると、ステップST91において、ブラックリストの要素を全て削除し、第2処理Pbを終了する。このように、本第2変形例によれば、ブラックリストに格納されているデータに重複する新しい検出結果が無かった場合には、そのブラックリストのデータを全て削除する。すなわち、計測後に新しい検出結果でブラックリストに重複するものがないということは、荷崩れやワークが取り出された等の理由により、ブラックリストに格納されたときの位置姿勢にデータが存在しないことを示すからである。従って、このような場合には、ブラックリストのデータを全て削除するのが好ましく、対象物の取り出しをより一層効率的に行うことが可能になる。
 ここで、図10に示す第2変形例は、図4~図8を参照して説明した第1実施例の取り出し機械制御プログラムだけでなく、図9を参照して説明した第1変形例の取り出し機械制御プログラムにおいても、第2処理Pbとして適用することができる。また、図9に示す第1変形例、すなわち、ステップST19とST20の間にステップST81の処理を追加する変形例は、後述する第2実施例および第3実施例の取り出し機械制御プログラムに対しても適用することができる。さらに、図10に示す第2変形例、すなわち、第2処理Pbとして、ステップST91のブラックリストの要素を全て削除する処理は、後述する第2実施例の取り出し機械制御プログラムに対して適用することもできる。すなわち、後述する第2実施例の取り出し機械制御プログラムにおける第2処理Pb'として、取り出し位置リストの全ての取り出し位置のデータの優先度を所定の値(例えば、初期値)に戻すようにしてもよい。
 次に、図11~図16を参照して、本実施形態に係る取り出し機械制御プログラムの第2実施例を詳述する。ここで、上述した本実施形態に係る第1実施例の機械制御プログラムにおいて、ブラックリスト23は、取り出し位置が格納されているかどうかに基づいて、その取り出し位置がロボット1によるワークWの取り出し対象とするかどうかといった二者択一的に制御するために使用されている。これに対して、本実施形態に係る第2実施例の機械制御プログラムにおいては、ブラックリスト23による二者択一的な制御ではなく、それぞれの取り出し位置に対して取り出しの優先度(重み)を設定し、その優先度に基づいて、ロボット1によるワークWの取り出し対象とする取り出し位置の順番を制御する。
 すなわち、前述した図2におけるリスト23は、例えば、新たな優先度の項目を付加した取り出し位置リストとして使用されることになる。なお、上述したライフカウントおよび滞在カウントの処理は、上述した第1実施例と同様に処理するようになっているが、例えば、ライフカウントがゼロ以下になった場合には、ブラックリスト23のデータを削除(消去)して、ブラックリスト23に格納されていないアクセス可能な取り出し位置として処理するのではなく、ライフカウントがゼロ以下になった取り出し位置のデータの優先度を所定の値(例えば、初期値『100』)に戻すことによりアクセス可能な取り出し位置として処理することになる。
 図11は、本実施形態に係る取り出し機械制御プログラムの第2実施例における処理の一例を説明するためのフローチャートであり、図12は、図2に示す産業用ロボットシステムにおけるリスト(取り出し位置リスト)の一例を示す図である。なお、図11におけるステップST11~ST13およびST18~ST21の処理は、実質的に、図4を参照して説明したのと同様なので、それらの処理の詳細な説明は省略する。また、図12と、前述した図3の比較から明らかなように、本第2実施例の取り出し機械制御プログラムで使用する取り出し位置リストは、図4のブラックリストに対して、例えば、『0』~『100』の値で示す優先度の項目を付加したものに相当する。ここで、優先度は、取り出し位置リスト23からそれぞれの取り出し位置を選択するときの指標であり、優先の順序を識別できればよいので、整数や実数に限定されず、大小関係が定義できれば、様々な記号等であってもよい。
 図11に示されるように、本第2実施例の取り出し機械制御プログラムの一例が開始し、ステップST13において、ステップST12で検出された各ワークの位置姿勢(x, y, z, w, p, r)から各ワークにおける取り出し位置を計算した後、ステップST84に進む。ここで、ステップST13において、ワークWの形状や大きさ等により、1つのワークに対して複数の取り出し位置を設定することができる場合には、それら複数の取り出し位置を計算する。また、ステップST13で計算する取り出し位置は、収容物内の全てのワークに対してそれぞれ2つ以上の取り出し位置を計算する必要はなく、例えば、1つの取り出し位置しか設定されていないワークが含まれていてもよいのはいうまでもない。
 ステップST84では、検出結果と重複する優先度が下がっている取り出し位置が存在するかどうかを判定(比較判定)し、検出結果と重複する優先度が下がっている取り出し位置が存在する(YES)と判定すると、ステップST85に進む。ステップST85では、重複する優先度が下がっている取り出し位置から情報を引き継ぎ、該当する引き継ぎ元の取り出し位置を削除して、ステップST86(第2処理Pb')に進む。
 一方、ステップST84において、検出結果と重複する優先度が下がっている取り出し位置が存在しない(NO)と判定すると、そのままステップST86に進む。ここで、ステップST84およびST85は、第1処理Pa'を構成する。なお、第1処理Pa'の一例は、後に、図13を参照して詳述する。ステップST86では、優先度が下がっている取り出し位置のデータを更新し、ステップST17に進み、取り出せる検出結果と取り出し位置が残っているかどうかを判定する。なお、ステップST86の処理(第2処理Pb')の一例は、後に、図14を参照して詳述する。
 ステップST21では、動作が成功したかどうかを判定し、動作が成功した(YES)と判定すると、ステップST92(第3処理Pc')に進み、動作が成功しない(NO)と判定すると、ステップST93(第4処理Pd')に進む。なお、ステップST92の処理(第3処理Pc')の一例は、後に、図15を参照して詳述し、ステップST93の処理(第4処理Pd')の一例は、後に、図16を参照して詳述する。
 図13は、図11に示すフローチャートにおける第1処理Pa'(ステップST84およびST85の処理)の一例を説明するためのフローチャートである。図13に示されるように、第1処理Pa'が開始すると(ステップST13の各ワークにおける取り出し位置の計算を行った後)、ステップST31において、未確認の新しい検出結果があるかどうかを判定する。ステップST31において、未確認の新しい検出結果がない(NO)と判定すると、ステップSTA4に進み、削除フラグが立っている優先度が下がっている取り出し位置を全て削除し、第1処理Pa'を終了する。ここで、ステップSTA4において、削除フラグが立っている優先度が下がっている取り出し位置を全て削除したら、図11のステップST86(第2処理Pb')に進むことになる。
 一方、ステップST31において、未確認の新しい検出結果がある(YES)と判定すると、ステップST32に進んで、検出結果の位置姿勢と取り出し位置を取得し、ステップSTA3に進む。ステップSTA3では、優先度が下がっている取り出し位置で未確認のデータがあるかどうかを判定し、優先度が下がっている取り出し位置で未確認のデータがある(YES)と判定すると、ステップSTA5に進み、優先度が下がっている取り出し位置で未確認のデータがない(NO)と判定すると、ステップST31に戻る。
 ステップSTA5では、優先度が下がっている取り出し位置のデータを取得し、ステップSTA6に進んで、検出結果と優先度が下がっている取り出し位置のワークの位置姿勢を比較し、さらに、ステップST37に進んで、重複しているかどうかを判定する。ここで、上述した優先度が下がっている取り出し位置のワークの位置姿勢(X, Y, Z, W, P, R)は、例えば、優先度が下がっている取り出し位置のワークの位置(X, Y, Z)のみとすることができるのは、図5を参照して説明したのと同様である。
 ステップST37において、検出結果と優先度が下がっている取り出し位置のワークの位置姿勢が重複している(YES)と判定すると、ステップSTA8に進み、重複していない(NO)と判定すると、ステップSTA3に戻る。ステップSTA8では、優先度が下がっている取り出し位置のデータに削除フラグを立て、さらに、ステップSTA9に進んで、検出結果と優先度が下がっている取り出し位置のデータの取り出し位置の位置姿勢を比較する。
 ここで、位置姿勢データ(X, Y, Z, W, P, R)の比較は、位置データ(X, Y, Z)のみの比較としてもよいのは、上述した通りである。さらに、姿勢データ(W, P, R)は、あくまでも1つの表現形式であり、例えば、回転行列、クォータニオン(quaternion:四元数)、回転軸と回転角度、若しくは、極座標といった他の表現形式であってもよい。なお、位置姿勢データ(X, Y, Z, W, P, R)の比較は、位置データ(X, Y, Z)のみ、或いは、(X, Y)のみの比較としてもよいのも、前述したのと同様であり、これにより比較するパラメータの数を低減することが可能になる。
 そして、ステップST40に進んで、重複しているかどうかを判定し、重複している(YES)と判定すると、ステップSTB1に進み、重複していない(NO)と判定すると、ステップSTA3に戻る。ステップSTB1では、検出結果の取り出し位置のデータに、比較した優先度が下がっている取り出し位置のデータのワークID、取り出し位置ID、検出位置、取り出し位置、削除フラグ以外のデータをコピーし、ステップSTA3に戻る。
 図14は、図11に示すフローチャートにおける第2処理Pb'の一例を説明するためのフローチャートである。図14に示されるように、図11のフローチャートにおける第2処理Pb'が開始すると、ステップSTC1において、優先度が下がっている取り出し位置に未更新のデータがあるかどうかを判定する。ステップSTC1において、優先度が下がっている取り出し位置に未更新のデータがある(YES)と判定すると、ステップSTC2に進み、優先度が下がっている取り出し位置に未更新のデータがない(NO)と判定すると、第2処理Pb'を終了する。そして、第2処理Pb'を終了したら、前述した図11のフローチャートおけるステップST17に進むことになる。
 ステップSTC2では、優先度が下がっている取り出し位置のデータのライフカウントを定められた値(例えば、『1』だけ)減少させ、さらに、ステップSTC3に進んで、優先度が下がっている取り出し位置のデータの滞在カウントを定められた値(例えば、『1』だけ)増加させる。ここで、例えば、ライフカウントは、初期値として『10』に設定し、滞在カウントは、初期値として『1』に設定することができる。さらに、ステップST54に進んで、ライフカウント≦0かどうかを判定する。
 ここで、ステップSTC2でライフカウントを減少させる値としては、一律の固定値ではなく、例えば、取り出し動作を行うためにアクセスした取り出し位置からの距離に応じて重みを持たせてもよい。例えば、アクセスした取り出し位置の至近の取り出し位置に対しては、ライフカウントを『3』だけ減少させ、アクセスした取り出し位置からある程度の距離を隔てた取り出し位置に対しては、ライフカウントを『1』だけ減少させるようにしてもよい。このように、第1取り出し位置に設定されたライフカウントを減少させる値に対して、対象物の取り出し動作に関連する第2取り出し位置からの距離に基づいて重みを設定する。すなわち、取り出し位置に設定されたライフカウントを減少させる値に対して、予め定められた条件(第3条件)に基づいて重みを設定することもできる。
 これは、アクセスした取り出し位置に対して至近(例えば、数mm以内)の取り出し位置が設定されたワークは、ある程度の距離(例えば、数cm程度)を隔てたワークよりも移動する可能性が高いため、ライフカウントを大きく減少させた方が好ましいからである。さらに、ワークに対するアクセスが取り出し動作そのものか、或いは、ずらしや崩し動作かといった種類に応じて、ライフカウントを減少させる値に重みを持たせることも可能である。例えば、ワークに対するアクセスが崩し動作の場合には、ライフカウントを減少させる値を大きく設定し、ワークに対するアクセスが取り出し動作やずらし動作の場合には、ライフカウントを減少させる値を小さく設定する。
 ステップST54において、ライフカウント≦0である(YES)と判定すると、ステップSTC6に進んで、優先度が下がっている取り出し位置のデータの優先度を所定の値(例えば、初期値『100』)に戻す。一方、ステップST54において、ライフカウント≦0ではない(NO)と判定すると、ステップST55に進み、滞在カウント≧定められた値(例えば、『5』)かどうかを判定する。ステップST55において、滞在カウント≧定められた値である(YES)と判定すると、ステップSTC6に進んで、優先度が下がっている取り出し位置のデータの優先度を所定の値(例えば、初期値)に戻す。一方、ステップST55において、滞在カウント≧定められた値ではない(NO)と判定すると、ステップSTC1に戻り、同様の処理を繰り返す。
 このように、優先度が下がっているワークの第1取り出し位置に対して滞在カウントを設定し、対象物の取り出し動作に関連する第2取り出し位置から予め定められた範囲内に第1取り出し位置が含まれると、第1取り出し位置の滞在カウントを増加させる。そして、第1取り出し位置の滞在カウントが予め定められた値(例えば、『5』)以上になったら、優先度が下がっているワークの第1取り出し位置のデータの優先度を所定の値に戻す。すなわち、優先度が下がっているワークの取り出し位置に対して滞在カウントを設定し、予め定められた条件(第1条件)に基づいて取り出し位置に設定された滞在カウントを増加させる。そして、取り出し位置に設定された滞在カウントが予め定められた値以上になったら、優先度が下がっているワークの取り出し位置のデータの優先度を所定の値に戻す。これにより、第1取り出し位置は、優先度が高いワークの取り出し位置として、アクセスの対象になる。
 さらに、優先度が下がっているワークの第1取り出し位置に対してライフカウントを設定し、任意のワークの取り出し動作を行った回数に基づいて第1取り出し位置のライフカウントを減少させる。そして、第1取り出し位置のライフカウントがゼロ以下になったら、優先度が下がっているワークの取り出し位置のデータの優先度を所定の値に戻す。すなわち、優先度が下がっているワークの取り出し位置に対してライフカウントを設定し、予め定められた条件(第2条件)に基づいて取り出し位置に設定されたライフカウントを減少させる。そして、取り出し位置に設定されたライフカウントがゼロ以下になったら、優先度が下がっているワークの取り出し位置のデータの優先度を所定の値に戻す。これにより、第1取り出し位置は、優先度が高いワークの取り出し位置として、アクセスの対象になる。滞在カウントおよびライフカウントの初期値や減少/増加させる値、並びに、優先度が下がっているワークの取り出し位置のデータの優先度を基に戻す所定の値等は、本実施形態が適用される機械システムの仕様や要求に応じて、様々に変更および変形が可能なのはいうまでもない。
 なお、図11のフローチャートにおける第2処理Pb'として、図10を参照して説明した第2変形例を適用することができるのは、前述した通りである。すなわち、図11のフローチャートにおける第2処理Pb'として、優先度の下がっている取り出し位置のデータのワークに重複する新しい検出結果が無かった場合、その優先度の下がっている取り出し位置のデータを削除してもよい。これは、例えば、計測後に新しい検出結果で優先度の下がっている取り出し位置のデータに重複するものがないということは荷崩れやワークが取り出された等の理由で優先度を下げられたときの位置姿勢にワークがもう存在しないことを示すからである。
 図15は、図11に示すフローチャートにおける第3処理Pc'の一例を説明するためのフローチャートである。図15に示されるように、図11のフローチャートにおける第3処理Pc'が開始すると、ステップST61において、設定(事前に定められた設定)を取得し、取得した設定に応じて処理を行う。ステップST61において、動作の取り出し位置の検出結果と重複する優先度が下がっている取り出し位置のデータを設定する(左向)、および、全ての優先度が下がっているワークの取り出し位置のデータを設定する(下向)と判定すると、ステップSTD2に進む。なお、ステップST61において、何もしない(右向)と判定すると、そのままステップSTD3に進む。
 ステップSTD2では、ライフカウントを定められた値減少させ、さらに、ステップSTD3に進む。なお、ライフカウントの初期値、および、ライフカウントを減少させる値は、本実施形態が適用される機械システムの仕様や要求に応じて、様々に変更および変形が可能なのは前述した通りである。そして、ステップSTD3では、ライフカウントがゼロ以下の優先度が下がっているワークの取り出し位置のデータの優先度を所定の値(例えば、初期値『100』)に戻し、第3処理Pc'を終了する。そして、第3処理Pc'を終了したら、前述した図11のフローチャートおけるステップST17に進むことになる。
 図16は、図11に示すフローチャートにおける第4処理Pd'の一例を説明するためのフローチャートである。図16に示されるように、図11のフローチャートにおける第4処理Pd'が開始すると、ステップST71において、設定を取得し、取得した設定に応じて処理を行う。ステップST71において、動作の取り出し位置の検出結果と重複する優先度が下がっている取り出し位置のデータを設定する(左向)、および、全ての優先度が下がっているワークの取り出し位置のデータを設定する(下向)と判定すると、ステップSTE2に進む。なお、ステップST71において、何もしない(右向)と判定すると、そのままステップSTE3に進む。
 ステップSTE2では、ライフカウントを定められた値減少させ、さらに、ステップSTE3に進む。なお、ライフカウントの初期値、および、ライフカウントを減少させる値は、本実施形態が適用される機械システムの仕様や要求に応じて、様々に変更および変形が可能なのは、前述したのと同様である。そして、ステップSTE3では、ライフカウントがゼロ以下の優先度が下がっているワークの取り出し位置のデータの優先度を所定の値(例えば、初期値)に戻し、ステップST74に進んで、設定を取得し、取得した設定に応じて処理を行う。
 ステップST74において、優先度を所定の値下げる(下向)と判定すると、ステップSTE5に進み、動作の取り出し位置の優先度を所定の値下げて第4処理Pd'を終了し、優先度を下げない(右向)と判定すると、そのまま第4処理Pd'を終了する。すなわち、ステップST74で優先度を下げないと判定、および、ステップSTE5の処理が終了した場合には、前述した図11のフローチャートおけるステップST17に進むことになる。
 このように、図11~図16を参照して説明した取り出し機械制御プログラムの第2実施例によれば、第1実施例のブラックリストに対して優先度の項目を追加し、その優先度に基づいて、次にアクセスする取り出し位置を選択することができる。
 以下、図17~図25を参照して、本実施形態に係る取り出し機械制御プログラムの第3実施例を詳述する。図17は、本実施形態に係る取り出し機械制御プログラムの第3実施例における処理の一例を説明するためのフローチャートであり、図18は、図2に示す産業用ロボットシステムにおけるリスト(取り出し位置リスト)の他の例を示す図である。なお、図17におけるステップST11~ST13およびST18~ST21の処理は、実質的に、図4を参照して説明したのと同様なので、それらの処理の詳細な説明は省略する。また、図18と、前述した図12の比較から明らかなように、第3実施例の取り出し機械制御プログラムで使用する取り出し位置リスト23は、図12における滞在カウントおよびライフカウントの項目を削除し、優先度の項目に統合している。すなわち、データ処理部22は、第2実施例の取り出し機械制御プログラムにおける滞在カウントの処理およびライフカウントの処理を、優先度の処理に統合して行っている。
 図17に示されるように、ステップST13において、ステップST12で検出された各ワークの位置姿勢(x, y, z, w, p, r)から各ワークにおける取り出し位置を計算した後、ステップSTF8において、取り出し位置に優先度を設定する。さらに、ステップSTF4に進んで、検出結果と重複する取り出し位置がリストに存在するかどうかを判定する。
 なお、ステップST13において、ワークWの形状や大きさ等により、1つのワークに対して複数の取り出し位置を設定することができる場合には、それら複数の取り出し位置を計算し、さらに、ステップSTF8において、それぞれの取り出し位置に対して優先度を設定する。また、ステップST13で計算する取り出し位置は、収容物内の全てのワークに対してそれぞれ2つ以上の取り出し位置を計算する必要はなく、例えば、1つの取り出し位置しか設定されていないワークが含まれていてもよいのは、前述したのと同様である。
 ステップSTF4において、検出結果と重複する取り出し位置がリストに存在する(YES)と判定すると、ステップSTF5に進んで、重複する取り出し位置から情報を引き継ぎ、元の取り出し位置を削除した後、ステップSTF6に進む。一方、ステップSTF4において、検出結果と重複する取り出し位置がリストに存在しない(NO)と判定すると、そのままステップSTF6(第2処理Pb")に進む。ステップSTF6では、取り出し位置リストのデータを更新し、ステップSTF7に進んで、取り出し位置リストに選択可能なデータが残っているかどうかを判定する。ここで、ステップSTF4およびSTF5は、第1処理Pa"を構成する。なお、第1処理Pa"の一例は、後に、図19を参照して詳述し、第2処理Pb"の一例は、後に、図20を参照して詳述する。
 ステップSTF7において、取り出し位置リストに選択可能なデータが残っている(YES)と判定すると、ステップST19に進み、取り出し位置リストに選択可能なデータが残っていない(NO)と判定すると、ステップST18に進む。
 ステップST19では、取り出す検出結果と取り出し位置を決定し、ステップSTF1に進み、干渉回避や到達可能かを確認する。ここで、干渉回避や到達可能かの確認は、取り出し位置の計算の後に、その取り出し位置に対する産業用ロボットの姿勢および周辺機器に設定された許容範囲以内で干渉せずにその取り出し位置まで到達可能かどうかを再計算する処理により行われる。そして、ステップSTF2に進んで、干渉する、または到達不可能かどうかを判定する。
 ステップSTF2において、干渉する、または到達不可能である(YES)と判定すると、ステップSTF3に進んで、取り出し位置から設定範囲内で干渉せず到達可能な取り出し位置を計算し、ステップSTF9に進む。一方、ステップSTF2において、干渉する、または到達不可能ではない(NO)と判定すると、ステップST20に進んで、取り出し、ずらしおよび崩し等の動作を行い、さらに、ステップST21に進む。ステップST21では、動作が成功したかどうかを判定し、動作が成功した(YES)と判定すると、ステップSTG2(第3処理Pc")に進み、動作が失敗した(NO)と判定すると、ステップSTG3(第4処理Pd")に進む。
 ステップSTF9では、干渉せず、かつ、到達可能な取り出し位置があるかどうかを判定し、到達可能な取り出し位置がある(YES)と判定するとステップST20に進み、到達可能な取り出し位置がない(NO)と判定するとステップSTF7に進む。なお、ステップSTG2の処理(第3処理Pc")の一例は、後に、図21を参照して詳述し、ステップSTG3の処理(第4処理Pd")の一例は、後に、図22および図23を参照して詳述する。
 図19は、図17に示すフローチャートにおける第1処理Pa"(ステップSTF4およびSTF5の処理)の一例を説明するためのフローチャートである。図19に示されるように、第1処理Pa"が開始すると(ステップSTF8の取り出し位置に優先度を設定した後)、ステップST31において、未確認の新しい検出結果があるかどうかを判定する。ステップST31において、未確認の新しい検出結果がない(NO)と判定すると、ステップSTH4に進み、削除フラグが立っている取り出し位置リストのデータを全て削除し、第1処理Pa"を終了する。ここで、ステップSTH4において、削除フラグが立っている取り出し位置リストのデータを全て削除したら、図17のステップSTF6(第2処理Pb")に進むことになる。
 一方、ステップST31において、未確認の新しい検出結果がある(YES)と判定すると、ステップST32に進んで、検出結果の位置姿勢と取り出し位置を取得し、ステップSTH3に進む。ステップSTH3では、取り出し位置リストのデータで未確認のデータがあるかどうかを判定し、未確認のデータがある(YES)と判定すると、ステップSTH5に進み、未確認のデータがない(NO)と判定すると、ステップST31に戻る。
 ステップSTH5では、取り出し位置リストのデータを取得し、ステップSTH6に進んで、検出結果と取り出し位置リストのデータのワークの位置姿勢を比較し、さらに、ステップST37に進んで、重複しているかどうかを判定する。なお、上述した取り出し位置リストのデータのワークの位置姿勢(X, Y, Z, W, P, R)は、例えば、取り出し位置のデータのワークの位置(X, Y, Z)のみ等とすることができるのは、前述した第1および第2実施例と同様である。
 ステップST37において、検出結果と取り出し位置リストのデータのワークの位置姿勢が重複している(YES)と判定すると、ステップSTH8に進み、重複していない(NO)と判定すると、ステップSTH3に戻る。ステップSTH8では、取り出し位置リストのデータに削除フラグを立て、さらに、ステップSTH9に進んで、検出結果と取り出し位置リストのデータの取り出し位置の位置姿勢を比較し、ステップST40に進む。
 ステップST40では、重複しているかどうかを判定し、重複している(YES)と判定すると、ステップSTJ1に進み、重複していない(NO)と判定すると、ステップSTH3に戻る。ステップSTJ1では、検出結果の取り出し位置のデータに、比較した取り出し位置リストのデータのワークID、取り出し位置ID、検出位置、取り出し位置、削除フラグ以外のデータをコピーし、ステップSTH3に戻る。
 図20は、図17に示すフローチャートにおける第2処理Pb"の一例を説明するためのフローチャートである。図20に示されるように、図17のフローチャートにおける第2処理Pb"が開始すると、ステップSTK1において、取り出し位置リストに未更新のデータがあるかどうかを判定する。ステップSTK1において、取り出し位置リストに未更新のデータがある(YES)と判定すると、ステップSTK2に進んで、取り出し位置リストのデータを取得し、ステップSTK3に進む。一方、ステップSTK1において、取り出し位置リストに未更新のデータがない(NO)と判定すると、第2処理Pb"を終了する。そして、第2処理Pb"を終了したら、前述した図17のフローチャートおけるステップSTF7に進むことになる。
 ステップSTK3では、取り出し位置リストのデータの優先度を定められた値増加する。ただし、上限値を超えないようにする。すなわち、ステップSTK3では、取り出し位置リストに未更新のデータがある場合、そのデータの優先度を定められた値(例えば、『10』だけ)増加するが、上限値(例えば、初期値『100』)を超えないようにして、ステップSTK1に戻る。
 図21は、図17に示すフローチャートにおける第3処理Pc"の一例を説明するためのフローチャートである。図21に示されるように、図17のフローチャートにおける第3処理Pc"が開始すると、ステップSTL1において、取り出し位置リストに未更新のデータがあるかどうかを判定する。ステップSTL1において、取り出し位置リストに未更新のデータがある(YES)と判定すると、ステップSTL2に進んで、取り出し位置リストのデータを取得し、ステップSTM11に進む。一方、ステップSTL1において、取り出し位置リストに未更新のデータがない(NO)と判定すると、ステップSTL3に進んで、動作に使用した取り出し位置のデータを削除し、第3処理Pc"を終了する。そして、第3処理Pc"を終了したら、前述した図17のフローチャートおけるステップSTF7に進むことになる。
 ここで、図21に示されるように、ステップSTM11~STM15,STM21~STM25,…,STMN1~STMN5は、それぞれの条件(設定)C1,C2,…,CNに対して同様の処理を行うようになっている。そこで、以下の記載では、条件C1に対する処理(ステップSTM11~STM15)を説明するが、ステップSTM21~STM25,…,STMN1~STMN5に関しても、対象とする条件が異なる以外は、同様の処理を行うことになる。
 すなわち、ステップSTM11では、取り出し位置リストから取得した未更新のデータが条件そのC1に合致するかどうかを判定し、C1に合致する(YES)と判定すると、ステップSTM12に進み、C1に合致しない(NO)と判定すると、ステップSTM21に進む。ここで、ステップSTM11でC1に合致しない場合には、ステップSTM21でC2に合致するかどうかを判定し、同様の処理を繰り返して、ステップSTMN1でCNに合致するかどうかを判定することで、全ての条件C1~CNに対する処理を行うことになる。
 ステップSTM12では、設定C1を取得し、ステップSTM13に進んで、取り出し位置リストのデータを削除するかどうかを判定する。ステップSTM13において、取り出し位置リストのデータを削除しない(NO)と判定すると、ステップSTM14に進み、取り出し位置リストのデータを削除する(YES)と判定すると、ステップSTM15に進む。
 ステップSTM14では、取り出し位置リストのデータの優先度に所定値第C1を加算させて、ステップSTL1に戻る。ただし、ステップSTM14における優先度の加算処理は、上限下限の範囲を超えないようにする。また、ステップSTM15では、取り出し位置リストのデータを削除し、ステップSTL1に戻る。なお、STM21~STM25,…,STMN1~STMN5は、対象とする条件C2,…,CNがC1と異なる以外は、STM11~STM15の処理と同様である。
 このように、本第3実施例の取り出し機械制御プログラムにおける第3処理Pc"では、様々な条件C(C1,C2,…,CN)により、取り出し位置リストのデータの優先度を調整して、産業用ロボットがアクセスする取り出し位置を制御することができる。ここで、これら条件Cとしては、例えば、以下のようなものが考えられる。なお、条件Cは、例えば、以下に列挙したものに限定されるものではなく、また、これらの任意の組み合わせや他の類推可能な様々な変更および変形が可能なのはいうまでもない。
 すなわち、Cとしては、取り出し位置リストのデータのワークと動作に使用した取り出し位置のデータのワークの位置が所定の距離以内、或いは、取り出し位置リストのデータの取り出し位置と動作に使用した取り出し位置のデータの取り出し位置が所定の距離以内といった条件がある。さらに、Cとしては、条件なし(どの場合でも当てはまる)、動作が崩しの場合、動作が取り出しの場合、或いは、動作がずらしの場合といった条件もある。
 また、例えば、動作が崩しの場合であって、取り出し位置リストのデータのワークと動作に使用した取り出し位置のデータのワークの位置が所定の距離以内といった条件、或いは、動作が崩しの場合であって、取り出し位置リストのデータの取り出し位置と動作に使用した取り出し位置のデータの取り出し位置が所定の距離以内といった条件でもよい。
 同様に、動作が取り出しの場合であって、取り出し位置リストのデータのワークと動作に使用した取り出し位置のデータのワークの位置が所定の距離以内といった条件、或いは、動作が取り出しの場合であって、取り出し位置リストのデータの取り出し位置と動作に使用した取り出し位置のデータの取り出し位置が所定の距離以内といった条件も考えられる。さらに、動作がずらしの場合であって、取り出し位置リストのデータのワークと動作に使用した取り出し位置のデータのワークの位置が所定の距離以内といった条件、或いは、動作がずらしの場合であって、取り出し位置リストのデータの取り出し位置と動作に使用した取り出し位置のデータの取り出し位置が所定の距離以内といった条件でもよい。
 さらに、動作が干渉や到達不可能の理由により失敗した場合であって、動作に使用した取り出し位置のデータの取り出し位置が所定の位置から所定の範囲以内といった条件、或いは、動作に使用した取り出し位置のデータの取り出し位置がコンテナの壁から所定の範囲以内といった条件も考えられる。また、動作が干渉や到達不可能の理由により失敗した場合であって、動作に使用した取り出し位置のデータの取り出し位置がコンテナの上面から所定の範囲以内といった条件、或いは、動作に使用した取り出し位置のデータの取り出し位置がコンテナの底面から所定の範囲以内といった条件でもよい。
 ここで、設定C(C1,C2,…,CN)の各々に対しては、例えば、該当する取り出し位置リストのデータを削除するか、或いは、所定値C1,C2,…,CNだけ優先度を下げるかのどちらかをそれぞれ定めることもできる。さらに、例えば、設定C1,C2,…,CNの各々は、所定の条件によって内容が変わってもよい。すなわち、所定の条件によって内容が変わる例としては、例えば、図3~図8を参照して説明した第1実施例の取り出し機械制御プログラムの処理および図11~図16を参照して説明した第2実施例の取り出し機械制御プログラムの処理におけるライフカウントや滞在カウントにより設定C1,C2,…,CNの内容(選択する取り出し位置の条件や優先度)を変化させることが挙げられる。
 また、所定値C1,C2,…,CNの各々は、例えば、『-100』,『-20』,『0』,『10』,『100』等の値とすることができ、また、動作に使用した取り出し位置からの距離等に応じた変数を所定値C1,C2,…,CNとすることも可能である。さらに、所定値C1,C2,…,CNの各々は、所定の条件によって値が変わるようにすることもできる。すなわち、所定の条件によって値が変わる例としては、例えば、図3~図8を参照して説明した第1実施例の取り出し機械制御プログラムの処理および図11~図16を参照して説明した第2実施例の取り出し機械制御プログラムの処理におけるライフカウントや滞在カウントの値によって所定値C1,C2,…,CNの値を変化させることが挙げられる。
 図22および図23は、図17に示すフローチャートにおける第4処理Pd"の一例を説明するためのフローチャートである。図22および図23に示されるように、図17のフローチャートにおける第4処理Pd"が開始すると、ステップSTP1において、取り出し位置リストに未更新のデータがあるかどうかを判定する。ステップSTP1において、取り出し位置リストに未更新のデータがある(YES)と判定すると、ステップSTP2に進んで、取り出し位置リストのデータを取得してステップSTQ11に進む。一方、ステップSTP1において、取り出し位置リストに未更新のデータがない(NO)と判定すると、ステップSTR11に進む。
 ここで、図22および図23に示されるように、ステップSTQ11~STQ15,STQ21~STQ25,…,STQN1~STQN5は、それぞれの条件(設定)D1,D2,…,DNに対して同様の処理を行うようになっている。さらに、ステップSTR11~STR15,STR21~STR25,…,STRN1~STRN5は、それぞれの条件DD1,DD2,…,DDNに対して同様の処理を行うようになっている。そこで、以下の記載では、条件D1に対する処理(ステップSTQ11~STQ15)および条件DD1対する処理(ステップSTR11~STR15)を説明するが、ステップSTQ21~STQ25,…,STQN1~STQN5およびステップSTR21~STR25,…,STRN1~STRQN5に関しても、対象とする条件が異なる以外は、同様の処理を行うことになる。
 すなわち、ステップSTQ11では、取り出し位置リストから取得した未更新のデータが条件そのD1に合致するかどうかを判定し、D1に合致する(YES)と判定すると、ステップSTQ12に進み、D1に合致しない(NO)と判定すると、ステップSTQ21に進む。ここで、ステップSTQ11でD1に合致しない場合には、ステップSTQ21でD2に合致するかどうかを判定し、同様の処理を繰り返して、ステップSTQN1でDNに合致するかどうかを判定することで、全ての条件D1~DNに対する処理を行うことになる。
 ステップSTQ12では、設定D1を取得し、ステップSTQ13に進んで、取り出し位置リストのデータを削除するかどうかを判定する。ステップSTQ13において、取り出し位置リストのデータを削除しない(NO)と判定すると、ステップSTQ14に進み、取り出し位置リストのデータを削除する(YES)と判定すると、ステップSTQ25に進む。
 ステップSTQ14では、取り出し位置リストのデータの優先度に所定値第D1を加算させて、ステップSTP1に戻る。ただし、ステップSTQ14における優先度の加算処理は、上限下限の範囲を超えないようにする。また、ステップSTQ15では、取り出し位置リストのデータを削除し、ステップSTP1に戻る。なお、STQ21~STQ25,…,STQN1~STQN5は、対象とする条件D2,…,DNがD1と異なる以外は、STQ11~STQ15の処理と同様である。
 次に、ステップSTP1において、取り出し位置リストに未更新のデータがない(NO)と判定するとステップSTR11に進むが、ステップSTR11では、条件そのDD1に合致するかどうかを判定する。ステップSTR11において、DD1に合致する(YES)と判定すると、ステップSTR12に進み、DD1に合致しない(NO)と判定すると、ステップSTR21に進む。ここで、ステップSTR11でDD1に合致しない場合には、ステップSTR21でDD2に合致するかどうかを判定し、同様の処理を繰り返して、ステップSTRN1でDDNに合致するかどうかを判定することで、全ての条件DD1~DDNに対する処理を行うことになる。
 ステップSTR12では、設定DD1を取得し、ステップSTR13に進んで、動作に使用した取り出し位置リストのデータを取り出し位置リストから削除するかどうかを判定する。ステップSTR13において、取り出し位置リストから削除する(YES)と判定すると、ステップSTR14に進み、取り出し位置リストから削除しない(NO)と判定すると、ステップSTR15に進む。ステップSTR14では、動作に使用した取り出し位置のデータを取り出し位置リストから削除し、第4処理Pd"を終了する。また、ステップSTR15では、取り出し位置リストのデータの優先度に所定値第DD1を加算させて、第4処理Pd"を終了する。ただし、ステップSTR15における優先度の加算処理は、上限下限の範囲を超えないようにする。なお、STR21~STR25,…,STRN1~STRN5は、対象とする条件DD2,…,DDNがDD1と異なる以外は、STR11~STR15の処理と同様である。
 このように、本第3実施例の取り出し機械制御プログラムにおける第4処理Pd"では、様々な条件D(D1,D2,…,DN)およびDD(DD1,DD2,…,DDN)により、取り出し位置リストのデータの優先度を調整して、産業用ロボットがアクセスする取り出し位置を制御することができる。ここで、これら条件DおよびDDとしては、例えば、以下のようなものが考えられる。なお、条件DおよびDDは、例えば、以下に列挙したものに限定されるものではなく、また、これらの任意の組み合わせや他の類推可能な様々な変更および変形が可能なのはいうまでもない。
 すなわち、Dとしては、取り出し位置リストのデータのワークと動作に使用した取り出し位置のデータのワークの位置が所定の距離以内といった条件、或いは、取り出し位置リストのデータの取り出し位置と動作に使用した取り出し位置のデータの取り出し位置が所定の距離以内といった条件がある。さらに、Dとしては、条件なし(どの場合でも当てはまる)、動作が崩しの場合、動作が取り出しの場合、或いは、動作がずらしの場合といった条件もある。
 また、例えば、動作が崩しの場合であって、動作が崩しの場合で、取り出し位置リストのデータのワークと動作に使用した取り出し位置のデータのワークの位置が所定の距離以内といった条件、或いは、動作が崩しの場合で、取り出し位置リストのデータの取り出し位置と動作に使用した取り出し位置のデータの取り出し位置が所定の距離以内といった条件でもよい。
 同様に、動作が取り出しの場合であって、取り出し位置リストのデータのワークと動作に使用した取り出し位置のデータのワークの位置が所定の距離以内といった条件、或いは、動作が取り出しの場合であって、取り出し位置リストのデータの取り出し位置と動作に使用した取り出し位置のデータの取り出し位置が所定の距離以内といった条件も考えられる。さらに、動作がずらしの場合であって、取り出し位置リストのデータのワークと動作に使用した取り出し位置のデータのワークの位置が所定の距離以内といった条件、或いは、動作がずらしの場合であって、取り出し位置リストのデータの取り出し位置と動作に使用した取り出し位置のデータの取り出し位置が所定の距離以内といった条件でもよい。
 さらに、動作が干渉や到達不可能の理由により失敗した場合であって、動作に使用した取り出し位置のデータの取り出し位置が所定の位置から所定の範囲以内といった条件、或いは、動作に使用した取り出し位置のデータの取り出し位置がコンテナの壁から所定の範囲以内といった条件も考えられる。また、動作に使用した取り出し位置のデータの取り出し位置がコンテナの上面から所定の範囲以内といった条件、或いは、動作に使用した取り出し位置のデータの取り出し位置がコンテナの底面から所定の範囲以内といった条件でもよい。
 ここで、設定D(D1,D2,…,DN)の各々に対しては、例えば、該当する取り出し位置リストのデータを削除するか、或いは、所定値D1,D2,…,DNだけ優先度を下げるかのどちらかをそれぞれ定めることもできる。なお、所定値D1,D2,…,DNの各々としては、例えば、『-100』,『-20』,『0』,『10』,『100』等の値である。また、動作に使用した取り出し位置からの距離等に応じた変数を所定値D1,D2,…,DNとすることもできる。また、所定値D1,D2,…,DNの各々は、所定の条件によって値が変わってもよい。さらに、所定の条件によって値を変えるとは、例えば、前述した第1および第2実施例の取り出し機械制御プログラムの処理におけるライフカウントや滞在カウントにより、各取り出し位置リストのデータの優先度を制御することもできる。
 さらに、DD(DD1,DD2,…,DDN)としては、前述したC(C1,C2,…,CN)およびD(D1,D2,…,DN)と同様のものを考えることができる。なお、所定値DD1,DD2,…,DDNの各々としては、例えば、『-100』,『-20』,『0』,『10』,『100』等の値である。或いは、所定値DD1,DD2,…,DDNの各々として、例えば、壁(収容物4の所定の面)からの距離等に応じた変数としてもよい。また、所定値DD1,DD2,…,DDNの各々は、D1,D2,…,DNと同様に、所定の条件によって値が変わってもよい。さらに、所定の条件によって値を変えるとは、例えば、前述した第1および第2実施例の取り出し機械制御プログラムの処理におけるライフカウントや滞在カウントにより、各取り出し位置リストのデータの優先度を制御することもできる。
 図24は、図17に示す第3実施例の取り出し機械制御プログラムにおいて、優先度に応じて取り出し位置リストから取り出すデータの選択処理の一例を説明するためのフローチャートである。図24に示されるように、優先度に応じて取り出し位置リストから取り出すデータの選択処理の一例が開始すると、ステップSTU4において、取り出し位置リストを取得し、ステップSTU5に進んで、取り出し位置リストのデータの持つ全ての優先度を大きい順に優先度A1,優先度A2,…,優先度ANとする。さらに、ステップSTU6に進んで、優先度Ai(i=1,2,3,…,N)のデータを別のリスト(以下、リストAiと呼ぶ)に移して、ステップSTU7に進む。
 ステップSTU7では、リストAiに未選択のデータがあるかどうかを判定し、未選択のデータがある(YES)と判定すると、ステップSTU8に進み、未選択のデータがない(NO)と判定すると、ステップSTU3に進む。ステップSTU8では、所定の条件でリストAiの未選択のデータの中から取り出し位置データを1つ選択し、処理を終了する。ここで、ステップSTU8における所定の条件で取り出し位置データを1つ選択するとは、例えば、取り出し位置のZ座標の値が一番大きいデータを選択するというように、或る指標に基づいて選択することを意味する。
 一方、ステップSTU3では、リストAiを取り出し位置リストに戻し、ステップSTU2に進んで、iをインクリメントする。すなわち、優先度(選択する順番)を1つ増加して、次の優先度の取り出し位置を選択できるようにする。さらに、ステップSTU1に進んで、i>Nかどうかを判定し、i>Nではない(NO)と判定すると、ステップSTU6に戻り、i>Nである(YES)と判定すると、処理を終了する。
 図25は、図17に示す第3実施例の取り出し機械制御プログラムにおいて、優先度に応じて取り出し位置リストから取り出すデータの選択処理の他の例を説明するためのフローチャートである。図25に示されるように、優先度に応じて取り出し位置リストから取り出すデータの選択処理の他の例が開始すると、ステップSTV4において、取り出し位置リストを取得し、ステップSTV5に進んで、取り出し位置リストのデータの持つ全ての優先度を大きい順に優先度A1,A2,…,ANとする。ここで、ステップSTV5の処理において、優先度が『0』以下のものを除くものとする。なお、優先度が『0』以下のものを除くのは、取り出し位置データとして選択しないデータを優先度によって指定できるようにするためであり、例えば、第1実施例の取り出し機械制御プログラムにおけるブラックリストに入った取り出し位置データの優先度を『0』にする処理に相当する。
 さらに、ステップSTV6に進んで、優先度Ai(i=1,2,3,…,N)のデータを別のリスト(以下、リストAiと呼ぶ)に移して、ステップSTV7に進む。ステップSTV7では、リストAiに未選択のデータがあるかどうかを判定し、未選択のデータがある(YES)と判定すると、ステップSTV8に進み、未選択のデータがない(NO)と判定すると、ステップSTV3に進む。ステップSTV8では、所定の条件でリストAiの未選択のデータの中から取り出し位置データを1つ選択し、処理を終了する。ここで、ステップSTV8における所定の条件で取り出し位置データを1つ選択するとは、例えば、取り出し位置のZ座標値が一番大きいデータを選択するというように、或る指標に基づいて選択することを意味する。
 一方、ステップSTV3では、リストAiを取り出し位置リストに戻し、ステップSTV2に進んで、iをインクリメントする。すなわち、優先度を1つ増加して、次の優先度の取り出し位置を選択できるようにする。さらに、ステップSTV1に進んで、i>Nかどうかを判定し、i>Nではない(NO)と判定すると、ステップSTV6に戻り、i>Nである(YES)と判定すると、処理を終了する。
 なお、上述した本実施形態に係る取り出し機械制御プログラムは、本実施形態が適用される機械システムの仕様や要求等に応じて、様々な変更および変形が可能なのはいうまでもない。
 以上において、上述した本実施形態に係る取り出し機械制御プログラムは、コンピュータ読み取り可能な非一時的記録媒体や不揮発性半導体記憶装置に記録して提供してもよく、また、有線または無線を介して提供してもよい。ここで、コンピュータ読み取り可能な非一時的記録媒体としては、例えば、CD-ROM(Compact Disc Read Only Memory)やDVD-ROM等の光ディスク、或いは、ハードディスク装置等が考えられる。また、不揮発性半導体記憶装置としては、PROM(Programmable Read Only Memory)やフラッシュメモリ(Flash Memory)等が考えられる。さらに、サーバ装置からの配信としては、有線または無線によるWAN(Wide Area Network)、LAN(Local Area Network)またはインターネット等を介した提供が考えられる。
 以上、詳述したように、本実施形態に係る取り出し機械制御装置、取り出し機械制御プログラムおよび取り出し機械システムによれば、対象物の取り出しを効率的に行うことが可能になる。
 本開示の実施形態について詳述したが、本開示は上述した個々の実施形態に限定されるものではない。これらの実施形態は、発明の要旨を逸脱しない範囲で、または、特許請求の範囲に記載された内容とその均等物から導き出される本発明の思想および趣旨を逸脱しない範囲で、種々の追加、置き換え、変更、部分的削除等が可能である。例えば、上述した実施形態において、各動作の順序や各処理の順序は、一例として示したものであり、これらに限定されるものではない。また、上述した実施形態の説明に数値または数式が用いられている場合も同様である。
 1 産業用ロボット(取り出し機械)
 2 ロボット制御装置(取り出し機械制御装置)
 3  3Dセンサ(三次元計測器)
 4  収容物
 11 アーム
 12 ハンド部(把持部)
 12a 空気圧センサ
 21 データ取り込み部
 22 データ処理部
 23 リスト(ブラックリスト,取り出し位置リスト)
 24  取り出し位置選択部
 25  ロボット制御部
 100  産業用ロボットシステム(取り出し機械システム)
 W  ワーク(対象物)

Claims (22)

  1.  取り出し機械を制御して、複数の取り出し位置が設定された少なくとも1つの対象物を含む複数の対象物から任意の対象物を取り出す取り出し機械制御装置であって、
     前記複数の対象物の外形を計測するセンサからのデータを取り込むデータ取り込み部と、
     前記データ取り込み部からのデータを処理し、前記取り出し位置のそれぞれに対して、前記取り出し機械を制御して対象物をアクセスするときのデータを当該取り出し位置に関連付けてリストに格納するデータ処理部と、
     前記リストの出力に基づいて、前記取り出し機械が取り出す対象物の取り出し位置を選択する取り出し位置選択部と、
     前記取り出し位置選択部の出力に基づいて、前記取り出し機械を制御して前記対象物を取り出す取り出し機械制御部と、を備える取り出し機械制御装置。
  2.  前記リストは、前記取り出し機械にアクセスを行わせない取り出し位置を格納するブラックリストであり、
     前記データ処理部は、前記取り出し位置のそれぞれに対して、少なくとも、当該取り出し位置に基づいて前記取り出し機械を制御して前記対象物を取り出す取り出し動作に関連する取り出し位置、および、当該取り出し動作に関連する取り出し位置とは別の取出し位置のいずれか1つを前記ブラックリストに格納する、請求項1に記載の取り出し機械制御装置。
  3.  前記データ処理部は、さらに、
      前記ブラックリストに格納された前記取り出し位置に対して滞在カウントを設定し、
      予め定められた第1条件に基づいて前記取り出し位置に設定された前記滞在カウントを増加させ、
      前記取り出し位置に設定された前記滞在カウントが予め定められた値以上になったら、前記ブラックリストに格納された前記取り出し位置を前記ブラックリストから削除する、請求項2に記載の取り出し機械制御装置。
  4.  前記データ処理部は、さらに、
      前記ブラックリストに格納された前記対象物の取り出し位置に対してライフカウントを設定し、
      予め定められた第2条件に基づいて前記取り出し位置に設定された前記ライフカウントを減少させ、
      前記取り出し位置に設定された前記ライフカウントがゼロ以下になったら、前記ブラックリストに格納された前記取り出し位置を前記ブラックリストから削除する、請求項2または請求項3に記載の取り出し機械制御装置。
  5.  前記データ処理部は、さらに、
      前記取り出し位置に設定された前記ライフカウントを減少させる値に対して、予め定められた第3条件に基づいて重みを設定する、請求項4に記載の取り出し機械制御装置。
  6.  前記データ処理部は、さらに、
      前記ブラックリストに格納された第1取り出し位置と、前記対象物の取り出し動作に関連する第2取り出し位置からの距離が至近距離のとき、前記第1取り出し位置に設定された前記ライフカウントを第1の値だけ減少させ、
      前記ブラックリストに格納された前記第1取り出し位置と、前記対象物の取り出し動作に関連する前記第2取り出し位置からの距離が前記至近距離よりも遠く隔てられているとき、前記第1取り出し位置に設定された前記ライフカウントを前記第1の値よりも小さい第2の値だけ減少させる、請求項5に記載の取り出し機械制御装置。
  7.  前記データ処理部は、さらに、
      新たな計測に基づく新たな取り出し位置が設定された対象物が、前記ブラックリストに既に格納されている取り出し位置が設定された対象物の位置姿勢データに重複するとき、前記ブラックリストに既に格納されている前記取り出し位置のデータの引き継ぎおよび利用の少なくとも一方を行う、請求項2乃至請求項6のいずれか1項に記載の取り出し機械制御装置。
  8.  前記データ処理部は、さらに、
      前記新たな取り出し位置が、前記ブラックリストに既に格納されている前記取り出し位置に重複するとき、前記ブラックリストに既に格納されている前記取り出し位置のデータの引き継ぎおよび利用の少なくとも一方を行う、請求項7に記載の取り出し機械制御装置。
  9.  前記データ処理部は、さらに、
      引き継ぎおよび利用の少なくとも一方を行った前記ブラックリストに既に格納されている前記取り出し位置のデータを削除する、請求項7または請求項8に記載の取り出し機械制御装置。
  10.  前記リストは、前記取り出し機械にアクセスを行わせる優先度を格納する取り出し位置リストであり、
     前記データ処理部は、前記取り出し位置のそれぞれに対して、少なくとも、当該取り出し位置に基づいて前記取り出し機械を制御して前記対象物を取り出す取り出し動作に関連する取り出し位置、および、当該取り出し動作に関連する取り出し位置とは別の取出し位置のいずれか1つの取り出し位置の前記取り出し位置リストにおける優先度を所定の値だけ下げる、請求項1に記載の取り出し機械制御装置。
  11.  前記データ処理部は、さらに、
      前記優先度が下がっている前記取り出し位置に対して滞在カウントを設定し、
      予め定められた第1条件に基づいて前記取り出し位置に設定された前記滞在カウントを増加させ、
      前記取り出し位置に設定された前記滞在カウントが予め定められた値以上になったら、前記優先度が下がっている前記取り出し位置の優先度を所定の値に戻す、または、前記取り出し位置リストから削除する、請求項10に記載の取り出し機械制御装置。
  12.  前記データ処理部は、さらに、
      前記優先度が下がっている前記取り出し位置に対してライフカウントを設定し、
      予め定められた第2条件に基づいて前記取り出し位置に設定された前記ライフカウントを減少させ、
      前記取り出し位置に設定された前記ライフカウントがゼロ以下になったら、前記優先度が下がっている前記取り出し位置の優先度を所定の値に戻す、または、前記取り出し位置リストから削除する、請求項10または請求項11に記載の取り出し機械制御装置。
  13.  前記データ処理部は、さらに、
      前記取り出し位置に設定された前記ライフカウントを減少させる値に対して、予め定められた第3条件に基づいて重みを設定する、請求項12に記載の取り出し機械制御装置。
  14.  前記データ処理部は、さらに、
      前記優先度が下がっている第1取り出し位置と、前記対象物の取り出し動作に関連する第2取り出し位置からの距離が至近距離のとき、前記第1取り出し位置に設定された前記ライフカウントを第1の値だけ減少させ、
      前記優先度が下がっている前記対象物の第1取り出し位置と、前記対象物の取り出し動作に関連する前記第2取り出し位置からの距離が前記至近距離よりも遠く隔てられているとき、前記第1取り出し位置に設定された前記ライフカウントを前記第1の値よりも小さい第2の値だけ減少させる、請求項13に記載の取り出し機械制御装置。
  15.  前記データ処理部は、さらに、
      前記滞在カウントの処理および前記ライフカウントの処理を、前記優先度の処理に統合して行う、請求項13または請求項14に記載の取り出し機械制御装置。
  16.  前記データ処理部は、さらに、
      新たな計測に基づく新たな取り出し位置が設定された対象物が、前記優先度が下がっている取り出し位置が設定された対象物の位置姿勢データに重複するとき、前記優先度が下がっている前記取り出し位置のデータの引き継ぎおよび利用の少なくとも一方を行う、請求項10乃至請求項15のいずれか1項に記載の取り出し機械制御装置。
  17.  前記データ処理部は、さらに、
      前記新たな取り出し位置が、前記優先度が下がっている前記取り出し位置に重複するとき、前記優先度が下がっている前記取り出し位置のデータの引き継ぎおよび利用の少なくとも一方を行う、請求項16に記載の取り出し機械制御装置。
  18.  前記データ処理部は、さらに、
      引き継ぎおよび利用の少なくとも一方を行った前記優先度が下がっている前記取り出し位置のデータを削除する、請求項16または請求項17に記載の取り出し機械制御装置。
  19.  前記所定の値は、前記優先度が下がっている前記取り出し位置の優先度がゼロになる値に設定され、
     前記取り出し位置選択部は、前記優先度がゼロになる前記取り出し位置を選択しない、請求項10乃至請求項18のいずれか1項に記載の取り出し機械制御装置。
  20.  前記複数の対象物は、収容物内に乱雑に置かれており、
     前記センサは、前記収容物内に乱雑に置かれた前記複数の対象物の外形を計測する三次元計測器である、請求項1乃至請求項19のいずれか1項に記載の取り出し機械制御装置。
  21.  前記複数の対象物の外形を計測するセンサと、
      請求項1乃至請求項20のいずれか1項に記載の取り出し機械制御装置と、
      前記複数の対象物から前記任意の対象物を取り出すように、前記取り出し機械制御装置により制御される前記取り出し機械と、を備える取り出し機械システム。
  22.  取り出し機械を制御して、複数の取り出し位置が設定された少なくとも1つの対象物を含む複数の対象物から任意の対象物を取り出す取り出し機械制御プログラムであって、
     演算処理装置に、
      前記複数の対象物の外形を計測するセンサからのデータを取り込み、
      前記データ取り込み部からのデータを処理し、前記取り出し位置のそれぞれに対して、前記取り出し機械を制御して対象物をアクセスするときのデータを当該取り出し位置に関連付けてリストに格納し、
      前記リストの出力に基づいて、前記取り出し機械が取り出す対象物の取り出し位置を選択し、
      選択された前記取り出し位置に基づいて、前記取り出し機械を制御して前記対象物を取り出す、処理を実行させる取り出し機械制御プログラム。
PCT/JP2022/032447 2022-08-29 2022-08-29 取り出し機械制御装置、取り出し機械制御プログラムおよび取り出し機械システム Ceased WO2024047711A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
DE112022007422.1T DE112022007422T5 (de) 2022-08-29 2022-08-29 Entnahmemaschinensteuervorrichtung, Entnahmemaschinensteuerprogramm und Entnahmemaschinensystem
CN202280099430.6A CN120693238A (zh) 2022-08-29 2022-08-29 取出机械控制装置、取出机械控制程序以及取出机械系统
PCT/JP2022/032447 WO2024047711A1 (ja) 2022-08-29 2022-08-29 取り出し機械制御装置、取り出し機械制御プログラムおよび取り出し機械システム
US18/878,900 US20250384579A1 (en) 2022-08-29 2022-08-29 Extraction machine control device, extraction machine control program, and extraction machine system
JP2024543621A JPWO2024047711A1 (ja) 2022-08-29 2022-08-29
TW112128553A TW202408752A (zh) 2022-08-29 2023-07-31 取出機械控制裝置、取出機械控制程式及取出機械系統

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/032447 WO2024047711A1 (ja) 2022-08-29 2022-08-29 取り出し機械制御装置、取り出し機械制御プログラムおよび取り出し機械システム

Publications (1)

Publication Number Publication Date
WO2024047711A1 true WO2024047711A1 (ja) 2024-03-07

Family

ID=90099171

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/032447 Ceased WO2024047711A1 (ja) 2022-08-29 2022-08-29 取り出し機械制御装置、取り出し機械制御プログラムおよび取り出し機械システム

Country Status (6)

Country Link
US (1) US20250384579A1 (ja)
JP (1) JPWO2024047711A1 (ja)
CN (1) CN120693238A (ja)
DE (1) DE112022007422T5 (ja)
TW (1) TW202408752A (ja)
WO (1) WO2024047711A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008087074A (ja) * 2006-09-29 2008-04-17 Fanuc Ltd ワーク取り出し装置
JP2010089238A (ja) * 2008-10-10 2010-04-22 Honda Motor Co Ltd ワーク取り出し方法
JP2016181183A (ja) * 2015-03-24 2016-10-13 キヤノン株式会社 情報処理装置、情報処理方法、プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008087074A (ja) * 2006-09-29 2008-04-17 Fanuc Ltd ワーク取り出し装置
JP2010089238A (ja) * 2008-10-10 2010-04-22 Honda Motor Co Ltd ワーク取り出し方法
JP2016181183A (ja) * 2015-03-24 2016-10-13 キヤノン株式会社 情報処理装置、情報処理方法、プログラム

Also Published As

Publication number Publication date
TW202408752A (zh) 2024-03-01
JPWO2024047711A1 (ja) 2024-03-07
US20250384579A1 (en) 2025-12-18
CN120693238A (zh) 2025-09-23
DE112022007422T5 (de) 2025-04-17

Similar Documents

Publication Publication Date Title
JP7290280B2 (ja) オブジェクト識別メカニズムおよびオブジェクトハンドリングメカニズムを有するロボットシステムおよびその動作方法
US12240115B2 (en) Systems and methods for robotic picking
US20190126471A1 (en) Information processing apparatus, grasping system, and information processing method
US11911903B2 (en) Systems and methods for robotic picking and perturbation
JP6861604B2 (ja) 管理システム及び制御方法
JPWO2012066819A1 (ja) ワーク取り出し装置
JP7785204B2 (ja) 高速オンライン負荷推定による柔軟なロボット操作のためのシステムおよび方法
US20210069898A1 (en) Training artificial networks for robotic picking
JP2022160363A (ja) ロボットシステム、制御方法、画像処理装置、画像処理方法、物品の製造方法、プログラム、及び記録媒体
JP4332617B2 (ja) ロボットマニピュレータによる物体操作方法および装置
WO2024047711A1 (ja) 取り出し機械制御装置、取り出し機械制御プログラムおよび取り出し機械システム
US20220274257A1 (en) Device and method for controlling a robot for picking up an object
Moosmann et al. Using deep neural networks to separate entangled workpieces in random bin picking
WO2019064919A1 (ja) ロボット教示装置
CN115205371A (zh) 用于根据对象的摄像机图像定位对象的部位的设备和方法
JP7693839B2 (ja) ロボット制御装置及びロボット制御方法
WO2019064915A1 (ja) ロボット教示装置
JP7328173B2 (ja) ピッキング制御装置
JP2023070029A (ja) 履歴管理装置及びプログラム
WO2024075200A1 (ja) オフラインシミュレーション装置
JP2003132093A (ja) データログシステム
JP2019171499A (ja) ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム
WO2023188001A1 (ja) ロボットシステム、処理方法、および記録媒体
WO2025052624A1 (ja) ロボット制御装置、ロボット制御方法およびロボット制御プログラム
WO2022239477A1 (ja) 情報処理装置、システム、方法及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22957315

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2024543621

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 18878900

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 112022007422

Country of ref document: DE

WWE Wipo information: entry into national phase

Ref document number: 202280099430.6

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 112022007422

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22957315

Country of ref document: EP

Kind code of ref document: A1

WWP Wipo information: published in national office

Ref document number: 202280099430.6

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 18878900

Country of ref document: US