Tuesday, August 11, 2009

Robots to get their own operating system


THE UBot whizzes around a carpeted conference room on its Segway-like wheels, holding aloft a yellow balloon. It hands the balloon to a three-fingered robotic arm named WAM, which gingerly accepts the gift.

Cameras click. "It blows my mind to see robots collaborating like this," says William Townsend, CEO of Barrett Technology, which developed WAM.

The robots were just two of the multitude on display last month at the International Joint Conference on Artificial Intelligence (IJCAI) in Pasadena, California. But this happy meeting of robotic beings hides a serious problem: while the robots might be collaborating, those making them are not. Each robot is individually manufactured to meet a specific need and more than likely built in isolation.

This sorry state of affairs is set to change. Roboticists have begun to think about what robots have in common and what aspects of their construction can be standardised, hopefully resulting in a basic operating system everyone can use. This would let roboticists focus their attention on taking the technology forward.

One of the main sticking points is that robots are typically quite unlike one another. "It's easier to build everything from the ground up right now because each team's requirements are so different," says Anne-Marie Bourcier of Aldebaran Robotics in Paris, France, which makes a half-metre-tall humanoid called Nao (pictured).

Some robots, like Nao, are almost autonomous. Others, like the UBot, are semi-autonomous, meaning they perform some acts, such as balancing, on their own, while other tasks, like steering, are left to a human operator.

Also, every research robot is designed for a specific objective. The UBot's key ability is that it can balance itself, even when bumped - crucial if robots are to one day work alongside clumsy human beings. The Nao, on the other hand, can walk and even perform a kung-fu routine, as long as it is on a flat, smooth surface. But it can't balance itself as robustly as the UBot and won't easily be able to learn how.

On top of all this, each robot has its own unique hardware and software, so capabilities like balance implemented on one robot cannot easily be transferred to others.

Bourcier sees this changing if robotics advances in a manner similar to personal computing. For computers, the widespread adoption of Microsoft's Disk Operating System (DOS), and later Windows, allowed programmers without detailed knowledge of the underlying hardware and file systems to build new applications and build on the work of others.

Programmers could build new applications without detailed knowledge of the underlying hardware

Bringing robotics to this point won't be easy, though. "Robotics is at the stage where personal computing was about 30 years ago," says Chad Jenkins of Brown University in Providence, Rhode Island. Like the home-brew computers of the late 70s and early 80s, robots used for research today often have a unique operating system (OS). "But at some point we have to come together to use the same resources," says Jenkins.

This desire has its roots in frustration, says Brian Gerkey of the robotics research firm Willow Garage in Menlo Park, California. "People reinvent the wheel over and over and over, doing things that are not at all central to what they're trying to do."

For example, if someone is studying object recognition, they want to design better object-recognition algorithms, not write code to control the robot's wheels. "You know that those things have been done before, probably better," says Gerkey. But without a common OS, sharing code is nearly impossible.

The challenge of building a robot OS for widespread adoption is greater than that for computers. "The problems that a computer solves are fairly well defined. There is a very clear mathematical notion of computation," says Gerkey. "There's not the same kind of clear abstraction about interacting with the physical world."

Nevertheless, roboticists are starting to make some headway.The Robot Operating System or ROS is an open-source set of programs meant to serve as a common platform for a wide range of robotics research. It is being developed and used by teams at Stanford University in California, the Massachusetts Institute of Technology and the Technical University of Munich, Germany, among others.

ROS has software commands that, for instance, provide ways of controlling a robot's navigation, and its arms, grippers and sensors, without needing details of how the hardware functions. The system also includes high-level commands for actions like image recognition and even opening doors. When ROS boots up on a robot's computer, it asks for a description of the robot that includes things like the length of its arm segments and how the joints rotate. It then makes this information available to the higher-level algorithms.

A standard OS would also help researchers focus on a key aspect that so far has been lacking in robotics: reproducibility.

Often, if a team invents, say, a better navigation system, they will publish the results but not the software code. Not only are others unable to build on this discovery, they cannot independently verify the result. "It's useful to have people in a sense constrained by a common platform," says Giorgio Metta, a robotics researcher at the Italian Insitute of Technology in Genoa. "They [will be] forced to do things that work, because somebody else can check. I think this is important, to make it a bit more scientifically oriented."

ROS is not the only robotic operating system vying to be the standard. Microsoft, for example, is trying to create a "Windows for robots" with its Robotics Developer Studio, a product that has been available since 2007.

Gerkey hopes to one day see a robot "app store" where a person could download a program for their robot and have it work as easily as an iPhone app. "That will mean that we have solved a lot of difficult problems," he says.

No comments:

Post a Comment