What is ROS? In which areas is it used?
I want to start with “What is not ROS?”
- It is not real operation system.
- It is not programming language.
- It is not integrated development environment / IDE.
ROS (Robotic Operation System) is also known as a framework for robotic applications. It must run inside a Linux distribution. It provides services designed for heterogeneous computer clusters such as hardware abstraction, low-level device control, implementation of commonly used functionality, message-passing between processes, and package management.
In the website of ROS, they say about ROS:
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.Why? Because creating truly robust, general-purpose robot software is hard. From the robot’s perspective, problems that seem trivial to humans often vary wildly between instances of tasks and environments. Dealing with these variations is so hard that no single individual, laboratory, or institution can hope to do it on their own.As a result, ROS was built from the ground up to encourage collaborative robotics software development. For example, one laboratory might have experts in mapping indoor environments, and could contribute a world-class system for producing maps. Another group might have experts at using maps to navigate, and yet another group might have discovered a computer vision approach that works well for recognizing small objects in clutter. ROS was designed specifically for groups like these to collaborate and build upon each other’s work, as is described throughout this site.
Nowadays, its reputation and field of usage are greatly increasing. Especially in Artificial Intelligence robotic fields, Unmanned Air — Ground vehicles ROS usage is increasing day by day. ROS is open source software and technology that we can participate their developer program and contribute its code. Software in the ROS Ecosystem can be separated into three groups:
language-and platform-independent tools used for building and distributing ROS-based software;
ROS client library implementations such as roscpp, rospy, and roslisp;
packages containing application-related code which uses one or more ROS client libraries.
Both the language-independent tools and the main client libraries (C++, Python, and Lisp) are released under the terms of the BSD license. You can program ROS features C++ or Python whatever you want. But due to ease to use, python 2&3 is preferred more than CPP.
In ROS, Master Node, message communication, and blocks are very important. If we understand its behavior and communication with each other, we can develop easier than before.
When we are coding our robot via ROS, we need to a program which we can simulation our robot’s behaviors, reaction of our commands is Gazebo. The gazebo is very handful program which simulates our robots. It has sample sketch and already designed robots, manipulators etc. They can be used for ROS projects and the information can be given by the gazebo; errors of the system (robots) kinematics etc.
Mehmet Çağrı Aksoy
References
http://ozguradem.net/robotik/2015/03/10/ros-robot-operation-system-nedir/
http://robohub.org/sv-ros-pi-robot-win-1st-place-in-iros-2014-microsoft-connect-challenge/