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.