Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Teaching Robots New Tricks Without Programming

timothy posted about 2 years ago | from the use-the-force-feedback-luke dept.

AI 42

cylonlover writes "Maya Cakmak, a researcher from Georgia Tech, spent the summer at Willow Garage creating a user-friendly system that teaches the PR2 robot simple tasks. The kicker is that it doesn't require any traditional programming skills whatsoever – it works by physically guiding the robot's arms while giving it verbal commands. After inviting regular people to give it a try, she found that with few instructions they were able to teach the PR2 how to retrieve medicine from a cabinet and fold a t-shirt."

cancel ×

42 comments

Sorry! There are no comments related to the filter you selected.

The Program is Right There in the Article. (5, Insightful)

Anonymous Coward | about 2 years ago | (#42015663)

"Without programming?"

Bullshit. Look in the article, in the picture in the article.

Program's right there, on the right side. [gizmag.com]

"Test subjects were provided instructions on how to teach the robot similar to what you'd expect when buying a sophisticated appliance."

"Tutorial: Programming PR2 by Demonstration."

"Step 1... Say: 'TEST MICROPHONE'."

"Step 2... Say: 'RELEASE RIGHT ARM.' ... Move the arm to a neutral pose and say HOLD RIGHT ARM."

If this isn't programming, then I'm not a programmer. Instead, I'm just someone who manipulates a text editor.

Re:The Program is Right There in the Article. (1)

Dr Max (1696200) | about 2 years ago | (#42015903)

Getting a robot to write it's own program has been done for a long time (10 years at least). This isn't even a new way of doing it, they are just using this guys code http://www.eejournal.com/archives/fresh-bytes/baxter-is-the-humanoid-robot-you-can-teach-without-programming/ [eejournal.com] .

Re:The Program is Right There in the Article. (0)

Anonymous Coward | about 2 years ago | (#42016569)

This isn't even a new way of doing it, they are just using this guys code http://www.eejournal.com/archives/fresh-bytes/baxter-is-the-humanoid-robot-you-can-teach-without-programming/ [eejournal.com] .

How do you figure?

The project in this article (and all the software that the PR2 is run on) is open source ros.org [slashdot.org] . Baxter is closed source but reportedly uses ROS under the hood, it is in fact baxter leveraging the code from this article.

Re:The Program is Right There in the Article. (2)

Dr Max (1696200) | about 2 years ago | (#42016625)

It uses the same os but from what i understood the baxter guy open sourced his physical self learning code to them.

Re:The Program is Right There in the Article. (1)

Sulphur (1548251) | about 2 years ago | (#42019623)

Getting a robot to write it's own program has been done for a long time (10 years at least). This isn't even a new way of doing it, they are just using this guys code http://www.eejournal.com/archives/fresh-bytes/baxter-is-the-humanoid-robot-you-can-teach-without-programming/ [eejournal.com] .

Can Baxter (feminine of Baker) make twinkies?

Re:The Program is Right There in the Article. (2, Insightful)

Anonymous Coward | about 2 years ago | (#42016595)

The point is that this is an advancement in Human Robot Interaction, not that they did away with programming. I blame the article and slashdot for this misleading premise.

Re:The Program is Right There in the Article. (0)

Anonymous Coward | about 2 years ago | (#42016915)

Serious question:

What's the difference between learning and programming?

Re:The Program is Right There in the Article. (1)

Guignol (159087) | about 2 years ago | (#42017933)

You meant teaching I guess
The difference is quite clear if you see the extremes, that would be like asking what is the difference between white and black when we are observing shades of grey.
So the difference, as a teacher vs programmer , is your level of expectation toward your student / compiler
There is a joke that goes like "this damn compiler is doing exactly what I tell it to instead of what I want it to"
For the student, you do expect it to get what you mean instead of what you say
But of course, there is a grey area

Re:The Program is Right There in the Article. (2)

pitchpipe (708843) | about 2 years ago | (#42017271)

"Step 1... Say: 'TEST MICROPHONE'."

Step 2... Calm down, Say: 'Test Microphone' again

Response (1)

snaFu07 (1111263) | about 2 years ago | (#42018549)

"You have selected: slow and horrible."

SKIDDIES REJOICE !! (-1)

Anonymous Coward | about 2 years ago | (#42015673)

Because that's what they like !!

First (1)

djscoumoune (1731422) | about 2 years ago | (#42015675)

First teach those robots how to replicate themselves, then teach them how patent things they do.

Its still programming (4, Insightful)

Osgeld (1900440) | about 2 years ago | (#42015683)

its just the method that has changed

Corrected title... (5, Insightful)

davidwr (791652) | about 2 years ago | (#42015711)

Teaching Robots New Tricks With Non-Traditional Programming

There, fixed that for you.

GOOD! (0)

Anonymous Coward | about 2 years ago | (#42015899)

Isn't that still an important and useful qualitation, since the vast, vast majority of people can't, shouldn't and don't fucking want to write code?

And, I would argue, nor should they ever need to. Writing arbitrary invented languages, with awkward syntax and extremely-non-human thought-structures, to accomplish esoteric tasks has never been an intuitive or optimal way of getting shit done.

Re:GOOD! (3, Insightful)

Kjella (173770) | about 2 years ago | (#42016123)

Isn't that still an important and useful qualitation, since the vast, vast majority of people can't, shouldn't and don't fucking want to write code? And, I would argue, nor should they ever need to. Writing arbitrary invented languages, with awkward syntax and extremely-non-human thought-structures, to accomplish esoteric tasks has never been an intuitive or optimal way of getting shit done.

Trust me, everybody would loooooooove for the computer to take instructions like a human but it's not going to happen because of everything that's implicitly understood. So you can teach this computer to fold a shirt, if you hand it an XS shirt and an XXL shirt will it figure out that it must adapt the folding action to the size of the shirt? I bet you any 5yo would figure that out all on their own because they've understood the basic concept of folding a shirt. Take a fundamental sentence like "put the black and white pants on the top shelf" did we mean the black pants and the white pants, or the black and white checkered pants?

All that happens is that some really smart people will try really hard to write code that guesses what it was people actually meant but without actually knowing the context and purpose they'll fail miserably. Not to mention all the times they'd have to guess at do what I meant, not what I said because normal people when facing a choice between the reasonable and the absurd pick the reasonable like. Like say you have a knife and a chicken and you ask what to do with the knife and they answer "Cut the chicken to pieces and put it in the oven" most people will understand that you're to put the chicken in the oven, not the knife - even though you didn't ask what to do with the chicken.

Or the TL;DR version: Good luck, I don't think we'll be unemployed any time soon.

Seeds of understanding (0)

Anonymous Coward | about 2 years ago | (#42016585)

So... how did that 5yo come to "implicitly understand" so much that you never had to write code to teach her how to adapt the folding action to the size of the shirt?

DNA defines how to grow a brain, not really how it will understand the world it encounters, how it will respond to that world, or the methods of thought internally used to process either of those things. Is there really any reason why artificial creatures shouldn't follow biology's lead in the whole "learning" thing?

Would simplify the "implicit understanding" bit, provided that we didn't simply iterate up an approaching-to-perfect understanding baseline which is then used as the base over which to grow more specialized knowledge, skills, behaviors and such... isn't this really what culture already does for our wetware?

In the future, mental illness will go away before we get our flying cars.

Re:Seeds of understanding (2)

Kjella (173770) | about 2 years ago | (#42017039)

So... how did that 5yo come to "implicitly understand" so much that you never had to write code to teach her how to adapt the folding action to the size of the shirt? DNA defines how to grow a brain, not really how it will understand the world it encounters, how it will respond to that world, or the methods of thought internally used to process either of those things. Is there really any reason why artificial creatures shouldn't follow biology's lead in the whole "learning" thing?

Actually I'd say that's a pretty complex question how much the brain is "preprogrammed" by DNA, clearly all the inputs like sight, hearing, taste, smell and touch are hooked up in some fashion with some form of processing, some basic output like crying, a lot of reflexes and instincts and possibly also knowledge are considered innate and studies on twins vs siblings vs half-siblings vs adopted have shown considerable correlation on "how it will understand the world it encounters, how it will respond to that world, or the methods of thought internally used to process either of those things". For example religiousness has been shown to be a partly hereditary trait, even though the specific religion is a matter of upbringing.

But those things aside, sure the brain works on electrochemical processes not magic and pixie dust and there are projects underway to both simulate a brain and the contents in it. That said, even with today's fastest supercomputers we're not even close to simulating a full human brain with ~100 billion neurons - I think the best we've done is the Blue Brain project of ~1 million, so we're another 5 orders of magnitude away. There's a proposal for a 10 year, 1 billion euro "Human Brain Project" that may have a full brain simulator in 2023 out now. In short it might eventually happen as some LHC-class project, but it won't be folding shirts any time soon.

Oh and in case you were wondering, no you can't take whatever that 100 billion neuron brain has learned and easily transfer it to anything less, each neuron encodes parts of the learning. This is no longer a Von Neumann architecture, each neuron is it's own little processor with thousands of synapses and even the wiring of those is dynamic much like a FPGA. If you thought programming was hard before, you should really see it once we simulate the human brain. The programming model is so bizarrely complex we'll need entirely new tools to even understand the behavior, much less modify it. We'll not be happy black-box training computers the way we do people.

Yes, that's the hard problem (1)

Animats (122034) | about 2 years ago | (#42017389)

Trust me, everybody would loooooooove for the computer to take instructions like a human but it's not going to happen because of everything that's implicitly understood. So you can teach this computer to fold a shirt, if you hand it an XS shirt and an XXL shirt will it figure out that it must adapt the folding action to the size of the shirt?

Yes, that's the hard problem in learning from demonstration - working back from the demonstration to a model which can be generalized to new tasks. One way to approach this is by doing the same task with variations - guide the robot through folding various different shirts, and then use a machine learning system to separate the commonalities from the differences. There's been some progress in recent years in making this work. It's not very powerful yet, but it's getting to be good enough for teaching assembly line robots.

Re:Corrected title... (0)

Anonymous Coward | about 2 years ago | (#42020789)

Not so. Within the Industrial Robotics field, this IS the "traditional" way to program a robot.

You create movement paths and joint bends etc by moving (jogging) the robot arm to the designated position, hit a button on your control module to store the point (translation matrices for all joints) then you move to the next one.

This is exactly how Industrial Robots have been programmed for over 40 years,

Re:Corrected title... (-1)

Anonymous Coward | about 2 years ago | (#42021467)

Well, in that case, the article title was completely wrong.

Slip and fall into a robot's hand (0)

Anonymous Coward | about 2 years ago | (#42015713)

it will love you forever

Macro? or something more? (0)

Anonymous Coward | about 2 years ago | (#42015729)

Is this like the 'record a macro' function (which I'd nearly managed to forget) from VBA? Does the robot just replay to moves verbatim? Or is there something more going on?

Re:Macro? or something more? (0)

Anonymous Coward | about 2 years ago | (#42017867)

programming based on storing human-manipulated movements has been how robots used to build automobiles have been "taught" for years.... nothing to see here

Seriously (-1)

Anonymous Coward | about 2 years ago | (#42015749)

OK, I've fucked about everything that can be fucked. Yes I like the female, but I've done goats, dogs ("bitches"), cows, and several other non-human pussies. I've even done a few under-aged illegal alien Mexican chicks. One time a Russian guy told me I could do his 13 yo daughter for $150, but I passed, only because I only had $100 cash.

Seriously.

Re:Seriously (0)

Anonymous Coward | about 2 years ago | (#42017261)

and they all said "Is it in yet?"

Fold a shirt? (1)

qbitslayer (2567421) | about 2 years ago | (#42015835)

That's an amazingly complicated task. If the robot can be taught to do that, that's a pretty advanced robot. I wonder how anybody can teach a robot to fold a t-shirt unless you have a load of constraints on movements. In which case, you'd be better off folding your own t-shirt.

Re:Fold a shirt? (3, Funny)

oodaloop (1229816) | about 2 years ago | (#42015849)

I hear ya. I've found folding laundry so complicated, that I just have my mom do it for me and bring the folded clothes to my basement.

Re:Fold a shirt? (1)

R3d M3rcury (871886) | about 2 years ago | (#42016471)

Good point. What is this "Fold a T-Shirt" task of which you speak?

Re:Fold a shirt? (0)

Anonymous Coward | about 2 years ago | (#42017505)

My wife still cannot fold t-shirts properly after 35 years. Happily, though, she is great at working the washer and dryer and cooks delicious beans. Our Roomba does the floors. I suppose now we will be able to get an Olderfa for the clothes.

P.S. Dry cleaning shops are worth every penny you can spare.

mod dowN (-1)

Anonymous Coward | about 2 years ago | (#42016057)

Next step in Artificial Intelligence (0)

DaemonDan (2773445) | about 2 years ago | (#42016065)

As someone already mentioned, the robots obviously have to be programmed to learn new tricks via "non-traditional" programming. I still think that this is a big step in AI tech though, because these robots are programmed to add to/edit their own programming based on their interactions with the world. By being guided through certain actions they've never done before they learn how to do them on their own. It's still a far-cry from advanced AI, but it's an important step.

Nao (1)

Anonymous Coward | about 2 years ago | (#42016165)

Robot Nao from French Aldebaran Robotics does that already like it is last year's news and no tommorw Charlie..It has been know in robotics as a Gepetto programming...but then again if it doesn't come from "some_American_academic_institution" it didn't happen. Also Battle for Seatlle in 1992 started current world-wide revolution...right? Or at least something along those lines..

Great, only need a sexy skin now (0)

youn (1516637) | about 2 years ago | (#42016525)

then tons of slashdot people will want to program it to be their virtual girlfriend... I am sorry I don't have a car analogy for that yet :)

Re:Great, only need a sexy skin now (1)

Turminder Xuss (2726733) | about 2 years ago | (#42016965)

This will definitely accelerate the encryption/decryption cycle. Early adopters programming sexbots, roommates investing many pizzas hacking sexbot to behave ... differently ...

For a Second There (1, Funny)

Greyfox (87712) | about 2 years ago | (#42017021)

I read the headline as "Teasing Robots Without Programming."

"Hey Robot, look at you just sitting there! It's because you don't have any programming! I'm going to sharpie a penis on your case! Ooh! Don't like that? If you had some programming you could do something about it! And you'd have the ability to not like it!"

Oh dear, now someone's probably going to arrest me for cyber-bullying...

We already have these things... (1)

hyades1 (1149581) | about 2 years ago | (#42017103)

I'm not sure what the big deal is. We have these things already. We call them "infants" and even half-witted, mouth-breathing hillbillies can make them from the time they're about 12.

We have them in the industry (0)

Anonymous Coward | about 2 years ago | (#42018155)

This is how we teach industrial robots, in case some of you software guys weren't aware. "Teach them points" by driving them into position first. No traditional programming needed, necessarily - simple tasks can be expressed in tabular form. This is now harnessed with some fuzzy logic employing command interpreter and a speech recognifier.

Nice job nevertheless.

Agreed, the only innovation is the speech (1)

tlambert (566799) | about 2 years ago | (#42018911)

Yeah, Common practice.

It's pretty easy to teach points by running with external software that looks for a location deviation of .001 on an axis, and then moves the robot in that direction repeatedly until there's no long a deviation vs. where the servo thinks it should be on that axis.

I never got around to more than a test program to validate the idea for the Google Touchbot, but it's quite common practice in the industry to do that sort of thing with Toshiba CA-100 and similar robot controllers. All the code (in Python) that I wrote for doing everything that a teaching pendant could do for one of these systems is fully published, and it's about 30 lines of Python to do this sort of teaching using a keyboard to put it in the mode and to record the points. About the only innovation here is voice commands, which is not all that innovative, since you have to physically be at the robot anyway in order to exert the force against one or more of the servos.

Frankly, in the end, just using the keyboard was faster, which is why I never more than prototyped it, but since the robot I was programming was intended to test touch sensors, the feedback from a known good sample of the sensor being tested to ensure that it was getting the right input for the test was more important, and hand positioning was not as accurate as keyboard based positioning when you wanted a specific amount of capacitive coupling from the "finger(s)".

"Repeat for one to one mil...one hundred billion" (1)

Impy the Impiuos Imp (442658) | about 2 years ago | (#42018725)

(Guides robot arm) "Program Move Name 'Jerk'."

"What are you doing in there?"

"Nothing!"

BEAM Robotics (0)

Anonymous Coward | about 2 years ago | (#42020995)

Search BEAM robotics for anything that can be programless (and even then one can strech the definition of programming to take into account networks).

Check for New Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>