Currently progress in robotics is mostly a matter of putting together elements that already exist. Take a standard robot, add character recognition and speech synthesis and you have a robot that can read a bedtime story...

Researchers at the University of Pennsylvania have taught a robot to recognize text as it moves around and to read the text out loud. There have, of course, been a number of robots designed specifically for reading books, and a robot from the UK was demonstrated last year that moves around, recognises and reads text.

What’s different about the robot at the University of Pennsylvania is that it wasn’t designed as a reading robot, it started life as just a ‘normal’ non-reading robot that the researchers took and taught to read.

The GRASP PR2 can deal with a variety of fonts and even hand-written text, and can also work with text at different angles. You can see the robot being put through its paces by graduate student Menglong Zhu in this video:

Sometimes the pauses seem almost to be for effect, but we know that it's more to do with processing time. It could also become very annoying as it trundles down a corridor reading everything and anything out loud. Of course you could, and people have, implement the same idea using a static camera and machine but seeing the robot move around, locate text and read it has the additional dimension of "personality".

Don't you just want to scrawl some graffiti and see what happens?

More seriously a roving platform that can read open up the possibility of a robot gathering data on its world. Perhaps this plus some semantic processing techniques is the way that robots can learn. If you have seen the movie Short Circuit (1986) then this might seem all too familiar. Perhaps PR2 should be programmed to shout "Input" every time it sees something to read!

The programs behind the reading ability are open source and will be shared through the Robot Operating System (ROS) library, so if you have an old illiterate robot sitting around (as you do), you can check out the code (http://www.ros.org/wiki/literate_pr2) and teach your own automaton to read.