The Robot Operating System (ROS) is a flexible framework for writing robot software. It is a collection of tools, libraries, and conventions that aim to simplify the task of creating complex and robust robot behavior across a wide variety of robotic platforms. (

ROS was designed to be as distributed and modular as possible, so that users can use as much or as little of ROS. The modularity of ROS allows you to pick and choose which parts are useful for you and which parts you’d rather implement yourself.

ROS’s distributed nature fosters a large community of user-contributed packages on top of the core ROS system. These packages range in fidelity, implementations, drivers and algorithms. The ROS user community builds on top of a common infrastructure to provide an integration point that offers access to hardware drivers, generic robot capabilities, development tools , useful external libraries, and more.

Permissive Licensing
The core of ROS is licensed under the standard three-clause BSD license. This is a very permissive open license that allows for reuse in commercial and closed source products.

Robot-Specific Features
In addition to the core middleware components, ROS provides common robot-specific libraries and tools that will get your robot up and running quickly.

• Standard Message Definitions for Robots
• Robot Geometry Library
• Robot Description Language
• Preemptable Remote Procedure Calls
• Diagnostics
• Pose Estimation
• Localization
• Mapping
• Navigation
• Industrial Robot Library (ROS Industrial)