Although ROS stands for “Robot Operating System”, it is not an operating system. At least not as intended when talking about Linux. ROS is actually a set of software libraries, tools, and conventions (including protocols) made to ease the development of robotic applications. Originally developed by Willow Garage for their PR2 robot, ROS was put under a free software license (BSD) from the first public release back to 2009. This, decision for sure contributed to ROS’ success by attracting many hobbyists, researchers and companies. The community has now its conference RosCon that will be held 19-20 May 2012 in St. Paul, Minnesota, immediately after ICRA.
One of the powerful features of ROS is that it enables interoperability between software and hardware developed by different people. For instance, you can develop a package that performs SLAM (Simultaneous Localization and Mapping) and use it with any laser range-finder as long as both conform to ROS. This generalizes to an arbitrary set of software and hardware. Any robot part and any software developed as ROS package can be integrated in a ROS setting.
At run-time, each package sets up one or more nodes in a peer-to-peer network. Nodes are processes that perform computations or drive some hardware device (sensor, actuator). Each ROS installation has a master, which is a node that provides name registration and lookup. Basically, the ROS master allows nodes discover each other so they can interact and exchange data.
Nodes have two kinds communication channels: services and topics. Services are 1 to 1 communications channels. A node offering a service accepts requests that match the service name, and sends back replies to the requester. Topics on the other hand can be viewed pretty much like discussion forums: all nodes that subscribed to a topic receive all messages published by other nodes in the given topic.
Bags are yet another interesting feature of ROS. They allow saving and playing back ROS messages. This can be very helpful when debugging by storing for example some sensor data, that can be difficult to collect.
There is a lot more to say about ROS. If you wish to learn more, we recommand you reading our post that explains main concepts using a concrete example. You even run the examples using the VirtualBox virtual machine we provide. And, if you want to install it on your own PC, we provide you with a step by step tutorial to easily install ROS.
There are also plenty of videos that you might watch. We selected the one below (Video 1) from the Dallas Personal Robotics Group (DPRG). Since it’s more than 1 hour long, we provide an outline so you can jump to sections that might interest you.
Tagged Bag, Dallas Personal Robotics Group, DPRG, ICRA, ICRA 2012, interoperability, laser range-finder, Master, Node, OpenSlam.org, P2P, Package, Peer to Peer, Pr2, Ros, ROS Conference, ros.org, RosCon, RosCon 2012, Service, Simultaneous Localization And Mapping, SLAM, Willow Garage