An Introduction to Robot Operating System (ROS)
Developing a robot with a computer brain requires a lot of software tools from the secondary computer software controllers, third-party tools for computer vision and simulation tools. ROS includes all the tools and manages the way to develop a code for your robot.
Instead of reinventing the wheel every time, some admins can help by putting together all these tools and managing the way they develop the code to their robot. ROS (Robot Operating System) is one of these milestones. This is a special framework originally developed by the Stanford IA Laboratory in 2007 for the development of robots. The Open Source Robotic Foundation now maintains ROS.
The ROS concept goes far beyond a border. ROS is an operating system, since it provides all the services offered by other operating systems, such as the acquisition of equipment, control of low level devices, the execution of the most used functions, the passage of messages between processes, and the Package management. Although ROS is still a part that is not an independent operating system or RTOS and is not the only framework for robots, it seems to be widely adopted and have a large community of developers.
ROS can be installed on a single-board computer (SBC) like Raspberry Pi-level and up with Ubuntu / Debian distribution. However, other platforms are supported experimentally or by the community.
An overview of how ROS works
Before we delve into and start playing with ROS, we need to see the overall picture of the system.
In general, the ERO is composed of code and tools that help your project code to perform the required work, including the infrastructure to run it, since the messages that pass between processes.
ROS is designed to be a flexible coupling system in which a process is called a node and each node must be responsible for a task. Nodes communicate with each other using messages through logical channels called themes. Each node can send or receive data from the other node using the publication / subscription model. Let’s see this in action later.
The main purpose of ROS is to support the reuse of code in research and development in robotics so that you can find an integrated package system. Again, remember that ROS is not an operating system, a library or RTOS. It is a framework using the concept of an operating system.