Common operating system for robots



Roboticists at the recent International Joint Conference on Artificial Intelligence discussed the frustrating lack of a common operating system among today's robots. From New Scientist:
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..."

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.
"Robots to get their own operating system"

Discussion

Report this comment

Why are they re-inventing the wheel every time? Because each robot is highly specialized for its task, even if it is general purpose.

Some robots aren't much more than a toy. Others are 12 PCs vomiting data at each other via ethernet. My plan for my lawn-mowing robot involves relays and no computers.

Something like a ROS may actually be pretty handy, depending on the robots you're building. If many of them are the same or similar, all the better.

Report this comment

Skynet approves!

Report this comment

Just use Linux. (TM)

I know for a fact that it is already being used for some robotics research. It already runs on a wide variety of microprocessors (ARM, Atom, DSPs, etc), and it can be adapted for real time processing. Creating another "OS" and an "App Store" is just marketing gobledygook. Every Linux distro has an "App Store" and every app in that store is free (RPM, DEB, Ebuild, repositories). Seriously, this guy just wants to sound cool to get funding.

Lame.

Report this comment

Yeah was going to make the obvious skynet joke, but actually this has some parallels with the game industry.

Everyone reinventing the wheel, every time.
Some games needing to because they're so different. As soon as you standardize something, it become stagnant.
If you don't standardize, you are a "risk".

Report this comment
#5 posted by Anonymous, August 10, 2009 8:42 AM

A sophisticated version of this could be a backbone to the singularity event. A program that can tabulate the environment and recognize its functioning parameters could also be used in systems that aren't considered robotic (think a sub or plane or even a car). Also it will allow people to make a robot and not know more than how its mechanics work, and it could still be as nimble as its sensors would respond. All that it needs is a 'personality' application so that it knows what kind of responses are appropriate to its stimuli.

Report this comment
#6 posted by Anonymous, August 10, 2009 9:00 AM

A common RTOS (not robots OS!) would require common parts and/or parts you really don't need. And I would bet some huge entity to enforce standards.

Builders would probably object. Sorry, not every robot requires RTOS. Like @1 Drew from Zhrodague commented, "Because each robot is highly specialized for its task, even if it is general purpose." People are not going build a say a temperature sensing walking robot that goes to the same location every day to take temperature samples. They'll just build a remote station there and have the data sent back. MUCH MUCH cheaper.

Okay, that's probably a dumb example, but the point is, at the moment, it's cheaper and much easier to utilize a simple design without RTOS to get the job done. Until things have gone really cheap, where adding additional complexity with a common RTOS to your robot is no additional cost, I really don't see this happening. I'm not saying it's a bad idea, just asking why use a complex design, where a simpler one is cheaper.

Report this comment
#7 posted by Anonymous, August 10, 2009 9:02 AM

Having used ROS, it is not really an OS. A more appropriate description would be a middleware system for node based processing that runs on top of Linux. Many nodes are provided that do things like sensing, mapping, and navigation.

Report this comment

Operating System is a bit of a misnomer. ROS is more of a robotic middleware package than an operating system. It is written using a combination of C++ and Python to work on most POSIX compliant operating systems.

Report this comment

Seems to me like they re-invent the wheel because the old wheel doesn't roll exactly right. The danger of standardization is also stagnation. Right now, there are certain things NONE of these "wheels" can do. If we insist we all use the same one, we might never accomplish those things.

Report this comment
#10 posted by Anonymous, August 10, 2009 11:08 AM

why everybody says that you must reinvent the wheel with every new identical project you start, it amazes me how many people doesn't understand how open source works...

Report this comment

There's actually really good reasons to *not* standardize on one operating system - the security issues of a software monoculture have been well understood for years. Basically, if there's only one system in use, then if somebody finds a hole, they can whack *all* of them.

In other words, it's just asking for a *real* botnet to be formed.

(I can't believe nobody else has said that already ;)

Report this comment
#12 posted by Anonymous, August 10, 2009 5:15 PM

If they want an open, common standard system for robot middleware, why are they doing their own instead of joining existing open source efforts in Europe and elsewhere? They're adding to the number of incompatible systems, not reducing them. It looks a fair bit like NIH syndrome in action.


Report this comment
#13 posted by Anonymous, August 10, 2009 5:59 PM

I've seen this tendency first-hand. In such situations I'm usually a partisan of the player/stage package. It has some cool points of flexibility, i.e. network transparency (like you see in X), allowing you to transparently do the heavy processing on a machine more powerful than you can cheaply fit on a mobile robot.

Report this comment
#14 posted by Anonymous, August 10, 2009 6:54 PM

isnt that kinda what Microsoft has offered for the last 3 years http://www.microsoft.com/robotics

Leave a comment

Name:
Anonymous