Introduction to ROS
ROS stands for Robot Operating System. However, it is not a general purpose operating system. Basically, it is a set of software libraries and tools that help the developer to build robot applications. It provides the services that we may expect from an ‘operating system’ such as hardware abstraction, low-level device control, and implementation of commonly used functionality etc. Similarly, In ROS, you make or install something that gives the command to a physical ROBOT, and it is able to perform certain actions.
I just made it too simple, but in the practical sense, there are a lot of things under the hood.
But don’t worry, we will be covering everything in greater detail turn by turn, as we get to the deeper end of the topics.
What you will learn in this blog?
Before we start the blog, here are the objective or final learning outcomes of the blog:
This blog will tell you about what is ROS.
What are the types of different ROS?
What the primary architecture of the ROS is?
How ROS nodes communicate with each other.
What actually you can do with ROS, and What not, comes under the ability of ROS?
How does Robot perform the action at the top level?
As we can see in the above graphics, how robot process information and act upon it.
There are basically three main elements of a robot. Robots need to see the environment around them to get information and process the information. So there is no magic involved. Any kind of robot gets the environment’s information via a Camera, depth camera, ultrasonic sensor, GPS, or laser range finder. Based on information got from the environment, robots perform actions.
Too abstract information, right? So let’s take an example. By environment in the robotic world, we mean the place where the robot performs certain actions. For example, the room or warehouse, garden, etc. installed lasers on the robot send a laser beam 360 degrees and, the robot tries to measure the distance from its origin to the object where the laser hit the objects. Similarly, with all other types of sensors and cameras, the basic task of the robot is to see the surrounding environment. The information from these tools mostly comes in binary form, a language that the computer understands. Then somebody has to write code to process this information with smart algorithms and math magic. You might be surprised, it’s too difficult for a beginner to get the hands dirty in such a tedious task, but it’s not the case, thankfully, a genius ROS community writes such code and make it open source so that people like me, and you don’t have to reinvent the wheel, and they can focus more on the problem set in hand.
Now, let’s come to the think part of the ROS.
The thinking part of the robot is continuously evolving. Once it was based on manually designed processes and mechanisms but nowadays, it’s continuously taken over by artificial intelligence.
The process of integrating the AI code and making it able to communicate with the ROS stack, as well as hardware, is a difficult task itself, but again there are libraries available with the ROS ecosystem which helps you to connect the AI piece of the puzzle with ROS. More detail about the ROS ecosystem comes beneath.
The last part of the robot is action. Based on the information sensed by the robot with help of sensors and later on the processing of the information, the robot performs a certain action. These actions can range from simply moving from palace A to B up to completely replacing humans in the 10 Square KM warehouse of Amazon.