Navigating and managing robots between zones in an environment

By defining zones, thresholds, and waypoints, the navigation of autonomous robots is optimized, addressing inefficiencies in routing and congestion, thereby enhancing the efficiency of order fulfillment processes in warehouses.

JP7773532B2Active Publication Date: 2025-11-19LOCUS ROBOTICS CORP
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2023516146
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-09-11
Filing Date
2021-09-09
Publication Date
2025-11-19
Estimated Expiration
2041-09-09

AI Technical Summary

Technical Problem

Navigating robots efficiently between distinct zones in environments such as warehouses, which may include temperature-controlled areas, secure areas, and areas at different elevations, is challenging due to inefficiencies in routing and congestion, especially when using existing robotic technologies.

Method used

A method and system for guiding autonomous robots by defining zones, thresholds, and waypoints, allowing passage through physical or virtual barriers, using laser radar, cameras, and queue management to optimize navigation and avoid obstacles.

Benefits of technology

Enhances the efficiency of robot navigation by reducing congestion and optimizing routes between zones, improving the overall efficiency of order fulfillment processes in warehouses.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007773532000001
    Figure 0007773532000001
  • Figure 0007773532000002
    Figure 0007773532000002
  • Figure 0007773532000003
    Figure 0007773532000003
Patent Text Reader

Abstract

A system and method for robot guidance management is provided, comprising a server configured to define a first zone and an adjacent second zone within an environment, a threshold along a boundary between the first and second zones, and a waypoint associated with the threshold. One or more autonomous robots in communication with the server are configured to determine a route from the first zone to the second zone that crosses the threshold, the route including the waypoint, and guide the robot along the route from the first zone to the second zone, including passing through the waypoint in addition to crossing the threshold.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This application claims the benefit of priority to U.S. Patent Application No. 17 / 017,801, filed September 11, 2020, which is incorporated herein by reference.

[0002] This invention relates to the guidance of robots, and more particularly to the management of the guidance of robots within an environment having multiple distinct areas or zones. [Background technology]

[0003] Ordering products over the Internet and having them delivered to your home is a very popular shopping method. Fulfilling such orders in a timely, accurate, and efficient manner is logistically challenging, to say the least. When a customer clicks the "checkout" button on a virtual shopping cart, an "order" is created. The order contains a list of items to be shipped to a specific address. The "fulfillment" process involves physically retrieving, or "picking," these items from large warehouses, packing the items, and shipping them to the specified address. Therefore, a key goal of the order fulfillment process is to ship as many items as possible in the shortest possible time.

[0004] The order fulfillment process typically takes place in large warehouses that house many products, including those listed in the order. Thus, part of the task of order fulfillment is traveling through the warehouse to locate and collect the various items listed in the order. Additionally, the products that will ultimately be shipped must first be received at the warehouse and stored, or "placed," in bins in an organized manner throughout the warehouse so that the products can be easily retrieved for shipping.

[0005] In large warehouses, items being delivered and ordered may be stored far away from one another and dispersed among many other items. An order fulfillment process that relies solely on human workers to locate and pick items can be inefficient and time-consuming, requiring the workers to walk for long periods of time. Because the efficiency of a fulfillment process is a function of the number of items being shipped per unit of time, increasing time reduces efficiency.

[0006] To increase efficiency, robots can be used to perform human functions or to supplement human activities. A robot may, for example, be assigned to "place" multiple items at various locations distributed throughout a warehouse or to "pick" items from various locations for packing and shipping. The picking and placing can be performed by the robot alone or with the assistance of a human worker. For example, in a picking task, a human worker would pick the items from a shelf and place them on the robot, or in a placing task, a human worker would pick the items from the robot and place them on the shelf.

[0007] Some warehouses or other environments are divided into various distinct areas. For example, some products may require temperature control and are therefore placed in temperature-controlled areas such as freezers. Some products may require greater security and are therefore placed in areas separated from other products by barriers. Some environments have areas at various heights, accessible by sloping floors or elevators. Some different areas are separated by physical barriers such as walls, while other different areas may not have physical barriers separating them. Navigating between such areas can result in inefficient routing or congestion between multiple robots or between robots and human workers. [Prior art documents] [Patent documents]

[0008] [Patent Document 1] U.S. Patent Application No. 15 / 807,672 [Patent Document 2] U.S. Patent Application Serial No. 15 / 254,321 [Patent Document 3] U.S. Patent No. 10,386,851 [Patent Document 4] U.S. Patent No. 10,429,847 [Patent Document 5] U.S. Patent No. 10,513,033 [Non-patent literature]

[0009] [Non-Patent Document 1] Sebastian Thrun, "Robotic Mapping: A Survey," Carnegie Mellon University, CMU-CS-02-111, February 2002 Summary of the Invention [Means for solving the problem]

[0010] Provided herein are methods and systems for managing the guidance of a robot in an environment or guidance space having multiple zones.

[0011] In one aspect, a method for guiding an autonomous robot from a first zone in an environment to an adjacent second zone is provided. The method includes, by a server, defining a first zone and a second zone in the environment, a threshold along a boundary between the first zone and the second zone, and a waypoint associated with the threshold; determining a route for the autonomous robot from the first zone to the second zone that crosses the threshold, the route including the waypoint; and guiding the robot along the route from the first zone to the second zone, the route including passing through the waypoint in conjunction with crossing the threshold. In some embodiments, the waypoint is defined by a waypoint pose, and determining the route includes determining a route segment to the waypoint pose. Passing through the waypoint can include passing through the waypoint pose without pausing at the waypoint pose, or pausing at the waypoint pose before crossing the threshold. The waypoint can be located a distance from the threshold or on a boundary along the threshold.

[0012] In some embodiments, the method further includes defining, by the server, a second waypoint associated with the threshold, the waypoint and the second waypoint being located on opposite sides of the threshold. In some embodiments, the boundary between two adjacent zones is a physical barrier, and the threshold is located at an opening in the physical barrier. In some embodiments, the boundary between two adjacent zones is a virtual barrier, and the threshold is a location defined along the virtual barrier. In some embodiments, the method further includes defining, by the server, a second threshold along the boundary between the adjacent zones and a second waypoint associated with the second threshold. In some embodiments, the method further includes defining, by the server, a threshold that allows passage of the robot in a first direction, and defining a second threshold along the boundary between the adjacent zones that allows passage of the robot in a direction opposite to the first direction.

[0013] In some embodiments, the method further includes the robot joining a queue of robots waiting to pass through the threshold. In some embodiments, the method further includes the robot detecting an obstacle at the threshold using a camera, a laser detector, or a radar detector, or a combination thereof. In some embodiments, each of the zones is a secure area, a temperature controlled area, a warehouse area, or an area at a different elevation from adjacent areas, or a combination thereof.

[0014] In a further aspect, a system for guiding an autonomous robot from a first zone in an environment to an adjacent second zone is provided. The system includes a server configured to define a first zone and a second zone in the environment, a threshold along a boundary between the first zone and the second zone, and a waypoint associated with the threshold; the autonomous robot in communication with the server, the robot including a processor and memory, the memory storing instructions that, when executed by the processor, cause the robot to determine a route from the first zone to the second zone that crosses the threshold including the waypoint, and to guide the robot along the route from the first zone to the second zone, including passing through the waypoint in conjunction with crossing the threshold. In some embodiments, the waypoint is defined by a waypoint pose, and the memory further stores instructions that, when executed by the processor, cause the autonomous robot to determine a route segment to the waypoint pose. In some embodiments, the memory further stores instructions that, when executed by the processor, cause the robot to pass through the way point pose without pausing at the way point pose or pause at the way point pose before crossing the threshold. In some embodiments, the way point is located a distance from the threshold or on a boundary along the threshold. In some embodiments, the server is configured to define a second way point associated with the threshold, the way point and the second way point being on opposite sides of the threshold.

[0015] In some embodiments, the boundary between two adjacent zones is a physical barrier, and the threshold is located at an opening in the physical barrier. In some embodiments, the boundary between two adjacent zones is a virtual barrier, and the threshold is a location defined along the virtual barrier. In some embodiments, the server is configured to define a second threshold along the boundary between the adjacent zones and a second waypoint associated with the second threshold. In some embodiments, the robot guidance server is configured to define a threshold that allows passage of the robot in a first direction and also define a second threshold that allows passage of the robot in a direction opposite to the first direction along the boundary between the first zone and the second zone.

[0016] In some embodiments, the memory further stores instructions that, when executed by the processor, cause the autonomous robot to join a queue of robots waiting to pass through the threshold. In some embodiments, the memory further stores instructions that, when executed by the processor, cause the autonomous robot to detect an obstacle at the threshold using a camera, a laser detector, or a radar detector, or a combination thereof.

[0017] In some embodiments, each of the zones is a secure area, a temperature controlled area, a warehouse area, or an area at a different elevation from adjacent areas, or a combination thereof. In some embodiments, the server further comprises one or more of a warehouse management system, an order server, a standalone server, a distributed system comprising memory for at least two of the plurality of robots, or a combination thereof.

[0018] These and other features of the present invention will become apparent from the following detailed description and accompanying drawings. [Brief explanation of the drawings]

[0019] [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. 1. [Figure 3] 2A and 2B equipped with an armature and parked in front of the shelf shown in FIG. 1. FIG. [Figure 4] Figure 1 shows a partial map of the warehouse created using the robot's laser radar. [Figure 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 identification. [Figure 8] 1 is a flow diagram illustrating a process for mapping product SKUs to poses. [Figure 9] FIG. 1 is a block diagram of one embodiment of a robotic system for use in the method and system of the present invention. [Figure 10] FIG. 1 is a diagram of a map of an environment divided into multiple zones. [Figure 11] FIG. 1 is a block diagram of an exemplary computer processing system. [Figure 12] FIG. 1 is a network diagram of an exemplary distributed network. DETAILED DESCRIPTION OF THE INVENTION

[0020] 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, as 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. Therefore, 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.

[0021] The present invention relates to robot-guided management. While not limited to any particular robot application, one preferred application in which the present invention may be used is order fulfillment. The use of robots in this application will be described and a context for robot-guided management will be presented, without being limited to that application.

[0022] Referring to FIG. 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 arrives at order server 14 from warehouse control server 15. Order server 14 may, among other things, prioritize and group the orders for assignment to robots 18 during the induction process. As the robots are guided by operators at processing stations (e.g., station 100), the orders 16 are assigned to robots 18 and wirelessly communicated for execution. Those skilled in the art will appreciate that order server 14 may be a separate server comprising a separate software system configured to interoperate with warehouse management system server 15 and warehouse management software, or the functionality of the order server may be integrated into the warehouse management software and run on warehouse management server 15.

[0023] In a preferred embodiment, the robot 18 shown in FIGS. 2A and 2B includes an autonomous wheeled base 20 equipped with a laser radar 22. The base 20 also features a transceiver (not shown) that enables 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's 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 FIG. 3, there is a memory (not shown) that operates in conjunction 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 ordered items. The navigation techniques of the present invention are described in more detail below in conjunction with FIGS. 4-8. The fiducial marker is also used to identify the charging station in accordance with aspects of the present invention, and navigation to such a charging station's fiducial marker is the same as navigation to the bin / location of the ordered item. Once the robot is at the charging station, a more accurate navigation technique is used to dock the robot at the charging station, as described below.

[0024] Referring again to FIG. 2B , the base 20 includes a top surface 32 on which totes or bins can be stored for carrying items. Also shown is a coupling 34 that engages with any one of a number of interchangeable armatures 40, one of which is shown in FIG. 3 . The particular armature 40 in 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 the stored items. As used herein, the term “tote” includes, but is not limited to, cargo holders, bins, baskets, shelves, poles from which items can be hung, cans, crates, shelves, stands, racks, containers, boxes, canisters, receptacles, and storage.

[0025] While current robotic technology makes the robot 18 good at navigating the warehouse 10, it is not so good at quickly and efficiently picking items from shelves and placing them in totes 44 due to the technical difficulties associated with robots manipulating objects. A more efficient way to pick items is to use a yard operator 50, typically a human, who performs the task of physically removing the ordered items from the shelves 12 and placing them on the robot 18, e.g., in a tote 44. The robot 18 communicates the order to the yard operator 50 via a tablet 48 (or laptop / other user input device) that can be read by the yard operator 50, or by transmitting the order to a handheld device used by the yard operator 50.

[0026] When the robot 18 receives an order 16 from the order server 14, it navigates to a first location in the warehouse, such as that 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 corresponding to locations in the warehouse 10 where a particular item can be found, and cameras 24a and 24b for guidance.

[0027] Upon arriving at the correct location (pose), the robot 18 parks itself in front of the shelf 12 where the item is stored and waits for a yard operator 50 to remove the item from the shelf 12 and place it in a tote 44. If the robot 18 has other items to remove, it proceeds to those locations. The items removed by the robot 18 are then sent to the processing station 100 of FIG. 1 where they are packaged and shipped. While 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 also be configured to either guide or unload / pack at the station; that is, the robot may be limited to performing a single function.

[0028] Those skilled in the art will appreciate that each robot may be fulfilling one or more orders, and each order may consist of one or more items. Typically, some form of route optimization software will be included to increase efficiency, but this is beyond the scope of this invention and therefore will not be described herein.

[0029] To simplify the description of the present invention, a single robot 18 and operator 50 will be described. However, as is evident from Figure 1, a typical fulfillment operation will involve many robots and operators working together in a warehouse to fulfill a continuous stream of orders.

[0030] The basic navigation technique of the present invention as well as the semantic mapping of the SKU of the item to be retrieved to a reference ID / pose associated with a reference marker in the warehouse where the item is located are described in detail below in connection with Figures 4-8.

[0031] A map of the warehouse 10 needs to be created using one or more robots 18, and the locations of various fiducial markers distributed throughout the warehouse need to be determined. To do this, one or more of the robots 18 move through the warehouse and build / update map 10a (FIG. 4) using their laser radar 22 and simultaneous localization and mapping (SLAM), a computational problem of building or updating a map of an unknown environment. Common SLAM approximation methods include particle filters and extended Kalman filters. The SLAM GMapping method is a preferred method, but any suitable SLAM method can be used.

[0032] The robot 18 utilizes the robot's laser radar 22 to move throughout the space and create a map 10a of the warehouse 10, identifying open spaces 112, walls 114, objects 116, and other static obstacles, such as shelves 12 within the space, based on reflections received as the laser radar scans the environment.

[0033] While constructing map 10a (or subsequently updating map 10a), one or more robots 18 move throughout warehouse 10 using cameras 26 to scan the environment and locate fiducial markers (two-dimensional bar codes) distributed throughout the warehouse and on shelves proximate to bins where items are stored, such as 32 and 34 in FIG. 3. Robots 18 use a known starting point or origin, such as origin 110, as a reference. Once robot 18 has located a fiducial marker, such as fiducial marker 30 in FIGS. 3 and 4 using its cameras 26, its location within the warehouse relative to origin 110 is determined.

[0034] Using the wheel encoders and orientation sensors, vector 120 and the robot's position within warehouse 10 can be determined. Using the captured image of the fiducial marker / 2D bar code and its known size, robot 18 can determine the orientation and distance of the fiducial marker / 2D bar code relative to the robot, i.e., vector 130. Knowing vectors 120 and 130, vector 140 between origin 110 and fiducial marker 30 can be determined. From vector 140 and the determined orientation of the fiducial marker / 2D bar code relative to robot 18, the pose (position and orientation) of fiducial marker 30, defined by the quaternion (x, y, z, ω), can be determined.

[0035] Referring now to FIG. 5, a flowchart 200 illustrates the fiducial marker location process. This is performed when the robot 18 encounters a new fiducial marker in the warehouse while performing picking, placing, and / or other tasks in its initial mapping mode. In step 202, the robot 18 captures an image using the camera 26 and searches for the fiducial marker in the captured image in step 204. If the fiducial marker is found in the image (step 204), then in step 206, it determines whether the fiducial marker is already stored in the fiducial table 300 of FIG. 6 in the memory 34 of the robot 18. If the fiducial information is already stored in memory, the flowchart 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 lookup table 300, which may be stored in each robot's memory, contains a fiducial identification 1, 2, 3, etc. for each fiducial marker and the pose of the fiducial marker / barcode associated with each fiducial identification. The pose consists of x, y, z coordinates in the warehouse, including orientation, or a quaternion (x, y, z, ω).

[0037] Another lookup table 400 in FIG. 7, which may also be stored in each robot's memory, lists bin locations (e.g., 402a-f) within the warehouse 10, each associated with a particular reference ID 404, such as the number "11." In this example, the bin location is made up of seven alphanumeric characters. The first six characters (e.g., L01001) relate to a shelf location within the warehouse, and the last character (e.g., A-F) identifies an individual bin at that shelf location. In this example, there are six different bin locations associated with reference ID "11." There may be one or more bins associated with each reference ID / marker.

[0038] The alphanumeric bin locations correspond to physical locations within warehouse 10 where items are stored and are therefore understandable to a human, such as operator 50 in FIG. 3, but are meaningless to robot 18. By mapping locations to reference IDs, robot 18 can use the information in table 300 in FIG. 6 to determine the pose for the reference ID and then navigate to the pose as described herein.

[0039] An order fulfillment process according to the present invention is shown in flowchart 500 in FIG. 8. In step 502, the order server 14 retrieves an order from the warehouse management system 15, which may consist of one or more items to be retrieved. It should be noted that the order allocation process is quite complex and beyond the scope of this disclosure. One such order allocation process is described in commonly owned U.S. patent application Ser. No. 15 / 807,672, filed September 1, 2016, entitled "Order Grouping in Warehouse Order Fulfillment Operations," which is incorporated herein by reference in its entirety. It should also be noted that a robot may have tote arrays, one per bin or compartment, to enable a single robot to fulfill multiple orders. An example of such a tote array is described in U.S. patent application Ser. No. 15 / 254,321, filed September 1, 2016, entitled "Item Storage Array for Mobile Base in Robot Assisted Order-Fulfillment Operations," which is incorporated herein by reference in its entirety.

[0040] 8, in step 504, the SKU numbers of the items are determined by the warehouse management system 15, and in step 506, the 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 obtains a pose for each reference ID from the reference IDs in step 510. In step 512, the robot 18 moves to a pose such as that shown in FIG. 3, where an operator can pick the item to be removed from the appropriate bin and place it on the robot.

[0041] Item-specific information, such as SKU number and bin location obtained by the warehouse management system 15 / order server 14, may be sent 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.

[0042] Using the SLAM map and known poses of the fiducials, the robot 18 can easily navigate to any one of the fiducials using a variety of robotic navigation techniques. A preferred approach involves setting an initial route to the fiducial marker poses 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, it uses its laser radar 26 to determine whether any fixed or dynamic obstacles, such as other robots 18 and / or operators 50, are in the robot's path and repeatedly updates the robot's path to the fiducial marker poses. The robot re-plans its route approximately once every 50 milliseconds, constantly searching for the most efficient and effective path while avoiding obstacles.

[0043] Using the product SKU / reference ID to reference pose mapping techniques combined with the 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] Using the SLAM map and known fiducial ID poses, the robot 18 can easily navigate to any one of the fiducials using various 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, it uses its laser radar 22 to determine whether any fixed or dynamic obstacles, such as other robots 18 and / or workers 50, are in its path and repeatedly updates the robot's path to the fiducial marker pose. The robot re-plans its route approximately every 50 milliseconds, constantly searching for the most efficient and effective path while avoiding obstacles. The robot's self-localization within the warehouse can be achieved, for example, by many-to-many multiresolution scan matching (M3RSM) operating on the SLAM map. The M3RSM is described in U.S. Patent No. 10,386,851, issued August 20, 2019, entitled "MULTI-RESOLUTION SCAN MATCHING WITH EXCLUSION ZONES," the disclosure of which is incorporated herein by reference. Similarly, the description in U.S. Patent No. 10,429,847, issued October 1, 2019, entitled "DYNAMIC WINDOW APPROACH USING OPTIMAL RECIPROCAL COLLISON AVOIDANCE COST-CRITIC" may be used.

[0045] 9 shows a system diagram of one embodiment of a robot 18 for use in the robotic guidance system described herein. The robotic system 600 includes a data processor 620, a data storage unit 630, a processing module 640, and a sensor auxiliary module 660. The processing module 640 may include a path planning module 642, a drive control module 644, a map processing module 646, a localization module 648, and a state estimation module 650. The sensor auxiliary module 660 may include a ranging sensor module 662, a drivetrain / wheel encoder module 664, and an inertial sensor module 668.

[0046] The data processor 620, processing module 640, and sensor auxiliary module 660 may communicate with any of the components, devices, or modules shown or described herein for the robotic system 600. A transceiver module 670 may be provided for transmitting and receiving data. The transceiver module 670 may transmit and receive data and information to and from a monitoring system or to and from one or more other robots. The transmitted and received data may include map data, path data, search data, sensor data, location and orientation data, speed data, processing module instructions or code, robot parameters and configurations, and other data required for the operation of the robotic system 600.

[0047] In some embodiments, the ranging sensor module 662 can include one or more of a scanning laser, radar, laser range finder, rangefinder, ultrasonic obstacle detector, stereo vision system, monocular vision system, camera, and imaging unit. The ranging sensor module 662 can scan the environment around the robot to determine the location of one or more obstacles relative to the robot. In some embodiments, the drive train / wheel encoder 664 includes one or more sensors that encode wheel position and actuators that control the position of one or more wheels (e.g., ground-engaging wheels). The robotic system 600 can also include a ground speed sensor, including a speedometer, a radar-based sensor, or a rotational rate sensor. The rotational rate sensor can include an accelerometer and integrator combination. The rotational rate sensor can provide the observed rotational rate to the data processor 620 or any module thereof.

[0048] In some embodiments, the sensor auxiliary module 660 can provide translational, positional, rotational, elevation, inertial, and orientation data, including historical data over time of instantaneous measurements of velocity, translation, position, rotational, elevation, orientation, and inertial data. The translational or rotational velocity can be detected with reference to one or more fixed reference points or static objects in the robot's environment. The translational velocity can be expressed as an absolute velocity in a direction or as the first derivative of the robot's position versus time. The rotational velocity can be expressed as a velocity in degrees or as the first derivative or angular position versus time. The translational and rotational velocities can be expressed relative to the origin 0,0 ( FIG. 4 ) and a 0-degree direction corresponding to an absolute or relative coordinate system. The processing module 640 can use the observed translational velocity (or position versus time measurements) in combination with the detected rotational velocity to estimate the robot's observed rotational velocity.

[0049] In some embodiments, navigation by an autonomous or semi-autonomous robot requires some form of spatial model of the robot's environment. Spatial models are further described in U.S. Pat. No. 10,386,851. Spatial models can be represented by bitmaps, object maps, landmark maps, and other forms of two-dimensional and three-dimensional digital images. A spatial model of a warehouse facility can represent the warehouse and its interior obstacles, such as walls, ceilings, roof supports, windows and doors, shelves, and storage bins. The obstacles can be stationary, mobile, such as other robots or machines operating within the warehouse, or relatively fixed, such as temporary cubicles, pallets, shelves, and bins, but changing as warehouse items are stored, picked, and replenished. A spatial model can also represent target locations, such as shelves or bins, marked with fiducials to which the robot can be oriented to perform a task, or to the location of a temporary holding area or charging station. A spatial model can also include virtual obstacles and objects, such as barriers, crossing thresholds, and RFID tunnels.

[0050] In some embodiments, a robot can use a map to determine its pose in an environment and to plan and control its movement along a path while avoiding obstacles. Such a map can be a "local map" that describes the spatial features in the immediate vicinity of the robot or a goal location, or a "global map" that describes the features of an area or facility that encompasses the operating range of one or more robots. The map can be provided to the robot from an external monitoring system, or the robot can construct the map using its built-in ranging and localization sensors. One or more robots can collaboratively map a shared environment, and the resulting map is further refined as the robots move, gather, and share information about the environment.

[0051] In some embodiments, without loss of generality of application of the methods and systems described herein, a monitoring system may comprise a central server that performs monitoring of multiple robots in a manufacturing warehouse or other facility, or the monitoring system may comprise a distributed monitoring system made up of one or more servers operating fully or partially remotely, either on-site or off-site. The monitoring system may comprise one or more servers having at least a computer processor and memory for executing the monitoring system, and may further comprise one or more transceivers for communicating information with one or more robots operating in the warehouse or other facility. The monitoring system may be hosted on a computer server or may be cloud-hosted and communicates with local robots via local transceivers configured to send and receive messages between the robots and the monitoring system over wired and / or wireless communication media, including the Internet.

[0052] Those skilled in the art will recognize that mapping of a robot for purposes of the present invention can be performed using methods known in the art without loss of generality. Further discussion of robot mapping methods can be found in Sebastian Thrun, "Robotic Mapping: A Survey," Carnegie-Mellon University, CMU-CS-02-111, February 2002, which is incorporated herein by reference.

[0053] Robot Guidance Management Some induction spaces or environments, such as a warehouse, can be divided into two or more zones. Such zones may include, for example, but are not limited to, a secure area for products requiring higher security, a temperature-controlled area such as a freezer, an area for a particular type of merchandise, or an area at a different elevation than adjacent areas. A zone may, for example, include shelves 12 filled with items to be included in an order, as described above. A zone may, for example, be free of shelves or other obstructions to accommodate rapid movement of a robot through the environment.

[0054] Zones can be separated by physical barriers, such as fixed walls or movable partitions. Zones can be separated by virtual barriers, where no physical barriers exist. Physical barriers can have doors or other movable partitions therein. Adjacent zones at different heights can be accessible using sloping floors or elevators.

[0055] Described herein are robot guidance management systems and methods for enabling a robot 18 to navigate an environment divided into two or more zones. FIG. 10 is a map illustrating a guidance space or environment 900 divided into five zones 901, 902, 903, 904, and 905. It will be understood that an environment can be divided into any desired number and types of zones. Boundaries between adjacent zones can be defined by physical barriers, virtual barriers, or a combination thereof. As shown in FIG. 10, a first zone 901 is separated from a second zone 902 and a third zone 903 by physical barriers, such as the walls indicated by solid lines 912 and 914 in FIG. 9. A door 932 is provided in the wall 914 and can be opened to allow passage of a robot or a human, or closed to prevent passage of a robot or a human. The boundary between the second zone 902 and the third zone 903 is defined in part by a physical wall 918, shown in solid lines, and in part by a virtual barrier 918, shown in dashed lines. The boundary between the third zone 903 and the fourth and fifth zones 904, 905 is defined by a virtual barrier 922, shown in dashed lines. Similarly, the boundary between the fourth zone 904 and the fifth zone 905 is defined by a virtual barrier 924, shown in dashed lines.

[0056] The map also shows passages or thresholds through the boundaries by which a robot 18 or human 50 can travel from one zone to an adjacent zone. In the example shown in FIG. 10 , a door 932 in the wall 914 between the first zone 901 and the third zone 903 is located at a threshold 942 along the boundary. A virtual threshold 944 is located at the virtual barrier 918 that forms the boundary between the second zone 902 and the third zone 903, and at the virtual barrier that forms the boundary between the third zone 903 and the fourth zone 904. Two virtual thresholds 946, 948 are located at the virtual barrier 922 that forms the boundary between the third zone 903 and the fifth zone 905. A threshold 952, which may be an RFID tunnel to enable tracking of the robot as it crosses the threshold, is located between the third zone 903 and the fifth zone 905. No thresholds are placed on the physical barrier between the first zone 901 and the second zone 902, or the virtual barrier between the fourth zone 904 and the fifth zone 905. By providing virtual barriers, the warehouse can be divided without having to erect physical walls. The divisions can be changed as needed by modifying the virtual barriers. Furthermore, as shown, for example in the case of zone 905, it is possible to track the entry of a robot into zone 905 through an RFID tunnel shown at the entrance of zone 905.

[0057] The thresholds can be defined to allow robot passage in both directions or only one direction. For example, thresholds 932 and 946 are defined to allow passage in both directions, as indicated by the double-headed arrows. Threshold 952 is defined to allow passage in one direction, from zone 903 to zone 905, and threshold 948 is defined to allow passage in the reverse direction, from zone 905 to zone 903.

[0058] At least one waypoint is associated with each threshold. In some embodiments, two waypoints are associated with each threshold. In some embodiments, a waypoint may be defined at a distance from the boundary. In some embodiments, a waypoint may be defined on the boundary along the threshold. In some embodiments, two waypoints may be defined associated with the threshold, spaced apart at locations on either side of the boundary along the threshold. In some embodiments, for example, the two waypoints may define the beginning and end of a passageway across the threshold to enable efficient unidirectional travel along the passageway.

[0059] Waypoints can be defined relative to the origin 110, as described above with respect to FIG. 4. Thus, each waypoint can be defined by at least x and y coordinates, or x, y, and z coordinates. Each robot 18 includes a lookup table stored in memory that indicates the coordinates of each waypoint, thereby enabling navigation of the robot to each waypoint. The lookup table can also include a pose associated with each waypoint. The lookup table can therefore include an orientation or quaternion (x, y, z, ω), as described above. In some embodiments, a fiducial marker can be associated with one or more waypoints, although a fiducial marker associated with a waypoint is not required for robot navigation as described herein. As described above with respect to FIG. 4, a robot equipped with the waypoint coordinates can navigate to that waypoint using, for example, wheel encoders and orientation sensors. Upon reaching a desired waypoint, the robot can orient itself to the location of the desired pose associated with that waypoint.

[0060] To manage such guidance, the warehouse management system server or order server may include a map 900, as shown in FIG. 10 . Each robot 18 that intends to move through the environment communicates with the server. Generally, as long as each robot 18 operates within the guidance space, the robot may operate to perform one or more tasks of an ordered task list, as described above. Based on the predetermined task list, each robot may determine an optimized route, as described above, which may require the robot to cross thresholds. The robot may utilize, for example, the path planning module 642 and pathfinder algorithm described above.

[0061] In some embodiments, the robot may be configured to pass through the waypoint and cross the threshold without stopping. In some embodiments, the robot may be configured to pause upon arriving at the waypoint before crossing the threshold. In some embodiments, after pausing at the waypoint, the robot may determine whether the threshold is clear before crossing the threshold, using, for example, a camera, laser detector, or radar detector, or a combination thereof, as described above. In some embodiments, upon arriving at the waypoint, the robot may receive further instructions or commands from a robot monitoring server regarding whether to cross the threshold. Such instructions or commands may be pushed automatically from the server or upon request from the robot. Requiring the robot to pass through or pause the waypoint controls the guidance of the robot across the threshold, directing the robot to pass across a zone boundary (physical or virtual).

[0062] In some embodiments, a robot may be configured to join a queue of robots waiting to cross a threshold. For example, another robot may already be paused at a pose that defines a waypoint. One or more other robots may also be waiting at a queue location to cross the threshold at the appropriate time. A newly arriving robot may join a queue slot or location that is offset from the waypoint pose location and / or offset from the pose locations of other robots waiting in the queue to cross the threshold. The robot's queuing may be controlled, for example, by the guidance server or warehouse management server 15.

[0063] For example, when one or more robots attempt to move into a space occupied by another robot, an alternate destination for the robot is generated and the robot is queued to avoid a "race condition." When another robot attempts to move into an occupied space, the robot is redirected to a temporary holding location or queue slot that is offset from the occupied pose. The location of the queue slot may be non-uniform and variable, given the dynamic environment of the warehouse. The queue slot can be shifted according to a queuing algorithm that observes existing obstacles and constraints in the underlying global map as well as the local map. The queuing algorithm can also consider practical queuing limitations in the space proximate to the target location / pose to avoid blocking traffic, obstructing other locations, and creating new obstacles.

[0064] Additionally, the robots can be managed to enter queue slots appropriately, such that a robot with a first priority for occupying a pose can enter the first queue slot, while other robots enter other queue slots based on their respective priorities. Priority can be determined by the order in which robots enter zones proximate to a pose. When a robot moves from a pose (target location), the next robot moves from the queue slot to the pose, and any other robots can proceed to their respective queue slot positions. Thus, guiding a robot to a queue slot, and ultimately to a target location, is achieved by temporarily reorienting the robot from the pose at the target location to the pose at the queue slot. In other words, when it is determined that a robot needs to be placed in a queue slot, the target pose of the robot is temporarily adjusted to a pose corresponding to the queue slot location to which the robot is assigned. As the robot advances in position within the queue, its pose is temporarily adjusted again to the pose of the next highest priority queue slot until the robot reaches its original target location, at which time it is reset to its original target pose. Queuing robots is further described in U.S. Patent No. 10,513,033, issued December 24, 2019, entitled "ROBOT QUEUING IN ORDER FULFILLMENT OPERATIONS," the disclosure of which is incorporated herein by reference.

[0065] In some embodiments, a route may require the robot to travel to a zone at a different elevation than the elevation of adjacent zones. In some embodiments, a threshold may cross a ramp or incline between zones. In some embodiments, depending on the degree of slope, two way points may define the beginning and end of a path along the slope across the threshold. In some embodiments, an elevator may be provided to transport the robot from one zone to another. The elevator doors may define a threshold such that the robot can arrive at a way point associated with the elevator and can call the elevator and issue a request and / or command to open the elevator doors, allowing the robot to enter the elevator and direct the elevator to the next zone.

[0066] By way of further illustration, if a virtual barrier does not have a defined threshold, the robot may determine that a route that passes near the edge of the physical barrier is the shortest route to its destination. For example, robot 18', shown in dashed lines in FIG. 9, is shown passing near the wall edge, taking a shorter, more efficient route. However, a shorter route may result in increased congestion or otherwise undesirable conditions. Therefore, in this case, by defining a threshold and associated waypoint at a predetermined location further along the boundary from the wall edge, robot 18' is forced to take a route that passes through or pauses at the threshold waypoint. Thus, the less desirable, but perhaps more likely, route that the robot would normally take is avoided.

[0067] The server can track the activities of the robots and / or human workers in the warehouse and can be any server or computing device including, for example, the warehouse management system 15, the order server 14, a standalone server, a network of servers, the cloud, a processor and memory of the robot's tablet 48, a processor and memory of the robot's base 20, or a distributed system comprising memory and processors of at least two of the robot's tablet 48 and / or base 20. In some embodiments, the waypoint information can be automatically pushed from the robot monitoring server 902 to the robot 18. In other embodiments, the waypoint information can be sent in response to a request from the robot 18.

[0068] Thus, the guidance management system and method can advantageously guide a robot through a guidance space that is divided into zones more efficiently and with a lower risk of collision, preventing inefficient delays in the robot's task completion.

[0069] Non-Limiting Exemplary Computer Processing Devices FIG. 10 is a block diagram of an example computing device 1210, or a portion of a computing device, that may be used in accordance with various embodiments described above with reference to FIGS. 1-9. The computing device 1210 includes one or more non-transitory computer-readable media that store one or more computer-executable instructions or software for implementing the example embodiments. The non-transitory computer-readable media may 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), etc. The memory 1216 included in the computing device 1210 may store, for example, computer-readable and computer-executable instructions or software for performing the operations disclosed herein. The memory may store, for example, a software application 1240 that is programmed to perform the various disclosed operations discussed in connection with FIGS. 1-9. Computing device 1210 may also include a configurable and / or programmable processor 1212 and associated cores 1214, and optionally one or more additional configurable and / or programmable processing devices, such as processor 1212′ and associated cores 1214′ (e.g., in the case of a computing device with multiple processors / cores), to execute computer-readable and computer-executable instructions or software stored in memory 1216 and other programs that control the system hardware. Processor 1212 and processor 1212′ may each be a single-core processor or a multi-core (1214 and 1214′) processor.

[0070] Virtualization can be used in computing device 1210 to allow dynamic sharing of infrastructure and resources within the computing device. Virtual machines 1224 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.

[0071] The memory 1216 may include computational device memory or random access memory, such as, but not limited to, DRAM, SRAM, EDO RAM, etc. The memory 1216 may also include other types of memory or combinations thereof.

[0072] A user can interact with a computing device 1210 via a visual display device 1201, 111A-D, such as a computer monitor, capable of displaying one or more user interfaces 1202, which may be implemented according to an exemplary embodiment. The computing device 1210 may include other I / O devices for receiving input from a user, such as a keyboard or any suitable multi-point touch interface 1218, and a pointing device 1220 (e.g., a mouse). The keyboard 1218 and pointing device 1220 may be coupled to the visual display device 1201. The computing device 1210 may include other suitable conventional I / O peripheral devices.

[0073] The computing device 1210 may also include one or more storage devices 1234, such as, but not limited to, a hard drive, CD-ROM, or other computer-readable medium for storing data and computer-readable instructions and / or software for performing the operations disclosed herein. The exemplary storage device 1234 may also store one or more databases that store any suitable information needed to implement 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.

[0074] Computing device 1210 may include a network interface 1222 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 1232. Network interface 1222 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 computing device 1210 can communicate and perform the operations described herein. Furthermore, the computing device 1210 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.

[0075] Computing device 1210 may run any operating system 1226, such as any version of the Microsoft® Windows® operating system (Microsoft, Redmond, Washington), various releases of Unix and Linux® operating systems, any version of the MAC OS® operating system for Macintosh computers (Apple, Inc., Cupertino, California), 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, operating system 1226 may run in native mode or in emulation mode. In an exemplary embodiment, operating system 1226 may run on one or more cloud machine instances.

[0076] FIG. 11 is a block diagram of an exemplary computing device in one distributed embodiment. While FIGS. 1-9 and portions of the exemplary discussion above refer to the warehouse management system 15, the order server 14, or the robot tracking server 902 each running on separate or common computing devices, it will be recognized that any of the warehouse management system 15, the order server 14, or the robot guidance server may instead be distributed across separate server systems 1301a-d and possibly across user systems such as kiosks, desktop computing devices 1302, or handheld computing devices 1303 via a network 1305. For example, the order server 14 may be distributed among the tablets 48 of the robots 18. In some distributed systems, modules of either or both the warehouse management system software and / or the order server software may be located separately on server systems 1301a-d and may communicate with each other via a network 1305.

[0077] 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, those skilled in the art will understand and recognize that there exist 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 skilled 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. Accordingly, the present invention is not limited by the embodiments and examples described above.

[0078] 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 guiding a first autonomous robot in a first direction from a first zone to an adjacent second zone in an environment, and guiding a second autonomous robot in a second direction opposite the first direction from the second zone to the first zone, comprising: defining, by a server, the first zone and the second zone within the environment, a first threshold along a boundary between the first zone and the second zone, and a first waypoint associated with the first threshold such that the first waypoint is located proximate to the first threshold; defining, by a server, a second threshold along the boundary between the first zone and the second zone and a second waypoint associated with the second threshold such that the second waypoint is located proximate to the second threshold; determining a first route for the first autonomous robot from the first zone to the second zone across the first threshold, the first route including the first waypoint; determining a second route for the second autonomous robot from the second zone to the first zone across the second threshold, the second route including the second waypoint; guiding the first autonomous robot along the first route from the first zone to the second zone, the route including passing through the first waypoint in conjunction with crossing the first threshold; and Guiding the second autonomous robot along the second route from the second zone to the first zone, the second route including passing through the second waypoint in conjunction with crossing the second threshold. Including, the first waypoint is defined by the server by a first waypoint pose, and determining the first route includes determining a first route segment to the first waypoint pose, the first waypoint pose being defined by a first set of coordinates x, y, z, and ω; the second waypoint is defined by the server by a second waypoint pose, and determining the second route includes determining a second route segment to the second waypoint pose, the second waypoint pose being defined by a second set of coordinates, x, y, z, and ω.

2. the step of passing through the first waypoint includes passing through a pause at the first waypoint without pausing at the pause at the first waypoint before crossing the first threshold; and 2. The method of claim 1, wherein the step of passing through the second waypoint includes the step of passing through a pose of the second waypoint without pausing at the pose of the second waypoint before the step of crossing the second threshold, to pause at the pose of the first waypoint before the step of crossing the first threshold.

3. 2. The method of claim 1, wherein the first waypoint is located a distance from the first threshold or on the boundary along the first threshold, and the second waypoint is located a distance from the second threshold or on the boundary along the second threshold.

4. The method of claim 1 , wherein the boundary between the first zone and the second zone is a physical barrier, and the first threshold is located at an opening in the physical barrier.

5. The method of claim 1 , wherein the boundary between the first zone and the second zone is a virtual barrier and the first threshold is a location defined along the virtual barrier.

6. The method of claim 1 , further comprising the step of the first robot joining a queue of robots waiting to pass through the first threshold.

7. The method of claim 1 , further comprising the step of the first robot detecting an obstacle at the first threshold using a camera, a laser detector, or a radar detector, or a combination thereof.

8. The method of claim 1 , wherein each of the zones is a secure area, a temperature-controlled area, a warehouse area, or an area at a different elevation from adjacent areas, or a combination thereof.

9. 1. A system for guiding a first autonomous robot in a first direction from a first zone to an adjacent second zone in an environment, and guiding a second autonomous robot in a second direction opposite the first direction from the second zone to the first zone, the system comprising: a server configured to define the first zone and the second zone within the environment, a first threshold along a boundary between the first zone and the second zone, and a first waypoint associated with the first threshold such that the first waypoint is located proximate to the first threshold; and to define a second threshold along the boundary between the first zone and the second zone, and a second waypoint associated with the second threshold such that the second waypoint is located proximate to the second threshold. Equipped with The first autonomous robot in communication with the server includes a first processor and a first memory, and the first memory, when executed by the first processor, causes the first autonomous robot to: determining a first route from the first zone to the second zone that crosses the first threshold, the first route including the first waypoint; and Guiding the first autonomous robot along the first route from the first zone to the second zone, including passing through the first waypoint in conjunction with crossing the first threshold. Memorize the command, The second autonomous robot in communication with the server includes a second processor and a second memory, and the second memory, when executed by the second processor, causes the second autonomous robot to: determining a second route from the second zone to the first zone that crosses the second threshold and includes the second waypoint; and Guiding the second autonomous robot along the second route from the second zone to the first zone, including passing through the second waypoint in conjunction with crossing the second threshold. Memorize the command, the first waypoint is defined by the server by a first waypoint pose, and the first memory further stores instructions that, when executed by the first processor, cause the first autonomous robot to determine a first route segment to the first waypoint pose, the first waypoint pose being defined by a first set of coordinates of x, y, z, and ω; the second waypoint is defined by the server by a second waypoint pose, and the second memory further stores instructions that, when executed by the second processor, cause the second autonomous robot to determine a second route segment to the second waypoint pose, the second waypoint pose being defined by a second set of coordinates: x, y, z, ω.

10. 10. The system of claim 9, wherein the first memory further stores instructions that, when executed by the first processor, cause the first autonomous robot to pass through the first waypoint pose without pausing at the first waypoint pose or pause at the first waypoint pose before crossing the first threshold.

11. 10. The system of claim 9, wherein the first waypoint is located a distance from the first threshold or on the boundary along the first threshold, and the second waypoint is located a distance from the second threshold or on the boundary along the second threshold.

12. 10. The system of claim 9, wherein the boundary between the first zone and the second zone is a physical barrier, and the first threshold is located at an opening in the physical barrier.

13. 10. The system of claim 9, wherein the boundary between the first zone and the second zone is a virtual barrier, and the first threshold and the second threshold are locations defined along the virtual barrier.

14. 10. The system of claim 9, wherein the first memory further stores instructions that, when executed by the first processor, cause the first autonomous robot to join a queue of robots waiting to pass through the first threshold.

15. 10. The system of claim 9, wherein the first memory further stores instructions that, when executed by the first processor, cause the first autonomous robot to detect obstacles at the first threshold using a camera, a laser detector, or a radar detector, or a combination thereof.

16. 10. The system of claim 9, wherein each of the zones is a secure area, a temperature-controlled area, a warehouse area, or an area at a different elevation from adjacent areas, or a combination thereof.

17. 10. The system of claim 9, wherein the server further comprises one or more of a warehouse management system, an order server, a standalone server, a distributed system comprising the memory of at least two of the plurality of autonomous robots, or combinations thereof.

Citation Information

Patent Citations

  • US10,386,851

  • US10,429,847

  • US10,513,033

  • Item storage array for mobile base in robot assisted order-fulfillment operations

    US10001768B2

  • Order grouping in warehouse order fulfillment operations

    US20190138978A1