Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Robot Learns to Cook the Perfect Omelette Using Batch Bayesian Optimization

Robot Learns to Cook the Perfect Omelette Using Batch Bayesian Optimization

This item in japanese


Researchers from the university of Cambridge trained a robot to prepare an omelette and optimized the recipe to produce well-tasting dishes. 

We expect robots to take over many jobs, and repetitive food preparation appears to be something which you can optimize with computers. Researchers Junge, Hughes, Thuruthel and Iida, all working at the Bio-Inspired Robotics Lab of the University of Cambridge, took up this challenge. They created a robot arm which uses only basic tools to create a simple omelette dish. Their robot performs an impressive amount of steps to create the omelette. First it prepares the eggs by cracking them, adding salt and pepper, and whisking them. Then the robot adds oil to the pan and puts it on a hob, it pours the egg mixture in the pan and whisks the omelette. When it’s done, it takes the pan off the hob again. They describe their research very well in this video

The researchers realized that using a robot has a massive potential benefit: it can follow the exact same steps multiple times. This way, when programmed with a good recipe, it can reliably produce an amazing dish. This then leaves the challenge: what parameters should be set in the recipe to produce the objectively best tasting recipe? The researchers asked volunteers to rate recipes to improve their omelette recipe based the feedback. This then brought up a very challenging problem: feedback of humans is very noisy. Different people have a different taste palette, and when you are feeling happy you will probably give the robot a better rating. It’s also hard to know up front what scale you are working on without calibrating your taste palette with multiple omelettes. This can lead to you giving the first omelette a higher score than it in hindsight deserves. 

To find the most objectively best recipe, the researchers turned towards Bayesian optimization techniques. They investigated two methods: sequential Bayesian optimization and batch Bayesian optimization. The robotic chef has five parameters it tries to optimize: the amount of salt, amount of pepper, how long to wisk the eggs, how much to rotate the egg, and the cooking time. People rated their omelette on three metrics: flavour, appearance, and texture. The robot prepared 73 omelettes, and optimized its recipe after each tasting. The recipes optimized using batch optimization improved most during the optimization process, because a bigger batch of feedback smoothes out the human noise, leading to optimizing the mean opinion on the omelettes. 

There are few robotic arms preparing our food from scratch in a commercial setting. One commercial example is Cafe X: a startup which uses a robotic arm to hand you your coffee (there is a video of this process on Youtube). On their company website it says that they will start shipping their robotic barista at the end of 2020 for a price of $200,000. Another robotic food cooking company is Moley, which is doing more generic food preparation. When they will start shipping a product is not clear from their website. One thing is certain: with the current COVID-19 crisis, robotic contactless meal preparation and delivery definitely has potential. 

If you want to build your own robot to cook your omelettes, you can find the paper on ResearchGate. If you want to build your own Bayesian optimization program to optimize another aspect of your life, you can use the same library, as it’s available on GitHub

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p