System and method for processing using weight data
By installing a weighing system at the service provider, measuring and verifying the weight of items in the order, the problem of incorrect items and inaccurate shipping times in the fulfillment request is solved, achieving more efficient shipping and more reliable order status verification.
Patent Information
- Application Number
- CN202380060538.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-07-18
- Filing Date
- 2023-07-24
- Publication Date
- 2025-03-28
AI Technical Summary
In the prior art, when processing fulfillment requests, it is difficult to ensure the correctness of the items and the accuracy of the transportation time, resulting in the waste of time of the transporter and the difficulty in verifying the claims of the end user.
The weighing system is introduced to verify the correctness of the order by measuring the actual weight of the item in the order, comparing it with the estimated weight, and notifying the transporter after the verification is passed to ensure the accuracy of the transport.
It effectively solves the problems of incorrect items and inaccurate transportation time, improves transportation efficiency, and provides end users and service providers with reliable verification of order status.
Smart Images

Figure CN119731676A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application is a PCT application of and claims the benefit of the filing dates of U.S. Provisional Application No. 63 / 401,024 filed on August 25, 2022 and U.S. Non-Provisional Application No. 18 / 354,213 filed on July 18, 2023, which are incorporated herein by reference. Summary of the invention
[0003] According to an embodiment, a method includes receiving, by a computer, a fulfillment request associated with one or more items; in response to receiving the fulfillment request, determining, by the computer, estimated weight data based on the one or more items in the fulfillment request; obtaining, by the computer, actual weight data associated with the fulfillment request for one or more items; verifying, by the computer, that the actual weight data corresponds to the estimated weight data; and performing additional processing, by the computer based on the verification.
[0004] Other embodiments include a computer comprising: a processor; and a computer-readable medium comprising code, the code being executable by the processor to perform a method comprising: receiving a fulfillment request associated with one or more items; in response to receiving the fulfillment request, determining estimated weight data based on the one or more items in the fulfillment request; obtaining actual weight data associated with the fulfillment request for one or more items; verifying that the actual weight data corresponds to the estimated weight data; and performing additional processing based on the verification.
[0005] Another embodiment includes a system comprising: a scale; and a computer, the computer coupled to the scale, the computer comprising a processor, and a computer-readable medium, the computer-readable medium comprising code, the code being executable by the processor to perform a method, the method comprising receiving a fulfillment request associated with one or more items; in response to receiving the fulfillment request, determining estimated weight data based on the one or more items in the fulfillment request; obtaining actual weight data associated with the fulfillment request for one or more items; verifying that the actual weight data corresponds to the estimated weight data; and performing additional processing based on the verification.
[0006] The nature and advantages of embodiments of the present invention may be better understood with reference to the following detailed description and accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0007] Figure 1 A block diagram illustrating a processing system according to an embodiment is shown.
[0008] Figure 2 A block diagram of a central server computer is shown according to an embodiment.
[0009] Figure 3 A block diagram of a weighing system according to an embodiment is shown.
[0010] Figure 4 A flow chart illustrating a method of preparation and delivery according to an embodiment is shown.
[0011] Figure 5 A flow chart of a weighing instrument operating method according to an embodiment is shown.
[0012] Figure 6 A user interface illustrating pending orders according to an embodiment is shown.
[0013] Figure 7 A user interface illustrating order weight variances according to an embodiment is shown.
[0014] Figure 8 A user interface illustrating a first order weight correction according to an embodiment is shown.
[0015] Fig. 9 A user interface illustrating second order weight correction according to an embodiment is shown.
[0016] Fig.10 A user interface is shown illustrating an order ready for pickup according to an embodiment.
[0017] Fig.11 A perspective view of a scale system according to an embodiment is shown.
[0018] Fig.12 A block diagram illustrating components of a weight processing system according to an embodiment is shown.
[0019] Fig.13 A flow chart of an order weight processing method according to an embodiment is shown.
[0020] Fig.14 A state diagram for detecting a weight change according to an embodiment is shown. DETAILED DESCRIPTION
[0021] Before discussing the embodiments of the present disclosure, some terms may be described in further detail.
[0022] A "user" may include a person or a computing device. In some embodiments, a user may be associated with one or more personal accounts and / or mobile devices. In some embodiments, a user may be a cardholder, an account holder, or a consumer.
[0023] A "user device" may be any suitable electronic device that can process information and transmit information to other electronic devices. A user device may include a processor and a computer-readable medium coupled to the processor, the computer-readable medium containing code that can be executed by the processor. User devices may also include external communication interfaces for communicating with each other and other entities. Examples of user devices may include mobile devices (e.g., mobile phones), laptop or desktop computers, wearable devices (e.g., smart watches), etc.
[0024] A "fulfillment request" or "fulfillment request message" may be a request to provide a resource in response to a request. For example, a fulfillment request may include an initial communication from an end-user device to a central server computer for a first service provider computer to fulfill a purchase request for a resource, such as food. A fulfillment request may be in an initial state, a partially completed state, or a final state. After the fulfillment request is in a final state, it may be accepted by the central server computer, and the central server computer may send a fulfillment request confirmation to the end-user device. An exemplary fulfillment request may include a list of items to be purchased in an order, the quantity of each item to be purchased, an end-user identifier of a user initiating the fulfillment request, a total amount of the fulfillment request, and a timestamp associated with the fulfillment request.
[0025] A "transporter" may be an entity that transports something. A transporter may be a person that uses a transportation device (e.g., a car) to transport resources. In other embodiments, a transporter may be a transportation device that may or may not be operated by a person. Examples of transportation devices include cars, boats, scooters, bicycles, drones, airplanes, etc. A transporter may also use a user device (e.g., a driver using a mobile phone) or a user device coupled to a transporter (e.g., a telecommunications unit in an autonomous vehicle).
[0026] An "item" may include an individual article or unit. An item may be something provided by a service provider. An item may be a commodity. For example, an item may be a bowl of soup, a can of soda, a toy, a piece of clothing, etc. An item may be something delivered by a transporter from a service provider's location to an end-user's location.
[0027] "Weight data" may include numerical information about a unit or system of units used to express the weight of an object or quantity of items. Weight data may include data relating to the weight or mass of an object. Weight data may include actual weight data or estimated weight data.
[0028] "Actual weight data" may include information about the amount of weight measured. The scale may determine the actual weight data of a load placed on the scale. For example, a load including a closed container containing four food products may be placed on the scale. The scale may determine the actual weight data of the load (e.g., 500 grams).
[0029] "Estimated weight data" may include information about the amount of weight calculated. The estimated weight data may be generated by a computer based on previous weight data. The estimated weight data may be a prediction of actual weight data when one or more items are weighed on a scale. The estimated weight data may be compared to the actual weight data to determine whether the correct items are weighed. For example, a computer may determine estimated weight data for a load including a closed container that includes four food items having known typical weights. The computer may determine the estimated weight based on the typical weights.
[0030] The term "artificial intelligence model" or "AI model" may include a model that can be used to predict outcomes in order to achieve a predefined goal. AI models can be developed using learning algorithms, where training data is classified based on known or inferred patterns. AI models may also be referred to as "machine learning models" or "predictive models."
[0031] "Machine learning" may include an artificial intelligence process in which a software application may be trained to make accurate predictions through learning. Predictions may be generated by applying input data to a predictive model formed by performing statistical analysis on aggregated data. The model may be trained using training data so that the model may be used to make accurate predictions. The predictions may be, for example, a classification of an image (e.g., identifying an image of a cat on the Internet) or as another example a recommendation (e.g., movies that a user may like or restaurants that an end user may like).
[0032] In some embodiments, the model can be a statistical model that can be used to predict unknown information from known information. For example, a machine learning model can be associated with a learning module and can be a set of instructions for generating a regression line from training data (supervised learning) or a set of instructions for grouping data into clusters of different classifications of data based on similarity, connectivity, and / or distance between data points (unsupervised learning). Then, the regression line or data cluster can be used as a model for predicting unknown information from known information. Once a model has been built from a learning module, the model can be used to generate a predicted output from a new request. A new request can be a request for a prediction associated with the presented data. For example, a new request can be a request to classify an image or create a recommendation for a user.
[0033] A "machine learning model" may include the application of artificial intelligence that provides a system with the ability to automatically learn and improve from experience without being explicitly programmed. A machine learning model may include a set of software routines and parameters that can predict the output of a process (e.g., identification of an attacker of a computer network, authentication of a computer, appropriate recommendations based on a user search query, etc.) based on a feature vector or other input data. The structure of the software routine (e.g., the number of subroutines and the relationships between them) and / or the values of the parameters may be determined during a training process that may use actual results of the process being modeled, such as identification of different categories of input data. Examples of machine learning models include support vector machines (SVMs), models that classify data by establishing gaps or boundaries between differently classified inputs, and neural networks, collections of artificial "neurons" that perform functions by activating in response to inputs.
[0034] A "feature" can be an individual measurable property or characteristic of a phenomenon. A feature can be described by a feature vector. Features can be input into a model to determine the output. As an example, in pattern recognition and machine learning, a feature vector is an n-dimensional vector that represents the digital characteristics of an object. Algorithms in machine learning require digital representations of objects because such representations facilitate processing and statistical analysis. When representing images, the feature values can correspond to the pixels of the image. However, when representing text, the features can be the frequency of occurrence of text terms. A feature vector is equivalent to a vector of explanatory variables used in statistical procedures such as linear regression. The feature vectors can be combined with weights using dot products in order to construct a linear prediction function that is used to determine the score used to make a prediction.
[0035] A "server computer" is typically a powerful computer or cluster of computers. For example, a server computer may be a mainframe, a cluster of small computers, or a group of servers that function as a unit. In one example, a server computer may be a database server coupled to a web server. Server computers may also include cloud computers.
[0036] A "processor" may include any suitable one or more data computing devices. A processor may include one or more microprocessors that work together to achieve the desired functions. A processor may include a CPU that includes at least one high-speed data processor that is sufficient to execute program components for executing user and / or system generated requests. The CPU may be a microprocessor such as Athlon, Duron and / or Opteron from Advanced Micro Devices (AMD); PowerPC from IBM and / or Motorola; Cell processors from IBM and Sony; Celeron, Itanium, Pentium, Xeon and / or XScale from Intel; and / or similar processors.
[0037] "Memory" may be any suitable device or devices that can store electronic data. Suitable memory may include non-transitory computer-readable media that stores instructions that can be executed by a processor to implement the desired method. Examples of memory may include one or more memory chips, disk drives, etc. Such memory may operate using any suitable electrical, optical, and / or magnetic modes of operation.
[0038] An end user using an end user device can provide a fulfillment request for one or more items (e.g., food) to a service provider (e.g., a restaurant) operating a service provider computer through a central server computer. The central server computer can be operated by a third party (e.g., a courier company) that coordinates the processing of the fulfillment request. The central server computer can create an order based on data related to the fulfillment request and can send the order to the service provider computer. The service provider can prepare the one or more items when receiving the order. When the one or more items are ready, the service provider computer can notify the central server computer that it is ready. The central server computer can then facilitate the delivery of the one or more items from the service provider to the user by using a transporter (e.g., a delivery driver or an autonomous vehicle).
[0039] There are several problems associated with the processing of fulfillment requests. One problem is that the service provider may not provide the correct items in the order. For example, the wrong items may be provided in the order, the items may be accidentally omitted, the items may be prepared in an incorrect manner, etc. Another problem is that in some cases, the service provider does not notify the transporter when the order is ready. The transporter may arrive too early or too late after preparing the items in the order. The transporter can only rely on the estimated preparation time of the order. For example, a central server computer may provide a restaurant with an estimate of 20 minutes to prepare a food order. However, the restaurant may actually take 30 minutes to prepare the food order. This makes the transporter wait for 10 minutes. This may waste the transporter's time. If the transporter is late, the quality of the items in the order may be reduced if the transporter does not pick up the order and deliver it to the end user as soon as the items in the order have been prepared by the service provider.
[0040] Yet another problem is that there is no easy way to determine whether an end-user claim for an incorrect order or a service provider claim for a correct order is valid. This is because once the order has been delivered to the end-user, there is no actual evidence associated with the preparation and completion of the items in the order.
[0041] Additionally, items may be packaged in closed containers for delivery for privacy, food safety, etc. The shipper cannot inspect the inside of the closed container to verify the correctness of the order.
[0042] Embodiments may address these and other problems by introducing a scale system that can detect the weight of items in an order. The scale system may be at a service provider and may communicate with a service provider computer. In embodiments, a central server computer may receive a fulfillment request for an order containing one or more items from a user device. The central server computer may create an order based on data related to the fulfillment request (e.g., item information, estimated weight of the items, etc.), assign a fulfillment request identifier to the order, and send the order and fulfillment request identifier to the service provider computer. The service provider may then prepare the one or more items upon receiving the order. When the order is ready, the service provider may place the order containing the one or more items on a scale in the scale system.
[0043] The scale system can measure the weight of the one or more items in the order, and can transmit the actual weight data and the fulfillment request identifier (e.g., order number) to the service provider computer, and then to the central server computer (or directly to the central server computer). The central server computer can have the estimated weight data of the matching order in its database, and the central server computer can compare the estimated weight data of the order with the actual weight data. If the difference between the actual weight data and the estimated weight data exceeds a threshold, the central server computer transmits a message back to the service provider computer that there is a difference in the order. The service provider can then check the items in the order and make any necessary corrections. In some embodiments, the central server computer can provide the estimated weight data to the scale system, where the scale system performs the comparison locally.
[0044] In the event that the actual weight of the order is substantially the same as the estimated weight, the central server computer can use this as a signal that the order is ready to be picked up, and a transporter nearby the service provider can be notified that the order is ready.
[0045] The actual weight data for the order can be stored by the central server computer for later use. For example, if an end user makes a fraudulent claim to the central server computer regarding an order (e.g., the order does not have a specific ordered item), the central server computer can use the actual weight data to prove that the order was completed when the transporter was obtained from the service provider and delivered to the end user.
[0046] The scale system can be a smart scale that measures the weight of one or more items to process matching orders. In some embodiments, the scale system can be in the form of a smart shelf that uses a scale to measure the weight of an order. In addition, in some embodiments, a camera can be used to capture image data of an order or item on a shelf or scale. The smart shelf can use both weight data and image data to process orders for items. For example, there can be three orders on the smart shelf, and the camera can identify the three orders, and the orders can be identified by barcodes, QR codes, fulfillment request identifiers, or the like. The central server computer can use the image data to determine the three orders, and can use the weight data from the scale to determine whether the total weight of the three orders is substantially equal to the estimated weight of the three orders.
[0047] Figure 1A system 100 according to an embodiment of the present disclosure is shown. The system 100 includes one or more end-user devices 102, a central server computer 104, a fulfillment request database 106, a logistics platform 108, one or more service provider computers 110, one or more transporter user devices 114, one or more transporter vehicles 115, a navigation network 116, and a scale system 120 including a scale 122, a scale computer 124, and a camera 126.
[0048] Central server computer 104 may be in operative communication with one or more end-user devices 102, fulfillment request database 106, logistics platform 108, one or more service provider computers 110, transporter user devices 114, transporter vehicles 115, scale system 120, and in some embodiments, navigation network 116. Further, one or more transporter user devices 114 may be in operative communication with navigation network 116. In some embodiments, transporter vehicles 115 may be in operative communication with navigation network 116.
[0049] To simplify the diagram, Figure 1 A certain number of components are shown in FIG. However, it should be understood that embodiments of the present invention may include more than one of each component. In addition, some embodiments of the present invention may include more than one of each component. Figure 1 All components shown may be fewer or more components. For example, there may be one or more scale systems 120 in the system 100. In some embodiments, there may be a different scale system located at each service provider computer location.
[0050] Figure 1 Messages between at least the devices in the communication network may be transmitted using a secure communication protocol, such as, but not limited to, File Transfer Protocol (FTP); Hypertext Transfer Protocol (HTTP); Secure Hypertext Transfer Protocol (HTTPS); SSL; ISO (e.g., ISO 8583) and / or the like. The communication network may include any one and / or combination of the following: direct interconnection; the Internet; a local area network (LAN); a metropolitan area network (MAN); an operating mission as a node on the Internet (OMNI); a secure custom connection; a wide area network (WAN); a wireless network (e.g., using protocols such as, but not limited to, Wireless Application Protocol (WAP), I-mode and / or the like); and / or the like. The communication network may use any suitable communication protocol to generate one or more secure communication channels. In some cases, the communication channel may include a secure communication channel, which may be established in any known manner, such as by using mutual authentication and session keys, and establishing a secure socket layer (SSL) session.
[0051] The one or more end-user devices 102 include devices operated by an end-user. The one or more end-user devices 102 may generate a fulfillment request message and provide the fulfillment request message to the central server computer 104. The fulfillment request message may indicate that a request (e.g., a request for a service) may be fulfilled by one or more service provider computers 110. For example, the fulfillment request message may be generated using a central server computer application installed on the end-user device 102 based on a cart selected at checkout during a transaction. The fulfillment request message may include one or more items from the selected cart.
[0052] For example, the fulfillment request message may be a request for a food item (e.g., hamburgers) to be prepared by a particular service provider computer 110 and delivered to an end user location by a transporter operating a transporter user device and, in some embodiments, a transporter vehicle.
[0053] The central server computer 104 comprises a server computer that can facilitate fulfillment of fulfillment requests received from one or more end-user devices 102. For example, the central server computer 104 can identify one or more transporters that operate one or more transporter user devices 114 that can fulfill the fulfillment request. The central server computer 104 can identify the transporters and transporter user devices 114 that can fulfill the fulfillment request based on any suitable criteria (e.g., transporter location, service provider location, end-user destination, end-user location, transporter transportation mode, etc.). The logistics platform 108 can provide the central server computer 104 with real-time data about the locations of various service providers, transporters, and end-users.
[0054] Fulfillment request database 106 may store data related to previous (e.g., historical) fulfillment requests. For example, after fulfilling a fulfillment request, central server computer 104 may store the fulfillment request data in fulfillment request database 106. For example, central server computer 104 may store any space-time fulfillment data (e.g., transporter user device location over time, transporter user device movement data over time, length of time taken to fulfill a fulfillment request, fulfillment time, fulfillment location, etc.), fulfillment service data (e.g., fulfilled service, amount, service provider computer identifier, end user device identifier, transporter user device identifier, etc.), and any other data related to fulfillment requests and / or the fulfillment of fulfillment requests.
[0055] The one or more service provider computers 110 include computers operated by a service provider. For example, the service provider computer may be a food provider computer operated by a food provider. The one or more service provider computers 110 may provide services to end users of one or more end user devices 102. The service provider computer 110 may receive a request from the central server computer 104 to prepare one or more items to be delivered. The service provider computer 110 may initiate the preparation of one or more items to be delivered by a transporter of a transporter user device 114 to an end user of the end user device 102.
[0056] One or more transporter user devices 114 may be devices operated by the transporter. One or more transporter user devices 114 may be smartphones, wearable devices, personal assistant devices, etc. The transporter using the transporter user device 114 may provide a request to fulfill a fulfillment request of an end user. For example, the transporter user device 114 may generate a request to fulfill a fulfillment request of a specific end user and transmit the request to the central server computer 104. The central server computer 104 may notify the transporter user device 114 of the fulfillment request. The transporter user device 114 may respond to the central server computer 104 by executing a request to deliver to the end user as indicated by the fulfillment request. In some embodiments, the one or more transporter user devices 114 are communication devices in an autonomous vehicle.
[0057] In some embodiments, the transporter may operate a transporter user device 114 and a transporter vehicle 115. For example, the transporter may be a delivery person, the transporter user device 114 may be the delivery person's mobile phone, and the transporter vehicle 115 may be a car operated by the delivery person. The transporter vehicle 115 may include a car, a bicycle, a moped, a skateboard, a public transportation vehicle, etc. In some embodiments, the transporter may not use a transporter vehicle 115 (e.g., the transporter may deliver the items of the fulfillment request on foot).
[0058] In some embodiments, the central server computer 104 may identify a transporter vehicle 115 that can satisfy the fulfillment request based on any suitable criteria (e.g., transporter vehicle location, transporter vehicle type, transporter vehicle battery charge level, transporter vehicle weight limit, service provider location, end user destination, end user location, etc.) The transporter vehicle 115 may include an autonomous vehicle that can operate without receiving input from a transporter.
[0059] The navigation network 116 may provide navigation directions to one or more transporter user devices 114. For example, the transporter user device 114 may obtain a location from the central server computer 104. The location may be a service provider parking location, a service provider location, an end user parking location, an end user location, etc. The navigation network 116 may provide navigation data to the location. For example, the navigation network 116 may be a global positioning system that provides location data to the transporter user device 114. In some embodiments, the transporter vehicle 115, which may be an autonomous vehicle, may communicate with the navigation network 116 to guide the transporter vehicle 115 to a destination.
[0060] Scale system 120 may include a scale 122, a scale computer 124, and a camera 126. Scale system 120 may include physical and electrical components that determine the weight of an item. Scale system 120 may determine the actual weight of an item placed on the scale at a service provider location. Specifically, scale 122 may determine the actual weight of an item. In some embodiments, scale system 120 may be a smart shelf that includes a shelf having a scale on and / or in the shelf.
[0061] In some embodiments, the scale computer 124 can transmit and receive messages to and from the central server computer 104. For example, the central server computer 104 can provide the fulfillment request message or a derivative thereof to the scale system 120. In some embodiments, the scale computer 124 can determine an estimated weight of the items indicated in the fulfillment request message. In other embodiments, the central server computer 104 can determine an estimated weight of the items in the fulfillment request message and provide the estimated weight to the scale system 120.
[0062] The scale system 120 can verify that the actual weight data corresponds to the estimated weight data. The scale system 120 can then perform additional processing based on the verification. For example, the scale system 120 can generate a notification that the one or more items are complete and ready for delivery to the end user and provide the notification to the central server computer 104. As another example, the scale system 120 can include a camera and can receive image data of the one or more items in the fulfillment request. The scale system 120 can perform additional processing using the image data. As another example, the additional processing can include determining whether the fulfillment request for the one or more items provided by the service provider is erroneous or fraudulent based on the estimated weight and / or the actual weight.
[0063] The camera 126 may be coupled to the scale 122 and / or the scale computer 124 via an electromechanical connection. The camera 126 may be a device for recording visual images. The camera 126 may face the scale (e.g., with the aperture of the camera 126 pointing toward the scale 122) to record an image or video of an item on the scale 122. For example, the camera 126 may record an image of a closed container that includes two items placed on the scale 122. The image captured by the camera 126 may be evaluated by software configured to identify objects in the image (e.g., executed by the scale computer 124). The captured image may include a barcode, a QR code, a fulfillment request identifier printed or written on the container, etc. The camera 126 may output the image to the scale computer 124, which may evaluate the image to determine the container corresponding to the image.
[0064] Figure 2 A block diagram of a central server computer 104 according to an embodiment is shown. The exemplary central server computer 104 may include a processor 204. The processor 204 may be coupled to a memory 202, a network interface 206, and a computer readable medium 208. The computer readable medium 208 may include a fulfillment request module 208A, a weight data module 208B, and a communication module 208C.
[0065] The memory 202 may be used to store data and code. For example, the memory 202 may store fulfillment requests, weight data, etc. The memory 202 may be coupled to the processor 204 internally or externally (e.g., a cloud-based data storage device), and may include any combination of volatile and / or non-volatile memory, such as RAM, DRAM, ROM, flash memory, or any other suitable memory device.
[0066] The computer-readable medium 208 may include code that is executable by the processor 204 to perform a method comprising: receiving a fulfillment request associated with one or more items; in response to receiving the fulfillment request, determining estimated weight data based on the one or more items in the fulfillment request; obtaining actual weight data associated with the fulfillment request for one or more items; verifying that the actual weight data corresponds to the estimated weight data; and performing additional processing based on the verification.
[0067] The fulfillment request module 208A may include code or software executable by the processor 204 to process a fulfillment request. The fulfillment request module 208A, in conjunction with the processor 204, may receive a fulfillment request message from the end-user device 102. The fulfillment request message may include a selected service provider, one or more selected items, and a delivery location. The fulfillment request module 208A, in conjunction with the processor 204, may generate a fulfillment request identifier for the fulfillment request message, and in some embodiments may modify the fulfillment request message to include the fulfillment request identifier. The fulfillment request module 208A, in conjunction with the processor 204, may operate with the weight data module 208B to obtain estimated weight data for the one or more selected items. The fulfillment request module 208A, in conjunction with the processor 204, may modify the fulfillment request message to include the estimated weight data.
[0068] The fulfillment request module 208A in conjunction with the processor 204 may determine one or more transporters operating one or more transporter user devices that are capable of fulfilling the fulfillment request message. The fulfillment request module 208A in conjunction with the processor 204 may determine the one or more transporters from the transporter user devices. The fulfillment request module 208A in conjunction with the processor 204 may determine the one or more transporters user devices based on whether the transporter user device is online, whether the transporter associated with the transporter user device has fulfilled a different fulfillment request message, the location of the transporter user device, etc. The fulfillment request module 208A in conjunction with the processor 204 may provide the fulfillment request message or a derivative thereof to the one or more transporter user devices, wherein the transporter operating the transporter user device may accept the delivery of the order.
[0069] The fulfillment request module 208A in conjunction with the processor 204 may also provide the fulfillment request message, or a derivative thereof, to the service provider computer 106 so that the service provider computer 106 may initiate preparation of the order.
[0070] The weight data module 208B may include code or software that can be executed by the processor 204 to process weight data. The weight data module 208B in conjunction with the processor 204 may generate estimated weight data for the one or more selected items of the fulfillment request message. For example, the fulfillment request message may include a request for two hamburgers and a serving of fries. The weight data module 208B in conjunction with the processor 204 may determine the estimated weight data using a database of historical weight data. For the weight data module 208B in conjunction with the processor 204, it may be determined that the average weight of the hamburgers is 300 grams, and the average weight of the fries is 200 grams. The weight data module 208B in conjunction with the processor 204 may determine the estimated weight data of the fulfillment request to be 800 grams. In some embodiments, the weight data module 208B in conjunction with the processor 204 may take into account the container weight and / or other additional weights. For example, the weight data module 208B in conjunction with the processor 204 may determine the estimated weight data of the fulfillment request to be 900 grams, because it is most likely to be a container, napkin, sauce packet, etc. of about 100 grams.
[0071] The weight data module 208B, in conjunction with the processor 204, may store the estimated weight data along with the fulfillment request identifier in the database 210 for later reference.
[0072] The weight data module 208B, in conjunction with the processor 204, may also receive actual weight data and a fulfillment request identifier from the scale system. The weight data module 208B, in conjunction with the processor 204, may use the fulfillment request identifier to identify the estimated weight data in the database. The weight data module 208B, in conjunction with the processor 204, may then compare the actual weight data with the estimated weight data. If the weight data module 208B, in conjunction with the processor 204, determines that the actual weight data matches the estimated weight data (within a predetermined error amount, such as within 50 grams), the weight data module 208B, in conjunction with the processor 204, may provide a signal to the central server computer 102 that the actual weight of the order matches the estimated weight of the order. If the weight data module 208B, in conjunction with the processor 204, determines that the actual weight data does not match the estimated weight data, the weight data module 208B, in conjunction with the processor 204, may notify the scale system of the difference in weight data.
[0073] The communication module 208C may include code or software executable by the processor 204 for communication. The communication module 208C may be configured or programmed to perform some or all of the functions associated with receiving, sending, and generating electronic messages for transmission to the central server computer 104. Figure 1100. When the central server computer 104 receives an electronic message through the external communication interface 206, the electronic message can be passed to the communication module 208C. The communication module 208C can identify and parse relevant data based on a specific messaging protocol. The communication module 208C can then transmit any received information to the appropriate module within the central server computer 104 (e.g., to the fulfillment request module 208A, to the weight data module 208B, etc.). The communication module 208C can also receive information from one or more of the modules in the central server computer 104, and generate an electronic message in an appropriate data format according to the transmission protocol so that the message can be sent to one or more entities within the system 100. The electronic message can then be passed to the network interface 206 for transmission.
[0074] The network interface 206 may include an interface that may allow the central server computer 104 to communicate with an external computer. The network interface 206 may enable the central server computer 104 to transmit data to and from another device (e.g., fulfillment request database 106, logistics platform 108, one or more service provider computers 110, one or more transporter user devices 114, one or more transporter vehicles 115, navigation network 116, and weighing system 120, etc.). Some examples of the network interface 206 may include a modem, a physical network interface (such as an Ethernet card or other network interface card (NIC)), a virtual network interface, a communication port, a Personal Computer Memory Card International Association (PCMCIA) slot and card, or the like. The wireless protocols enabled by the network interface 206 may include Wi-Fi, a wireless network interface, a wireless communication protocol ... TM The data transferred through the network interface 206 may be in the form of signals, which may be electrical signals, electromagnetic signals, optical signals, or any other signals capable of being received by an external communication interface (collectively referred to as "electronic signals" or "electronic messages"). These electronic messages, which may contain data or instructions, may be provided between the network interface 206 and other devices via a communication path or channel. As described above, any suitable communication path or channel may be used, such as wire or cable, optical fiber, telephone line, cellular link, radio frequency (RF) link, WAN or LAN network, the Internet, or any other suitable medium.
[0075] Figure 31 is a block diagram of a scale system 120 according to an embodiment. The exemplary scale system 120 may include a scale 122, a scale computer 124, and a camera 126. Although the scale 122 and the scale computer 124 are shown as separate components, in some embodiments, the scale computer 124 may be integrated with the scale 122.
[0076] Scale 122 may include housing 302, one or more load cells 304, one or more analog-to-digital converters 306, microprocessor 308, and a load receiver board. Scale computer 124 may include housing 352, processor 356, and display 362. Processor 356 may be coupled to memory 354, network interface 358, and computer readable medium 360. Computer readable medium 360 may contain one or more modules that perform functions. In some embodiments, scale computer 124 may be powered from an external source (e.g., an outlet), and scale computer 124 may power scale 122.
[0077] The housing 302 of the scale 122 and the housing 352 of the scale computer 124 can be formed of any material that can provide protection for other components held within the housing. For example, the housing 302 and the housing 352 can be made of plastic, metal, wood, etc. or a combination thereof.
[0078] The load receiver plate 310 may be positioned on the one or more load cells 304 such that when a load (e.g., one or more items, containers, etc.) is placed on the load receiver plate 310, the increased weight of the load receiver plate 310 causes the load receiver plate 310 to exert a greater force on the one or more load cells 304. In some embodiments, the housing 302 of the scale 122 may be integrated into the load receiver plate 310.
[0079] One or more load cells 304 may be force gauges. One or more load cells 304 may include a transducer for generating an electrical signal whose magnitude is directly proportional to the force measured. When a load having a weight is placed on the load receiver plate 310, one or more load cells 304 may bend slightly, which causes the electrical signal passing through the load cell to change. The signal change is the amount of resistance caused by the bending to the strain gauge inside the load cell.
[0080] The one or more load cells 304 may include any suitable type of load cell. For example, the one or more load cells 304 may include a pneumatic load cell, a hydraulic load cell, a strain gauge load cell, and a capacitive load cell.
[0081] Pneumatic load cells utilize air pressure and consist of an elastic diaphragm that can be attached to the load receiver plate 310. Pneumatic load cells may also include an air regulator and a pressure gauge that restricts the flow of air pressure. Such load cells may work by using pressurized air to balance the weight of the load, and thus the amount of air required is used to determine the weight of the load. The pressure gauge may then convert the reading into an electrical signal.
[0082] Hydraulic load cells utilize fluids such as water or oil. A scale with a hydraulic load cell can operate similarly to a pneumatic load cell, except that a piston and pressurized liquid are used instead of air. When a load is placed on the load receiver plate 310, the piston applies an increasing pressure to the contained liquid that is proportional to the weight applied. After calibrating the pressure, the weight can be accurately measured. The pressure reading can be used as an analog meter or converted into an electrical signal.
[0083] Strain gauges utilize resistance. The resistance when under strain is proportional to the strain placed on the sensor when the load is weighed, which makes calibration straight forward into an accurate measurement. Accuracy can be improved where the four strain gauges inside a strain gauge load cell are in a 'Wheatstone Bridge' configuration. This is a circuit that measures the unknown resistance and provides a very accurate measurement when it bends under the weight of a load.
[0084] Capacitive load cells work on the ability of the system to store charge. A capacitive load cell consists of two parallel plates that have a current applied to them. When the charge settles, it is stored between the plates. The amount stored, or capacitance, depends on the size of the gap between the plates. Therefore, when a load is placed on the load receiver plate 310, the gap will decrease and produce a change in capacitance, which can then be calculated as weight.
[0085] The output electrical signals from the one or more load cells 304 may be input into one or more analog to digital converters 306. The analog to digital converters 306 may convert the output voltages from the one or more load cells 304 into digital signals for processing by the microprocessor 308. Any suitable analog to digital converter may be utilized.
[0086] The microprocessor 308 can convert the received digital signal into weight data known to those skilled in the art. The microprocessor 308 can then output any recorded weight data to the scale computer 124.
[0087] The scale computer 124 may process the weight data received from the scale 122 and output the weight data to the display 362. The display 362 may be a screen (eg, an LCD display, an LED display, etc.) capable of presenting information to a user of the scale system 120.
[0088] Processor 356 , memory 354 , network interface 358 , and computer-readable medium 360 may be similar to processor 204 , memory 202 , network interface 206 , and computer-readable medium 208 , respectively, and will not be repeated here.
[0089] The camera 126 may include a device capable of obtaining a digital representation of an image. The camera 126 may record an image of the scale 122 and any load placed on the load receiver plate 310. The image obtained by the camera 126 may be evaluated using one or more machine learning models trained to identify objects, writing, etc. in the image to determine the content in the image. The camera 126 may output the recorded image to the scale computer 124 for processing.
[0090] The load placed on the load receiver plate 310 may include order identification information. When placed on the scale 122, the camera 126 may capture an image of the order identification information on the load. The order identification information may include a fulfillment request identifier (e.g., order #12345678), a barcode, a QR code, a written description of what the load includes, etc. The order identification information may be evaluated by the scale computer 124.
[0091] Figure 4 A flow chart illustrating a method of preparation and delivery according to an embodiment is shown. Figure 4 The method presented in the present disclosure will be described in the context of central server computer 102 receiving a fulfillment request message from end user device 108 to fulfill the preparation and delivery of one or more items from a cart to an end user of end user device 108. Central server computer 102 may communicate with service provider computer 106 and transporter user device 110 to fulfill the fulfillment request.
[0092] At step 402, the end-user device 108 may decide to check out with a cart in a central server computer application installed on the end-user device 108. The cart may include one or more items provided by a service provider from the service provider computer 106.
[0093] At step 404, after checking out with the cart, the end-user device 108 may provide a fulfillment request message including the one or more items from the cart to the central server computer 102. The fulfillment request message may also include a service provider computer identifier that identifies the service provider computer 106. The fulfillment request may also include a delivery location for delivery of the one or more items, as well as other information described above.
[0094] As an illustrative example, the fulfillment request message may include the selected items of two chicken tacos and one beef taco and the selected service provider for providing the aforementioned tacos. The fulfillment request message may also include the selected delivery address of the end user. The fulfillment request message may be a request to purchase the selected items, and the central server computer 102 facilitates the delivery of the selected items to the delivery location.
[0095] At step 406, after receiving the fulfillment request message, the central server computer 102 can perform a transaction process with the end-user device 108. For example, the central server computer 102 can communicate with a payment network to process the transaction for the one or more items. The central server computer 102 can receive an indication of whether the transaction is authorized. If the transaction is authorized, the central server computer 102 can proceed to step 408.
[0096] At step 408, the central server computer 102 may generate a fulfillment request identifier for the fulfillment request message. The fulfillment request identifier may be a value that uniquely identifies the fulfillment request message and / or the order indicated therein. For example, the fulfillment request identifier may be the numeric value 12345678. In some embodiments, the central server computer 102 may generate the fulfillment request identifier for the fulfillment request message after receiving the fulfillment request message. The central server computer 102 may modify the fulfillment request message to include the fulfillment request identifier.
[0097] After generating the fulfillment request identifier, central server computer 102 may generate an estimated weight value for the order at step 410. Central server computer 102 may generate an estimated weight value for the order based on the one or more items selected by the end user and included in the fulfillment request message.
[0098] The central server computer 102 may generate an estimated weight value based on the historical weight data.The central server computer 102 may communicate with a weight value database (not shown) to obtain average weight data for each of the one or more items included in the fulfillment request message.
[0099] As an illustrative example, the central server computer 102 may obtain average weight data for chicken tacos (e.g., 250 grams) and average weight data for beef tacos (e.g., 300 grams) from the weight value database. The central server computer 102 may determine estimated weight data based on the received historical data. For example, for an order including selected items of two chicken tacos and one beef taco, the estimated weight data may be 800 grams.
[0100] Central server computer 102 may store the estimated weight data in memory or a database in association with the user's fulfillment request identifier at a later time. In some embodiments, central server computer 102 may modify the fulfillment request message to include the estimated weight.
[0101] Steps 412A and 412B may occur simultaneously or in any order. Step 412A results in the processing of steps 414-418. Step 412B results in the processing of steps 420-432. Steps 414-418 may occur simultaneously with steps 420-432. The processing of steps 414-418 will be described first.
[0102] At step 412A, after providing the fulfillment request message to the service provider computer 106, the central server computer 102 may determine one or more transporters operating one or more transporter user devices 110 that are capable of fulfilling the fulfillment request message. The central server computer 102 may determine the one or more transporters from the transporter user devices. The central server computer 102 may determine the one or more transporters based on whether the transporter user device is online, whether the transporter user device has fulfilled different fulfillment request messages, the location of the transporter user device, etc.
[0103] At step 414 , after determining the one or more transporter user devices, the central server computer 102 may provide a fulfillment request message or a derivative thereof to the one or more transporter user devices including the transporter user device 110 .
[0104] At step 416, after receiving the fulfillment request message, the transporter of the transporter user device 110 may determine whether it wants to perform the fulfillment. The transporter may decide that it wants to perform the delivery of the one or more items from the service provider location to the end user location. The transporter user device 110 may generate an acceptance message indicating that the fulfillment request is accepted.
[0105] At step 418 , after generating the acceptance message, the transporter user device 110 may provide the acceptance message to the central server computer 102 .
[0106] After providing the acceptance message to the central server computer 102, the transporter user device 110 can communicate with the navigation network 116, and the transporter can proceed to the service provider location to obtain the one or more items. The transporter user device 110 can then receive input from the transporter instructing the transporter to obtain the one or more items (e.g., the transporter instructs it to pick up the items). The transporter user device 110 can then communicate with the navigation network 116, and the transporter can then proceed to the end user location to provide the one or more items to the end user. In some embodiments, the transporter user device 110 can provide an update message to the central server computer 102, the update message including the transporter user device 110 location and / or event data (e.g., items picked up, items delivered, etc.).
[0107] In some embodiments, after receiving the acceptance message, central server computer 102 may notify other transporter user devices that received the fulfillment request message that the fulfillment request is no longer available for acceptance.
[0108] Returning to step 412B, after step 410, the central server computer 102 may provide the fulfillment request message, or a derivative thereof, to the service provider computer 106. The central server computer 102 may determine which service provider computer of the plurality of service provider computers to communicate with based on the service provider indicated in the fulfillment request message. For example, the fulfillment request message may indicate that the one or more items are provided by a service provider of the service provider computer 106. The central server computer 102 may identify the service provider computer 106 using the service provider computer identifier in the fulfillment request message.
[0109] At step 420, the service provider computer 106 may provide the fulfillment request message to the scale system 120. In some embodiments, the central server computer 102 may provide the fulfillment request message directly to the scale system 120. In other embodiments, the central server computer 102 may not provide the fulfillment request message to the service provider computer 106, but may provide the fulfillment request message to the scale system 120, which provides the fulfillment request message to the service provider computer 106.
[0110] At step 422, after receiving the fulfillment request message, the service provider computer 106 can initiate preparation of the one or more items. For example, the service provider computer 106 can alert a service provider (e.g., a service provider to prepare the items) at the service provider location. The service provider can prepare the one or more items for pickup by the transporter.
[0111] At step 424, upon receiving the fulfillment request from the service provider computer 106 or, in some embodiments, the central server computer 102, the scale system 120 may obtain estimated weight data based on the one or more items in the fulfillment request message.
[0112] In some embodiments, the central server computer 102 can determine the estimated weight data and include the estimated weight data in the fulfillment request message. The scale system 120 can then extract the estimated weight data from the fulfillment request message.
[0113] In other embodiments, the scale system 120 may determine the estimated weight data in a manner similar to the manner in which the central server computer 102 determines the estimated weight data.
[0114] At step 426, after obtaining the estimated weight data, the scale system 120 may obtain actual weight data from the scale 122 in the scale system 120. For example, the service provider may place the container on the scale 122 of the scale system 120 and may select a button on the scale computer 124 to indicate that the placed container includes the items indicated by the fulfillment request identifier for the fulfillment request message. The actual weight data may include weight data of the container as measured by the scale 122. For example, the scale 122 may measure the actual weight data as 813 grams.
[0115] At step 428, after obtaining the estimated weight data, the scale system 120 can verify that the actual weight data corresponds to the estimated weight data. The scale system 120 can determine the difference between the estimated weight data and the actual weight data. The difference can indicate how close the actual weight data is to the estimated weight data. For example, the actual weight data can be 813 grams, and the estimated weight data can be 800 grams. The scale system 120 can determine a difference of 13 grams.
[0116] The scale system 120 can compare the difference to a difference threshold. The difference threshold can be the amount of weight fluctuation between the estimated weight data and the estimated weight data that is considered a match. The difference threshold can be a static value (e.g., 50 grams) or a dynamic value (e.g., within 5%). The dynamic value can indicate a percentage of the order weight (e.g., 6% of the order weight), or can indicate the expected variance of the item. For example, if there are 5 previous measurements of an item (e.g., hamburgers) in the database, and the item varies by 45g. The dynamic value can use the square root of the sum of the variances of the items in the order as a threshold.
[0117] In some embodiments, the actual weight data may be obtained from a single measurement of the scale system 120. In other embodiments, the actual weight data may be obtained as a running average of the past x measurements (e.g., more than 5 measurements, more than 100 measurements, etc.). In still other embodiments, the actual weight data may be obtained using a noise suppression algorithm.
[0118] As an illustrative example, a difference of 13 grams may be compared to a difference threshold of 50 grams. Since 13 grams is less than the difference threshold of 50 grams, the scale system 120 may determine that the actual weight data matches the estimated weight data. If a dynamic value within 5% is used, the difference of 13 grams may be compared to a range of 800 grams + / - 40 grams (e.g., 5% of 800 grams).
[0119] In other embodiments, the scale system does not receive or obtain estimated weight data. Instead, the central server computer 102 can obtain actual weight data from the scale system 120. The central server computer 102 can compare the estimated weight data with the actual weight data to determine whether they match. The central server computer 102 can then perform additional processing, such as notifying the scale system 120 that the estimated weight matches the actual weight and that the order is complete and ready for delivery.
[0120] At step 430, the scale system may perform additional processing based on the verified weight data. The scale system 120 may perform any suitable additional processing related to the actual weight data, the estimated weight data, the determination of order completion, and / or the fulfillment request message and / or the data included therein. The verification of the actual weight data with the estimated weight data may serve as a triggering event for the additional processing.
[0121] As an example, additional processing may include processing image data. As described herein, the scale system 120 may include a camera. The camera may capture image data of the one or more items in the fulfillment request. In some embodiments, the image data may show the one or more items on the scale of the scale system 120. In other embodiments, the image data may show a closed container on the scale including the one or more items. The scale system 120 may perform additional processing based on the image data. For example, the scale system 120 may identify a fulfillment request identifier printed on the container in the image and compare the identified fulfillment request identifier with the fulfillment request identifier of the order. If the fulfillment request identifiers match, the scale system 120 may proceed to the next step. If the fulfillment request identifiers do not match, the scale system 120 may generate an alert that the identifiers do not match. The scale system 120 may provide an alert to an operator of the scale system 120 and / or the central server computer 102.
[0122] As another example, additional processing can include the scale system 120 utilizing a camera to determine the number of containers and the type of each container (e.g., paper bags, plastic bags, soup containers, frying containers, etc.). The scale system 120 can assess the number of containers and the type of containers. An estimated weight can be generated for each container based on the image of the container. The estimated weight of the container can be used for the estimated weight of the current order (e.g., by modifying the estimated weight) and / or future orders (e.g., by modifying the container weight estimate in the central server computer 102).
[0123] As another example of additional processing, the scale system 120 can determine whether the fulfillment request for the one or more items provided by the service provider is erroneous or fraudulent. As described herein, the scale system 120 can utilize the actual weight data and the estimated weight data to determine whether one or more items are missing from the order (e.g., the order is erroneous). The scale system 120 can also determine that the service provider has provided items that weigh less than a typical item in an order. For example, the scale system 120 can determine that the order for French fries is 30 grams, which is less than a typical order for French fries. The scale system 120 can mark the order as erroneous or fraudulent because the weight of the order for French fries is less than a typical order for French fries. Such flags can be provided to the central server computer 102 for analysis, such as trend analysis.
[0124] As another example of additional processing, the scale system 120 can determine whether the actual weight data exceeds the weight threshold for delivering the one or more items to the end user. For example, the fulfillment request message received by the scale system 120 may include a weight threshold for the order. The weight threshold may be based on the type of transport vehicle to be used to deliver the order. For example, a truck may have a different weight threshold than a bicycle. In addition, if the delivery transport method is an autonomous vehicle, the weight may be based on the weight that the autonomous vehicle can carry. For example, the autonomous vehicle may be an autonomous flying drone with a weight limit, and the autonomous flying drone needs to remain below the weight limit so that the flight capability of the autonomous flying drone is not hindered. The weight threshold may be, for example, 1 pound, 5 pounds, 10 pounds, 25 pounds, etc. If the actual weight is below the weight threshold, the one or more items may be manually or automatically positioned in the autonomous delivery vehicle.
[0125] The scale system 120 can determine whether the actual weight data exceeds the weight threshold of the fulfillment request message. The scale system 120 can generate a weight threshold flag (e.g., a Boolean value) indicating whether the order is below the weight threshold. The scale system 120 can provide the weight threshold flag to the central server computer 102, which can notify the transport device of the weight threshold flag.
[0126] If the weight threshold flag indicates that the actual weight data exceeds the weight threshold, and if the order is to be delivered by an autonomous drone, the central server computer 102 can notify the autonomous drone that the order is too heavy to carry. The autonomous drone can proceed to the next pickup instruction. The central server computer 102 can then communicate with another transporter user device to facilitate delivery of the order by a different transporter.
[0127] As an example, further processing may include generating a notification indicating that the order is ready for pickup. Thus, the notification may indicate that the one or more items are complete and ready for delivery to the end user.
[0128] At step 432, the scale system 120 may provide a notification to the central server computer 102 indicating that the order is complete and ready for pickup. The notification may include the fulfillment request identifier.
[0129] At step 434 , upon receiving notification that the one or more items are complete and ready for delivery from the scale system 120 to the end user, the central server computer 102 may provide a notification to the transporter user device 110 .
[0130] In some embodiments, if the central server computer 102 performs additional processing after determining that the estimated weight matches the actual weight, the central server computer 102 can provide a notification that the order is ready for pickup.
[0131] In some embodiments, the central server computer 102 may provide the notification after communicating with the transporter user device 110 during steps 414-418. In other embodiments, the notification may be provided to the transporter user device 110 along with the communication during steps 414-418.
[0132] At any point in time after receiving the acceptance message, the central server computer 102 can check the status of the fulfillment request at step 436. For example, the central server computer 102 can determine the location of the transporter user device 110 and can determine the estimated amount of time for the transporter user device 110 to arrive at the end user's location.
[0133] At step 438, the central server computer 102 may provide an update message including data related to the fulfillment request message to the end-user device 108. The data may include an estimated amount of time, transporter user device location, event data (e.g., items picked up from a service provider), and / or other data related to the fulfillment of the fulfillment request message.
[0134] At step 440, the central server computer 102 may store any data received, sent, and / or processed during the fulfillment of the fulfillment request message in a database. For example, the central server computer 102 may store the user's cart selection as a user feature in a user feature database.
[0135] Figure 5 A flow chart of a weighing instrument operating method according to an embodiment is shown. Figure 5 The method shown in can be performed using a scale system, which can be a smart shelf. The flowchart will be described from the perspective of a service provider employee (e.g., an operator) processing an order using a scale system. Prior to step 502, the end user may have provided a fulfillment request for one or more items to a central server computer. The central server computer can create an order based on data related to the fulfillment request (e.g., item information, estimated weight of the item, etc.) and send the order to a service provider computer that communicates with the smart shelf. The service provider can then prepare the items in the order.
[0136] The scale system may allow multiple orders to be placed on the scale system. For example, a service provider such as a restaurant may currently have five pending orders. Two of the orders may be for dine-in customers, while the other three orders may be ready for delivery. The scale system may be configured to ignore the weight of orders placed on the scale that are not ready for delivery (e.g., for dine-in customers).
[0137] At step 502, an operator (e.g., a service provider employee) may complete the order and may place the order items on the scale system. For example, the operator may prepare the one or more items and then place them in a container as indicated in the fulfillment request message. The operator may place the container on a scale on the scale system.
[0138] At step 504, the scale system may have a display showing a plurality of orders. The operator may select an order from the displayed orders that the service provider currently needs to fulfill. The order may be an order corresponding to a container placed on the scale.
[0139] The scale system may determine whether the order corresponds to an order to be delivered via a transporter arranged by the central server computer. If the scale system determines that the selected order is not associated with the central server computer, the scale system may proceed to step 506. In this case, the scale system may ignore the weight of the order that is not ready for delivery. If the scale system determines that the selected order is associated with the central server computer, the scale system may proceed to step 510.
[0140] In some embodiments, at steps 506-508, the scale system may determine that the order is not a ready-to-deliver order. For example, a restaurant employee may order food on a scale system for dining customers. The order is not considered when determining the weight of other orders of items on the scale system. The scale system may ignore the weight of the order. If the order is the first order placed on the shelf, the shelf may be readjusted to zero pounds or kilograms (e.g., tilted to zero) even if the order is on the scale system.
[0141] In other embodiments, the scale system can handle both ready-to-deliver orders and ready-to-eat orders. For example, a restaurant employee can order food on a scale system for dining customers. The order for food can be processed in the same manner as the ready-to-deliver order. Later, once the food order is verified, the food order can be provided directly to the user for dining.
[0142] At step 510, if the order is a ready-to-deliver order, the scale system (or a central server computer in communication with the scale system) then measures the weight of the order (e.g., obtains actual weight data). For example, the actual weight data for the order may be the difference between the load on the scale before the order is placed on the load receiving plate of the scale and the load on the scale after the order is placed on the load receiving plate.
[0143] The scale system may compare the actual weight data to the estimated weight data previously received (e.g., received in conjunction with the fulfillment request message). If the actual weight data matches the estimated weight data, the scale system may proceed to steps 520-522. If the actual weight data does not match the estimated weight data, the scale system may proceed to steps 512-514. In other embodiments, the scale system may provide the actual weight data to the central server computer for comparison of the weight data.
[0144] The scale system may perform additional processing based on the comparison of the actual weight data and the estimated weight data. Examples of additional processing will be discussed.
[0145] At steps 512-514, the expected weight of the order and the measured weight of the order may not match or may not be within a predetermined threshold of each other. The scale system may provide a notification to the operator of the smart scale that the order placed on the scale does not match the estimated weight data of the order. The scale system may provide one or more options to the operator of the smart scale to resolve the weight discrepancy. For example, the following two options are examples of additional processing that the scale system may perform. The additional processing may include determining whether the fulfillment request for the one or more items provided by the service provider is erroneous or fraudulent.
[0146] If there is an error in the order, one option may involve the operator correcting the order at step 516. For example, the operator may add the forgotten item to the order, remove the incorrect item from the order, elect to re-weigh the order because something else may have been incorrectly added to the weight (e.g., someone leaned on the scale), place the correct order on the scale, and / or any other action to remedy the discrepancy between the actual weight data and the estimated weight data.
[0147] Another option may involve the operator selecting that the weight is indeed correct even though the order weight comparison indicates that the actual weight data does not match the estimated weight data at step 518. This may occur if the restaurant introduces new sizes or if meal sizes change but the central server computer has not yet received updated / recent weight data for these changes.
[0148] At step 520 , after including the actual weight data and the estimated weight data, the scale system may determine that the actual weight data and the estimated weight data match (or are within an acceptable difference threshold).
[0149] At step 522, after the scale system determines that the actual weight data and the estimated weight data match, the scale system may perform additional processing. For example, the scale system may trigger an order ready flag. The scale system may generate a notification indicating that the order is ready for pickup and is on the scale. The scale system may provide a notification to a central server computer, which may notify a transporter assigned to deliver the order that the order is ready for pickup and is on the scale.
[0150] As another example, additional processing can include the scale system receiving image data from a camera. The camera can be included in the scale system and can capture an image of the load on the load receiving plate of the scale. The scale system can receive image data of the one or more items in the fulfillment request. The scale system can evaluate the image data to confirm that the container in the image includes a barcode, QR code, or fulfillment request identifier that matches the fulfillment request identifier of the order, as received in the fulfillment request message.
[0151] For example, the scale system may process the image data using a machine learning model that is trained to identify text in an image. The scale system may utilize the machine learning model to identify and parse a fulfillment request identifier written or printed on a side of a container placed on the scale. If the fulfillment request identifier on the container as obtained by the camera does not match the fulfillment request identifier selected by the operator during step 504, the scale system may raise an error flag to the operator of the scale system.
[0152] Figure 6A user interface 600 is shown illustrating pending orders according to an embodiment. Figure 6 A user interface 600 is included that may be displayed by the scale computer 124. The user interface 600 may be a 'home' screen. The user interface 600 includes three sections, a 'to be weighed' section 602, a 'ready for pickup' section 604, and an 'out for delivery' section 606. The different sections may indicate different stages of preparing and providing items to an end user. Each section may include an order corresponding to a fulfillment request message received from the central server computer 104. Three exemplary orders are shown in the user interface 600: a first order 610, a second order 620, and a third order 630.
[0153] The first order 610 includes an indication of how many items are in the order as indicated by an item count 612. The first order 610 also includes an order name 614, which may be the name of the end user for whom the order is intended. The first order also includes an order number 616, which may be a unique identifier that identifies the order.
[0154] A scale user (e.g., an employee of a service provider) can utilize the scale system 120 and the user interface 600 to view and interact with orders. For example, the scale user can interact with the scale system 120 to weigh an order. The scale user can place an order on the scale 122 of the scale system 120. For example, the scale user can place a closed container, such as a bag, that includes items of an order to be weighed (e.g., order number 8712318). The scale user can then select a first order 610 on the user interface 600 displayed on the scale computer 124. For example, the user interface 600 can be displayed on a touch screen, where the scale user can touch the screen to select the first order 610. Upon selecting the first order, the scale computer 124 can display an indication of whether the actual weight of the order matches the estimated weight of the order.
[0155] After the scale user selects the first order 610 in the user interface 600, the scale computer 124 may identify that the actual weight of the container placed on the scale 122 is less than the estimated weight of the order. The scale computer 124 may display Figure 7 The user interface shown in .
[0156] Figure 7 A user interface 700 is shown illustrating an order weight discrepancy according to an embodiment. The user interface 700 may be displayed by the scale computer 124 after a weight discrepancy is detected. The user interface 700 may include an order details section 702 and an order weight comparison section 704.
[0157] The order details section 702 may include information about the order that the scale user is weighing. The order details section 702 may include an order number (e.g., order 8712318), an estimated order preparation time 710, and an estimated transporter arrival time 708. The order details section 702 also indicates which items are included in the order and the estimated weight of each item in the order. For example, the order details section 702 includes a first item 712 (e.g., beef tacos and selected toppings), a second item 714 (e.g., steak fajita and selected toppings), and additional weight-added items (e.g., bags and additional items such as forks, sauces, napkins, etc.). The order details section 702 also indicates the estimated weight 718 of the first item (e.g., 300 grams), the estimated weight of the second item (e.g., 300 grams), and the estimated weight of the additional weight-added items (e.g., 135 grams).
[0158] The order weight comparison section 704 displays the total actual weight 724 (eg, measured weight) and the total estimated weight 726 (eg, expected weight) of the order. The order weight comparison section 704 may notify the scale user that the total actual weight 724 is less than the total estimated weight 726.
[0159] The user interface 700 provides the scale user with multiple options for remedying the weight discrepancy. For example, the order weight comparison section 704 includes multiple reasons why the actual weight is lighter than expected 728. The scale user can select the reason why the weight discrepancy exists. Reasons include, for example, no free extras or sauces, no napkins / cutlery, item is off the scale, fewer bags were used, item is out of stock, or weight should be correct.
[0160] The Order Weight Comparison section also includes a Reweigh Order button 730 and a Done button 732. The Reweigh Order button 730 may cause the scale computer 124 to communicate with the scale 122 to obtain a new actual weight for the order. For example, the scale user may add a forgotten item to the bag of items on the scale 122 and then select to reweigh the order. When there is no difference between the actual weight and the measured weight, or the scale user has selected one or more reasons for the weight difference, the scale user may press Done button 732 to proceed to Figure 8 The user interface shown in .
[0161] Figure 8A user interface 800 is shown illustrating a first order weight correction according to an embodiment. The user interface 800 includes an expected weight menu 802 that displays a correct weight notification 804 to the scale user indicating that the order on the scale 122 is now at the expected weight (e.g., the estimated weight matches the actual weight). The expected weight menu 802 also includes options for reasons why the initial actual weight is different than the estimated weight 806. For example, the expected weight menu 802 may include selectable reasons such as an item was forgotten, free extras were not added, an item was intentionally off the scale, sauce was not added, a bag was off the scale, a different order was weighed accidentally, etc. The expected weight menu 802 also includes an order ready button 808 that the scale user may select to proceed. After pressing the order ready button 808, the scale computer 124 may display an order ready button 808 that the scale user may select to proceed. Fig. 9 The user interface shown in , as indicated by a scale user.
[0162] Fig. 9 A user interface 900 illustrating a second order weight correction according to an embodiment is shown. The user interface 900 includes a select missing item pop-up window 902. If the scale user indicates that an item was initially forgotten and offset from the scale 122 during the initial weighing of the order, the scale computer 124 may prompt the scale user to select which item in the order is missing by selecting the missing item pop-up window 902. The select missing item pop-up window 902 may include selectable options corresponding to the items of the order. For example, the select missing item pop-up window 902 may include a first item 904 (e.g., beef taco) and a second item 906 (e.g., steak fajita mac). The scale user may select which item was forgotten (e.g., beef taco may be forgotten). The select missing item pop-up window 902 may also include a finish button 908 to submit the selection.
[0163] After receiving input indicating that the Done button 908 was pressed, the scale computer 124 may return to the 'Home' screen, such as Fig.10 As shown in .
[0164] Fig.10 A user interface 1000 is shown illustrating an order ready for pickup according to an embodiment. The user interface 1000 includes a reference Figure 6 Three sections are depicted, including a "to be weighed" section 602, a "ready to be picked up" section 604, and an "outbound delivery section" 606. After the scale user submits a pickup order, a first order 610 may be moved from the to be weighed section 602 to the ready to be picked up section 604.
[0165] At a later point in time, once the orders are collected for delivery, the relevant orders can be selected in the ready for pickup section 604 and moved to the outbound delivery section 606.
[0166] Fig.11 A perspective view of a scale system according to an embodiment is shown. Fig.11 Two example variations of scale systems are included, including a first scale system 1100 and a second scale system 1150 .
[0167] The first scale system 1100 includes a first shelf 1102, a first scale 1104, and a first scale computer 1106. The first shelf 1102 can be a structure that provides a surface for storing objects. For example, the first shelf 1102 can provide a surface on which the first scale 1104 is located. The first shelf 1102 can be a structure made of metal, plastic, wood, etc. or a combination thereof. The first shelf 1102 can be a table or counter.
[0168] The first scale 1104 can be placed on the first shelf 1102. The first scale 1104 can be located on a flat horizontal portion of the first shelf 1102. The first scale 1104 can have a size that allows one or more loads to be placed on the load receiving plate of the first scale 1104. For example, the first order 1108 and the second order 1110 can be placed on the first scale 1104.
[0169] The first scale computer 1106 may be connected to the back of the first scale 1104 via an electromechanical connection (e.g., from Fig.11 106). The first scale computer 1104 may be connected to the first scale 1104 with a rod assembly that raises the height of the first scale computer 1106 from the height of the first scale 1104. Thus, the operator may see the first scale computer 1104 over any loads placed on the first scale 104 (e.g., the first order 1108 and the second order 1110).
[0170] The first order 1108 and the second order 1110 may each include one or more items as indicated in the fulfillment request message corresponding to the order. The one or more items may be placed in a closed container, which may then be placed on the load receiving plate of the first scale 1104.
[0171] The second scale system 1150 includes a second shelf 1152, a second scale 1154, and a second scale computer 1156. The second shelf 1152 may be a structure that provides a surface for storing objects. The second shelf 1152 may be similar to the first shelf 1102. The second scale 1154 may be similar to the first scale 1104.
[0172] The second scale computer 1156 may be connected to the second scale 1154 via an electromechanical connection. The second scale computer 1156 may be connected to the front of the second scale 1154 (e.g., from Fig.11 from the perspective of the image in the image).
[0173] A third order 1158 and a fourth order 1160 may be placed on the second scale 1154. As an example, the third order 1158 may include a first item and a second item having weights W1 and W2, respectively. The fourth order 1160 may include a third item, a fourth item, and a fifth item having weights W3, W4, and W5, respectively. In addition, the weight of the container of each item may be WC. When no order is placed on the second scale 1154, the second scale 1154 may start with a weight reading of zero. When the third order 1158 is placed on the second scale 1154, the second scale 1154 may record the third order actual weight data as equal to W1+W2+WC. When the fourth order 1160 is placed on the second scale 1154, the second scale 1154 may record the weight of W1+W2+(2*WC)+W3+(2*W4) as the new total weight. The second scale 1154 may determine the weight difference (e.g., weight change) by subtracting the third order actual weight data from the new total weight to obtain the fourth order actual weight data. For example, the second scale 1154 may execute: [W1+W2+(2*WC)+W3+(2*W4)]–[W1+W2+WC]=W3+(2*W4)+WC. Therefore, the second scale 1154 may record the fourth order actual weight data equal to W3+(2*W4)+WC.
[0174] Fig.12 A block diagram illustrating components of a weight processing system according to an embodiment is shown. Fig.12 An example weight processing system is shown that includes a camera 1202, a scale 1204, a smart shelf application 1206, an image database 1208, a merchant mobile computer 1210 (e.g., such as a merchant mobile BFF (backend for frontend)), a smart shelf service 1212, a smart shelf database 1214, a merchant order service 1216, and a weight service 1218.
[0175] The central server computer (eg, central server computer 104) may include a smart shelf service 1212, a smart shelf database 1214, a merchant order service 1216, and a weight service 1218. In some embodiments, the central server computer may include an image database 1208.
[0176] A scale system (eg, scale system 120 ) may include a camera 1202 , a scale 1204 , and a smart shelf application 1206 .
[0177] The camera 1202 may capture image data of a load (e.g., a food order) placed on the scale 1204. The camera 1202 may be a device for recording a visual image in the form of a photograph, film, or video signal. The camera 1202 may capture image data of items and / or closed containers on the scale 1204.
[0178] The scale 1204 may capture actual weight data of the order placed on the scale 1204. The scale 1204 may be coupled to the camera 1202 and a scale computer including a smart shelf application 1206. The scale 1204, camera 1202, and smart shelf application 1206 may be collectively included in a scale system.
[0179] The smart shelf application 1206 may provide an interface that may display an order corresponding to the fulfillment request message to an operator of the scale system. The smart shelf application 1206 may be installed on a scale computer coupled to the scale 1204. The smart shelf application 1206 may receive input (e.g., via a touch screen and / or buttons) from an operator (e.g., a service provider). For example, when placing one or more items of an order on the scale 1204, the operator may select an order in the smart shelf application 1206.
[0180] The image database 1208 may be a database storing image data. The smart shelf application 1206 may obtain the image data from the camera 1202. The smart shelf application 1206 may transmit the image data to the image database 1208. The image database 1208 may be a remote database relative to the service provider's location. The image database 1208 may be a cloud-based storage database.
[0181] The merchant mobile computer 1210 may facilitate communication between the smart shelf application 1206 and the smart shelf service 1212. The merchant mobile computer 1210 may allow the scale system (which includes the smart shelf application 1206) to communicate with the central server computer (which includes the smart shelf service 1212). The merchant mobile computer 1210 may implement a back-end serving the front-end architecture pattern, as known to those skilled in the art.
[0182] Smart shelf service 1212 may be a service that facilitates order processing, including updating the status of an order, notifying a transporter (eg, a deliverer) that the order is ready, etc. The status of the order may be stored in a smart shelf database 1214 .
[0183] The smart shelf service 1212 may use an API with the following exemplary code included in Table 1.
[0184] Table 1: Sample API code 1
[0185]
[0186]
[0187]
[0188] Merchant order service 1216 can provide detailed information about the order (e.g., the number of items in the order). Weight service 1218 can provide the estimated weight of the items in the order. Weight service 1218 can include an API with the following code shown in Table 2.
[0189] Table 2: Sample API code 2
[0190]
[0191] Fig.13 A flow chart of an order weight processing method according to an embodiment is shown. Fig.13 The method shown in can be performed by the scale computer 1302, the merchant mobile computer 1304, the smart shelf service 1306, the weight service 1308, the merchant order service 1310, the smart shelf database 1312, the weight database 1314, the image database 1316 and the delivery event bus 1318.
[0192] Merchant mobile computer 1304, smart shelf service 1306, weight service 1308, merchant order service 1310, smart shelf database 1312, weight database 1314, image database 1316, and delivery event bus 1318 may be part of a server computer such as central server computer 104. Scale computer 1302 may be part of scale system 120.
[0193] Fig.13 It can be divided into three stages: steps S1302 to S1312 may include creating an order based on data related to the fulfillment request, steps S1316 to S1338 may include processing the order, which includes notifying the transporter that the order is ready, and steps S1340 and S1342 may include the transporter delivering the order and completing the fulfillment of the order.
[0194] Prior to step S1302, an end user may use an end user device to create a fulfillment request message for one or more items (e.g., food) from a service provider (e.g., a restaurant). The end user device may provide the fulfillment request message to a central server computer. The central server computer may be operated by an entity that coordinates the delivery of orders from various service providers to end users.
[0195] At step S1302, upon receiving a fulfillment request message from an end-user device, the delivery event bus 1318 of the central server computer may trigger the smart shelf service 1306 to create an order (e.g., a delivery order) corresponding to the details of the fulfillment request. The delivery event bus 1318 may trigger actions based on events. For example, when the central server computer receives a fulfillment request message from an end-user device, the delivery event bus 1318 may identify an event of receiving the fulfillment request message. The delivery event bus 1318 may provide notification of the fulfillment request message to the smart shelf service 1306. The delivery event bus 1318 may provide the fulfillment request message to the smart shelf service 1306.
[0196] At step S1304, after receiving the fulfillment request message, the smart shelf service 1306 may generate an estimated weight request message. The estimated weight request message may be a request to receive estimated weight data corresponding to the order indicated in the fulfillment request message. The smart shelf service 1306 may provide the estimated weight request message to the weight service 1308 to determine the estimated weight data of the one or more items of the order of the fulfillment request message. In some embodiments, the smart shelf service 1306 may provide the fulfillment request message to the weight service 1308 in the estimated weight request message. In other embodiments, the smart shelf service 1306 may not send the fulfillment request message to the weight service 1308, wherein the weight service 1308 looks up relevant information about the fulfillment request message.
[0197] At step S1306, weight service 1308 may generate an information request message requesting information about the one or more items in the fulfillment request message. Weight service 1308 may provide the information request message to merchant order service 1310. The information request message may be an API call to merchant order service 1310, which returns data related to the one or more items. For example, merchant order service 1310 may provide the name, item type (e.g., beverage, side dish, main dish, etc.), selected options or side dishes, and / or any other information included in the fulfillment request message to weight service 1308. Further, merchant order service 1310 may provide an item identifier of each of the one or more items to weight service 1308 in response to the information request message.
[0198] At step S1308, after receiving the data related to the one or more items, weight service 1308 may retrieve historical weight data for each item from weight database 1314. For example, weight service 1308 may retrieve historical weight data for each item of the fulfillment request message from weight database 1314 using an item identifier for each item.
[0199] At step S1310, after receiving the historical weight data of each item, the weight service 1308 can determine the estimated weight data of the order based on the received historical weight data. For example, the weight service 1308 can determine the sum of the historical weight data of each item to obtain the estimated weight data of the order.
[0200] After determining the estimated weight data, weight service 1308 can provide the estimated weight data to smart shelf service 1306 in response to the estimated weight request message. In some embodiments, weight service 1308 can also provide individual estimated weight data for each item of the order to smart shelf service 1306 based on historical weight data.
[0201] At step S1312, after receiving the estimated weight data, the smart shelf service 1306 can create a pending order for processing by the service provider, the pending order including the estimated weight data and data related to the fulfillment request (e.g., user information, total cost, etc.). The smart shelf service 1306 can provide the pending order to the smart shelf database 1312 for storage. The pending order can be stored in association with a service provider identifier that identifies the service provider that prepared the order.
[0202] At step S1314, the scale computer 1302 may check pending orders by communicating with the smart shelf service 1306. The scale computer 1302 may check pending orders at any point in time. The scale computer 1302 may check pending orders periodically (e.g., every minute), or may check pending orders based on how many pending orders the scale computer 1302 currently knows. For example, if the scale computer 1302 has no current pending orders, the scale computer 1302 may check for new pending orders more frequently than if the scale computer 1302 has ten pending orders.
[0203] The scale computer 1302 may generate and provide a pending order request message to the smart shelf service 1306 to request any pending orders. The pending order request message may include a service provider identifier of a service provider operating the scale computer 1302.
[0204] At step S1316, after receiving the pending order request message, the smart shelf service 1306 may query the smart shelf database 1312 using the service provider identifier to find any pending orders.
[0205] At step S1318, the smart shelf service 1306 may provide any pending orders obtained from the smart shelf database 1312 to the scale computer 1302. In some embodiments, the smart shelf database 1312 may have multiple pending orders from multiple fulfillment requests and may provide the multiple pending orders to the scale computer 1302.
[0206] At step S1320, after receiving one or more pending orders from the smart shelf service 1306, the scale computer 1302 may notify the operator of the scale computer 1302 of receiving the one or more pending orders. The operator of the scale computer 1302 may prepare one or more items for each pending order. When the one or more items of the pending order are completed, the operator may place a container containing the one or more items of the pending order on a scale coupled to the scale computer 1302.
[0207] The scale may obtain actual weight data for the load (e.g., container). The scale may provide the actual weight data to the scale computer 1302. An operator of the scale computer 1302 may select an order from a plurality of pending orders that match the one or more items on the scale. The scale computer 1302 may compare the actual weight data to the estimated weight data. For example, the scale computer 1302 may verify that the actual weight data corresponds to the estimated weight data. The scale computer 1302 may perform additional processing based on the verification. Various additional processing steps will be discussed.
[0208] In some embodiments, the scale computer 1302 can provide the actual weight data to the central server computer. The central server computer can verify that the actual weight data corresponds to the one or more items of the order. The central server computer can verify the actual weight data by comparing the actual weight data with the estimated weight data of the order. If the two weight data match, the central server computer can perform additional processing of the order based on the weight data.
[0209] In some embodiments, additional processing may include adjusting items in the order. For example, the estimated weight data and the measured weight data may differ by more than a certain weight threshold. In this case, the service provider may realize that the fulfillment request for one or more items is incorrect and replace the one or more items with the correct items.
[0210] In some embodiments, a camera coupled to the scale computer can help identify an order from multiple pending orders. Additional processing can include processing image data. For example, the camera can capture image data of the one or more items. The camera can output the image data to the scale computer 1302. The scale computer 1302 can use several different methods to determine which item belongs to the order.
[0211] A first method may be that when a new unidentified load (e.g., item) is detected, the scale computer 1302 may check whether the camera has identified any order in the past (e.g., during certain seconds) but has not yet had a weight associated with it. If there is a match, the scale may associate the new weight with the order.
[0212] A second method may be that when a new unidentified weight is detected that has no matching order, the scale computer 1302 may use the UI to prompt the operator of the scale computer to identify the order.
[0213] A third method may be that when the camera identifies an order, the scale computer 1302 may check whether an unidentified weight has been detected in the past. If an unidentified weight is found, the scale computer 1302 may associate the unidentified weight with the identified order. Upon successful matching, the central server computer may perform additional processing of the order based on the weight data and the image data.
[0214] In some embodiments, additional processing may include the scale computer 1302 providing the image data to the smart shelf service 1306 for storage in association with the fulfillment request identifier.
[0215] Additional processing may also include generating an order for ready-for-pickup notifications. For example, the scale computer 1302 may generate an order for ready-for-pickup notifications. In some embodiments, the central server computer may perform additional processing and generate an order for ready-for-pickup notifications.
[0216] For example, at step S1322, the scale computer 1302 may send an order for ready-to-pick notifications to the smart shelf service 1306, the order may be an indication that the one or more items are ready for delivery. The order for ready-to-pick notifications may include a fulfillment request identifier. The order for ready-to-pick notifications may also include a service provider identifier.
[0217] At step S1324 , upon receiving the order ready for pickup notification, the smart shelf service 1306 may update the matching order in the smart shelf database 1312 .
[0218] At step S1326, the smart shelf service 1306 can provide the order ready for pickup notification to the merchant order service 1310. The merchant order service 1310 can provide the order ready for pickup notification to one or more transporter user devices, which can be used to deliver the order from the service provider to the end user. The transporter user device of the one or more transporter user devices can send an acceptance indication of the delivery order. In this case, the central server computer can facilitate the transporter to deliver the order.
[0219] In some embodiments, additional processing may include providing a ready for pickup notification to a transporter device that is an autonomous vehicle (e.g., an autonomous car, an autonomous drone, etc.).
[0220] In some embodiments, at step S1328, the smart shelf service 1306 may store the image data of the order to the image database 1316. For example, the scale computer 1302 may provide the image data including an image of the order on the scale to the smart shelf service 1306. The smart shelf service 1306 may store the image data for later use (e.g., in conflict resolution as proof that the container including the order was on the scale with a specific weight at a specific point in time).
[0221] At step S1330 , the smart shelf service 1306 may generate and send a response to the scale computer 1302 that the order has been processed for delivery.
[0222] At a later point in time, at step S1332, the scale computer 1302 may obtain current actual weight data for the order on the scale. The scale computer 1302 may periodically obtain current actual weight data for the order on the scale. The scale computer 1302 may provide the current actual weight data for the order to the smart shelf service 1306. In some embodiments, if the estimated weight data and the actual weight data for the one or more items previously differed by more than a weight threshold, and the service provider selected the one or more items as correct despite the weight discrepancy notification, the central server computer may have an inaccurate weight estimate for the one or more items.
[0223] At step S1334 , the smart shelf service 1306 may store the current weight data in the smart shelf database 1312 in association with the fulfillment request identifier.
[0224] At step S1336, the smart shelf service 1306 may provide the current actual weight data of the order to the weight service 1308. As described above, if the estimated weight data and the actual weight data of the one or more items previously differed by more than a weight threshold, the weight service 1308 may provide the current actual weight data to the weight database 1314 to update the estimated weight based on the measured weight.
[0225] In some embodiments, at step S1338, the smart shelf service 1306 may provide a response to the scale computer 1302 that the current actual weight has been stored.
[0226] At some point in time, the transporter may pick up the order from the scale. The delivery event bus 1318 may identify a pickup event in different ways.
[0227] In a first manner, the transporter can use its transporter user device to press a button to indicate that the order is being picked up. The transporter user device can notify the central server computer of the pickup event. The delivery event bus 1318 can identify the pickup event.
[0228] In a second manner, the transporter may utilize the scale computer 1302 to press a button to indicate that the order is being picked up. The scale computer 1302 may notify the central server computer (e.g., via the smart shelf service 1306) of the pickup event. The delivery event bus 1318 may identify the pickup event.
[0229] In a third manner, the scale computer 1302 may obtain current actual weight data from the scale, which indicates that the weight on the scale has decreased by an amount equal to the order. The scale computer 1302 may utilize a camera to confirm that the order is no longer present on the scale. The scale computer 1302 may notify the central server computer (e.g., via the smart shelf service 1306) of the pickup event. The delivery event bus 1318 may identify the pickup event.
[0230] At step S1340, after the delivery event bus 1318 identifies the pickup event, if the pickup event is not initiated by the smart shelf service 1306 (e.g., the pickup event comes from a transporter user device), the delivery event bus 1318 can notify the smart shelf service 1306 that the order has been picked up by the transporter.
[0231] At step S1342, the smart shelf service 1306 may update the order in the smart shelf database 1312 by changing the order status to "complete" when the order is picked up.
[0232] Fig.14A state diagram for detecting weight changes according to an embodiment is shown.Due to noise from the environment (eg, hands touching the scale, breeze affecting the weight, etc.), a moving average or other aggregation of weight readings may be required to get an accurate weight measurement. Fig.14 The state diagram of the state machine in can be used to manage the scale readings and try to detect when a new object is placed on the scale. There are three states in the state diagram: stable state 1402, waiting for stabilization state 1404 and recording weight increment state 1406 relative to the previous baseline.
[0233] The stable state 1402 may be a state when the weight measurement is stable. The stable state 1402 may occur if the scale does not detect a change in the weight measurement for a predetermined amount of time (e.g., 0.1 seconds, 2 seconds, etc.). The waiting for stabilization state 1404 may be a state in which the scale is waiting for the weight to stabilize. The recording weight increment relative to the previous baseline state 1406 may be a state in which the scale determines to record a weight change to capture actual weight data.
[0234] At state change S1401, the steady state 1402 may check the weight reading for a moving weight average that is above a certain percentage increase. The weight average may shift due to external noise. For example, if there is a 10lb item on the scale, the scale may check the moving average, looking for a 10% increase. Thus, even if some noise such as a breeze causes an increase of 0.5lb, since 0.5lb is less than 1lb (10%), the scale will not shift weight and remain in the steady state 1402.
[0235] At state change S1402 , if there is a moving average value that is above a certain percentage increase, the scale may transition from the stable state 1402 to the wait for stabilization state 1404 .
[0236] At step S1406, if the moving average is above a certain percentage increase, but quickly returns to the baseline weight, the waiting for stabilization state 1404 can transition back to the stable state 1402. For example, if there is a 10 lb item on the scale, the scale can check the moving average, looking for a 10% increase. If some noise, such as a breeze, causes an increase of 1.5 lb, the stable state 1402 will transition to the waiting for stabilization state 1404. However, since breezes are not stable and last only a short time, once the breeze disappears, the scale will quickly transition the state back to the stable state 1402.
[0237] At state change S1404, after detecting a weight gain, if the weight gain remains and is stable, the scale may wait for the standard deviation of the last pair of weight gain readings to reach a threshold. For example, if a new 5 lb item is placed on the scale, the scale may take several measurements of the new item. The weight measurements may fluctuate due to noise (e.g., 5.1 lb, 5.2 lb, etc.). For each new measurement, the scale may calculate the standard deviation of the 10 most recent readings. If the calculated standard deviation does not reach a threshold (e.g., 1 standard deviation), the scale may take more measurements until the calculated standard deviation meets the threshold.
[0238] In state change S1408, if the standard deviation meets the threshold, the scale can move from the wait for stabilization state 1404 to the record weight increment relative to the previous baseline state 1406. In the record weight increment relative to the previous baseline state 1406, the scale can identify and record the difference in weight increase, which can be the actual weight data of the newly added load.
[0239] In state change S1410, the scale may move from the recording weight increment state 1406 relative to the previous baseline to the stable state 1402, where the weight difference serves as the new baseline weight for recording new measurements.
[0240] Embodiments provide many advantages. For example, embodiments provide a trigger event that indicates an order is ready to be picked up while verifying the accuracy of the weight of the order.
[0241] Embodiments provide the advantage of verifying the weight of one or more items in an order, even if the items are in a closed container and not easily identifiable by eye. The weight of the order may indicate whether all requested items are included in the closed container.
[0242] Embodiments further provide the advantage of capturing weight data to resolve conflicts in the event of an erroneous or fraudulent item placement in an order. For example, previously, when an order in a closed container was delivered to an end user, if an item was missing because verification had not occurred since the order was packed, the end user had no recourse. Thus, the only parties with information about the item were the two parties involved in remediating the order. Embodiments provide for a record of order weights and / or images that can be used to aid in the remediation process.
[0243] Any of the software components or functions described in this application may be implemented as software code executed by a processor using any suitable computer language, such as Java, C, C++, C#, Objective-C, Swift, or a scripting language such as Perl or Python using, for example, conventional or object-oriented techniques. The software code may be stored as a series of instructions or commands on a computer-readable medium for storage and / or transmission, suitable media including random access memory (RAM), read-only memory (ROM), magnetic media such as a hard drive or floppy disk, or optical media such as a compact disk (CD) or DVD (digital versatile disk), flash memory, and the like. The computer-readable medium may be any combination of such storage or transmission devices.
[0244] Such programs can also be used to encode and transmit using a carrier signal suitable for transmission through wired, optical and / or wireless networks that meet various protocols including the Internet. Therefore, a data signal encoded with such programs can be used to create a computer-readable medium according to an embodiment of the present invention. The computer-readable medium encoded with program code can be packaged together with compatible devices, or provided separately from other devices (for example, downloaded via the Internet). Any such computer-readable medium can reside on or in a single computer product (for example, a hard drive, a CD or a whole computer system), and can be present on or in different computer products in a system or network. A computer system can include a monitor, a printer or other suitable displays for providing any result mentioned herein to a user.
[0245] The above description is illustrative and non-restrictive. After reading this disclosure, many changes of the present invention will become apparent to those skilled in the art. Therefore, the scope of the present invention should not be determined with reference to the above description, but should be determined with reference to pending claims and their full scope or equivalent.
[0246] One or more features from any embodiment may be combined with one or more features of any other embodiment without departing from the scope of the present invention.
[0247] As used herein, the use of "a," "an," or "the" is intended to mean "at least one" unless clearly indicated to the contrary.
Claims
1. A method comprising: Receiving, by a computer, a fulfillment request associated with one or more items; in response to receiving the fulfillment request, determining, by the computer, estimated weight data based on the one or more items in the fulfillment request; obtaining, by the computer, actual weight data associated with the fulfillment request for one or more items; verifying, by the computer, that the actual weight data corresponds to the estimated weight data; as well as Further processing is performed by the computer based on the verification.
2. A method according to claim 1, wherein the computer is a central server computer remotely located relative to a service provider computer, the service provider computer fulfills the fulfillment request for the one or more items, and the fulfillment request is received from an end user device, and the one or more items are requested by an end user of the end user device.
3. The method of claim 1, wherein the computer is located at a service provider location.
4. The method according to claim 1, wherein obtaining the actual weight data comprises: receiving a message including the actual weight data from a scale at a service provider location of a service provider providing the one or more items; and identifying the actual weight data in the message. 5 . The method of claim 1 , wherein obtaining the actual weight data comprises weighing the one or more items using a scale coupled to the computer to determine the actual weight data.
6. A method according to claim 1, wherein the one or more items include two or more items in an order of items in a container, and determining the actual weight data includes weighing the container containing the two or more items using a scale coupled to the computer to determine the actual weight data.
7. The method of claim 6, wherein the container is a closed container.
8. The method of claim 7, wherein the container is a bag.
9. The method according to claim 2, wherein the method further comprises: providing, by the central server computer, communications regarding the fulfillment request to one or more transporter user devices of one or more transporters; receiving, by the central server computer, an acceptance indication from a transporter user device of a transporter of the one or more transporter user devices; as well as The transporter is facilitated by the central server computer to deliver the one or more items from the service provider location of the service provider computer to the end user.
10. The method of claim 9, wherein performing additional processing comprises: Notification is provided by the central server computer that the one or more items are completed and ready for delivery to the end user. The method of claim 10 , wherein said providing said notification occurs after providing said communication.
12. The method of claim 10, wherein said providing said notification occurs simultaneously with providing said communication.
13. The method of claim 1, further comprising: Image data of the one or more items in the fulfillment request is received by the computer from a camera, wherein the further processing is also based on the image data.
14. The method of claim 1, wherein the additional processing includes determining whether the fulfillment request for the one or more items provided by a service provider is erroneous or fraudulent.
15. The method of claim 1, wherein the further processing includes determining whether the actual weight data exceeds a weight threshold for delivering the one or more items to an end user.
16. The method according to claim 15, wherein the method further comprises: providing, by the computer, a communication regarding the fulfillment request to one or more transporter user devices of one or more transporters, wherein the transporters are autonomous vehicles and the one or more transporter user devices are communication devices in the autonomous vehicles; receiving, by the computer, an acceptance indication from a transporter user device of a transporter of the one or more transporter user devices; and The computer facilitates the transporter to deliver the one or more items from the service provider to the end user.
17. The method of claim 1, wherein determining the actual weight data comprises: Receiving a message containing the actual weight data from a scale at a service provider location of a service provider that fulfills the fulfillment request for the one or more items; and identifying the actual weight data in the message, wherein the one or more items include two or more items and constitute a first order, the scale being in the form of a shelf suitable for receiving and supporting multiple orders in multiple containers.
18. The method of claim 1, further comprising: determining, by the computer, a first fulfillment request identifier for the fulfillment request; storing, by the computer, the first fulfillment request identifier in a database along with an indication of the one or more items and the estimated weight data, receiving, by the computer, a second fulfillment request identifier associated with the actual weight data; as well as The estimated weight data is looked up in the database using the second fulfillment request identifier to determine a match with the first fulfillment request identifier.
19. A computer, comprising: processor; as well as A computer readable medium containing code executable by the processor to perform a method comprising: receiving a fulfillment request associated with one or more items; in response to receiving the fulfillment request, determining estimated weight data based on the one or more items in the fulfillment request; obtaining actual weight data associated with the fulfillment request for one or more items; verifying that the actual weight data corresponds to the estimated weight data; and Additional processing is performed based on the verification.
20. A system comprising: Weighing instruments; as well as A computer coupled to the weighing instrument, the computer comprising: processor, and A computer readable medium containing code executable by the processor to perform a method comprising: receiving a fulfillment request associated with one or more items; in response to receiving the fulfillment request, determining estimated weight data based on the one or more items in the fulfillment request; obtaining actual weight data associated with the fulfillment request for one or more items; verifying that the actual weight data corresponds to the estimated weight data; and Additional processing is performed based on the verification.
21. The system of claim 20, wherein the scale is part of a shelf.
22. The system of claim 21, further comprising a camera operatively coupled to the computer, wherein the camera is adapted to capture image data of the one or more items on the scale, and wherein the additional processing performed is also based on the image data.
23. The system of claim 20, further comprising: A container having the one or more items, the container having one or more orders on the scale.
24. The system of claim 23, wherein the container is a closed container.