Wednesday, May 27, 2009

Frustuated Robots

I have been reading the book Emotional Design: Why We Love (or Hate) Everyday Things by Don Norman, one of the directors of the MMM program at Kellogg. The book has a fascinating chapter on Robots, and how robots might affect everyday life in the future. Don sees several robots being present in the household, each of them dedicated to one or more tasks. They would not all look like human beings; instead, they would have a form based on their function. So a dish-washing robot would like a ...well...dishwasher!

Don also talks about the need for these robots to have emotion to effectively perform their tasks, and make appropriate decisions. We, as humans, use emotion to make several decisions without even realizing the fact. Robots will not necessarily have human emotions; on the contrary, they would have emotions specialized to their needs. Don discusses a situation in which the emotion of frustration might help the robots in deadlock scenarios, as described here.

Suppose there are 3 robots in the household; a pantry robot, to fetch things from the pantry; a dish-washing robot, for washing dishes; and a servant robot, who does common chores around the house. You tell the servant robot to go fetch a cup. The servant robot goes to the pantry robot and asks for a cup. The pantry robot does not have a clean cup, so he(at the risk of assuming that all robots are male!) requests the dish-washing robot for a clean cup. The dish-washing robot does not have any cups - clean or dirty - so he requests the servant robot to get a dirty cup lying around the house so the he could clean it. Now the servant robot is waiting for the pantry robot for the clean cup, so he cannot take on a new task. And so, we have a deadlock!

Now what if the servant robot gets frustrated, quits his task for the time being, and moves on to the next task? Problem solved! Now he listens to the dish-washing robot, gets him a dirty cup, and in a few seconds, the clean cup passes to the pantry robot and finally to the hands of the servant robot (who now experiences happiness!). All's well that ends well, even if it produces a little frustration in the middle.


  1. We have a roomba ... and love it ... go robots ...

    Didn't what you just described sound exactly like a time out function, that if you don't get a response within the first n seconds, you go on to the next instruction. It is also sounds like simple 'deadlock resolution' that we learn about in the OS design and concurrency control.

  2. It is actually very similar to the timeout function, so my argument for emotions might not be that strong. Don mentions other things that add meat to the argument, like enabling robots to be able to learn human expressions, repeat things that make their owners happy etc.

  3. Who are you by the way, Mr. am (your profile is blocked)

  4. Its Ms. AM now, soon to be Dr. AM/Mrs. AF ... keep guessing :p