A robot is any system that can perceive the environment that is its surroundings. It can take decisions based on the state of the environment and is able to execute the instructions generated. The Robot Operating System (ROS) is not an operating system per-say, but rather a framework with tools designed to work like an operating system in a cluster of computers. It also does have applications beyond robotics, however, most of the tools provided are geared towards working with external hardware. Let us deep dive into understanding robotics operating system.
Difference between OS and ROS
An Operating System is principally a system software which acts as a medium between the applications and the hardware components. It concerns itself with distributing the resources such as memory, time, etc. using various scheduling algorithms. It also keeps track of various permissions of users thereby adding a layer of protection. Most contain a low-level programming called the kernel which plays the role of managing or controlling the hardware, and is arguably, the most essential component of any operating system in existence. ROS is also not an operating system but a meta operating system. It means that it operates on an existing system already in place to help it perform its activities.
Working Mechanism
The Robot Operating System (ROS) is a collection of software components. It focuses on the structural arrangement of the robot software systems into building blocks, also known as nodes. Each of these building blocks performs its own tasks, whether it is processing the proceedings from the sensors, steering the motors or making decisions, and therefore controls a particular section of the robot. Even though these nodes serve different objectives, they must interact with one another in order for the robot to work as one entity, so they form a publish-subscribe messaging system where information is transferred using services. ROS also provides a messaging system. It allows these nodes to talk to each other without worrying about the underlying details, like how the data is being transferred.
Applications
Industrial Robots: The use of ROS eases the development of industrial-grade robotic arms and facilitates the coordination of various operations such as pick-and-place, assembly, welding, sensor integration and even machine integration.
Surgical Robots: The Robot Operating System (ROS) is very important aspect of creation of surgical robots in the course of confining their operations to minimum movements owing to the fact that it allows better management of robotic arms and incorporation of imaging systems. It also supports haptic feedback, thus allowing the surgeons to perform more accurate intricate tasks.
Humanoid Robots: ROS enables humanoid robots to perform tasks like navigation, object recognition and grasping by providing the necessary algorithms and tools for interacting with their environment.
Research: ROS is free and open-source and thus designed for easy modification and experimentation. The middleware services are well known for their flexibility and availability providing plenty of services. And standard framework to design, verify and modify algorithms and robotic subsystems quickly.
Initially, ROS was meant for certain applications. A lot has changed since then. AI research has been on the rise and the scope of applications has broadened. If at the onset ROS was limited to certain applications, then a lot has changed. There has been a resurgence in research oriented artificial intelligence and the number of applications. I hope this helps in understanding robotics operating system.