Speaking The Language Of Robotics
Meet Abhiram Dapke
Robotics Student @ University Of Maryland
College Park, Maryland, U.S.
Abhiram Dapke is a graduate student currently pursuing his Masters in Robotics at the University of Maryland, College Park.
He has worked on path planning and perception projects on autonomous vehicles.
Abhiram loves programming and solving problems in C++. He is eager to kickstart his career as a Robotics or a Software Engineer and solve complex problems of the industry.
For more about Abhiram Dapke projects go to github.com/abhiramdapke
What inspired you to pursue a career in Robotics?
Since my childhood, I had a deep interest in how machines worked.
It was fascinating to see a machine accomplish repetitive tasks that required extreme dexterity, nimbleness, flexibility etcetera that would take weeks for a human to accomplish.
Also, in the final semester of my undergrad, I had a Professor, Dr. Jayant Giri who taught us subjects like CIM and CNC & Robotics.
In these subjects, I learned a lot of concepts like working with AGVs, Industrial automation, CNC and FANUC programming and kinematics and dynamics of a robot.
All these concepts were so intriguing to me that I decided to explore more in this field and pursue a Masters's degree in Robotics.
During my Bachelors's, my knowledge was in a nutshell but after coming to the US, I gathered that there is so much more to explore in this field as I saw the big picture and I came to know that there are many dimensions to Robotics.
Define your goal with your studies in Robotics?
With the world advancing at a very fast pace, there is so much to learn and grow in this field.
For example, Sophia – The Human-Robot, The Atlas or Dog Robot from Boston Dynamics, Asimov robot, Stanford’s Ocean One robot are excellent examples of how advanced we have become today.
My short term goal is to kickstart my career as a robotics engineer and work with people who have tremendous knowledge and experience and learn from them.
I am very inquisitive about the new technologies coming up and love to work in an environment that encourages creativity.
Once I get enough experience in this field, I would love to teach the newbies as teaching has always enthralled me.
Define the importance of C/C++ in Robotics and what functions can be built with it?
Robotics has several areas like Motion Planning, Computer Vision, Software Development, Artificial Intelligence, Control Systems, and Robot Modeling, etc.
C/C++ is the bread and butter of Robotics. The basic foundation of modern-day robotics in areas such as Path Planning and Perception of autonomous robots is done in C++.
Though many people might argue that Python is a great language to learn for Robotics, I would rather say that C++ is the most widely used language in this industry.
Moreover, C++ is also used in the Robot Operating System(ROS) which is a collection of software frameworks for robot software development.
ROS is not an actual Operating System, however, I would like to say it is much more than that. It is a way of life.
C++ can be used to design and maintain Operating Systems such as Windows, Unix, Editors such as Notepad, WordPad, commercial applications, Databases such as Oracle, SQL Server, My SQL, Translators like Compiler, Interpreter, Assembler, device drivers, PC, and mobile games.
Can you briefly explain some basic steps to program a Robot?
Programming a robot highly depends upon which type of robot one wants to deploy.
Robot Modeling, Co-ordinate transformations, Matrix multiplications are the basics one needs to start with.
This is the hierarchical Robotic diagram that shows the three basic steps a robot needs to perform: Sense, Plan, and Act.
For example, if we want to move a robot from one point to another we need to do these three steps:
Since the environment and determine obstacles. (Stationary obstacles considered)
Create a map and plan a path. (avoiding obstacles)
Program the robot to find an optimal path if one exists.
Test the program and deploy the robot.
Do you have any Robotics project that you want to share with us?
I would like to share one of my Motion Planning projects with you all.
The project aimed to implement Dijkstra and A star algorithm on a point and a rigid robot to traverse a maze (i.e. from the start point to the goal point) and to find an optimal path if one exists.
A point robot has 0 radii and clearance and a rigid robot has some radius and clearance from the obstacle.
The robot can move in 8 directions overall. I represented the obstacles by using half-planes and algebraic equations.
Let me tell you how Dijkstra and A star work.
Dijkstra is a very popular path planning algorithm that uses the principle of relaxation of vertices and uses a priority queue data structure to explore nodes.
Starting from the start node, each node with its adjacent vertices is explored and put into the queue.
Then, until the queue is empty, it is recursively checked whether the node is traversed or not and then is removed from the queue. This is done until the goal node is reached. Dijkstra promises an optimal path if one exists.
A star is a heuristic search algorithm and is also known as Extended Dijkstra. It is very similar to Dijkstra, only it uses a heuristic function to reduce the number of nodes to be explored which is an advantage.
The heuristic function can be calculated by using either Manhattan distance or Euclidean distance.
Manhattan distance is the sum of horizontal and vertical between two points and Euclidean is the direct physical distance between two points.
So, we used Euclidean distance to find the minimum distance to all the nodes from the goal node and then implemented A star on the point and rigid robot.
The most interesting thing in this project was the use of data structure and algorithms.
I enjoyed this project as it gave me a chance to improve my programming skills and delve deep into the world of Motion Planning.
What motivates you to work harder and think should everyone need to achieve success?
‘Achievement’ is what motivates me to work harder. Knowing the fact that my hard work, passion, and perseverance would help me achieve greater professional success in life keeps me going.
I am the type of person who looks up to the stars, wants to reach them but at the same time, I know that my feet should be touching the ground because, without it, I can never leap the stars.
I am first concerned about filling the potholes on the ground before taking the big leap.
I have always been a problem solver. If I like a particular work and I go for it, I don’t feel satisfied until I finish it.
I believe that one should have only one talent and i.e. NOT QUIT.
May the person be of any discipline, this one thing stands out everywhere. One should realize that there are no short cuts to success.
It is only through years of unflinching determination and devotion that can one achieve success in life.
As Swami Vivekananda famously quoted:
“Arise, awake and stop not till the goal is reached. Take up one idea. Make that one idea your life; dream of it; think of it; live on that idea. Let the brain, the body, muscles, nerves, every part of your body be full of that idea, and just leave every other idea alone. This is the way to success.”