Teaching Robots New Tricks Without Programming
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."
"Without programming?"
Bullshit. Look in the article, in the picture in the article.
Program's right there, on the right side.
"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.
First teach those robots how to replicate themselves, then teach them how patent things they do.
its just the method that has changed
Teaching Robots New Tricks With Non-Traditional Programming
There, fixed that for you.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
it will love you forever
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?
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.
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.
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.
Enjoy post-apocalyptic and singularity science fiction? Check out www.demonarchives.com, a new online graphic-novel.
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..
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 :)
Never antropomorphize computers, they do not like that
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.
"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...
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
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.
I've calculated my velocity with such exquisite precision that I have no idea where I am.
and they all said "Is it in yet?"
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.
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.
"You have selected: slow and horrible."
(Guides robot arm) "Program Move Name 'Jerk'."
"What are you doing in there?"
"Nothing!"
(-1: Post disagrees with my already-settled worldview) is not a valid mod option.
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)".
Search BEAM robotics for anything that can be programless (and even then one can strech the definition of programming to take into account networks).