Who built the first programmable robot? It's almost impossible to tell, and most people would put good money on Leonardo da Vinci. But now Noel Sharkey, a computer scientist at the University of Sheffield, UK, has traced the technology way back to ancient Alexandria.
In about 60 AD, a Greek engineer called Hero constructed a three-wheeled cart that could carry a group of automata to the front of a stage where they would perform for an audience. Power came from a falling weight that pulled on string wrapped round the cart's drive axle, and Sharkey reckons this string-based control mechanism is exactly equivalent to a modern programming language. He describes it in this week's issue of New Scientist magazine.
To prove it could work, the magazine's tech writers took up the challenge and constructed their own version of Hero's cart. We're certainly not the first to try: in 2003 a bunch of engineers at a conference in Colorado spent a few hours making a crude version using Lego. You can read about their efforts here (4.6 MB pdf).
Our cart was made from a child's scooter, a broom handle, wood, string, and lead weights from an old sash window. And, fortunately for us, Hero left some advice in his writings: friction is a problem, he warned, so you'll need a smooth floor to run it on. He also recommended using pre-stretched string, and even gave us the cart's measurements: one cubit long, four palms wide and three palms high - that's 45cm long, 35cm wide and 23cm tall. After a bit of tweaking, we succeeded in making our cart move forwards, backwards, and turn.
Here it is in action:
And now we're issuing a challenge: can you to do better? Can you build a version of Hero's robot that can perform as well as the inventor's original? Send us a video and you could win a prize.
All comments should respect the New Scientist House Rules. If you think a particular comment breaks these rules then please let us know, quoting the comment in question.
I'm not sure this is exactly a new discovery. I watched a documentary about this device a couple of years ago.
Thank you for not showing us the "robot" in action. After all that build-up on a rather significant bit of science and creativity: two seconds of it running. Thanks for the disappointment.
3rd paragraph... We're certainly not the first to try: in 2003 a bunch of engineers at a conference in Colorado spent a few hours making a crude version using Lego. You can read about their efforts here (4.6 MB pdf).
And that is a great recreation, keep up the good news and continuing to search for true science.
All of the haters please go back to criticizing others for trying something you cannot..
Rysiek said: "short performances? guys, why not use block and tackle and greater weights?"
I was just going to suggest this, and you beat me to it. Heavy weights with block and tackle, geared down, provide the equivalent of of _very_ tall drop without the vertical space requirement. Bravo!
"Heavy weights with block and tackle, geared down, provide the equivalent of of _very_ tall drop without the vertical space requirement."
But this also puts more weight on the axles, with a corresponding increase in friction. Modern bearings can probably (licks finger and holds up in the wind) compensate for this, but this approach may not have been available to Hero in a era before precision bearings.
the guy in the video is incorrect, this "robot"'s language is nothing like modern robots, most simply because there is no way to make conditional movements
It depends on your deffinition of "robot" (originally, a Polish word meaning "indentured servant" first coined to be mechanical man in the play Rowsum's Universal Robots). The Japanese concider any automated mechanical appendage to be a "robot." Even the automobile assemply lines which blindly repeat tasks with no conditioals.
The Jacard Loom was concidderd programable, yet it had no conditions. Does that mean Ada Lovelace Babbage was not a "real" programmer?
There are plenty of modern mechanical actuators which are programmable - that is, you can change their behavior without rebuilding them - yet do not make decisions.
The only relevant question is... can you make a Beowulf cluster of this device? :-)
did this thing have a purpose? could I not strategically place clumps of dirt on a hill, roll a rock down it, and given the "programming" of the dirt call the hill a robot?
It is a programming language. This robot is unlike modern robots because it lacks sensors in which to conditionally make decisions about its environment.
Maybe you could make it go longer with gears. Just make the "steering rope" go around a cylinder which is connected to a small cog. connect the weight to a bigger cog and put the cogs together - tadaam. you'll also need to make the weight heavier by the ratio of the cogs if you want to achieve the same speed for the cart.
I believe you could, in staying with the 'era' of technology, produce a much longer working robot using a bow and string arrangement powering a real that pulls in a long piece of string that in turn wraps around the drive shaft. It may even be possible to have many bows that are triggered sequentially. This should provide a long run with minimal weight.
With a simple boiler to create steam power you could supply an "endless" amount of power. Of course then the amount of string then becomes the problem - where gears would come in handy. All of this would have been easily available to the people of the time - I assume they just didn't have a need for anything that complicated.
Just because you can do something complicated, unless you need to - KISS.
"It depends on your deffinition of 'robot' (originally, a Polish word meaning 'indentured servant' first coined to be mechanical man in the play Rowsum's Universal Robots)."
I'm pretty sure it was coined from the Czech word for "forced labor", possibly "indentured servant"
This is not "fairly similar to the kinds of languages used in modern programming." Just because it can go forward, backward, left, and right does not mean it is programmable. It would be easy to build a wind-up toy that had a system to do this. It lacks any sort of data input, so it cannot make decisions based on its environment, and it lacks the ability to loop, both because it cannot rewind the string and because the string will eventually run out. It's still cool, but this is "modern programming" inasmuch as the fd, bk, lt, and rt statements in Logo (and nothing else) are "modern programming".
Come on people. You compare it to modern stuff and say "It is not pregramable" This was 60CE. Iron was relatively new. The most advanced piece of military hardware was a chariot to take new fighters to the action and return. People walked everywhere and travelled very little. The height of schollarship was in the Allexandria Library and was written BY HAND on papyrus scrolls. Get over yourselves and think about how wonderful this man's brain was. He is the first one to think of it. What have YOU done that NO ONE has EVER done before. He is MY HERO.