In large retail settings, the unloading and placement of items (products) can be a significant aspect of operational efficiency. When inventory placement on a retail floor space varies, for example due to featured products, unloading and placement is affected. However, the loading on transport assets (e.g., trailers delivering the items) is often not coordinated with the product feature plans of the retail facility. Therefore, the affected items may be dispersed within the transport asset. This leads to potential errors and time wasted searching for misplaced items, thereby reducing operational efficiency.
A disclosed system for transporting items to destination locations, for example automatically placing stacked products at selected locations within a large retail facility, includes a conveyor assembly, an item identifier, a robotic arm with a plurality of end effectors, and a sorter component operable to select one of the plurality of end effectors and remove items selected for diversion from the conveyor assembly with the robotic arm. The sorter component stacks the removed items, and the stacked items are transported to a selected location within the retail facility, for example using an autonomous ground vehicle (AGV).
The disclosed examples are described in detail below with reference to the accompanying drawing figures listed below:
Corresponding reference characters indicate corresponding parts throughout the drawings. Elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions and/or relative positioning of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding. Also, common but well-understood elements that are useful or necessary in a commercially feasible embodiment may not be depicted, in order to facilitate a less obstructed view.
A more detailed understanding may be obtained from the following description, presented by way of example, in conjunction with the accompanying drawings. The entities, connections, arrangements, and the like that are depicted in, and in connection with the various figures, are presented by way of example and not by way of limitation. As such, any and all statements or other indications as to what a particular figure depicts, what a particular element or entity in a particular figure is or has, and any and all similar statements, that may in isolation and out of context be read as absolute and therefore limiting, may only properly be read as being constructively preceded by a clause such as “In at least some embodiments, . . . ” For brevity and clarity of presentation, this implied leading clause is not repeated ad nauseum.
In large retail settings, the unloading and placement of items (products) can be a significant aspect of operational efficiency. When inventory placement on a retail floor space varies, for example due to featured products, unloading and placement is affected. However, the loading on transport assets (e.g., trailers delivering the items) is often not coordinated with the product feature plans of the retail facility. Therefore, the affected items may be dispersed within the transport asset. This leads to potential errors and time wasted searching for misplaced items, thereby reducing operational efficiency.
Therefore, a disclosed system for transporting items to destination locations, for example automatically placing stacked products at selected locations within a large retail facility, includes a conveyor assembly, an item identifier, a robotic arm with a plurality of end effectors, and a sorter component operable to select one of the plurality of end effectors and remove items selected for diversion from the conveyor assembly with the robotic arm. The sorter component stacks the removed items, and the stacked items are transported to a selected location within the retail facility, for example using an autonomous ground vehicle (AGV).
The robotic arm picks up and places (stacks) products (individually, or in cases or cartons) on a pallet or some other surface. Some examples of the robotic arm include multiple effectors such as a spatula and a pusher, a suction-cup array, a side-to-side gripper, and/or other tools. In some examples, a camera based computer vision (CV) component selects an appropriate effector based on item properties. In some examples, stored item descriptions are consulted to select the effector. A CV component or LIDAR sensor assists with stacking the products. Stacking options and configurations can vary due to an item's weight, size (dimensions), rigidity fragility, geometry, and other physical parameters. Other resources can be leveraged, for example, an inventory manager, a feature service, a store planner, a flexible automated sorting and transport arrangement (FAST) component that assists with managing unloading operations, a cargo manifest, and others. An exception handling component detects blockage, damage to the products, and stacking problems. An alert generated when the pallet is filled and a transport (e.g., an AGV) is needed to replace the filled pallet. This automated solution reduces errors and time wasted searching for misplaced items, thereby improving operational efficiency.
In unloading bay 108, a conveyor assembly 130 has multiple destination locations 132, 133, 134, and 135 where AGVs (e.g., AGV 116) collect items for normal inventory restocking processes. An item identifier 138 is operable to read identification data of items on conveyor assembly 130. A FAST node 144 manages and tracks progress for unloading operations. FAST node 144 has FAST data and logic 146 to support both normal inventory restocking processes and also transporting items to destination locations, as described herein. For example, FAST data and logic 146 includes a cargo manifest for transport asset 140, item descriptions, information on item size (dimensions) and weight, and also information related to stacking items (e.g., rigidity). FAST node 144 includes (or communicate with) an inventory manager having inventory data, and optionally includes a feature service and data. A store planning tool is available in some examples of FAST node 144. Some examples of FAST node 144 also control AGV 116 to instruct AGV 116 on placement of pallet 122b via a wireless communication module 372. FAST node 144 is in communication with a central hub 380 over a network 630 to receive information regarding inventory delivery and features. Central hub 380 coordinates logistics for inventory management among multiple retail facilities.
A sorting controller 302 is controlling a robotic arm 150 to remove items from conveyor assembly 130 and stack them on a pallet 122a. Robotic arm 150 has a plurality of end effectors. An end effector is a device or tool connected to the end of a robot arm. In some examples, available end effectors include a spatula and a pusher, a suction-cup array, and a side-to-side gripper. Empty pallets 124a and 124b are awaiting being taken to conveyor assembly 130 by AGV 116 and then loading by robotic arm 150.
FAST node 144 has a communication component 244 that works with wireless communication module 372 to control AGV 116 in support of unloading and inventory restocking operations. Also, in support of the operations, FAST node 144 accesses, or has within data and logic 146, a cargo manifest 342 identifying items brought by transport asset 140, inventory data 344 for the retail facility 102, and information for the items 202, 204a, 204b, 206a, and 206b that relate to the operations described herein. Such information includes item descriptions, for example size (dimensions), weight, information related to stackability, and identification of products on feature.
Robotic arm 150 has a plurality of end effectors 220, which includes at least two end effectors selected from the list consisting of: a spatula and a pusher, a suction-cup array, and a side-to-side gripper. Several sensors are shown. Sensors 370a and 370b identify physical parameters of item 202, such as size and weight. In some examples, sensors 370a and 370b provide a CV component and a weight measurement component. Using data from sensors 370a and 370b sorting controller 302 can select one of the plurality of end effectors 220 for engaging first item 202 with robotic arm 150. Sensors 370c, 370d, and 370e are configured to provide information to enable sorting controller 302 to determine stacking success on pallet 122a. For example, sensors 370c, 370d, and 370e provide CV or LIDAR components that assess the shape of the stack of items 210a, 210b, and 210c, that robotic arm 150 has already stacked in pallet 122a. Sensor 370f is on robotic arm, and thus may actually take the place of two sensors, because it moves with robotic arm. When sensor 370f is aimed at conveyor assembly 130, sensor 370f can take the place of either sensor 370a or 370b. When sensor 370f is aimed at pallet 22a, sensor 370f can take the place of one of sensors 370c-370e. Sensor 370g provides information on the position of pallet 122a, so that robotic arm 150 can be instructed regarding the bounding volume of where to stack items.
Feature logic 314 is used to manage product feature operations, such as identifying locations to place pallets of featured products. Diversion logic 316 determines whether to divert an item with robotic arm 150, using diversion data 352 and a diverted item count. For example, if an item is not on the feature list (e.g., not in feature data 350), it will not be selected for diversion, but instead will be handled according to normal inventory restocking processes. If the item is on the feature list (e.g., it is identified in feature data 350), but the specified number of items have been diverted (e.g., diverted item count 354 has met a threshold), it will not be selected for diversion, but instead will be handled according to normal inventory restocking processes. Such a situation could arise of feature data 350 specified both items for feature and also a number to put in feature displays. As the items are stacked by robotic arm 150, diversion item count increments. When the threshold is met (the number specified in feature data 350), later unloaded items are handled according to normal inventory restocking processes. Also, if the item is on the feature list, but is damaged, it will not be selected for diversion (due to the damage), but instead will be handled according to normal damaged inventory processes.
A sensor control component 318 controls sensors 370a-370g. As illustrated, sensor 370a is a CV sensor, and eight sensors are shown. Other sensor options include LIDAR, weight sensors, mechanical force measurement sensors, and barcode readers, although it should be understood that different numbers and types of sensors may be used in various examples. Example sensors used by sorter component 300 include a first sensor component configured to determine a first physical parameter of items, and a second sensor component configured to determine a second physical parameter of items. The first sensor component includes a first one of sensors 370a-370g and the necessary logic and data in sensor control component 318. A physical parameter can be dimensions or weight. In some examples, determining the first physical parameter of ant item comprises sensing the first physical parameter with a CV component or a weight measurement component. A CV component can determine optical dimensional measurement and detect item damage.
A third, fourth, and fifth sensor component are configured to determine stacking success, for example by using CV or LIDAR placed at different angles (top, and two sides) to ascertain whether the stacking operations are producing a tilted stack. For example, a LIDAR sensor can produce a 3D point cloud that can be analyzed using a stacking control component 322 as items are stacked. A sixth sensor component, placed on robotic arm 150, so that it moves with the selected effector, can take the place of both the first sensor and one of the third through fifth sensor components. A seventh sensor component determines resistance force, or force feedback when robotic arm 150 is stacking an item. This can indicate a problem with the stack. An eighth sensor component identifies proper placement of a pallet.
Sorter component 300 receives identification data for items on conveyor assembly 30 from item identifier 138 for use in controlling robotic arm 150 in accordance with diversion logic. In some examples, sorter component 300 is operable to determine a physical parameter of an item using a stored item description in item descriptions 346. An effector selection component 320 receives physical parameter information about an item to be stacked, and consults effector data 348 to determine available effectors to use and which one is in current use. In this way, sorter component 300 is operable to, based at least on a first physical parameter of an item, select one of the plurality of end effectors for engaging the item with robotic arm 150. In some examples, selecting at least one end effector from a plurality of end effectors comprises selecting at least one end effector from the list consisting of: a spatula and a pusher, a suction-cup array, and a side-to-side gripper. Sorter component 300 is also operable to, based at least on the identification data of an item and item diversion data, control robotic arm 150 to remove the item from conveyor assembly 130 and stack the item at on pallet 122a. Sorter component 300 is also operable to control the stacking of the item on pallet 122a based at least on the first physical parameter of the item or a second physical parameter of the item. That is, sorter component 300 can select an end effector based on any of size, weight, and rigidity of an item, and then stack the item using either the same physical parameter(s), different physical parameter(s), or an overlap of physical parameters. Rules stored in stacking data 356, and used by stacking control 322 govern the height, shape, and weight of stacks. In some examples, stacking control 322 leverages an AI solution 358.
A power control component 324 is configured to, based at least on the weight of the first item, adjust power usage of robotic arm 150, for example by using less power when the item to be stacked is lightweight. A store planning component 326 determines locations in retail floor space 104 for full pallets (e.g., full pallet 122b). An exception handling component 328 detects and responds to at least one condition selected from the list consisting of: erroneous operation of conveyor assembly 130, damage to the first item (using CV), and stacking instability on pallet 122a. Stacking instability can be determined using force feedback (seventh sensor component) or analyze a 3D LIDAR point cloud or CV results (third through fifth sensor components). Additionally, some examples of exception handling component 328 take input from AGV 116, if AGV 116 detects stacking problems.
An alert logic 330 generates an alert when remaining capacity at pallet 122a is below a threshold. In some examples, the threshold is zero, and the alert is generated when pallet 122a is full. In some examples, the threshold is set to some number that provides some lead time for obtaining an empty pallet (e.g., empty pallet 124a or 124b), such as when there is room for only one or two more items on pallet 122a. An inventory management component 332 works with FAST node 144 and store planning component 326 to ensure that items are delivered to the correct locations within retail floor space 104 (e.g., shelf units 110a and 110b, end cap display areas 112a and 112b, and feature floor space 114). A mechanical control component 334 controls the electromechanical parts of robotic arm 150, such as servo motors and solenoids. An ML component 336 generates AI solution 358 to be used for improving stacking stability. To accomplish this, ML component 336 uses detected exception conditions previously detected and resolved by sorter component 300. Other executable instructions 338 includes, for example communication logic for communicating across network 630 or using wireless communication module 372.
The open available positions for pallets is stored in available location data 414 and communicated to sorting controller 302 and/or FAST node 144 using a communication component 416 and a wireless communication module 472. A mechanical function control component 418 handles lifting and moving pallets, and driving and steering AGV 116. A stacking assistance component 420 uses sensor 470d to identify problems with stacking, such as leaning or instability, and communicates the feedback to sorting controller 302 via communication component 416 and wireless communication module 472.
Unloading begins in operation 508, and operation 510 identifies an unloaded item and checks for damage. Specifically, operation 510 includes reading identification data of a first item on a conveyor assembly and identification data of a second item on the conveyor assembly. A CV component can check the item for damage, such as by using an AI solution. Decision operation 512 determines whether the item is to be diverted by the robotic arm. If the item is not on the feature list, it will not be selected for diversion, but instead will be handled according to normal inventory restocking processes. If the item is on the feature list, but the specified number of items have been diverted (e.g., diverted item count 354 has met a threshold), it will not be selected for diversion, but instead will be handled according to normal inventory restocking processes. If the item is on the feature list, but is damaged, it will not be selected for diversion (due to the damage), but instead will be handled according to normal damaged inventory processes. In either of these cases, flow chart 500 moves to operation 514 where, based at least on the identification data of the item, routing the item to a destination on the conveyor assembly where the item will be handled by normal inventory processes.
If, however, the item is to be diverted, then operation 516 includes determining a first physical parameter of the item. The first physical parameter may be size (dimensions), weight, shape, rigidity, fragility, or some other physical parameter. In some examples, determining the first physical parameter of the item comprises sensing the first physical parameter with a CV component or a weight measurement component. In some examples, determining the first physical parameter of the item comprises determining the first physical parameter using a stored item description (e.g., item description 346). Operation 518 includes selecting, based at least on the first physical parameter of the item, at least one end effector from a plurality of end effectors for engaging the item with a robotic arm. In some examples, selecting at least one end effector from a plurality of end effectors comprises selecting at least one end effector from the list consisting of: a spatula and a pusher, a suction-cup array, and a side-to-side gripper. For some examples, operation 520 includes, based at least on the weight of the item, adjusting power usage of the robotic arm. That is, if the weight is sufficiently low, the robotic arm can be operated in a low power mode, whereas, if the item is heavy, a higher power mode will be needed.
Operation 522 includes based at least on the identification data of the item and item diversion data, removing the item from the conveyor assembly with the robotic arm, and operation 524 includes stacking the item at the first destination location with the robotic arm. In some examples, stacking the item at the first destination location with the robotic arm comprises stacking the item based at least on data from a CV component. In some examples, stacking the item at the first destination location with the robotic arm comprises stacking the item based at least on the first physical parameter of the item or a second physical parameter of the item. For example, physical parameters such as size (dimensions), weight, shape, and rigidity can all affect stacking options. In some example, a rules engine (e.g., stacking control 322 using stacking data 356) will control stacking operations by limiting height, weight, and shape of the resulting stack.
Decision operation 526 includes detecting at least one condition selected from the list consisting of: erroneous operation of the conveyor assembly, damage to the first item, and stacking instability at the first destination. Some examples use exception handling component 328. In some examples, if the items are being stacked on a pallet that is on an AGV (as opposed to a solo pallet that will later be retrieved by an AGV) the AGV will provide exception detection input (e.g., with stacking assistance component 420). If an exception condition is detected, then operation 528 includes responding to the condition (responding to at least one condition selected from the list consisting of: erroneous operation of the conveyor assembly, damage to the first item, and stacking instability at the first destination). Conditions that can trigger an exception include blockage of the conveyor assembly, item damage, and a sensor on the robotic arm providing force feedback above some threshold.
The number of items diverted for the feature display (e.g., diverted item count 354) is incremented in operation 530. Decision operation 532 determines whether the pallet is full or nearly full, so that another (likely empty) pallet can be brought in to replace the full one. If not, then flowchart returns to operation 508 for continued unloading. If the pallet is full or nearly full, then operation 534 includes generating an alert when the first destination location is below a remaining capacity threshold. In some examples, the threshold is zero, and the alert is generated when the pallet is full. In some examples, the threshold is set to some number that provides some lead time for obtaining an empty pallet, such as there is room for only one or two more items. A new pallet is provided by an AGV (or a human operator, in some examples), in operation 536.
Operation 538 includes instructing the AGV that is delivering the full pallet where to place it. In operation 540, the AGV delivers the full pallet, and in operation 542, the AGV determines available locations for other pallets (e.g., using SLAM component 412 with store map 410). In some examples, operation 538 includes instructing the AGV specifically where in a retail floor space to deliver the full pallet, whereas in some other examples, operation 538 includes instructing the AGV only to deliver the full pallet to the floor space, and the AGV either receives further instructions from another node or uses its SLAM capability to find a suitable location. In operation 544, information regarding space available for other pallets (e.g., available location data 414) is provided by the AGV, permitting a store planning update (e.g., using store planning component 326). Operation 546 includes generating an AI solution (e.g., AI solution 358) for stacking, using an ML component (e.g., ML component 336). To accomplish this, operation 546 uses detected exception conditions detected and resolved (in operations 526 and 528) that were related to stacking instability. In some examples, operation 546 also includes generating an AI solution for item damage recognition using an ML component.
Computing node 600 includes a bus 610 that directly or indirectly couples the following devices: memory 612, one or more processors 614, one or more presentation components 616, input/output (I/O) ports 618, I/O components 620, a power supply 622, and a network component 624. Computing node 600 should not be interpreted as having any dependency or requirement related to any single component or combination of components illustrated therein. While computing node 600 is depicted as a seemingly single device, multiple computing nodes 600 may work together and share the depicted device resources. That is, one or more computer storage devices having computer-executable instructions stored thereon may perform operations disclosed herein. For example, memory 612 may be distributed across multiple devices, processor(s) 614 may provide housed on different devices, and so on.
Bus 610 represents what may be one or more busses (such as an address bus, data bus, or a combination thereof). Although the various blocks of
Processor(s) 614 may include any quantity of processing units that read data from various entities, such as memory 612 or I/O components 620. Specifically, processor(s) 614 are programmed to execute computer-executable instructions for implementing aspects of the disclosure. The instructions may be performed by the processor, by multiple processors within the computing node 600, or by a processor external to the client computing node 600. In some examples, the processor(s) 614 are programmed to execute instructions such as those illustrated in the flowcharts discussed below and depicted in the accompanying drawings. Moreover, in some examples, the processor(s) 614 represent an implementation of analog techniques to perform the operations described herein. For example, the operations may be performed by an analog client computing node 600 and/or a digital client computing node 600.
Presentation component(s) 616 present data indications to a user or other device. Exemplary presentation components include a display device, speaker, printing component, vibrating component, etc. One skilled in the art will understand and appreciate that computer data may be presented in a number of ways, such as visually in a graphical user interface (GUI), audibly through speakers, wirelessly among multiple computing nodes 600, across a wired connection, or in other ways. Ports 618 allow computing node 600 to be logically coupled to other devices including I/O components 620, some of which may be built in. Example I/O components 620 include, for example but without limitation, a microphone, keyboard, mouse, joystick, game pad, satellite dish, scanner, printer, wireless device, etc.
In some examples, the network component 624 includes a network interface card and/or computer-executable instructions (e.g., a driver) for operating the network interface card. Communication between the computing node 600 and other devices may occur using any protocol or mechanism over any wired or wireless connection. In some examples, the network component 624 is operable to communicate data over public, private, or hybrid (public and private) using a transfer protocol, between devices wirelessly using short range communication technologies (e.g., near-field communication (NFC), Bluetooth® branded communications, or the like), or a combination thereof. Network component 624 communicates over wireless communication link 626 and/or a wired communication link 626a to a cloud resource 628. Various different examples of communication links 626 and 626a include a wireless connection, a wired connection, and/or a dedicated link, and in some examples, at least a portion is routed through the internet.
Although described in connection with an example computing node 600, examples of the disclosure are capable of implementation with numerous other general-purpose or special-purpose computing system environments, configurations, or devices. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with aspects of the disclosure include, but are not limited to, smart phones, mobile tablets, mobile computing nodes, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, gaming consoles, microprocessor-based systems, set top boxes, programmable consumer electronics, mobile telephones, mobile computing and/or communication devices in wearable or accessory form factors (e.g., watches, glasses, headsets, or earphones), network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, virtual reality (VR) devices, holographic device, and the like. Such systems or devices may accept input from the user in any way, including from input devices such as a keyboard or pointing device, via gesture input, proximity input (such as by hovering), and/or via voice input.
Examples of the disclosure may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices in software, firmware, hardware, or a combination thereof. The computer-executable instructions may be organized into one or more computer-executable components or modules. Generally, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. Aspects of the disclosure may be implemented with any number and organization of such components or modules. For example, aspects of the disclosure are not limited to the specific computer-executable instructions or the specific components or modules illustrated in the figures and described herein. Other examples of the disclosure may include different computer-executable instructions or components having more or less functionality than illustrated and described herein. In examples involving a general-purpose computer, aspects of the disclosure transform the general-purpose computer into a special-purpose computing device or computing node when configured to execute the instructions described herein.
By way of example and not limitation, computer readable media comprise computer storage media and communication media. Computer storage media include volatile and nonvolatile, removable and non-removable memory implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or the like. Computer storage media are tangible and mutually exclusive to communication media. Computer storage media are implemented in hardware and exclude carrier waves and propagated signals. Computer storage media for purposes of this disclosure are not signals per se. Exemplary computer storage media include hard disks, flash drives, solid-state memory, phase change random-access memory (PRAM), static random-access memory (SRAM), dynamic random-access memory (DRAM), other types of random-access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing device. In contrast, communication media typically embody computer readable instructions, data structures, program modules, or the like in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media.
An exemplary system for transporting items to destination locations comprises: a conveyor assembly comprising first destination location and a second destination location; an item identifier operable to read identification data of a first item on the conveyor assembly and identification data of a second item on the conveyor assembly; a robotic arm; a plurality of end effectors for the robotic arm; and a sorter component operable to: based at least on a first physical parameter of the first item, select one of the plurality of end effectors for engaging the first item with the robotic arm; based at least on the identification data of the first item and item diversion data, control the robotic arm to remove the first item from the conveyor assembly and stack the first item at the first destination location; and based at least on the identification data of the second item, route the second item to the second destination location on the conveyor assembly.
An exemplary method of transporting items to destination locations comprises: reading identification data of a first item on a conveyor assembly and identification data of a second item on the conveyor assembly; determining a first physical parameter of the first item; selecting, based at least on the first physical parameter of the first item, at least one end effector from a plurality of end effectors for engaging the first item with a robotic arm; based at least on the identification data of the first item and item diversion data, removing the first item from the conveyor assembly and stacking the first item at a first destination location with the robotic arm; and based at least on the identification data of the second item, routing the second item to a second destination location on the conveyor assembly.
One or more exemplary computer storage devices having computer-executable instructions stored thereon for transporting items to destination locations, which, on execution by a computer, cause the computer to perform operations comprising: reading identification data of a first item on a conveyor assembly and identification data of a second item on the conveyor assembly; determining a first physical parameter of the first item, wherein determining the first physical parameter of the first item comprises: sensing the first physical parameter with a computer vision (CV) component or a weight measurement component; or determining the first physical parameter using a stored item description; selecting, based at least on the first physical parameter of the first item, at least one end effector from a plurality of end effectors for engaging the first item with a robotic arm, wherein selecting at least one end effector from the plurality of end effectors comprises selecting at least one end effector from the list consisting of: a spatula and a pusher, a suction-cup array, and a side-to-side gripper; based at least on the identification data of the first item and item diversion data, removing the first item from the conveyor assembly and stacking the first item at a first destination location with the robotic arm, wherein stacking the first item at the first destination location with the robotic arm comprises stacking the first item based at least on data from a CV component; based at least on the identification data of the second item, routing the second item to a second destination location on the conveyor assembly; detecting and responding to at least one condition selected from the list consisting of: erroneous operation of the conveyor assembly, damage to the first item, and stacking instability at the first destination; and generating an alert when the first destination location is below a remaining capacity threshold.
Alternatively, or in addition to the other examples described herein, examples include any combination of the following:
The order of execution or performance of the operations in examples of the disclosure illustrated and described herein may not be essential, and thus may be performed in different sequential manners in various examples. For example, it is contemplated that executing or performing a particular operation before, contemporaneously with, or after another operation is within the scope of aspects of the disclosure. When introducing elements of aspects of the disclosure or the examples thereof, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements. The term “exemplary” is intended to mean “an example of” The phrase “one or more of the following: A, B, and C” means “at least one of A and/or at least one of B and/or at least one of C.”
Having described aspects of the disclosure in detail, it will be apparent that modifications and variations are possible without departing from the scope of aspects of the disclosure as defined in the appended claims. As various changes could be made in the above constructions, products, and methods without departing from the scope of aspects of the disclosure, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense. While the disclosure is susceptible to various modifications and alternative constructions, certain illustrated examples thereof are shown in the drawings and have been described above in detail. It should be understood, however, that there is no intention to limit the disclosure to the specific forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the disclosure.
Number | Date | Country | |
---|---|---|---|
62811277 | Feb 2019 | US |