This disclosure relates to a mobile vending system and method, and particularly, to an autonomous mobile vending system and method for prepared food available for sale.
Product delivery vehicles are generally configured to deliver an already-purchased product to a predetermined location. For example, a consumer may complete a purchase of a product from a fixed location, such as a restaurant, by phone or internet. The fixed location then provides the purchased product to a delivery vehicle for delivery to a known location of the consumer. The delivery vehicle may be provided with a plurality of the purchased products to be provided a plurality of consumers at various locations. Accordingly, the delivery vehicle may be driven along a fixed route to each of the consumer locations in order to deliver the purchased goods. Although suitable for its intended purpose, delivery vehicles carrying only purchased products lack the ability to engage and transact with consumers which may be along the fixed route, thereby bypassing potential sales.
A dynamic vending system includes a vending manager and a delivery vehicle. The vending manager is configured to receive and evaluate a plurality of dynamic conditions from the delivery vehicle and to provide instructions including a planned route to the delivery vehicle based on the dynamic conditions. The delivery vehicle includes a plurality of products available for sale, and is configured to execute the instructions including the planned route. The delivery vehicle is further configured to receive requests from consumers to stop along the planned route or to deviate from the planned route, and to execute a transaction with the consumer for one of the products available for sale. The transaction includes the selection of one of the products available for sale, receipt of a payment for the product, and dispensing the selected product to the consumer.
The details of one or more implementations of the disclosure are set forth in the accompanying drawings and the description below. Other aspects, features, and advantages will be apparent from the description and drawings, and from the claims.
Like reference symbols in the various drawings indicate like elements.
The control layer 100 includes a vending manager 200 configured to run on a server 102 having data processing hardware 104 and memory hardware 106. The vending manager 200 includes an evaluator 210 and a planner 220. As detailed in
The control layer 100 may further include a control center 108 configured to interact with the vending manager 200. The control center 108 may provide rules to one or both of the evaluator 210 and the planner 220 in order to bias or fix the instructions 222 provided to each of the layers 110, 120, 130.
The vendor layer 110 includes one or more service stations 20 configured to maintain an inventory of products P to be provided to the delivery layer 120. In some examples, the service stations 20 are food service stations 20, 20a, which prepare ready-to-eat food products P (e.g., pizzas) for provision to the delivery layer 120, and ultimately, the consumer layer 130. Additionally or alternatively, the products P may be individual ingredients to be provided to the delivery layer 120, whereby the delivery layer 120 includes a means for assembling the ingredients into ready-to-eat food products P. While food products P are discussed hereafter, the method and system described herein may be used for delivery of any products.
The delivery layer 120 includes at least one delivery vehicle 300 configured to distribute the food products P from the vendor layer 110 to the consumer layer 120. As described in greater detail, below, the delivery vehicle 300 may provide conditions 212 to the evaluator 210 of the vending manager 200 and receive responsive instructions 222 from the planner 220. Although the vending manager 200 is illustrated as a centralized device located on the control layer 100, in some examples the DVS environment 10 may include a network of vending managers 200, which intercommunicate with each other to coordinate the vendor layer 110 and the delivery layer 120. For example, each of the delivery vehicles 300 may include a vending manager 200, such that the delivery vehicles 300 communicate with each other directly to evaluate conditions 212 and determine instructions 222.
The consumer layer 130 includes at least one consumer 30 in communication with the delivery layer 120 via the distribution network 150. In some examples, the consumer 30 may be in communication with a user device 400. In some examples, the user device 400 is a mobile device 400, such as a smart phone or tablet. However, as discussed above, the user device 400 may be a stationary device, such as a personal computer, a smart television, a smart speaker, or other interactive devices. The user device 400 is in communication with the communication network 140, thereby placing the consumer 30 in communication with each of the control layer 100, the vendor layer 110, and the delivery layer 120. The user device 400 may include downloadable software, such as an application 410 (i.e., app) executable to provide an interface for communicating with each of the control layer 100, the vendor layer 110, and the delivery layer 120, as described in greater detail, below.
The consumer layer 130 may also include buildings 40 and other structures having vending areas for the delivery vehicles 300 to interact with the consumers 30. The buildings 40 may include media devices, such as televisions or computers which provide interfaces between the consumers 30 and at least one of the control layer 100, the vendor layer 110, and the delivery layer 120 via the communication network 140. For example, media devices within the buildings 40 may display current and/or schedule locations for the delivery vehicles 300, along with inventories of the delivery vehicles 300.
With reference to
Based on the conditions 212, the planner 220 determines and provides a plurality of instructions 222 to the delivery vehicles 300. For example, the planner 220 may schedule order deliveries 222a, plan routes 222b for each of the delivery vehicles 300, schedule vehicle stops 222c along the planned routes 222b, and/or determine inventories 222d for each of the delivery vehicles 300. The scheduled vehicle stops 222c may include planned stops 222c1, which are predetermined by the planner 220 independent of any specific transaction, and are based on maximizing a likelihood of sale of the products P at the stop location. Additionally or alternatively, the scheduled stops 222c may include requested stops 222c2, which can be added to the planned route 222b at any time. As discussed in greater detail below, the requested stops 222c2 may be associated with a specific transaction including the products P. In some examples, the requested stops 222c2 may be received from the user device 400 via direct communication and/or the network 140. In other examples, the consumer 30 may be able to physically prompt the planner 220 to add a requested stop 222c2 to the planned route 222b.
Generally, the vending manager 200 is configured to optimize routes 222b, stops 222c, and inventory 222d to maximize the number of consumers 30 reached, while minimizing a length and/or duration of the planned route 222b. Although the planner 220 may be configured to provide initial instances of each of the instructions 222 based on the conditions 212 received at a first point in time, the vending manager 200 may also dynamically adjust the instructions in real-time as the conditions 212 change. For example, the vending manager 200 may adjust delivery vehicle 300 routes 222b based on an interruption in traffic 212g or a shift in consumer locations 212c. In some examples, the planner 220 may dynamically update instructions 222 to a first delivery vehicle 300 to accommodate unexpected deviations by a second delivery vehicle 300, such as unscheduled stops and/or changes in product inventory.
In addition to maximizing the number of consumers 30 reached, the vending manager 200 may be configured to ensure that properties of the products P available for purchase satisfy thresholds related to product quality. For example, the products P included in the delivery vehicle 300 may be freshly-made products, which are desirably maintained within a desired temperature range, and have a predetermined serving life.
Accordingly, the evaluator 210 may be provided with conditions relating to the expected product life 212fL, which are then evaluated to determine whether particular products P are suitable for purchase. For example, the evaluator 210 may be provided with predetermined expiration dates for the products P. Additionally or alternatively, the evaluator 210 may determine a projected expiration time for each of the products based on a duration, a temperature, or a combination thereof.
Based on the product life 212fL the planner 220 may modify available inventory 222d. In some examples, once a product P is identified as not satisfying a threshold, such as exceeding desired age or falling below desired temperature, the planner 220 may make the product unavailable for purchase. Likewise, the planner 220 may limit availability of the product P to stops 222c or routes 222b that can be reached prior to a projected expiration time. For example, if one of the products is projected to expire within 15 minutes, the planner 220 may restrict availability of that product P to locations that can be reached within the 15 minutes. In some examples, the planner 220 may modify the planned route 222b and/or schedule stops 222c to maximize the likelihood of sale of products P based on expected expiration and/or availability. For example, where the planner 220 identifies products P that may expire within a predetermined time limit, the planner 220 may adjust the planned route 222b to include areas or planned stops 222c1 that are more likely to result in the sale of the expiring products P. Additionally or alternatively, where remaining inventory includes a particular type of the product P (e.g. size, ingredients), the planner 220 may modify the planned route 222b and/or scheduled stops 222c to maximize a likelihood of sale of the remaining inventory.
The delivery vehicle 300 may include a user interface 330 for allowing consumers 30 to interact directly with the delivery vehicle 300. The user interface 330 may include an interactive display 332 for showing various conditions of the delivery vehicle 300 and for allowing consumers 30 to interact with the delivery vehicle 300. For example, the user interface 330 may display the current inventory 322 of products P of the delivery vehicle 300, and provide an interface for executing a purchase of one or more of the products P. Additionally or alternatively, the user interface 330 may be provided or mirrored to the remote user device 400.
The delivery vehicle 300 further includes a payment processor 340 configured to receive payments from the consumer 30. The payment processor 340 may include a verifier 342 configured to allow the consumer 30 to provide an order confirmation to the delivery vehicle 300 to authenticate prior payment for purchase of one of the products PP. In some examples, the verifier 342 may include a keypad 342a configured to allow the consumer 30 to manually enter an authentication code 416 corresponding to a particular product or products P. Additionally or alternatively, the verifier 342 may be incorporated with a scanner 342b configured to read a unique identifier 418, as discussed in greater detail below.
In some examples, the verifier 342 may include a user device interface 342c configured to communicate with the user device 400 to verify prior purchase of one of the products P. For example, the verifier 342 may automatically connect with the user device 400 when the user device 400 is within a predetermined proximity to the verifier 342. In some examples, the verifier 342 may communicate directly with the user device 400 using one or more wireless communication protocols, such as low-energy Bluetooth (BLE), Wi-Fi direct, or the like. Alternatively, the verifier 342 may locate and communicate with the user device 400 indirectly using one or more communications networks and a global positioning system of the user device 400. Once the consumer 30 is near the delivery vehicle 300, the user device 400 may be used to request a corresponding product P to be dispensed.
The payment processor 340 may also include local payment processing systems, such as a payment card reader 344, an e-payment portal 346 (e.g., Paypal™, Venmo™, etc.), and/or a cash receiver 348 for providing payment at the delivery vehicle 300. The payment processor 340 may be integrated with the user interface 330.
With continued reference to
In some examples, the navigation and control unit 350 receives and executes instructions 222 autonomously, whereby the delivery vehicle 300 is equipped with systems for navigating autonomously. Alternatively, the instructions 222 may be provided to a delivery vehicle operator in real-time via one or more operator interfaces 358 within the delivery vehicle 300, whereby the instructions 222 are manually executed by the vehicle operator.
The local control 354 is configured to provide micro level navigation and control of the delivery vehicle 300, whereby conditions not available to the global control 352 are identified and evaluated to provide more precise control of the delivery vehicle 300. The local control 354 includes known means for identifying and evaluating local factors. In some examples, the local control 354 includes a consumer detector 356 configured to identify potential consumers 30 near the vehicle 300.
The consumer detector 356 allows consumers 30 located near the delivery vehicle 300 to hail the vehicle Upon identification of an interested consumer 30, the local control 354 may identify a safe stopping location, so that the consumer 30 may approach the delivery vehicle to complete a transaction via the user interface 330 and payment processor 340. The consumer detector 356 and user interface 330 advantageously allow consumers 30 to interact with the delivery vehicle 300 directly to complete transactions without the need for advanced ordering via the user device 400.
In some examples, the consumer detector 356 is configured to communicate directly or indirectly with the user device(s) 400 of one or more of the consumers 30 to determine proximity of the one or more consumers 30. For example, the application 410 executed by the user device 400 allows the user device 400 to communicate with the navigation and control unit 350. Communication between the user device 400 and the consumer detector 356 may be indirectly provided via the one or more communications networks 140. Additionally or alternatively, the user device 400 of the user 30 may be configured to communicate directly with the consumer detector 356 when the consumer is within a within a predetermined distance from the delivery vehicle 300. When one or both of the user device 400 and the delivery vehicle 300 determines that the other of the user device 400 and the delivery vehicle 300 is within a threshold distance of the other, a prompt may be provided to the user 30 indicating the presence of the vehicle 300. In some examples, the prompt may be actively provided to the user via a push notification through the user device 400. In some examples, the prompt may be passive, whereby the consumer 30 can view the vehicle 300 location via a map provided to the user device 400. Alternatively, the vehicle 300 itself may provide an audible or visual prompt to nearby consumers. The consumer 30 may then “hail” the delivery vehicle 300, either by physical gesture or via the user device 400. For example, the consumer detector 356 may be configured to recognize a wave of a hand. Additionally or alternatively, the consumer 30 may request a stop via the user device 400.
Each of the transponder 310, the vendor module 320, the user interface 330, the payment processor 340, and the navigation and control unit 350 may be configured to run on a vehicle server 360 including data processing hardware 362 and memory hardware 364. As provided above, the vehicle server 360 may further include a local vending manager (not shown) including a local evaluator and a local planner. The local vending manager may interact with local vending managers of other delivery vehicles 300 to coordinate respective operating strategies for the delivery vehicles 300.
With reference to
As discussed above, the delivery vehicle 300 may initially be provided with an inventory 322 of products P available for sale based on a determination by the vending manager 200. The vending manager 200 may then provide a planned route 222b and scheduled stops 222c to the delivery vehicle 300. The planned route 222b may correspond to a particular neighborhood or area. The scheduled stops 222c may correspond with locations which are likely to result in transactions, such as areas having large population concentrations or areas that are associated with the product P, like food truck areas or city streets. Accordingly, in what may be referred to as a “roaming mode”, the delivery vehicle 300 is configured to execute the planned route 222b without having predetermined orders. Here, the planned route 222b may be geographically-based, where the vending manager 200 instructs the delivery vehicle 300 to canvas a particular area by without consideration of conditions 212. For example, the vending manage 200 may instruct the delivery vehicle 300 to proceed along all streets within a predetermined area. The planned route 222b may be dynamically adjusted based on the conditions 212 provided to the evaluator 210. Furthermore, the planned route 222b may be adjusted to accommodate requested stops 222c2, such as consumer 30 requests and/or orders, as described in
The planned route 222b and the scheduled stops 222c may be displayed to a consumer 30 via the user device 400. For example, the application 410 may be configured to display an interactive map 412a showing a location of various delivery vehicles 300 with respect to a location of the consumer 30. The consumer 30 may select delivery vehicles 300 from the interactive map 412a to display associated vehicle profiles, as discussed below with respect to
With reference to
The notification screen 410a may include the interactive map 412a along with a user-selectable hail button 412e. As shown in
With reference to
Upon selection of the hail button 412e from within the notification screen 410a or the vehicle profile screen 410b, the application 410 may provide a tracking screen 410d, which shows the current location of the delivery vehicle 300 on the interactive map 412a, along with an estimated time of arrival 414, as shown in
With reference to
When the delivery vehicle 300 arrives at the location of the consumer 30, the consumer 30 may present the authentication code 416 or the unique identifier 418 to the verifier 342, which then prompts the vendor module 320 to dispense the corresponding product P1 to the consumer 30, as indicated by the bold, dashed line in
Upon completion of the “hailed” stop, the delivery vehicle 300 may return to roaming mode along the planned route 222b. The planned route 222b may be updated by the vending manager 200 based on changes in the conditions 212 during the stop.
Referring now to
Once the order is completed, the application 410 may display order confirmation screen 410f, as shown in
Referring to
The disclosed system and methods of implementing the system advantageously provide a dynamic point of sale, which can be targeted towards specific consumers or groups of consumers in real-time based on one or more conditions. As opposed to known delivery vehicles, which are configured to deliver already-purchased products to fixed locations, the disclosed environment 10 is configured to adjust delivery vehicle behavior to maximize a number of transactions by allowing transactions to be carried out directly between the consumer 30 and the delivery vehicle 300.
The computing device 500 includes a processor 510, memory 520, a storage device 530, a high-speed interface/controller 540 connecting to the memory 520 and high-speed expansion ports 550, and a low speed interface/controller 560 connecting to a low speed bus 570 and a storage device 530. Each of the components 510, 520, 530, 540, 550, and 560, are interconnected using various busses, and may be mounted on a common motherboard or in other manners as appropriate. The processor 510 can process instructions for execution within the computing device 500, including instructions stored in the memory 520 or on the storage device 530 to display graphical information for a graphical user interface (GUI) on an external input/output device, such as display 580 coupled to high speed interface 540. In other implementations, multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory. Also, multiple computing devices 500 may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).
The memory 520 stores information non-transitorily within the computing device 500. The memory 520 may be a computer-readable medium, a volatile memory unit(s), or non-volatile memory unit(s). The non-transitory memory 520 may be physical devices used to store programs (e.g., sequences of instructions) or data (e.g., program state information) on a temporary or permanent basis for use by the computing device 500. Examples of non-volatile memory include, but are not limited to, flash memory and read-only memory (ROM)/programmable read-only memory (PROM)/erasable programmable read-only memory (EPROM)/electronically erasable programmable read-only memory (EEPROM) (e.g., typically used for firmware, such as boot programs). Examples of volatile memory include, but are not limited to, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), phase change memory (PCM) as well as disks or tapes.
The storage device 530 is capable of providing mass storage for the computing device 500. In some implementations, the storage device 530 is a computer-readable medium. In various different implementations, the storage device 530 may be a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations. In additional implementations, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as the memory 520, the storage device 530, or memory on processor 510.
The high speed controller 540 manages bandwidth-intensive operations for the computing device 500, while the low speed controller 560 manages lower bandwidth-intensive operations. Such allocation of duties is exemplary only. In some implementations, the high-speed controller 540 is coupled to the memory 520, the display 580 (e.g., through a graphics processor or accelerator), and to the high-speed expansion ports 550, which may accept various expansion cards (not shown). In some implementations, the low-speed controller 560 is coupled to the storage device 530 and a low-speed expansion port 590. The low-speed expansion port 590, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet), may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.
The computing device 500 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 500a or multiple times in a group of such servers 500a, as a laptop computer 500b, or as part of a rack server system 500c.
Various implementations of the systems and techniques described herein can be realized in digital electronic and/or optical circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms “machine-readable medium” and “computer-readable medium” refer to any computer program product, non-transitory computer readable medium, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor.
The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
To provide for interaction with a user, one or more aspects of the disclosure can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube), LCD (liquid crystal display) monitor, or touch screen for displaying information to the user and optionally a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user's client device in response to requests received from the web browser.
A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the disclosure. Accordingly, other implementations are within the scope of the following claims.
This U.S. patent application is a continuation of, and claims priority under 35 U.S.C. 120 from, International Application No. PCT/US2018/049549, filed on Sep. 5, 2018, which claims the benefit of U.S. Provisional Application 62/554,899, filed on Sep. 6, 2017. The disclosures of these prior applications are considered part of the disclosure of this application and are hereby incorporated by reference in their entireties.
Number | Date | Country | |
---|---|---|---|
62554899 | Sep 2017 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/US2018/049549 | Sep 2018 | US |
Child | 16566681 | US |