I’ve been doing laundry every week for almost a decade, and by now the process is so familiar that I can practically do it in my sleep: Bring the hamper to the laundry room, separate the whites and colors, load the washing machines with clothes and detergent, transfer the washed clothes to the dryer, take them out of the dryer and put them into the basket, fold the clean clothes, and file them into the appropriate drawer. For me and most other experienced launderers, it’s fairly automatic.
But for a robot, doing laundry is a nightmare. Robots work best with repeated tasks that have a finite number of steps and motions, such as putting together a car. The programs that control those robots’ actions rely upon simple “if this, then that” logic — if you pull the handle, the door opens, and you can move on to the next task. But what happens if you pull the handle and the door doesn’t open? A robot programmed to do laundry is faced with 14 distinct tasks, but the most washbots right now can only complete about half of them in a sequence. But to even get to that point, there are an inestimable number of ways each task can vary or go wrong — infinite doors that may or may not open.
Here’s what a robot has to do.
- Find the pile of dirty laundry, distinguishing it from other clutter that might be in the room.
- Pick up each item in the pile. (Uncertainty: it’s unclear how many objects the robot will have to pick up.)
- Put each item in a laundry basket.
- Navigate to the washing machine. (Because of where the robot has to hold the laundry basket, it can obstruct some of the its sensors which means it receives less information and cannot adjust its movements as precisely.)
- Depending on the type of machine, pull or lift the door to open it.
- Transfer clothes into the machine.
- Add detergent and/or fabric softener.
- Close the washing machine door.
- Choose the appropriate wash cycle (Delicate, Permanent Press, Heavy Duty) and start the wash.
- Remove the clothes from the washing machine and transfer to the dryer. (Uncertainty: the robot doesn’t know beforehand how many times it will need to reach in, grab the clothes, and remove them in order to get them all.)
- Choose the type of drying cycle and start it.
- Remove clothing from the dryer. (Uncertainty: how many times will it have to grab the clothes to get them out? Is there a sock still clinging to the inside of the machine?)
- Fold items depending on the type of apparel.
- Puts garments away in a dresser or closet.
When a robot is faced with a situation it’s not programmed to handle, it just sits idly trying to figure out what to do next. And while long pauses might be fine for laundry, it won’t work so well for future robots, which may be driving us around or bringing files to doctors in hospitals.
Programmers and artificial intelligence experts have spent decades designing increasingly sophisticated robots that can navigate these unpredictable situations, tweaking the software and smoothing the physical movements so that the robot can behave more like a human when faced with uncertainty. Some robotics experts are designing robots with sensors that can learn every time they move. Others are literally teaching their creations to complete certain tasks by reading the instruction manual.
Doing laundry is one big, uncertain step towards a future where robots can handle uncertainty like humans. It’s a sample problem, a case study; if robots can do laundry, there’s no telling what sorts of other tasks they will be able to accomplish autonomously, from driving cars to exploring distant planets. The field of robotics is now at a pivotal point—decades of improvements mean that robots can start interacting with the world in ways only imagined in science fiction, and with no input from humans.