Robot Operating System (ROS) is a software framework for robot software development, providing operating system-like functionality on a heterogenous computer cluster. It can be called a meta operating system and its development continues primarily at Willow Garage. The latest version of ROS is ROS Electric Emys.
ROS provides standard operating system services such as hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management.The library is geared toward a Unix-like system. ROS is currently used in many famous robots like the well known PR2 from willowgarage, AscTec Quadrotor, Turtlebot, Fraunhofer IPA Care-O-bot, Aldebaran Nao etc.
There are a large number of drivers for various types o sensors and much more control algorithms like motion planning, vision etc included in ROS. Some of the basic ros concepts are nodes, topics and services. Nodes implement a given function. The overall operating algorithm of the robot can be subdivided into smaller functions, each on e running in a node. This splitting of the work makes it more modular and helps much in easy debugging. Topics are tools used for inter process communication. Each node can publish messages to a topic or subscribe to messages from a topic. Examples of topics are readings from different sensors, control signals etc. Services implement a two way server-client model communication between nodes.
The basic software is called roscore and can be launched from command line using the command roscore. Since ROS is widely used for academic research and is open source, it is possible for anyone to try out the latest algorithms in research and development in his own robot. ROS has also got good 3D simulators so that one needn’t have access to expensive robot hardware to play around with robotics. More info about ROS can be found out at http://www.ros.org/wiki/