UC Berkeley Ph.D. student Jeremy Maitin-Shepard has developed a robot capable of folding towels. Watch in the video below as the robot inspects, folds, and stacks the towels. (Note that the video is running at 50 times real speed. This robot ain't snappy, but he works long hours.) To be clear, the robot itself is a general-purpose machine, but Maitin-Shepard et al wrote the software for folding towels.
From the research paper:
We proposed a cloth grasp point detection algorithm which has been shown to have very high precision and a very reasonable rate of recall while being highly robust to variation in material, size, and appearance due to relying only on geometric cues. The reliability and robustness of our algorithm enabled for the first time a robot with general purpose manipulators to reliably and fully-autonomously fold previously unseen towels, demonstrating success on all 50 out of 50 single-towel trials as well as on a pile of 5 towels. Although our complete folding procedure was specialized to towels, the proposed algorithm could likely be useful for detecting grasp points on many types of clothing.
Read more about the robot in Maitin-Shepard et al's paper Cloth Grasp Point Detection based on Multiple-View Geometric Cues with Application to Robotic Towel Folding (PDF link).