Skip to content

R3plica

Building A Dream Of Driverless Cars

Robotics, Self-Driving Cars4 min read

Umang Rastogi

Meet Umang Rastogi

Robotics Graduate Student @ University of Maryland

College Park, Maryland 

Umang Rastogi is a UMD graduate student, highly passionate about the self-driving vehicles industry. He envisions self-driving vehicles becoming prevalent around the globe and has been working towards that goal since his undergrad.

Umang is an experienced specialist with a demonstrated history of working in the Computer Software industry. Skilled in Python, C++, and Software Development. Strong professional pursuing a master’s in Robotics at the University of Maryland.


What inspired you to pursue a career in robotics?

I have been surrounded by robots my entire life. Though robots were merely toys that I used to play with as a child, I did not understand the impact they have had on me until I went to college for my undergraduate studies.

I got to know that students got the opportunity to join teams and work on projects, such as making satellites and building Mars rovers, from scratch.

Out of all the student teams in my college, Project MANAS intrigued me the most. The members of the team envisioned to build India’s first self-driving car.

Fortunately, I was able to join the team after a month-long recruitment process. Immediately after joining the team, I realized that my favorite toy as a child was just a mobile robot with obstacle avoidance capabilities.

Working with the team, I started to grasp the elegance and fascination behind developing robots. Moreover, I started to see the promise of self-driving technology.

More than a million people annually die due to motor accidents. A complete transfer to self-driving technology in the transport industry will have a huge impact on the world.

Though we have a long way ahead of us, the promise of self-driving technology has inspired me to pursue robotics as a career.

What is the background story, idea, and purpose behind the self-learning connect-4 game project?

I have always been fascinated by the level of AI players in computer games.

It seemed impossible to beat them if you are not a good player. I have always thought that it would be fun to program the computer player in a game.

After taking up a course on reinforcement learning during the spring semester, I had finally learned about algorithms used to develop computer players.

I thought Connect-4, being a popular game, was a good starting point to apply these algorithms. Moreover, reinforcement learning relieved me, as a programmer, of the burden of being an expert on the game.

I did not have to know the best strategy to play Connect-4 to design its AI player.

Explain the implementation of path planning algorithms on a TurtleBot in ROS?

There are various ways to implement path planning on a TurtleBot using ROS.

The ROS Navigation Stack has built-in planners that can determine a path for a robot and outputs velocity commands given a static map, odometry, sensor information, and a goal pose.

You can also use a static map and deploy any path planning algorithm such as A*, Rapidly exploring Random Tree (RRT), or Dijkstra, to find a path from start to the goal location. The algorithms may explore the map under the assumption that each of the TurtleBot’s wheels has a constant RPM.

The assumption helps in estimating the linear and angular velocities of the TurtleBot. These velocities can be published as odometry information for the TurtleBot using ROS.

I have used the same approach in my project, A-star TurtleBot.

Explain the differences between path planning and motion planning?

Essentially, motion planning encompasses path planning.

While path planning only provides the robot with a path from point A to B using a set of coordinates, motion planning not only provides the robot with a path but also describes the motion of the robot to follow that path.

Motion planning also involves the development of algorithms that yield a set of velocities for the robot to follow the path.

Let us leave the domain of robotics. We, humans, employ path and motion planning every day without realizing it. It can be as simple as going to the kitchen from your room or as hard as trying to find your way out of a maze.

To explicate the differences between them further, let us take the example of a girl trying to go across a rope bridge in mid-air and the same girl trying to find her way out of a maze. In the first case, path planning is simple because there is only one path that is via following the rope.

However, motion planning is difficult as the girl must balance herself on the rope while simultaneously move towards the other end of the bridge. In the second case, path planning for the girl is as hard as finding a way out of the maze is hard.

But motion planning is easy as the girl simply must walk on the ground inside the maze.

Explain a challenge you have faced working on the self-learning connect-4 game project?

I have employed an algorithm called, Q-Learning, in my project. The algorithm essentially creates a cheat sheet for the computer player by forming a table containing a score for each game configuration. The higher the score for a configuration, the better it is for the computer to play.

However, the Connect-4 game has a huge state space. The game has more than 10^14 ways in which it can unfold. The huge state space makes it difficult for the Q-Learning algorithm to develop a policy good enough to teach the computer player to beat an average human player like myself.

This is the reason I am working to develop a deep Q-network that can better deal with the huge state space problem.

Do you have any other Robotics project that you want to share your experience with us?

I love to work on path and motion planning problems as I can easily visualize the exploration of a path planning algorithm such as Dijkstra, A*, or RRT.

However, I have seen a lot of people find it difficult to understand these algorithms as they have not seen how these algorithms explore a map.

To tackle this problem, I am working on a project to visualize the exploration pattern of various path planning algorithms. You can view how Breadth-First Search (BFS), Dijkstra, and A* Search explore a static map here.

Where do you see yourself in 10 years in the field of Robotics?

I wish to make self-driving vehicles a commonality around the world. I want to see people discuss contemporary vehicles as a thing of the past. “Remember the times when we used to drive cars!”

10 years into the future, I see myself working with the best minds spreading the usage of self-driving vehicles around the globe.


For more about Umang Rastogi projects go to github.com/urastogi885