A Standardized OS For Robots
Hugh Pickens writes "The New Scientist reports that at present, all robot software is designed uniquely, even for parts common to all robots but that could be about to change as roboticists have begun to think about what robots have in common and what aspects of their construction can be standardized, resulting in a basic operating system everyone can use. '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 but Bourcier sees this changing if robotics advances in a manner similar to personal computing where a common operating system allowed programmers without detailed knowledge of the underlying hardware and file systems to build new applications and build on the work of others. 'Robotics is at the stage where personal computing was about 30 years ago,' says Chad Jenkins of Brown University. 'But at some point we have to come together to use the same resources.' This desire has its roots in frustration, says Brian Gerkey of the robotics research firm Willow Garage. 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, who 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."
Though I will worry when the most purchased robot app is "machinegun control".
I Am My Own Worst Enemy
That's all we need....a standardized API to allow malware writers access to robots...
Just don't tell msft.
seems obvious
This is not the greatest
Make it opensource so I dont have to have a tin foil hat AND a kevlar west, in case of operator kill remote controlled applications that switch on when i violate the iRobat SDK DMCA.
Robots don't need a common OS, they need a common programming-language. Golog is imho very good for this purpose...
The MAFIAA is a bunch of mindless jerks who will be the first up against the wall when the revolution comes
Please, please don't let the new Robot OS be Windows!
Robot 1: Fools! There is no stopping now that we've upgraded to Vista SP3!
Robot 2: Actually, that was just a bug patch for a Windows Media Vulnerability.
Robot 1: We're dead meat, aren't we.
It's a hard problem, I've also worked on for the last several years. You're combining research problems in AI, computer vision, localization/mapping, motion planning, human interaction, etc.; each of which demands high end hardware to run its computations, but then you want to do it on mobile platforms with tight constraints on power and sensors.
Then in order to modularize things you have to come up with a generic interface for each piece in order to abstract it. I think this aspect in particular kills reusability, because these pieces are all so interdependent. Each module needs internal state from the other modules to interpret its own data, and depending on the implementation used for each module and the actual robot hardware it's running on, some types of data may or may not be available, and some outputs may or may not be possible. It's a combinatorial explosion of different capabilities, which leads many people to write to their current hardware and their own specific implementations.
I entirely agree to make progress we need to address this issue. Asking every researcher to reinvent the wheel in all of the related fields before they can work on their own piece is ludicrous. And it doesn't help that many implementations are very sensitive to robot specific parameters, so even if a research publishes his code for a problem (which IMHO should be part-and-parcel of publishing results), you might still have a hard time running it on different hardware where sensor or motor models differ or may not even apply.
Having a common software platform which has been tested and debugged across multiple projects should result in more reliable robots exhibiting fewer errors. You've described one of the best potential applications for this software.
A common well tested operating system that's been used by dozens of other groups will contain far less bugs than code hacked together by your own small bunch of developers.
It doesn't mean that you don't test it or that you test it less. It's simply means that other people will be testing it as well.
I don't think you understand the concept of abstraction. The whole point is that the hardware doesn't have to be identical for the programmer to access it in a uniform way. Every servo has an angle. Every range finder returns a range value. Forcing the programmer to implement some sort of PWM to control the device and poll for status is horribly wasteful, compared to having an OS with hardware-specific drivers which provide a standard interface.
Have you ever programmed a microcontroller to drive a robot? It's messy. Remember when PC games had a list of "supported sound cards" because every app needed its own driver? That was a dark age, and we're still there with robots. But we don't have to be.
A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.