Robotic system, workpiece management system, robotic control method, and medium
By setting windows in the robot system and optimizing the picking sequence using dynamic programming, the problem of low picking efficiency caused by the random distribution of workpiece positions and orientations on the conveyor surface was solved, achieving the effect of efficiently picking up multiple workpieces.
Patent Information
- Application Number
- CN202310939951.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2022-08-09
- Filing Date
- 2023-07-28
- Publication Date
- 2026-11-06
- Estimated Expiration
- 2043-07-28
AI Technical Summary
Existing technologies struggle to efficiently pick up multiple workpieces from a conveyor surface, especially when the workpiece positions and orientations are randomly distributed, resulting in low picking efficiency.
By setting windows and optimizing algorithms to determine the picking order, the robot system sets windows based on the inflow order, optimizes the picking order using dynamic programming, selects multiple workpieces, and picks them from the conveyor surface in the optimized order to achieve efficient picking.
It improves the efficiency of picking up multiple workpieces from the conveyor surface, especially when the workpiece position and orientation are uncertain, ensuring high efficiency and accuracy of picking.
Smart Images

Figure CN117584113B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to robot systems, workpiece management systems, robot control methods, and workpiece management procedures. Background Technology
[0002] Japanese Patent Application Publication No. 2021-171834 describes a robot control device for controlling a robot that stores items in a container. The device extracts candidate patterns of the positions and orientations of multiple items within the container based on first characteristics of these items, determines a candidate pattern in which the balance of torques exerted by the multiple items on the container is within a predetermined range, selects this candidate pattern as the final pattern, determines a predetermined order for storing the multiple items in the container based on the final pattern, and outputs control signals to the robot for storing the multiple items in the container according to this order. Summary of the Invention
[0003] The goal is to efficiently pick up multiple workpieces from the transfer surface.
[0004] A robot system according to one aspect of this disclosure includes: a window setting unit configured to set windows corresponding to n workpieces among the plurality of workpieces based on a flow order of a plurality of workpieces moving along a conveying surface, wherein the flow order is the order in which the plurality of workpieces have moved along the conveying surface, where n > 1; a sequence determination unit configured to determine a picking order for the windows based on the position of each of the n workpieces on the conveying surface using an optimization algorithm, wherein the picking order is the order in which one or more workpieces are picked from the conveying surface and is different from the flow order; a target selection unit configured to select m workpieces from the windows based on the picking order, where n > m; and a robot configured to pick the selected m workpieces from the conveying surface according to the picking order.
[0005] A robot system according to one aspect of this disclosure includes: a sequence determination unit configured to perform dynamic programming based on the position of each of a plurality of workpieces moving along a conveying surface to determine a picking order for the plurality of workpieces, the picking order being the order in which one or more workpieces are picked from the conveying surface, and different from the inflow order being the order in which the plurality of workpieces have moved along the conveying surface; a target selection unit configured to select at least one workpiece from the plurality of workpieces; and a robot configured to pick up the selected at least one workpiece from the conveying surface in the picking order.
[0006] A workpiece management system according to one aspect of this disclosure includes: a window setting unit configured to set windows corresponding to n workpieces among the plurality of workpieces based on a plurality of workpieces moving along a conveying surface, the inflow order being the order in which the plurality of workpieces have moved along the conveying surface, where n > 1; a sequence determination unit configured to determine a picking order for the windows based on the position of each of the n workpieces on the conveying surface using an optimization algorithm, the picking order being the order in which one or more workpieces are picked from the conveying surface, and different from the inflow order; and a target selection unit configured to select m workpieces from the windows as target workpieces to be picked from the conveying surface based on the picking order, where n > m.
[0007] A robot control method according to one aspect of this disclosure can be executed by a robot control system including at least one processor. The method includes: setting windows corresponding to n workpieces among the plurality of workpieces according to an inflow order based on a plurality of workpieces moving along a conveyor surface, the inflow order being the order in which the plurality of workpieces have moved along the conveyor surface, where n > 1; determining a picking order for the windows based on the position of each of the n workpieces on the conveyor surface using an optimization algorithm, the picking order being the order in which one or more workpieces are picked from the conveyor surface, and differing from the inflow order; selecting m workpieces from the windows based on the picking order, where n > m; and controlling the robot to pick the selected m workpieces from the conveyor surface according to the picking order.
[0008] According to one aspect of this disclosure, a computer-readable storage medium stores processor-executable instructions for: setting up windows corresponding to n workpieces among the plurality of workpieces according to an inflow order based on a plurality of workpieces moving along a transport surface, the inflow order being the order in which the plurality of workpieces have moved along the transport surface, where n > 1; determining a picking order for the windows based on the position of each of the n workpieces on the transport surface using an optimization algorithm, the picking order being the order in which one or more workpieces are picked from the transport surface, and being different from the inflow order; and selecting m workpieces from the windows as target workpieces to be picked from the transport surface based on the picking order, where n > m.
[0009] According to one aspect of this disclosure, multiple workpieces can be picked up efficiently from a conveying surface. Attached Figure Description
[0010] Figure 1 This is a diagram showing an example configuration of a robot system.
[0011] Figure 2 This is a diagram showing an example hardware configuration for a robot controller.
[0012] Figure 3This is a flowchart illustrating an example process for adding a workpiece to an array.
[0013] Figure 4 This is a flowchart illustrating an example of array-based robot control.
[0014] Figure 5 This is a flowchart illustrating an example process for determining the picking order.
[0015] Figure 6 It is a diagram used to illustrate the concept of a data table.
[0016] Figure 7 This is a diagram illustrating an example algorithm used to determine the picking order.
[0017] Figure 8 This is a diagram showing an example of an updated window. Detailed Implementation
[0018] In the following description, with reference to the accompanying drawings, the same reference numerals are given to the same parts or similar parts having the same function, and overlapping descriptions are omitted.
[0019] System Overview
[0020] The robot system according to this disclosure is a control system that controls a robot to pick up (or retrieve) multiple workpieces moving one after another along a conveyor surface. For example, the robot system can enable the robot to perform pick-up and place operations for moving workpieces from a conveyor surface to another location. A conveyor surface is a surface on which workpieces are placed and moved by a predetermined drive mechanism in a predetermined direction. In some examples, the conveyor surface is the surface of a conveyor, such as the belt of a belt conveyor or the surface realized by a set of rollers of a roller conveyor.
[0021] In some examples, the robotic system manages information about the workpieces on the transport surface by adding them one by one to an array, each workpiece having moved along the transport surface. An array is a data structure used to manage information about multiple workpieces moving along the transport surface. In some examples, the array is a one-dimensional array, and the robotic system adds multiple workpieces to the one-dimensional array sequentially.
[0022] Based on multiple workpieces in an array, the robot system sets up windows corresponding to n workpieces, where n > 1. This window refers to a data structure used to identify the n workpieces that may be picked up from the conveyor surface, and can also be described as a virtual container for the n workpieces. The robot system determines the picking order for each window (i.e., for the n workpieces) using an optimization algorithm. The picking order refers to the sequence in which one or more workpieces are picked up from the conveyor surface.
[0023] Based on the picking order, the robot system selects m workpieces from the window, where n > m. The robot system controls the robot to pick up m workpieces from the conveyor surface in the picking order. Since n > m, at least one workpiece remains in the window. The robot system then removes the workpieces picked up from the conveyor surface from the array and the window.
[0024] Next, the robot system adds at least one workpiece from the array to the window and sets up the window again for the n workpieces. The robot system then performs the above process again on the updated window and controls the robot to pick up the new m workpieces from the conveyor surface in a new picking order. The robot system repeats a series of processes including setting up the window, determining the picking order and picking up m workpieces, and picking up multiple workpieces one by one from the conveyor surface. In this iteration, at least one of the values n and m can change between the previous and next iterations.
[0025] System Configuration
[0026] Figure 1 This diagram illustrates the configuration of a robot system 1 according to some examples. The robot system 1 includes a robot 2 placed in a workspace 9, a motor control device 3 controlling the motors of the robot 2, and a robot controller 10 outputting control signals to the motor control device 3. The workspace 9 also includes a first conveyor 6, a second conveyor 7, and a camera 4. A workpiece 90 to be picked up by the robot 2 moves along the first conveyor 6, the workpiece 90 picked up from the first conveyor 6 is placed on the second conveyor, and the camera 4 images the conveying surface of the first conveyor 6. The robot controller 10 is connected to each of the motor control device 3 and the camera 4 via a communication network. The communication network connecting these devices can be a wired network or a wireless network. The communication network can include at least one of the Internet and an intranet. Alternatively, the communication network can be implemented by a single communication cable.
[0027] Robot 2 is a device that receives power and performs predetermined operations to carry out useful work. In some examples, robot 2 includes multiple joints and is configured to perform various processes while holding an end effector 2a in its tip portion. A joint is an example of a driven object. A joint axis is provided for each of the multiple joints. Some components of robot 2, such as arms, pivots, etc., rotate about the joint axis, allowing robot 2 to freely change the position and orientation of its tip portion within a predetermined range. In some examples, robot 2 is a vertically articulated robot of the multi-axis tandem linkage type. Robot 2 can be a six-axis vertically articulated robot, or a seven-axis vertically articulated robot with an additional redundant axis on the six axes. Alternatively, robot 2 can be a parallel linkage robot operating according to a parallel linkage mechanism. Robot 2 can be a mobile robot, such as a robot supported by an automated guided vehicle (AGV). Alternatively, robot 2 can be a stationary robot fixed in a predetermined position.
[0028] The end effector 2a is a device that acts on the workpiece 90, for example, a device that gives the workpiece 90 some physical changes. The end effector 2a can be various devices such as clamps, suction ends, polishing tools, welding torches, presses, sealing nozzles, threading devices, etc.
[0029] An electric motor is a device that generates electricity to drive the driven object of the robot 2 in response to power supplied from the motor control device 3. Each motor operates a respective driven object, causing the robot 2 to perform a predetermined task on the workpiece 90 using the end effector 2a. The motor can be a rotary motor that rotates the driven object, or a linear motor that moves the driven object in a straight line. The motor can be a synchronous motor or an induction motor. The motor can be a permanent magnet type synchronous motor, such as a surface permanent magnet (SPM) motor or an internal permanent magnet (IPM) motor. The motor can also be a synchronous motor without permanent magnets, such as a synchronous reluctance motor. The motor can be a DC motor or an AC motor.
[0030] Robot 2 may include at least one sensor, which is a device for detecting responses of the robot to electrical operation by motor control device 3. A response refers to the robot's output relative to a command that serves as an instruction for controlling the robot. For example, a response may indicate information about at least one of the motion and state of robot 2. A response may indicate information about at least one of the motion and state of the motor (e.g., at least one of the motor's shaft speed and magnetic pole position). In the case of a rotary motor, the rotation angle of the driven object corresponds to "position," and the rotational speed of the driven object corresponds to "velocity." A response may indicate information about at least one of the motion and state of the driven object (e.g., at least one of the driven object's position, velocity, and force). The sensor sends a response signal representing the response to robot controller 10. The response may be the value obtained by the sensor itself, or it may be represented by a value calculated or processed by a predetermined calculation or algorithm. An example of a sensor may include a rotary encoder that outputs pulse signals having a frequency proportional to the motor's motion speed. The rotary encoder is capable of obtaining both the motor's position and speed.
[0031] The motor control device 3 is a device used to make the output of the motor follow the control signals (i.e., commands) from the robot controller 10. The motor control device 3 generates power for moving the motor based on the control signals from the robot controller 10 and provides this power to the motor. The provided power corresponds to driving force commands such as torque commands, current commands, etc. The motor control device 3 can be, for example, an inverter or a servo amplifier. The motor control device 3 can be integrated into the robot 2. The motor control device 3 may include sensors for detecting the response of the motor control device.
[0032] Camera 4 is a device for imaging the conveying surface of the first conveyor 6 and is an example of a sensor for monitoring the conveying surface. In some examples, as one or more workpieces 90 move along the first conveyor 6, camera 4 images the conveying surface and continuously sends the image data to robot controller 10. The image data is, for example, video data consisting of multiple frames.
[0033] Each of the first conveyor 6 and the second conveyor 7 is a conveying device for moving a plurality of workpieces 90 in a predetermined direction. The conveying surfaces of both conveyors have a movement direction, which is the direction in which the plurality of workpieces 90 move, and a width direction orthogonal to the movement direction. The first conveyor 6 is wide enough to allow two or more workpieces 90 to move in parallel. In the first conveyor 6, the plurality of workpieces 90 move along the conveying surface in a state of random arrangement in at least one of the movement direction and the width direction. That is, in the first conveyor 6, the plurality of workpieces 90 move along the conveying surface in a state of random placement in both the movement direction and the width direction. As an example of random arrangement, a portion of the plurality of workpieces 90 may move while rotating on the first conveyor 6. For example, the plurality of workpieces 90 move along the conveying surface of the first conveyor 6 in such a manner that at least one of the position and orientation of each workpiece 90 is randomly set. On the other hand, the width of the second conveyor 7 corresponds to the size of the workpieces 90. Therefore, in the second conveyor 7, the plurality of workpieces 90 move one after another along the conveying surface.
[0034] In some examples, the first conveyor 6 forms a path for circulating the workpieces 90, and the robot 2 picks up m workpieces 90 in a predetermined pick-up area of the first conveyor 6. Even if a workpiece 90 has not yet been picked up in the pick-up area, it can return to the pick-up area and then be picked up by the robot 2.
[0035] although Figure 1 A robot 2 and a robot controller 10 are shown, but the robot system 1 may include more than one robot 2 or more than one robot controller 10. A robot controller 10 may be connected to multiple robots 2. There may be more than one first conveyor 6 and more than one camera 4, or there may be more than one second conveyor 7.
[0036] The robot controller 10 is a device that generates commands for operating the robot 2 and outputs control signals based on those commands. The robot controller 10 is an example of a robot control system and a workpiece management system. In some examples, the robot controller 10 includes, as functional modules, an image processing unit 11, an array setting unit 12, a window setting unit 13, a sequence determination unit 14, a time estimation unit 15, a storage unit 16, a target selection unit 17, a robot control unit 18, and an iterative control unit 19. The image processing unit 11 is a functional module that extracts workpieces 90 from image data received from the self-camera 4. The array setting unit 12 is a functional module that sets an array indicating one or more workpieces 90 based on the extracted workpieces 90 and the results of robot control. The window setting unit 13 is a functional module that sets windows corresponding to n workpieces 90 based on the array. The sequence determination unit 14 is a functional module that determines the picking order for the windows using an optimization algorithm. The time estimation unit 15 is a functional module that estimates the time required to pick up a workpiece 90 from the transfer surface for each of the n workpieces 90. The time estimation unit 15 is part of the sequence determination unit 14, and the required time is used to determine the picking order. Storage unit 16 is a functional module that stores a data table for estimating the required time. Target selection unit 17 is a functional module that selects m workpieces from a window as target workpieces based on a determined picking order, where n>m. Robot control unit 18 is a functional module that controls robot 2 to pick up m workpieces 90 from the conveyor surface of the first conveyor 6 in a picking order and place the m workpieces 90s on the conveyor surface of the second conveyor 7. Iterative control unit 19 is a functional module that enables robot 2 to repeatedly perform the picking of workpieces 90.
[0037] Figure 2This diagram illustrates an example hardware configuration of a robot controller 10. The robot controller 10 includes a circuit system 190. In some examples, the circuit system 190 includes at least one processor 191, a memory 192, a storage device 193, and at least one communication port 194. The storage device 193 is a non-volatile storage medium and stores programs for implementing each of the aforementioned functional modules. The storage device 193 may be configured as, for example, at least one hard disk or non-volatile memory. The memory 192 temporarily stores programs loaded from the storage device 193, calculation results from the processor 191, etc. The memory 192 may be configured as, for example, at least one random access memory. The processor 191 cooperates with the memory 192 to execute programs to configure each functional module. The communication port 194 performs data communication with another device according to commands from the processor 191. For example, the robot controller 10 includes one communication port 194 for sending and receiving data signals from a camera 4, and another communication port 194 for sending and receiving data signals from a motor control device 3.
[0038] Each functional module of the robot controller 10 is implemented by reading the robot control program on the processor 191 or memory 192 and having the processor 191 execute the program. The robot control program includes code for implementing each functional module of the robot controller 10. The processor 191 operates the communication port 194 according to the robot control program and reads data from or writes data to the memory 192 or storage device 193.
[0039] The robot control program can be provided after being permanently recorded on a non-transitory recording medium (such as a CD-ROM, DVD-ROM, or semiconductor memory). Alternatively, the robot control program can be provided via a communication network as a data signal superimposed on a carrier wave.
[0040] In some examples, the robot control program includes a workpiece management system that sets up windows, determines the picking order, and selects target workpieces. The workpiece management system can be provided independently. In some examples, the workpiece management system is implemented through a workpiece management program.
[0041] Robot control methods
[0042] As an example of a robot control method according to this disclosure, reference will be made to... Figures 3 to 5 Describe an example processing procedure performed by robot controller 10. Figure 3 This is a flowchart illustrating an example process for adding workpieces to the array (as process flow S1). Figure 4This is a flowchart illustrating an example array-based robot control (as processing flow S2). Figure 5 This is a flowchart illustrating an example process for determining the picking order. The robot controller 10 executes process flow S1 to add workpieces to the array and process flow S2 for robot control.
[0043] Add workpieces to the array
[0044] Reference Figure 3 This describes an example process for adding workpieces to an array. In some examples, robot controller 10 initiates process flow S1 in response to receiving a predetermined request from a user or host controller.
[0045] In step S11, the image processing unit 11 receives image data from the camera 4 and analyzes the image data to extract newly captured workpieces 90. For example, the image processing unit 11 performs object detection on the image data to extract the workpieces 90 and calculates the position of the extracted workpieces 90 on the conveyor surface. This position can be represented by, for example, X and Y coordinates, or by X, Y, and Z coordinates, or may further include rotation about the Z-axis. "Newly captured workpieces" refers to workpieces that have moved along the conveyor surface and entered the imaging range of the camera 4. In a single step S11, the image processing unit 11 can extract multiple new workpieces 90.
[0046] In step S12, the array setting unit 12 adds the extracted workpiece 90 to the array. For example, when adding workpiece 90 to the array, the array setting unit 12 records a combination of the workpiece ID (an identifier that uniquely identifies the workpiece 90) and the position of the workpiece 90 on the conveyor surface in the array. In some examples, the array setting unit 12 adds one or more extracted workpieces 90 to the array in the order in which one or more workpieces 90 are captured by the camera 4, i.e., in the inflow order (i.e., the order in which one or more workpieces 90 have moved along the conveyor surface). That is, the "order in which one or more workpieces are captured by the camera" is an example of the order in which the sensor detects the workpieces. The array setting unit 12 can set the order in which the sensor detects the workpieces to the inflow order.
[0047] As shown in step S13, when the robot system 1 performs the pick-up and place-down operations, steps S11 and S12 can be executed repeatedly.
[0048] Robot control
[0049] Reference Figure 4 and Figure 5 To describe an example of array-based robot control. In some examples, robot controller 10 initiates processing flow S2 in response to receiving a predetermined request from a user or host controller.
[0050] In step S21, the window setting unit 13 sets windows corresponding to n workpieces 90 based on the plurality of workpieces 90 in the array. In some examples, the window setting unit 13 selects n workpieces 90 from the beginning of the array and sets windows for the selected workpieces 90. Therefore, adding workpieces 90 to the array and setting windows can be a process similar to First-In-First-Out (FIFO). In some examples, one or more workpieces 90 are added to the array in the order in which the camera 4 captures these workpieces 90 (i.e., the inflow order), and the window setting unit 13 selects n workpieces 90 based on this order. The window setting unit 13 can set the order in which the sensors detect the workpieces as the inflow order and set windows corresponding to n workpieces according to the inflow order. Since n represents an integer equal to or greater than 2, the set window represents a plurality of workpieces 90. Since the array indicates a plurality of workpieces 90 moving along the conveyor surface, it can be said that the window setting unit 13 sets windows based on a plurality of workpieces 90 moving along the conveyor surface. As described above with respect to the first conveyor 6, in some examples, the window setting unit 13 sets the window based on a plurality of workpieces 90 moving along the conveyor surface in a state of random arrangement in at least one of the movement direction and the width direction.
[0051] In step S22, the sequence determination unit 14 determines the picking order for the set window based on the position of each of the n workpieces 90 indicated by the window through dynamic programming. The picking order may differ from the flow order. Dynamic programming is an example of an optimization algorithm. Dynamic programming is a technique that divides a target problem into multiple local problems and finds the final solution while recording the calculation results of the local problems. Because dynamic programming uses the calculation results of the local problems, it is not necessary to repeat the same calculations, and therefore the overall computation time can be shortened. (See reference...) Figure 5 This describes an example process used to determine the picking order through dynamic programming.
[0052] In step S221, the sequence determination unit 14 initializes a set S of candidate sequences for n workpieces 90 and a set T of required times. At this stage, both sets S and T are empty. A candidate sequence refers to the order in which the workpieces are picked. Each required time indicates the time required to pick one or more workpieces 90 according to the candidate sequence. The n workpieces 90 are hereinafter referred to as W1, W2, ..., W... n .
[0053] In step S222, the sequence determination unit 14 sets the variable k, which is used to manage repeated processing in dynamic programming, to 1.
[0054] In step S223, the time estimation unit 15 estimates the required time corresponding to each of the n workpieces 90 based on the position of the workpiece 90. Hereinafter, "time required to pick up a workpiece" is also simply referred to as "time required for a workpiece". Each candidate order is defined by k workpieces 90. Since k=1 at this stage, each of the n candidate orders indicates a single workpiece 90, and the set S of candidate orders is represented as [S{W1},S{W2},...,S{W... n Assume the candidate order is S{W1}, S{W2}, ..., S{W... n The required time for} is given by T(W1), T(W2), ..., T(W n This indicates that time estimation unit 15 will estimate [T(W1), T(W2), ..., T(W...]]. n )] is set as the set T of the required time.
[0055] In some examples, the time estimation unit 15 estimates the required time based on a data table in the storage unit 16. The data table is a data structure indicating the required time at each of a plurality of sample points on the transport surface captured by the camera 4. That is, the data table indicates the distribution of the required time on the transport surface. The data table is stored in the storage unit 16 manually or automatically before the processing flow S2 is executed. The data table can be prepared based on the time measured by actually operating the robot 2, or it can be prepared based on the time measured by virtually operating the robot 2 through computer simulation.
[0056] Figure 6 It is a diagram used to illustrate the concept of a data table. Figure 6 In the example, data table 200 indicates the required time at each of a plurality of sampling points 211 set on a transport surface 210 photographed by camera 4. The transport surface 210 is represented by an XY plane, and each sampling point 211 is represented by X and Y coordinates. In this example, robot 2 moves each of a plurality of workpieces 90 to a reference position 212, which is a common designated location. It should be noted that the common designated location is not limited to a specific point and can be an area with a two-dimensional amplitude, such as the interior space of a container. Data table 200 indicates the time required to pick up the workpiece 90 located at sampling point 211 for each sampling point 211. In some examples, the required time may be based on the round-trip travel time of robot 2 from reference position 212 to sampling point 211, the pick-up time of robot 2 picking up workpiece 90 at sampling point 211, and the placement time of robot 2 placing workpiece 90 at reference position 212. For example, the required time may be the sum of the round-trip travel time, the pick-up time, and the placement time.
[0057] exist Figure 6 In the example, time estimation unit 15 refers to data table 200 and estimates the time required to move workpiece 90 from the transfer surface to reference position 212 for each of the n workpieces 90. For a certain workpiece W... i When the position is the same as sample point 211, the time estimation unit 15 estimates the required time corresponding to sample point 211, which is used as the time for workpiece W. i The time required. As Figure 6 At position 220, for any sampling point 211, workpiece W i The location can be different. In this case, the time estimation unit 15 can perform interpolation based on the estimated time of at least one sampling point 211 located near that location to estimate the workpiece W. i The required time. Alternatively, the time estimation unit 15 can estimate the time required for the workpiece W closest to it. i The estimated time corresponding to sampling point 211 is used as the workpiece W. i The time required.
[0058] The time estimation unit 15 can calculate the travel time from the reference position 212 to the workpiece 90 based on the distance and the speed of the robot 2, and estimate the required time based on the round-trip travel time without using a data table. For example, the time estimation unit 15 can estimate the required time based on the round-trip travel time, the pick-up time of the robot 2 at the destination to pick up the workpiece 90, and the placement time of the robot 2 to place the workpiece 90 at the reference position 212. The time estimation unit 15 can estimate the required time as the sum of the round-trip travel time, the pick-up time, and the placement time.
[0059] Back Figure 5 In step S224, the time estimation unit 15 generates or stores a set S of candidate orders and a set T of required times in the k-th loop (or the first loop if step S223 follows step S224). These sets S and T are used in the next iteration process.
[0060] In step S225, the sequential determination unit 14 increments the variable k. The update of variable k leads to dynamic programming to proceed to the next iteration.
[0061] In step S226, the time estimation unit 15 uses the sets S and T obtained in the (k-1)th loop to estimate the required time for each candidate sequence consisting of k workpieces. Based on the estimation results, the time estimation unit 15 sets the sets S and T to be used in the next iteration process.
[0062] As shown in step S227, the sequence determination unit 14 and the time estimation unit 15 repeat the processing from steps S224 to S226 until the required time for each candidate sequence consisting of n workpieces 90 is estimated. That is, the time estimation unit 15 uses the sets S and T stored in the previous iteration (step S226) to estimate the required time for each candidate sequence when workpiece 90 is increased by one, and stores the sets S and T based on the estimation results (step S224) for use in the next iteration. In the next iteration, the time estimation unit 15 uses the stored sets S and T to estimate the required time for each candidate sequence when workpiece 90 is further increased by one (steps S225 and S226). Based on the estimation results, the time estimation unit 15 stores the sets S and T (step S224) for use in the next iteration.
[0063] In step S228, the sequence determination unit 14 determines a candidate sequence as the picking order based on the total required time of each of the multiple candidate sequences obtained in the last iteration (i.e., the nth cycle process). The total required time refers to the time required to sequentially extract n workpieces 90 from the transfer surface, and is represented by the set T obtained in the last iteration. In some examples, the sequence determination unit 14 determines the candidate sequence with the shortest total required time as the picking order.
[0064] As described above, the sequence determination unit 14 and the time estimation unit 15 perform dynamic programming based on the required time for each of the n workpieces 90 to determine the picking order.
[0065] Reference Figure 7 Here is an example implementation of step S22. Figure 7 This is a diagram illustrating an example algorithm used to determine the picking order. For simplicity, in... Figure 7 In the example, assuming a window indicates three workpieces A, B, and C, an algorithm 300 is described for each code block to determine the picking order of the three workpieces. In this example, the positions of workpieces A, B, and C are respectively determined by (x... A ,y A ),(x B ,y B ) and (x C ,y C The function GetPickAndPlaceTime, called in Algorithm 300, takes the position associated with a specified workpiece as its argument and calculates the required time for that workpiece. As mentioned above, the function GetPickAndPlaceTime can calculate the required time by referring to a data table, or it can calculate the required time without referring to a data table.
[0066] In code block 301, the sequence determination unit 14 initializes the set S of candidate sequences and the set T of required times. Code block 301 corresponds to step S221.
[0067] In code block 302, time estimation unit 15 estimates the required time for each of workpieces A, B, and C based on its position. Time estimation unit 15 calculates the required time T[a] corresponding to candidate sequence S[{A}], the required time T[{B}] corresponding to candidate sequence S[{B}], and the required time T[{C}] corresponding to candidate sequence S[{C}]. Time estimation unit 15 stores these candidate sequences and required times. Code block 302 corresponds to steps S222 to S224.
[0068] In code block 303, time estimation unit 15 estimates the required time for each candidate sequence consisting of two jobs. For the combination of jobs A and B, time estimation unit 15 calculates the required time for candidate sequence [A->B] and the required time for candidate sequence [B->A]. In this calculation, the candidate sequences and required times stored in code block 302 are used. In code block 303, when the required time for the second job is calculated via the function GetPickAndPlaceTime, the required time for the first job is considered. Time estimation unit 15 stores the minimum of the two calculated required times as the required time T[{A,B}] for the combination of jobs A and B. Time estimation unit 15 also stores the candidate sequence S[{A,B}] corresponding to the required time T[{A,B}]. The candidate sequence S[{A,B}] is one of [A->B] and [B->A]. Time estimation unit 15 performs the same processing on the combination of jobs A and C and the combination of jobs B and C as it does on the combination of jobs A and B. Code block 303 corresponds to steps S225, S226 and S224.
[0069] In code block 304, time estimation unit 15 estimates the required time for each candidate sequence consisting of three workpieces. Time estimation unit 15 calculates the required time for candidate sequence [S[{A, B}]->C], candidate sequence [S[{A, C}]->B], and candidate sequence [S[{B, C}]->A]. In this calculation, the candidate sequences and required times stored in code block 303 are used. In code block 304, when calculating the required time for the third workpiece using the function GetPickAndPlaceTime, the required times for the first and second workpieces are considered. Time estimation unit 15 obtains the minimum of the three calculated required times as the required time T[{A, B, C}] for the combination of workpieces A, B, and C. Sequence determination unit 14 determines the candidate sequence S[{A, B, C}] corresponding to the required time T[{A, B, C}] as the picking order. The candidate sequence S[{A, B, C}] is any one of six possible candidate sequences. Code block 304 corresponds to steps S225, S226 and S228.
[0070] The following section provides an overview of Algorithm 300, and describes the processing of steps S224 to S228 for the cases of k=2, k=3, and k=n.
[0071] Case k=2
[0072] Time estimation unit 15 is used for two workpieces W i and W j Each combination (where i ≠ j) estimates two candidate orders [W] i ->W j ] and [W j ->W i The time required for each candidate order in the [ ] . Assume that the candidate order S{W i} and S{W j The corresponding required time is respectively determined by T(W) i ) and T(W j )express.
[0073] Regarding the candidate order [W] i ->W j Time estimation unit 15 estimates the pick-up workpiece W. i Time T(W) i ) and subsequently pick up workpiece W j Time T(W) j The sum of the time estimates (T, W) is used as the required time. In some examples, the time estimation unit 15 is based on the required time T(W). i )Calculation time T(W) j )'.
[0074] Regarding the candidate order [W]j ->W i The time estimation unit 15 estimates the pick-up workpiece W. j Time T(W) j ) and subsequently pick up workpiece W i Time T(W) i The sum of the time estimates (T, W) is used as the required time. In some examples, the time estimation unit 15 is based on the required time T(W). j )Calculation time T(W) i )'.
[0075] Time estimation unit 15 stores the minimum of the two calculated required times as T(W). i W j And store the candidate order corresponding to the minimum value as two workpieces W. i and W j Candidate order S{W i W j}
[0076] Case k=3
[0077] Time estimation unit 15 for three workpieces W i W j and W k For each combination, estimate the three candidate orders [S{W i W j}->W k ]、[S{W j W k}->W i ] and [S{W i W k}->W j The time required for each candidate order in [ ], where i, j, and k are different from each other). Assume that with the candidate order S{W i W j}、S{W j W k} and S{W i W k The corresponding required time is respectively determined by T(W) i W j ), T(W j W k ) and T(W i W k The time estimation unit 15 only needs to estimate the time required for these three candidate sequences by referring to the results stored in the previous loop, instead of estimating the time required for all six possible candidate sequences.
[0078] Regarding the candidate order [S{W] iW j}->W k The time estimation unit 15 estimates the candidate order S{W}. i W j The required time T(W) i W j ) and subsequently pick up workpiece W k Time T k The sum of these values is used as the required time. In some examples, the time estimation unit 15 is based on time T(W). i W j )Calculation time T k '.
[0079] Regarding the candidate order [S{W] j W k}->W i The time estimation unit 15 estimates the candidate order S{W}. j W k The required time T(W) j W k ) and subsequently pick up workpiece W i Time T i The sum of these values is used as the required time. In some examples, the time estimation unit 15 is based on time T(W). j W k )Calculation time T i '.
[0080] Regarding the candidate order [S{W] i W k}->W j Time estimation unit 15 estimates and candidate order S{W i W k The corresponding required time T(W) i W k ) and subsequently pick up workpiece W j Time T j The sum of these values is used as the required time. In some examples, the time estimation unit 15 is based on time T(W). i W k )Calculation time T j '.
[0081] Time estimation unit 15 stores the minimum of the three calculated required times as T(W) i W j W k And store the candidate order corresponding to the minimum value as three workpieces W. i W j W k Candidate order S{Wi W j W k}
[0082] Case k=n
[0083] Time estimation for 15 units for n workpieces W1 to W n For each combination, estimate the order of every n candidate pairs [S{W1,W2,...,W...] n-1}->W n ]、[S{W2,W3,...,W n}->W1]、[S{W1,W3,...,W n}->W2],...,[S{W1,W2,...,W n-2 W n}->W n-1 The total required time is calculated. Time estimation unit 15 performs the same calculations as for k=2,3 to obtain n total required times. Sequence determination unit 14 determines the minimum value among the n total required times as T(W1,W2,...,W...). n The candidate order corresponding to the minimum value is determined as the order for n workpieces W1 to W2. n The picking order S{W1,W2,...,W n}
[0084] As described in the cases of k=2, k=3, and k=n, in the (k-1)th loop process, the sequence determination unit 14 generates a first set of one or more candidate sequences, each candidate sequence being defined by the sequence of (k-1) workpieces 90, and generates a second set of one or more physical quantities corresponding to the first set. In the kth loop process, the sequence determination unit 14 generates a third set of one or more candidate sequences based on the first and second sets, each candidate sequence being defined by the sequence of k workpieces 90, and generates a fourth set of one or more physical quantities corresponding to the third set. In the kth loop process, the sequence determination unit 14 performs the following processing for the sequence of k workpieces 90: The sequence determination unit 14 uses the first set to generate multiple combinations of sequences of k workpieces 90; for each of the multiple combinations, it estimates physical quantities based on the second set; selects one physical quantity from the multiple estimated physical quantities corresponding to the multiple combinations; selects the sequence of k workpieces 90 corresponding to the selected physical quantity from the multiple combinations; and includes the selected sequence in the third set.
[0085] As shown in step S22, in some examples, the sequence determination unit 14 generates multiple candidate sequences through an iterative process of n loops. These candidate sequences are candidate sequences of the picking sequence, and generate multiple physical quantities corresponding to the multiple candidate sequences. As at least part of an optimization algorithm or dynamic programming, the picking sequence is determined from the multiple candidate sequences based on the multiple physical quantities. The sequence determination unit 14 uses the physical quantities of each of the n workpieces 90 at least in the first loop of the iterative process to determine the picking sequence from the multiple candidate sequences.
[0086] refer to Figure 4 In step S23, the target selection unit 17 selects m workpieces from the window as target workpieces based on the determined picking order. Since n>m, the target selection unit 17 selects a subset of the n workpieces corresponding to the window. The target selection unit 17 selects m workpieces in ascending order of the picking order.
[0087] In step S24, the robot control unit 18 outputs a command to the robot 2 to pick up m workpieces 90 from the conveying surface. In some examples, the robot control unit 18 generates a path to sequentially pick up the m target workpieces from the conveying surface according to the picking order and places the target workpieces at designated positions. This path represents the trajectory of the robot 2, such as the trajectory of the end effector 2a. In some examples, the robot control unit 18 generates this path so that the robot 2 is not disturbed by obstacles. Disturbance refers to the phenomenon of one object contacting or colliding with another object. It should be noted that in the case where the robot 2 is about to process a certain workpiece 90, contact between the robot 2 and the workpiece 90 is not interference. The robot control unit 18 generates a series of control signals as commands indicating the generated path and outputs the control signals sequentially to the motor control device 3. The motor control device 3 generates power for moving the motor sequentially based on the control signals and supplies power to the motor sequentially. As a result, the robot 2 picks up each of the m workpieces 90 from the conveying surface of the first conveyor 6 and places the m workpieces 90 on the conveying surface of the second conveyor 7 according to the determined picking order.
[0088] In step S25, the array setting unit 12 removes the m picked workpieces 90 from the array and window.
[0089] As shown in step S26, whenever robot 2 picks up m workpieces 90 from the conveyor surface, the iterative control unit 19 causes other functional modules to repeatedly execute the processes of steps S21 to S25. The iterative control unit 19 performs iterations until a predetermined termination condition is met. The termination condition may be that a predetermined number of workpieces 90 have been picked up or that all workpieces 90 have been picked up from the first conveyor 6.
[0090] In the repeated step S21, the window setting unit 13 adds one or more workpieces 90 from the array of workpieces 90 to the window to set a new window. That is, the window setting unit 13 replaces the m workpieces 90 in the window with one or more workpieces 90 from the array of workpieces 90 to update the window. In step S22, the sequence determination unit 14 determines the next picking order for the updated window. In step S23, the target selection unit 17 selects the next m workpieces 90 from the updated window based on the picking order. In step S24, the robot control unit 18 causes the robot 2 to pick up the m workpieces 90 from the conveyor surface according to the picking order. In step S25, the array setting unit 12 removes these m workpieces 90 from the array and the window.
[0091] Figure 8 This is a diagram illustrating an example of an updated window. In this example, assume that array setting unit 12 adds nine extracted workpieces W1 to W9 to array 400 (step S12). Window setting unit 13 sets a window 410 corresponding to three workpieces W1 to W3 based on array 400 (step S21). Sequence determination unit 14 determines a picking order 420 for window 410, which instructs workpieces W3, W1, and W2 to be picked in this order (step S22). Target selection unit 17 selects two workpieces W3 and W1 based on picking order 420 (step S23), and robot control unit 18 outputs a command to robot 2 to pick up the two workpieces from the transfer surface (step S24). In response to robot 2 picking up workpieces W3 and W1 according to the command, array setting unit 12 removes these two workpieces from array 400 and window 410 (step S25). Parallel to or after these steps S21 to S25, array setting unit 12 adds three newly extracted workpieces W1 to array 400. 10 To W 12 Add to array 400 (step S12). Window setting unit 13 adds two workpieces W4 and W5 to window 410 based on array 400 to update window 410 (step S21). The processing of step S22 and subsequent steps are performed based on the updated window 410.
[0092] During the iterations in steps S21 to S25, the window setting unit 13 can change the size of the window, i.e., the number n of workpieces 90 corresponding to the window. Corresponding to the case where the window size is variable, the number m of target workpieces selected by the target selection unit 17 can also be variable.
[0093] Other examples
[0094] It should be understood that not all aspects, advantages, and features described herein are necessarily realized or included in any specific example. In fact, after describing and illustrating various examples herein, it should be clear that other examples can be obtained by modifying the layout and details.
[0095] At least some functional modules associated with the robot system, robot control system, or workpiece management system may be implemented in one or more other devices (e.g., motor control devices).
[0096] Robot systems, robot control systems, or workpiece management systems can determine the picking order of multiple workpieces by performing optimization algorithms based on the position of each of the multiple workpieces moving along a conveyor surface, without setting up windows.
[0097] In the example above, the sequence determination unit 14 executes an optimization algorithm to determine the picking order based on the time required to pick up the workpieces. However, the sequence determination unit can use physical quantities other than the required time to determine the picking order. For example, the sequence determination unit can execute an optimization algorithm to determine the picking order based on the robot's travel distance or energy consumption (e.g., power consumption). In this example, the sequence determination unit can refer to a data table indicating the distribution of physical quantities other than the time required to acquire the physical quantities, based on the position of each of the n workpieces corresponding to the window.
[0098] Figure 6 and Figure 7 The example assumes multiple workpieces are to be placed at a common designated location. However, the placement of workpieces picked up from the conveyor surface may not be uniform. That is, for each of the m target workpieces, the robot can move the target workpiece to the designated location corresponding to the target workpiece. In this example, the sequence determination unit estimates the physical quantities required to move the workpiece from the conveyor surface to a candidate location (each of a plurality of candidate locations that are candidates for the designated location) for each of the n workpieces corresponding to the window. The sequence determination unit then determines the designated location for each workpiece based on the physical quantities. For example, for each of the n workpieces, the sequence determination unit determines the designated location that minimizes the total physical quantities required to pick up the n workpieces. The sequence determination unit then determines the picking order based on the n total physical quantities corresponding to the n workpieces whose designated locations have been determined.
[0099] The hardware configuration of the system is not limited to the example of implementing each functional module by executing a program. For example, at least a portion of the aforementioned functional modules may be configured by logic circuitry dedicated to that function, or by application-specific integrated circuits (ASICs) that integrate that logic circuitry.
[0100] The process of a method executed by at least one processor may differ from the example described above. For example, some steps or processes described above may be omitted, or these steps may be executed in a different order. Furthermore, any two or more of the steps described above may be combined, or some steps may be modified or deleted. Alternatively, another step may be performed in addition to the steps described above.
[0101] When comparing the size relationship between two values in a computer system or computer, either the "equal to or greater than" and "greater than" criteria can be used, or either the "less than or equal to" and "less than" criteria can be used.
[0102] As described above, a robot system according to one aspect of this disclosure includes: a window setting unit configured to set windows corresponding to n workpieces among the plurality of workpieces based on a plurality of workpieces moving along a conveying surface, the inflow order being the order in which the plurality of workpieces have moved along the conveying surface, where n > 1; a sequence determination unit configured to determine a picking order for the windows based on the position of each of the n workpieces on the conveying surface using an optimization algorithm, the picking order being the order in which one or more workpieces are picked from the conveying surface, and different from the inflow order; a target selection unit configured to select m workpieces from the windows based on the picking order, where n > m; and a robot configured to pick the selected m workpieces from the conveying surface according to the picking order.
[0103] A workpiece management system according to one aspect of this disclosure includes: a window setting unit configured to set windows corresponding to n workpieces among the plurality of workpieces based on a flow order of a plurality of workpieces moving along a conveying surface, wherein the flow order is the order in which the plurality of workpieces have moved along the conveying surface, where n > 1; a sequence determination unit configured to determine a picking order for the windows based on the position of each of the n workpieces on the conveying surface using an optimization algorithm, wherein the picking order is the order in which one or more workpieces are picked from the conveying surface and is different from the flow order; and a target selection unit configured to select m workpieces from the windows as target workpieces to be picked from the conveying surface based on the picking order, where n > m.
[0104] A robot control method according to one aspect of this disclosure can be executed by a robot control system including at least one processor. The method includes: setting windows corresponding to n workpieces among the plurality of workpieces according to an inflow order based on a plurality of workpieces moving along a conveyor surface, the inflow order being the order in which the plurality of workpieces have moved along the conveyor surface, where n > 1; determining a picking order for the windows based on the position of each of the n workpieces on the conveyor surface using an optimization algorithm, the picking order being the order in which one or more workpieces are picked from the conveyor surface, and differing from the inflow order; selecting m workpieces from the windows based on the picking order, where n > m; and controlling the robot to pick the selected m workpieces from the conveyor surface according to the picking order.
[0105] According to one aspect of this disclosure, a computer-readable storage medium stores processor-executable instructions for: setting up windows corresponding to n workpieces among the plurality of workpieces according to an inflow order, based on a plurality of workpieces moving along a transport surface, the inflow order being the order in which the plurality of workpieces have moved along the transport surface, where n > 1; determining a picking order for the windows based on the position of each of the n workpieces on the transport surface using an optimization algorithm, the picking order being the order in which one or more workpieces are picked from the transport surface, and different from the inflow order; and selecting m workpieces from the windows as target workpieces to be picked from the transport surface, where n > m, based on the picking order.
[0106] In some aspects, an optimization algorithm determines the picking order of two or more workpieces corresponding to a window, and a portion of these two or more workpieces is picked in that order. This series of processes allows workpieces to be picked efficiently.
[0107] In some examples, the robot system may further include an iterative control unit configured to cause the robot to repeatedly perform pick-ups. Each time the robot picks up m workpieces from the transport surface, the iterative control unit may be configured to: cause a window setting unit to replace the m workpieces in a window with one or more of the multiple workpieces to update the window; cause a sequence determination unit to determine the next pick-up order for the updated window; cause a target selection unit to select the next m workpieces from the updated window based on the next pick-up order; and cause the robot to pick up the next m workpieces from the transport surface according to the next pick-up order. Because the series of processes from setting the window to picking up workpieces is repeatedly performed while using an optimization algorithm, workpieces arriving one after another can be picked up efficiently, depending on the movement of multiple workpieces along the transport surface. Picking up all n workpieces corresponding to the window is equivalent to finding a local solution. By leaving some workpieces in the window and re-executing the optimization algorithm based on the set of remaining and new workpieces, the multiple workpieces on the transport surface can be considered more comprehensively for efficient workpiece picking. For example, the first workpiece left in the window may have a lower pick-up priority than a new second workpiece already added to the window. In this situation, the overall efficiency of picking up workpieces can be improved by picking up the second workpiece before the first workpiece.
[0108] In some examples, the sequence determination unit can be configured to: for each of n workpieces, estimate the physical quantities associated with picking up the workpiece from the transfer surface based on its position; and determine the picking order based on the physical quantities of each of the n workpieces. In this case, the picking order is determined based on the physical quantities associated with picking up the workpieces. The physical quantities indicate the cost of picking up the workpieces. Therefore, this configuration allows for efficient workpiece picking while taking cost into account.
[0109] In some examples, the sequence determination unit can be configured to perform dynamic programming as an optimization algorithm based on physical quantities to determine the picking order. Because using dynamic programming reduces the computation time for determining the picking order, the robot can begin picking up the workpiece earlier. As a result, workpiece picking can be more efficient.
[0110] In some examples, the order determination unit can be configured to: perform dynamic programming to estimate the total physical quantities of each of a plurality of candidate orders corresponding to n workpieces; and determine the picking order from the plurality of candidate orders based on the plurality of total physical quantities. By considering the total physical quantities required for two or more workpieces in the picking window, rather than focusing on only one workpiece, the optimal picking order is determined for a set of two or more workpieces. Therefore, workpiece picking can be more efficient.
[0111] In some examples, the robot can be configured to move each of m workpieces to a common designated location, and the sequence determination unit can be configured to estimate the physical quantities required to move the workpiece from the transfer surface to the designated location for each of n workpieces. By applying the robot system to an environment where the destination of the workpieces is specified in one place, the physical quantities can be estimated more concisely using dynamically programmed computation. Therefore, the optimal pick-up order can be determined more accurately.
[0112] In some examples, the robot can be configured to move a workpiece to a designated position corresponding to each of m workpieces, and the sequence determination unit can be configured to estimate the physical quantity required to move the workpiece from the transfer surface to a candidate position for each of n workpieces, for each of a plurality of candidate positions that are candidates for the designated position. In this case, for each workpiece, the movement to each of the plurality of candidate positions is further considered to estimate individual physical quantities. Therefore, the destination of the workpieces can be optimized while picking them up efficiently.
[0113] In some examples, the robot system may also include a storage unit configured to store a data table indicating the distribution of physical quantities on the transfer surface. The sequence determination unit can be configured to acquire physical quantities based on the position reference data table for each of the n workpieces. Since the physical quantities are acquired from a pre-prepared data table, computation time for acquiring the physical quantities is saved. Therefore, the robot can begin picking up workpieces earlier, resulting in more efficient workpiece picking.
[0114] In some examples, the conveyor surface can have a movement direction and a width direction. Multiple workpieces move in the movement direction, and the width direction is orthogonal to the movement direction. The window setting unit can be configured to set a window based on the multiple workpieces moving along the conveyor surface in a state of random arrangement in at least one of the movement direction and the width direction. In an environment where multiple workpieces move randomly, workpieces can be picked up efficiently.
[0115] In some examples, the window setting unit can be configured to set the order in which workpieces are detected by sensors monitoring the conveyor surface as the inflow order. Since the n workpieces in the window are selected based on the order in which they are detected, the window can be appropriately set according to the situation of the workpieces on the conveyor surface. As a result, workpieces that should be processed first can be picked up efficiently.
[0116] A robot system according to one aspect of this disclosure includes: a sequence determination unit configured to perform dynamic programming based on the position of each of a plurality of workpieces moving along a conveying surface to determine a picking order of the plurality of workpieces, the picking order being the order in which one or more workpieces are picked from the conveying surface, and different from the inflow order, which is the order in which the plurality of workpieces have moved along the conveying surface; a target selection unit configured to select at least one workpiece from the plurality of workpieces; and a robot configured to pick up the selected at least one workpiece from the conveying surface in the picking order.
[0117] In some aspects, the picking order of two or more workpieces is determined through dynamic programming, and some of these workpieces are picked up in that order. Because dynamic programming reduces the computation time for determining the picking order, the robot can begin picking up workpieces earlier. As a result, workpiece picking can be performed efficiently.
[0118] The applicant claims all modifications and variations within the spirit and scope of the subject matter claimed herein.
[0119] The following appendix provides further explanation of the above example.
[0120] (Appendix 1) A robot system comprising:
[0121] The window setting unit is configured to set windows corresponding to n workpieces based on multiple workpieces moving along the conveyor surface, where n > 1;
[0122] The sequence determination unit is configured to determine the picking order for the window based on the position of each of the n workpieces using an optimization algorithm;
[0123] The target selection unit is configured to select m workpieces from the window based on the picking order, where n > m; and
[0124] The robot is configured to pick up m selected workpieces from the conveying surface in the order stated in the picking sequence.
[0125] (Appendix 2) The robot system according to Appendix 1 further includes an iterative control unit configured to cause the robot to repeatedly perform the picking.
[0126] Wherein, each time the robot picks up the m workpieces from the conveying surface, the iterative control unit is configured as follows:
[0127] The window setting unit replaces the m workpieces in the window with one or more workpieces from the plurality of workpieces to update the window;
[0128] The order determination unit determines the next picking order for the updated window;
[0129] The target selection unit selects the next m workpieces from the updated window based on the next picking order; and
[0130] The robot picks up the next m workpieces from the conveying surface in the next picking order.
[0131] (Appendix 3) The robot system according to Appendix 1 or 2, wherein the sequence determination unit is configured as follows:
[0132] For each of the n workpieces, estimate the physical quantities associated with picking up the workpiece based on the location; and
[0133] The picking order is determined based on the physical quantities of each of the n workpieces.
[0134] (Appendix 4) The robot system according to Appendix 3, wherein the sequence determination unit is configured to perform dynamic programming based on the physical quantities as the optimization algorithm to determine the picking order.
[0135] (Appendix 5) In the robot system according to Appendix 4, the sequence determination unit is configured as follows:
[0136] Perform the dynamic programming to estimate the total physical quantities for each of the multiple candidate sequences corresponding to the n workpieces; and
[0137] The picking order is determined from the multiple candidate orders based on multiple total physical quantities.
[0138] (Appendix 6) Robot system according to Appendix 4 or 5
[0139] The robot is configured to move each of the m workpieces to a common designated location, and
[0140] The sequence determination unit is configured to estimate, for each of the n workpieces, the physical quantity required to move the workpiece from the transfer surface to the designated position.
[0141] (Appendix 7) Robot system according to Appendix 4 or 5
[0142] The robot is configured to move each of the m workpieces to a designated position corresponding to that workpiece.
[0143] The sequence determination unit is configured to, for each of the n workpieces, estimate the physical quantity required to move the workpiece from the transfer surface to the candidate position for each of a plurality of candidate positions that are candidates for the specified position.
[0144] (Appendix 8) The robot system according to any one of Appendices 3 to 7 further includes a storage unit configured to store a data table indicating the distribution of physical quantities on the transfer surface.
[0145] The sequence determination unit is configured to obtain the physical quantity based on the position of each of the n workpieces by referring to the data table.
[0146] (Appendix 9) The robot system according to any one of Appendices 1 to 8,
[0147] The conveying surface has a moving direction and a width direction, and the plurality of workpieces move along the moving direction. The width direction is orthogonal to the moving direction, and...
[0148] The window setting unit is configured to set the window by moving along the conveying surface based on the plurality of workpieces being randomly arranged in at least one of the moving direction and the width direction.
[0149] (Appendix 10) The robot system according to any one of Appendices 1 to 9, wherein the window setting unit is configured to select the n workpieces corresponding to the window based on the order in which the workpieces are detected by sensors monitoring the transfer surface.
[0150] (Appendix 11) A robot system comprising:
[0151] The sequence determination unit is configured to perform dynamic programming based on the position of each of a plurality of workpieces moving along a conveyor surface to determine the picking order for the plurality of workpieces.
[0152] The target selection unit is configured to select at least one workpiece from the plurality of workpieces; and
[0153] The robot is configured to pick up at least one selected workpiece from the transfer surface in the picking order.
[0154] (Appendix 12) A workpiece management system, comprising:
[0155] The window setting unit is configured to determine windows corresponding to n workpieces, where n > 1, based on multiple workpieces moving along the conveyor surface.
[0156] The sequence determination unit is configured to determine the picking order for the window based on the position of each of the n workpieces using an optimization algorithm.
[0157] The target selection unit is configured to select m workpieces from the window as target workpieces to be picked from the transfer surface based on the picking order, where n>m.
[0158] (Appendix 13) A robot control method, executed by a robot control system including at least one processor, the method comprising:
[0159] Based on multiple workpieces moving along the conveyor surface, windows are set corresponding to n workpieces, where n > 1;
[0160] Based on the position of each of the n workpieces, an optimization algorithm is used to determine the picking order for the window;
[0161] Based on the picking order, select m workpieces from the window, where n > m; and
[0162] The robot is controlled to pick up m selected workpieces from the conveyor surface in the picking order.
[0163] (Appendix 14) A workpiece management program for computer execution:
[0164] Based on multiple workpieces moving along the conveyor surface, windows are set corresponding to n workpieces, where n > 1;
[0165] Based on the position of each of the n workpieces, an optimization algorithm is used to determine the picking order for the window;
[0166] Based on the picking order, select m workpieces from the window as target workpieces to be picked from the conveyor surface, where n > m.
Claims
1. A robot system, comprising: A window setting unit is configured to set windows corresponding to n of the plurality of workpieces based on the inflow order of the plurality of workpieces moving along the conveying surface, wherein the inflow order is the order in which the plurality of workpieces have moved along the conveying surface, where n > 1, and wherein the window is a virtual container for the n workpieces. The sequence determination unit is configured to determine the picking order for the window based on the position of each of the n workpieces on the conveying surface using an optimization algorithm. The picking order is the order in which one or more workpieces are picked from the conveying surface, and is different from the inflow order. The target selection unit is configured to select m workpieces from the window based on the picking order, where n > m; A robot is configured to pick up m selected workpieces from the conveying surface in the said picking order; and An iterative control unit is configured to cause the robot to repeatedly perform the picking action. Wherein, each time the robot picks up the m workpieces from the conveying surface, the iterative control unit is configured as follows: The window setting unit is configured to: delete the m workpieces from the window while retaining at least one of the n workpieces in the window; and add one or more of the plurality of workpieces to the window, thereby updating the window; The order determination unit determines the next picking order for the updated window; The target selection unit selects the next m workpieces from the updated window based on the next picking order; and The robot picks up the next m workpieces from the conveying surface in the next picking order.
2. The robot system according to claim 1, wherein, The sequence determination unit is configured as follows: For each of the n workpieces, estimate the physical quantities associated with picking up the workpiece from the conveying surface based on the position; as well as The picking order is determined based on the physical quantities of each of the n workpieces.
3. The robot system according to claim 2, wherein, The order determination unit is configured to perform dynamic programming based on the physical quantity as the optimization algorithm to determine the picking order.
4. The robot system according to claim 3, wherein, The sequence determination unit is configured as follows: The dynamic programming is performed to estimate the total physical quantities for each of the multiple candidate sequences corresponding to the n workpieces; as well as The picking order is determined from the multiple candidate orders based on multiple total physical quantities.
5. The robot system according to claim 3, in, The robot is configured to move each of the m workpieces to a common designated location, and The sequence determination unit is configured to estimate, for each of the n workpieces, the physical quantity required to move the workpiece from the transfer surface to the designated position.
6. The robot system according to claim 3, in, The robot is configured to move each of the m workpieces to a designated position corresponding to that workpiece, and The sequence determination unit is configured to, for each of the n workpieces, estimate the physical quantity required to move the workpiece from the transfer surface to the candidate position for each of a plurality of candidate positions that are candidates for the specified position.
7. The robot system according to claim 2, further comprising: Storage units are configured to store data tables indicating the distribution of physical quantities on the transmission surface. The sequence determination unit is configured to obtain the physical quantity based on the position of each of the n workpieces by referring to the data table.
8. The robot system according to claim 1, in, The conveying surface has a moving direction and a width direction, the plurality of workpieces move in the moving direction, and the width direction is orthogonal to the moving direction. The window setting unit is configured to set the window based on the multiple workpieces being randomly arranged along the conveying surface in at least one of the moving direction and the width direction.
9. The robot system according to claim 1, wherein, The window setting unit is configured to set the following order as the inflow order: the order in which the workpieces are detected by a sensor that monitors the conveying surface.
10. A robot control method, executable by a robot control system including at least one processor, the method comprising: Based on multiple workpieces moving along a conveyor surface, windows corresponding to n of the multiple workpieces are set according to the inflow order, the inflow order being the order in which the multiple workpieces have moved along the conveyor surface, where n > 1, and where the window is a virtual container for the n workpieces. Based on the position of each of the n workpieces on the conveying surface, an optimization algorithm is used to determine the picking order for the window, which is the order in which one or more workpieces are picked from the conveying surface and is different from the inflow order; Based on the picking order, select m workpieces from the window, where n > m; The robot is controlled to pick up m selected workpieces from the conveying surface in the picking order; Delete the m workpieces from the window, while keeping at least one of the n workpieces in the window, and add one or more of the plurality of workpieces to the window, thereby updating the window; Determine the next pick order for the updated window; Based on the next pick order, select the next m workpieces from the updated window; and The robot is controlled to pick up the next m workpieces from the conveying surface in the next picking order.
11. A computer-readable storage medium storing processor-executable instructions for: Based on multiple workpieces moving along a conveyor surface, windows corresponding to n workpieces among the multiple workpieces are set according to the inflow order, where the inflow order is the order in which the multiple workpieces have moved along the conveyor surface, where n > 1, and where... The window is a virtual container for the n workpieces; Based on the position of each of the n workpieces on the conveying surface, an optimization algorithm is used to determine the picking order for the window, which is the order in which one or more workpieces are picked from the conveying surface and is different from the inflow order; Based on the picking order, m workpieces are selected from the window as target workpieces to be picked from the conveying surface, where n > m; The robot is controlled to pick up m selected workpieces from the conveying surface in the picking order; Delete the m workpieces from the window, while keeping at least one of the n workpieces in the window, and add one or more of the plurality of workpieces to the window, thereby updating the window; Determine the next pick order for the updated window; Select the next m workpieces from the updated window based on the next picking order; as well as The robot is controlled to pick up the next m workpieces from the conveying surface in the next picking order.
Citation Information
Patent Citations
Robot control device and picking system
JP2021171834A
Pick and place planning method and pick and place system
JP2022066882A
