Introduction to ROS (Robot Operating System)
Robot Operating System or simply ROS is a framework which is used by hundreds of Companies and techies of various fields all across the globe in the field of Robotics and Automation. It provides a painless entry point for nonprofessionals in the field of programming Robots.
So first of all What is a Robot ?
A robot is any system that can perceive the environment that is its surroundings, take decisions based on the state of the environment and is able to execute the instructions generated.
OS and ROS ?
An Operating system is a software that provides interface between the applications and the hardware. It deals with the allocation of resources such as memory, processor time etc. by using scheduling algorithms and keeps record of the authority of different users, thus providing a security layer. It almost always has a low-level program called the kernel that helps in interfacing with the hardware and is essentially the most important part of any operating system.
ROS is not an operating system but a meta operating system meaning, that it assumes there is an underlying operating system that will assist it in carrying out its tasks.
ROS and underlying operating system –
ROS depends on the underlying Operating System. ROS demands a lot of functionality from the operating system. On top of that ROS must be freely available to a large population, otherwise, a large population may not be able to access it. Much of the popularity of ROS is due to its open nature and easy availability to the mass population. It also needs an operating system that is open source so the operating system and ROS can be modified as per the requirements of application.
Proprietary Operating Systems such as Windows 10 and Mac OS X may put certain limitations on how we can use them. This may lead to rigidity in the development process, which will not be ideal for an industry-standard like ROS. Hence, most people prefer to run ROS on Linux particularly Debian and Ubuntu since ROS has very good support with Debian based operating systems especially Ubuntu. That doesn’t mean that ROS can’t be run with Mac OS X or Windows 10 for that matter. But the support is limited and people may find themselves in a tough situation with little help from the community.
There is close proximity between ROS and OS, so much so that it becomes almost necessary to know more about the operating system in order to work with ROS. Using Linux as a newbie can be a challenge, One is bound to run in issues with Linux especially when working with ROS, and a good knowledge of Linux will be helpful to avert/fix these issues.
- A Meta Operating system has a huge amount of functionality, so much that it cannot be classified as a framework or a cluster of libraries but not so much that it can be categorized as an operating system either. It provides functionalities of both Operating Systems as well as frameworks but not fully hence, it cannot be classified as either e.g, it does not provide the core functionalities that an operating system is supposed to provide but provides APIs.
- RViz is a 3D Visualization tool for ROS. It is one of the most popular tools for visualization. It takes in a topic as input and visualizes that based on the message type being published. It lets us see the environment from the perspective of the robot.
Once we have all the code ready and running, we need to test our code so that we can make changes if necessary. Doing this on a real robot will be costly and may lead to a wastage of time in setting up robot every time. Hence we use robotic simulations for that. The most popular simulator to work with ROS is Gazebo. It has good community support, it is open source and it is easier to deploy robots on it.
ROS was meant for particular use cases. Since then, a lot has changed, We have seen a resurgence in Artificial Intelligence research and increase in the number of use cases. Robotics is becoming more popular among the masses and even though ROS copes up with these challenges very well(even though it wasn’t made to), it requires a great number of hacks.