Ask Your Question

Revision history [back]

ROS is indeed called a meta-operating system (see ROS/Introduction). ROS shares characteristics with some middleware systems (marshalling and loose coupling by message passing) and frameworks (message callbacks, tons of utility classes), but has also OS-like features (hardware abstraction, package management, developer toolchain).

Compared to most other middleware systems and frameworks for robots, ROS imposes little policy on the developer, both in terms of API and license issues. The learning curve is not too steep, and most legacy code is quite easily ported once you understood the ROS basics. In my opinion, this is the reason for its success.

ROS is indeed called a meta-operating system (see ROS/Introduction). ROS shares characteristics with some middleware systems (marshalling and loose coupling by message passing) and frameworks (message callbacks, tons of utility classes), but it also has also OS-like features (hardware abstraction, package management, developer toolchain).

Compared to most other middleware systems and frameworks for robots, ROS imposes little policy on the developer, both in terms of API and license issues. The learning curve is not too steep, and most legacy code is quite easily ported once you understood the ROS basics. In my opinion, this is the reason for its success.