Robot Operating System

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. The below figure shows four different elements of ROS.

Plumbing: While multiple programs are running on your system, ROS enables these programs to communicate with each other. Also, it provides different device drivers to communicate easily with your hardware.

Tools: ROS has many basic tools which are important when you are working with robots such as, simulation, visualization, GUI, and data logging. These tools facilitate your efforts while you are working with robots.

Capabilities: There are several capabilities in ROS i.e. for control, planning, perception, mapping, manipulation and you can use what other experts already wrote for the ROS ecosystem. You don't need to create them from scratch.

Ecosystem: ROS is a big ecosystem. Software is organized in packages so you can easily install and use them. Ros provides the entire software distribution that includes many tutorials and documents that you can find online.