1. Brief about the Publisher Subscriber Interface
  2. Creation of a Publisher Node
  3. Creation of a Subscriber Node

Pre-requisites: In the previous tutorial, we learnt how to create our own ROS Package. This is the continuation of that tutorial, so if you haven’t gone through that, I’d suggest you to first read that.

Part 2: 7 Simple Steps to create and build your first ROS Package | by Arsalan Anwar | The Startup (medium.com)

In this tutorial, we will learn about the ROS Publisher- Subscriber Model in brief and then create our own Publisher Node and a Subscriber Node.

1. Publisher Subscriber Interface

Message passing in…


In this article, we will discuss the following:

  1. catkin Build System
  2. Understanding catkin Workspace
  3. 7 Simple Steps to create and build our first ROS Package

Make sure you follow the article and try the steps mentioned hands-on so that you can get a first hand experience.

Also, stay till the end because there is some bonus content I’ll be sharing with you all which will make your ROS package creation and build simpler!

1. catkin Build System

Before we start creating and building our first ROS package, it is essential for us to understand what the catkin build system is.

catkin is the official…


  1. What is Reinforcement Learning (RL)?
  2. How is Reinforcement Learning different from the other types of Machine Learning?
  3. How does Reinforcement Learning work?
  4. Approaches to implement Reinforcement Learning Algorithms
  5. Characteristics of Reinforcement Learning
  6. Types of Reinforcement Learning
  7. Applications of Reinforcement Learning
  8. Major Challenges faced by Reinforcement Learning

What is Reinforcement Learning?

Reinforcement Learning is a type of Machine Learning that uses dynamic programming to train algorithms to learn its environment and perform a specific task using a system of reward and punishment. A reinforcement learning algorithm, or agent, learns by interacting with its environment and taking actions for which it gets rewarded or punished.

Reinforcement Learning

How is Reinforcement Learning different from the other types of Machine Learning?

Courtesy: Google Self Driving Car

Here, we’ll see the some of the basic terminologies that are used in Reinforcement Learning. All of these will be explained with the example of an Autonomous Car so that it becomes very easy for us to understand!

1. Agent: The entity (learning algorithm + policy) which interacts with the environment and takes certain actions to get the maximum rewards. Ex: An Autonomous Car.

2. Environment E: It is the surroundings through which the agent moves. The environment considers the action and the current state of the agent as the input and grants a reward for the agent and 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.

ROS was officially created and developed by Willow Garage starting from 2007.

ROS is currently maintained by Open Source Robotics Foundation

Robot Operating System abbr. ROS

In the further sections, we’ll discuss the following:

  1. Advantages of ROS
  2. ROS Installation
  3. ROS Computational Graph Model

Advantages of ROS

1. ROS acts as Meta OS:

  • A typical OS performs Scheduling i.e. the role of allocating resources like CPU, memory, disk space, I/O devices to the various…

Arsalan Anwar

Associate Data Scientist at West Pharmaceutical Inc. | Data Science | AI & ML | Reinforcement Learning

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store