(New Scientist Via Thomson Dialog NewsEdge) "When Lionardo was at Milan the King of France came there and desired him to do something curious; accordingly he made a lion whose chest opened after he had walked a few steps, discovering himself to be full of lilies."
Giorgio Vasari, The Lives of the Most Excellent Painters, Sculptors and Architects
Constructing a mechanical lion that could walk, let alone present flowers to the king, can't have been a simple task back in 1515 even for a genius like Leonardo da Vinci. How he managed this feat remained a mystery until 2000, when US robotics expert Mark Rosheim came to a surprising conclusion.
Pulling together fragments of notes and drawings, Rosheim worked out that the lion was almost certainly powered by a clockwork cart illustrated in da Vinci's Codex Atlanticus
Intriguingly, Rosheim suggested that the cart's steering mechanism was controlled by arms attached to rotating gears. With this design it would have been possible to control the automaton's movements simply by changing the position of these arms in other words, Rosheim argues, da Vinci's lion was not only clockwork, it was also programmable.
This astonishing idea raised some intriguing questions: was da Vinci influenced by an earlier design? And if so, how far back in history can we trace programmable robots?
In search of answers I followed the technology back through medieval Europe to the Islamic world, where I have found evidence of an even earlier programmable automaton, made in Baghdad by the brilliant 13th-century engineer Ibn Ismail Ibn al-Razzaz Al-Jazari. He created a veritable boatload of programmable robot musicians effectively a floating jukebox designed to entertain nobles as they drank and lounged at royal pool parties.
Yet the trail doesn't stop there. It led me even further back past the automata of the Byzantine court and ancient Rome to ancient Alexandria. It was here that Hero, one of the greatest Greek engineers, constructed a programmable robot that pre-dates da Vinci's by 1500 years. Its control system turns out to be unique; more like knitting than a computer circuit. Nevertheless, there is clear evidence linking Hero's design to the programming languages used in, say, Honda's latest humanoid robot Asimo.
Plug in and playSo what exactly do we mean by "programmable"? A program is simply a set of instructions that tell a machine what to do. They don't have to be written out; they can be hard-wired into a machine. The important point is that these instructions can be changed without having to dismantle or rebuild the entire mechanism in other words, the program has to be separate from the rest of the machine's workings.
An old-fashioned music box is a programmable machine, for example. Inside there is a drum with cylindrical studs jutting out from its surface. As the drum rotates, the studs strike the teeth of a metal comb to create a tune. The position and spacing of the studs provides the programming code, telling the machine which notes to play, in what order and with what rhythm. To change the tune you need only replace the drum.
Da Vinci's robot used an even simpler mechanism to achieve the desired effect. The lion relied on two circular wheels with wooden arms or petal cams. As the wheels rotated, the arms knocked against a steering mechanism, making the lion turn either left or right. To make it follow a particular path da Vinci could have programmed the lion by altering the position of the wooden arms on the wheels .
Many cultures have made use of cams since the earliest machines from ancient Greece and China. However, in nearly all examples we know about the cams appear to have been an integral part of the design and, apart from da Vinci's cart, there was no way to extract or alter them without a major rebuild.
Eventually, however, I stumbled on a stunning example of a programmable robot that relied on a mechanism more like that of a music box. This robot was Al-Jazari's "drinking boat", which he wrote about in 1206 in The book of knowledge of ingenious mechanical devices
On board the boat were four mechanical musicians: two drummers, a harpist and a flautist. Al-Jazari described how they would burst into life every half-hour and play music for a few minutes, continuing in this fashion for several hours without intervention.
Their motion appeared to depend on a primitive version of the studded cylinder in a music box. Running down the length of the boat, beneath the musicians, was a cylindrical beam with pegs protruding from it. As the beam rotated, the pegs would strike levers connected to the limbs of the musicians, creating life-like motion. The beam was driven by a small waterwheel, turned by water from a tipping bucket, which was refilled automatically every 30 minutes by drips from a reservoir on board the boat.
This arrangement seemed to me an ideal candidate for a programmable device. Drill holes all around the beam and the musicians could be reprogrammed to create entirely different rhythmic patterns simply by rearranging the pegs. In 2006 I built a model of one of the boat's percussionists to demonstrate how this could work.
Hunting further back than Al-Jazari proved much more of a challenge. Apart from some fragments of an 11th-century treatise written in Andalusia by another engineer Ibn Khalaf Al-Muradi, and the 9th-century Book of Ingenious Devices
, every description of machines from the Islamic world, the Byzantine empire and from China and India lacked the mechanical details that would have shown whether or not they might have been programmable.
Fortunately, the engineers of ancient Alexandria were more forthcoming about their designs. A considerable amount of their writing has been preserved, including works by the three great automata-makers: Ctesibios, Philo and Hero. Rather than programmable cams, most of their automata were driven by moving water, falling weights or the displacement of air. One description in particular stands out: a mobile theatre invented by Hero in the 1st century.
Hero was a prolific inventor, devising everything from a steam-powered spinning sphere called the aeolipile to a vending machine that dispensed a shot of holy water in exchange for a coin. His mobile theatre was more complex. It was said to roll automatically across the floor on wheels to face an audience. Then it paused. At this point the upper half of the machine, which depicted a shrine to Dionysus, the Greek god of wine, came to life. This featured six automata, including Dionysus himself along with female worshippers, that performed a short show. When the show had finished, the vehicle trundled off stage.
This certainly seems like a candidate for a programmable machine, and a translation of Book I of Hero's Peri automatopoietikes
(on automata-making) supplied the answer. This theatre was indeed a programmable machine, but not in quite the way I had imagined; there are no cams involved. Surprisingly, Hero used a much more explicit programming strategy than either da Vinci or Al-Jazari. His method of programming is unique in the history of robots. It relied on string.
The base for his mobile theatre was a simple automaton much like Leonardo's cart, with two wheels at the front and a single wheel centred at the back. The power source was a falling weight which was attached by twine, via a pulley, to the front axle. Winding the twine around the axle raised the weight up the inside of a hollow cylinder. When the weight was released, it pulled the twine and the wheels turned. This arrangement would move the automaton very quickly forward for a very short distance.
One of the problems inherent in this design is that to keep the machine moving for any length of time, you must either raise the weight to a considerable height or somehow regulate its descent. It is here that Hero's genius shines through. He opted to rest the weight on a cylinder full of wheat grains and made a small hole in the bottom so they could trickle out. Now the weight descended more slowly, releasing its energy over a relatively long period.
Each loop of twine wrapped around the axle would propel the machine forward by one wheel revolution. But Hero had also found a way to make his robot move backwards. He stuck a peg into the centre of the axle at right angles so he could wind the string in one direction, then wrap it around the peg and continue to wind around the axle in the opposite direction.
Hero's idea was so elegant that even as I read it, the hairs on the back of my neck stood on end. It also struck me that this mechanism provides the basis of a simple programming language. For example, winding the string around the axle 10 times in one direction, then passing it around the peg and winding it five times in the other can be represented as Forward (10), Backward (5).
It also turned out that Hero had devised a pause command for his robot that is a function of time. He simply pulled lengths of string off the axle and stuck them either to the axle or to the side of the robot using wax. When the weight pulled on the wax it would release the extra string, so the robot would pause while the slack was pulled in.
Clever though this mechanism was, the robot could only move in straight lines. The control unit in most modern robots uses individual commands for each wheel or motor Forward_leftwheel (4) and Backward_rightwheel (2), for example and this is what gives these machines great freedom of movement. Yet Hero's book reveals that he was ahead of the game with yet another elegant solution. He just split the front axle in two and attached one end of the string to each piece so that they could move independently . Everything that could be done with the one axle could now be done with each half of the split axle. Hero even explained how this could be used to drive the robot in circles or in snake-like patterns. The programming possibilities appear endless.
But can we be sure that any of these machines were really intended to be programmable? There's little doubt that the machines of da Vinci and Al-Jazari could have been programmed, and it seems likely that both engineers had a good idea of how they wanted their automata to perform. They would also have been able to fine-tune the behaviour of the mechanisms in their machines by reshaping cams or moving pegs if they had a set movement or rhythm pattern in mind. However, this is not quite the same as programming, and unfortunately there is no evidence in their writings or elsewhere that they actually programmed their robots to perform specific movements.
On the other hand, having read Peri automatopoietikes
carefully, there is no doubt in my mind that Hero's intention was clear. His writing makes it obvious that he designed his robot to be programmable to suit different theatrical purposes. At one point he even describes how to program complex behaviour by wheeling the robot backwards from the end point through each required movement of the performance to the start, letting the twine wind itself appropriately around the axles. Modern programmers use a similar method to teach robots to paint vehicles on factory assembly lines.
There is also the vexatious question of whether Hero's machine was the first. It is hard to believe that there were no earlier designs. In his book Hero hinted that he was giving us something new in an already established theatrical tradition, but he complained that earlier writers were not clear enough to enable others to copy their robots. He made explicit references to Philo of Byzantium's lost book on automatic theatres from 200 BC, for example. Elsewhere there are references to even earlier automata for instance, in the 4th century BC Aristotle wrote about automatic puppets and a child's wagon that could move in a circle, describing them as if they were commonplace.
The programmable self-propelled machine might even go back as far as the 8th century BC, according to Homer's Iliad: "[Hephaestus] was making twenty tripods that were to stand by the wall of his house, and he set wheels of gold under them all that they might go of their own selves to the assemblies of the gods, and come back again marvels indeed to see." It looks like the search for the earliest programmable robot is far from over.
Noel Sharkey is professor of artificial intelligence and robotics at the University of Sheffield, UK. His forthcoming book is called The Tin Man
Leonardo's LionNoel Sharkey The cart that formed the basis of Leonardo da Vinci's lion was a three-wheeler with two drive wheels at the front and one at the back for steering. From the view in Folio 296v of da Vinci's Codex Atlanticus
, his cart appeared to have two large gear wheels at the front. These seemed to sit on cylinders containing coiled clockwork springs that would slowly unwind, turning the gears and driving the robot forwards.
The clever bit, worked out by US robotics expert Mark Rosheim, is how the robot could be programmed to steer automatically. As the gear wheels rotated, they turned smaller wheels which had raised wooden arms attached to the edges. These pushed against a second mechanism shaped like a pair of scissors. Moving the long ends of the scissors left or right turned the steering wheel accordingly.
This meant the size and spacing of the arms determined the course the robot steered. These could easily be changed to create different movement patterns making it programmable.
Cams could also be used to create lifelike movements in an automaton, such as a singing mouth or a nodding head. The trick is to create an irregularly shaped cam and use a linking rod called a cam follower held in contact with its surface to push or pull the automaton.
In this case the cam acts as both the program and a memory device that stores the required behaviour. In a typical modern computer the memory and the program are separate.
Copyright 2007 Reed Business Information - UK. All Rights Reserved.
Privacy for IoT
Privacy for IoT
Industrial IoT Track
Autonomation and Predictability in IIoT
Autonomation and Predictability in IIoT