WO2020055770A1 - Automated food preparation coordination with customer activity - Google Patents

Automated food preparation coordination with customer activity Download PDF

Info

Publication number
WO2020055770A1
WO2020055770A1 PCT/US2019/050265 US2019050265W WO2020055770A1 WO 2020055770 A1 WO2020055770 A1 WO 2020055770A1 US 2019050265 W US2019050265 W US 2019050265W WO 2020055770 A1 WO2020055770 A1 WO 2020055770A1
Authority
WO
WIPO (PCT)
Prior art keywords
delivery
food
activity
preparation
customer
Prior art date
Application number
PCT/US2019/050265
Other languages
French (fr)
Inventor
Vaibhav Goel
Joshua Gouled GOLDBERG
Original Assignee
Zume, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zume, Inc. filed Critical Zume, Inc.
Publication of WO2020055770A1 publication Critical patent/WO2020055770A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events
    • G06Q10/025Coordination of plural reservations, e.g. plural trip segments, transportation combined with accommodation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/047Optimisation of routes or paths, e.g. travelling salesman problem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/20Monitoring the location of vehicles belonging to a group, e.g. fleet of vehicles, countable or determined number of vehicles
    • G08G1/202Dispatching vehicles on the basis of a location, e.g. taxi dispatching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition

Definitions

  • This description generally relates to preparation of goods such as prepared foods and, more particularly, to information-processing technology that coordinates food preparation and customer activity.
  • customer means a person or party who accepts delivery of the food product at a designated delivery location.
  • the designated delivery location may be a location distant from the food preparation facility.
  • the food preparation facility is a vehicle, in some instances, it can deliver the food product to the delivery location.
  • a separate delivery service e.g., DoorDashTM, Uber EatsTM
  • affiliated delivery service e.g., scooter, drone, ground robot
  • the customer may be the ultimate consumer of the food product who picks up the food at a designated delivery location, which may be the location of the food production facility or delivery location.
  • delivery time and location may include one or both of delivery to the customer who will consume the food product and the customer who picks up the food product to continue the next leg of delivery to the ultimate consumer location.
  • a food delivery target time may be determined based on timing of the activity, and food preparation and delivery operations may be determined and scheduled in a coordinated serial manner so as to enable food to be prepared and delivered to a designated location at or near the target time. Also described are techniques in which an update to the activity information results in a change to the target time, enabling modifications to be made to the food preparation or delivery operations so as to fulfill the order at a modified target time.
  • a food preparation and delivery system includes: a preparation engine to determine food preparation operations for preparing an item of a food order at a food preparation facility; a routing engine to determine delivery operations for delivering the item to a delivery location; and a coordination server having a processor, and a memory in communication with the processor.
  • the memory has computer-readable instructions stored thereon that, when executed by the processor, cause the processor to: receive food order information representing a food order that includes at least a food item and a delivery location; access customer activity information relating to a customer activity, the customer activity information including at least a start time or an end time of the activity; determine if the customer activity is associated with the food order, and if so; determine a delivery target time in relation to the start time or end time of the activity; send the delivery target time to the preparation engine and routing engine to perform operations such that the food item is prepared by the food preparation facility and delivered to the delivery location at the delivery target time.
  • the consumer may request and pick up the food from the preparation facility and forego delivery to a remote delivery location.
  • the delivery operations include preparing the item for pick-up and the delivery location is the preparation facility.
  • receiving updates can achieved by listening for updates pushed to the coordination server, sending a request for information and comparing if the information is changed, etc.
  • the coordination server receives updated customer activity information and determines a modified delivery target time based upon a change in the activity start or end time. If the updated customer activity information results in a change in delivery location, the coordination engine requests the routing engine to modify delivery operations based on the change in delivery location.
  • the computer- implemented method includes: receiving, at a coordination server, food order information representing an order for at least one food item and a delivery location; accessing, from an activity service control device, a customer activity information corresponding to an activity of a customer, the customer activity information including at least a start time or end time of the activity; determining if the food order is associated with the customer activity, and if so;
  • determining a delivery target time relative to the activity start or end time and requesting, from a preparation engine, food preparation operations and also requesting, from a routing engine, delivery operations, such that the food preparation and delivery operations enable the at least one the food item in the food order to be prepared and delivered to the delivery location at the delivery target time; receiving updated customer activity information from the activity control device; and if updated customer activity information reflects a change in activity timing, determining a modified target time based on updated timing information; and requesting, from the preparation engine and routing engine, modified food preparation operations and delivery operations so as to meet the modified target time.
  • Various techniques are disclosed herein for determining whether a food order is associated with an activity.
  • the system enables verification by a customer that an inferred association is correct.
  • FIG. 1 Other embodiments are directed more generally to coordination of a customer activity with food delivery, or vice-versa.
  • any activity for which the start or end time is determinable, or at least possible to estimate may be supported by suitable embodiments.
  • an“activity” can mean any appropriate customer activity that can be coordinated with food product delivery.
  • customer activity can mean vehicle charging and/or fueling; delivery vehicle status; departure from, arrival at, or wait time (e.g., intermission) at a transportation station (airport, bus station, train station, ferry or dock) or other location, etc.), fitness center, movie, concert, theatrical production, sporting event, or other events; scheduled appointments or ad hoc services such as medical, automotive service, spa/salon, fitness class, etc.; and the like.
  • Some activities may be provided by the operator of food delivery system, while other activities are independent of or affiliated with the food delivery.
  • the customer activity timing can change dynamically (e.g., charging the vehicle takes longer, airplane/ferry arrives sooner or rerouted to another airport/dock, train is delayed, traffic/weather/road construction delays arrival, intermission occurs 20 minutes later due to late start, etc.), and in response to that change, the food preparation may also be automatically updated to coordinate food preparation readiness at the point of pick up.
  • FIG. 1 is a block diagram of a food preparation and delivery system which, according to an embodiment, is configured to schedule operations based on various factors including activity information.
  • FIG. 2 is a schematic diagram of an exemplary embodiment of a food preparation and delivery system that works in coordination with customer activity services such as vehicle charging services.
  • FIG. 3 is a schematic illustration of an exemplary embodiment of a service- instance data structure for a vehicle charging activity.
  • FIGS. 4A-F illustrate timelines showing target times base on activity timing, representing blocks of time for coordinated preparation operations, delivery operations, and offset periods.
  • FIGS. 5A-C show a sequence of timelines illustrating: food preparation and delivery coordinated to achieve a target time (FIG. 5A), updated activity timing information wherein the activity is delayed (FIG. 5B), and modified preparation and delivery times to meet a modified target time (FIG. 5C).
  • FIG. 6A illustrates a graphical user interface displayed on a user device presenting an offer of a food order associated with an activity such as a vehicle charging service instance.
  • FIG. 6B illustrates another graphical user interface displayed on a user device presenting an offer of a food order associated with an activity such as a vehicle charging service instance.
  • FIGS. 7A-B illustrate an example process flow diagram of a series of operations performed by a coordination server.
  • FIG. 8 is an example high-level process flow diagram of illustrating a series of operations performed by an automated food preparation and distribution system.
  • FIG. 9 is a computer architecture diagram illustrating exemplary computer hardware and software architecture for a computing system capable of implementing aspects of the techniques and technologies presented herein.
  • embodiment means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment.
  • appearances of the phrases“in one embodiment” or“in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment.
  • particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments
  • the term“food” refers to any product intended for human consumption. Although some of the disclosure herein may refer to pizza as a readily comprehensible and easily understood example of one illustrative embodiment, one of ordinary skill in the culinary arts and food preparation will readily appreciate the broad applicability of the systems, methods, and apparatuses described herein across any number of prepared food products.
  • appliance refers to any device, system, or combination of systems and devices useful in the preparation of a food product which may include ingredient distribution devices, choppers, peelers, cooking units for the heating of food products, cooling units, mixers, blenders, etc. and preparation processes may also include the partial or complete preparation of one or more food products. Further, the appliance may be able to control one or more appliance operational parameters, including, in any combination of and without limitation, temperature, pressure, humidity, air flow (to decrease preparation time), speed, time of start and end operation, pre-heat, and the like.
  • engine means a tangible device, circuit, component, or arrangement thereof, implemented using hardware, such as by an application specific integrated circuit (ASIC) or field-programmable gate array (FPGA), for example, or as a combination of hardware and software, such as by a processor-based computing platform and a set of program instructions that transform the computing platform into a special- purpose device to implement the particular functionality.
  • ASIC application specific integrated circuit
  • FPGA field-programmable gate array
  • An engine may also be implemented as a combination of the two, with certain functions facilitated by hardware alone, and other functions facilitated by a combination of hardware and software.
  • the software may reside in executable or non-executable form on a tangible machine-readable storage medium.
  • Software residing in non-executable form may be compiled, translated, or otherwise converted to an executable form prior to, or during, runtime.
  • the software when executed by the underlying hardware of the engine, causes the hardware to perform the specified operations.
  • an engine is physically constructed, or specifically configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a specified manner or to perform part or all of any operations described herein in connection with that engine.
  • each of the engines may be instantiated at different moments in time.
  • the engines comprise a general-purpose hardware processor core configured using software
  • the general-purpose hardware processor core may be configured as respective different engines at different times.
  • Software may accordingly configure a hardware processor core, for example, to constitute a particular engine at one instance of time and to constitute a different engine at a different instance of time.
  • at least a portion, and in some cases, all, of an engine may be executed on the processor(s) of one or more computers. Accordingly, each engine may be realized in a variety of suitable configurations and should generally not be limited to any particular
  • an engine may itself be composed of more than one sub-engines, each of which may be regarded as an engine in its own right.
  • an engine may itself be composed of more than one sub-engines, each of which may be regarded as an engine in its own right.
  • each of the various engines corresponds to a defined functionality; however, it should be understood that in other contemplated embodiments, each functionality may be distributed to more than one engine. Likewise, in other contemplated embodiments, multiple defined functionalities may be implemented by a single engine that performs those multiple functions, possibly alongside other functions, or distributed differently among a set of engines than specifically illustrated in the examples herein.
  • FIG. 1 a block diagram illustrates aspects of one example food preparation and delivery system 100 for enabling the management food orders, food preparation operations, and delivery operations in coordination with customer activities.
  • the system 100 enables techniques described in this application wherein timing of a customer activity provides a basis for determining a delivery target time, instructing food preparation and delivery operations to meet the target time, as well as modifying the target time, preparation, and delivery in response to changes in the activity timing.
  • the example system 100 includes a coordination server 110, an order entry subsystem 120, production subsystem 130, a distribution subsystem 140, and an activity service subsystem 150.
  • the coordination server 110 provides coordination functionality among the order entry subsystem 120, production subsystem 130, distribution subsystem 140, and activity service subsystem 150.
  • Components of the coordination server 1 10 include, for example, a processor 11 1, memory 112, activity coordination engine 116, control module 114, and data store 118.
  • the exemplary embodiment of FIG. 1 illustrates the order entry subsystem 120 as including an order engine 122 communicatively coupled to the coordination server 110.
  • the order entry subsystem 120 enables food orders to be placed by or for consumers using one or more user devices 124.
  • the order engine 122 collects and manages food order information representing the food orders and communicates such information to the coordination server 110 via a network 170.
  • the user device 124 may any variety of devices capable of serving as an input/output (I/O) source.
  • the user device 124 may have display, communication, and processing capabilities, such as, but not limited to, a computer, laptop, smart phone, mobile phone, tablet, game console, smart TV, kiosk, etc.
  • the user device 124 can execute a client application such as a web browser or special purpose application to enable interaction with the order entry subsystem 120.
  • the order entry subsystem 120 may include a national or regional center capable of receiving orders by telephone or third-party client application (e.g., UberEatsTM).
  • the order engine 122 collects food order information representing each food order, such information including for example a customer identifier, customer location, desired food item, address of a delivery location, desired time of delivery, an associated customer activity, preparation information, delivery information, and the like.
  • the order entry subsystem 120 or order engine 122 may also receive and process payment information.
  • the coordination server 110 sends certain information, such as food order status or an offer, to the order engine 122 for presentation to the consumer on the user device 124.
  • the production subsystem 130 is capable of preparing food items of the food orders.
  • the production subsystem 130 includes at least one preparation engine 132 communicatively coupled to the coordination server via a network 162.
  • the preparation engine 132 is also communicatively coupled to one or more food preparation facilities, for example a stationary preparation facility 134 such as a stationary dark kitchen, or a mobile preparation facility 136, which may a mobile-but- stationary kitchen or a mobile kitchen that can also function as a delivery vehicle.
  • Each of the preparation facilities 134, 136 includes appliances for preparing the food, and in some exemplary embodiments the appliances may perform some or all food preparation operations in an automated manner.
  • the preparation engine 132 may determine a schedule of food preparation process steps, timing, and appliance operational parameters in accordance with predetermined processes for preparation of a particular food item of the food order at a selected one of the preparation facilities 134, 136. Based on the food order information and predetermined processes, the preparation engine 132 may control one or more appliance operation parameters including, without limitation, power, temperature, speed, humidity, air flow, speed, status (e.g., on, off, pre-warm) etc., either individually or via the power distribution and communications buses, based on the preparation information.
  • some of the food preparation operations are performed at one of the preparation facilities, such as the stationary preparation facility 134, and other food preparation operations are performed at a different preparation facility, such as the mobile preparation facility 136.
  • a pizza may be assembled by initial operations performed at the stationary facility 134, after which the pizza is transferred to the mobile operation facility 136 where cooking, slicing, and packaging operations are performed.
  • the production subsystem 130 may autonomously prepare at least a portion of the food products at the direction of the preparation engine 132 based on the initial order information, food preparation information, customer activity information, and/or route information, and updates to any one or more of the aforementioned.
  • the preparation engine 132 can communicate with the production subsystem 130 to control some or all appliance operational parameters in some or all of the appliances.
  • a preparation engine 132 communicatively coupled to the preparation subsystem 106 can provide some or all of the adjustments to appliance operational parameters within the appliances.
  • appliance operational parameters may be determined at least in part by the preparation engine 132 based on customer activity information from the customer activity system 130, and any other appropriate information. Appliance operational parameters within each of the appliances are controlled based on a target time in coordination with the customer activity.
  • the distribution subsystem 140 enables delivery of food items prepared by the production subsystem 130.
  • the distribution subsystem 140 includes a routing engine 142 that is communicatively coupled to the coordination server 110 via network 162 and communicatively coupled to one or more delivery vehicles 144.
  • the routing engine 142 is capable of monitoring vehicle location, availability, delivery routes, and food order delivery status with respect to each the delivery vehicles 144, managing logistics for delivering food orders to delivery locations using the delivery vehicles 144.
  • the routing engine 142 is operable to determine some or all of the delivery routing instructions, including static or dynamic logistics information, such as delivery itinerary preparation, scheduling,
  • the delivery vehicle 144 can also be a mobile preparation facility 136.
  • the activity service subsystem 150 provides or manages one or more activity that can be utilized by customers.
  • the activity service subsystem 150 in some embodiments includes an activity service control device 152 that is communicatively coupled to the coordination server 110 via a network 164.
  • the activity service subsystem 150 provides one or more services affecting, or affected by, an activity of a customer.
  • any customer activity for which the start or end time is determinable, or at least possible to estimate, may be supported by suitable embodiments.
  • Supported activities may be represented as a machine- storable and communicable set of data.
  • some example embodiments detailed below are described in the context of electric- vehicle charging services. It is to be appreciated, that in view of the description any appropriate customer activity may be coordinated with food preparation in a similar to appropriate manner.
  • the coordination server 110 enables food production and distribution operations to be managed coordination with a customer activity.
  • the coordination server 1 10 includes a control module 1 14 that coordinates functionality among the order entry subsystem 120, production subsystem 130, distribution subsystem 140, and activity service subsystem 150.
  • the coordination server 110 receives data 170 containing food order information from the order entry subsystem 120 over the network 160.
  • the coordination server 110 also accesses or receives data 172 containing customer activity information about a customer activity.
  • the coordination server 110 receives the customer activity information from the activity service control device 152.
  • the activity coordination engine 116 determines whether the customer activity is associated with the food order. Such a determination may be made, for example, based on the customer specifying the association between the food order and the activity, by identifying a commonality of information present in both the food order information and the customer activity information, or by customer verification of the association in response to an inquiry. If the activity coordination engine 116 determines the customer activity is associated with the food order, the activity coordination engine 116 determines a delivery target time in relation to the start time or end time of the activity. In some embodiments, the target time may be the start time. In other embodiments, the target time may be the end time. In yet other embodiments, an offset is applied either before or after the start time or the end time, such that the target time is an offset period either before or after the activity start time or end time.
  • the control module 114 applies the target time to the food order information and requests or instructs the preparation engine 132 and routing engine 142 to perform operations such that the food items of the food order are prepared and/or delivered by the production subsystem 130 and distribution subsystem 140 at or near the delivery target time.
  • the coordination server 1 10 sends a notification to the order entry subsystem 120 to enable the target time to be displayed on the user device that originated the order.
  • the coordination server 110 can group multiple orders sharing a common location and common target times, or at least target times that are within a short time window. Managing such a multiple orders as a group achieves efficiencies such as enabling delivery in a single delivery vehicle on a single delivery run.
  • FIGS. 4A-F show timelines that illustrate examples of the target time relative to an activity, showing estimated time blocks for food preparation operations and delivery operations being coordinated to occur so as to meet the delivery target time.
  • FIG. 4A illustrates an example wherein the target time is at the start of the activity.
  • the estimated time block for preparation operations has a preparation start time and preparation end time.
  • the estimated time block for delivery operations has a delivery start time and delivery end time.
  • the delivery start time coincides with the preparation end time.
  • the preparation time and delivery are scheduled to occur serially such that the delivery end time is the target time.
  • FIG. 4B shows an example wherein the target time is determined to be the activity end time.
  • preparation and delivery operations are scheduled and coordinated such that the delivery end time is at the activity end time, namely the target time.
  • FIGS. 4C-F show scenarios where the target time is determined by applying an offset time period to the activity timing.
  • FIG. 4C illustrates an example wherein the delivery target time is an offset period before the activity end time.
  • FIG. 4D illustrates a timeline wherein the delivery target time is scheduled to occur an offset period before the activity start time.
  • FIG. 4E illustrates a timeline wherein the delivery target time is scheduled to occur an offset period after the activity end time.
  • FIG. 4F illustrates a timeline wherein the delivery target time is an offset period after the activity start time.
  • time blocks representing preparation and delivery may overlap.
  • the delivery operation (food item ready for pickup) would take zero time, in which case the preparation end time could be the delivery target time.
  • the activity coordination does not determine a target time based on activity timing. Instead, the control module 114 instructs the preparation engine 132 and routing engine 142 to perform operations such that the production subsystem 130 and distribution subsystem 140 prepare and/or deliver food items to the customer according to the food order information.
  • the coordination engine 1 10 may receive updated customer activity information, from time to time, from the activity subsystem 150.
  • the activity coordination engine 1 16 may determine a modified target time and as necessary provide updated instructions to the production subsystem, adjusted appliance operational parameters, and/or adjusted routing information to one or both of the production subsystem 130 and distribution subsystem 140.
  • functionality of the activity coordination engine 116 can relieve a consumer from the burden of specifying certain necessary scheduling details in connection with the food order or trying to update delivery location or other activity including unexpected delays, updated routing information, early flight arrival, etc.
  • the activity coordination engine 116 can autonomously adjust the food- item production and/or delivery processes (delivery vehicle selection, route, etc.) and associated times illustrated in Figures 4A-4F, in response to intentional or unintended changes, if any, in the customer’s activity information.
  • FIGS. 5A-C show a series of timelines illustrating an example of updated activity timing and resulting modification target time, preparation operations and delivery operations. More particularly, FIG. 5A shows a target time determined to coincide with an activity start time, wherein preparation and delivery are scheduled in coordination, so the delivery end time coincides with the target time. FIG. 5B shows updated activity timing resulting in a delay of the activity by a delay period 501. In response to the updated activity timing, the activity coordination engine 116 (FIG. 1 ) determines a modified target time. In FIG. 5C, the preparation operations and delivery operations are modified so as meet the modified target time. The illustrated example of FIG.
  • the preparation and delivery operations modified by simply adjusting the start and end times later by the amount of the delay 501 , however, the modified target time could raise new factors requiring more complex modifications.
  • the routing engine 142 may indicate estimated lighter/heavier traffic during the modified delivery time window, the originally assigned delivery vehicle may no longer be available, and the preparation engine 132 may determine that more or less preparation time would be required because of changes in appliance availability, ingredient inventory, grouping of orders, etc.
  • the control module 1 14 coordinates among many factors to cause the preparation engine 132 and routing engine 142 to modify operations as necessary to meet the modified target time.
  • the coordination server 110 communicates the food order information and customer activity information to the preparation engine 132 of the production subsystem 130.
  • the preparation engine 132 of the production subsystem 130 based on the order information, activity information, and preparation information, various ingredients and food products are prepared (ground, combined, assembled, cooked, cooled, etc.) to provide a food product per the order information received from the coordination server 110
  • the preparation engine 132 may determine a schedule of food preparation process steps, timing, and appliance operational parameters in accordance with pre- determined processes for preparation of a particular food item of the food order. Based on the order information and preparation information, the preparation engine 132 may control one or more appliance operation parameters including, without limitation, power, temperature, speed, humidity, air flow, status (on, off, pre-warm, etc.) etc., either individually or via the power distribution and communications buses, based on the preparation information.
  • the distribution subsystem 140 may monitor routing information of one or more customer vehicles (e.g., consumer and delivery vehicle) may include any one or more of vehicle identification, location, status (scheduled, busy, not busy, etc.), fuel/charge status, route to pick up/delivery point, etc.
  • Geolocation information may be determined through the use of time-of-flight triangulation, determined using one or more global positioning technologies, for example the Global Positioning System (GPS) or similar.
  • GPS Global Positioning System
  • the coordination server 110, the routing engine 142 may use the location information to statically or dynamically create or update delivery itinerary information and estimated time of the target time, which may be based on the arrival of the customer (e.g., delivery vehicle or end consumer) at the production system and/or customer activity information.
  • the customer activity information may include one or more of delivery vehicles’ arrival at charging station, a vehicle charging or fueling information of the delivery vehicle (status, percent charged, time to charge, etc.), which may be provided to or through the routing engine for consideration by the activity coordination engine.
  • the preparation engine 132 may use such information to control or otherwise adjust preparation of the food product including adjusting the appliance operational conditions in some or all of the appliances based on updated target time.
  • data indicative of updated target time may be sooner or later than the prior target time and the food preparation process and/or routing information may need to be changed (accelerated, delayed, or even wholly changed) by the routing engine 142 and/or the preparation engine 132.
  • the routing engine may determine that another delivery vehicle, based on customer activity information, will be appropriately ready to accept the order pick up for delivery to the consumer.
  • the activity coordination engine 1 16 modifies the target time
  • the modified target time is passed to the control module 114, in an embodiment, the control module 114 causes the preparation engine 132 and routing engine 142 to assess alternative operations. As coordinated by the control module 1 14, complementary modified preparation operations and modified delivery operations can be authorized.
  • the target time may be determined based on
  • preparation time time to prepare the food item in the production subsystem
  • routing information which may include transit/delivery by the distribution subsystem 140, and may be further coordinated with customer activity information from the activity coordination engine 116.
  • Preparation information may take into account factors such as the timing, order, complexity of preparation, availability of appropriate appliances, other orders in the order system, grouping of orders, and the time required for the desired or defined preparation information (e.g., process, schedule, and appliance operation parameters) associated with the ordered food item.
  • Routing information may take into account location of the customer (consume and/or delivery), road congestion, traffic, time of day, weather, and other factors.
  • the target time may indicate a time a prepared food item is provided to a consumer. If the food item is delivered to the consumer, the target time is the time when the food item is delivered. In some cases, a consumer wishes to pick up the food item.
  • making a food item available for picking up at a pick-up location is a form of delivery, in which case the target time is when the food should be available at the pick-up (delivery) location.
  • the target time may indicate the time that the food order is to be prepared (and possibly delivered) and may be based the food preparation time, activity time, offset period, and in some cases delivery time. For example, if the consumer delivery location is proximate the production system, the target time may be set to be proximate to the activity time, such as upon arrival of the customer at the customer activity location, start/completion/wait time (intermission) of the customer activity. As appropriate, the prepared food item provided by the production subsystem 130 can be transferred from the production subsystem 130 to the distribution subsystem 140 for further delivery in the next leg to the consumer.
  • the target time may be set to one or more customer activity times, including the customer delivery vehicle activity time and/or the consuming customer activity time, and may be proximate to or upon arrival of the customer delivery vehicle at the production subsystem location, start/completion of the customer delivery vehicle activity (e.g., vehicle charging).
  • the food preparation and delivery vehicle customer activity may additionally be coordinated with the ultimate consuming customer activity as well.
  • the target time may include an offset period from the activity time to have the target time be proximate prior to or after the activity time.
  • the target time may be determined by the activity coordination engine 1 16 based on food preparation time, off set time, customer activity time, and routing information of the customer(s).
  • the activity coordination engine 116 may determine food preparation
  • information including any one or more of an optimal schedule of food preparation steps and timing, estimated target times (including for example, time to prepare product for pick up at production location, time to deliver to consumer, etc.), and available preparation times for each appliance, arrival of delivery vehicle to deliver food product to consumer (distribution subsystem 140), and coordination with the activity coordination engine 116.
  • the coordination server 1 10 may be a portion of or may be communicatively coupled, via network 162, to an inventory control or enterprise business system such that the inventory of food ingredients and other items is maintained at one or more defined levels within the production subsystem 130.
  • the system 100 may reduce the time required for delivery of prepared food items to consumer destinations by partially preparing food items at one of the preparation facilities of the production subsystem 130 and completing the preparation of food items at another preparation facility or second subsystem 130.
  • the preparation of food items can be completed using individually controllable appliances on a delivery vehicle or stationary mobile or dark kitchen instead of a more conventional stationary appliance such as a range or oven at a conventional main facility.
  • the coordination server 1 10 or the preparation engine 132 can establish, control, or adjust preparation conditions in each of the appliances based at least in part on the available preparation time and the activity information. Such preparation conditions may be determined by the coordination server 110, the preparation engine 132, or some combination thereof, such that food items are advantageously provided at the modified target location and at the modified target time. In at least some instances, real time updating, for example to reflect traffic conditions between the current location of the delivery vehicle or transportation status (e.g., flightview.com,
  • wsdot.com/ferries/vesselwatch, and the like may cause the preparation engine 132 or routing engine 142 to autonomously dynamically update the preparation information (schedule, timing, appliance operational parameter and/or routing information (delivery route, schedule, selection of delivery vehicle, delivery location, etc.). Preparation processes and appliance operational parameters in each of the appliances can be adjusted throughout the preparation process to reflect the newly estimated target times using the dynamically updated process information and customer activity information.
  • the routing engine 142 provides the updated delivery itinerary and the recalculated available preparation times to the preparation engine 132.
  • data indicative of the location of a delivery vehicle the estimated delivery time may be provided to the consumer via SMS messaging, web portal access, or any other means of communication
  • the appliance containing the respective food item is turned off and the food item is transferred to a package or transport container such as a box, carton, bag, or similar device for transport to the consumer.
  • a package or transport container such as a box, carton, bag, or similar device for transport to the consumer.
  • packages or transport containers may be readied or pre-staged to accept food items from each of the appliances.
  • the routing information including the delivery schedule may be dynamically updated or adjusted to reflect the latest traffic, road conditions, road closures, weather, transportation rerouting, etc.
  • Such routing may be dynamically updated or adjusted to reflect the latest traffic, road conditions, road closures, weather, transportation rerouting, etc.
  • the coordination server 1 10 or routing engine 142 can provide up-to-the-minute routing instructions and delivery itineraries.
  • the coordination server 110 or preparation engines 1 14 can dynamically adjust the preparation information to be based on the updated target time for the associated food order, including appliance operational parameters within appliances to reflect the available preparation time for each of the respective appliances, starting preparation processes at a different time, or even cancelling the preparation process at a first production subsystem and starting food preparation processes at a second production subsystem, and the like.
  • the coordination server 110 can dynamically load balance the delivery schedules for at least two of the delivery vehicles. Such dynamic load balancing may for example, result in the delivery of a food item on a second delivery vehicle to a consumer delivery destination originally scheduled for delivery by a fist delivery vehicle. Such dynamic load balancing mitigates the impact of unforeseen, unexpected, or unavoidable delays (e.g., accident, congestion, etc.) in the travel of delivery vehicle and/or in the customer activity. Such dynamic load balancing may be autonomously performed by the coordination server 110, the preparation engine 132, the routing engine 142, or combinations thereof.
  • Each of the networks 160, 162, 164 can be a wired network, a wireless network, or any combination thereof.
  • the network 160, 162, 164 can include a local area network, a wide area network, a worldwide network, a private network, a corporate intranet, a worldwide public network such as the Internet, or any combination thereof.
  • all or a portion of the coordination server 1 10 can be located remotely from the production subsystem 130, for example in a corporate server, or in a network connected or “cloud” based server.
  • coordination server 110 order engine 122, preparation engine 132, routing engine 142, and activity service subsystem 152 have been described in connection with FIG. 1 as separate components that may be remote from each other, it will be recognized that any or all of these components, their subcomponents or their functions may be combined on a common computing platform.
  • FIG. 2 a food preparation and distribution system 200 is illustrated wherein customer activity service subsystems 150A, 150B provide vehicle-charging services.
  • customer activity service subsystems 150A, 150B provide vehicle-charging services.
  • FIG. 2 and the accompanying description disclose a coordination of food preparation with a customer activity of vehicle charging, it is to be appreciated that any other appropriate customer activity may be implemented in a similar or appropriate manner.
  • FIG. 2 illustrates the coordination server 110 implemented as a central or cloud server, which, which may include one or more processor-enabled devices (such as computing platform 900 of FIG. 9). Also shown in FIG. 2 is a mobile preparation facility 136 in a mobile-but- stationary state.
  • preparation engine 132 and routing engine 142 are at the mobile preparation facility 136, implemented remotely from the coordination server 110 on separate or combined computing platforms (such as computing platform 900 of FIG. 9).
  • the coordination server 1 10 is communicatively coupled to routing engine 142 and preparation engine 132 such as by a wireless data network.
  • routing engine 142 and preparation engine 132 may be functionally implemented on the same processor-enabled device as the coordination server 1 10.
  • either or both of the preparation engine or routing engine 142 may be implemented on one or more computing platforms located at one or more of the stationary preparation facilities 134, one or more of the mobile preparation facilities 136, and/or one or more delivery vehicles 144.
  • the mobile preparation facility 136 is equipped to include an activity service subsystem 150A that provides a vehicle charging service comprising a one or more charging stations 254, and an activity service control device 152 A that controls the operation of the one or more charging stations 354.
  • the charging stations 254 may be operated by a generator or power system used to supply power to the mobile production facility 136.
  • the vehicle-charging activity service subsystem 150A may be operated as part of same business operating the preparation facility or alternatively operated by an affiliate or third party.
  • an activity service subsystem 150B that stands separately or independently from the preparation facility 136.
  • the activity service subsystem 150B includes an activity service control device 152B that controls the operation of one or more charging stations 254, each of which may be assigned a unique port identifier.
  • the charging stations 254 are operable to provide sufficient power, which may be provided at a variable voltage, to charge one or more vehicles 258. Operators of the vehicles 258 engage in the customer activity of vehicle charging by at the activity service subsystem 130A or 130B, connecting the vehicle to one of the ports or charging stations 254.
  • Each of the activity service control devices 152A, 152B includes a computing platform and is constructed, programmed, or otherwise configured to individually control the operation of each charging station 254, including carrying out electrical measurements, setting the charging voltage, setting current limits, starting and stopping the delivery of charging energy, etc.
  • the activity service control device 152A, 152B can analyze the vehicle battery and charging factors to determine an estimated battery charge time, or to receive such data from a computer on board the vehicle 258 being charged.
  • the vehicle 258 may be any form of electric or hybrid vehicle having a battery that can be recharged, such as a car, truck, van, scooter, electric bicycle, drone, autonomous delivery robot, etc.
  • the vehicle 258 operated by a customer or consumer of a food order, and in addition, the vehicle may be a delivery vehicle 144 serving the distribution subsystem 140 (FIG. 1).
  • Each vehicle 258 engages in a charging session, referred to herein as a charging- service instance.
  • the activity service control device 152A, 152B controls the charging session.
  • the data 172 containing customer activity information may be formatted as a service-instance data structure 300.
  • the service-instance data structure 300 includes fields of information types which, if available, may be useful to determining if the customer activity is associated with the food order and determining the target time, the fields including one or more of an instance id 302 A, customer ID / account 302B, location 302C, specified target time 302D, start time 302E, end time 302F, charging session duration 302G, customer options 302H, vehicle status 3021, customer inputs 302J, charging port 302K, vehicle type 302L, battery full charge level 302M, estimated time to charge 302N determined based on the capacity and present level of charge in the battery of the vehicle being charged, operational parameters and status 3020, charging station open ports 302P, and user preferences 302Q (e.g., cost, time, percent charge, etc.) and any other appropriate parameters, location and environment of the charging station, etc.
  • an instance id 302 A customer ID / account 302B, location 302C, specified target time 302D, start time 302E,
  • the charging- service instance and/or the service- instance data structure 300 may be generated by various mechanisms according to different embodiments or use cases.
  • the charging- service instance may be generated by the activity coordination engine 116 of the coordination server 110 (FIG. 1 ), by the activity service control device 150 (FIG. 1) 152A, 152B (FIG. 2), or by another source, such as the order entry subsystem 120 (FIG. 1). Regardless of the source of its instantiation, the charging- service instance including the target time is accessible by the activity coordination engine 116 (FIG. 1).
  • the customer activity information represents one or more location, start or end times, durations, or estimates thereof, of one or more activities.
  • the customer activity may involve the arrival of the vehicle 258 at a charging station 254, charging the vehicle, and leaving upon charging completion.
  • the activity start time may be the arrival at the station or connection to a charging port.
  • the end time may be an estimated time of charge completion, a predetermined charge end time, when the vehicle will depart the station or disconnect from the charging port.
  • the activity timing information may be determined from customer activity information using a variety of suitable techniques. For instance, if an estimated time to charge completion defines the end time, the battery type and capacity may be received from a communications device local to the battery of a given vehicle 258. In a related embodiment, the present level of charge may be determined by electrical measurement, including open-circuit voltage of the battery, voltage of the battery under load conditions, rate of change of the battery voltage as a function of charging energy delivered, charging current delivered at a set charging voltage, and the like, in combination with the computational application of time-to-charge determination criteria. In some implementations, a start time for a charging activity may be known in advance, for example, if charging session is ordered before the vehicle arrives and an estimated arrival time/ start time is determined through GPS tracking, or the start time may be a time scheduled in advance by the customer.
  • the target time is determined by the activity coordination engine 1 16 as specified by customer input, or alternatively if no specific customer input is available as to target time, the activity coordination engine 1 16 may be programmed to set a target time as to meet assumed customer expectations for the particular scenario.
  • the coordination server 110 includes a data store 118 containing criteria associated with predetermined target time inferences.
  • the activity coordination engine 114 maps customer activity information against the predetermined criteria to yield inferences dictating whether a delivery target time is to be related the activity start time or activity end time. Further, in an embodiment, the inferences may dictate whether an offset period is to be applied to the target time, the amount of the offset period, and whether the offset is applied before or after the activity start time or activity end time.
  • the activity is vehicle charging
  • the target time may be set as the start time of the charging activity. That customer may instead desire to take the food to another location, in which case the target time may be a short offset period before the end time, such as 10 minutes, so the food does not sit long before customer leaves.
  • the activity coordination engine 116 may assume the target time should be at the charging session end time or an offset period before the end time to minimize time the food items sit before being delivered.
  • the customer be a delivery driver who desires to exchange their vehicle for a charged vehicle (e.g., scooter or bike exchange), wherein the target time is the vehicle exchange, allowing the driver to quickly pick up the food order from the preparation facility 136 on a next leg of delivery to the consumer location.
  • a charged vehicle e.g., scooter or bike exchange
  • the target time is the vehicle exchange, allowing the driver to quickly pick up the food order from the preparation facility 136 on a next leg of delivery to the consumer location.
  • Other situations may require different determinations. For example, where the activity is a flight from an airport and the food order is ordered for delivery to the airport gate waiting area, and the activity start time may be defined as the flight boarding time, unless otherwise specified the target time may be determined as an offset period (e.g., 40 minutes) prior to the flight boarding time (start time) so that the customer has time to comfortably consume the food before boarding.
  • an offset period e.g. 40 minutes
  • the customer might also want to receive food delivered shortly after a flight arrives at a destination, and the food may be delivered, for example to a baggage claim area, in which the target time would desirably be set an offset period after flight arrival (activity end time), with the offset allowing sufficient time to deboard the plane and walk to the baggage claim area (e.g., 15 min.).
  • the target time would desirably be set an offset period after flight arrival (activity end time), with the offset allowing sufficient time to deboard the plane and walk to the baggage claim area (e.g., 15 min.).
  • the start time may be defined at the check-in, and unless otherwise specified the target time may be determined as an offset period (e.g., 15 min.) after the start time so as to allow time for the customer to get settled in their hotel room before the food order is delivered to their room.
  • the activity coordination engine 116 can be programmed and stored in the data store 118 with corresponding inferences to determine the target time based on activity timing so as to provide a pleasant experience as expected by the customer.
  • the activity service control device 152 (FIG. 1), 152A, B (FIG. 2) automatically monitors the activity and generates updates of customer activity information (e.g., expected time to charge, flight arrival/departure status) and send updated activity information to the coordination server 1 10 for the production system to provide prepared food at the new updated target location/time.
  • customer activity information e.g., expected time to charge, flight arrival/departure status
  • the coordination server may stop any on-going activity for the order at a first production system associated with the first airport, and initiate production at a second production system at a second airport.
  • the customer activity information be updated in response to the occurrence of certain events, periodically, or from time to time, the charging-service instance may be updated to an updated target time.
  • the charging activity service control device 152 may initiate an update of the charging- service instance by sending a message with the pertinent updated information to the coordination 110.
  • An update to the target time may be based on a new determined target time which may be adjusted based on new customer activity information including charging parameters (e.g., available current/voltage, connection status, updated vehicle battery status, vehicle charge state, etc.), initial or status of hookup of the customer’s vehicle to a charging station 254, reaching a certain defined charging milestone, such as 75% charged, a requested schedule change by the consumer made by the consumer via the user interface, or the like.
  • charging parameters e.g., available current/voltage, connection status, updated vehicle battery status, vehicle charge state, etc.
  • initial or status of hookup of the customer’s vehicle to a charging station 254 reaching a certain defined charging milestone, such as 75% charged, a
  • the activity coordination engine 116 may determine whether the updated information is sufficient to justify changing the food- preparation information.
  • the activity coordination engine 116 may apply a threshold test that will avoid modifying food preparation operations when a change in activity is insubstantial, but cause modifying the food preparation operations when a change in the activity crosses a threshold.
  • a threshold may be based on a percent change in estimated charge time, percent change in target time, or a percentage of food preparation completion. If the threshold is exceeded, the activity coordination engine 116 may cause the control module 1 16 to communicate modified target time information to the routing engine 142 and/or preparation engine 132 to adjust the preparation operations and/or delivery operations.
  • the activity subsystems 150A, 150B may offer a vehicle-swap service to exchange a vehicle, such as a rented scooter or bicycle with a depleted battery, for a vehicle with a charged battery.
  • a vehicle such as a rented scooter or bicycle with a depleted battery
  • spare vehicle 258A may be provided and tracked as a part of the vehicle- swap inventory.
  • the traded- in vehicle with depleted battery may be charged and added to the vehicle-swap inventory when the charging is complete.
  • activity coordination engine 116 includes security provisions for controlling access from third-party systems such as charging activity service control device 152A, 152B.
  • third-party systems such as charging activity service control device 152A, 152B.
  • cryptographic techniques such as digital certificates, symmetric or asymmetric keys, one-time-use credentials, block chain, and the like, without limitation, may be employed to ensure the authenticity of authorized third-party systems and mitigate or obviate attacks.
  • Activity coordination engine 1 16 may provide an application programming interface (API) that authorized and validated third- party systems can access to exchange pertinent information regarding charging operations.
  • API application programming interface
  • the coordination server 1 10 further communicates relevant customer activity information and order information to the routing engine 142 and/or preparation engine 132. These communications may include the target time for the ordered food items once it becomes sufficiently known or possible to estimate. For example, if the food preparation is to be timed to the designated arrival time of the customer to the vehicle- charging substation 150A, 150B, then the delivery time is known or may be determined and updated based on at least the location of the customer and route information including routing, traffic, weather, construction, and other appropriate information.
  • the target time may remain unknown at the time of order placement and acceptance and, the activity coordination engine 116 may postpone sending at least some of the relevant food-preparation information to the preparation engine 132 until the customer arrives at the charging station and electrical measurements are made to estimate the charging time.
  • other food-preparation and logistical information may still be supplied, such as identification of the ordered food item, which may be useful for materials provisioning purposes.
  • Similar embodiments may enable delivery upon the departure time from the vehicle-charging activity service subsystem 150A, 150B (e.g., based on an estimate of the charge completion time, which may be determined and/or updated after the charging process has started and the state of the vehicle’s battery is determined), a time defined according to a specified offset period from either the arrival or the departure time, or at a consumer-specified time of day.
  • the consumer may specify a time limit at which the charging process is to be terminated irrespective of whether the battery is fully charged, such that the charging process completion time is determined as the earlier of either the time of actual charging completion to full battery capacity, or the specified time limit.
  • a customer activity and its association with a food order can be inferred based on various predetermined criteria being met. For example, where the routing engine 132 has assigned a particular delivery vehicle and driver to deliver a particular food order, customer activity information from the activity service control device 152 may indicate that the delivery vehicle is charging. The activity service control device 152 can infer that the activity is associated with the food order.
  • activity coordination engine 116 receives revised estimates of the charging completion time and provides this information to preparation engine 132 and/or routing engine 142 to adjust the food- preparation and routing scheduling accordingly.
  • the activity coordination engine 1 16 can indicate the estimated target time to routing engine 142 and/or preparation engine 132, which in turn can schedule production and delivery of the ordered food item such that the food item is delivered at or near the target time.
  • the charging service may be terminated at the time when the food order is delivered to the consumer.
  • the customer may specify a desired target time for food delivery time or charging completion as part of the food order placement or charging service initiation, and the activity coordination engine 116 can schedule the charging completion time and the food delivery time to coincide at the consumer- specified target time.
  • the target time may include an offset period to ensure preparation of the food product at a time prior to charging completion, a time after arrival, etc. If the target time is a pick up time by a customer delivery driver, the delivery time may include an estimated route time to deliver the product to the final consumer.
  • the vehicle-charging activity service subsystem 150A, 150B may be operated independently from any food order. However, various advantages may be realized when the charging activity service control device 152A, 152B is coordinated with food orders via activity coordination engine 116.
  • the activity coordination engine 116 can associate the charging-service instance with the food order for the customer, if any, that is being handled or queued by the preparation engine 132 or the routing engine 142, based on commonality of customer account between the charging-service instance and the food order, a specific customer indication of association between customer activity
  • the order entry subsystem that sends food order information to the coordination server 1 10 may also facilitate reserving and purchasing vehicle-charging services at on-board or participating third-party vehicle- charging systems the activity service subsystems 150A, 150B.
  • the charging service may be selected, scheduled, and purchased together with a food order.
  • food orders and activity services purchased together may be
  • FIGS. 6A-B illustrate examples of user interfaces that present an offer for entering a food order in association with a vehicle charging activity.
  • FIG. 6 A shows a graphical user interface 602 displayed on a user device 124.
  • a customer has already ordered a vehicle-charging session to begin when the customer’s vehicle arrives at the charging location, as indicated in a first portion 604 of the graphical user interface 602.
  • An offer is presented to the customer in a second portion 606 of the graphical user interface 602, inviting the customer to place a food order to be delivered upon arrival.
  • the target time in the example of FIG. 6A may be the arrival time at the charging activity substation 152A (FIG. 2).
  • FIG. 6B illustrates a graphical user interface 612 displayed on a user device 124.
  • a first portion 614 of the graphical user interface 612 indicates that a customer has connected their vehicle to a charging station and has begun charging.
  • the first portion 614 of the graphical user interface further indicates an estimated charge time 616.
  • An offer is presented in a second portion 618 of the graphical user interface 618 inviting the customer to place a food order to be delivered during charging. If the customer places the food order, the target time may be determined to be an offset period before the charge completion time, so the customer has time to enjoy consuming the food while waiting. Alternatively, a different option may be presented seeking input from the customer as to whether the food should be delivered shortly before completion to take to another location.
  • the coordination server 1 10 includes a computing platform 700 with a processor, a memory in communication with the processor, the memory having computer-readable instructions 702 stored thereon that when executed, transform the computing platform 700 into a special-purpose machine to carry out a process that includes operations 712-744 as follows.
  • the food order information is received about a food order, and customer activity information in connection with a customer activity are accessed.
  • the food order information may be provided, for example directly from order entry subsystem 120.
  • the order may include an ID associated with a customer account, usually belonging to the consumer, order identifier, item identifier, etc.
  • the customer activity information may be accessed, for example, from the activity service control device 152.
  • the coordination server 110 determines if the customer activity is associated with the food order, associating the order identifier with an active or queued customer activity, such as a vehicle charging activity.
  • the existence of the active or queued customer activity may be indicated by the presence of a customer activity charging-service instance associated with the same user account ID, food order identifier, delivery vehicle identifier, or any other appropriate associated identifier for example, which may be provided by the consumer of the food product or matched by the preparation engine or routing engine with a customer delivery driver selected to deliver the food product to the consumer in a next leg of delivery.
  • the association may be made by matching and assigning the customer delivery driver identifier associated with an order and/or customer activity by matching the food item preparation time with an activity time of a queued or active customer activity, such as charging of a delivery vehicle. Determining a delivery vehicle for the next leg of delivery to the consumer may be based on order information, delivery vehicle information, customer activity information, and any other appropriate
  • an inquiry is made as to whether the target time is already specified and fixed. This may include analyzing the customer activity information to for such a target time. If operation 715 determines the target time is specified and fixed, the process branches to operation 726, where the food target time and, in the case of activity coordination engine 116, the location for the delivery, are sent to the routing engine 142. If not, the target time is to be determined based on the activity, the process moving on to operation 718. In an embodiment, operation 718 creates or retrieves customer activity information in the form of a charging-service instance.
  • the charging- service instance may be created by the activity coordination engine 1 16 in situations where the activity service controller, respectively, does not create it; whereas the activity service instance may be retrieved by the activity coordination engine 116 when it already exists.
  • the activity service instance may not exist in the example of a consumer arriving at a transportation station (airport, train station, dock, etc.) for a user indicated transport either departing from or arriving at the transportation station. For example, a user may indicate an arriving ferry or departing flight to be coordinated with the food order.
  • the activity controller may access en route information of the indicated transport to determine the associated arrival or departure and determine the target time on that information, any off- set time (e.g., time to occur before departure or after arrival), and any other appropriate information.
  • the process advances to 922, where the coordination server 1 10 reads or estimates the consumer’s start time, such by reading a scheduled arrival time from the customer activity information, or estimates the start time such as by estimating the consumer’s arrival time based on customer’s location, traffic flow data, and any routing information.
  • a time offset period is applied to the target time, if specified in the food-delivery order or sometimes as predetermined based on the circumstances.
  • the customer may specify in the food order information to have the food item delivered 20 minutes prior to or after the activity.
  • the coordination server sends food target time and determined delivery time and location, if applicable (for next leg delivery), to the preparation engine 132 and/or routing engine 142, thereby requesting the preparation engine 132 and/or routing engine 142 to determine operations such that the food items in the food order are prepared and delivered to the delivery location at the delivery target time.
  • the coordination engine 110 may receive information from the preparation engine concerning availability of preparation facilities to prepare the food item (e.g., volume, inventory, etc.) and/or receive information from the routing engine concerning availability of delivery vehicles to serve the delivery location. Based at least in part on this received availability information, the coordination engine 110 may instruct the preparation engine 132 and/or routing engine 142 to coordinate preparation and delivery so the delivery target time is met.
  • FIG. 7B which illustrates a flow of operations 728-744, at operation 728, the coordination server 1 10, working with the order entry subsystem 120, sends a notification of the food delivery target time to the consumer. This may result in causing the target time to be displayed on a user interface, or sent as a text message, email, or other form of communication
  • the coordination server 110 receives updates of the customer activity information. This may include, for example, receiving updated customer activity information pushed from the activity service control device 152 (FIG. 1 ), or receiving updated customer activity information pulled from the activity service control device 152 in response to the coordination server 1 10 sending a periodic‘ping’ requesting that any updates be sent. Additionally or alternatively, the preparation engine 132 and/or routing engine 142 may send updated preparation or routing information to the coordination server 110 based on status data for preparation or delivery operations. For example, estimated preparation time or estimated delivery time may change due to previously unforeseen circumstances. In one embodiment, the activity coordination engine may apply the updated target time to the estimated charge-completion time if this time is applicable to the food target time.
  • the coordination server 1 10 determines if the updated customer activity information reflects a change in delivery location. If so, the process branches to operation 734 to modify the routing information and modify the target time to reflect the updated location. For example, in one embodiment, the coordination server 1 10 sends the updated location to the routing engine 142, which determines modified delivery routing information for the updated location, and the target time is revised pursuant to any resulting changes affecting timing for the new route. The process then continues to operation 736. If no location updates occur at operation 732, the process also goes to operation 736.
  • updates to activity timing are determined.
  • a timing change could be caused by an extension of the charge completion time, or if a scheduled charge instance started earlier or later than estimated.
  • a threshold test may be applied as discussed above to appraise whether or not the change in target time is significant enough to justify causing the preparation engine to modify preparation operations, or to cause the routing engine to modify delivery operations and logistics.
  • Various thresholds may be applied, such as whether the change in target time exceeds a time amount, whether the preparation operation is beyond a percentage of completion, etc. The effect is to not disrupt preparation and routing information needlessly in response to small changes to the target time (e.g., less than 10 minutes), but to revise the preparation operations or delivery operations if changes to the target time is significant enough that such operational changes are needed to uphold quality of product or experience. If the modified target time does not exceed the threshold at operation 740, the process continues to operation 744.
  • the process continues to operation 742, at which the coordination server 1 10 sends the modified food delivery target time to the preparation engine, thereby causing a determination of modified preparation operations.
  • the modified preparation operations may shift preparation to a different location if a different preparation facility would have better availability to complete the order to meet the modified target time.
  • the process then continues to operation 744 to send a notification with the modified target time to the consumer.
  • FIG. 8 is an example high-level process flow diagram illustrating a series of operations performed by an automated food preparation and distribution system.
  • the system operates to coordinate food preparation, and in some cases delivery, with an activity in which a consumer may be engaged before, during, or after the food delivery.
  • the series of operations illustrated in FIG. 8 may be carried out autonomously by a coordination server having a suitable architecture selected from among some of the embodiments described above in connection with system 100 of FIG. 1 and system 200 of FIG. 2.
  • the system receives food order information pertaining to at least one food item to be prepared for a customer who will consume the food item.
  • the food item may be prepared, and in some cases delivered to a first customer (e.g., delivery vehicle) for eventual pick up or delivery to a second customer, e.g., the food item consumer, at a specified location.
  • the order may or may not identify an activity being, or to be, undertaken by the customer.
  • a record of the order is stored as a data structure in a tangible storage medium, such as at the data store 118 of FIG. 1. Still referring to FIG.
  • the coordination server reads the record of the order and computationally determines if an activity is sufficiently associated with the order to be incorporated autonomously into the food preparation logistics.
  • Various determination criteria may be preconfigured in the coordination server to enable this functionality.
  • any activity for which the start or end time is determinable, or at least possible to estimate may be supported by suitable embodiments.
  • Supported activities may be represented as a machine- storable and communicable set of data, and are managed, controlled, or represented by an autonomous information system that implements an activity service control device.
  • examples of activity service control devices include transportation logistics systems, event ticket sales systems, computing devices utilizing appointment- scheduling or calendar applications, and the like.
  • the process advances to operation 810, where the coordination server 110 connects with a compatible activity service control device 152 for data sharing.
  • the coordination server 110, the activity service control device 152 , or both may use an API or messaging facility through which an activity service-instance data structure may be sent, received, read, or modified.
  • the coordination server 110 may nonetheless infer the customer’s participation in an activity that may be coordinated with the delivery. For example, the coordination server 110 may identify a match of a customer delivery driver with an order for delivery on the next leg of travel, and may determine and consider arrival, customer activity status, etc.
  • an activity inference process may be carried out.
  • criteria may be stored in the data store 1 18 which align to certain inferred determinations.
  • the inference process maps available information regarding routing information, food order information, customer activity information, and/or preparation information, and an inference can be applied when the information maps against criteria aligned to the particular inferential outcome.
  • the activity inference process may take additional sources of information into account, such as the location or destination of the customer (e.g., as reported by the subject’s mobile device or navigation system during the ordering process), schedule entries in the subject’s calendar, publications by relevant media services indicating scheduled events at certain times and locations, and coincidence of the subject’s location or destination with those locations and scheduled event times, check in data to transportation (e.g., purchased airplane or ferry ticket, check in at charging facility, etc.) or the like.
  • the output of the inference process may be an identification of a probable activity that the subject may be
  • the system may prompt the customer to verify participation or plans with regard to possible activities determined by the inference process. This may involve presenting a notification or graphical element in a client application interface or sending a text or other form of communication, seeking feedback from the customer to confirm if the activity should be associated with the food order.
  • the coordination server 110 determines the type of target time and the location for delivery. More specifically, the type of target time represents whether the food preparation is to be scheduled in accordance with the start or end of the activity (with or without an offset period), or whether the delivery is to be scheduled independent of the activity’s timing, and whether an offset period is to be applied.
  • the coordination server updates an activity record that represents the scheduling of the activity. The activity record may be updated in response to changing circumstances or disruptions.
  • the system determines the food delivery target time based on the updated activity record and on the determined type of target time (with or without offsets).
  • the delivery location is determined.
  • the system may determine not only the target time for the food preparation in coordination with the customer activity, but if the customer is a delivery vehicle for the next leg of food item delivery, the system may also determine the ultimate delivery time to the end consuming customer. The latter may be deduced or inferred, and optionally verified with the subject at this stage.
  • the delivery location may be varied in response to variations in the activity schedule or in response to changing preferences of the customer.
  • the food delivery target time and delivery location information are transmitted to the preparation engine and/or routing engine, serving as instructions to generate and modify food preparation operations and/or delivery operations as appropriate to meet the modified target time.
  • Operations 818-822 may be performed iteratively by the system at periodic intervals, from time to time, or in response to schedule or preference change notifications.
  • this example method allows the automated food preparation and distribution system to determine and adjust the delivery time and location for a food delivery to improve the level of service as seen by the subject of the delivery, while reducing the subject’s inconvenience of having specifying details during and after the placement of the order for delivery.
  • FIG. 9 and the following discussion provide a brief, general description of an exemplary computing platform 900 that may be used to implement a controller, engine, module, device, or server, such as any or all of the coordination server 110, order engine 122, preparation engine 132, routing engine 142, or activity service control device 152.
  • the coordination server 110, order engine 122, routing engine 142, preparation engine 132, and activity service control device 152 may be implemented as functional elements of a unitary computing platform, in various related embodiments some or all of the functionality of the coordination server 110, order engine 122, routing engine 142, preparation engine 132, or activity service control device 152, may be performed using one or more additional stand-alone computing systems which may be communicatively coupled with other computing systems.
  • an order entry subsystem 120 and the associated order engine 122 may be disposed in a national or regional call or order aggregation center that is remote from the coordination server 110.
  • the routing engine 142, or the preparation engine 132 may be disposed in some or all of the delivery vehicles, and the activity service control device 152 may be disposed at a facility that provides vehicle charging services remote from the coordination server.
  • the coordination server 110 may implement some or all of the various functions and operations discussed immediately above in reference to FIG. 1.
  • embodiments as well as other embodiments can be practiced with other computer system configurations, including handheld devices for instance Web enabled cellular phones or PDAs, multiprocessor systems, microprocessor-based or programmable consumer electronics, personal computers (“PCs”), networked PCs, clustered, server-farm, or other cloud-computing arrangements, mainframe computers, and the like.
  • the embodiments can be practiced in distributed computing environments where tasks or engines are performed by remote processing devices, which are linked through a communications network.
  • program engines may be stored in both local and remote memory storage devices and executed using one or more local or remote processors, microprocessors, digital signal processors, controllers, or
  • the computing platform 900 may take the form of any current or future developed computing system capable of executing one or more instruction sets.
  • the computing platform 900 includes a processing unit 906, a system memory 908 and a system bus 910 that communicatively couples various system components including the system memory 908 to the processing unit 906.
  • the computing platform 900 will at times be referred to in the singular herein, but this is not intended to limit the
  • the processing unit 906 may be any logic processing unit, such as one or more central processing units (CPUs), microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field programmable gate arrays
  • CPUs central processing units
  • DSPs digital signal processors
  • ASICs application-specific integrated circuits
  • the system bus 910 can employ any known bus structures or architectures, including a memory bus with memory controller, a peripheral bus, and a local bus.
  • the system memory 908 includes read-only memory (“ROM”) 912 and random access memory (“RAM”) 914.
  • ROM read-only memory
  • RAM random access memory
  • a basic input/output system (“BIOS”) 916 which can form part of the ROM 912, contains basic routines that help transfer information between elements within the computing platform 900, such as during start-up. Some embodiments may employ separate buses for data, instructions and power.
  • the computing platform 900 also includes one or more internal non-transitory storage systems 918.
  • Such internal non-transitory storage systems 918 may include, but are not limited to, any current or future developed persistent storage device 920.
  • Such persistent storage devices 920 may include, without limitation, magnetic storage devices such as hard disc drives, electromagnetic storage devices such as memristors, molecular storage devices, quantum storage devices, electrostatic storage devices such as solid state drives, and the like.
  • the computing platform 900 may also include one or more optional removable non-transitory storage systems 922.
  • Such removable non-transitory storage systems 922 may include, but are not limited to, any current or future developed removable persistent storage device 926.
  • Such removable persistent storage devices 926 may include, without limitation, magnetic storage devices, electromagnetic storage devices such as memristors, molecular storage devices, quantum storage devices, and electrostatic storage devices such as flash drives, or the like.
  • the one or more internal nontransitory storage systems 918 and the one or more optional removable nontransitory storage systems 922 communicate with the processing unit 906 via the system bus 910.
  • the one or more internal nontransitory storage systems 918 and the one or more optional removable nontransitory storage systems 922 may include interfaces or device controllers (not shown) communicatively coupled between nontransitory storage system and the system bus 910, as is known by those skilled in the relevant art.
  • the nontransitory storage systems 918, 922, and their associated storage devices 920, 926 provide nonvolatile storage of computer-readable instructions, data structures, program engines and other data for the computing platform 900.
  • Those skilled in the relevant art will appreciate that other types of storage devices may be employed to store digital data accessible by a computer, such as magnetic media, flash memory cards, Bernoulli cartridges, RAMs, ROMs, smart cards, etc.
  • Program modules can be stored in the system memory 908, such as an operating system 930, one or more application programs 932, other programs or modules 934, drivers 936 and program data 938.
  • the application programs 932 may include, for example, one or more machine executable instruction sets capable of providing an order entry subsystem 120 able to receive food item orders in any form of communication, including without limitation, voice orders, text orders, and digital data orders.
  • the application programs 932 may additionally include one or more machine executable instruction sets capable of providing a routing engine 142 able to provide text, voice, or graphical routing instructions to the output devices 250 in some or all of the delivery vehicles.
  • Such a routing engine machine executable instruction set may also be executable by one or more controllers in a routing engine 142 installed in some or all of the delivery vehicles.
  • the application programs 932 may further include one or more preparation engine machine executable instructions sets capable of outputting preparation instructions to the appliances of the production system 106.
  • Such preparation instructions can be determined by the computing platform 900 using any number of inputs including at least, the food type in a particular appliance and the available preparation time before each respective food item is ready at the target time and location.
  • Such a preparation engine machine executable instruction set may be executed in whole or in part by one or more controllers in the preparation engine 132.
  • the system memory 908 may also include other programs/engines 934, such as including logic for calibrating or otherwise training various aspects of the computing platform 900.
  • the other programs/engines 934 may additionally include various other logic for performing various other operations or tasks.
  • the system memory 908 may also include any number of communications programs 940 to permit the computing platform 900 to access and exchange data with other systems or components, such as with the routing engines 116, preparation engines 118, order entry engines 104, etc.
  • a user can enter commands and information into the computing platform 900 using one or more input/output (I/O) devices 942.
  • I/O devices 942 may include any current or future developed input device capable of transforming a user action or a received input signal to a digital input.
  • Example input devices include, but are not limited to, a touchscreen, a physical or virtual keyboard, a microphone, a pointing device, or the like.
  • interface 946 such as a universal serial bus (“USB”) interface communicatively coupled to the system bus 910, although other interfaces such as a parallel port, a game port or a wireless interface or a serial port may be used.
  • USB universal serial bus
  • a display 970 or similar output device is
  • the computing platform 900 operates in an environment using one or more of the network interfaces 956 to optionally communicatively couple to one or more remote computers, servers, display devices 250 or other devices via one or more communications channels, for example, one or more networks such as the network 964.
  • These logical connections may facilitate any known method of permitting computers to communicate, such as through one or more LANs or WANs.
  • Such networking environments are well known in wired and wireless enterprise-wide computer networks, intranets, extranets, and the Internet.
  • the database interface 952 which is communicatively coupled to the system bus 910, may be used for establishing communications with a database stored on one or more computer-readable media 960.
  • a database 960 may include a repository for storing information regarding food item preparation conditions as a function of time, etc.
  • Example A A food preparation and delivery system, comprising: a preparation engine to determine food preparation operations for preparing an item of a food order at a food preparation facility; a routing engine to determine delivery operations for delivering the item to a delivery location; and a coordination server having a processor, a memory in communication with the processor, the memory having computer-readable instructions stored thereon that, when executed by the processor, cause the processor to: receive food order information representing a food order that includes at least a food item and a delivery location; access customer activity information relating to a customer activity, the customer activity information including at least a start time or an end time of the activity; determine if the customer activity is associated with the food order, and if so; determine a delivery target time in relation to the start time or end time of the activity; and send the delivery target time to the preparation engine and routing engine, requesting food preparation and delivery operations such that the food item is prepared by the food preparation facility and delivered to the delivery location at the delivery target time.
  • Example B The system of Example A, wherein at least some of the food orders are received from client applications executing on respective user devices, wherein to determine if the customer activity is associated with the food order includes to send a message to the client application on the user device that originated the food order, the message requesting verification if the customer activity is associated with the food order.
  • Example C The system of Examples A and B, further comprising an activity coordination engine executing in on the coordination server, wherein the customer activity information is formatted in a service- instance data structure readable by the activity coordination engine, the data structure including fields of information types which, if available, may be useful to determining if the customer activity is associated with the food order and determining the target time.
  • Example D The system of Examples A through C, wherein at least some of the food orders are received from client applications executing on respective user devices, wherein the instructions further cause the processor to send a notification to the of the food delivery target time to the user device.
  • Example E The system of Examples A through D, wherein the instructions further cause the processor to: receive updated customer activity information;
  • Example F The system of Examples A through E, wherein the instructions further cause the processor to: if the updated customer activity information indicates a change in delivery location, request the routing engine to modify delivery operations based on the change in delivery location.
  • Example G The system of Examples A through F, wherein the instructions further cause the processor to: check whether the change in delivery target time exceeds a threshold, and if the threshold is exceeded: instruct the preparation engine of the modified target time, enabling the preparation engine to modify food preparation operations such that the food item is prepared by the food preparation facility and delivered to the delivery location at the modified target time.
  • Example H The system of Examples A through G, wherein the customer activity is charging a vehicle, and wherein the customer activity information is sent by an activity service control device that controls vehicle charging.
  • Example I The system of Examples A through H, wherein the start time is an arrival time of a customer associated with the first food order at a location of the vehicle- charging service, and wherein the end time is an estimated battery-charging completion time.
  • Example J The system of Examples A through I, wherein the delivery operations include preparing the item for pick-up, and wherein the delivery location is the preparation facility.
  • Example K The system of Examples A through J, further comprising: a data store containing predetermined criteria associated with inferences, wherein to determine a delivery target time in relation to the start time or end time of the activity includes to: map customer activity information against the predetermined criteria to determine if the delivery target time is inferred to be the start time, end time, or offset by a period of time from either the start time or end time
  • Example L A computer- implemented method for coordinating food preparation with a customer activity, the computer- implemented method comprising: receiving, at a coordination server, food order information representing an order for at least one food item and a delivery location; accessing, from an activity service control device, a customer activity information corresponding to an activity of a customer, the customer activity information including at least a start time or end time of the activity; determining if the food order is associated with the customer activity, and if so; determining a delivery target time relative to the activity start or end time; and requesting, from a preparation engine, food preparation operations and also requesting, from a routing engine, delivery operations, such that the food preparation and delivery operations enable the at least one the food item in the food order to be prepared and delivered to the delivery location at the delivery target time; receiving updated customer activity information from the activity control device; and if updated customer activity information reflects a change in activity timing, determining a modified target time based on updated timing information; and requesting, from the preparation engine and routing engine, modified food preparation operations and
  • Example M The computer- implemented method of Example L, further comprising: if updated customer activity information reflects a change in delivery location, requesting, from the routing engine, modified delivery operations to the changed delivery location; and modifying the target time based on the modified delivery operations.
  • Example N The computer- implemented method of Examples L and M, further comprising: receiving, from the preparation engine, availability of preparing the food item at one or more preparation facilities; and receiving, from the routing engine, availability of delivery vehicles to serve the delivery location; whereby requesting operations for food preparation and delivery is based at least in part on said availability of preparing and availability of delivery vehicles.
  • Example O The computer-implemented method of Examples L through N, wherein at least some of the food orders are received from client applications executing on respective user devices, whereby determining if the customer activity is associated with the food order includes sending a message to the client application on the user device that originated the food order, the message requesting verification if the customer activity is associated with the food order.
  • Example P The computer-implemented method of Examples M through O, further comprising: displaying a graphical user interface on a user device presenting an offer to enter a food order to the customer in association with the activity.
  • Example Q The computer- implemented method of Examples L through P, wherein the customer activity includes vehicle charging of a customer vehicle associated with the food order, and wherein the change in activity timing is a change in the estimated time to charge.
  • Example R The computer- implemented method of Examples L through Q, wherein the customer activity includes vehicle charging of a delivery vehicle for delivery of the food order, and determining an updated target time includes a change in estimated a time of arrival based at least in part on routing information.
  • Example S The computer- implemented method of Examples L through R, wherein determining the target time for the food order includes applying a defined offset period from the activity start or end time.
  • Example T The computer- implemented of Examples L through S, wherein requesting modified food preparation operations causes the preparation engine to:
  • Example U The computer- implemented method of Examples L through T, wherein requesting modified delivery operations includes selecting a new delivery vehicle for delivery of the food order, selecting a new route for a delivery vehicle based at least in part on the updated timing information and updated delivery location.
  • logic or information can be stored on any computer readable medium for use by or in connection with any computer or processor related system or method.
  • a memory is a computer readable medium that is an electronic, magnetic, optical, or other another physical device or means that contains or stores a computer or processor program.
  • Logic or the information can be embodied in any computer readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions associated with logic or information.
  • a "computer readable medium” can be any means that can store, communicate, propagate, or transport the program associated with logic or information for use by or in connection with the instruction execution system, apparatus, or device.
  • the computer readable medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or
  • the computer readable medium includes the following: an electrical connection having one or more wires, a portable computer diskette (magnetic, compact flash card, secure digital, or the like), a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM, EEPROM, or Flash memory), an optical fiber, and a portable compact disc read-only memory (CDROM).
  • a portable computer diskette magnetic, compact flash card, secure digital, or the like
  • RAM random access memory
  • ROM read-only memory
  • EPROM erasable programmable read-only memory
  • CDROM portable compact disc read-only memory
  • the computer-readable medium could even be paper or another suitable medium upon which the program associated with logic or information is printed, as the program can be electronically captured, via for instance optical scanning of the paper or other medium, then compiled, interpreted or otherwise processed in a suitable manner if necessary, and then stored in memory.
  • a computer- readable medium may be specified as being a non-transitory medium, in which case the medium includes tangible physical articles or devices (e.g., magnetic, electrostatic, hard- wired, or optical devices, random-access memory, read-only memory, logic circuitry, or the like) are included, but transitory signals and other phenomena are expressly excluded.

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Tourism & Hospitality (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Marketing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Educational Administration (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

A food preparation system determines a target time based at least in part on customer activity information. The system schedules food preparation, and in some cases delivery operations, based on the target time. As part of the system, an activity coordination engine associates a food order with the customer activity, enabling modifications to the target time, food preparation and delivery operations as a result of updates to the customer activity information. Exemplary customer activities include vehicle charging, travel, events, appointments, etc.

Description

AUTOMATED FOOD PREPARATION
COORDINATION WITH CUSTOMER ACTIVITY
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Prov. Pat. Appl. Ser. No. 62/729,574 filed on September 1 1, 2018, titled“RIDE HAILING WITH ITEM PROVISIONING VIA VEHICLES, INCLUDING AUTONOMOUS VEHICLES”. The disclosures of the provisional patent application are hereby incorporated by reference in their entireties.
TECHNICAL FIELD
[0002] This description generally relates to preparation of goods such as prepared foods and, more particularly, to information-processing technology that coordinates food preparation and customer activity.
BRIEF SUMMARY
[0003] Consumers have come to expect unprecedented levels of convenience, service, quality, and affordability in the delivery of prepared food. To meet these expectations, retailers have deployed online and mobile app-based ordering and payment interfaces. The delivery of prepared food traditionally occurs in several stages. A consumer places an order for a particular item with a food establishment which prepares the food per the order. The prepared food is then packaged and is delivered to the consumer. The consumer may be at the location of the food establishment to receive the delivery, or at a specified location away from the food establishment. In addition, the consumer may wish to coordinate a future delivery time to coincide with a customer’s activities. However, customers may find it cumbersome to specify these details at the time of order placement, and may not be in a convenient situation to further specify any changes regarding the order or delivery parameters, or even determine if such changes are present, if changes are called for some time after the placement of a given food-delivery order. Technological solutions are needed to address these, and other challenges in the delivered-goods service industries.
[0004] As used herein,“customer” means a person or party who accepts delivery of the food product at a designated delivery location. In some cases, the designated delivery location may be a location distant from the food preparation facility. In a case where the food preparation facility is a vehicle, in some instances, it can deliver the food product to the delivery location. Alternatively, a separate delivery service (e.g., DoorDash™, Uber Eats™) or affiliated delivery service (e.g., scooter, drone, ground robot) may pick up the food product at the designated pick up location, thereby being the customer who accepts delivery of the food product at the food production facility and transports the food product to the consumer location. Additionally, the customer may be the ultimate consumer of the food product who picks up the food at a designated delivery location, which may be the location of the food production facility or delivery location. In this manner, delivery time and location may include one or both of delivery to the customer who will consume the food product and the customer who picks up the food product to continue the next leg of delivery to the ultimate consumer location.
[0005] Techniques described herein enable a food preparation and distribution system to coordinate with a customer activity, for example charging an electric vehicle.
Conveniently, a food delivery target time may be determined based on timing of the activity, and food preparation and delivery operations may be determined and scheduled in a coordinated serial manner so as to enable food to be prepared and delivered to a designated location at or near the target time. Also described are techniques in which an update to the activity information results in a change to the target time, enabling modifications to be made to the food preparation or delivery operations so as to fulfill the order at a modified target time.
[0006] In some embodiments, for example, a food preparation and delivery system, includes: a preparation engine to determine food preparation operations for preparing an item of a food order at a food preparation facility; a routing engine to determine delivery operations for delivering the item to a delivery location; and a coordination server having a processor, and a memory in communication with the processor. The memory has computer-readable instructions stored thereon that, when executed by the processor, cause the processor to: receive food order information representing a food order that includes at least a food item and a delivery location; access customer activity information relating to a customer activity, the customer activity information including at least a start time or an end time of the activity; determine if the customer activity is associated with the food order, and if so; determine a delivery target time in relation to the start time or end time of the activity; send the delivery target time to the preparation engine and routing engine to perform operations such that the food item is prepared by the food preparation facility and delivered to the delivery location at the delivery target time.
[0007] For some orders, the consumer may request and pick up the food from the preparation facility and forego delivery to a remote delivery location. In such cases, the delivery operations include preparing the item for pick-up and the delivery location is the preparation facility.
[0008] The techniques disclosed herein provide for receiving updates to the customer activity information, and adapting food preparation and delivery operations appropriate to meet changes in activity timing. In some implementations, receiving updates can achieved by listening for updates pushed to the coordination server, sending a request for information and comparing if the information is changed, etc. The coordination server receives updated customer activity information and determines a modified delivery target time based upon a change in the activity start or end time. If the updated customer activity information results in a change in delivery location, the coordination engine requests the routing engine to modify delivery operations based on the change in delivery location.
[0009] Also described herein is a computer- implemented method for coordinating food preparation with a customer activity. The computer- implemented method includes: receiving, at a coordination server, food order information representing an order for at least one food item and a delivery location; accessing, from an activity service control device, a customer activity information corresponding to an activity of a customer, the customer activity information including at least a start time or end time of the activity; determining if the food order is associated with the customer activity, and if so;
determining a delivery target time relative to the activity start or end time; and requesting, from a preparation engine, food preparation operations and also requesting, from a routing engine, delivery operations, such that the food preparation and delivery operations enable the at least one the food item in the food order to be prepared and delivered to the delivery location at the delivery target time; receiving updated customer activity information from the activity control device; and if updated customer activity information reflects a change in activity timing, determining a modified target time based on updated timing information; and requesting, from the preparation engine and routing engine, modified food preparation operations and delivery operations so as to meet the modified target time.
[0010] Various techniques are disclosed herein for determining whether a food order is associated with an activity. In some embodiments, the system enables verification by a customer that an inferred association is correct.
[0011] Other techniques are described for presenting to a customer an offer for a food order in association with an activity. In such cases, the association is automatic.
[0012] Other embodiments are directed more generally to coordination of a customer activity with food delivery, or vice-versa. In general, any activity for which the start or end time is determinable, or at least possible to estimate, may be supported by suitable embodiments. As used herein, an“activity” can mean any appropriate customer activity that can be coordinated with food product delivery. For example, without limitation, customer activity can mean vehicle charging and/or fueling; delivery vehicle status; departure from, arrival at, or wait time (e.g., intermission) at a transportation station (airport, bus station, train station, ferry or dock) or other location, etc.), fitness center, movie, concert, theatrical production, sporting event, or other events; scheduled appointments or ad hoc services such as medical, automotive service, spa/salon, fitness class, etc.; and the like. Some activities may be provided by the operator of food delivery system, while other activities are independent of or affiliated with the food delivery. Due to circumstances, the customer activity timing can change dynamically (e.g., charging the vehicle takes longer, airplane/ferry arrives sooner or rerouted to another airport/dock, train is delayed, traffic/weather/road construction delays arrival, intermission occurs 20 minutes later due to late start, etc.), and in response to that change, the food preparation may also be automatically updated to coordinate food preparation readiness at the point of pick up.
[0013] A variety of other examples and variations of these embodiments are described as follows.
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] The detailed description is described with reference to the accompanying figures. In the drawings, identical reference numbers indicate similar elements or acts. The sizes and relative positions of elements in the drawings are not necessarily drawn to scale, and some elements may be enlarged or positioned to improve drawing legibility.
[0015] FIG. 1 is a block diagram of a food preparation and delivery system which, according to an embodiment, is configured to schedule operations based on various factors including activity information.
[0016] FIG. 2 is a schematic diagram of an exemplary embodiment of a food preparation and delivery system that works in coordination with customer activity services such as vehicle charging services.
[0017] FIG. 3 is a schematic illustration of an exemplary embodiment of a service- instance data structure for a vehicle charging activity.
[0018] FIGS. 4A-F illustrate timelines showing target times base on activity timing, representing blocks of time for coordinated preparation operations, delivery operations, and offset periods. [0019] FIGS. 5A-C show a sequence of timelines illustrating: food preparation and delivery coordinated to achieve a target time (FIG. 5A), updated activity timing information wherein the activity is delayed (FIG. 5B), and modified preparation and delivery times to meet a modified target time (FIG. 5C).
[0020] FIG. 6A illustrates a graphical user interface displayed on a user device presenting an offer of a food order associated with an activity such as a vehicle charging service instance.
[0021] FIG. 6B illustrates another graphical user interface displayed on a user device presenting an offer of a food order associated with an activity such as a vehicle charging service instance.
[0022] FIGS. 7A-B illustrate an example process flow diagram of a series of operations performed by a coordination server.
[0023] FIG. 8 is an example high-level process flow diagram of illustrating a series of operations performed by an automated food preparation and distribution system.
[0024] FIG. 9 is a computer architecture diagram illustrating exemplary computer hardware and software architecture for a computing system capable of implementing aspects of the techniques and technologies presented herein.
DETAILED DESCRIPTION
[0025] In the following description, certain specific details are set forth in order to provide a thorough understanding of various disclosed embodiments. However, one skilled in the relevant art will recognize that embodiments may be practiced without one or more of these specific details, or with other methods, components, materials, etc. In other instances, well-known structures associated with food preparation devices such as appliances, and other similar devices, closed-loop controllers used to control appliance operational conditions, food preparation processes and schedules, wired and wireless communications protocols, geolocation, and optimized route mapping algorithms have not been shown or described in detail to avoid unnecessarily obscuring descriptions of the embodiments.
[0026] Unless the context requires otherwise, throughout the specification and claims which follow, the word“comprise” and variations thereof, such as,“comprises” and “comprising” are to be construed in an open, inclusive sense, that is as“including, but not limited to.”
[0027] Reference throughout this specification to“one embodiment” or“an
embodiment” means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrases“in one embodiment” or“in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments
[0028] As used in this specification and the appended claims, the singular forms "a," "an," and "the" include plural referents unless the content clearly dictates otherwise. It should also be noted that the term "or" is generally employed in its sense including "or" unless the content clearly dictates otherwise.
[0029] The headings and Abstract of the Disclosure provided herein are for convenience only and do not interpret the scope or meaning of the embodiments.
[0030] As used herein the term“food” refers to any product intended for human consumption. Although some of the disclosure herein may refer to pizza as a readily comprehensible and easily understood example of one illustrative embodiment, one of ordinary skill in the culinary arts and food preparation will readily appreciate the broad applicability of the systems, methods, and apparatuses described herein across any number of prepared food products.
[0031] As used herein the term“appliance” refers to any device, system, or combination of systems and devices useful in the preparation of a food product which may include ingredient distribution devices, choppers, peelers, cooking units for the heating of food products, cooling units, mixers, blenders, etc. and preparation processes may also include the partial or complete preparation of one or more food products. Further, the appliance may be able to control one or more appliance operational parameters, including, in any combination of and without limitation, temperature, pressure, humidity, air flow (to decrease preparation time), speed, time of start and end operation, pre-heat, and the like.
[0032] The term“engine” as used herein means a tangible device, circuit, component, or arrangement thereof, implemented using hardware, such as by an application specific integrated circuit (ASIC) or field-programmable gate array (FPGA), for example, or as a combination of hardware and software, such as by a processor-based computing platform and a set of program instructions that transform the computing platform into a special- purpose device to implement the particular functionality. An engine may also be implemented as a combination of the two, with certain functions facilitated by hardware alone, and other functions facilitated by a combination of hardware and software. In an example, the software may reside in executable or non-executable form on a tangible machine-readable storage medium. Software residing in non-executable form may be compiled, translated, or otherwise converted to an executable form prior to, or during, runtime. In an example, the software, when executed by the underlying hardware of the engine, causes the hardware to perform the specified operations. Accordingly, an engine is physically constructed, or specifically configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a specified manner or to perform part or all of any operations described herein in connection with that engine.
[0033] While particular aspects of the present subject matter described herein have been shown and described, it will be apparent to those skilled in the art that, based upon the teachings herein, changes and modifications may be made without departing from the subject matter described herein and its broader aspects and, therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of the subject matter described herein. Furthermore, it is to be understood that the invention is defined by the appended claims. It will be understood by those within the art that, in general, terms used herein, and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as “open” terms (e.g., the term“including” should be interpreted as“including but not limited to,” the term“having” should be interpreted as“having at least,” the term “includes” should be interpreted as“includes but is not limited to,” etc.). It will be further understood by those within the art that if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to
understanding, the following appended claims may contain usage of the introductory phrases“at least one” and“one or more” to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles“a” or“an” limits any particular claim containing such introduced claim recitation to inventions containing only one such recitation, even when the same claim includes the introductory phrases“one or more” or“at least one” and indefinite articles such as“a” or“an” (e.g.,“a” and/or“an” should typically be interpreted to mean“at least one”" or“one or more”); the same holds true for the use of definite articles used to introduce claim recitations. In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should typically be interpreted to mean at least the recited number (e.g., the bare recitation of“two recitations,” without other modifiers, typically means at least two recitations, or two or more recitations). Furthermore, in those instances where a convention analogous to“at least one of A, B, and C, etc.” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g.,“a system having at least one of A, B, and C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). In those instances where a convention analogous to“at least one of A, B, or C, etc.” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g.,“a system having at least one of A, B, or C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). It will be further understood by those within the art that virtually any disjunctive word and/or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms. For example, the phrase“A or B” will be understood to include the possibilities of“A” or“B” or“A and B.”
[0034] Considering examples in which engines are temporarily configured, each of the engines may be instantiated at different moments in time. For example, where the engines comprise a general-purpose hardware processor core configured using software, the general-purpose hardware processor core may be configured as respective different engines at different times. Software may accordingly configure a hardware processor core, for example, to constitute a particular engine at one instance of time and to constitute a different engine at a different instance of time. In some implementations, at least a portion, and in some cases, all, of an engine may be executed on the processor(s) of one or more computers. Accordingly, each engine may be realized in a variety of suitable configurations and should generally not be limited to any particular
implementation exemplified herein, unless such limitations are expressly called out.
[0035] In addition, an engine may itself be composed of more than one sub-engines, each of which may be regarded as an engine in its own right. Moreover, in the
embodiments described herein, each of the various engines corresponds to a defined functionality; however, it should be understood that in other contemplated embodiments, each functionality may be distributed to more than one engine. Likewise, in other contemplated embodiments, multiple defined functionalities may be implemented by a single engine that performs those multiple functions, possibly alongside other functions, or distributed differently among a set of engines than specifically illustrated in the examples herein. [0036] Turning to FIG. 1 , a block diagram illustrates aspects of one example food preparation and delivery system 100 for enabling the management food orders, food preparation operations, and delivery operations in coordination with customer activities. The system 100 enables techniques described in this application wherein timing of a customer activity provides a basis for determining a delivery target time, instructing food preparation and delivery operations to meet the target time, as well as modifying the target time, preparation, and delivery in response to changes in the activity timing.
[0037] As illustrated, the example system 100 includes a coordination server 110, an order entry subsystem 120, production subsystem 130, a distribution subsystem 140, and an activity service subsystem 150. The coordination server 110 provides coordination functionality among the order entry subsystem 120, production subsystem 130, distribution subsystem 140, and activity service subsystem 150. Components of the coordination server 1 10 include, for example, a processor 11 1, memory 112, activity coordination engine 116, control module 114, and data store 118.
[0038] The exemplary embodiment of FIG. 1 illustrates the order entry subsystem 120 as including an order engine 122 communicatively coupled to the coordination server 110. The order entry subsystem 120 enables food orders to be placed by or for consumers using one or more user devices 124. The order engine 122 collects and manages food order information representing the food orders and communicates such information to the coordination server 110 via a network 170. The user device 124 may any variety of devices capable of serving as an input/output (I/O) source. For example, the user device 124 may have display, communication, and processing capabilities, such as, but not limited to, a computer, laptop, smart phone, mobile phone, tablet, game console, smart TV, kiosk, etc. In some embodiments, the user device 124 can execute a client application such as a web browser or special purpose application to enable interaction with the order entry subsystem 120. In some embodiments, the order entry subsystem 120 may include a national or regional center capable of receiving orders by telephone or third-party client application (e.g., UberEats™). For each food order, the order engine 122 collects food order information representing each food order, such information including for example a customer identifier, customer location, desired food item, address of a delivery location, desired time of delivery, an associated customer activity, preparation information, delivery information, and the like. The order entry subsystem 120 or order engine 122 may also receive and process payment information. As will be explained further below, in some embodiments, the coordination server 110 sends certain information, such as food order status or an offer, to the order engine 122 for presentation to the consumer on the user device 124.
[0039] The production subsystem 130 is capable of preparing food items of the food orders. As illustrated in FIG. 1, the production subsystem 130 includes at least one preparation engine 132 communicatively coupled to the coordination server via a network 162. The preparation engine 132 is also communicatively coupled to one or more food preparation facilities, for example a stationary preparation facility 134 such as a stationary dark kitchen, or a mobile preparation facility 136, which may a mobile-but- stationary kitchen or a mobile kitchen that can also function as a delivery vehicle. Each of the preparation facilities 134, 136 includes appliances for preparing the food, and in some exemplary embodiments the appliances may perform some or all food preparation operations in an automated manner. In response to instructions from the coordination server 110 or other components of the system 100, the preparation engine 132 may determine a schedule of food preparation process steps, timing, and appliance operational parameters in accordance with predetermined processes for preparation of a particular food item of the food order at a selected one of the preparation facilities 134, 136. Based on the food order information and predetermined processes, the preparation engine 132 may control one or more appliance operation parameters including, without limitation, power, temperature, speed, humidity, air flow, speed, status (e.g., on, off, pre-warm) etc., either individually or via the power distribution and communications buses, based on the preparation information. In some implementations, some of the food preparation operations are performed at one of the preparation facilities, such as the stationary preparation facility 134, and other food preparation operations are performed at a different preparation facility, such as the mobile preparation facility 136. For example, a pizza may be assembled by initial operations performed at the stationary facility 134, after which the pizza is transferred to the mobile operation facility 136 where cooking, slicing, and packaging operations are performed.
[0040] In at least some instances, the production subsystem 130 may autonomously prepare at least a portion of the food products at the direction of the preparation engine 132 based on the initial order information, food preparation information, customer activity information, and/or route information, and updates to any one or more of the aforementioned. In at least some instances the preparation engine 132 can communicate with the production subsystem 130 to control some or all appliance operational parameters in some or all of the appliances. In some instances, a preparation engine 132 communicatively coupled to the preparation subsystem 106 can provide some or all of the adjustments to appliance operational parameters within the appliances.
[0041] In at least some implementations such appliance instructions may include one or more appliance operational parameters (e.g., time turn oven on, oven temperature = 425°F, air flow = HIGH, humidity = 65%, pressure = 1 ATM; blend at 30 deg. F for 40 seconds; set flame size = LOW) associated with completing or finishing the preparation of the food item in the respective appliance based on an estimated target time. Such appliance operational parameters may be determined at least in part by the preparation engine 132 based on customer activity information from the customer activity system 130, and any other appropriate information. Appliance operational parameters within each of the appliances are controlled based on a target time in coordination with the customer activity.
[0042] Still referring to FIG. 1, the distribution subsystem 140 enables delivery of food items prepared by the production subsystem 130. The distribution subsystem 140 includes a routing engine 142 that is communicatively coupled to the coordination server 110 via network 162 and communicatively coupled to one or more delivery vehicles 144. The routing engine 142 is capable of monitoring vehicle location, availability, delivery routes, and food order delivery status with respect to each the delivery vehicles 144, managing logistics for delivering food orders to delivery locations using the delivery vehicles 144. In some embodiments, based on instructions from the coordination server 110 or other components of the system 100, the routing engine 142 is operable to determine some or all of the delivery routing instructions, including static or dynamic logistics information, such as delivery itinerary preparation, scheduling,
matching/selection and scheduling of delivery vehicles, and time estimates for food orders such as estimated time of arrival and estimated total delivery time. In some embodiments, the delivery vehicle 144 can also be a mobile preparation facility 136.
[0043] The activity service subsystem 150 provides or manages one or more activity that can be utilized by customers. The activity service subsystem 150 in some embodiments includes an activity service control device 152 that is communicatively coupled to the coordination server 110 via a network 164. The activity service subsystem 150 provides one or more services affecting, or affected by, an activity of a customer. In general, any customer activity for which the start or end time is determinable, or at least possible to estimate, may be supported by suitable embodiments. Supported activities may be represented as a machine- storable and communicable set of data. For the sake of brevity, some example embodiments detailed below are described in the context of electric- vehicle charging services. It is to be appreciated, that in view of the description any appropriate customer activity may be coordinated with food preparation in a similar to appropriate manner.
[0044] In the system 100 of FIG. 1, the coordination server 110 enables food production and distribution operations to be managed coordination with a customer activity. To accomplish this, the coordination server 1 10 includes a control module 1 14 that coordinates functionality among the order entry subsystem 120, production subsystem 130, distribution subsystem 140, and activity service subsystem 150. [0045] For each food order, the coordination server 110 receives data 170 containing food order information from the order entry subsystem 120 over the network 160. The coordination server 110 also accesses or receives data 172 containing customer activity information about a customer activity. In some embodiments, the coordination server 110 receives the customer activity information from the activity service control device 152.
[0046] In the coordination server 110, the activity coordination engine 116 determines whether the customer activity is associated with the food order. Such a determination may be made, for example, based on the customer specifying the association between the food order and the activity, by identifying a commonality of information present in both the food order information and the customer activity information, or by customer verification of the association in response to an inquiry. If the activity coordination engine 116 determines the customer activity is associated with the food order, the activity coordination engine 116 determines a delivery target time in relation to the start time or end time of the activity. In some embodiments, the target time may be the start time. In other embodiments, the target time may be the end time. In yet other embodiments, an offset is applied either before or after the start time or the end time, such that the target time is an offset period either before or after the activity start time or end time.
[0047] When the target time is determined by the activity coordination engine, the control module 114 applies the target time to the food order information and requests or instructs the preparation engine 132 and routing engine 142 to perform operations such that the food items of the food order are prepared and/or delivered by the production subsystem 130 and distribution subsystem 140 at or near the delivery target time. In some embodiments, the coordination server 1 10 sends a notification to the order entry subsystem 120 to enable the target time to be displayed on the user device that originated the order.
[0048] In an embodiment, the coordination server 110 can group multiple orders sharing a common location and common target times, or at least target times that are within a short time window. Managing such a multiple orders as a group achieves efficiencies such as enabling delivery in a single delivery vehicle on a single delivery run.
[0049] FIGS. 4A-F show timelines that illustrate examples of the target time relative to an activity, showing estimated time blocks for food preparation operations and delivery operations being coordinated to occur so as to meet the delivery target time.
[0050] FIG. 4A illustrates an example wherein the target time is at the start of the activity. The estimated time block for preparation operations has a preparation start time and preparation end time. Similarly, the estimated time block for delivery operations has a delivery start time and delivery end time. In the example of FIG. 4A, the delivery start time coincides with the preparation end time. The preparation time and delivery are scheduled to occur serially such that the delivery end time is the target time. FIG. 4B shows an example wherein the target time is determined to be the activity end time.
Accordingly, preparation and delivery operations are scheduled and coordinated such that the delivery end time is at the activity end time, namely the target time.
[0051] The timelines of FIGS. 4C-F show scenarios where the target time is determined by applying an offset time period to the activity timing. FIG. 4C illustrates an example wherein the delivery target time is an offset period before the activity end time. FIG. 4D illustrates a timeline wherein the delivery target time is scheduled to occur an offset period before the activity start time. FIG. 4E illustrates a timeline wherein the delivery target time is scheduled to occur an offset period after the activity end time. FIG. 4F illustrates a timeline wherein the delivery target time is an offset period after the activity start time. In addition to the possible scenarios illustrated in FIGS. 4A-F, many other possibilities exist within the techniques disclosed for coordinating operations to fulfill a food order at a target time based on an activity. For example, in an implementation where some or all preparation occurs on a delivery vehicle, time blocks representing preparation and delivery may overlap. Also, in an implementation wherein the consumer elects to pick up the food item at the preparation facility, the delivery operation (food item ready for pickup) would take zero time, in which case the preparation end time could be the delivery target time.
[0052] In reference to FIG. 1 , in a case where no available customer activity information indicates an association between a food order and a customer activity, the activity coordination does not determine a target time based on activity timing. Instead, the control module 114 instructs the preparation engine 132 and routing engine 142 to perform operations such that the production subsystem 130 and distribution subsystem 140 prepare and/or deliver food items to the customer according to the food order information.
[0053] In some implementations, the coordination engine 1 10 may receive updated customer activity information, from time to time, from the activity subsystem 150. In response, the activity coordination engine 1 16 may determine a modified target time and as necessary provide updated instructions to the production subsystem, adjusted appliance operational parameters, and/or adjusted routing information to one or both of the production subsystem 130 and distribution subsystem 140. Advantageously, functionality of the activity coordination engine 116 can relieve a consumer from the burden of specifying certain necessary scheduling details in connection with the food order or trying to update delivery location or other activity including unexpected delays, updated routing information, early flight arrival, etc. In some embodiments, the activity coordination engine 116 can autonomously adjust the food- item production and/or delivery processes (delivery vehicle selection, route, etc.) and associated times illustrated in Figures 4A-4F, in response to intentional or unintended changes, if any, in the customer’s activity information.
[0054] FIGS. 5A-C show a series of timelines illustrating an example of updated activity timing and resulting modification target time, preparation operations and delivery operations. More particularly, FIG. 5A shows a target time determined to coincide with an activity start time, wherein preparation and delivery are scheduled in coordination, so the delivery end time coincides with the target time. FIG. 5B shows updated activity timing resulting in a delay of the activity by a delay period 501. In response to the updated activity timing, the activity coordination engine 116 (FIG. 1 ) determines a modified target time. In FIG. 5C, the preparation operations and delivery operations are modified so as meet the modified target time. The illustrated example of FIG. C, the preparation and delivery operations modified by simply adjusting the start and end times later by the amount of the delay 501 , however, the modified target time could raise new factors requiring more complex modifications. For example, the routing engine 142 may indicate estimated lighter/heavier traffic during the modified delivery time window, the originally assigned delivery vehicle may no longer be available, and the preparation engine 132 may determine that more or less preparation time would be required because of changes in appliance availability, ingredient inventory, grouping of orders, etc. In various implementations, the control module 1 14 coordinates among many factors to cause the preparation engine 132 and routing engine 142 to modify operations as necessary to meet the modified target time.
[0055] In an embodiment, the coordination server 110 communicates the food order information and customer activity information to the preparation engine 132 of the production subsystem 130. Within the production subsystem 130, based on the order information, activity information, and preparation information, various ingredients and food products are prepared (ground, combined, assembled, cooked, cooled, etc.) to provide a food product per the order information received from the coordination server 110
[0056] The preparation engine 132 may determine a schedule of food preparation process steps, timing, and appliance operational parameters in accordance with pre- determined processes for preparation of a particular food item of the food order. Based on the order information and preparation information, the preparation engine 132 may control one or more appliance operation parameters including, without limitation, power, temperature, speed, humidity, air flow, status (on, off, pre-warm, etc.) etc., either individually or via the power distribution and communications buses, based on the preparation information.
[0057] In at least some instances, the distribution subsystem 140 may monitor routing information of one or more customer vehicles (e.g., consumer and delivery vehicle) may include any one or more of vehicle identification, location, status (scheduled, busy, not busy, etc.), fuel/charge status, route to pick up/delivery point, etc. Geolocation information may be determined through the use of time-of-flight triangulation, determined using one or more global positioning technologies, for example the Global Positioning System (GPS) or similar. The coordination server 110, the routing engine 142 may use the location information to statically or dynamically create or update delivery itinerary information and estimated time of the target time, which may be based on the arrival of the customer (e.g., delivery vehicle or end consumer) at the production system and/or customer activity information. In some instances where the delivery vehicle is one customer, the customer activity information may include one or more of delivery vehicles’ arrival at charging station, a vehicle charging or fueling information of the delivery vehicle (status, percent charged, time to charge, etc.), which may be provided to or through the routing engine for consideration by the activity coordination engine.
The preparation engine 132 may use such information to control or otherwise adjust preparation of the food product including adjusting the appliance operational conditions in some or all of the appliances based on updated target time.
[0058] In some instances, data indicative of updated target time may be sooner or later than the prior target time and the food preparation process and/or routing information may need to be changed (accelerated, delayed, or even wholly changed) by the routing engine 142 and/or the preparation engine 132. In another example, the routing engine may determine that another delivery vehicle, based on customer activity information, will be appropriately ready to accept the order pick up for delivery to the consumer. When the activity coordination engine 1 16 modifies the target time, the modified target time is passed to the control module 114, in an embodiment, the control module 114 causes the preparation engine 132 and routing engine 142 to assess alternative operations. As coordinated by the control module 1 14, complementary modified preparation operations and modified delivery operations can be authorized.
[0059] In at least some instances, the target time may be determined based on
preparation time (time to prepare the food item in the production subsystem) and/or routing information which may include transit/delivery by the distribution subsystem 140, and may be further coordinated with customer activity information from the activity coordination engine 116. Preparation information may take into account factors such as the timing, order, complexity of preparation, availability of appropriate appliances, other orders in the order system, grouping of orders, and the time required for the desired or defined preparation information (e.g., process, schedule, and appliance operation parameters) associated with the ordered food item. Routing information may take into account location of the customer (consume and/or delivery), road congestion, traffic, time of day, weather, and other factors.
[0060] According to an example, the target time may indicate a time a prepared food item is provided to a consumer. If the food item is delivered to the consumer, the target time is the time when the food item is delivered. In some cases, a consumer wishes to pick up the food item. Herein, making a food item available for picking up at a pick-up location is a form of delivery, in which case the target time is when the food should be available at the pick-up (delivery) location.
[0061] The target time may indicate the time that the food order is to be prepared (and possibly delivered) and may be based the food preparation time, activity time, offset period, and in some cases delivery time. For example, if the consumer delivery location is proximate the production system, the target time may be set to be proximate to the activity time, such as upon arrival of the customer at the customer activity location, start/completion/wait time (intermission) of the customer activity. As appropriate, the prepared food item provided by the production subsystem 130 can be transferred from the production subsystem 130 to the distribution subsystem 140 for further delivery in the next leg to the consumer. For example, if the consumer delivery location is distant from the production facility, and requires delivery from the production subsystem to the consumer location (which may include a customer activity) for the‘last mile delivery’ of the food to the consumer, the target time may be set to one or more customer activity times, including the customer delivery vehicle activity time and/or the consuming customer activity time, and may be proximate to or upon arrival of the customer delivery vehicle at the production subsystem location, start/completion of the customer delivery vehicle activity (e.g., vehicle charging). In this latter example, the food preparation and delivery vehicle customer activity may additionally be coordinated with the ultimate consuming customer activity as well. The target time may include an offset period from the activity time to have the target time be proximate prior to or after the activity time. The target time may be determined by the activity coordination engine 1 16 based on food preparation time, off set time, customer activity time, and routing information of the customer(s).
[0062] The activity coordination engine 116 may determine food preparation
information including any one or more of an optimal schedule of food preparation steps and timing, estimated target times (including for example, time to prepare product for pick up at production location, time to deliver to consumer, etc.), and available preparation times for each appliance, arrival of delivery vehicle to deliver food product to consumer (distribution subsystem 140), and coordination with the activity coordination engine 116.
[0063] In some instances, the coordination server 1 10 may be a portion of or may be communicatively coupled, via network 162, to an inventory control or enterprise business system such that the inventory of food ingredients and other items is maintained at one or more defined levels within the production subsystem 130.
[0064] The system 100 may reduce the time required for delivery of prepared food items to consumer destinations by partially preparing food items at one of the preparation facilities of the production subsystem 130 and completing the preparation of food items at another preparation facility or second subsystem 130. For example, the preparation of food items can be completed using individually controllable appliances on a delivery vehicle or stationary mobile or dark kitchen instead of a more conventional stationary appliance such as a range or oven at a conventional main facility. By moving at least a portion of the preparation process to a forward location, the overall time required to prepare, and deliver food items to a customer location is reduced and the overall quality of the delivered food items is improved. By dynamically adjusting the preparation process and delivery schedules and controlling the appliance operational conditions within the appliances and selection of delivery vehicles to be based on the updated customer activity times, the impact of unanticipated events, changes, weather, traffic and congestion on the quality of the delivered food items is beneficially reduced or even eliminated, particularly in coordination with customer activities.
[0065] The coordination server 1 10 or the preparation engine 132 can establish, control, or adjust preparation conditions in each of the appliances based at least in part on the available preparation time and the activity information. Such preparation conditions may be determined by the coordination server 110, the preparation engine 132, or some combination thereof, such that food items are advantageously provided at the modified target location and at the modified target time. In at least some instances, real time updating, for example to reflect traffic conditions between the current location of the delivery vehicle or transportation status (e.g., flightview.com,
wsdot.com/ferries/vesselwatch, and the like) may cause the preparation engine 132 or routing engine 142 to autonomously dynamically update the preparation information (schedule, timing, appliance operational parameter and/or routing information (delivery route, schedule, selection of delivery vehicle, delivery location, etc.). Preparation processes and appliance operational parameters in each of the appliances can be adjusted throughout the preparation process to reflect the newly estimated target times using the dynamically updated process information and customer activity information. The routing engine 142 provides the updated delivery itinerary and the recalculated available preparation times to the preparation engine 132. In at least some instances, data indicative of the location of a delivery vehicle the estimated delivery time may be provided to the consumer via SMS messaging, web portal access, or any other means of communication
[0066] Once the preparation of a food item is completed, the appliance containing the respective food item is turned off and the food item is transferred to a package or transport container such as a box, carton, bag, or similar device for transport to the consumer. In at least some instances, packages or transport containers may be readied or pre-staged to accept food items from each of the appliances.
[0067] In at least some instances, the routing information, including the delivery schedule may be dynamically updated or adjusted to reflect the latest traffic, road conditions, road closures, weather, transportation rerouting, etc. Such routing
information may be obtained via one or more of: a commercial source of traffic information, crowd- sourced traffic information, or some combination thereof. By dynamically updating routing information, the coordination server 1 10 or routing engine 142 can provide up-to-the-minute routing instructions and delivery itineraries. By dynamically updating routing information in the case of a delivery vehicle arriving for food pick up, the coordination server 110 or preparation engines 1 14 can dynamically adjust the preparation information to be based on the updated target time for the associated food order, including appliance operational parameters within appliances to reflect the available preparation time for each of the respective appliances, starting preparation processes at a different time, or even cancelling the preparation process at a first production subsystem and starting food preparation processes at a second production subsystem, and the like.
[0068] In at least some instances, the coordination server 110 can dynamically load balance the delivery schedules for at least two of the delivery vehicles. Such dynamic load balancing may for example, result in the delivery of a food item on a second delivery vehicle to a consumer delivery destination originally scheduled for delivery by a fist delivery vehicle. Such dynamic load balancing mitigates the impact of unforeseen, unexpected, or unavoidable delays (e.g., accident, congestion, etc.) in the travel of delivery vehicle and/or in the customer activity. Such dynamic load balancing may be autonomously performed by the coordination server 110, the preparation engine 132, the routing engine 142, or combinations thereof.
[0069] Each of the networks 160, 162, 164 can be a wired network, a wireless network, or any combination thereof. The network 160, 162, 164 can include a local area network, a wide area network, a worldwide network, a private network, a corporate intranet, a worldwide public network such as the Internet, or any combination thereof. In at least some instances, all or a portion of the coordination server 1 10 can be located remotely from the production subsystem 130, for example in a corporate server, or in a network connected or “cloud” based server.
[0070] Although the coordination server 110, order engine 122, preparation engine 132, routing engine 142, and activity service subsystem 152 have been described in connection with FIG. 1 as separate components that may be remote from each other, it will be recognized that any or all of these components, their subcomponents or their functions may be combined on a common computing platform.
[0071] Now turning to FIG. 2, a food preparation and distribution system 200 is illustrated wherein customer activity service subsystems 150A, 150B provide vehicle-charging services. Although FIG. 2 and the accompanying description disclose a coordination of food preparation with a customer activity of vehicle charging, it is to be appreciated that any other appropriate customer activity may be implemented in a similar or appropriate manner.
[0072] FIG. 2 illustrates the coordination server 110 implemented as a central or cloud server, which, which may include one or more processor-enabled devices (such as computing platform 900 of FIG. 9). Also shown in FIG. 2 is a mobile preparation facility 136 in a mobile-but- stationary state.
[0073] As illustrated, preparation engine 132 and routing engine 142 are at the mobile preparation facility 136, implemented remotely from the coordination server 110 on separate or combined computing platforms (such as computing platform 900 of FIG. 9). The coordination server 1 10 is communicatively coupled to routing engine 142 and preparation engine 132 such as by a wireless data network. It will be appreciated that in other embodiments, one or both of the preparation engine 132 and routing engine 142 may be functionally implemented on the same processor-enabled device as the coordination server 1 10. Alternatively, either or both of the preparation engine or routing engine 142 may be implemented on one or more computing platforms located at one or more of the stationary preparation facilities 134, one or more of the mobile preparation facilities 136, and/or one or more delivery vehicles 144.
[0074] In the implementation of FIG. 2, the mobile preparation facility 136 is equipped to include an activity service subsystem 150A that provides a vehicle charging service comprising a one or more charging stations 254, and an activity service control device 152 A that controls the operation of the one or more charging stations 354. In such an embodiment, the charging stations 254 may be operated by a generator or power system used to supply power to the mobile production facility 136. The vehicle-charging activity service subsystem 150A may be operated as part of same business operating the preparation facility or alternatively operated by an affiliate or third party. Also illustrated in FIG. 2 is an activity service subsystem 150B that stands separately or independently from the preparation facility 136. Similarly, to 150A, the activity service subsystem 150B includes an activity service control device 152B that controls the operation of one or more charging stations 254, each of which may be assigned a unique port identifier.
[0075] The charging stations 254 are operable to provide sufficient power, which may be provided at a variable voltage, to charge one or more vehicles 258. Operators of the vehicles 258 engage in the customer activity of vehicle charging by at the activity service subsystem 130A or 130B, connecting the vehicle to one of the ports or charging stations 254. Each of the activity service control devices 152A, 152B includes a computing platform and is constructed, programmed, or otherwise configured to individually control the operation of each charging station 254, including carrying out electrical measurements, setting the charging voltage, setting current limits, starting and stopping the delivery of charging energy, etc. In some embodiments, the activity service control device 152A, 152B can analyze the vehicle battery and charging factors to determine an estimated battery charge time, or to receive such data from a computer on board the vehicle 258 being charged.
[0076] The vehicle 258 may be any form of electric or hybrid vehicle having a battery that can be recharged, such as a car, truck, van, scooter, electric bicycle, drone, autonomous delivery robot, etc. The vehicle 258 operated by a customer or consumer of a food order, and in addition, the vehicle may be a delivery vehicle 144 serving the distribution subsystem 140 (FIG. 1).
[0077] Each vehicle 258 engages in a charging session, referred to herein as a charging- service instance. In operation, the activity service control device 152A, 152B
authenticates the customer, initiates payment processing, if applicable, and associates an account of the customer with a charging-service instance, which is represented by the customer activity information data 172 sent to the coordination server 110. Referring to FIG. 3, the data 172 containing customer activity information may be formatted as a service-instance data structure 300. As shown, the service-instance data structure 300 includes fields of information types which, if available, may be useful to determining if the customer activity is associated with the food order and determining the target time, the fields including one or more of an instance id 302 A, customer ID / account 302B, location 302C, specified target time 302D, start time 302E, end time 302F, charging session duration 302G, customer options 302H, vehicle status 3021, customer inputs 302J, charging port 302K, vehicle type 302L, battery full charge level 302M, estimated time to charge 302N determined based on the capacity and present level of charge in the battery of the vehicle being charged, operational parameters and status 3020, charging station open ports 302P, and user preferences 302Q (e.g., cost, time, percent charge, etc.) and any other appropriate parameters, location and environment of the charging station, etc. [0078] The charging- service instance and/or the service- instance data structure 300 may be generated by various mechanisms according to different embodiments or use cases. For example, the charging- service instance may be generated by the activity coordination engine 116 of the coordination server 110 (FIG. 1 ), by the activity service control device 150 (FIG. 1) 152A, 152B (FIG. 2), or by another source, such as the order entry subsystem 120 (FIG. 1). Regardless of the source of its instantiation, the charging- service instance including the target time is accessible by the activity coordination engine 116 (FIG. 1).
[0079] In various embodiments, the customer activity information represents one or more location, start or end times, durations, or estimates thereof, of one or more activities. For instance, in the vehicle charging implementation of FIG. 2, the customer activity may involve the arrival of the vehicle 258 at a charging station 254, charging the vehicle, and leaving upon charging completion. In such an example, the activity start time may be the arrival at the station or connection to a charging port. The end time may be an estimated time of charge completion, a predetermined charge end time, when the vehicle will depart the station or disconnect from the charging port.
[0080] The activity timing information, such as start or end time, may be determined from customer activity information using a variety of suitable techniques. For instance, if an estimated time to charge completion defines the end time, the battery type and capacity may be received from a communications device local to the battery of a given vehicle 258. In a related embodiment, the present level of charge may be determined by electrical measurement, including open-circuit voltage of the battery, voltage of the battery under load conditions, rate of change of the battery voltage as a function of charging energy delivered, charging current delivered at a set charging voltage, and the like, in combination with the computational application of time-to-charge determination criteria. In some implementations, a start time for a charging activity may be known in advance, for example, if charging session is ordered before the vehicle arrives and an estimated arrival time/ start time is determined through GPS tracking, or the start time may be a time scheduled in advance by the customer.
[0081] When activity timing such as the start time or end time is known, referring back to FIG. 1 , the target time is determined by the activity coordination engine 1 16 as specified by customer input, or alternatively if no specific customer input is available as to target time, the activity coordination engine 1 16 may be programmed to set a target time as to meet assumed customer expectations for the particular scenario. In some embodiments, the coordination server 110 includes a data store 118 containing criteria associated with predetermined target time inferences. The activity coordination engine 114 maps customer activity information against the predetermined criteria to yield inferences dictating whether a delivery target time is to be related the activity start time or activity end time. Further, in an embodiment, the inferences may dictate whether an offset period is to be applied to the target time, the amount of the offset period, and whether the offset is applied before or after the activity start time or activity end time.
[0082] For example, in the example where the activity is vehicle charging, if the vehicle charging service customer is the end consumer of a food order, the customer may specify that they wish to receive the food for consumption during the charging. In this case, the target time may be set as the start time of the charging activity. That customer may instead desire to take the food to another location, in which case the target time may be a short offset period before the end time, such as 10 minutes, so the food does not sit long before customer leaves. If the customer of the charging activity is a delivery driver handling a delivery of the food order to a different location, the activity coordination engine 116 may assume the target time should be at the charging session end time or an offset period before the end time to minimize time the food items sit before being delivered. Alternatively, the customer be a delivery driver who desires to exchange their vehicle for a charged vehicle (e.g., scooter or bike exchange), wherein the target time is the vehicle exchange, allowing the driver to quickly pick up the food order from the preparation facility 136 on a next leg of delivery to the consumer location. [0083] Other situations may require different determinations. For example, where the activity is a flight from an airport and the food order is ordered for delivery to the airport gate waiting area, and the activity start time may be defined as the flight boarding time, unless otherwise specified the target time may be determined as an offset period (e.g., 40 minutes) prior to the flight boarding time (start time) so that the customer has time to comfortably consume the food before boarding. The customer might also want to receive food delivered shortly after a flight arrives at a destination, and the food may be delivered, for example to a baggage claim area, in which the target time would desirably be set an offset period after flight arrival (activity end time), with the offset allowing sufficient time to deboard the plane and walk to the baggage claim area (e.g., 15 min.).
In an example where the activity is a hotel stay, the start time may be defined at the check-in, and unless otherwise specified the target time may be determined as an offset period (e.g., 15 min.) after the start time so as to allow time for the customer to get settled in their hotel room before the food order is delivered to their room. Many other situations are possible, and criteria for each situation the activity coordination engine 116 can be programmed and stored in the data store 118 with corresponding inferences to determine the target time based on activity timing so as to provide a pleasant experience as expected by the customer.
[0084] In an embodiment, the activity service control device 152 (FIG. 1), 152A, B (FIG. 2) automatically monitors the activity and generates updates of customer activity information (e.g., expected time to charge, flight arrival/departure status) and send updated activity information to the coordination server 1 10 for the production system to provide prepared food at the new updated target location/time. In the airport arrival example, if a customer’s flight is re-routed to another airport, the activity system, may automatically update the location information of the activity information, and in response the coordination server may stop any on-going activity for the order at a first production system associated with the first airport, and initiate production at a second production system at a second airport. [0085] In the vehicle charging example of FIG. 2, the customer activity information be updated in response to the occurrence of certain events, periodically, or from time to time, the charging-service instance may be updated to an updated target time. The charging activity service control device 152 may initiate an update of the charging- service instance by sending a message with the pertinent updated information to the coordination 110. An update to the target time may be based on a new determined target time which may be adjusted based on new customer activity information including charging parameters (e.g., available current/voltage, connection status, updated vehicle battery status, vehicle charge state, etc.), initial or status of hookup of the customer’s vehicle to a charging station 254, reaching a certain defined charging milestone, such as 75% charged, a requested schedule change by the consumer made by the consumer via the user interface, or the like.
[0086] Upon receiving an update message of target time and/or customer activity information for the charging- service instance, the activity coordination engine 116 may determine whether the updated information is sufficient to justify changing the food- preparation information. In example, the activity coordination engine 116 may apply a threshold test that will avoid modifying food preparation operations when a change in activity is insubstantial, but cause modifying the food preparation operations when a change in the activity crosses a threshold. Such a threshold may be based on a percent change in estimated charge time, percent change in target time, or a percentage of food preparation completion. If the threshold is exceeded, the activity coordination engine 116 may cause the control module 1 16 to communicate modified target time information to the routing engine 142 and/or preparation engine 132 to adjust the preparation operations and/or delivery operations.
[0087] Additionally or alternatively to providing vehicle-charging service in the system 200 of FIG. 2, the activity subsystems 150A, 150B may offer a vehicle-swap service to exchange a vehicle, such as a rented scooter or bicycle with a depleted battery, for a vehicle with a charged battery. To provide this vehicle- swap service, one or more spare vehicles, such as spare vehicle 258A, may be provided and tracked as a part of the vehicle- swap inventory. The traded- in vehicle with depleted battery may be charged and added to the vehicle-swap inventory when the charging is complete.
[0088] In a related embodiment, activity coordination engine 116 includes security provisions for controlling access from third-party systems such as charging activity service control device 152A, 152B. For instance, cryptographic techniques such as digital certificates, symmetric or asymmetric keys, one-time-use credentials, block chain, and the like, without limitation, may be employed to ensure the authenticity of authorized third-party systems and mitigate or obviate attacks. Activity coordination engine 1 16 may provide an application programming interface (API) that authorized and validated third- party systems can access to exchange pertinent information regarding charging operations.
[0089] The coordination server 1 10 further communicates relevant customer activity information and order information to the routing engine 142 and/or preparation engine 132. These communications may include the target time for the ordered food items once it becomes sufficiently known or possible to estimate. For example, if the food preparation is to be timed to the designated arrival time of the customer to the vehicle- charging substation 150A, 150B, then the delivery time is known or may be determined and updated based on at least the location of the customer and route information including routing, traffic, weather, construction, and other appropriate information. If the target time is based on the completion time of the charging, the target time may remain unknown at the time of order placement and acceptance and, the activity coordination engine 116 may postpone sending at least some of the relevant food-preparation information to the preparation engine 132 until the customer arrives at the charging station and electrical measurements are made to estimate the charging time. In this example, other food-preparation and logistical information may still be supplied, such as identification of the ordered food item, which may be useful for materials provisioning purposes. [0090] Similar embodiments may enable delivery upon the departure time from the vehicle-charging activity service subsystem 150A, 150B (e.g., based on an estimate of the charge completion time, which may be determined and/or updated after the charging process has started and the state of the vehicle’s battery is determined), a time defined according to a specified offset period from either the arrival or the departure time, or at a consumer-specified time of day. In a related embodiment, the consumer may specify a time limit at which the charging process is to be terminated irrespective of whether the battery is fully charged, such that the charging process completion time is determined as the earlier of either the time of actual charging completion to full battery capacity, or the specified time limit.
[0091] In some embodiments, a customer activity and its association with a food order can be inferred based on various predetermined criteria being met. For example, where the routing engine 132 has assigned a particular delivery vehicle and driver to deliver a particular food order, customer activity information from the activity service control device 152 may indicate that the delivery vehicle is charging. The activity service control device 152 can infer that the activity is associated with the food order.
[0092] The association of the charging- service instance with the food order allows the food preparation and delivery to be timed to coincide in a useful way with the vehicle charging operation, or vice-versa. In a related embodiment, activity coordination engine 116 receives revised estimates of the charging completion time and provides this information to preparation engine 132 and/or routing engine 142 to adjust the food- preparation and routing scheduling accordingly.
[0093] For instance, the activity coordination engine 1 16 can indicate the estimated target time to routing engine 142 and/or preparation engine 132, which in turn can schedule production and delivery of the ordered food item such that the food item is delivered at or near the target time. In one example, the charging service may be terminated at the time when the food order is delivered to the consumer. In another example, the customer may specify a desired target time for food delivery time or charging completion as part of the food order placement or charging service initiation, and the activity coordination engine 116 can schedule the charging completion time and the food delivery time to coincide at the consumer- specified target time. In some cases, the target time may include an offset period to ensure preparation of the food product at a time prior to charging completion, a time after arrival, etc. If the target time is a pick up time by a customer delivery driver, the delivery time may include an estimated route time to deliver the product to the final consumer.
[0094] The vehicle-charging activity service subsystem 150A, 150B may be operated independently from any food order. However, various advantages may be realized when the charging activity service control device 152A, 152B is coordinated with food orders via activity coordination engine 116. The activity coordination engine 116 can associate the charging-service instance with the food order for the customer, if any, that is being handled or queued by the preparation engine 132 or the routing engine 142, based on commonality of customer account between the charging-service instance and the food order, a specific customer indication of association between customer activity
information and food order information, or an indication that the charging- service instance is for a vehicle or driver assigned a next leg of a delivery route of the food order, or any other appropriate manner.
[0095] In vehicle-charging example of FIG. 2, the order entry subsystem that sends food order information to the coordination server 1 10 may also facilitate reserving and purchasing vehicle-charging services at on-board or participating third-party vehicle- charging systems the activity service subsystems 150A, 150B. In these embodiments, the charging service may be selected, scheduled, and purchased together with a food order. Advantageously, food orders and activity services purchased together may be
automatically associated, allowing the activity coordination engine 1 16 to automatically determine the association.
[0096] To enable such coordination at the ordering stage, FIGS. 6A-B illustrate examples of user interfaces that present an offer for entering a food order in association with a vehicle charging activity. FIG. 6 A shows a graphical user interface 602 displayed on a user device 124. In this example, a customer has already ordered a vehicle-charging session to begin when the customer’s vehicle arrives at the charging location, as indicated in a first portion 604 of the graphical user interface 602. An offer is presented to the customer in a second portion 606 of the graphical user interface 602, inviting the customer to place a food order to be delivered upon arrival. If the customer places the food order, the target time in the example of FIG. 6A may be the arrival time at the charging activity substation 152A (FIG. 2). Another example is shown in FIG. 6B, which illustrates a graphical user interface 612 displayed on a user device 124. In this example, a first portion 614 of the graphical user interface 612 indicates that a customer has connected their vehicle to a charging station and has begun charging. The first portion 614 of the graphical user interface further indicates an estimated charge time 616. An offer is presented in a second portion 618 of the graphical user interface 618 inviting the customer to place a food order to be delivered during charging. If the customer places the food order, the target time may be determined to be an offset period before the charge completion time, so the customer has time to enjoy consuming the food while waiting. Alternatively, a different option may be presented seeking input from the customer as to whether the food should be delivered shortly before completion to take to another location.
[0097] Turning now to FIG. 7A-B aspects of an example process for associating a food order with an activity and determining a target time are illustrated, as may be performed by the coordination server 1 10. The coordination server 1 10 includes a computing platform 700 with a processor, a memory in communication with the processor, the memory having computer-readable instructions 702 stored thereon that when executed, transform the computing platform 700 into a special-purpose machine to carry out a process that includes operations 712-744 as follows.
[0098] Referring first to FIG. 7A, which illustrates operations 712-726, at operation 712, the food order information is received about a food order, and customer activity information in connection with a customer activity are accessed. The food order information may be provided, for example directly from order entry subsystem 120. The order may include an ID associated with a customer account, usually belonging to the consumer, order identifier, item identifier, etc. The customer activity information may be accessed, for example, from the activity service control device 152. At operation 714, the coordination server 110 determines if the customer activity is associated with the food order, associating the order identifier with an active or queued customer activity, such as a vehicle charging activity. The existence of the active or queued customer activity may be indicated by the presence of a customer activity charging-service instance associated with the same user account ID, food order identifier, delivery vehicle identifier, or any other appropriate associated identifier for example, which may be provided by the consumer of the food product or matched by the preparation engine or routing engine with a customer delivery driver selected to deliver the food product to the consumer in a next leg of delivery. The association may be made by matching and assigning the customer delivery driver identifier associated with an order and/or customer activity by matching the food item preparation time with an activity time of a queued or active customer activity, such as charging of a delivery vehicle. Determining a delivery vehicle for the next leg of delivery to the consumer may be based on order information, delivery vehicle information, customer activity information, and any other appropriate
information.
[0099] At operation 715, an inquiry is made as to whether the target time is already specified and fixed. This may include analyzing the customer activity information to for such a target time. If operation 715 determines the target time is specified and fixed, the process branches to operation 726, where the food target time and, in the case of activity coordination engine 116, the location for the delivery, are sent to the routing engine 142. If not, the target time is to be determined based on the activity, the process moving on to operation 718. In an embodiment, operation 718 creates or retrieves customer activity information in the form of a charging-service instance. The charging- service instance may be created by the activity coordination engine 1 16 in situations where the activity service controller, respectively, does not create it; whereas the activity service instance may be retrieved by the activity coordination engine 116 when it already exists. The activity service instance may not exist in the example of a consumer arriving at a transportation station (airport, train station, dock, etc.) for a user indicated transport either departing from or arriving at the transportation station. For example, a user may indicate an arriving ferry or departing flight to be coordinated with the food order. The activity controller may access en route information of the indicated transport to determine the associated arrival or departure and determine the target time on that information, any off- set time (e.g., time to occur before departure or after arrival), and any other appropriate information.
[00100] At operation 719, a determination is made as to whether the target time is based on the activity start time or the activity end time. If the target time is of a type based the activity end time, the process advances to 720, where the coordination server 1 10 reads or estimates the end time from the customer activity information such as the customer activity service instance, or estimating of the end time, such as by determining a battery charge completion time based on available metrics. If the type of target time for the food order is based on the start time of the customer activity, the process advances to 922, where the coordination server 1 10 reads or estimates the consumer’s start time, such by reading a scheduled arrival time from the customer activity information, or estimates the start time such as by estimating the consumer’s arrival time based on customer’s location, traffic flow data, and any routing information.
[00101] At operation 724, a time offset period is applied to the target time, if specified in the food-delivery order or sometimes as predetermined based on the circumstances. For example, the customer may specify in the food order information to have the food item delivered 20 minutes prior to or after the activity.
[00102] The process advances to 726, where the coordination server sends food target time and determined delivery time and location, if applicable (for next leg delivery), to the preparation engine 132 and/or routing engine 142, thereby requesting the preparation engine 132 and/or routing engine 142 to determine operations such that the food items in the food order are prepared and delivered to the delivery location at the delivery target time. Alternatively or in addition, at operation 726, the coordination engine 110 may receive information from the preparation engine concerning availability of preparation facilities to prepare the food item (e.g., volume, inventory, etc.) and/or receive information from the routing engine concerning availability of delivery vehicles to serve the delivery location. Based at least in part on this received availability information, the coordination engine 110 may instruct the preparation engine 132 and/or routing engine 142 to coordinate preparation and delivery so the delivery target time is met.
[00103] Now turning to FIG. 7B, which illustrates a flow of operations 728-744, at operation 728, the coordination server 1 10, working with the order entry subsystem 120, sends a notification of the food delivery target time to the consumer. This may result in causing the target time to be displayed on a user interface, or sent as a text message, email, or other form of communication
[00104] At operation 730, the coordination server 110 receives updates of the customer activity information. This may include, for example, receiving updated customer activity information pushed from the activity service control device 152 (FIG. 1 ), or receiving updated customer activity information pulled from the activity service control device 152 in response to the coordination server 1 10 sending a periodic‘ping’ requesting that any updates be sent. Additionally or alternatively, the preparation engine 132 and/or routing engine 142 may send updated preparation or routing information to the coordination server 110 based on status data for preparation or delivery operations. For example, estimated preparation time or estimated delivery time may change due to previously unforeseen circumstances. In one embodiment, the activity coordination engine may apply the updated target time to the estimated charge-completion time if this time is applicable to the food target time. [00105] At operation 732, the coordination server 1 10 determines if the updated customer activity information reflects a change in delivery location. If so, the process branches to operation 734 to modify the routing information and modify the target time to reflect the updated location. For example, in one embodiment, the coordination server 1 10 sends the updated location to the routing engine 142, which determines modified delivery routing information for the updated location, and the target time is revised pursuant to any resulting changes affecting timing for the new route. The process then continues to operation 736. If no location updates occur at operation 732, the process also goes to operation 736.
[00106] At operation 736, updates to activity timing are determined. In a vehicle charging example, such a timing change could be caused by an extension of the charge completion time, or if a scheduled charge instance started earlier or later than estimated.
If a change in activity timing is detected at operation 736, the target time is modified at operation 738 and the process continues to operation 740. If no change in activity timing is detected at operation 736, the process continues to operation 740.
[00107] In some embodiments, a threshold test may be applied as discussed above to appraise whether or not the change in target time is significant enough to justify causing the preparation engine to modify preparation operations, or to cause the routing engine to modify delivery operations and logistics. Various thresholds may be applied, such as whether the change in target time exceeds a time amount, whether the preparation operation is beyond a percentage of completion, etc. The effect is to not disrupt preparation and routing information needlessly in response to small changes to the target time (e.g., less than 10 minutes), but to revise the preparation operations or delivery operations if changes to the target time is significant enough that such operational changes are needed to uphold quality of product or experience. If the modified target time does not exceed the threshold at operation 740, the process continues to operation 744. If at operation 740 the modified target time exceeds the threshold, the process continues to operation 742, at which the coordination server 1 10 sends the modified food delivery target time to the preparation engine, thereby causing a determination of modified preparation operations. In some situations, it is possible that the modified preparation operations may shift preparation to a different location if a different preparation facility would have better availability to complete the order to meet the modified target time. The process then continues to operation 744 to send a notification with the modified target time to the consumer.
[00108] Subsequently, the process returns to operation 730, continuing to receive updates until the order is fulfilled.
[00109] FIG. 8 is an example high-level process flow diagram illustrating a series of operations performed by an automated food preparation and distribution system. The system operates to coordinate food preparation, and in some cases delivery, with an activity in which a consumer may be engaged before, during, or after the food delivery. The series of operations illustrated in FIG. 8 may be carried out autonomously by a coordination server having a suitable architecture selected from among some of the embodiments described above in connection with system 100 of FIG. 1 and system 200 of FIG. 2.
[00110] At 802, the system receives food order information pertaining to at least one food item to be prepared for a customer who will consume the food item. The food item may be prepared, and in some cases delivered to a first customer (e.g., delivery vehicle) for eventual pick up or delivery to a second customer, e.g., the food item consumer, at a specified location. The order may or may not identify an activity being, or to be, undertaken by the customer. At operation 804 a record of the order is stored as a data structure in a tangible storage medium, such as at the data store 118 of FIG. 1. Still referring to FIG. 8, at operation 806, the coordination server reads the record of the order and computationally determines if an activity is sufficiently associated with the order to be incorporated autonomously into the food preparation logistics. Various determination criteria may be preconfigured in the coordination server to enable this functionality. [00111] As discussed above, any activity for which the start or end time is determinable, or at least possible to estimate, may be supported by suitable embodiments. Supported activities may be represented as a machine- storable and communicable set of data, and are managed, controlled, or represented by an autonomous information system that implements an activity service control device. To illustrate, without limitation, examples of activity service control devices include transportation logistics systems, event ticket sales systems, computing devices utilizing appointment- scheduling or calendar applications, and the like.
[00112] If decision 806 determines that the order contains sufficient specification of an activity, the process advances to operation 810, where the coordination server 110 connects with a compatible activity service control device 152 for data sharing. For instance, the coordination server 110, the activity service control device 152 , or both, may use an API or messaging facility through which an activity service-instance data structure may be sent, received, read, or modified.
[00113] If decision 806 determines that the order does not contain a sufficient specification of an activity, the coordination server 110 may nonetheless infer the customer’s participation in an activity that may be coordinated with the delivery. For example, the coordination server 110 may identify a match of a customer delivery driver with an order for delivery on the next leg of travel, and may determine and consider arrival, customer activity status, etc.
[00114] Accordingly, at 812, an activity inference process may be carried out. As discussed above, criteria may be stored in the data store 1 18 which align to certain inferred determinations. The inference process maps available information regarding routing information, food order information, customer activity information, and/or preparation information, and an inference can be applied when the information maps against criteria aligned to the particular inferential outcome. The activity inference process may take additional sources of information into account, such as the location or destination of the customer (e.g., as reported by the subject’s mobile device or navigation system during the ordering process), schedule entries in the subject’s calendar, publications by relevant media services indicating scheduled events at certain times and locations, and coincidence of the subject’s location or destination with those locations and scheduled event times, check in data to transportation (e.g., purchased airplane or ferry ticket, check in at charging facility, etc.) or the like. The output of the inference process may be an identification of a probable activity that the subject may be
participating in or planning, or an ordered list of such activities if the process returns multiple possible results.
[00115] At operation 814, the system may prompt the customer to verify participation or plans with regard to possible activities determined by the inference process. This may involve presenting a notification or graphical element in a client application interface or sending a text or other form of communication, seeking feedback from the customer to confirm if the activity should be associated with the food order.
[00116] At operation 816 the coordination server 110 determines the type of target time and the location for delivery. More specifically, the type of target time represents whether the food preparation is to be scheduled in accordance with the start or end of the activity (with or without an offset period), or whether the delivery is to be scheduled independent of the activity’s timing, and whether an offset period is to be applied. At operation 818, the coordination server updates an activity record that represents the scheduling of the activity. The activity record may be updated in response to changing circumstances or disruptions.
[00117] At operation 820, the system determines the food delivery target time based on the updated activity record and on the determined type of target time (with or without offsets). In addition, the delivery location is determined. Additionally, the system may determine not only the target time for the food preparation in coordination with the customer activity, but if the customer is a delivery vehicle for the next leg of food item delivery, the system may also determine the ultimate delivery time to the end consuming customer. The latter may be deduced or inferred, and optionally verified with the subject at this stage. Notably, the delivery location may be varied in response to variations in the activity schedule or in response to changing preferences of the customer.
[00118] At operation 822, the food delivery target time and delivery location information are transmitted to the preparation engine and/or routing engine, serving as instructions to generate and modify food preparation operations and/or delivery operations as appropriate to meet the modified target time. Operations 818-822 may be performed iteratively by the system at periodic intervals, from time to time, or in response to schedule or preference change notifications. Advantageously, compared to conventional solutions, this example method allows the automated food preparation and distribution system to determine and adjust the delivery time and location for a food delivery to improve the level of service as seen by the subject of the delivery, while reducing the subject’s inconvenience of having specifying details during and after the placement of the order for delivery.
[00119] FIG. 9 and the following discussion provide a brief, general description of an exemplary computing platform 900 that may be used to implement a controller, engine, module, device, or server, such as any or all of the coordination server 110, order engine 122, preparation engine 132, routing engine 142, or activity service control device 152. Although the coordination server 110, order engine 122, routing engine 142, preparation engine 132, and activity service control device 152, may be implemented as functional elements of a unitary computing platform, in various related embodiments some or all of the functionality of the coordination server 110, order engine 122, routing engine 142, preparation engine 132, or activity service control device 152, may be performed using one or more additional stand-alone computing systems which may be communicatively coupled with other computing systems. For example, an order entry subsystem 120 and the associated order engine 122 may be disposed in a national or regional call or order aggregation center that is remote from the coordination server 110. In another example, the routing engine 142, or the preparation engine 132 may be disposed in some or all of the delivery vehicles, and the activity service control device 152 may be disposed at a facility that provides vehicle charging services remote from the coordination server. The coordination server 110 may implement some or all of the various functions and operations discussed immediately above in reference to FIG. 1.
[00120] Although not required, some portion of the embodiments will be described in the general context of computer-executable instructions or logic, such as application programs, macros, or other objects or portions of code being executed by a computing platform. Those skilled in the relevant art will appreciate that the illustrated
embodiments as well as other embodiments can be practiced with other computer system configurations, including handheld devices for instance Web enabled cellular phones or PDAs, multiprocessor systems, microprocessor-based or programmable consumer electronics, personal computers (“PCs”), networked PCs, clustered, server-farm, or other cloud-computing arrangements, mainframe computers, and the like. The embodiments can be practiced in distributed computing environments where tasks or engines are performed by remote processing devices, which are linked through a communications network. In a distributed computing environment, program engines may be stored in both local and remote memory storage devices and executed using one or more local or remote processors, microprocessors, digital signal processors, controllers, or
combinations thereof.
[00121] The computing platform 900 may take the form of any current or future developed computing system capable of executing one or more instruction sets. The computing platform 900 includes a processing unit 906, a system memory 908 and a system bus 910 that communicatively couples various system components including the system memory 908 to the processing unit 906. The computing platform 900 will at times be referred to in the singular herein, but this is not intended to limit the
embodiments to a single system, since in certain embodiments, there will be more than one system or other networked computing device involved.
[00122] The processing unit 906 may be any logic processing unit, such as one or more central processing units (CPUs), microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field programmable gate arrays
(FPGAs), etc. Unless described otherwise, the construction and operation of the various blocks shown in FIG. 6 are of conventional design. As a result, such blocks need not be described in further detail herein, as they will be understood by those skilled in the relevant art.
[00123] The system bus 910 can employ any known bus structures or architectures, including a memory bus with memory controller, a peripheral bus, and a local bus. The system memory 908 includes read-only memory (“ROM”) 912 and random access memory (“RAM”) 914. A basic input/output system (“BIOS”) 916, which can form part of the ROM 912, contains basic routines that help transfer information between elements within the computing platform 900, such as during start-up. Some embodiments may employ separate buses for data, instructions and power.
[00124] The computing platform 900 also includes one or more internal non-transitory storage systems 918. Such internal non-transitory storage systems 918 may include, but are not limited to, any current or future developed persistent storage device 920. Such persistent storage devices 920 may include, without limitation, magnetic storage devices such as hard disc drives, electromagnetic storage devices such as memristors, molecular storage devices, quantum storage devices, electrostatic storage devices such as solid state drives, and the like.
[00125] The computing platform 900 may also include one or more optional removable non-transitory storage systems 922. Such removable non-transitory storage systems 922 may include, but are not limited to, any current or future developed removable persistent storage device 926. Such removable persistent storage devices 926 may include, without limitation, magnetic storage devices, electromagnetic storage devices such as memristors, molecular storage devices, quantum storage devices, and electrostatic storage devices such as flash drives, or the like.
[00126] The one or more internal nontransitory storage systems 918 and the one or more optional removable nontransitory storage systems 922 communicate with the processing unit 906 via the system bus 910. The one or more internal nontransitory storage systems 918 and the one or more optional removable nontransitory storage systems 922 may include interfaces or device controllers (not shown) communicatively coupled between nontransitory storage system and the system bus 910, as is known by those skilled in the relevant art. The nontransitory storage systems 918, 922, and their associated storage devices 920, 926 provide nonvolatile storage of computer-readable instructions, data structures, program engines and other data for the computing platform 900. Those skilled in the relevant art will appreciate that other types of storage devices may be employed to store digital data accessible by a computer, such as magnetic media, flash memory cards, Bernoulli cartridges, RAMs, ROMs, smart cards, etc.
[00127] Program modules can be stored in the system memory 908, such as an operating system 930, one or more application programs 932, other programs or modules 934, drivers 936 and program data 938.
[00128] The application programs 932 may include, for example, one or more machine executable instruction sets capable of providing an order entry subsystem 120 able to receive food item orders in any form of communication, including without limitation, voice orders, text orders, and digital data orders. The application programs 932 may additionally include one or more machine executable instruction sets capable of providing a routing engine 142 able to provide text, voice, or graphical routing instructions to the output devices 250 in some or all of the delivery vehicles. Such a routing engine machine executable instruction set may also be executable by one or more controllers in a routing engine 142 installed in some or all of the delivery vehicles. The application programs 932 may further include one or more preparation engine machine executable instructions sets capable of outputting preparation instructions to the appliances of the production system 106.
[00129] Such preparation instructions can be determined by the computing platform 900 using any number of inputs including at least, the food type in a particular appliance and the available preparation time before each respective food item is ready at the target time and location. Such a preparation engine machine executable instruction set may be executed in whole or in part by one or more controllers in the preparation engine 132.
[00130] The system memory 908 may also include other programs/engines 934, such as including logic for calibrating or otherwise training various aspects of the computing platform 900. The other programs/engines 934 may additionally include various other logic for performing various other operations or tasks.
[00131] The system memory 908 may also include any number of communications programs 940 to permit the computing platform 900 to access and exchange data with other systems or components, such as with the routing engines 116, preparation engines 118, order entry engines 104, etc.
[00132] While shown in FIG. 9 as being stored in the system memory 908, all or a portion of the operating system 930, application programs 932, other programs/engines 934, drivers 936, program data 938 and communications 940 can be stored on the persistent storage device 920 of the one or more internal non-transitory storage systems 918 or the removable persistent storage device 926 of the one or more optional removable non- transitory storage systems 922.
[00133] A user can enter commands and information into the computing platform 900 using one or more input/output (I/O) devices 942. Such I/O devices 942 may include any current or future developed input device capable of transforming a user action or a received input signal to a digital input. Example input devices include, but are not limited to, a touchscreen, a physical or virtual keyboard, a microphone, a pointing device, or the like. These and other input devices are connected to the processing unit 906 through an interface 946 such as a universal serial bus (“USB”) interface communicatively coupled to the system bus 910, although other interfaces such as a parallel port, a game port or a wireless interface or a serial port may be used. A display 970 or similar output device is
communicatively coupled to the system bus 910 via a video interface 950, such as a video adapter or graphical processing unit (“GPU”). [00134] In some embodiments, the computing platform 900 operates in an environment using one or more of the network interfaces 956 to optionally communicatively couple to one or more remote computers, servers, display devices 250 or other devices via one or more communications channels, for example, one or more networks such as the network 964. These logical connections may facilitate any known method of permitting computers to communicate, such as through one or more LANs or WANs. Such networking environments are well known in wired and wireless enterprise-wide computer networks, intranets, extranets, and the Internet.
[00135] Further, the database interface 952, which is communicatively coupled to the system bus 910, may be used for establishing communications with a database stored on one or more computer-readable media 960. For example, such a database 960 may include a repository for storing information regarding food item preparation conditions as a function of time, etc.
Additional Notes and Examples
[00136] The disclosure presented herein may be considered in view of the following examples.
[00137] Example A: A food preparation and delivery system, comprising: a preparation engine to determine food preparation operations for preparing an item of a food order at a food preparation facility; a routing engine to determine delivery operations for delivering the item to a delivery location; and a coordination server having a processor, a memory in communication with the processor, the memory having computer-readable instructions stored thereon that, when executed by the processor, cause the processor to: receive food order information representing a food order that includes at least a food item and a delivery location; access customer activity information relating to a customer activity, the customer activity information including at least a start time or an end time of the activity; determine if the customer activity is associated with the food order, and if so; determine a delivery target time in relation to the start time or end time of the activity; and send the delivery target time to the preparation engine and routing engine, requesting food preparation and delivery operations such that the food item is prepared by the food preparation facility and delivered to the delivery location at the delivery target time.
[00138] Example B: The system of Example A, wherein at least some of the food orders are received from client applications executing on respective user devices, wherein to determine if the customer activity is associated with the food order includes to send a message to the client application on the user device that originated the food order, the message requesting verification if the customer activity is associated with the food order.
[00139] Example C: The system of Examples A and B, further comprising an activity coordination engine executing in on the coordination server, wherein the customer activity information is formatted in a service- instance data structure readable by the activity coordination engine, the data structure including fields of information types which, if available, may be useful to determining if the customer activity is associated with the food order and determining the target time.
[00140] Example D: The system of Examples A through C, wherein at least some of the food orders are received from client applications executing on respective user devices, wherein the instructions further cause the processor to send a notification to the of the food delivery target time to the user device.
[00141] Example E: The system of Examples A through D, wherein the instructions further cause the processor to: receive updated customer activity information;
and determine a modified delivery target time based upon a change in the activity start or end time.
[00142] Example F: The system of Examples A through E, wherein the instructions further cause the processor to: if the updated customer activity information indicates a change in delivery location, request the routing engine to modify delivery operations based on the change in delivery location.
[00143] Example G: The system of Examples A through F, wherein the instructions further cause the processor to: check whether the change in delivery target time exceeds a threshold, and if the threshold is exceeded: instruct the preparation engine of the modified target time, enabling the preparation engine to modify food preparation operations such that the food item is prepared by the food preparation facility and delivered to the delivery location at the modified target time.
[00144] Example H: The system of Examples A through G, wherein the customer activity is charging a vehicle, and wherein the customer activity information is sent by an activity service control device that controls vehicle charging.
[00145] Example I: The system of Examples A through H, wherein the start time is an arrival time of a customer associated with the first food order at a location of the vehicle- charging service, and wherein the end time is an estimated battery-charging completion time.
[00146] Example J: The system of Examples A through I, wherein the delivery operations include preparing the item for pick-up, and wherein the delivery location is the preparation facility.
[00147] Example K: The system of Examples A through J, further comprising: a data store containing predetermined criteria associated with inferences, wherein to determine a delivery target time in relation to the start time or end time of the activity includes to: map customer activity information against the predetermined criteria to determine if the delivery target time is inferred to be the start time, end time, or offset by a period of time from either the start time or end time
[00148] Example L: A computer- implemented method for coordinating food preparation with a customer activity, the computer- implemented method comprising: receiving, at a coordination server, food order information representing an order for at least one food item and a delivery location; accessing, from an activity service control device, a customer activity information corresponding to an activity of a customer, the customer activity information including at least a start time or end time of the activity; determining if the food order is associated with the customer activity, and if so; determining a delivery target time relative to the activity start or end time; and requesting, from a preparation engine, food preparation operations and also requesting, from a routing engine, delivery operations, such that the food preparation and delivery operations enable the at least one the food item in the food order to be prepared and delivered to the delivery location at the delivery target time; receiving updated customer activity information from the activity control device; and if updated customer activity information reflects a change in activity timing, determining a modified target time based on updated timing information; and requesting, from the preparation engine and routing engine, modified food preparation operations and delivery operations so as to meet the modified target time.
[00149] Example M: The computer- implemented method of Example L, further comprising: if updated customer activity information reflects a change in delivery location, requesting, from the routing engine, modified delivery operations to the changed delivery location; and modifying the target time based on the modified delivery operations.
[00150] Example N: The computer- implemented method of Examples L and M, further comprising: receiving, from the preparation engine, availability of preparing the food item at one or more preparation facilities; and receiving, from the routing engine, availability of delivery vehicles to serve the delivery location; whereby requesting operations for food preparation and delivery is based at least in part on said availability of preparing and availability of delivery vehicles.
[00151] Example O: The computer-implemented method of Examples L through N, wherein at least some of the food orders are received from client applications executing on respective user devices, whereby determining if the customer activity is associated with the food order includes sending a message to the client application on the user device that originated the food order, the message requesting verification if the customer activity is associated with the food order.
[00152] Example P: The computer-implemented method of Examples M through O, further comprising: displaying a graphical user interface on a user device presenting an offer to enter a food order to the customer in association with the activity. [00153] Example Q: The computer- implemented method of Examples L through P, wherein the customer activity includes vehicle charging of a customer vehicle associated with the food order, and wherein the change in activity timing is a change in the estimated time to charge.
[00154] Example R: The computer- implemented method of Examples L through Q, wherein the customer activity includes vehicle charging of a delivery vehicle for delivery of the food order, and determining an updated target time includes a change in estimated a time of arrival based at least in part on routing information.
[00155] Example S: The computer- implemented method of Examples L through R, wherein determining the target time for the food order includes applying a defined offset period from the activity start or end time.
[00156] Example T: The computer- implemented of Examples L through S, wherein requesting modified food preparation operations causes the preparation engine to:
determine a new start time for food preparation; pause an in-process food preparation process; adjust at least one appliance operational parameter based on the updated food preparation process; cancel preparation of the food order at a first facility and initiate preparation of the food order at a second preparation facility different from the first preparation facility.
[00157] Example U: The computer- implemented method of Examples L through T, wherein requesting modified delivery operations includes selecting a new delivery vehicle for delivery of the food order, selecting a new route for a delivery vehicle based at least in part on the updated timing information and updated delivery location.
[00158] Various embodiments of the devices or processes via the use of block diagrams, schematics, and examples have been set forth herein. Insofar as such block diagrams, schematics, and examples contain one or more functions or operations, it will be understood by those skilled in the art that each function or operation within such block diagrams, flowcharts, or examples can be implemented, individually or collectively, by a wide range of hardware, software, firmware, or virtually any combination thereof. In one embodiment, the present subject matter may be implemented via Application Specific Integrated Circuits (ASICs). However, those skilled in the art will recognize that the embodiments disclosed herein, in whole or in part, can be equivalently implemented in standard integrated circuits, as one or more computer programs running on one or more computers (e.g., as one or more programs running on one or more computer systems), as one or more programs running on one or more controllers (e.g., microcontrollers) as one or more programs running on one or more processors (e.g., microprocessors), as firmware, or as virtually any combination thereof, and that designing the circuitry or writing the code for the software and or firmware would be well within the skill of one of ordinary skill in the art in light of this disclosure.
[00159] When logic is implemented as software and stored in memory, one skilled in the art will appreciate that logic or information, can be stored on any computer readable medium for use by or in connection with any computer or processor related system or method. In the context of this document, a memory is a computer readable medium that is an electronic, magnetic, optical, or other another physical device or means that contains or stores a computer or processor program. Logic or the information can be embodied in any computer readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions associated with logic or information. In the context of this specification, a "computer readable medium" can be any means that can store, communicate, propagate, or transport the program associated with logic or information for use by or in connection with the instruction execution system, apparatus, or device. The computer readable medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or
semiconductor system, apparatus, device, or propagation medium. More specific examples (a non- exhaustive list) of the computer readable medium would include the following: an electrical connection having one or more wires, a portable computer diskette (magnetic, compact flash card, secure digital, or the like), a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM, EEPROM, or Flash memory), an optical fiber, and a portable compact disc read-only memory (CDROM). Note that the computer-readable medium, could even be paper or another suitable medium upon which the program associated with logic or information is printed, as the program can be electronically captured, via for instance optical scanning of the paper or other medium, then compiled, interpreted or otherwise processed in a suitable manner if necessary, and then stored in memory. A computer- readable medium may be specified as being a non-transitory medium, in which case the medium includes tangible physical articles or devices (e.g., magnetic, electrostatic, hard- wired, or optical devices, random-access memory, read-only memory, logic circuitry, or the like) are included, but transitory signals and other phenomena are expressly excluded.
[00160] Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. For example, the coordination server 1 10 may implement some or all of the various functions and operations discussed herein. Any or all of the order engine 122, preparation engine 132, routing engine 142, or activity service control device 152 could be implemented as part of the coordination server 110. In another example, the routing engine 142, or the preparation engine 132 may be disposed in some or all of the delivery vehicles. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.
[00161] From the foregoing it will be appreciated that, although specific embodiments have been described herein for purposes of illustration, various modifications may be made without deviating from the spirit and scope of the teachings. Accordingly, the claims are not limited by the disclosed embodiments.

Claims

WHAT IS CLAIMED IS:
1. A food preparation and delivery system, comprising:
a preparation engine to determine food preparation operations for preparing an item of a food order at a food preparation facility;
a routing engine to determine delivery operations for delivering the item to a delivery location; and
a coordination server having a processor, a memory in communication with the processor, the memory having computer-readable instructions stored thereon that, when executed by the processor, cause the processor to:
receive food order information representing a food order that includes at least a food item and a delivery location;
access customer activity information relating to a customer activity, the customer activity information including at least a start time or an end time of the activity;
determine if the customer activity is associated with the food order, and if so;
determine a delivery target time in relation to the start time or end time of the activity; and
send the delivery target time to the preparation engine and routing engine, requesting food preparation and delivery operations such that the food item is prepared by the food preparation facility and delivered to the delivery location at the delivery target time.
2. The system of claim 1 , wherein at least some of a plurality of food orders are received from client applications executing on respective user devices, wherein to determine if the customer activity is associated with the food order includes to send a message to the client application on the user device that originated the food order, the message requesting verification if the customer activity is associated with the food order.
3. The system of claim 1, further comprising an activity coordination engine executing in on the coordination server, wherein the customer activity information is formatted in a service- instance data structure readable by the activity coordination engine, the data structure including fields of information types which, if available, may be useful to determining if the customer activity is associated with the food order and determining the delivery target time.
4. The system of claim 1, wherein at least some of a plurality of food orders are received from client applications executing on respective user devices, wherein the instructions further cause the processor to send a notification to the of the delivery target time to the user device.
5. The system of claim 1, wherein the instructions further cause the processor to:
receive updated customer activity information; and
determine a modified delivery target time based upon a change in the activity start or end time.
6. The system of claim 5, wherein the instructions further cause the processor to:
if the updated customer activity information indicates a change in delivery location, request the routing engine to modify delivery operations based on the change in delivery location.
7. The system of claim 5, wherein the instructions further cause the processor to:
check whether the change in delivery target time exceeds a threshold, and if the threshold is exceeded:
instruct the preparation engine of the modified target time, enabling the preparation engine to modify food preparation operations such that the food item is prepared by the food preparation facility and delivered to the delivery location at the modified target time.
8. The system of claim 1 , wherein the customer activity is charging a vehicle, and wherein the customer activity information is sent by an activity service control device that controls vehicle charging.
9. The system of claim 8, wherein the start time is an arrival time of a customer associated with first food order at a location of a vehicle- charging service, and wherein the end time is an estimated battery-charging completion time
10. The system of claim 1, wherein the delivery operations include preparing the item for pick-up, and wherein the delivery location is the preparation facility.
11. The system of claim 1, further comprising:
a data store containing predetermined criteria associated with inferences, wherein to determine a delivery target time in relation to the start time or end time of the activity includes to: map customer activity information against the predetermined criteria to determine if the delivery target time is inferred to be the start time, end time, or offset by a period of time from either the start time or end time.
12. A computer- implemented method for coordinating food preparation with a customer activity, the computer- implemented method comprising:
receiving, at a coordination server, food order information representing an order for at least one food item and a delivery location;
accessing, from an activity service control device, a customer activity information corresponding to an activity of a customer, the customer activity information including at least a start time or end time of the activity;
determining if the food order is associated with the customer activity, and if so;
determining a delivery target time relative to the activity start or end time; and
requesting, from a preparation engine, food preparation operations and also requesting, from a routing engine, delivery operations, such that the food preparation and delivery operations enable the at least one the food item in the food order to be prepared and delivered to the delivery location at the delivery target time;
receiving updated customer activity information from the activity control device; and
if updated customer activity information reflects a change in activity timing, determining a modified target time based on updated timing information; and requesting, from the preparation engine and routing engine, modified food preparation operations and delivery operations so as to meet the modified target time.
13. The computer- implemented method of claim 12, further comprising:
if updated customer activity information reflects a change in delivery location, requesting, from the routing engine, modified delivery operations to the changed delivery location; and modifying the target time based on the modified delivery operations.
14. The computer- implemented method of claim 12, further comprising:
receiving, from the preparation engine, availability of preparing the food item at one or more preparation facilities; and
receiving, from the routing engine, availability of delivery vehicles to serve the delivery location;
whereby requesting operations for food preparation and delivery is based at least in part on said availability of preparing and availability of delivery vehicles.
15. The computer- implemented method of claim 12, wherein at least some of the food orders are received from client applications executing on respective user devices, whereby determining if the customer activity is associated with the food order includes sending a message to the client application on the user device that originated the food order, the message requesting verification if the customer activity is associated with the food order.
16. The computer- implemented method of claim 12, further comprising:
displaying a graphical user interface on a user device presenting an offer to enter a food order to the customer in association with the activity.
17. The computer- implemented method of claim 12, wherein the customer activity includes vehicle charging of a customer vehicle associated with the food order, and wherein the change in activity timing is a change in an estimated time to charge.
18. The computer- implemented method of claim 12, wherein the customer activity includes vehicle charging of a delivery vehicle for delivery of the food order, and determining an updated target time includes a change in an estimated time of arrival based at least in part on routing information.
19. The computer- implemented method of claim 12, wherein determining the target time for the food order includes applying a defined offset period from the activity start or end time.
20. The computer- implemented method of claim 12, wherein requesting modified food preparation operations causes the preparation engine to: determine a new start time for food preparation; pause an in-process food preparation process; adjust at least one appliance operational parameter based on an updated food preparation process; cancel preparation of the food order at a first facility and initiate preparation of the food order at a second preparation facility different from the first preparation facility.
21. The computer- implemented method of claim 12, wherein requesting modified delivery operations includes selecting a new delivery vehicle for delivery of the food order, selecting a new route for a delivery vehicle based at least in part on the updated timing information and updated delivery location.
PCT/US2019/050265 2018-09-11 2019-09-10 Automated food preparation coordination with customer activity WO2020055770A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862729574P 2018-09-11 2018-09-11
US62/729,574 2018-09-11

Publications (1)

Publication Number Publication Date
WO2020055770A1 true WO2020055770A1 (en) 2020-03-19

Family

ID=69776853

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/US2019/050265 WO2020055770A1 (en) 2018-09-11 2019-09-10 Automated food preparation coordination with customer activity
PCT/US2019/050264 WO2020055769A1 (en) 2018-09-11 2019-09-10 Item provisioning via vehicles

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/US2019/050264 WO2020055769A1 (en) 2018-09-11 2019-09-10 Item provisioning via vehicles

Country Status (1)

Country Link
WO (2) WO2020055770A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220176842A1 (en) * 2020-12-07 2022-06-09 Honda Motor Co., Ltd. Electric vehicle (ev) charging station management
US20220180421A1 (en) * 2019-03-25 2022-06-09 Honda Motor Co., Ltd. Information provision system and information provision method
WO2024059307A1 (en) * 2022-09-16 2024-03-21 Motional Ad Llc Ride experience enhancements with external services

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7103244B2 (en) * 2019-01-23 2022-07-20 トヨタ自動車株式会社 Information processing equipment and information processing methods, programs

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030149585A1 (en) * 2001-10-25 2003-08-07 Simon Foster Network-based grocery store
US20090048890A1 (en) * 2007-08-16 2009-02-19 Burgh Stuart G Delivery Management System for Quick Service Restaurants
US20130207605A1 (en) * 2012-02-10 2013-08-15 General Electric Company Plug-in electric vehicle charging station with vending machine payment options
US20130346237A1 (en) * 2012-06-20 2013-12-26 Flybuy Technologies, Inc. Systems and methods for facilitating logistics time savings
US20140370167A1 (en) * 2013-06-18 2014-12-18 Alexander John Garden Systems and methods of preparing food products

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10640357B2 (en) * 2010-04-14 2020-05-05 Restaurant Technology Inc. Structural food preparation systems and methods
US20140257988A1 (en) * 2013-03-07 2014-09-11 Ford Global Technologies, Llc Method and system for selecting navigation routes and providing on-route advertising
US20150227890A1 (en) * 2014-02-07 2015-08-13 Kristin Kaye Bednarek Communications system and smart device apps supporting segmented order distributed distribution system
US9904900B2 (en) * 2015-06-11 2018-02-27 Bao Tran Systems and methods for on-demand transportation
US9469476B1 (en) * 2015-11-24 2016-10-18 International Business Machines Corporation Smart mat for package deliveries

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030149585A1 (en) * 2001-10-25 2003-08-07 Simon Foster Network-based grocery store
US20090048890A1 (en) * 2007-08-16 2009-02-19 Burgh Stuart G Delivery Management System for Quick Service Restaurants
US20130207605A1 (en) * 2012-02-10 2013-08-15 General Electric Company Plug-in electric vehicle charging station with vending machine payment options
US20130346237A1 (en) * 2012-06-20 2013-12-26 Flybuy Technologies, Inc. Systems and methods for facilitating logistics time savings
US20140370167A1 (en) * 2013-06-18 2014-12-18 Alexander John Garden Systems and methods of preparing food products

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220180421A1 (en) * 2019-03-25 2022-06-09 Honda Motor Co., Ltd. Information provision system and information provision method
US20220176842A1 (en) * 2020-12-07 2022-06-09 Honda Motor Co., Ltd. Electric vehicle (ev) charging station management
WO2024059307A1 (en) * 2022-09-16 2024-03-21 Motional Ad Llc Ride experience enhancements with external services

Also Published As

Publication number Publication date
WO2020055769A1 (en) 2020-03-19

Similar Documents

Publication Publication Date Title
WO2020055770A1 (en) Automated food preparation coordination with customer activity
US11754407B2 (en) Method and system for shared transport
US9933271B2 (en) System for directing a driver to a passenger based on a destination location specified by the driver
US20200256691A1 (en) System for generating travel route to be serviced by primary transportation service and secondary transportation service
US11079250B2 (en) Optimization of network service based on an existing service
US11587192B2 (en) System for navigating vehicles associated with a delivery service
US20220170753A1 (en) Dynamic route recommendation and progress monitoring for service providers
US11216770B2 (en) Optimizing service requests in transport supply-constrained sub-regions
WO2016025926A1 (en) Transportation services for package delivery
CN109376311A (en) Suitable for the multiple matched system of driver-motroist, method and apparatus for multiplying model altogether
WO2018209263A1 (en) Network computer system to position service providers using provisioning level determinations
US20220067616A1 (en) Payload Management for Vertical Take-Off and Landing Aircraft Utilizing Ground Transportation
US11144984B2 (en) Adaptive ordering from a vehicle
CN111612286B (en) Order distribution method and device, electronic equipment and storage medium
US20210075594A1 (en) Vehicle digital key cloud storage
WO2020102106A1 (en) Systems and methods for remote provider pool check-in for dynamic transportation networks
CN109886615A (en) Unmanned plane food delivery method and information system, server, medium
US20240078489A1 (en) Information processing apparatus and information processing method
US20230039994A1 (en) Multi-staged event processing based on client device data
US20240161024A1 (en) Dynamic Tracking and Coordination of Multi-leg Transportation
US20210383296A1 (en) Systems and methods for enhanced transportation dispatch

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19861190

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 16/06/2021)

122 Ep: pct application non-entry in european phase

Ref document number: 19861190

Country of ref document: EP

Kind code of ref document: A1