Robot system for realizing an order using a collaborative robot
A collaborative robotic system allows multiple robots to work together autonomously to streamline order fulfillment by optimizing task allocation and reducing human intervention, enhancing efficiency and productivity.
Patent Information
- Application Number
- JP2024570609
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-06-29
- Filing Date
- 2023-06-26
- Publication Date
- 2025-07-30
AI Technical Summary
Existing robotic systems operate independently, requiring human intervention for tasks like unloading deliveries and filling bins, leading to inefficiencies in order fulfillment processes.
A collaborative robotic system where multiple robots work together to seamlessly execute integrated activities from start to finish, including unloading trucks, moving items to shelves, pulling items from storage, and packaging them for shipment, with autonomous decision-making and task allocation among robots.
Enhances order fulfillment efficiency by enabling robots to autonomously collaborate, optimize task allocation, and minimize human intervention, thereby improving workflow integration and productivity.
Smart Images

Figure 2025524341000001_ABST
Abstract
Description
Cross - References to Other Applications
[0001] This application claims priority based on U.S. Provisional Patent Application No. 63 / 356,858, filed on June 29, 2022, entitled "ROBOTIC SYSTEM TO FULFILL ORDERS USING COOPERATING ROBOTS", which is hereby incorporated by reference in its entirety for all purposes. BACKGROUND OF THE INVENTION
[0002] Robotic systems have been used to automate warehouse operations, shipping operations, and order fulfillment operations. Robots are increasingly being automated to perform tasks such as picking and placing items into boxes or other containers for shipping.
[0003] Typically, robots work independently, and a particular robot is typically used to perform an individual set of tasks, including, for example, a portion of the workflow required for order fulfillment. Human workers or robots working independently of each other are required to perform other related tasks, such as unloading deliveries from suppliers and filling the original bins or shoots that the robots pick from to fulfill the order. BRIEF DESCRIPTION OF THE DRAWINGS
[0004] In the following detailed description and the accompanying drawings, various embodiments of the present invention are disclosed.
[0005]
Figure 1
[0006]
Figure 2
[0007]
Figure 3
[0008]
Figure 4
[0009]
Figure 5
[0010]
Figure 6
[0011]
Figure 7
[0012]
Figure 8
[0013]
Figure 9
DETAILED DESCRIPTION OF THE INVENTION
[0014] The present invention can be implemented in various forms, including a process, an apparatus, a system, a composition of matter, a computer program product embodied on a computer-readable storage medium, and / or a processor (a processor configured to execute instructions stored in and / or provided by a memory connected to the processor). In this specification, these embodiments or any other form that the present invention can take may be referred to as a technique. Generally, the order of the disclosed process steps may be changed within the scope of the present invention. Unless otherwise specified, components such as processors or memories described as being configured to perform a task are implemented as general components temporarily configured to perform the task at a certain time or as specific components manufactured to perform the task. In this specification, the term "processor" shall refer to one or more devices, circuits, and / or processing cores configured to process data such as computer program instructions.
[0015] Hereinafter, with reference to the drawings showing the principles of the present invention, a detailed description of one or more embodiments of the present invention will be given. The present invention is described in relation to such embodiments, but is not limited to any embodiment. The scope of the present invention is limited only by the claims, and the present invention includes many alternatives, modifications, and equivalents. In the following description, many specific details are set forth in order to provide a complete understanding of the present invention. These details are for illustrative purposes only, and the present invention can be practiced according to the claims without some or all of these specific details. For the sake of simplicity, technical matters well-known in the technical field related to the present invention are not described in detail so as not to make the present invention unnecessarily difficult to understand.
[0016] An integrated self-regulating robotic system is disclosed, in which a plurality of robots work collaboratively and at least sometimes in close proximity to seamlessly execute an integrated set of activities including an order fulfillment or similar workflow from start to finish. In various embodiments, one robot or a set of robots may unload a truck or other container used when items are transported to a warehouse or other physical location. Mobile robots, robot-controlled conveyors, and / or other robot-controlled devices may be used integratively and at least partially collaboratively to move items from a loading dock to a shelf, bin, or other item-specific staging area. Yet another set of one or more robots may be tasked with pulling items from shelves and bins, transporting them to a collection point, and / or handing them off to other robots, which then place the items in boxes or otherwise assemble sets of items for further downstream conveyance, such as to fulfill an order.
[0017] In various embodiments, a robot station comprises one, two, or more robots. The station is configured to utilize the robots and / or each robot is configured to realize an order (e.g., a customer order or other order for which one or more sets of items, each in an indicated quantity, are shipped to a destination (e.g., a delivery address) associated with the order). In various embodiments, the robot stations disclosed herein may comprise one or more stationary robots (e.g., a six-degree-of-freedom robotic arm attached to a floor, a fixed base, and / or another fixed structure). In some embodiments, one or both of the robot station robots may be attached to rails and / or otherwise fully or partially movable.
[0018] The following is an example of a fully autonomous order fulfillment workflow in various embodiments. · The robot station receives an order to be fulfilled · The robot station, for example, sends a ping to the mobile robot and, in some embodiments, to the robot-controlled shelves to extract the correct shelf / tote / bin / tray / product (source container / item) from the storage location and present it to the mobile robot for acquisition and movement. · The mobile robot acquires the source container / item and transports it to the robot station. · Robot station arm 1 receives the source container / item from the mobile robot and provides it to robot station arm 2. · Robot station arm 2 picks the item from the source container or, in the case of a single item, grasps the item and moves the destination tote / box / bin / bag or other destination container for fulfillment. · Robot station arm 1 returns the source container, if any, via the same or another mobile robot, and the mobile robot returns to the shelf.
[0019] In some embodiments, the above process may be reversed, for example, to unpack items or containers at the robot station and transport them to the shelf / storage location using the mobile robot.
[0020] In various embodiments, each of a plurality of robots is associated with performing a subtask related to completing a task or operation, such as fulfilling an order or achieving another work objective, and can operate autonomously but can also operate in cooperation with one or more other robots. For example, an order to ship a specified quantity of items A, B, and C to respective destinations may be fulfilled by one or more robots configured to retrieve the required items from a storage shelf or bin and place them in a staging area accessible to another robot, and another robot may retrieve the items from the staging area, pack them in boxes, and attach or label them and send the packed boxes to a downstream robot, station, and / or process so as to send the boxes to the destinations, such as by sending the boxes to the destinations.
[0021] In some embodiments, a robot configured to retrieve items from a storage shelf, bin, or other source location may be configured to autonomously draw subtasks from one or more queues or other data structures. In some embodiments, a robot may be configured to calculate the respective costs associated with the robot completing a given subtask. The robot may be selected (or may select itself) to execute the subtask if the cost is lower than a threshold and / or lower than any competing bids / costs calculated or presented (e.g., posted to a data structure) by another robot capable of executing the subtask.
[0022] In some cases, a robot that fulfills an order (e.g., a robot configured to package items into boxes or other containers for shipping) may call one or more other robots to obtain one or more items required to fulfill the order. For example, the robot may request that a particular robot perform a subtask, or may notify, post, or otherwise inform other robots of the need to perform a subtask.
[0023] In various embodiments, in situations where two or more robots can perform a subtask, one or more techniques may be utilized to determine which robot performs a given subtask. For example, a supervisory process may assign subtasks to robots, or robots may bid based on cost or other metrics or factors as in the above examples, or robots may negotiate or otherwise determine among themselves which of them performs a given subtask according to a work assignment protocol, or a subtask may be pulled from a queue on a first-in (or last-in) first-out or other basis, these being given as examples and not being limiting.
[0024] FIG. 1 shows an embodiment of a robotic system for fulfilling orders (or performing other integrated operations) using collaborative robots. In the example of the figure, the robotic system and the work space 100 include, for example, a receiving dock 102 where delivery items are received via a truck or other transport means and / or container not shown in FIG. 1. In some embodiments, a first set of robots and / or conveyor, forklift, or other robotic means controlled by the robot may be used to unload the truck or other container. The items and / or boxes, pallets, or other containers, or sets of items received at the receiving dock 102 are, in this example, transported to corresponding, designated, and / or tracked positions on storage / staging shelves 104, 106, and 108, for example, by mobile robots 110, 112, and 114 and / or by a second set of robots not shown in FIG. 1.
[0025] In various embodiments, one or more of the shelves 104, 106, and 108 may include a robotic-controlled storage system configured to receive items or boxes or other containers of items (e.g., items received at the receiving dock 102) and move the items or containers of items to deeper and / or more inaccessible storage locations using robot-controlled means (conveyor, robotic arm, etc.). When a suggestion is received that a given item or container of items needs to be retrieved, for example, by one or more of the mobile robots 104, 106, and 108, the shelf system retrieves and provides the item or container of items to be retrieved using robotic means.
[0026] Referring further to FIG. 1, in the example of the figure, system 100 further includes mobile robots 110, 112, and 114. In this example, each of mobile robots 110, 112, and 114 includes a single robotic arm attached to a robot-controlled mobile base. In various embodiments, mobile robots 110, 112, and 114 are utilized under robot control to acquire items from the loading dock 102 and transport them to appropriate locations on shelves 104, 106, and 108, as well as to acquire items from shelves 104, 106, and 108 and transport them to a robot station (such as that shown in the lower right corner of FIG. 1).
[0027] In the example of the figure, the robot station includes a handover zone or table 116 to which mobile robots 110, 112, and 114 transport items or containers of items (such as items 118 and 120 in the example of the figure) acquired from shelves 104, 106, and 108. In this example, a single mobile robot 122 acquires items from a position on handover zone or table 116 and packages them into a box or other shipping container (such as box 126 shown on output conveyor 126). In various embodiments, the system (such as system 100) may include means under robot control for assembling box 124 and placing box 124 on conveyor 126, printing an address label and affixing the label to box 124, and operating conveyor 126 to move box 124 to a downstream destination, etc.
[0028] The above-described robot operations are autonomously executed under the control of one or more control computers 128 in various embodiments. In this example, the control computer 128 is shown as a single computer that wirelessly communicates with the shelves 104, 106, and 108, the mobile robots 110, 112, and 114, and the robot station robot 122. In some embodiments, the robot control functions described herein that are executed by the control computer 128 and / or another control computer may be at least partially executed in a distributed manner by a computer that constitutes and / or is otherwise associated with one or more of, for example, the shelves 104, 106, and 108, the mobile robots 110, 112, and 114, and the robot station robot 122. In some embodiments, each of the shelves 104, 106, and 108, the mobile robots 110, 112, and 114, and the robot station robot 122 operates independently of the others, but collaboratively operates to perform tasks jointly and / or sequentially to achieve a higher-level goal, such as to fulfill one or more orders, as disclosed herein.
[0029] System 100 further includes sensors (including, in this example, 3D cameras 130, 132, and 134). In various embodiments, 3D image data (including RGB (red, green, blue) or other color / pixel data and depth information) is received from cameras 130, 132, and 134 by control computer 128 via wired or wireless communication. In various embodiments, additional cameras and / or other sensors (such as barcode readers or other optical code readers, RF tag readers, etc.) may be installed at positions around the work space and / or attached to one or more robots (such as mobile robots 110, 112, and 114 and / or robot 122, etc.). In various embodiments, camera and other sensor data is provided to a computer vision subsystem, which uses the sensor data to construct and maintain a three-dimensional view of the work space and of the items, robots, and other robot-controlled means present in and / or working in the work space.
[0030] In some embodiments, humans may be present in the work space. Sensors (such as cameras 130, 132, and 134, etc.) may be used to track the location of humans, and control computer 128 may be configured to operate the robots 110, 112, 114, and 122 in the work space so as to protect humans from injury, such as by operating the robots and robot-controlled means more slowly or by causing the operation to be paused or stopped immediately when a human is nearby.
[0031] In some embodiments, system 100 may operate according to a workflow as described above. For example, robot 122 may receive an order to be fulfilled. For example, robot 122 may, for example, pull the next order from an order queue, or may be assigned an order, or may select the next order determined to have at least a threshold degree of fitness for robot 122. Next, robot 122 communicates with one or more of mobile robots 110, 112, and 114 to prompt those mobile robots to retrieve items necessary to fulfill the order from shelves 104, 106, and 108 and transport them to a robot station (e.g., a handover zone or table 116). When an item is received, robot 122 packages the item in a box or other container (such as box 124) until all items required by the order are received and packaged. Next, robot 122 sends / releases the packaged box or other container towards downstream processing, such as closing and sealing the box, printing and attaching an address label, and / or routing it for shipment to a final destination.
[0032] FIG. 2 shows an embodiment of a robotic system for fulfilling an order (or performing other integrated operations) using collaborative robots. In the example of the figure, system and environment 200 includes a mobile robot 202 shown gripping an item from shelf 204 using a gripper-type end effector. In this example, a mobile robot 206 equipped with a suction-type end effector 208 is shown gripping a box 210 and actively handing the box 210 to a stationary robot arm 212 equipped with a gripper-type end effector 214. Mobile robot 202, mobile robot 206, and stationary robot 212 communicate with a control computer 216 via wireless communication. Control computer 216 receives sensor data from camera 220 and / or other sensors via wireless communication in this example.
[0033] During operation, in various embodiments, robots 202, 206, and 212 can cooperatively retrieve items from shelf 204, for example, for order fulfillment as described herein, and direct them towards the robot station associated with robot 212. For example, robot 212 and / or the computer associated therewith may assign to mobile robots 202, 206 the task of receiving an order and retrieving the items and / or containers of items necessary to fulfill the order and providing them to robot 212. For example, as shown in FIG. 2, mobile robot 202 may be assigned or may assign to itself the task of reviewing box 210 from shelf 204 and passing box 210 to mobile robot 206 for further conveyance towards robot 212. Mobile robot 206 may be assigned or may assign to itself the task of receiving box 210 from mobile robot 202 and transporting and passing it to robot 212, as shown in FIG. 2. In some embodiments, mobile robots 202 and 206 may implement a protocol for determining the positions and methods agreed upon by each other for passing items (e.g., box 210). In some embodiments, the robots may negotiate or otherwise determine, according to the protocol, the position and orientation in three-dimensional space when mobile robot 202 provides box 210 to mobile robot 206, and in some embodiments, the position of the mobile base of mobile robot 202 and / or the posture and position of its robot arm. Similarly, the position and posture at which robot 206 receives box 210 may be determined according to the protocol. Each of robots 202, 206 moves to the determined position and performs a handshake to pass box 210 from robot 202 to robot 206. For example, robot 202 may indicate that it is ready to pass box 210 to robot 206, and robot 206 may indicate that it is ready to receive box 210. Next, robot 206 may grip box 210, for example, by using a suction-type end effector 208 to grip box 210 from above as shown in FIG. 2, and may notify robot 202 that it is gripping box 210.Next, the robot 202 may well indicate that it is preparing to release the grip. When recognized by the robot 206, it may release the grip, retract the end effector, and notify the robot 206 that the box 210 has been released (alternatively, the robot 206 may determine based on image, weight, force, or other sensor data that the box 210 has been released by the robot 202). Similar cooperation protocols and handshakes may be executed by the robots 206 and 212 to transfer the box 210 from the robot 206 to the robot 212, as in the state shown in FIG. 2.
[0034] FIG. 3 shows an embodiment of a planner subsystem of a robot system for realizing an order (or performing other integrated operations) using collaborative robots. In the example of the figure, the system 300 includes individual schedulers 304, 306, 308, and 310 each associated with a single corresponding robot in this example, and a higher-level multi-robot cooperation scheduler / planner 312 configured to cooperate the work among the robots controlled by the schedulers 304, 306, 308, and 310 to avoid physical or other collisions and / or to predict and take measures to improve efficiency, such as reassigning and / or rearranging tasks to achieve better global optimization according to some cost function. The system 300 further includes a planner subsystem 302 having a hierarchical planner.
[0035] In the example of the figure, a set 316 of requirements (e.g., an order) is received and stored in the target data store 314. Inventory data 320 is received and used to maintain an inventory database 318 that includes data representing items available to realize an order (or other purpose) and the locations where those items are located. Sensor data 324 is received and used to estimate and update state information 322, such as the positions of robots or other resources in the work space, the positions, postures, and orientations of each item being acquired.
[0036] During operation, in various embodiments, the packing robot scheduler 310 may obtain an order or other objective from the objective data store 314, and may send one or more tasks for obtaining the items listed in the order and transporting them to the robot station. For example, the required items may be added to the objective data store 314 as acquisition tasks, and / or sent to each of the acquisition robot schedulers 304, 306, and 308, and / or to the designated, selected, negotiated, and / or agreed ones among them. The acquisition robot schedulers 304, 306, and 308 may schedule their corresponding robots using the item acquisition task information, and the corresponding inventory data 318, 320, and sensor / status information 322, 324, to obtain the required items and transport the items to a robot station equipped with the packing robot scheduler 310 for packing the items according to the order.
[0037] If there is a detection of a collision, a contention state, a risk of collision, or inefficiency, the multi-robot cooperation module 312 may, in various embodiments, for example, ensure that a set of tasks associated with an order is achieved more efficiently, free up resources to be utilized to fulfill another order, and / or intervene to rearrange or otherwise adjust the timing of task execution scheduled by one or more of the acquisition robot schedulers 304, 306, and 308, or reassign acquisition tasks among the schedulers, in order to achieve better overall optimization of the system in another way.
[0038] FIG. 4 shows an embodiment of a multi - tier set of planner subsystems that make up a robot system for fulfilling an order (or performing other integrated operations) using a collaborative robot. In various embodiments, as described above, the use of robots to collaboratively perform tasks to achieve an objective (e.g., fulfill a given order) may be further extended to achieve even better global optimization. For example, a collaborative robot system spanning geographical locations may be used in various embodiments to achieve better optimization. A first set of collaborative robots may be operated at a first location using the techniques disclosed herein to manufacture items “just in time” so as to be able to fulfill existing or predicted orders. A second set of collaborative robots may be used to schedule empty trucks or other containers so that they are available for loading by the second set of robots or other robots just in time for shipment to a downstream destination (such as a distribution center). The trucks (or other means of conveyance) themselves may be robots or may be robot - controlled and may be scheduled and operated as disclosed herein, for example, to carry items to their respective destinations at the appropriate times for being unloaded from the truck / container and placed on the shelf as shown in the example of FIG. 1.
[0039] Referring to FIG. 4, it is shown that a global (or other) hierarchical planner / scheduler 400 includes a plurality of hierarchical planning subsystems having a hierarchical relationship as shown in FIG. 4. For example, the global hierarchical planning system 402 includes, at the next lower level of the hierarchy, three hierarchical planning systems 404, 406, and 408. Each of the hierarchical planning systems 404, 406, and 408 includes one or more further hierarchical levels as shown in the figure. For example, the hierarchical planning system 404 is shown to include, at the next lower level of the hierarchy, planning systems 410 and 412. The planning system 410 includes systems 414 and 416 at the next lower level of the hierarchy, and the planning system 412 includes systems 418 and 420 at the next lower level, and so on.
[0040] In various embodiments, each of the lowest-level planning systems shown in FIG. 4 is configured to autonomously and independently schedule corresponding robots (or other robot-controlled devices) to execute tasks that have been rejected and / or redirected by a higher-level planner / scheduler configured to coordinate work among a plurality of robots. Each includes one or more robot (or other robot-controlled device) schedulers (such as schedulers 304, 306, 308, and 310 in FIG. 3).
[0041] In some embodiments, two or more robotic arms may be disposed on a single base or chassis (such as a mobile chassis). Each arm may be controlled independently of the other arms, or, in some embodiments, the arms may operate cooperatively under the control of a single robotic application and / or control module. The arms may be used to perform tasks cooperatively, such as by passing an item from one arm to another. For example, a first arm may be used to pick an item (e.g., from the floor, a shelf, or a bin), and then support and / or further secure the item while, for example, the chassis moves to a new location, or pass the item to another hand to place the item in a location that the first arm cannot reach.
[0042] In some embodiments, as part of an operation to be performed cooperatively with one or more robots, a participating robot may need to configure or reconfigure itself to perform the subtask. For example, the robot may need to introduce the required end effector and / or grip or otherwise acquire the tool.
[0043] FIG. 5 is a flowchart showing an embodiment of a process for fulfilling an order using a collaborative robot. In various embodiments, process 500 of FIG. 5 may be performed by a control computer (such as control computer 128 of FIG. 1). In the example of the figure, in step 502, inventory and / or other status information is received and / or updated. For example, inventory information reflecting where (such as a warehouse, a shelf / bin in an order receiving center, or other source of items), how much quantity, and which items are available may be received. In step 504, information regarding an order to be fulfilled, such as an invoice, an order, or other similar information, is received. In step 506, a plurality of robots collaboratively fulfill the order or perform other operations using the inventory and / or order information collectively. Unless / until it is determined in step 508 that all orders have been processed (e.g., fulfilled), one or more next iterations of steps 502, 504, and 506 are executed, and if determined, the process ends.
[0044] FIG. 6 is a flowchart showing one embodiment of a process for autonomously identifying and executing subtasks associated with order fulfillment using a collaborative robot. In various embodiments, the process 600 of FIG. 6 may be performed by a control computer (such as the control computer 128 of FIG. 1), and / or a control module and / or process configured and / or otherwise associated with individual autonomous robots (such as the robots 110, 112, and 114 of FIG. 1). In the example of the figure, at step 602, a task queue is checked to identify subtasks eligible for a given robot to complete. For example, the robot itself (i.e., software configured to control the robot or to provide control or instructions to the robot, such as a robot application) may check the queue for subtasks that the robot can perform. Examples of subtasks include, but are not limited to, tasks of obtaining an item or a container of items from a source location and placing the item or container at a destination location (such as a location where a second or other robot can obtain the item (or an item from the container)), tasks of replenishing a set of one or more items known or possibly required to fulfill one or more orders in a shelf, container, or other receptacle, and tasks of returning a container of items or other receptacle to an associated location (such as a source location from which the robot or another robot previously obtained the container or other receptacle) to enable another robot to access the items from the container or other receptacle. If an available subtask is identified at step 604, then at step 606, the subtask is "pulled" from the queue, such as by marking the subtask as "in progress" or "assigned" to the robot. At step 608, the robot creates and executes a schedule and plan for performing the subtask.
[0045] If a suitable sub-stack for completion by the robot is not available (steps 602, 604), in step 610, the robot (and / or the process or module executing process 600) waits for a suitable subtask to become available or, in some embodiments, starts processing one or more next orders. For example, the next order may be received or read from a data structure, and the constituent subtasks may be added to a queue.
[0046] When the assigned subtasks are executed (steps 606, 608), or when a new order is initiated (step 610), the process determines in step 612 whether the process has completed (e.g., all orders have been fulfilled or the operation has been paused or stopped in another way). If completed, the process ends. Otherwise, the process returns to step 602, and further iterations of steps 602, 604, 606, 608, 610, and / or 612 are executed as applicable.
[0047] FIG. 7 is a flowchart showing an embodiment of a process for realizing an order using a collaborative robot. In various embodiments, process 700 of FIG. 7 may be performed by a control computer (such as control computer 128 of FIG. 1). In the example of the figure, in step 702, the subtask queue and related resource utilization are monitored. For example, the number and / or nature of the subtasks in the queue may be compared with the set of resources deployed / available for executing the subtasks in the queue. In step 704, if the subtasks queued are determined to be too few, for example, compared with the number of robots available for executing the subtasks in the queue, in this example, in step 706, resources (such as boxes / containers, shipping labels, items in inventory fulfilling the order, etc.) are allocated, and in step 708, the data structure is initialized and / or updated (such as by adding related subtasks to the queue), so that the subtasks associated with realizing one or more next orders are added to the queue. Unless / until it is determined in step 710 that all orders have been fully fulfilled, one or more next iterations of steps 702, 704, 706, and 708 are executed, and if determined, process 700 ends.
[0048] FIG. 8 is a flowchart showing an embodiment of a process for optimizing the full fulfillment of an order using a collaborative robot. In various embodiments, process 800 of FIG. 8 may be performed by a control computer (such as control computer 128 of FIG. 1). In the example of the figure, in step 802, the schedule and / or plan of each of the plurality of robots is monitored. For example, the subtasks assigned to and / or self - assigned by each robot may be monitored. In step 804, a globally more optimal solution is continuously, periodically, and / or continuously sought. For example, the computer / module performing process 800 may apply one or more heuristics, rules, algorithms, and / or other techniques to determine whether the assignment of subtasks other than the current assignment leads to better performance and / or lower cost. For example, if robot 1 is assigned to acquire item A from location LA and item B from location LB, the subtask of acquiring item B may be reassigned to robot 2, which is closer to location LB (for example, if such a reassignment does not impose other costs, such as delaying the execution of another subtask of robot 2). In some embodiments, a more optimal solution is achieved by changing the order in which subtasks already assigned to a robot are executed, or by rearranging or otherwise re - prioritizing subtasks still in the queue. In step 806, changes are made to implement a more optimal solution. For example, in the above example, robot 1 may be notified not to execute the subtask of acquiring item B, and robot 2 may be notified to execute the subtask of acquiring item B.
[0049] In various embodiments, machine learning, artificial intelligence (such as generative artificial intelligence), and / or other techniques may be used to determine and implement a globally more optimal solution.
[0050] The optimization process (800) continues until completion (e.g., until all orders are fulfilled (step 808)).
[0051] FIG. 9 is a flowchart showing an embodiment of a process for autonomously identifying and executing subtasks associated with order fulfillment using a collaborative robot. In various embodiments, the process 600 of FIG. 6 may be implemented by a control computer (such as the control computer 128 of FIG. 1), and / or control modules and / or processes configured and / or otherwise associated with individual autonomous robots (such as the robots 110, 112, and 114 of FIG. 1). In the example of the figure, in step 902, a set of one or more subtasks that can be performed by the robot on which the process 900 is running is identified. For example, the robot and / or a robot application configured to control the robot may identify the subtasks that the robot can perform. In step 904, for each subtask, an estimated cost for the robot to perform that subtask is calculated. For example, time, distance, energy consumption, charge level, or other conditions may be considered when calculating the cost. The cost may reflect the incremental cost associated with adding the subtask to the existing set of subtasks already assigned to the robot. In step 906, a score is used to determine which subtasks are to be performed by the robot. For example, the cost calculated by or for robot 1 may be compared to the corresponding cost calculated by or for (if any) one or more other robots, and the robot with the lowest cost for performing the subtask may be assigned to perform the subtask. In step 908, the robot creates / updates a schedule and plan for performing the subtasks assigned to itself, at least partially based on the costs calculated in step 904. The process 900 continues by further repeating steps 902, 904, 906, and 908 that are being executed until it is determined in step 910 that the process 900 has completed (e.g., all orders have been fulfilled and / or the operation has ended temporarily and / or for the day).
[0052] In various embodiments, the techniques disclosed herein are utilized to enable robots to work collaboratively to achieve purposes such as fulfilling an order. Each robot, as disclosed herein, is autonomous but operates in cooperation with one or more other robots. Some examples described in detail herein include order fulfillment, but in various embodiments, other purposes may be achieved by multiple robots operating collaboratively as disclosed herein. For example, without limitation, a first robot performing repair, maintenance, or manufacturing activities may seek or otherwise obtain the cooperation of another robot to perform associated subtasks such as obtaining parts or other elements required for production. In another example, a first robot holding a part or assembly in place may receive cooperation from another robot to bolt or otherwise secure the part or assembly in that position. In a further example, in the context of logistics / fulfillment, a first robot assigned to retrieve an item from a container or other source location may find that the item is not in that location and may obtain the cooperation of another robot to replenish the item at the source location. In another example, a robot unloading a truck may place an item on a conveyor belt or other transport structure, and other robots may cooperate by performing the subtask of retrieving the item from the transport structure and placing the item on a pallet, corresponding shelf, associated container, etc.
[0053] The above-described embodiments have been described in some detail for ease of understanding, but the present invention is not limited to the details provided. There are many alternative ways to implement the present invention. The disclosed embodiments are illustrative and not intended to be limiting.
Claims
1. A robot system, comprising: a first robot configured to determine a plurality of items to be acquired to fulfill a first order; a second robot configured to receive an instruction to acquire a first item included in the plurality of items and provide the first item to the first robot, and plan and execute a first subtask of acquiring the first item and providing the first item to the first robot; The system comprising the above.
2. The system according to claim 1, wherein the second robot provides the first item to the first robot by placing the first item at a position where the first robot is configured to acquire the first item.
3. The system according to claim 2, wherein the second robot places the item at the position to release the first item, and the first robot then acquires the first item from the position.
4. The system according to claim 1, wherein the second robot provides the first item to the first robot by handing the first item to the first robot.
5. The system according to claim 4, wherein the second robot hands the first item to the first robot by at least partially moving the first item to a position and orientation where the first robot can grip the first item while the first item remains gripped by the second robot.
6. The system according to claim 4, wherein the second robot hands the first item to the first robot by at least partially moving a container containing the first item to a position and orientation where the first robot can grip the first item and remove the first item from the container.
7. The system according to claim 1, wherein the first robot is configured to request that the second robot acquire and provide the first item to the first robot.
8. The system according to claim 1, wherein the second robot receives the instruction to obtain the first item and provide it to the first robot by autonomously determining, at least in part, to obtain the first item and provide it to the first robot.
9. The system according to claim 8, wherein the second robot autonomously determines to obtain the first item and provide it to the first robot by, at least in part, reading a data structure associated with the full fulfillment of the first order.
10. The system according to claim 8, wherein the second robot autonomously determines to obtain the first item and provide it to the first robot by, at least in part, calculating a cost associated with obtaining the first item and providing it to the first robot.
11. The system according to claim 1, wherein the first robot is further configured to fulfill the first order by, at least in part, placing the item including the plurality of items in a container associated with the first order.
12. The system according to claim 11, wherein the container includes a box or other container that is shipped to a destination associated with the first order.
13. The system according to claim 1, wherein the first robot includes a fixed robot arm and the second robot includes a mobile robot.
14. The system according to claim 1, further comprising a processor configured to determine that it is preferable for a third robot to obtain the item and provide it to the first robot, and to reassign the task of obtaining the first item and providing it to the first robot from the second robot to the third robot.
15. The system according to claim 1, further comprising a third robot configured to obtain the first item from a receiving location where a delivery including the first item is received and place the first item at a source location where the second robot is configured to obtain the first item.
16. The system according to claim 15, wherein the third robot is configured to obtain the item from a box, container, or other container in which the first item was placed when the first item was transported to the receiving position.
17. The system according to claim 1, wherein the second robot obtains a container containing a plurality of items including the first item, at least partially, and provides the container to a position associated with the first robot, thereby obtaining the first item, and the first robot is configured to obtain the first item from the container.
18. The system according to claim 17, wherein the second robot is configured to return the container to the source position associated with the container in response to a suggestion that the first robot has obtained the first item from the container.
19. A method comprising: determining, by a first robot, a plurality of items that need to be obtained to fulfill a first order; receiving, by a second robot, an instruction to obtain a first item included in the plurality of items and provide the first item to the first robot; wherein the second robot is configured to plan and execute a first subtask of obtaining the first item and providing the first item to the first robot in response to receiving the instruction.
20. A computer program product embodied in a non-transitory computer-readable medium, computer instructions for determining, by a first robot, a plurality of items that need to be obtained to fulfill a first order; computer instructions for receiving, by a second robot, an instruction to obtain a first item included in the plurality of items and provide the first item to the first robot; wherein the second robot is configured to plan and execute a first subtask of obtaining the first item and providing the first item to the first robot in response to receiving the instruction.
Citation Information
Patent Citations
Object conveying system and conveying method
JP2004196548A
Systems and methods for order fulfillment using robots
JP2018507829A
Controller and control method for robotic system
JP2020196623A
Position-Controlled Robotic Fleet With Visual Handshakes
US20160132059A1