Coordinating the order in which functions are performed on items in an order
Patent Information
- Application Number
- JP2023516192
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-09-11
- Filing Date
- 2021-09-07
- Publication Date
- 2024-12-20
- Estimated Expiration
- 2041-09-07
AI Technical Summary
【0017】 次に、本発明の実施例を、以下の添付図面を参照して、ただ単に実例として説明することにする。
Smart Images

Figure 0007603799000001 
Figure 0007603799000002 
Figure 0007603799000003
Abstract
Description
[Technical field]
[0001] This application claims the benefit of priority to U.S. Patent Application No. 17 / 017,758, filed September 11, 2020, and is incorporated herein by reference.
[0002] This invention relates to the use of autonomous mobile robots in order fulfillment operations in a warehouse, and more particularly to a system and method for adjusting the order in which functions are performed on items in an order based on the location of workers within the warehouse to improve efficiency. [Background technology]
[0003] Order fulfillment is typically performed in large warehouses filled with products to be shipped via courier to customers who have placed orders via the Internet. In some tasks, robots may be used to assist humans in retrieving the items to increase productivity and efficiency. Fulfilling such orders in a timely, accurate, and efficient manner is logistically challenging, to say the least. An "order" can be created by clicking the "checkout" button on a virtual shopping cart. The order includes a list of items to be picked so that they can be shipped to the address of the customer who ordered them. The "fulfillment" process includes physically retrieving, or "picking," these items from the large warehouse, packing the items, and shipping the items to the specified address. Thus, a key goal of the order fulfillment process is to ship as many items as possible in as little time as possible.
[0004] A warehouse management system (WMS) is a software application that assists in the day-to-day operations of an order fulfillment warehouse as described above. WMS programs allow for centralized management of tasks such as tracking inventory levels and storage locations. WMS also assist or direct all major and many minor warehouse tasks such as receiving, inspection and acceptance, putaway, internal replenishment to pick locations, picking, packing, assembling orders at shipping docks, documentation, and shipping (loading onto trucks).
[0005] A WMS typically receives orders from a higher-level host system, typically an ERP system. In e-commerce order fulfillment, as soon as a customer places an order online, the information is communicated to the WMS via the host computer / ERP system. All steps required to manage the order (e.g. picking the ordered items) are then handled within the WMS. Information is then sent back to the ERP system to assist with financial transactions, advance shipping notifications to customers, inventory management, etc.
[0006] As orders are generated by the WMS, the orders may be held in an order queue within the WMS, or order data from the WMS may be fed to a separate software system (e.g., an order server) that can establish order queues and assign orders to robots for fulfillment within the warehouse. Each order may include one or more items within the warehouse. The robot travels to the locations of the various items in the assigned orders, and at each location, a human worker may assist the robot in performing the task of physically removing the items from the shelves and placing the items on the robot, e.g., in a tote.
[0007] When the robot arrives at the location of an ordered item, it can communicate, for example, by a light signal, that it needs assistance from a worker to perform a function on the item. When the worker arrives at the robot, the robot can communicate information about the item that the worker should pick via a tablet (or laptop / other user input / output device) that the worker can read, or by sending the order to a handheld device used by the on-premise worker. The worker would then assist the robot in performing a function, for example a picking function, which includes retrieving the item, scanning the barcode of the item, and then placing the item on the robot. The robot can then move to another location and pick up the next item in the order.
[0008] An important part of making the above described process efficient is ensuring that a worker is near the robot when the robot arrives at a location near the ordered items. The robot or the order server would typically determine an optimized route for the robot to follow to most efficiently travel to each item in the order. However, if the robot arrives at the location of the ordered items and there is no worker available to assist the robot, the overall efficiency of the robot in fulfilling the order will be reduced.
[0009] Therefore, there is a need for a system and method that increases the likelihood that a worker will be at the location of an ordered item so that they can quickly assist the robot. It should be noted that the problems described above do not only apply to picking functions, but also to performing other functions, including placing an item or performing a maintenance function on an item. [Prior art documents] [Patent documents]
[0010] [Patent Document 1] U.S. Patent Application Serial No. 15 / 712,222 [Patent Document 2] U.S. Patent Application Serial No. 15 / 712,256 [Patent Document 3] U.S. Patent Application Serial No. 16 / 265,703 Summary of the Invention [Means for solving the problem]
[0011] The benefits and advantages of the present invention over existing systems will be readily apparent from the Summary of the Invention and the Detailed Description below. Those skilled in the art will appreciate that the present teachings may be practiced using embodiments other than those summarized or disclosed below.
[0012] In one aspect, the present invention includes a method for executing orders assigned to a plurality of robots operating in a warehouse, the robots interacting with a warehouse management system and executing the orders with the assistance of a plurality of workers, each order including a plurality of items, each item being located in the warehouse. The method includes a step of a robot of the plurality of robots receiving an order to be executed by the robot, the order including a plurality of items, each item being associated with an item location in the warehouse. The method also includes a step of defining a plurality of regions in the warehouse, and a step of identifying a region of the plurality of regions including at least one item location associated with an item of the order received by the robot. The method further includes a step of determining a region including at least one worker of the plurality of workers from the region identified by the robot as including at least one item location associated with an item of the order received by the robot. The method further includes a step of evaluating criteria related to a current location of the robot and an item location associated with the region in which the at least one worker is located, and a step of selecting an item location for the robot to move from its current location for the item of the order. The step of selecting is based on an evaluation of criteria related to a current location of the robot and an item location associated with the region in which the at least one worker is located.
[0013] Other aspects of the invention may include one or more of the following features: Fulfilling the order may include performing one or more of picking, placing, or maintenance functions on the items of the order. Evaluating the criteria may include evaluating one or both of a travel distance or travel time between the current location of the robot and each of the item locations associated with the area where the at least one operator is present. The robot may determine an initial order execution order for the multiple items of each order, and evaluating the criteria may further include evaluating one or more positions in the order sequence for each item within the area where the at least one operator is present, or a travel distance or travel time between the current location of the robot and each of the item locations associated with the area where the at least one operator robot is present. Selecting the item location to which the robot should move may be based on a minimum travel distance or minimum travel time between the current location of the robot and each of the item locations associated with the area where the at least one operator robot is present. The evaluating may include determining item locations that are within a predetermined distance or travel time between the current location and each item location. Also, selecting an item location for the robot to move to can be determined based on which item location within a predetermined distance or travel time is next in an initial order fulfillment sequence. Selecting an item location for the robot to move to can be determined in part based on one or both of the areas of the plurality of regions that have more workers or a higher worker-to-robot ratio.
[0014] In another aspect, the invention features a robot configured to execute orders assigned by a warehouse management system, each order including a plurality of items, each item being placed at an item location in one of a plurality of areas in a warehouse. The robot includes a mobile base, a communication device enabling communication between the robot and the warehouse management system, and a processor and memory responsive to communication with the management system. The processor and memory are configured to receive orders for the robot to execute, the orders including a plurality of items, each item being associated with an item location in the warehouse. The processor and memory are also configured to identify one or more areas of the plurality of areas including at least one item location associated with an item of the order received by the robot, and determine one or more areas including at least one worker of the plurality of workers from the one or more areas identified by the robot as including at least one item location associated with an item of the order received by the robot. The processor and memory are further configured to evaluate criteria related to a current location of the robot and item locations associated with the one or more areas in which the at least one worker is present, and select an item location for the item of the order to be moved by the robot from the current location. The selection is based on an evaluation of criteria relating to the current location of the robot and item locations relative to one or more areas in which at least one worker is present.
[0015] In yet another aspect of the invention, one or more of the following features may be included: Fulfilling the order may include performing one or more of picking, placing, or maintenance functions on the items of the order. The processor and memory may be configured to evaluate one or both of a travel distance or travel time between the current location of the robot and each of the item locations associated with the one or more areas in which the at least one worker is present. The processor and memory may be configured to determine an initial order execution order for the multiple items of each order and evaluate one or more positions in the order sequence for each item within the one or more areas in which the at least one worker is present, or a travel distance or travel time between the current location of the robot and each of the item locations associated with the one or more areas in which the at least one worker robot is present. The processor and memory may also be configured to select an item location to which the robot should move based on a shortest travel distance or shortest travel time between the current location of the robot and each of the item locations associated with the one or more areas in which the at least one worker robot is present. The processor and memory may be further configured to determine which item locations are within a predetermined distance or travel time between the current location and the respective item location, and select the item location to which the robot should move based on which of the item locations within the predetermined distance or travel time is next in the initial order execution sequence. The processor and memory may be further configured to select the item location to which the robot should move based in part on one or both of the multiple regions having more workers or a higher worker-to-robot ratio.
[0016] These and other features of the present invention will become apparent from the following detailed description and the accompanying drawings.
[0017] Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings in which: [Brief description of the drawings]
[0018] [Figure 1]FIG. 1 is a top view of an order fulfillment warehouse. [Figure 2A] FIG. 2 is a front view of the base of one of the robots used in the warehouse shown in FIG. 1. [Figure 2B] FIG. 2 is a perspective view of the base of one of the robots used in the warehouse shown in FIG. [Diagram 3] FIG. 2C is a perspective view of the robot of FIGS. 2A and 2B equipped with an armature and parked in front of the shelf shown in FIG. 1. [Figure 4] FIG. 2 is a partial map of the warehouse of Figure 1, created using the robot's laser radar. [Diagram 5] 1 is a flow diagram illustrating a process for locating fiducial markers distributed throughout a warehouse and storing the poses of the fiducial markers. [Figure 6] 1 is a table mapping reference identities to poses. [Figure 7] 1 is a table mapping box locations to reference identifiers. [Figure 8] 1 is a flow diagram illustrating a process for mapping product SKUs to poses. [Figure 9] 1 is an image of a top view of a portion of an order fulfillment warehouse showing robots, workers, and active item locations within the warehouse. [Figure 10] 4 is a flow diagram illustrating an implementation of an article reordering algorithm according to one aspect of the present invention. [Figure 11] FIG. 1 is a block diagram of an exemplary computer processing system. [Figure 12] FIG. 1 is a network diagram of an example distributed network. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0019] The details of the present disclosure and its various features and advantages will be more fully described with reference to the non-limiting examples and examples described and / or illustrated in the accompanying drawings and detailed in the following description. It should be noted that the features shown in the drawings are not necessarily drawn to scale, and that features of one embodiment may be used with other embodiments that would be recognized by those skilled in the art even if not explicitly stated herein. Descriptions of well-known components and processing techniques may be omitted so as not to unnecessarily obscure the embodiments of the present disclosure. The examples used herein are merely intended to facilitate an understanding of how the present disclosure may be implemented and to further enable those skilled in the art to implement the embodiments of the present disclosure. Thus, the examples and examples herein should not be construed as limiting the scope of the present disclosure. Furthermore, it should be noted that like reference numerals represent like parts throughout the several views of the drawings.
[0020] The present disclosure relates to systems and methods for coordinating the order of performing functions on items in an order based on the location of a worker, and may be applied to order fulfillment operations in warehouses that use autonomous mobile robots, or "AMRs," to increase efficiency and productivity. Although specific AMR implementations are described herein, this is for the sole purpose of providing context for the systems and methods for coordinating the order of performing functions on items in an order, according to the present invention. Additionally, while the implementations described herein focus on AMRs performing picking functions, the systems and methods described herein for coordinating the order of performing functions on items in an order based on the location of a worker are applicable to any function that a robot may perform, including, but not limited to, placing items and performing maintenance functions on items.
[0021] With reference to FIGURE 1, a typical order fulfillment warehouse 10 includes shelves 12 filled with various items that may be included in an order. During operation, an incoming stream of orders 16 arrive at an order server 14 from a warehouse management server 15. The order server 14 may, among other things, prioritize and group the orders for assignment to a robot 18 during the induction process. As the robot is induced by an operator at a processing station (e.g., station 100), the orders 16 are assigned to the robot 18 and communicated, e.g., wirelessly, for execution. The induction process according to one aspect of the invention will be described in more detail below.
[0022] Those skilled in the art will appreciate that the order server 14 may be a separate server with a separate software system configured to interoperate with the WMS server 15 and the WMS software, or the ordering server functionality may be integrated into the WMS software and run on the WMS server 15.
[0023] In a preferred embodiment, the robot 18 shown in Figures 2A and 2B comprises an autonomous wheeled base 20 equipped with a laser radar 22. The base 20 also features a transceiver (not shown) that allows the robot 18 to receive commands and transmit data from the order server 14 and / or other robots, and a pair of digital optical cameras 24a and 24b. The robot base also includes a charging port 26 for recharging the batteries that power the autonomous wheeled base 20. The base 20 further features a processor (not shown) that receives data from the laser radar and cameras 24a and 24b to capture information representative of the robot's environment. As shown in Figure 3, there is a memory (not shown) that operates with the processor to perform various tasks related to navigation within the warehouse 10 as well as to navigate to fiducial markers 30 located on the shelves 12. The fiducial markers 30 (e.g., two-dimensional bar codes) correspond to the bins / locations of the ordered items. The navigation techniques of the present invention are described in more detail below in conjunction with Figures 4-8.
[0024] The fiducial markers are also used to identify processing stations (including introduction stations), and navigation to such processing stations may be the same as navigation to the fiducial markers for the bins / locations of the ordered items. It should be noted that the navigation techniques described herein are merely exemplary and any other applicable navigation techniques may be used.
[0025] Referring again to FIG. 2B, the base 20 includes a top surface 32 on which a tote or bin may be stored for carrying items. Also shown is a coupling 34 that engages any one of a number of interchangeable armatures 40, one of which is shown in FIG. 3. The particular armature 40 of FIG. 3 features a tote holder 42 (in this case a shelf) for carrying a tote 44 containing items, and a tablet holder 46 for supporting a tablet 48 (or laptop / other user input device). In some embodiments, the armature 40 supports one or more totes for carrying items. In other embodiments, the base 20 supports one or more totes for carrying stored items. As used herein, the term "tote" includes, but is not limited to, cargo holders, bins, baskets, shelves, poles from which items may be hung, cans, crates, shelves, pedestals, racks, containers, boxes, canisters, receptacles, and storage.
[0026] While the robot 18 is good at moving around the warehouse 10 with current robotic technology, it is not so good at quickly and efficiently picking items from shelves and placing the items in totes 44. Currently, a more efficient way of picking items is to use an on-site operator 50, usually a human, who performs the task of physically removing the ordered items from the shelves 12 and placing the items on the robot 18, e.g., in a tote 44. The robot 18 communicates the order to the on-site operator 50 via a tablet 48 (or laptop / other user input / output device) that the on-site operator 50 can read, or by transmitting the order (i.e., the individual items to be selected) to a handheld device used by the on-site operator 50. Alternatively, the on-site operator 50 may be a robotic device that can be used to perform a picking function, taking items from a shelf and placing them on the robot 18, and conversely, can be used to perform a placing or storage function, taking items from the robot 18 and placing them in the appropriate location on the shelf.
[0027] When the robot 18 receives an order 16 from the order server 14, it navigates to an initial location in the warehouse, for example as shown in Figure 3. The robot navigates based on guidance software stored in memory and executed by a processor. The guidance software relies on data about the environment collected by the laser radar 22, internal tables in memory that identify fiducial identifications ("IDs") of fiducial markers 30 that correspond to locations in the warehouse 10 where a particular item can be found, and cameras 24a and 24b for guidance.
[0028] When the robot 18 reaches the correct location (pose), it stops in front of the shelf 12 where the item is stored, communicates the item information to the yard worker 50, and waits (or remains to place) the item for the yard worker 50 to remove it from the shelf 12 and place it in the tote 44. If the robot 18 has other items to remove, it proceeds to that location. The items removed by the robot 18 are then sent to the processing station 100 of FIG. 1 where they are packaged and shipped. Although the processing station 100 has been described with respect to this figure as being capable of guiding and unloading / packing the robot, the robot may be configured to either guide or unload / pack at the station; that is, the robot may be limited to performing a single function.
[0029] To simplify the description of the invention, a single robot 18 and operator 50 will be described. However, as is evident from Figure 1, a typical fulfillment operation will include many robots and operators working together in a warehouse to fulfill a continuous stream of orders.
[0030] The guidance technique of the present invention, as well as the semantic mapping of the SKU of the item to be retrieved to the reference ID / pose associated with the reference marker in the warehouse where the item is located, are described in detail below with respect to Figures 4-8. It should be noted that this is an example guidance technique described herein, and that any suitable guidance technique may be used in combination with the systems and methods described herein for coordinating the order in which functions are performed on items in an order based on the location of a worker.
[0031] A map of the warehouse 10 must be created and dynamically updated using one or more robots 18 to determine the locations of both static and dynamic objects, as well as the locations of various fiducial markers distributed throughout the warehouse. One or more of the robots 18 navigate the warehouse and build / update the map 10a in FIG. 4 using the robot's laser radar 22 and simultaneous localization and mapping (SLAM), a computational method for building or updating a virtual map of an unknown environment. Common SLAM approximation techniques include particle filters and extended Kalman filters. The SLAM GMapping technique is a preferred technique, but any suitable SLAM technique can be used.
[0032] The robot 18 utilizes the robot's laser radar 22 to move throughout the space and create / update a map 10a of the warehouse 10 based on reflections received as the laser radar scans the environment, identifying open spaces 112, walls 114, objects 116, and other static obstacles within the space, such as shelves 12a.
[0033] While building the map 10a (or thereafter), one or more robots 18 move throughout the warehouse 10 using cameras 24a and 24b to scan the environment and locate fiducial markers (2D bar codes) on shelves that are distributed throughout the warehouse and proximate to bins such as 32 and 34 in FIG. 3 where items are stored. The robot 18 uses a known reference point or origin, such as origin 110, as a reference. Once the robot 18 has located a fiducial marker, such as fiducial marker 30 in FIGS. 3 and 4, using the robot's cameras 24a and 24b, its location in the warehouse relative to origin 110 is determined. The robot 18 can have a relatively wide field of view (e.g., 120 degrees) that extends from both sides of the robot by using two cameras, one on either side of the robot's base, as shown in FIG. 2A. This allows the robot to see the fiducial markers on both sides of the robot, for example, as it moves back and forth down a shelf aisle.
[0034] Using the wheel encoders and the orientation sensor, the vector 120 and the position of the robot within the warehouse 10 can be determined. Using the captured image of the reference marker / 2D barcode and its known size, the robot 18 can determine the orientation and distance of the reference marker / 2D barcode relative to the robot, i.e., vector 130. With the vectors 120 and 130 known, the vector 140 between the origin 110 and the reference marker 30 can be determined. From the vector 140 and the determined orientation of the reference marker / 2D barcode relative to the robot 18, the position (x, y, z coordinates) of the reference marker within the warehouse including the orientation of the reference marker, i.e., the pose including the quaternion (x, y, z, ω) of the reference marker 30 can be determined. Note that the coordinates may only include x and y coordinates, since the reference pose is usually located on the floor, and therefore the z coordinate is zero.
[0035] 5, which illustrates the fiducial marker location process. This is performed when the robot 18 detects a new fiducial marker in the warehouse while performing picking, placing, and / or other tasks in the initial mapping mode. In step 202, the robot 18 using the cameras 24a and 24b captures an image and in step 204 searches for the fiducial marker in the captured image. If the fiducial marker is found in the image (step 204), then in step 206 it is determined whether the fiducial marker is already stored in a fiducial table 300, FIG. 6, which may be in the memory 34 of the robot 18 and / or the warehouse management system 15. If the fiducial information is already stored in memory, the flow chart returns to step 202 to capture another image. If the fiducial information is not in memory, the pose is determined according to the process described above and added to the fiducial-to-pose lookup table 300 in step 208.
[0036] A look-up table 300, which may be stored in each robot's memory and / or in the warehouse management system 15, contains for each fiducial marker a fiducial identification such as 1, 2, 3, etc., and the pose of the fiducial marker / barcode associated with each fiducial identification. The pose consists of the x, y, z coordinates in the warehouse including the orientation, i.e. the quaternion (x, y, z, ω), as shown above.
[0037] Another lookup table 400 in FIG. 7, which may also be stored in each robot's memory and / or in the warehouse management system 15, lists bin locations (e.g., 402a-f) in the warehouse 10 that are associated with a particular reference ID 404, e.g., the number "11". In this example, the bin locations are made up of seven alphanumeric characters. The first six characters (e.g., L01001) relate to a shelf location in the warehouse, and the last characters (e.g., A-F) identify an individual bin at the shelf location. In this example, there are six different bin locations associated with the reference ID "11". There may be one or more bins associated with each reference ID / marker. The charging and processing stations 100 located in the charging area 19 in FIG. 1 may also be stored in the table 400 and associated with a reference ID. The poses of the charging and processing stations can be found in the table 300 in FIG. 6 from the reference ID.
[0038] The location of the alphanumeric bin corresponds to a physical location within the warehouse 10 where the items are stored and is therefore understandable to a human, such as the operator 50 of FIG. 3, but is meaningless to the robot 18. By mapping the location to a reference ID, the robot 18 can use the information in table 300 of FIG. 6 to determine a pose for the reference ID and then navigate to the pose as described herein.
[0039] The order fulfillment process according to the invention is shown in flow diagram 500 of FIG. 8. In step 502, FIG. 1 shows the warehouse management system 15 getting an order, which may consist of one or more items to be picked. In step 504, the SKU numbers of the items are determined by the warehouse management system 15, and in step 506, bin locations are determined from the SKU numbers. The list of bin locations for the order is then sent to the robot 18. In step 508, the robot 18 associates the bin locations with reference IDs, and in step 510, obtains a pose for each reference ID from the reference IDs. In step 512, the robot 18 moves to a pose as shown in FIG. 3, where an operator can pick the item to be picked from the appropriate bin and place it on the robot.
[0040] Item-specific information, such as SKU number and bin location obtained by the warehouse management system 15, may be transmitted to the tablet 48 of the robot 18 so that the operator 50 knows the specific item to be picked when the robot arrives at each reference marker location.
[0041] With the SLAM map and known poses of the fiducial IDs, the robot 18 can easily navigate to any one of the fiducial IDs using a variety of robot navigation techniques. A preferred approach involves setting an initial route to the fiducial marker pose given knowledge of the open space 112 within the warehouse 10, as well as walls 114, shelves (such as shelves 12), and other obstacles 116. As the robot begins to navigate the warehouse using the robot's laser radar 22, it determines whether any fixed or dynamic obstacles, such as other robots 18 and / or operators 50, are in the robot's path and iteratively updates the robot's path to the fiducial marker pose. The robot re-plans its route approximately once every 50 milliseconds, constantly searching for the most efficient and effective path while still avoiding obstacles.
[0042] In general, the robot's localization within the warehouse 10a is achieved by many-to-many multiresolution scan matching (M3RSM) operating on the SLAM virtual map. Compared to brute force methods, M3RSM dramatically reduces the computation time required for the robot to perform SLAM loop closure and scan matching, two key steps in determining the robot's pose and position. The robot's localization is further improved by minimizing the search space of M3RSM by methods disclosed in related U.S. patent application Ser. No. 15 / 712,222, entitled "Multi-Resolution Scan Matching with Exclusion Zones," filed Sep. 22, 2017, which is incorporated herein by reference in its entirety.
[0043] Using product SKU / reference ID to reference pose mapping techniques combined with SLAM guidance techniques, both of which are described herein, the robot 18 can navigate the warehouse space very efficiently and effectively without having to use the more complex guidance techniques typically used that require grid lines and intermediate reference markers to determine location within the warehouse.
[0044] In general, navigation in the presence of other robots and moving obstacles in a warehouse is achieved by collision avoidance methods, including dynamic window approach (DWA) and optimal reciprocal collision avoidance (ORCA). DWA calculates incremental moves among possible robot movement trajectories that avoid collisions with obstacles and prioritize a desired path to a target fiducial marker. ORCA optimally avoids collisions with other moving robots without requiring communication with other robots. Navigation proceeds as a series of incremental moves along the calculated trajectory with update intervals of approximately 50 milliseconds. Collision avoidance can be further improved by techniques described in related U.S. patent application Ser. No. 15 / 712,256, entitled "Dynamic Window Approach Using Optimal Reciprocal Collision Avoidance Cost-Critic," filed Sep. 22, 2017, which is incorporated herein by reference in its entirety.
[0045] Referring to FIG. 9, an image 600 of a typical order fulfillment warehouse shows a plurality of shelves, including shelves 602a-602f, filled with various items that may be included in a customer order, for example. Between the shelf units 602a-602f are aisles 604a-604f, with a first plurality of item locations 606a-606f (i.e., poses) extending along the aisle on each side of the aisle along the face of the shelf units. Opposite the first plurality of item locations is a second plurality of item locations 608a-608f. As explained above, each item location / pose is associated with a fiducial marker having a fiducial identification. The fiducial marker / identification is indicated by numbered dots located adjacent the item location / pose, for example, numbers 2637-2651 adjacent pose 606a in aisle 604a. When an order is placed, the SKU of the ordered items is determined by the warehouse management system 15 of FIG. 1, and from the SKU, the location of the bin is determined. A bin location is a physical space or container where items are stored on a shelf. From there, a bin location is associated with a reference ID, from which a pose or item location for each reference ID is derived. Thus, each SKU corresponding to an item in an order is mapped to an item location / pose, and the robot travels to the item location / pose and arrives near the item.
[0046] A robot will typically have multiple items for each order and may be assigned multiple orders at one time. The robot can then select an optimized order or sequence for picking items (or performing other functions, such as storage or maintenance) based on the pose locations of the various items to increase efficiency. The sequence of items can be selected, for example, to minimize overall travel distance, eliminate backtracking, or follow a specific predefined route through the warehouse. Establishing the initial / optimized order sequence is outside the scope of this invention and will not be described in detail.
[0047] In image 600, item locations or poses of items that are part of one of the orders currently being executed by the robot are identified as so-called "active" item locations or poses. In this example, such active locations are shown as circles with no center color or with a center filled in color, such as black, centered on the pose. This can be represented using other geometric shapes, or by highlighting the active locations with a particular color, or in any other desired manner. Also shown are multiple workers, each represented by a diamond symbol, distributed throughout the warehouse to provide assistance to the robot in picking items from the shelves. In this example, only active locations and workers in a particular portion of aisles 604a-f are shown, since this limited area is the focus of this example. It will be understood that other workers and active locations will be distributed at locations throughout the warehouse.
[0048] When a robot is introduced with one or more orders, an initial picking order for the robot is established based on the location of the items in the warehouse for the items in the orders. Any suitable algorithm for setting the picking order may be used. However, as the robot moves through the warehouse executing the orders according to the initial picking order, there may be situations where there are no workers or only a limited number of workers in the area of the next item location to which the robot is moving. This may cause delays if the robot simply continues to move to the next item location. Situations where there are one or more workers in a given area, but there are many other robots that need help, may also cause delays in assisting the robot. Such delays may be longer than desired, and increasing delays over a longer period across many robots may have an undesirable effect on the efficiency of the entire warehouse. In the present invention, the proximity of workers to item locations of the items in the orders assigned to the robot is evaluated, and this is utilized to redirect the robot to items that are out of the initially assigned order to increase efficiency.
[0049] According to one aspect of the invention, the initial sequence of items in an order can be adjusted to ensure that workers are at the item location. With continued reference to FIG. 9, the warehouse can be divided into multiple regions. The regions can be established in a variety of ways, including within an aisle of the warehouse or across multiple aisles. Within an aisle, one region can be established that extends the length of the aisle, or the aisle can be divided into multiple regions along its length. Depending on the size and configuration of the warehouse, a region can span multiple aisles. As shown in aisle 604a, multiple regions can be established. In this example, aisle 604a is divided into four regions, namely, regions 620, 622, 624, and 626 along the length of the aisle. Of course, this aisle can be divided into more or fewer regions. In contrast, aisle 604e forms a single region. Aisle 604f is much shorter than aisles 604a-604e, but can also be divided into multiple regions. In this example, only region 630 is shown. Area 632 spans the bottom of aisles 604b through 604d. Areas in a given warehouse will typically be divided into uniform sizes, however, in this example, areas of various sizes and types are shown for illustrative purposes.
[0050] Certain areas, such as 620 and 632, include active item locations, but do not include any workers providing assistance to the robot at the item locations. Other areas, such as 622, 624, 626, and 630, include one or more active item locations and one or more workers. To simplify the explanation of one aspect of the invention, no robots are shown in the areas or other parts of the warehouse, and only one robot 640 is shown in the main horizontal aisle 642, where the aisle crosses over the ends of longer vertical aisles, such as 604a-e, and the ends of shorter aisles, such as 604f. Of course, under normal conditions, multiple robots would be working at various locations throughout the warehouse. The active item locations associated with items on the robot's 640 orders are shown as solid circles. Other active item locations are associated with orders for other robots (not shown) in the warehouse, and are shown as uncolored circles in the middle.
[0051] Referring to FIG. 10, flow diagram 700 illustrates the operation of an algorithm according to an aspect of the present invention for selecting a next item location to proceed to based on the location of a worker to fulfill an order. While at its current location in step 702, the robot 640 determines the next active item location to proceed to in step 704 by first identifying an area that includes at least one item location associated with an item of the order the robot 640 is fulfilling. In the example shown in FIG. 9, the areas are 620, 624, 626, 628, and 632, indicated by black circles within the respective areas. In step 706, an area that includes at least one worker of the plurality of workers is determined from the areas that the robot has identified as including at least one item location associated with an item of the received order. In the example, the areas that include workers are areas 624, 626, and 628.
[0052] At step 708, for each item location, criteria for the current location of the robot 640 and the item location are evaluated. The criteria may include, for example, the distance traveled between the current location of the robot 640 and the item locations of the items in the area where the worker is located. Continuing with the example, the distances from the robot 640 to the item locations of areas 624, 626, and 628 (for two items), respectively, may be determined to be D1, D2, D3, D4.
[0053] In step 710, an item location for the ordered item to be moved by the robot from its current location can be selected based on an evaluation of criteria related to the robot's current location and item locations associated with an area where at least one worker is present. For optimal efficiency and to ensure that the robot executes the order in the shortest time possible, the next item location in the area where the workers are present can be selected that is closest to the current location. This should allow the robot to reach the next location in the shortest time possible compared to the other item locations. Thus, distances D1, D2, D3, and D4 are evaluated and it is determined that D1 is the shortest distance. Thus, D1 is selected as the next item location for the robot 640 to move to.
[0054] A certain threshold can be set so that the system will not even consider an item location or region if it is more than a certain distance or travel time away. Note that the closest item location for robot 640 is in aisle 604d in region 632. This item location is closer than the other item locations, but is not considered because there are no workers in region 632. Since there are no workers in this region, it is assumed that the expected wait time for a worker to arrive is longer than the additional time to travel to other, more distant item locations.
[0055] In step 712, the robot moves to the next item location where it waits for a worker at the next item location to fulfill the order, e.g., perform a picking function on the item associated with the item location. This location is then the robot's "current location" in step 702, and the system continues the process until all orders have been fulfilled.
[0056] Other criteria besides distance may be used to evaluate the item locations. Other criteria may include, for example, travel time, number of workers in each area, number of active locations in each area, and number in the original order sequence. In the case of travel time, this may allow a better assessment of how quickly the robot 640 can reach each item location compared to using distance alone. This is because speed limits and / or required stops may be implemented in certain parts of the warehouse, resulting in the robot arriving at item locations that are farther away from other locations, but taking less time to reach them.
[0057] Additionally, if distance or travel time is comparable between multiple item locations, the original item order can be taken into consideration. For example, an item that may be the same distance from the robot as another item, or slightly farther away, may be prioritized over the other item by virtue of being an earlier location in the original item order. For example, item 3 of 7 in the original item order may be prioritized over item 4 of 7 in the original item order if the two items have roughly the same travel distance or travel time from their current location, as there may be an overall advantage to maintaining the original item order as much as possible.
[0058] In alternative embodiments, one region may be prioritized over another in various ways, including selecting one item location over another of comparable distance / travel if the region has more workers or a higher worker-to-robot ratio, or a combination of both. These factors may reduce the time it takes for a robot to perform a function at an item location. With reference to FIG. 9, an active location in region 628 may be prioritized over an active location in region 626 because there are two workers in region 628 compared to one worker in region 626. For example, even if the distance to an active location in region 626 is the same or shorter (by a predetermined amount) than an active location in region 628, the active location in region 628 may be selected as the next location because there are more workers.
[0059] Despite the above-described process of adjusting the robot's picking order toward the area where the workers are, there may be situations where it is undesirable and inefficient to guide the robot to a place that is too crowded. To avoid this, the robot can communicate with a robot monitoring server that tracks the crowding based on the crowding of robots or workers in the guidance space and improves the guidance efficiency. If the crowd is too concentrated, a congested area may be formed, which may cause workers and robots to hinder the passage and movement speed of other workers and robots, causing inefficient delays and increasing the collision risk.
[0060] 9 and 10 direct the robot to an item in an area that is too congested, the robot's route can be further adjusted to avoid such congestion. An example of a congestion management technique is described in commonly owned U.S. patent application Ser. No. 16 / 265,703, entitled "Robot Congestion Management," filed Feb. 1, 2019, and incorporated herein in its entirety.
[0061] Non-limiting examples of computer processing devices The above-described systems and software for the robot and WMS can be implemented in a variety of ways. FIG. 11 is a block diagram of an example computing device 1010 or a portion thereof that can be used in accordance with various embodiments described above with reference to FIGS. 1-10. The computing device 1010 includes one or more non-transitory computer-readable media that store one or more computer-executable instructions or software for performing the example embodiments. The non-transitory computer-readable media can include, but are not limited to, one or more types of hardware memory, non-transitory tangible media (e.g., one or more magnetic storage disks, one or more optical disks, one or more flash drives), and the like. The memory 1016 included in the computing device 1010 can store, for example, computer-readable and computer-executable instructions or software for performing the operations disclosed herein. The memory can store, for example, a software application 1040 that is programmed to perform the various disclosed operations discussed in connection with FIGS. 1-15. The computing device 1010 may also include a configurable and / or programmable processor 1012 and associated cores 1014, and optionally one or more additional configurable and / or programmable processing devices, such as processor 1012' and associated cores 1014' (e.g., in the case of a computing device having multiple processors / cores), to execute computer-readable and computer-executable instructions or software stored in memory 1016 and other programs to control the system hardware. Processor 1012 and processor 1012' may each be a single-core processor or a multi-core (1014 and 1014') processor.
[0062] Virtualization can be used in the computing device 1010 to allow dynamic sharing of infrastructure and resources within the computing device. Virtual machines 1024 can be provided to handle processes running on multiple processors so that the processes appear to be using only one computing resource rather than multiple computing resources. Multiple virtual machines can also be used on a single processor.
[0063] The memory 1016 may include computational device memory or random access memory, such as, but not limited to, DRAM, SRAM, EDO RAM, etc. The memory 1016 may also include other types of memory or combinations thereof.
[0064] A user may interact with the computing device 1010 via a visual display device 1001, 111A-D, such as a computer monitor, capable of displaying one or more user interfaces 1002, which may be implemented according to an exemplary embodiment. The computing device 1010 may include other I / O devices for receiving input from a user, such as a keyboard or any suitable multi-point touch interface 1018, a pointing device 1020 (e.g., a mouse). The keyboard 1018 and the pointing device 1020 may be coupled to the visual display device 1001. The computing device 1010 may include other suitable conventional I / O peripheral devices.
[0065] The computing device 1010 may also include one or more storage devices 1034, such as, but not limited to, a hard drive, CD-ROM, or other computer readable medium for storing data, as well as computer readable instructions and / or software for performing the operations disclosed herein. The exemplary storage device 1034 may also store one or more databases that store any suitable information needed to perform the exemplary embodiments. The databases may be updated manually or automatically at any suitable time to add, delete, and / or update one or more items in the databases.
[0066] The computing device 1010 may include a network interface 1022 configured to interface with one or more networks, such as a local area network (LAN), a wide area network (WAN), or the Internet via various connections, including, but not limited to, standard telephone lines, LAN or WAN links (e.g., 802.11, T1, T3, 56kb, X.25), broadband connections (e.g., ISDN, frame relay, ATM), wireless connections, controller area networks (CAN), or any combination of any or all of the above, via one or more network devices 1032. The network interface 1022 may include an embedded network adapter, a network interface card, a PCMCIA network card, a card bus network adapter, a wireless network adapter, a USB network adapter, a modem, or any other device suitable for interfacing with any type of network with which the computing device 1010 can communicate and perform the operations described herein. Furthermore, the computing device 1010 may be any computing device, such as a workstation, desktop computer, server, laptop, handheld computer, tablet computer, or other form of computing or telecommunications device capable of communications and having sufficient processor power and memory capacity to perform the operations described herein.
[0067] The computing device 1010 may run any operating system 1026, such as any version of the Microsoft® Windows® operating system (Microsoft, Redmond, Wash.), various releases of the Unix and Linux® operating systems, any version of the MAC OS® operating system for Macintosh computers (Apple, Inc., Cupertino, Calif.), any embedded operating system, any real-time operating system, any open source operating system, any proprietary operating system, or any other operating system capable of running on a computing device and performing the operations described herein. In an exemplary embodiment, the operating system 1026 may run in native mode or in emulation mode. In an exemplary embodiment, the operating system 1026 may run on one or more cloud machine instances.
[0068] FIG. 12 is a block diagram of an exemplary computing device of one distributed embodiment. Although FIGS. 1-11 and some of the exemplary discussion above refer to the warehouse management system 15 or the order server 14 each running on a separate or common computing device, it will be appreciated that either the warehouse management system 15 or the order server 14 may instead be distributed across separate server systems 1101a-d and possibly across user systems such as kiosks, desktop computing devices 1102, or handheld computing devices 1103 via a network 1105. For example, the order server 14 and / or the zone server may be distributed among the tablets 48 of the robots 18. In some distributed systems, modules of one or more of the warehouse management system software, the order server software, and the zone engine may be located separately on the server systems 1101a-d and may communicate with each other via the network 1105.
[0069] While the foregoing description of the invention will enable one of ordinary skill in the art to make and use what is presently believed to be the best mode thereof, one of ordinary skill in the art will understand and recognize the existence of variations, combinations, and equivalents of the specific embodiments and examples herein. The embodiments of the invention described above are intended to be illustrative only. Those of ordinary skill in the art may make changes, modifications, and variations to the particular embodiments without departing from the scope of the invention, which is defined solely by the claims appended hereto. Thus, the invention is not limited by the embodiments and examples described above.
[0070] Having described the invention and its preferred embodiments, what is claimed as new and protected by Letters Patent is the following.
Claims
1. 1. A method of fulfilling orders assigned to a plurality of robots operating in a warehouse, the robots interacting with a warehouse management system and fulfilling the orders with the assistance of a plurality of workers, each order including a plurality of items, each item being placed in the warehouse, the method comprising: receiving, by a robot of the plurality of robots, an order for the robot to execute, the order including a plurality of items, each item associated with an item location within the warehouse; The warehouse management system defining a plurality of regions within the warehouse; the robot identifying a region of the plurality of regions that includes at least one item location associated with an item of the order received by the robot; determining an area that includes at least one worker of the plurality of workers from the areas identified by the robot as including at least one item location associated with an item of the order received by the robot; the robot evaluating criteria related to a current location of the robot and the item location relative to the area in which at least one worker is present; selecting an item location for an item of the order to be moved from the current location by the robot, the selecting being based on an evaluation of the criteria relating to the current location of the robot and the item location associated with the area in which at least one worker is present; Including, wherein said step of evaluating a criterion includes evaluating one or both of a travel distance or a travel time between said current location of said robot and each of said item locations associated with said area in which at least one worker is present; The method of claim 1, wherein the step of selecting the item location to which the robot should move is determined based in part on one or both of the areas of the plurality of areas that have more workers or a higher worker to robot ratio.
2. The method of claim 1 , wherein fulfilling an order includes performing one or more of a picking, placing, or maintenance function on the items of the order.
3. 2. The method of claim 1, wherein the robot determines an initial order execution order for the plurality of items in each order, and the step of evaluating a criterion further comprises evaluating one or more positions in the order sequence of each item within an area in which at least one worker is present, or the travel distance or the travel time between the current location of the robot and each of the item locations associated with an area in which at least one worker robot is present.
4. 4. The method of claim 3, wherein the step of selecting the item location to which the robot should move is based on a minimum travel distance or minimum travel time between the current location of the robot and each of the item locations associated with the area in which at least one worker robot is located.
5. 4. The method of claim 3, wherein the evaluating step includes determining which item locations are within a predetermined distance or travel time between the current location and the respective item location, and the selecting the item location to which the robot should move is determined based on which of the item locations within the predetermined distance or travel time is next in the initial order execution sequence.
6. 1. A robot configured to execute orders assigned by a warehouse management system, each order including a plurality of items, each item being placed at an item location in one of a plurality of areas in a warehouse, the robot comprising: A moving base; a communication device enabling communication between the robot and the warehouse management system; A processor and a memory; Equipped with The processor, utilizing the memory, in response to communication with the management system: receiving an order for the robot to execute, the order including a plurality of items, each item associated with an item location within the warehouse; identifying one or more areas of the plurality of areas that includes at least one item location associated with an item of the order received by the robot; determining one or more areas that include at least one worker among a plurality of workers from the one or more areas identified by the robot as including at least one item location associated with an item of the received order; Evaluating criteria related to the item location relative to the current location of the robot and the one or more areas in which at least one worker is present; and the robot selects an item location for an item of the order to be moved from the current location, the selection being based on an evaluation of the criteria with respect to the current location of the robot and the item location associated with the one or more areas in which at least one worker is present. It is configured as follows: the processor and memory are configured to evaluate one or both of a travel distance or a travel time between the current location of the robot and each of the item locations associated with the one or more areas in which at least one worker is present; The robot, wherein the processor and memory are configured to select the item location to which the robot should move based in part on one or both of the areas of the plurality of areas that have more workers or areas with a higher worker-to-robot ratio.
7. The robot of claim 6 , wherein fulfilling an order includes performing one or more of a picking, placing, or maintenance function on the items of the order.
8. 8. The robot of claim 7, wherein the processor and memory are configured to determine an initial order execution order for the plurality of items in each order and evaluate one or more positions in the order sequence for each item within the one or more areas in which at least one worker is present, or the travel distance or the travel time between the current location of the robot and each of the item locations associated with one or more areas in which at least one worker is present.
9. 10. The robot of claim 8, wherein the processor and memory are configured to select the item location to which the robot should move based on a shortest travel distance or shortest travel time between the current location of the robot and each of the item locations associated with the one or more areas in which at least one worker is present.
10. 10. The robot of claim 8, wherein the processor and memory are configured to determine which item locations are within a predetermined distance or travel time between the current location and the respective item location, and select the item location to which the robot should move based on which of the item locations within the predetermined distance or travel time is next in the initial order execution sequence.
Citation Information
Patent Citations
Conveyance system
JP2019218197A
Item picking method and device
JP2020505293A
Multi-resolution scan matching with exclusion zones
US10386851B2
Dynamic window approach using optimal reciprocal collision avoidance cost-critic
US10429847B2
Robot congestion management
US11724395B2
