ROS, the Robot Operating System. So robots can help humans be more generous. It is a completely open-source, free, meta-operating system for people to use, improve, change and commercialize upon. Its authors’ primary goal is to enable code reuse in robotics research and development, and have thus provided services one would expect from an operating system, including hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management, all for free.
Before ROS, each robot has been more or less unique, each one built with its own operating systems. The authors of the OS aim to change that by creating a “space that allows programmers to code functions for robots without having to know the robot intimately, a type of programming that can then be adapted and tailored to individual robots.”
Its authors, Willow Garage, a robotics research institute and the Stanford Artificial Intelligence Laboratory, are strongly committed to developing open source and reusable software with the help of an international robotics community. Under this philosophy, the group shares both research and core libraries they are working on, including drivers and novel algorithms, as well as integration for many popular open source robotics libraries.
The development of the Robot OS, released on August 3, 2010, is an ongoing joint effort within the robotics community. It was originally developed in 2007 under the name Switchyard by the Stanford Artificial Intelligence Laboratory in support of the Stanford AI Robot (STAIR) project. The system is based on a program written by Morgan Quigley at Stanford. It is written in C++ and uses as operating system Linux, Mac OS X and Microsoft Windows.
It is a framework for robot software development, providing operating system-like functionality on top of a heterogenous computer cluster. Development continues primarily at Willow Garage, with more than twenty institutions from around the world collaborating and contributing in a federated development model.
THe OS is based on a graph architecture where processing takes place in nodes that may receive, post and multiplex sensor, control, state, planning, actuator and other messages. The library is geared towards a Unix-like system (Ubuntu Linux is listed as 'supported' while other variants such as Fedora and Mac OS X are considered 'experimental') but is intended to be cross-platform. At present Windows is listed as having 'partial functionality. The system has two basic “sides”: The operating system side and ros-pkg, a suite of user contributed packages (organized into sets called stacks) that implement functionality such as simultaneous localization and mapping, planning, perception, simulation etc.
According to its authors, it was designed to “support our philosophy of modular, tools-based software development. We anticipate that its open-ended design can be extended and built upon by others to build robot software systems which can be useful to a variety of hardware platforms, research settings, and runtime requirements.”
Unlike its distant cousin DOS, (or Microsoft DOS to be exact), it is released under the terms of the BSD license, and is open source software. It is free for commercial and research use. The ros-pkg contributed packages are licensed under a variety of open source licenses. Today, robots of every size and shape are using the Robot Operating System to do interesting research and applications development, from small mobile manipulators to autonomous cars. It has also inspired other groups around the world to release free, open-source software to get people started on building their own robot.
I wonder what noble trait robots could instill in us humans next?