Tuesday 19 August 2014

ROS Tutorials 1 : Introduction to ROS , the Robotic Operating system

This is my very first blog on ROS aka the robotic operating system.In this blog i would like to give you a overview of what it is and why do we need it.

Why ROS ?

ROS is an dedicated software framework created for running on robotic systems.The main objective of ROS is code reusability.Before the origin of ROS there was no dedicated software framework for implementing  robotic software architectures.As a result different software frameworks were being used by researchers , industrialists ,academicians and hobbyists all around the globe.There was no common platform.Every Time you created a robot you had to reinvent the wheel.Every new robot had to be build from the scratch.This led to the wastage of time and resources.So in rorder to tackle this issue ROS was created.It provided a common platform for creating and sharing codes and programs for robots all around the world.Once a code is written in ROS it can be used again by any other user anywhere in the world.

You can have a look a the history of ROS here.
Also the original research paper on ROS can be downloaded from here .

Basics of ROS :

In this section i would like to describe the basic working concept of ROS.We all know that a robot is an assembly of different modules.It is an integration of hardware components like cameras , sensors , microcontrollers, laptops etc with software modules for vision,AI,speech recognition , navigation etc.It is really a difficult task to integrate all of it together.

ROS has the solution to this problems.It implements a nodal architecture.That is each of the modules let it be hardware or software is implemented as a node.These nodes are then made to communicate with each other.A general nodal structure is shown in the following picture.



Nodal Structure of ROS framework

Consider the speech recognition and navigation nodes given in the above figure.Here the speech recognition node publishes the ros messages ,according to the words spoken.A node can publish their messages under different topics.Here the speech node publishes under the topic "Speech".Any other node which need to receive this data can subscribe to this topic.If the navigation node has to listen to the words spoken by the user it can subscribe to this rostopic "Speech".Similarly any node can publish its data to a topic.Any other node let it be hardware or software can listen to  that published values by subscribing to the corresponding topics.

Considering one more instance from the above pictorial representation , we have a temperature sensor connected to a microcontroller and a text to speech node.The sensor connected to the microcontroller unit is initiated as a rosserial node.It publishes the sensor values to the Rostopic "sensor_values".The text to speech node which is responsible for announcing the sensor values will subscribe to this rostopic "Sensor_values".This received values will then be converted to to speech and announced to the user by the text to speech node.

This is the working of ROS in a nutshell.
For further reading and references to get a better overview of ROS visit :

1) ROS official Page
2) Intro to Robotic operating system
3) What is ROS ?

In the next tutorial we will learn how to instal ros in your computer and get started.Until then stay tuned.








1 comment: