The present invention relates to a method and system for guiding a user through one or more cooking steps.
Cooking is often enjoyable but also quite challenging in many respects. For one, it is difficult to prepare the same dish multiple times at the same level of quality. This is in part because the tools used to cook foods (e.g., an oven, a gas burner, etc.) are not highly precise and do not provide feedback regarding the cooking process. Veteran cooks use intuition and experience to guide them through the cooking process, but cooks with less experience often have difficulty knowing when a step in a recipe has been performed correctly.
Also, cooks are sometimes required to prepare multiple dishes at once. Each dish can require multiple steps, and coordinating these steps can be a difficult. This is particularly true if the cook wishes to complete the dishes as quickly and efficiently as possible.
Lastly, many recipes can be quite intimidating for beginning cooks. A recipe may require multiple steps using multiple appliances. Many cooks would appreciate additional guidance on how to cook such complicated dishes.
In one aspect, a method for guiding one or more users through steps of a recipe is described. A recipe is obtained. One or more users are identified. A cooking proficiency of each of the users is determined. A sequence of cooking steps is determined based on the recipe and the cooking proficiency of the users. The sequence is transmitted to one or more appliances. Various implementations involve appliances, devices, systems and software that relate to the above method.
The invention and the advantages thereof, may best be understood by reference to the following description taken in conjunction with the accompanying drawings in which:
In the drawings, like reference numerals are sometimes used to designate like structural elements. It should also be appreciated that the depictions in the figures are diagrammatic and not to scale.
As noted in the Background, cooking particular dishes can require multiple steps and appliances, and thus can require considerable coordination and skill. Such dishes can be particularly difficult for cooks with limited experience. To address this issue, various embodiments are described herein that relate to a system for guiding one or more users through a cooking process.
Referring initially to
The coordinating device 105 is arranged to help the users complete a recipe. In some implementations, the coordinating device is another appliance (e.g., a refrigerator), but may also be any suitable device (e.g., a dedicated cooking guidance device, a laptop, a computer, a smart phone, a tablet, a smart watch, etc.) The device 105 coordinates the performance of different tasks by different users at the various appliances.
In the illustrated embodiment, the coordinating device 105 obtains one or more recipes e.g., a recipe to cook lasagna. The recipe is broken down into multiple cooking steps. The coordinating device 105 associates each step with a particular user 120 and/or appliance 110a/110b. For example, if the recipe involves cooking lasagna, one step may involve the user 120 boiling water at appliance 110a, which in this example is an oven with a gas range. Another step may involve the user grating cheese at appliance 110b, which is a food processor with a grater. If there are multiple users, the coordinating device 105 may assign different steps to different users.
In various implementations, the coordinating device 105 determines a sequence of cooking steps that makes optimal use of the available users and appliances. In generating the sequence, the device 105 may also take into account the skills and cooking proficiency of each of the users. Some embodiments involve accessing a stored profile on each user, which may indicate, for example, how much general cooking experience the user has and/or whether the user has cooked the same or similar dishes in the past. If a user has less experience, the coordinating device 105 may estimate that a particular cooking step will take a longer period of time for that user to complete. The device 105 takes this time into account when determining the sequence of cooking steps.
In many cases, it is more efficient for cooking steps to be performed in parallel. For example, for a lasagna recipe, while user 120 boils water to cook the noodles, the user 120 can grate the cheese and/or prepare the tomato sauce. It can be complicated and difficult for an inexperienced cook to determine such parallel steps, particularly when multiple dishes are being prepared or multiple users are involved. In various embodiments, the coordinating device 105 automates this process and allows the cooks to focus on food preparation rather than the scheduling and timing of cooking steps.
The coordinating device 105 then transmits data relating to the sequence of each cooking step to the appliances 110a/110b. The appliances 110a/110b may be any suitable kitchen- or cooking-related appliance. In some embodiments, each appliance may be but is not limited to a scale, a food processor, an oven, a microwave oven, a gas or electric range, a refrigerator, a coffee maker or any other suitable device.
In this example, the appliance 110b is a food processor and the appliance 110a is a gas range. Thus, the device 105 transmits data relating to the grating step to appliance 110b and data relating to the boiling step to appliance 110a. In various implementations, the transmitted data indicates instructions to the associated appliance, an estimated completion time for the step and/or data used by the appliance to help guide the user through the step (e.g., an instructional video guide, audio comments, etc.). The data for each step also indicates the order or timing of the step relative to the other steps.
Each appliance 110a/110b receives the cooking step data transmitted from the coordinating device 105. Based on the data, the appliances guide the user through the cooking steps in the predetermined order and monitors the implementation of the steps. For example, initially, the appliance 110a (e.g., the gas range) may display a message, indicating that the user should press a button. Upon the pressing of the button, the appliance automatically ignites a burner, sets the burner to generate a desired amount of heat and displays a message instructing the user to place a pot of water on the burner. The gas range includes sensors that monitor the boiling of the water. When it is determined that the boiling is complete, the system guides the user to the next step and appliance, as appropriate. In various implementations, the appliances send feedback to the coordinating device, indicating the progress the user has made in completing each cooking step.
In some cases, during the above monitoring process, the system will detect a new condition that triggers a reordering of the cooking steps. For example, a user may take too long on a particular step, or finish a step much more quickly than expected. Under some conditions, the coordinating device 105 will then adjust the sequence of cooking steps and generate a new sequence, which is then distributed to the appliances as appropriate. The new sequence takes into account this new condition and is designed to further improve and refine the cooking process. This may involve reordering particular steps, or causing different steps to be performed in parallel. This process may be repeated until the dish is successfully completed. Further details regarding the operations performed by the appliances 110a/110b and the coordinating device 105 of
Referring next to
Initially, at step 205, the coordinating device 105 obtains one or more recipes. A recipe indicates one or more cooking steps that help instruct a user to make a particular dish, beverage or other consumable good. The cooking steps of an example recipe for making tomato pasta are illustrated in
The steps illustrated in
In this example, the cooking step data frame 400 includes an appliance instruction 405, user instruction data 420, time data 425, a dependency indicator 410 and an active/passive indicator 415. It should be noted that although the aforementioned components are illustrated as being parts of the data frame, this is not a requirement. In other embodiments, for example, each of the components represent distinct data blocks or fields that are associated with one another and are stored in any suitable data storage system e.g., a database.
The appliance instruction 405 indicates one or more commands to the appliance. By way of example, assume that the cooking step data frame 400 is associated with cooking step 305 of
The user instruction data 420 includes any data used to display information for or communicate information to a user 120. In this example, the cooking step data structure 400 is associated with step 305 of
The dependency indicator 410 is any data that indicates whether the associated cooking step must follow or precede one or more other cooking steps. Continuing the above example, in the illustrated embodiment, the dependency data 410 indicates that the cooking step 305 of
The time data 425 indicates any time-related characteristics of the associated cooking step. In various embodiments, for example, the time data 425 indicates an estimation of a time period that will be required to complete the cooking step. As will be discussed later in the application, the coordinating device 105 may adjust this time period based on various parameters, such as the experience level of the user who is performing the associated cooking step. In other embodiments, the time data 425 may also indicate multiple phases for the cooking operation, each with its own time period. For example, the cooking step 325 of
The active/passive indicator 415 is any data that indicates whether a user needs to personally and actively attend to the associated cooking step, or whether the user can perform another task while the associated cooking step is being performed. By way of example, step 310 of
Returning to
At step 213, the coordinating device 105 determines which appliances are available on the network 130. More specifically, the coordinating device determines whether there are any appliances on the network that are capable of communicating with and responding to commands from the coordinating device. In the illustrated embodiment of
At step 215, the coordinating device 105 determines the cooking proficiency of each identified user. In various embodiments, for example, the coordinating device 105 searches a database (e.g., stored at the device 105 or at a remote server) to find a profile for each identified user. The profile may include any information that helps indicate a cooking skill and experience of the user. By way of example, the profile may include records indicating how many times the user has used the cooking guidance system 100 to cook similar or the same dishes. In some implementations, the profile includes data inputted manually by the user e.g., information that the user previously provided based on a self-evaluation of his or her skill at cooking.
Based on the profile and any other suitable data, the coordinating device determines a cooking proficiency of the user. This may be represented using any suitable rating or scale system (e.g., a level number, a title, etc.) In some implementations, the determined cooking proficiency level is based on crowdsourced data collected by a server from multiple cooking guidance systems 100. That is, the server has collected data on the cooking efforts of many users. The data indicates how users with different amounts of cooking experience performed at various cooking tasks e.g., based on monitoring steps 245 and 250.) Based on the crowdsourced data and the user profile, the coordinating device determines the cooking proficiency of the user.
The coordinating device then associates each cooking step with a particular appliance and/or user (step 220). This step may be based on data associated with the cooking step e.g., the appliance instruction 405 of the cooking step data frame 400, which can indicate which or what kind of appliance can be used to perform the step. An example of this association operation is illustrated in
If there are multiple users, the coordinating device may assign different cooking steps to different users. This assignment may be based on the cooking proficiency determined for each user in step 215. For example, the coordinating device 105 may assign a particularly complex or difficult cooking step to a user with a higher proficiency level.
Returning to
An example of the dependency determination is illustrated in
In some implementations, the coordinating device 105 determines that a particular step must not only follow another step, but must immediately follow that stop or be performed within a predefined time period of the completion of another step. (This determination may be indicated by the data associated with the cooking step i.e., the dependency indicator 410 of
At step 230, the coordinating device 105 determines an estimated completion time for each step. This determination may be based on a variety of parameters. In some implementations, for example, each cooking step is associated with data indicating a base estimated time required to complete the step (e.g., the data may be indicated by the time data 425 of the associated cooking step data frame 400 of
The coordinating device 105 may accept the base estimated time. Alternatively, the coordinating device 105 may adjust the base estimated time based on the user who will perform the step (e.g., as determined in step 220) and his or her cooking proficiency (e.g., as determined in step 210). By way of example, if the cooking step involves chopping multiple vegetables, the device 105 may determine that the cooking step will take much longer for a cooking novice to complete than if the user was a cooking expert.
Returning to
An example of a sequence 700 of cooking steps is illustrated in
Referring next to
At step 245, the coordinating device 105 and/or the appliances 110a/110b implement the sequence of cooking steps determined in step 235. The cooking steps may be implemented in a wide variety of ways. In some embodiments, for example, the coordinating device 105 actively coordinates the operation of the appliances 110a/110b. By way of example, in various approaches, the appliances 110a/110b wait for a request from the coordinating device. Following the order in the sequence determined in step 245, the coordinating device 105 sends a request to each appliance that is associated with the next step in the sequence, which enables the appliance to receive user input, prompt the user and perform its assigned function. When a particular cooking step is completed, the associated appliance transmits a completion signal back to the coordinating device 105. In response, the coordinating device 105 moves to the next cooking step and/or appliance in the sequence and repeats the above process. (It is possible that a cooking step will not be associated with a particular “smart” appliance 110a/110b and must be performed by a user without the assistance of a tool that communicates with the cooking guidance system 100. In that case, in various implementations, the coordinating device 105 itself receives user input, prompts the user and/or guides the user through the step.)
An example implementation of a recipe may be described as follows. A user uses the cooking guidance system 100 to complete a recipe for tomato pasta. The coordinating device 105 obtains the recipe (step 205), which is organized into multiple cooking steps. Each cooking step is associated with data (e.g., cooking step data frames 400 of
The first cooking step is to start the boiling of water (step 303 of
Afterward, the appliance 110a transmits a message back to the coordinating device 105, indicating that the water is beginning to boil. In response, the coordinating device 105 references the sequence illustrated in
It should be appreciated that the above process represents only a single, exemplary implementation, which may be modified as appropriate for different applications. By way of example, in some embodiments, the appliances may be able to communicate directly with one another and inform one another when one cooking step has been completed and another step should be started, without requiring repeated, direct involvement by the coordinating device 105. Generally, this application contemplates various ways of implementing the cooking guidance system 100 that may depart from what is described above.
Returning to method 200 of
The cooking guidance system 100 may also include one or more sensor that are used to monitor the progress made in the performance of the cooking steps. Such sensors may be part of the coordinating device 105 and/or the appliances 110a/110b. Alternatively or additionally, they may be independent sensors that are coupled with the network 130. The sensors gather data and transmit it to the coordinating device 105 for analysis.
A wide variety of sensors may be used, including but not limited to a probe (for detecting the internal temperature of foods), moisture/humidity sensors (for detecting, for example, whether a soup or water is boiling), a camera (for monitoring changes in color or texture), infrared sensors (for measuring temperature), a microphone (for detecting particular sounds like sizzling or crackling) and a smoke detector (for detecting charring or burning.) Based on the received sensor data, the coordinating device 105 may determine that a cooking operation is underway (e.g., a humidity sensor detects that water is boiling), that a cooking operation is completed (e.g., a camera detects that a shrimp is done based on a change in the color of the shrimp) or that a problem has arisen (e.g., a smoke detector detects burning.)
The use of sensors can eliminate the need for a person to closely monitor and provide feedback on a cooking process. To use a simple example, consider a cooking step in which a user must simmer a stew for a period of time. In response to a prompt from an appliance (e.g., an oven with a gas range) the user places a pot of the stew on a burner of the appliance. A humidity sensor is positioned above the stew and detects when the stew has reached the desired temperature. After the desired simmer temperature is reached, the sensor sends a message to the appliance. In response, the appliance starts a timer. After a desired, predefined time period has passed, the appliance then displays a message, indicating to the user that the stew has been simmered long enough. The appliance also automatically deactivates the burner. The appliance thus is able to determine that the cooking operation was successfully completed without requiring a confirmation or direct feedback from the user.
In various implementations, a device (i.e., the coordinating device 105 and/or an appliance 110a/110b) will track the actions of a user as he or she works with the device to complete a cooking step. In some implementations, for example, the device stores data indicating what actions the user performed to finish a cooking step, how long each of those actions took, whether the cooking step was completed successfully, etc. In one implementation, the device includes a video camera that records a video of the user performing the associated cooking step. If the user makes a mistake, the device may later display the video to the user to help them understand how to avoid such mistakes in the future.
At step 255, the coordinating device 105 stores user cooking proficiency data. That is, as described above, various devices (e.g., the coordinating device 105, the appliances 110a/110b and sensors) track and monitor a user's efforts to complete a cooking step. As appropriate, this data is transmitted to the coordinating device 105, where it is stored. Such data is helpful in assessing the cooking proficiency of the user performing the step. Alternatively or additionally, the coordinating device transmits the information to an external device (e.g., a remote cloud server) for storage therein. Based on the collected information, the coordinating device 105 may update a user profile that indicates the user's cooking proficiency (e.g., as discussed in connection with step 215.) When the user attempts other recipes in the future using the cooking guidance system 100, the coordinating device 105 will then be able to take into account the updated profile when determining the amount of time needed for particular cooking steps and the sequence of the cooking steps (e.g., steps 215, 220, 230 and 235.)
The above steps may be implemented until all the cooking steps and the recipe have been completed (step 257). However, under some conditions and before all the steps are completed, the coordinating device 105 and/or the cooking guidance system 100 detect that a particular condition has arisen that may require adjustment of the cooking process (step 260). Any suitable condition may trigger such an assessment. In some implementations, for example, the coordinating device 105 detects that a user has failed to complete a cooking step within an expected period of time (e.g., as estimated in 230.) On the other hand, the coordinating device 105 may instead detect that the user has completed a cooking step early relative to the expected period of time.
Some implementations involve an appliance 110a/110b and/or coordinating device 105 detecting that some sort of problem has occurred that will require a reassessment and reformulation of the cooking steps. By way of example, an appliance 110a/110b may include or be coupled with a sensor that detects smoke or the burning of food. Alternatively, the appliance or sensor may detect that a food has been cooked or boiled too long, that too much of an ingredient (e.g., salt, sugar) has been added to a food, etc.
When any of the above conditions is detected, the coordinating device 105 analyzes the detected condition and determines what kind of action should be undertaken. In some situations, the condition may not require any change in the previously determined sequence of cooking steps. In some cases, however, the coordinating device 105 determines that changes must be made and it adjusts the sequence of cooking steps (step 265). That is, the coordinative device determines a new, second sequence in which some of the cooking steps are modified, reordered and/or removed. The adjustment takes into account the condition detected in step 260 and generally is intended to improve the effectiveness and efficiency of the cooking process.
An example of the aforementioned adjustment will be described with reference to
In this example, however, the user was unable to dice the tomatoes in time e.g., the user was distracted by something and was simply much slower at dicing tomatoes than expected. To indicate that the user was finished dicing the tomatoes, the user should have provided feedback (e.g., a verbal command, a pushing of a button on a display screen of the coordinating device 105, etc.) to the coordinating device 105, but did not do so. As a result, the coordinating device 105 detected that the user was taking longer than expected to dice the tomatoes (step 260).
Based on the detected condition, the coordinating device 105 adjusts the sequence of cooking steps in
Once the sequence of cooking steps is adjusted, the method 200 proceeds back to step 250. That is, the remaining steps are implemented and monitored as discussed in connection with steps 245, 250, 255 and 260. Thus, in some cases a sequence of cooking steps for a recipe may be adjusted multiple times, if necessary. This process continues until all of the cooking steps for all of the recipes obtained in step 205 have been completed.
Referring next to
The storage unit 910 is any hardware or suitable for storing data or executable computer code. The storage unit 910 can include but is not limited to a hard drive, flash drive, non-volatile memory, volatile memory or any other type of computer readable storage medium. Any operation or method for a coordinating device that is described in this application (e.g., method 200 of
The network interface unit 920 includes any hardware or software suitable for enabling the coordinating device 900 to communicate with external devices. In some embodiments, for example, the coordinating device 900 transmits messages, commands, cooking steps and associated data (e.g., cooking step data frames 400 of
The user interface unit 915 is any hardware or software arranged to communicate information to a user 120 and/or receive input from the user 120. The user interface unit 915 includes any suitable display technology used to display information e.g., a touch sensitive (capacitive) screen, an e-ink display, an LCD or OLED display, etc. The user interface unit 1000 may display any kind of message or information described herein at the display unit 1020 e.g., as discussed in connection with method 200 of
In some implementations, the user interface unit 915 also includes a display screen that is arranged receive input from the user e.g., the user is able to press buttons on a touch-sensitive display and provide feedback on whether a cooking step is completed. The unit 915 may receive input using any other suitable type of hardware as well e.g., a mechanical button, a microphone for receiving audio commands, etc. Any user communication to the coordinating device 900 or any communication from the coordinating device 900 to the user 120 that is described in this application may be implemented using the user interface unit 915.
The user proficiency module 925 is any hardware or software that is used to perform operations related to the determination of a cooking proficiency of a user (e.g., step 215 of
The task scheduling module 930 is any hardware or software that is used to perform operations related to the generation of a sequence of cooking steps. In various embodiments, the module 930 is arranged to obtain a recipe (e.g., step 205 of
The monitoring module 935 is any hardware or software that is used to perform operations relating to the monitoring of the cooking process. In various embodiments, the monitoring module is arranged to receive monitoring data (e.g., sensor data) from a variety of sensors, monitoring devices and/or appliances 110a/110b. In some embodiments, based on the data, the monitoring module 935 determines whether one or more predetermined conditions have taken place (e.g., as discussed in connection with steps 250 and 260 of
Referring next to
The storage unit 1010 is any hardware or suitable for storing data or executable computer code. The storage unit 1010 can include but is not limited to a hard drive, flash drive, non-volatile memory, volatile memory or any other type of computer readable storage medium. Any operation or method for an appliance that is described in this application (e.g., as described in method 200 of
The network interface unit 1020 includes any hardware or software suitable for enabling the appliance to communicate with external devices. In some embodiments, for example, the appliance 1000 monitors the implementation of a cooking step and the cooking performance of a user. The appliance then uses the network interface unit 1020 to transmit the monitoring data to the coordinating device for further processing (e.g., as described in connection with step 250 of
The user interface unit 1015 is any hardware or software arranged to communicate information to a user and/or receive input from the user. In some embodiments, the user interface unit 1015 includes a display technology used to display information e.g., a touch sensitive (capacitive) screen, an e-ink display, an LCD or OLED display or any other suitable display technology. The appliance 1000 may display any kind of message or information described herein at the user interface unit 1015 e.g., as discussed in connection with method 200 of
In some implementations, the user interface unit 1015 also includes a display screen that is arranged receive input from the user e.g., the user is able to press buttons on a touch-sensitive display and provide feedback on whether a cooking step is completed. The unit 1015 may receive input using any other suitable type of hardware as well e.g., a mechanical button, a microphone for receiving audio commands, etc. Any user communication to the appliance 1000 or any communication from the appliance 1000 to the user that is described in this application may be implemented using the user interface unit 1015.
The task implementation module 1025 is any hardware or software arranged to help perform a cooking step. In various embodiments, the module 1025 is arranged to receive cooking step-related data from the coordinating device (e.g., prompts, commands, cooking step data frames 400 of
The operational element 1030 is any hardware or software used to perform a cooking- or food preparation-related function. The operational element is different, depending on the nature of the appliance. By way of example, if the appliance 1000 is an oven with an electric range, the operational element may include the electric range and the oven, electric burners, a heating compartment (for baking) and a heating element in the compartment. If the appliance 1000 is a scale, the operational element 1030 may include a weighing platform and software and/or a system for determining a weight of an object that is resting on the platform. If the appliance 1000 is a blender, the operational element 1030 may include a container for holding food or a liquid and a base upon which the container is mounted. In various implementations, the operational element 1030 includes any equipment, mechanisms or structures that an appliance is known to generally include to perform its (primary) food preparation- and/or cooking-related function. The operational element 1030 is arranged to receive input from the task implementation module 1025 and to perform operations based on the input.
Referring next to
At step 1105 of method 1100, the coordinating device 105 obtains a recipe. This step may be performed generally the same as or similar to step 205 of
Consider the following example involving a recipe for making a pasta dish. The recipe includes multiple cooking steps, including boiling water, cooking noodles, chopping ingredients, etc. Additionally, the recipe includes the following cooking steps that relate to the making of tomato paste:
It should be noted that cooking step F or others of the above steps actually may be made up of multiple additional steps. Some people with limited experience in cooking or limited time may find the above cooking steps A-F overly complicated or burdensome. The recipe thus also may be associated with the following cooking step, which can substitute for the above cooking steps A-F:
As discussed in connection with
In some implementations, a cooking step is optional. That is, the cooking step is not required for completing the recipe. For instance, in the above example, steps D and E are optional. The placement of the tomatoes in ice (step D) helps facilitate peeling. The peeling of the tomatoes (step E) may contribute to the making of a higher quality tomato paste. However, the tomato paste may also be made without steps D and E being performed. Accordingly, in various embodiments, a cooking step data frame for a particular optional cooking step includes or is associated with data indicating whether the associated cooking step is optional but not necessary.
At step 1110 of
Alternatively, the coordinating device 105 determines that the cooking proficiency of a particular user (e.g., step 215 of
Alternatively and/or additionally, the coordinating device 105 determines whether an optional step should be included in the implementation of the recipe or not. Using the above example, the device 105 may determine that a particular user needs to finish the pasta recipe quickly and/or is not particularly skillful at cooking (e.g., as determined in step 215 of
At step 1115, the coordinating device 105 determines a sequence of cooking steps. This step may be performed the same as or similar to step 235 of
Method 1100 and steps 1110, 1115 and 1120 may also be performed to adjust a sequence of cooking steps that are currently being implemented. For example, method 200 of
The generation of the second sequence may be based on the operations described above in connection with method 1100 of
An example of the above approach may be described as follows. Consider a situation in which a coordinating device 105 obtains the above recipe for making tomato pasta (e.g., step 205 of
The cooking steps are implemented and monitored, as discussed in connection with steps 245 and 250 of
Various operations described in this application are performed by the coordinating device 105/900 and/or an appliance 110a/110b/1000. It should be noted that each such operation can also be performed by another device in the cooking guidance system 100. In some embodiments, it is performed by a device that is coupled with a coordinating device and/or appliance using a network 130. By way of example, this application describes a coordinating device that is arranged to identify users, possibly by receiving input from them or requesting input from them (e.g., step 210 of
Although only a few embodiments of the invention have been described in detail, it should be appreciated that the invention may be implemented in many other forms without departing from the spirit or scope of the invention. For example, the present application and figures describe various methods (e.g., method 200 of
This application claims the priority of U.S. Provisional Patent Application No. 62/191,256, entitled “Smart Recipe System for Appliances Coordination and Control,” filed Jul. 10, 2015, which is incorporated by reference in its entirety for all purposes.
Number | Date | Country | |
---|---|---|---|
62191256 | Jul 2015 | US |