What is ROS ?

A lot of people are still confused about the concept of ROS which includes both those who use them and those who don't. Robot Operating System is an open-source robot middleware platform that provides hardware abstraction, device drivers, and many useful libraries and tools to develop robot applications. Developed in 2009, initially for the use with the Willow Garage PR2 robot, ROS has now a large community of developers and users.

This community has developed important general-use libraries for motion planning, task execution, 2D navigation, and visualization and a lot more that has proved invaluable standards in robotics research. Despite its many advantages, ROS has several shortcomings with regards to usability, portability, and platform dependencies. For ROS, the officially supported operating system is Ubuntu, a popular Linux distribution. All these problems are now solved in the second version called ROS2.

ROS has a microkernel design where a large number of small tools are used to build and run various components. A ROS system consists of a number of processes called nodes which are connected in a peer-to-peer network topology. Nodes perform the system’s computation and communicate with other nodes in ROS by exchanging messages, which may contain a single primitive or complex data structure. Messages can be composed of arrays of other messages. A node sends a message by publishing it into a given topic.

ROS provides two types of messaging mechanisms called topic and service. The topic is a pub/sub based asynchronous message type. A publisher broadcasts topic messages to the system, while the subscribers listen to the published information on this topic. There may be more than one publisher or subscriber for the same topic and a single node may publish and/or subscribe to multiple topics.

On the other hand, service is request and response based synchronous message type. It is defined by a string name and a pair of strictly typed messages: one for the request and one for the response. Unlike the topic, there is only one node that can advertise the service of any particular name.
ROS software system is organized into packages. A ROS package is simply a directory that contains an XML file describing the package and stating its dependencies. This packaging system is meant to build ROS based software into small, manageable chunks, each of which can be maintained and developed on its own schedule by other developers.

References :
1. Quigley, M., Conley, K., Gerkey, B., Faust, J., Foote, T., Leibs, J., Wheeler, R. and Ng, A.Y., 2009, May. ROS: an open-source Robot Operating System. In ICRA workshop on open source software (Vol. 3, No. 3.2, p. 5).
2. Toris, R., Kammerl, J., Lu, D.V., Lee, J., Jenkins, O.C., Osentoski, S., Wills, M. and Chernova, S., “Robot web tools: Efficient messaging for cloud robotics. In Intelligent Robots and Systems (IROS)”, 2015 IEEE/RSJ International Conference on (pp. 4530-4537). IEEE.

Comments

Popular posts from this blog

The move_base ROS node

Three Wheeled Omnidirectional Robot : Motion Analysis

Overview of ATmega328P