• [M] Folding laundry: a challenge for robotics

    From RS Wood@21:1/5 to All on Thu Feb 25 06:21:48 2016
    XPost: misc.news.internet.discuss

    From the «keeps getting creases in my panties» department:
    Title: The Challenges of A Laundry Folding Robot
    Author: Adam Fabio
    Date: Wed, 24 Feb 2016 13:00:43 -0500
    Link: http://feedproxy.google.com/~r/hackaday/LgoM/~3/hLCxny7JsJE/
    Podcast Download URL: https://hackadaycom.files.wordpress.com/2016/02/opencv_logo_with_text_svg_version.png?w=326

    [image 1]“This is the year of the general purpose home robot!” “2016 is going
    to be for robots like 1976 was for the home computer!” The problem with statements like those is the fact that we’ve been hearing them since the 1970’s. General purpose home robots still have a long way to go. Sure, we’ve
    got Roomba, we’ve even got self-driving cars. But we don’t have Rosie from the
    Jetsons. And while I don’t think we’re going to get to Rosie for a while, there
    are some simple challenges that can spur development in that direction. One need look no further than one’s own laundry room.

    [image 2]Using machines to wash and dry laundry isn’t a new concept. Washers and dryers have become commonplace enough that we don’t think of them as robots. Hamilton Smith patented the rotary washing machine in 1858. Maytag has had home machines available for nearly 100 years. Many of the early machines were powered by gasoline engines, as electricity wasn’t common in rural farmhouses. Things have improved quite a bit since then! From the dryer we transfer our laundry to a basket, where it has to be folded. It is this final step that cries out for a homemaking automaton to take this chore out of Everyman’s hands.

    As one can imagine, folding laundry is one of those tasks that is easy for humans, but hard for robots. However, it’s not impossible. The idea of this article is to show what has been done, and get people talking. A project like this would take a person or group of people with skills in mechanics, electronics, machine vision, and software. It would also be sure to place well in the 2016 Hackaday Prize.

    Commercial folding machines exist. Hotels, hospitals, and other industrial environments have machines that handle high volumes of sheets, towels, and other pieces of laundry. These giant machines iron while they fold. Even with modern process control technology, they still require human operators to hand-load each item[3]. On the hacker side, the Foldimate 5000[4] is a novel approach to mechanical folding, though it can’t fold everything.

    Seven Dreamers Laboratories from Japan has been advertising their Laundroid robot[5] at trade shows, including CES. However, every demonstration I’ve seen
    to date consists of an unfolded piece of laundry being put in the machine. The doors close, and a few minutes later the article of clothing magically appears folded. Until I see proof that there isn’t a person back there folding the laundry, I’m going to call shenanigans on this one.

    [image 6]The most promising work on laundry folding robots came from [Pieter Abbeel and Jeremy Maitin-Shepard] at Berkeley[7]. Way back in 2010, the pair and their team used a $400,000 USD PR2 robot from Willow Garage. While the results were promising, they were operating on a limited set of laundry – towels, and towels only. Their final research paper details their results[8]. (PDF warning)

    A basket of clean laundry is an unstructured environment. Whites, colors, and prints all piled together. Pattern recognition is right out the window. Garments aren’t necessarily a solid color either. What is a robot to do?

    One method would be to grab something – anything out of the basket, shake it out, and go from there. This is a simplified view of how the Berkeley system worked. Grasp, re-grasp, and attempt to determine the corners of the piece of laundry. Granted, the Berkeley robot only had to deal with towels. It also had the help of a green screen to view what it was working on. Real world laundry is a lot more than towels. Some articles of clothing – T-shirts for example, don’t have well-defined 90-degree angles at every corner. T-shirts can also end
    up inside out, a major problem for a laundry folding robot.

    [image 9]Berkeley had a very expensive PR2 robot doing their folding. Since most readers here on Hackaday don’t have that kind of budget, we’ll have to find a cheaper way. Thankfully there are several robot arm projects[10] over on Hackaday.io which are up to the task[11].

    Smaller, weaker robots aren’t out of the running either. Humans come in all shapes and sizes – and so does their laundry. Have a small robot arm? Start with baby clothes. Any new parent you know would be overjoyed to have help with the laundry – though you may have to promise to refold anything your robot fails to complete.

    [image 13][13]A robot which can fold laundry will need a lot of software. Thankfully there are some open source libraries to build upon. Input will come from cameras. That means we need a serious machine vision package to process the images. This already exists in OpenCV[14]. OpenCV is an open source (BSD license) computer vision package which has been around since 1999. It has been continuously improved since then. Ports exist for Mac, Windows, Linux, as well as Android and iOS. It also runs great on the Raspberry Pi.

    Output will come in the form of arm movements. In robotics terms, deciding where you want a robot arm to move is motion planning. Actually calculating how much to move each joint, and when to move them in order to get there is Inverse kinematics[15]. Reading about motion planning and inverse kinematics is a great
    way to lose an afternoon – or seven years in graduate school. There’s plenty of
    research out there. A good portion of it lies behind paywalls though, so if you’re not at a major university, you’re out of luck. All is not lost though.
    You can easily find free software to help with motion planning and inverse kinematic equations. A great example is openRave[16]. Another option is to dig through the ROS (Robot Operating System) [17]documentation pages, ROS is the Linux based system which forms the brain of the PR2 robot.

    With input and output out of the way, all that’s left is control. This is the software that will handle the data coming out of the OpenCV and decide where to move the arms. Folding laundry has a huge number of variables. Trying to come up with a simple algorithm that covers every possible piece of laundry would be impossible (though I would love to be proven wrong on that). The best bet for teaching a robot to fold laundry is to do just that. I’m talking of course about machine learning, chiefly with neural networks. There is an incredible amount of work being done on machine learning right now. One of the giants is Google, who just recently released TensorFlow[18] to the open source world. TensorFlow is a package to try out machine learning algorithms. It’s also used
    in real world environments like Google Voice Search and Google Images.

    So there you have it. A quick lowdown of a very challenging problem, and a few tools to get started. These are just my ideas though. What would you do differently? Join the discussion down in the comments, then head over to  Hackaday.io[19] and get your laundry folding robot project started!

    Filed under: Hackaday Columns[20], robots hacks[21][image 22][22][image 23][image 24]

    [1]: https://hackadaycom.files.wordpress.com/2016/02/rosie.png?w=800 (image) [2]: https://hackadaycom.files.wordpress.com/2016/02/maytag.jpg?w=327&h=327 (image)
    [3]: https://www.youtube.com/watch?v=OpiFp9i6owY (link)
    [4]: http://www.foldimate.com/ (link)
    [5]: https://www.youtube.com/watch?v=7apeh4tjsgI (link)
    [6]: https://hackadaycom.files.wordpress.com/2016/02/pr2-fold1.png?w=400&h=292 (image)
    [7]: http://news.berkeley.edu/2010/04/02/robot/ (link)
    [8]: http://www.cs.berkeley.edu/~pabbeel/papers/Maitin-ShepardCusumano-TownerLeiAbbeel_ICRA2010.pdf (link)
    [9]: https://hackadaycom.files.wordpress.com/2016/02/laundry.jpg?w=800 (image) [10]: https://hackaday.io/project/3800-3d-printable-robot-arm (link)
    [11]: https://hackaday.io/project/945-5-axis-robot-arm (link)
    [12]: https://hackadaycom.files.wordpress.com/2016/02/opencv_logo_with_text_svg_version.png (link)
    [13]: https://hackadaycom.files.wordpress.com/2016/02/opencv_logo_with_text_svg_version.png?w=200&h=245 (image)
    [14]: http://opencv.org/ (link)
    [15]: https://en.wikipedia.org/wiki/Inverse_kinematics (link)
    [16]: http://openrave.org/ (link)
    [17]: http://wiki.ros.org/ (link)
    [18]: https://www.tensorflow.org/ (link)
    [19]: https://hackaday.io/ (link)
    [20]: http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/192388/ (link)
    [21]: http://hackaday.com/category/robots-hacks/ (link)
    [22]: http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/192388/ (image)
    [23]: http://pixel.wp.com/b.gif?host=hackaday.com&blog=4779443&post=192388&subd=hackadaycom&ref=&feed=1 (image)
    [24]: http://feeds.feedburner.com/~r/hackaday/LgoM/~4/hLCxny7JsJE (image)

    Posting to comp.misc, sci.misc, and misc.news.internet.discuss

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From mentificium@gmail.com@21:1/5 to RS Wood on Fri Feb 26 17:56:18 2016
    On Wednesday, February 24, 2016 at 10:21:50 PM UTC-8, RS Wood wrote:
    From the keeps getting creases in my panties department:
    Title: The Challenges of A Laundry Folding Robot
    Author: Adam Fabio
    Date: Wed, 24 Feb 2016 13:00:43 -0500
    Link: http://feedproxy.google.com/~r/hackaday/LgoM/~3/hLCxny7JsJE/
    Podcast Download URL: https://hackadaycom.files.wordpress.com/2016/02/opencv_logo_with_text_svg_version.png?w=326
    Thank you for posting the interesting information
    about the problem of robotic laundry-folding.

    What each robot needs is an AI Mind, such as


    described by the Association for Computing Machinery
    (ACM) at


    http://ai.neocities.org/AiSteps.html http://www.sourcecodeonline.com/details/ghost_perl_webserver_strong_ai.html

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)