E Pluribus Unum…robot? The International Joint Conference on Artificial Intelligence (IJCAI) saw a lot of amazing robots and computer programs. It also saw another round of discussions about the developing robotics operating system (ROS). While robotics experts the world over slave to make their creations compatible with humans, few are concentrating on how to make robots work well with each other. In fact, most research robots have zero capacity to receive programming from third parties or from a central database of commands. We live in a world where every robot is an island unto itself. The ongoing growth of ROS may change all that. Check out the compilation video of IJCAI from New Scientist after the break.

The WAM robot arm from Barrett Technology works well with humans, but where are the robots that play well with others?
The WAM robot arm from Barrett Technology works well with humans, but where are the robots that play well with others?

Right now, ROS exists mainly as packages of software code on sourceforge. From these humble beginnings, developers are hoping to create the prototypes of a widespread easy to use operating system. Teams at Standford University, MIT, and the Technical University of Munich, Germany are all making major contributions and helping lay the ground work for ROS development. Right now ROS has packages that address hardware abstraction, remedial device control, communication between programs, and code management. It’s a beginning that, come to think of it, isn’t really that humble anymore.

Why do we need ROS? When you program robots on your own, you have to build each element of code pretty much by yourself. If you build a spider-bot to spin webs, you have to figure out to operate eight legs even if someone else has already built their own awesome leg code. ROS would allow you to focus just on web-spinning, confident that your software could interface well with someone else’s software through the operating system. ROS would change the world of robotics from a bunch of researchers working on their own problems to a community of researchers working on each other’s problems.

If the concept of a ROS seems familiar, you may have already heard of it through Willow Garage. This silicon valley based robotics company has long championed open source software for robots. In fact, their PR2 bot is expressly built to serve as a general all-purpose research bot so that newly emerging robotics labs don’t have to start from scratch. If you check around the ROS database on sourceforge you’ll notice that a good portion of the code packages are authored by Willow Garage. I wouldn’t say that ROS is Willow Garage’s baby…but they were definitely one of the wet nurses.

Coincidentally, a large competitor for ROS is the Robotics Developer Studio (RDS) produced by DOS creator Microsoft. There are other similar software suites such as OROCOS, Player, MOOS, and YARP. All of these projects aim in part to create a new era of joint development between researchers. Currently, few robotics programs are able to test or verify the work of other groups. Code isn’t shared and even if it were, how would you test it without some way of standardizing the hardware? ROS, or RDS, would allow different teams to quickly review and adapt each other’s code. Fostering both a sense of growth and competition.

Developers working on the same platform isn’t new. Bug Labs develops open source hardware. OpenCog develops open source artificial intelligence. Even without being open source, Apple allows third party developers on the iPhone which has lead to the creation of some truly amazing and practical applications. If someone developed a business model around using ROS, then we could see a rapid growth in robotics just as we have with apps. Perhaps better, since the ROS could be developed by anyone.

I encourage those interested to browse the ROS wiki and learn more about how the different code packages are developed, distributed, and refined. Burgeoning robot programmers will find all the information you need to make your code ROS ready. For the rest of us, imagine a time when ROS will allow you to build a robot using off the shelf parts and software – maybe like a plug and play computer with all their bugs and glory. Or think about the kind of robots that humanity will make when anyone can build off someone else’s research. That’s the ROS dream: out of many developers, one amazing set of robots.