ROS HOWTO
ROS (Robot Operating System) is an open-source framework for the creation of software for robots. It is a very interesting tool, since it promises to take care of many lower-level issues that make realizing the software for autonomous robots so difficult and time-consuming. By leaving such issues (e.g., communication among modules) to ROS, the programmer can focus on the more interesting high-level issues (e.g., perception or reasoning). More precisely, in the words of its creators:
"ROS provides libraries and tools to help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more."
Though striving to be as easy-to-use as possible, ROS is a very complex tool. This is unavoidable, as autonomous robots themselves are extremely complex systems. Before you can start building your own software based on ROS, you have to devote a fair amount of time to studying how it works and how to use it. This part of the wiki is dedicated to helping you getting to grips with ROS quickly.
The ROS website itself includes a good deal of information and tutorials, and you are invited to use them. However, not all of them are very clear, nor all topics are equally covered. Here we'll try to integrate what's provided by ROS instead of saying the same things in another way.
Nodes
The basic element of a ROS system is the node. A node is a module of the software system, which communicates with other modules using ROS. In practice, a node is a single executable file