This invention relates in general to the field of retail establishment management, and more particularly to process management systems that are adaptive for intended use and which employ one or more features directed to acceleration of order entry and fulfillment processes.
In prior times, when a patron entered a retail establishment (e.g., a store, a restaurant, etc.), an employee of the establishment assisted the patron in order to locate and generate an order of retail items for preparation and delivery. The employee either remembered the items or wrote the selections down on a paper order form. The order was then communicated/provided to an order processing station where one or more other employees assembled the prepared and the items on the order. The completed items were then delivered to the patron. Such a system has been employed for hundreds of years and is still used in many small establishments.
In more recent years, establishments—especially larger ones—are switching over from paper-based ordering to electronic screen-based ordering systems. These systems may employ conventional displays for viewing menu items and conventional keyboards for entry of selected menu items to configure an order for a patron. Other forms of electronic ordering systems comprise touchscreen-based terminals (e.g., special purpose tablet computers—both wired and wireless—to generate orders and to communicate those orders to one or more order processing stations. These order processing stations may additionally have (typically) larger touchscreen-based terminals, whereon taken orders are displayed for preparation, and whereby order processors indicate completion of the orders. Completion is generally indicated by touching a specified area of the touchscreen terminals or by actuating controls that are coupled to the terminals.
As one skilled in the art will appreciate, many order processing environments are riddled with substances that are detrimental to electronic devices. Consider a restaurant kitchen, where one skilled will also appreciate that most food ingredients may damage electronic devices when they come in contact with the devices. In addition, many order processing environments require that order processors wear protective gear, which may also impede interaction with a touchscreen or other electronic device to indicate completion of orders.
The present inventors have observed the above problems and limitations in the art and have sensed a need for apparatus and methods within order entry and processing environments that preclude degradation of electronic order entry and processing devices, and that furthermore may be employed to accelerate order entry ad processing tasks over that which has heretofore been provided.
Therefore, what is needed is a retail management system that employs 3D gestures, to accelerate placement of orders and to indicate order completion.
What is also needed is a retail management system that employs voice commands, to accelerate placement of orders and to indicate order completion.
What is additionally needed is a retail management system that employs voice commands to enter a 3D gesture mode, where the 3D gestures are used to accelerate placement of orders and to indicate order completion.
What is furthermore needed is a retail management system that employs facial recognition for configuration of associated order entry and processing devices, including entering into a 3D gesture mode, where the 3D gestures are used to accelerate placement of orders and to indicate order completion.
What is moreover needed is a retail management system that suggests order selections based upon voice recognition of key terms, and that utilized 3D gestures to select from among the suggested order selections.
The present invention, among other applications, is directed to solving the above-noted problems and addresses other problems, disadvantages, and limitations of the prior art. In one embodiment, a terminal for adaptive restaurant management is provided. The terminal has a display, a microphone, and a configuration manager. The display and is configured to display electronic orders for preparation. The microphone is configured to detect audio spoken by a user working in proximity to the terminal. The configuration manager is coupled to the display and the microphone, and is configured to capture the audio of the user from the microphone, to transmit the audio via first messages to a backend server, to receive second messages from the backend server providing text that corresponds to the audio, to access voice commands that correspond to the text, and to modify display of the electronic orders on the display in accordance with the voice commands.
One aspect of the present invention contemplates a terminal for adaptive restaurant management that has a display, a microphone, and an order processor. The display is configured to display electronic orders for preparation. The microphone is configured to detect audio spoken by a user working in proximity to the terminal. The order processor is coupled to the display and the microphone, and is configured to maintain current states of all orders being fulfilled. The order processor includes current state fields and a configuration manager. The current state fields each maintain a current state for a corresponding one or the orders being fulfilled. The configuration manager is coupled to the display and the microphone, and is configured to capture the audio of the user from the microphone, to transmit the audio via first messages to a backend server, to receive second messages from the backend server providing text that corresponds to the audio, to access voice commands that correspond to the text, and to modify display of the electronic orders on the display in accordance with the voice commands.
Another aspect of the present invention comprehends a method for adaptive restaurant management, including: displaying electronic orders for preparation on a display; employing a microphone to detect audio spoken by a user working in proximity to a terminal; and capturing the audio of the user from the microphone, transmitting the audio via first messages to a backend server, receiving second messages from the backend server providing text that correspond to the audio, accessing voice commands that correspond to the text, and modifying display of the electronic orders on the display in accordance with the voice commands.
These and other objects, features, and advantages of the present invention will become better understood with regard to the following description, and accompanying drawings where:
Exemplary and illustrative embodiments of the invention are described below. It should be understood at the outset that, although exemplary embodiments are illustrated in the figures and described below, the principles of the present disclosure may be implemented using any number of techniques, whether currently known or not. In the interest of clarity, not all features of an actual implementation are described in this specification, for those skilled in the art will appreciate that in the development of any such actual embodiment, numerous implementation specific decisions are made to achieve specific goals, such as compliance with system-related and business-related constraints, which vary from one implementation to another. Furthermore, it will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking for those of ordinary skill in the art having the benefit of this disclosure. Various modifications to the preferred embodiment will be apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described herein, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed.
The present invention will now be described with reference to the attached figures. Various structures, systems, and devices are schematically depicted in the drawings for purposes of explanation only and so as to not obscure the present invention with details that are well known to those skilled in the art. Nevertheless, the attached drawings are included to describe and explain illustrative examples of the present invention. Unless otherwise specifically noted, articles depicted in the drawings are not necessarily drawn to scale.
The words and phrases used herein should be understood and interpreted to have a meaning consistent with the understanding of those words and phrases by those skilled in the relevant art. No special definition of a term or phrase (i.e., a definition that is different from the ordinary and customary meaning as understood by those skilled in the art) is intended to be implied by consistent usage of the term or phrase herein. To the extent that a term or phrase is intended to have a special meaning (i.e., a meaning other than that understood by skilled artisans) such a special definition will be expressly set forth in the specification in a definitional manner that directly and unequivocally provides the special definition for the term or phrase. As used in this disclosure, “each” refers to each member of a set, each member of a subset, each member of a group, each member of a portion, each member of a part, etc.
Applicants note that unless the words “means for” or “step for” are explicitly used in a particular claim, it is not intended that any of the appended claims or claim elements are recited in such a manner as to invoke 35 U.S.C. § 112(f).
Central Processing Unit (CPU): The electronic circuits (i.e., “hardware”) that execute the instructions of a computer program (also known as a “computer application” or “application”) by performing operations on data that include arithmetic operations, logical operations, and input/output operations.
Microprocessor: An electronic device that functions as a CPU on a single integrated circuit. A microprocessor receives digital data as input, processes the data according to instructions fetched from a memory (either on-die or off-die), and generates results of operations prescribed by the instructions as output. A general-purpose microprocessor may be employed in a desktop, mobile, or tablet computer, and is employed for uses such as computation, text editing, multimedia display, and Internet browsing. A microprocessor may also be disposed in an embedded system to control a wide variety of devices including appliances, mobile telephones, smart phones, and industrial control devices.
Instruction Set Architecture (ISA) or Instruction Set: A part of a computer architecture related to programming that includes data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and input/output. An ISA includes a specification of the set of opcodes (i.e., machine language instructions), and the native commands implemented by a particular CPU.
x86-Compatible Microprocessor: A microprocessor capable of executing computer applications that are programmed according to the x86 ISA.
Microcode: A term employed to refer to a plurality of micro instructions. A micro instruction (also referred to as a “native instruction”) is an instruction at the level that a microprocessor sub-unit executes. Exemplary sub-units include integer units, floating point units, MMX units, and load/store units. For example, micro instructions are directly executed by a reduced instruction set computer (RISC) microprocessor. For a complex instruction set computer (CISC) microprocessor such as an x86-compatible microprocessor, x86 instructions are translated into associated micro instructions, and the associated micro instructions are directly executed by a sub-unit or sub-units within the CISC microprocessor.
In view of the above background discussion on retail establishment management systems and associated techniques employed within present-day establishments for receiving and processing orders, a discussion these systems will be presented with reference to
Referring to
Typically, the order processor 102 may be positioned at a workstation 104 and may be within sight and touch distance of one or more paper orders 108 upon which are written one or more menu items XXX, YYY, ZZZ that patrons have selected from the menu. The paper orders 108 are generated by staff (e.g., waiters) and brought to the workstation 104. The paper orders 108 are then temporarily affixed (e.g., clipped, pinned, etc.) to an order holding device 106 (e.g., a rail, a line, a magnetic strip, etc.) As the order processor 102 completes an assigned order, he/she may remove its corresponding paper order 108, hand the paper order to order delivery staff (e.g., a waiter, expeditor, etc.), and begin preparation of menu items XXX, YYY, ZZZ shown on a next paper order 108. The diagram 100 shows the order processor 102 preparing orders from left to right as shown on the holding device 106 and removing the leftmost paper order 108 as it is completed; however, as one skilled in the art will appreciate, some establishments work right to left because such a convention is a function of the order processing environment. It is noted that to clear an order, its corresponding paper order 108 must be touched and handled by the order processor 102 or by other staff.
Now referring to
Typically, the order processor 202 may be positioned at a workstation 204 and may be within sight and touch distance of a kitchen display screen (KDS) 210 upon which are displayed one or more electronic orders 208, each comprising menu items XXX, YYY, ZZZ that patrons have selected from the menu. The electronic orders 208 are generated by staff (e.g., waiters) and transmitted to the KDS 210 for display to the order processor 202. In some environments, staff (e.g., waiters) may take orders by hand or by memory and may enter those orders into a fixed order entry terminal that is coupled to the KDS 210. In other environments, staff may enter orders directly into a mobile terminal that transmits the orders via a wireless link (e.g., Wi-Fi) to the KDS 210. As one skilled in the art will appreciate, a larger establishment may have numerous workstations 204 and KDSs 210 for performing specified preparation functions (e.g., salad station, pasta station, grill master, expeditor, etc.) and portions of a given electronic order 208 may be prepared by order processors 202 at one or more of the numerous workstations 204.
Like the paper orders 108 of
Accordingly, the diagram 200 shows an optional control device 214 comprising one or more actuators 216. The control device 214 may be coupled to the KDS 210 via a wired or wireless link (not shown) and may be employed by the order processor 202 in lieu of performing touch gestures on the display area 212 of the KDS 210. Generally, the control device 216 costs substantially less than the KDS 210. In a restaurant environment, the control device 214 is referred to as a bump bar 214 and comprises actuators 216 that, when actuated, direct the KDS 210 to perform the same functions as if the order processor 202 touched the display area 212. The actuators 216 may comprise mechanical switches or small touchscreen switches. The control device 216 may provide for some level of environmental resistance (e.g., switch seals, screen cover) and may further allow for actuations by the order processor 202 when wearing protection (e.g., gloves). It is noted, however, that a bump bar configuration, while precluding contamination of the KDS 210, merely shifts potential contamination effects to the bump bar 216.
The present inventors have observed that potential contamination effects are a significant problem in the industry and have also noted that these effects are increasingly pronounced as more and more establishments are converting their order processing environments from paper-based environments to electronic device-based environments. In addition, the present inventors have observed workstation environments where it is difficult for an order processor 202 to physically access a touchscreen KDS 210, such as environments where the KDS 210 is beyond reasonable arm's length away. Therefore, the present inventors have sensed a need in the art for more reliable, durable, and user-friendly techniques and mechanisms for processing orders in environments that present the potential for contamination of touchscreen-based order processing devices, such as the KDS 210 of
The present invention overcomes the above noted limitations and disadvantages, and other related problems, by providing apparatus and methods that entirely preclude contamination of touchscreen-based order processing devices, and that furthermore significantly increase order processing efficiencies within order processing environments. In addition to these noted advantages, the techniques disclosed herein according to the present invention may also be applied to related order processing devices that are employed outside of a kitchen or other hazardous environment. Such order processing devices include, but are not limited to, handheld mobile order processing terminals, point-of-sale terminals, host terminals, and self-ordering kiosk terminals. The present invention will now be discussed with reference to
Now referring to
Preferably, the present invention is intended for use in a restaurant setting; however, the present inventors note that the apparatus and methods disclosed herein may be employed in any order processing environment, regardless of whether contaminants are present or not, because it is an objective of the present invention to not only preclude physical degradation of order processing devices, but also to improve order processing throughput in an establishment. In order to clearly teach aspects of the present invention, a restaurant environment will be employed along with related terms such as waiter, host, chef, etc., though the reader should bear in mind that the scope of the present invention extends beyond application in restaurants.
Accordingly, the diagram 300 depicts the adaptive terminal 310 adjacent to the order processor 302, within viewing range, but not necessarily within arm's reach. In one embodiment, the adaptive terminal 310 may be configured as a kitchen display screen (KDS) 310, that is employed within a restaurant kitchen to present electronic orders 308 on a display 314 to the order processor 302 for preparation of menu items XXX, YYY, ZZZ. In one embodiment, the KDS 310 comprises a touchscreen display 314. In another embodiment, the KDS 310 comprises a display without touchscreen features. The order processor 302 may or may not be utilizing ingredients that could potentially contaminate the KDS 310.
In contrast to the KDS 210 of
In another embodiment, when enabled, the microphone 316 may be employed to detect and interpret voice commands spoken by the order processor 302 or other staff (not shown) to direct the KDS 310 to execute the functions noted above. In a combined embodiment, when enabled, the motion sensor 320 and microphone 320 may be synergistically employed to detect and interpret both non-touch 3D gestures and voice commands performed and/or spoken by the order processor 302 or other staff to direct the KDS 310 to execute the functions noted above. In yet another embodiment, a command spoken to the microphone 316 may be employed to enable detection and interpretation of 3D gestures by the motion sensor 320. In a further embodiment, a 3D gesture performed by the order processor 302 may be employed to disable detection and interpretation of 3D gestures by the motion sensor 320 and to enable detection and interpretation of voice commands spoken into the microphone 316. In an adaptive embodiment, the video camera 318 may be employed to capture and image of the order processor 302 whereby, as will be described in further detail below, voice-based, 3D gesture-based, and video-based functions of the KDS 310 are automatically configured as a function of the captured image.
In yet another embodiment, the KDS 310 may comprise a touchpad display 310 on the order of 15 inches, an example of which is a 1I-Series 2.0 for Android 15″ AiO Touchscreen as produced by Elo Touch Solutions, Inc. In yet a further embodiment, the KDS 310 may comprise a touchpad display 310 on the order of 22 inches, an example of which is a 1I-Series 2.0 for Android 22″ AiO Touchscreen as produced by Elo Touch Solutions, Inc. In both embodiments, the microphone 316 and camera 318 are integrated into the touchpad displays 310, and the motion sensor 320 is coupled to the touchpad displays 310 via a connector (not shown), such as a USB connector. Other embodiments contemplate a camera 318, motion sensor 320 and microphone 316 that are separate from, but coupled to, the touchpad display 310, via a connector or other conventional port, such as a USB port.
In one embodiment, the microphone 316 may comprise a directional microphone 316 with an audio field of coverage, where captured audio may additionally be employed by other components (not shown) of a restaurant management system according to the present invention for purposes of noise cancellation. In another embodiment, the microphone 316 may comprise a low-power microphone 316 that listens for one or more specific words (e.g., “Hey KDS”), and upon detecting the one or more specific words, commands the KDS 310 to wake up from a low-power mode, or that commands the KDS 310 to enter a 3D gesture mode.
Preferably, the motion sensor 320 may comprise one or more passive infrared (PIR) sensors 320 that exhibit a sensitivity range up to approximately 20 feet with a horizontal field of view (FOV) of approximately 110 degrees and a vertical (FOV) of approximately 70 degrees. In all embodiments, the motion sensor 320 is configured to communicate motions of the order processor 302.
In operation, when enabled, the motion sensor 320 may detect and interpret a horizontal right to left motion of a hand of the order processor 302 as a command to the KDS 310 complete a leftmost order 308, to communicate completion of the leftmost order 308 to staff, and to stage a next order 308 for preparation. In another embodiment, when enabled, the motion sensor 320 may detect and interpret one or more specified words (e.g., “KDS, clear current order”) spoken by the order processor 302 as a command to the KDS 310 complete a leftmost order 308, to communicate completion of the leftmost order 308 to staff, and to stage a next order 308 for preparation. It is not a purpose of the present disclosure to present an exhaustive list of 3D gestures and voice commands for use in a restaurant or other retail order processing environment, but rather to teach features and details that provide for tailoring of gestures, spoken audio, and captured video images within a restaurant management system according to the present invention, whereby employment of those tailored gestures, spoken audio, and captured video images result in increased order processing speeds along with increased performance of the order processing devices 310 themselves, without exposing the order processing devices 310 to any form of physical contact by staff 302.
Turning now to
The camera 418 has a focal length with an image field of view 419 that allows for capture of images of the order processor 402 or another person of interest within the image field of view 419, where the images are suitable for processing by facial recognition algorithms. The microphone 416 has a sensitivity with an audio field of coverage 417 that allows for capture of speech from the order processor 402 or another person within the field of coverage 417, where the captured audio quality is suitable for processing by speech-to-text algorithms. The motion sensor 420 has a sensitivity within a field of coverage 421 that allows for detection and tracking of movement by the order processor 402 or another person within the field of coverage 421. In accordance with the coordinate system shown in
The diagram 400 also shows an exemplary command table 430. When movements shown in the swipe direction column of the table 430 are detected, the restaurant management system according to the present invention are interpreted as corresponding commands, which are executed by the KDS 410. For example, when the motion sensor 420 detects a hand swipe in the negative X direction, the restaurant management system interprets the movement as a command to clear a current order. Accordingly, the command is issued to and executed by the KDS 410, thus completing the current order and moving a next order into a current order position, as described above with reference to
Now referring to
Accordingly, the present invention provides for recognition and interpretation of a limited dictionary of menu keywords via speech-to-text algorithms and processing within the terminal 510 to quickly navigate to those menu items or other sub-menus that present a high probability of being selected. Thus, the display area 514 is divided into a primary menu display area 514.1 and an accelerated suggestion area 514.2. As the order process begins, the diagram 500 shows the results of recognition and interpretation of the word “eggs,” and thus the restaurant system, as described in further detail below, displays two suggested menu items (CALIFORNIA SCRAMBLE and HUEVOS RANCHEROS) along with a suggested hyperlink for breakfast sides. Advantageously, accelerated menu navigation according to the present invention provides for significant improvements in the order entry process and customer satisfaction.
The present inventors also note that examples abound for acceleration of the process via speech-to-text and use of a limited keyword dictionary. For instance, “I don't like red wine” and “I only drink French wines,” would result in the elimination of multiple sub-menu steps, thereby quickly navigating to wine selections that are appropriate. Other examples that cut through multiple hyperlink traversals include:
As one skilled will appreciate, the provision of recognition and interpretation of a limited dictionary of keywords radically changes the order processing experience, both for staff and patrons in an establishment. In addition to the menu assist portion of the display 514.2, the terminal 510 may also be configured to utilize the motion sensor 520 to detect hand/finger movements of a user to make menu selections from the suggested items in the display area 514.2. Use of gestures, accordingly, provides advantages in that a user may place an order via speech and/or 3D gestures, without ever coming into physical contact with the terminal 510. Such a configuration may be preferable during, say, cold season or flu season, because the means for transmission of germs are decreased in number.
While
Referring to
Like the terminals 310, 410, 510 of
In any of the above configurations, facial recognition techniques may be employed to identify a user and to configure displays and controls that correspond to the user's primary functions. In operation, when the terminal 610 is put into service, upon initialization, the terminal 610 may employ the camera 618 to capture an image of the user and employ facial recognition techniques to adapt the displays and controls provided to comport with the user's function. In one embodiment, the image may be captured and identified upon power up of the terminal 610. In another embodiment, touch screen options may be provided on all displays 314, 414, 514, 614 that, when executed, direct the terminal 310, 410, 510, 610 to capture an image of the user and employ facial recognition techniques to change the displays and controls previously provided to comport with the user's function.
In one embodiment, the displays and controls of the terminal 310, 410 may result from recognition of the order processor 302, 402 along with their function. Accordingly, upon initialization, the KDS 310, 410 captures and identifies an image of the order processor 302, and configures the terminal 310, 410 as a KDS terminal 310, 410. Based upon the role of the order processor 302, 402 (e.g., grill master, salad station, pasta station, etc.), the KDS 310, 410 may further tailor menu entries XXX, YYY, ZZZ on the electronic orders 308 to comport with the user's role. For example, if menu item XXX corresponds to a salad, and the user 302, 402 is identified as a grill master, then the menu item XXX is not displayed; only menu items corresponding to work required of the grill master are displayed. Likewise, 3D gestures and/or voice controls may be enabled or disabled in accordance with preferences that are preconfigured for employment of the terminal 310, 410 according to the role of the user 302, 402.
In similar manner, facial identification of another user may result in the terminal 510 as discussed with reference to
The diagram 600 shows a display/control configuration resulting from recognition of a captured image of an employee having management functions and privileges. Accordingly, upon initialization (or via direct command), the terminal 610 directs the camera 618 to capture and recognize the user's image, which is shown in display area 614.3. Area 614.1 shows the user's credential's and area 614.2 shows an exemplary manager's display with hyperlinks to functions routinely performed by a manager such as reviewing revenue reports, inventory reports, accounts payable, personnel records, etc. Additionally, presuming that only managers are allowed to configure a terminal 310, 410, 510, 610, the area 614.2 also shows a hyperlink to a terminal configuration function which, when selected, results in the terminal configuration shown in
Turning now to
Though terminals 310, 410, 510, 610, 710 may be configured to employ facial recognition identify authorized users and registered patrons, another adaptive configuration contemplates detection of unauthorized users and adaptation of functions of the terminals 310, 410, 510, 610, 710 to preclude damage and theft. A terminal 810 thus configured is shown in the diagram 800 in
Although elements and operation of the terminals 310, 410, 510, 610, 710, 810 has been discussed above, a primary objective of the discussions with reference to
Referring now to
The service areas 902 may comprise one or more wireless access points 901. The service areas 902 may also comprise one or more wireless POS terminals 911, 921, 931, coupled to the access points 901 via wireless links 903, and which are distinguished in the system 900 as a host terminal 911, mobile terminals 921, and order processing terminals 931 (also referred to as KDSs 931). The service areas 902 may further comprise a gateway 913 to which is coupled one or more fixed hardwired terminals 912, and which provides for coupling of the fixed terminals 912 and access points 901 to an internet cloud 960 via conventional wired links 905 such as, but not limited to, Ethernet, cable, fiber optic, and digital subscriber line (DSL) As part of the network path to and through the cloud 960, providers of internet connectivity (e.g., ISPs) may employ wireless technologies from tower to tower, etc., but for purposes of this application, such links 905 will be referred to as conventional wired links 905 to distinguish them from local and cellular wireless links 901. The wireless links 903 may comprise, but are not limited to, Wi-Fi, Bluetooth, near field communications, infrared links, IEEE 802.15.4, Zigbee radio links, and cellular based links (e.g., 3G, 4G, LTE) or a combination of the noted links. The POS terminals 911, 912, 921, 931 may be adaptively configured to comport with intended function (i.e., host seating, order and payment entry, order fulfillment, etc.) as described above with reference to
The background server 970 is coupled to the internet cloud 260, and to an administrative console 971 via a conventional wired link 905 and/or a wireless link 903. The background server 970 is not on-premise and is thus also referred to herein as a cloud server 970. The administrative console 971 may be disposed within the restaurant premises and coupled to the background server 970 via the links 903, 905, or the console 971 may be disposed in another location, say, at an operations headquarters for multiple restaurants within a given region. In addition, the system 900 may comprise one or more browser-based terminals 981 that are coupled to the background server 970 via links 905. In one embodiment, the browser-based terminals 981 may comprise desktop computers, laptop, computers, smartphones, or tablets that are running stand-alone applications or web-enabled applications that provide for communication with the background server 970 for purposes of order entry, status updates, and optionally, payment processing.
The system 900 may further comprise one or more third-party-based terminals 941 that are coupled to the background server 970 via the conventional links 905 though the cloud 960. The third party-based terminals 941 may comprise desktop computers, laptop, computers, smartphones, or tablets that are running stand-alone third-party applications or web-enabled third-party applications that provide for communication with the background server 970 for purposes of order entry, status updates, and optionally, payment processing via a proprietary application programming interface (API) 942. An example of such a terminal 941 may include the well-known GrubHub third-party application that is configured to communicate with the background server 970 via the API 941.
The system 900 may further comprise one or more delivery terminals 951 that are coupled to one or more cellular access points 901 via conventional cellular wireless links 903, and the cellular access points 901 are coupled to the background server 970 via the cloud 960. In one embodiment, the delivery terminals 951 are substantially similar to the mobile terminals 921 in form and function, and that are configured to provide services for order entry, status updates, order fulfillment (i.e., delivery), and payment processing. In another embodiment, the delivery terminals 951 are disposed as smartphone or tablets with integrated camera and microphone, and with detachable motion sensor and payment processor (e.g., card/chip reader). In a further embodiment, the delivery terminals 951 are disposed as smartphone or tablets with camera, microphone, motion sensor, and payment processor integrated within a single housing. Other embodiments are contemplated.
Service areas 902 corresponding to the mobile terminals 921 may have one or more tables 904 corresponding to one or more orders. For clarity, service area 1902 depicts two tables 904, one of which corresponds to order 1 OD1, and the other of which corresponds to order 2 OD2. The mobile terminals 921 within service area 1902 may processes portions of both orders 1 OD1 and order 2 OD2.
Service area N 902 depicts two tables 904, both of which correspond to order A ODA. The mobile terminals 921 within service area N 902 may both process portions order A ODA.
Though disposed within separate service areas (service area 1902-service area N 902), the mobile terminals 921 therein may be further configured to process portions of any and all orders within the restaurant and may roam from service area 902 to service area 902 to support work load of the restaurant.
The order processing terminals 931 may process all orders in the restaurant, or they may be configured to each process a portion of all of the orders in the restaurant according to their role (e.g., salad preparation station, fry cook station, inventory station, etc.).
The host terminal 911 and fixed terminals 912 may be configured to process all orders in the restaurant to provide for on-premise seating assignment, order initiation, order selection, and payment processing, including closeout of orders.
One or more restaurant staff members (not shown) within service area 1902-service area N 902 may have a personal device (e.g., smartphone, tablet, laptop) 906 that can provide an ad hoc network (i.e., hotspot) to which one or more of the mobile terminals 921 may tether for purposes of communicating with the backend server 970 in the absence of Wi-Fi connectivity to the access points 901.
In one embodiment, operations are initiated when the one or more patrons enter the restaurant. Generally, a host (not shown) will create an order (along with corresponding order identifier (OID) via the host terminal 911 for the one or more patrons and will seat the patrons at one or more tables 904. The created order may include service area designation and assignment of the order to one or more mobile terminals 921. In another embodiment, mobile terminals 921 within a service area 902 are assigned to all orders within that service area 902. Other embodiments are contemplated. The created order and service area assignment are transmitted over the cloud 960 to the backend server 970, which maintains durable terminal queues within which are stored order updates for all orders in the restaurant. Each of the durable queues correspond to each of the terminals 911, 912, 921, 931, 951 within the system 900. When connection status to a given terminal 911, 912, 921, 931, 951 is down (i.e., the server 970 cannot verify communication with the given terminal 911, 912, 921, 931, 951), then the server 970 maintains the order updates for that terminal 911, 912, 921, 931, 951 until connectivity is reestablished, at which time the server 970 may transmit one or more of the order updates to the terminal 911, 912, 921, 931, 951, verifying with each transmission that the terminal 911, 912, 921, 931, 951 received the update. Advantageously, each of the terminals 911, 912, 921, 931, 951 is capable of processing portions of any of the orders in the restaurant.
Likewise, each of the terminals 911, 912, 921, 931, 951 maintains durable order queues within which are stored order updates only for each of the orders being processed by the terminal 911, 912, 921, 931, 951. Each of the terminals 911, 912, 921, 931, 951 also maintains a plurality of order states that depict a current state for each of the orders in the restaurant. As a seated patron selects one or more menu items, wait staff enters the menu items as an update in one of the terminals 911, 912, 921, 931, 951, generally a mobile terminal 921 assigned to the given service area 902. The order update is entered into one of the durable order queues that corresponds to the order ID. If connectivity if present, then the terminal 911, 912, 921, 931, 951 transmits the order update to the server 970 and waits for the server 970 to acknowledge the order update. If acknowledged, the terminal 911, 912, 921, 931, 951 removes the order update from the one of the durable order queues. If unacknowledged (i.e., in the case of non-persistent network connectivity), the terminal 911, 912, 921, 931, 951 maintains the order update in the one of the durable order queues until such time as connectivity is reestablished, and the terminal 911, 912, 921, 931, 951 completes transmission of the order update with acknowledgement by the server 970.
Upon reception of a particular update from the server 970, the terminals 911, 912, 921, 931, 951 may check one of their plurality of order states that correspond to the particular update for conflicts, as will be described in further detail below. If a conflict exists, the terminals 911, 912, 921, 931, 951 may utilize domain specific rules to resolve the conflict in order to establish a valid order state. Each of the 911, 912, 921, 931, 951 is configured with the same domain specific rules to provide for consistent resolution of order states.
As patrons continue to order items corresponding to the order ID, the one or more of the terminals 911, 912, 921, 931, 951 may enter the order updates and transmit/durably queue the order updates to the server 970 in accordance with connectivity conditions. The server 970 may also queue/transmit order updates for all orders in the restaurant to each of the terminals 911, 912, 921, 931, 951 according each terminal's connectivity. Order fulfillment, payment, and closeout are likewise handled as order updates through the server 970 and are queued/transmitted to all of the terminals 911, 912, 921, 931, 951 in accordance with the connection status of each terminal. Delivery terminals 951 may not be on premise at the time an order is placed; however, the system 900 according to the present invention may treat the delivery terminals 951 as if they are virtually on premise, assigning them to a virtual on-premise service area 902.
Patrons outside of the restaurant are also handled in similar fashion via the browser-based terminals 981, and third-party terminals 941, though without feedback from the server 970 regarding all orders in the restaurant. When accessed through the browser-based terminals 981 and third-party terminals 941, the server 970 creates and order ID and assigns it to one of the order processing terminals 931 for fulfillment, while sending status updates on the order ID to all of the terminals 911, 912, 921, 931, 951 via the durable terminal queues therein. The server 970 may designate a specific delivery terminal 951 for pickup, delivery, and payment based upon proximity to the restaurant, or based upon workload corresponding to the delivery terminal 951.
The administrative console 971 may maintain a master record of all order states and order updates according to all of the terminals 911, 912, 921, 931, 951 in order to provide for restaurant management, maintenance, analytics, and network traffic analyses. The console 971 may alternatively be disposed in an expediter's area of the restaurant for use by expediters in assignment and allocation of patron seating and terminals 911, 912, 921, 931, 951.
The durable terminal queues and durable order queues may be disposed as non-transitory battery backed random-access memory, electrically-erasable programmable read-only memory, solid state memory, hard disk memory, or a combination of the above that will provide for maintaining order updates within the queues across network and power interruptions.
Advantageously, the present invention provides for more efficient performance of computational resources within the server 970 and the terminals 211, 911, 912, 921, 931, 951 over that which has heretofore been provided because multiple terminals 911, 912, 921, 931, 951 may be assigned to process portions of a single order, resulting in more timely processing of the single order. Similarly, any of the terminals 911, 912, 921, 931, 951 in the restaurant may be immediately reassigned to a particular order to replace a malfunctioning terminal or to increase throughput of the server 970. Likewise, each of the terminals 911, 912, 921, 931, 951 may be configured as disclosed above with reference to
Now turning to
The queue processor 1010 may include a durable terminal queue 1011 that includes terminal update records 1012, each of which are associated with a corresponding terminal, such as the terminals 911, 912, 921, 931, 951 discussed with reference to
Each of the terminal update records 1012 may comprise update fields 1013, which are employed to queue order updates for transmission to each of the corresponding terminals as connectivity to the corresponding terminals permits. Update fields 1013 nearest to OUT are the oldest order updates queued for transmission to the corresponding terminals. Update fields 1013 nearest to IN are youngest (or most recent) order updates queued for transmission to the corresponding terminals. Fields 1013 between the oldest order updates and the youngest order updates descend in age from oldest to youngest update according to when those updates are received from others of the corresponding terminals.
Values of the order update fields 1013 may include, but are not limited to, an order ID along with order details taken by the others of the corresponding terminals. Accordingly, the terminal update record 1012 for terminal 1 TERM1 depicts a plurality of order update fields 1013 to be transmitted to TERM1 when connectivity is reestablished with TERM1. In decreasing age from oldest to youngest order update, the fields 1013 depict updates to order 64 U64, then order 6 U6, then order 22 U22, and so on, culminating with an update to order 17 U17. As one skilled in the art will appreciate, the terminal update record 1012 for TERM1 is indicative that TERM1 has been offline (i.e., no connectivity) longer than any of the other terminals in the restaurant. This length of time may correspond to a mobile terminal that is serving a party on a restaurant porch that has poor Wi-Fi connectivity, or may correspond to a delivery terminal that is traversing an area with poor cellular coverage. The terminal update records 1012 corresponding to TERM2, TERM 3, and TERMN depict a number of populated order update fields 1013 less than the number of fields for TERM1, which may correspond to terminals within the restaurant that have only slightly intermittent connectivity. And the terminal update record for TERM4 contains only empty order update fields 1013, thus indicated that this terminal is up to date on all order state changes within the restaurant.
Operationally, the terminal status element 1005 may periodically transmit a first message to each of the terminals and update the connectivity status of the terminals based upon whether they acknowledge the first message or not. In one embodiment, the first message may comprise a ping message. In one embodiment, acknowledgment may comprise a simple acknowledge message. In other embodiments, acknowledgement may comprise additional data such as received signal strength indication RSSI, number of hops, or Global Positioning System (GPS) coordinates. The acknowledge message may further comprise configuration identification data such as mode (e.g., mobile order entry, KDS, kiosk, management terminal) and order accelerator features (e.g., 3D gestures, voice commands, facial recognition, menu assist, etc.).
The terminal status element 1005 may provide connectivity status of each of the terminals to the terminal update element 1006 via bus STS. The service area map 1007 is a table that associates each of the terminals to one or more service areas within the restaurant. In one embodiment, the terminal update element 1006 may generate order update messages from oldest to youngest update for each of the terminals that are connected. Connectivity is maintained when a terminal acknowledges receipt of an order update message. Once acknowledged, the terminal update element 1006 directs the queue processor 1010 to delete the oldest order update for that terminal and shift pending order updates so that the next oldest order update becomes the oldest order update. In one embodiment, order updates are transmitted to a given terminal until its terminal update record 1012 is empty, or until connectivity is broken.
In one embodiment, all of the terminals associated with the restaurant are updated by the terminal update element 1006. In an alternative embodiment, terminals are selectively updated in accordance with their mapping to the one or more service areas, as indicated by contents of the service area map 1007. For example, delivery terminals may only require knowledge of orders that are to be delivered outside the restaurant, and thus they may be mapped to a “delivery” service area so that order updates that correspond to the delivery service area are transmitted to the delivery terminals. Similarly, the restaurant or retail establishment may be so large that management dedicates certain terminals to designate service areas. Accordingly, all of the terminals in a given service area may be employed to update any order placed within the given service area, but they may not be employed to update orders placed outside of the given service area.
The terminal update element 1006 may also include a terminal configuration table 1009, which contains records for each of the terminals in the system 1000. The records indicate a default configuration for each of the terminals along with their current configuration and features, the terminal configuration table 1009 may be accessed as required other elements of the system over TBUS. For terminals that employ 3D gestures, the terminal configuration table 1009 also provides a mapping of 3D gestures to terminal commands. For example, the table 1009 may indicate that a swipe left results in a terminal command to complete a current order and display a next order.
Messages received from the communications circuit 1002 may also require additional functions to be performed by the backend server 1000. For example, when orders are placed by a browser-based or third-party based terminal, the terminal update element 1006 may transmit the order update to the order initiation element 1003 via TBUS. The order initiation element 1003 may then create an order ID for the order update and may assign the order ID to one or more of the terminals within the restaurant. Similarly, when an order update message received over the COMMS 1002 requires processing of transactions outside of the terminals' capabilities (e.g., financial transactions with credit card providers, loyalty card discounts, etc.), the payment processor 1004 may generate messages to complete the transactions and the messages are transmitted via COMMS 1002. The payment processor 1004 may further generate order updates (e.g., “order paid,” “payment source 1 approved,” “discount amount,” etc.) to be transmitted to the terminals and may provide these updates to the terminal update element 1006 via TBUS. The terminal update element 1006 may then provide those updates to the durable queue 1011 via QBUS, and the updates are transmitted to the POS terminals in due course dependent upon connection status, as is described above.
Messages received from the communications circuit 1002 may comprise captured images or electronic representations thereof, which are routed to the facial processor 1008. The facial processor 1008 may comprise a facial ID table 1022 that comprises a mapping of captured images to authorized users and registered patrons as discussed above. The facial ID table 1022 may also include a default terminal configuration, including adaptive features (e.g., 3D, voice commands, menu assist) for each of the authorized users. Accordingly, the facial processor 1008 may generate messages designated for one or more terminals that correspond to a given captured image, indicating recognition or non-recognition of a user/patron corresponding to the captured image. The facial processor 1008 may further generate messages to designated terminals that correspond to a recognized user that directs the designated terminals to change their configuration to comport with user requirements (e.g., change to KDS configuration, enable voice commands, etc.). Portions of the facial processor 1008 may alternatively utilize internet-based 3rd party facial recognition services, which are accessed and employed via messages generated by the facial processor 1008 and provided to COMMS 1002 via MSG. Accordingly, when a captured image is received, the facial processor 1008 may generate messages over MSG that are transmitted to the 3rd party facial recognition services that include the captured image and requesting identification. The facial processor 1008 may further receive messages from the 3rd party facial recognition services that designate an ID that corresponds to the captured image. The ID is then employed as an index into the facial ID table 1022 to retrieve the user's default terminal configuration. The facial processor 1008 may additionally generate messages to one or more designated terminals that include the default configuration.
Messages received from the communications circuit 1002 may additionally comprise audio that has been captured by one or more terminals, which are routed to the speech processor 1024. The speech processor 1024 then provides the audio to a speech-to-text element 1027 and optionally to a noise cancellation element 1028. If the audio corresponding to the one or more terminals is to be employed for noise cancellation purposes, the noise cancellation element 1028 may subtract the audio from audio received from surrounding terminals prior to processing by the speech-to-text element 1027. The speech-to-text element 1027 converts audio signals/files to text signals/files and provides the text signals/files to a keyword table 1026. The keyword table 1026 is a dictionary whose contents are limited to voice commands and menu items that are employed within the restaurant system. Keywords that correspond to converted audio are then incorporated into messages generated by the speech processor 1024, which are then transmitted to a designated terminal via MSG.
The speech processor may alternatively employ an internet-based 3rd party speech-to-text service, which is accessed via messages generated/received over MSG. In this embodiment, audio signals/files that have been converted to text signals/files are received over MSG and used to index the keyword table 1026, and keywords that correspond to converted audio are then incorporated into messages generated by the speech processor 1024, which are then transmitted to a designated terminal via MSG.
Messages received and transmitted over MSG may further comprise captured motion from designated terminals. The messages are provided to a motion processor 1030 that includes a global gesture table 1032 that provides a mapping of captured motion to a global set of 3D gestures, such as, but not limited to, swipe left, swipe right, swipe up, swipe down, tap, tap and hold for cursor, double tap, reverse tap, etc. Captured motion that corresponds to 3D gestures is then transmitted to the designated terminals via messages over MSG. In one embodiment, all motion received over motion sensors in the restaurant system is processed by the motion processor 1032. In an alternative embodiment, one or more of the terminals themselves process motion detected by their corresponding motion sensors.
The backend server 1000 according to the present invention is configured to perform the functions and operations as discussed above. The server 1000 may comprise digital and/or analog logic, circuits, devices, or microcode (i.e., micro instructions or native instructions), or a combination of logic, circuits, devices, or microcode, or equivalent elements that are employed to execute the functions and operations according to the present invention as noted. The elements employed to accomplish these operations and functions within the server 1000 may be shared with other circuits, microcode, etc., that are employed to perform other functions and/or operations within the server 1000. According to the scope of the present application, microcode is a term employed to refer to a plurality of micro instructions. A micro instruction (also referred to as a native instruction) is an instruction at the level that a unit executes. For example, micro instructions are directly executed by a reduced instruction set computer (RISC) microprocessor. For a complex instruction set computer (CISC) microprocessor such as an x86-compatible microprocessor, x86 instructions are translated into associated micro instructions, and the associated micro instructions are directly executed by a unit or units within the CISC microprocessor.
The backend server 1000 may be embodied as one or more central processing units (CPUs) that are coupled to both transitory and non-transitory storage (i.e., memory), where one or more application programs that are configured to perform the server functions discussed above are stored in the non-transitory storage, transferred to the transitory storage at run time, and executed by the one or more CPUs.
The state processor 1120 may include a durable order update queue 1121 that includes order update records 1122, each of which are associated with a corresponding order for the terminal 400. Individual terminals 400 are identified by their corresponding terminal ID, which may be stored within and accessed from the terminal ID element 1109. The terminal ID element 1109 also is employed for storage and retrieval of terminal configuration information (e.g., KDS, kiosk, mobile terminal, etc.) along with enablement/disablement of order processing acceleration features (i.e., voice commands, 3D gestures, menu assist, facial recognition).
Each of the order update records 1122 may comprise order state fields 1123, which are employed to queue order state changes (i.e., order updates) for transmission to a synchronization server (not shown) as connectivity to the backend server permits. State fields 1123 nearest to OUT are the oldest order state changes queued for transmission to the backend server. State fields 1123 nearest to IN are youngest (or most recent) order state changes queued for transmission to the backend server. Fields 1123 between the oldest state fields 1123 and the youngest state fields 1123 descend in age from oldest to youngest order state change according to when those state changes are entered by the terminal 1100.
Values of the order state fields 1123 may include, but are not limited to, an order ID along with order details taken by the terminal 1100. Accordingly, the order update record 1122 for order 27027 depicts a plurality of order state fields 1123 to be transmitted to the server when connectivity is reestablished. In decreasing age from oldest to youngest order state change, the fields 123 depict order state changes 51 through SN. As one skilled in the art will appreciate, the order update record 422027 depicts that many more state changes have been entered while connection status of the terminal 1100 is down than have been entered for orders 62 O62 through order 3 O3. Advantageously, the terminal 1100 according to the present invention may be employed for entry of order updates even in the presence of network interruptions, which is characteristic of most Wi-Fi networks.
In operation, order state changes result from two sources: the touchscreen display 1103 and messages received over COMMS 1102 from the backend server. In the first case, wait staff may enter menu items as requested by patrons, or in the case that the terminal 1100 is configured as a kiosk 1100, the patrons may enter the order items themselves. The present invention contemplates provisions within the terminal 1100 to display menu selections and payment options to both wait staff and patrons. Order items received from the touchscreen display 1103 are provided to the order processor 1110 via bus DATA, which generates the state changes. State changes received from the backend server are provided to the order processor 1110 in messages over bus MSG.
The connection monitor 1104 may monitor reception of a first message (e.g., a ping message) from the backend server and direct transmission of an acknowledgement message. The connection monitor 1104 may update the connectivity status of the terminal 1100 accordingly. In one embodiment, acknowledgment may comprise a simple acknowledge message. In other embodiments, acknowledgement may comprise additional data such as received signal strength indication RSSI associated with one or more access points, number of hops between the backend server and the terminal 400, or Global Positioning System (GPS) coordinates, as will be described in further detail below.
The link select element 1105 may be employed to direct the COMMS 1102 to change links 1101 over which to communicate with the backend server, such as switching from Wi-Fi to LTE, for example. In one embodiment, in the absence of connectivity within the restaurant, the link select element 1105 may direct the COMMS 1102 to tether to a cellular equipped device corresponding to an order ID, such as devices 906 in
The connection monitor 1104 may provide connectivity status of the terminal 1100 to the order processor 1110 via bus CBUS. In one embodiment, the order processor 1110 may generate order state change messages from oldest to youngest update for each of the orders in the queue 1121. Connectivity is maintained when the terminal 1100 receives acknowledgement of a previously transmitted order state change message from the backend server. Once acknowledged, the order processor 1110 directs the state processor 1120 to delete the oldest state change update for a corresponding order ID and shift pending updates so that the next oldest state change update becomes the oldest order update. In one embodiment, state change updates are transmitted to the backend server until its order state change record 1122 is empty, or until connectivity goes down.
As discussed above, the terminal 1100 may be configured as a fixed or mobile POS terminal, a kiosk, a host terminal, a management terminal, or a KDS, where configurations differ principally in size of the touchscreen display 1103. As also discussed above, the camera 1114, microphone 1113, and motion sensor 1115 may be integrated in to the terminal 1100 or they may be coupled to the terminal 1100 via conventional bus technologies such as a USB port, PCI port, etc. The configuration parameters including order processing acceleration features for the terminal 1100 are stored in the terminal ID 1109 element, and the configuration parameters/features are accessed by a configuration manager 1111 within the order processor 1110 upon initialization/reconfiguration of the terminal 1100. Thus, the configuration manager 1111 may generate images for display on the touchscreen display 1103 and capture text and touches thereon, in accordance with functions prescribed according to configuration parameters/features accessed from the terminal ID element 1109. In accordance with configuration parameters/features accessed from the terminal ID element 1109, the configuration manager 1111 may also capture audio from the microphone 1113, video from the camera 1114, and motion from the motion sensor 1115, and may generate/receive messages over MSG to/from the backend server for that are required to recognize captured images, keywords, and 3D gestures. Once received, the configuration manager 1111 may access the local gesture table 1131, which provides a mapping of recognized 3D gesture to commands to be executed by the terminal 1100 and may execute the commands via data send to the touchscreen display 1103 over DATA. The configuration manager 1111 may additionally access the local keyword table 1132, which provides a mapping of text (converted from audio by the backend server) to commands to be executed by the terminal 1100 and may execute the commands via manipulation of the touchscreen display 1103, the microphone 1113, the camera 1115, and/or the motion sensor 1115. The local keyword table 1132 may also provide a mapping of keywords to menu suggestions, such as are discussed above with reference to
Messages received from the communications circuit 1102 may also require additional functions to be performed by the terminal 1100. For example, when orders are placed by a browser-based or third-party based terminal, the backend server may transmit the order state change to the terminal 1100 and the order processor 1110 may direct the state processor 1120 to create a corresponding order status record 1122 in the queue 1121. Similarly, when processing of transactions outside of the terminal's capabilities (e.g., financial transactions with credit card providers, loyalty card discounts, etc.) are required, order processor 1110 may direct the payment processor 1106 to generate messages to the backend server to provide data (e.g., amounts, payment source type, card swipe/chip information, etc.) to complete the transactions. Such messages are transmitted via COMMS 302. The payment processor 1104 may further receive state changes (e.g., “order paid,” “payment source 1 approved,” “discount amount,” etc.) to from the backend server and may provide these state changes to the order processor 1110 via TBUS. The order processor 1110 may then provide those updates to the queue 1121 via OBUS. The terminal 1100 may further be employed to create an order. Accordingly, from order entry data received over DATA, the order processor 1110 may direct the order initiation element 1107 to create an order ID and may also direct the state processor 1120 to create a corresponding order state record 1122 in the queue 1121.
The terminal 1100 terminal according to the present invention is employed to maintain a current state of all orders being fulfilled by the restaurant. The current state of each of the orders is stored in order current state fields 1112 within the order processor 1110. The order processor 1110 may also comprise domain specific rules, which define actions required to synchronize conflicting order state changes being received and/or processed by the terminal 1100, where the domain specific rules are unique to the restaurant. For example, suppose that one terminal 1100 transmits a state change for a specific order to the backend server, which is acknowledged by the backend server. Concurrently, a second terminal 1100 sends a state change for the same order. The backend server may respond to the second terminal with a message indicating that the order current state field 1112 for the order ID within the second POS terminal 1100 state is out of date (due to connection status) and providing the most recent current state of the order. The domain specific rules are employed by the order processor 1110 within the second terminal 1100 to merge the state changes local to the second terminal 1100 and may store the merged state in the corresponding current state field 1112. The order processor 1110 may then direct the COMMS 1102 to transmit the corresponding (reconciled) state field 1112 contents to the backend server for distribution to all of the terminals 400 in the restaurant.
Advantageously, the present invention provides for improvements in performance of computational resources within the terminals 1100 over that which has heretofore been provided because the terminal 1100 may be employed to process orders in the absence of network connectivity. In addition, unnecessary communications with the backend server are precluded due to on-board conflict resolution logic. Moreover, computing performance is increased because the terminal 1100 may be employed to process any of the other orders within the restaurant because the current states of all restaurant orders are resident therein. Overall improvements in the art are achieved through the synergistic and tailorable employment of facial recognition, voice commands, 3D gestures, and suggested menu selections based upon detected menu keywords.
The terminal 1100 according to the present invention is configured to perform the functions and operations as discussed above. The terminal 1100 may comprise digital and/or analog logic, circuits, devices, or microcode (i.e., micro instructions or native instructions), or a combination of logic, circuits, devices, or microcode, or equivalent elements that are employed to execute the functions and operations according to the present invention as noted. The elements employed to accomplish these operations and functions within the terminal 400 may be shared with other circuits, microcode, etc., that are employed to perform other functions and/or operations within the terminal 400. According to the scope of the present application, microcode is a term employed to refer to a plurality of micro instructions. A micro instruction (also referred to as a native instruction) is an instruction at the level that a unit executes. For example, micro instructions are directly executed by a reduced instruction set computer (RISC) microprocessor. For a complex instruction set computer (CISC) microprocessor such as an x86-compatible microprocessor, x86 instructions are translated into associated micro instructions, and the associated micro instructions are directly executed by a unit or units within the CISC microprocessor.
The terminal 1100 may be embodied as one or more central processing units (CPUs) that are coupled to both transitory and non-transitory storage (i.e., memory), where one or more application programs that are configured to perform the terminal functions discussed above are stored in the non-transitory storage, transferred to the transitory storage at run time, and executed by the one or more CPUs.
Finally turning to
An order assignment message 1210 transmitted by the backend server to one or more terminals may comprise fields 1201 having a specific terminal ID TERMID assigned for a particular order ID ORDERID along with a table number TABLENUM having a given number of seats NUMSEATS. The message 1210 may further comprise a SPECIAL field 501 via which special requirements (e.g., high chair, wheel chair access) are communicated to the terminal.
An order state change message 1220 transmitted from a terminal to the backend server may comprise TERMID and ORDERID fields 1201 as described above, along with one or more groups of ITEM, MOD, and SEAT# fields 1201, where contents of the ITEM field 1201 indicated a menu item ordered for a given seat number at the table along with any modifications to the item number (e.g., rare, no onions, etc.).
A payment state change message 1130 transmitted from a terminal to the server may comprise TERMID and ORDERID fields along with one or more groups of PMTREQ, AMT, and TIP fields 1201, where contents of the PMTREQ field 1201 indicate a payment type (e.g., cash, MasterCard, etc.), and contents of AMT and TIP indicate amount of payment for the particular payment type along with a tip amount.
An order closeout message 1240 may comprise TERMID and ORDER ID fields 1201 as noted above, along with a CLOSED field 1201, the contents of which indicate whether the particular order ID is open or closed.
A terminal configuration message 1250 exchanged between a terminal and the backend server may comprise a TERMID field 1201 as noted above along with a CONFIG field 501 and a plurality of order processing acceleration features fields ACC1-ACCN 1201, where the contents of CONFIG specify configuration parameters for the terminal (e.g., KDS, POS terminal, management terminal, delivery terminal, kiosk, etc.). The order processing acceleration features fields ACC1-ACCN 1201 prescribe specific order acceleration features to be employed by the terminal such as, but not limited to, 3D gestures, voice recognition, facial recognition, and accelerated menu suggestions based upon recognized keywords.
A conversion message 1260 may comprise AUDIO, TEXT, MOTION, GESTURE, IMAGE, and ID fields 1201, where contents of AUDIO indicate captured audio that is transmitted to the backend server and contents of TEXT indicate text that has speech-to-text conversion has generated corresponding to the contents of AUDIO, and which is received by the terminal. Contents of MOTION indicate motions that are captured by the motion sensor that are transmitted to the backend server and contents of GESTURE indicate a 3D gesture received from the server that corresponds to the contents of MOTION. Likewise, contents of IMAGE indicate an image captured by the camera and which are transmitted to the server. The server in turn provides contents of ID, which provides an identity index that corresponds to the contents of IMAGE.
The messages 1210, 1220, 1230, 1240, 1250, 1260 are not exhaustive of those what may be employed according to the present disclosure but are provided herein to teach further aspects and advantages according to the present invention.
Portions of the present invention and corresponding detailed description are presented in terms of software, or algorithms and symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the ones by which those of ordinary skill in the art effectively convey the substance of their work to others of ordinary skill in the art. An algorithm, as the term is used here, and as it is used generally, is conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of optical, electrical, or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise, or as is apparent from the discussion, terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, a microprocessor, a central processing unit, or similar electronic computing device, that manipulates and transforms data represented as physical, electronic quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Note also that the software implemented aspects of the invention are typically encoded on some form of program storage medium or implemented over some type of transmission medium. The program storage medium may be electronic (e.g., read only memory, flash read only memory, electrically programmable read only memory), random access memory magnetic (e.g., a floppy disk or a hard drive) or optical (e.g., a compact disk read only memory, or “CD ROM”), and may be read only or random access. Similarly, the transmission medium may be metal traces, twisted wire pairs, coaxial cable, optical fiber, or some other suitable transmission medium known to the art. The invention is not limited by these aspects of any given implementation.
The particular embodiments disclosed above are illustrative only, and those skilled in the art will appreciate that they can readily use the disclosed conception and specific embodiments as a basis for designing or modifying other structures for carrying out the same purposes of the present invention, and that various changes, substitutions and alterations can be made herein without departing from the scope of the invention as set forth by the appended claims. For example, components/elements of the systems and/or apparatuses may be integrated or separated. In addition, the operation of the systems and apparatuses disclosed herein may be performed by more, fewer, or other components and the methods described may include more, fewer, or other steps. Additionally, unless otherwise specified steps may be performed in any suitable order.
Although specific advantages have been enumerated above, various embodiments may include some, none, or all of the enumerated advantages.
This application is related to the following co-pending U.S. patent applications, each of which has a common assignee and common inventors. SERIAL NUMBERFILING DATETITLEADAPTIVE RESTAURANT(TST.0113) MANAGEMENT SYSTEMCOMMAND-ADAPTIVE RESTAURANT(TST.0115) MANAGEMENT SYSTEMCONTEXT-ADAPTIVE RESTAURANT(TST.0116) MANAGEMENT SYSTEMUSER-ADAPTIVE RESTAURANT(TST.0117) MANAGEMENT SYSTEM