When I was first introduced to the field of robotics, I always felt that there was no single blog post or any resource that gave the right guidance for any person who is looking to break into the field of robotics but doesn’t know where to start, or even worse, doesn’t know whether they are on the correct trail or simply wasting time on courses that do not prove effective to the goal that they want to achieve.
Since I am from an electronics background, when I was introduced to robotics, I didn’t have any clue about where to get started. In fact, I did not know that there were different domains in robotics like mobile robotics, aerial robotics etc. However, I wanted to learn the most important subjects in robotics right from basics. Hence this blog post is intended to help anybody who is from a singular domain like electronics, electrical or mechanical to break into the robotics domain.
The above flowchart shows the sequence that in my opinion, would lead any student who is new to robotics to gain an intermediate amount of knowledge in it. When I first started with robotics, I didn't have any clue as to which online courses I had to take up and which lecture series I had to see in order to work in projects on robotics. So, I used to binge watch courses and lecture playlists and hence, I decided to write this blog post so that anybody reading this would not have to waste as much time as I did.
More importantly beginners are often confused with which course to begin with so as to avoid missing the basics, hence I also provide you with the right order of courses so that you can get started right away without wasting any more time.
ROS (Robot Operating System):
ROS is the first and foremost tool that beginners have to learn as it is robotic middleware that helps developers to program robotic applications, and is widely used in robotics companies, research centres, and universities. You will be introduced through the creation, the modelling and design of robots, as well as simulating and interfacing them with the ROS framework. You will also use advanced simulation software to use ROS tools that allow robot navigation, manipulation and sensor elaboration.
If you follow the below order of courses, I am sure that you'll be the most efficient at learning ROS and most importantly won't be lost in broad documentation.
Other optional/extra resources:
If you follow these resources in the correct order you will become comfortable in working with ROS and with some practice in debugging errors, you will be able to build various robotic simulations and model custom robots too.
Machine Learning:
I've seen many of my friends who want to get started with machine learning, misled by various people and resources who are inexperienced and suggest that they learn it without the underlying mathematics or just the front-end programming frameworks. Machine Learning has four main components.
It's after the math stuff that the programming stuff comes into picture. In fact, it's the mathematical equations that we derive, that are programmed using Python, NumPy etc so that we can perform computations on large data, in other words a dataset. After trying out a lot of courses, I've listed down the best ones out there that you have to follow in the same order so that you start from the basics and increase the complexity as you move through. First, let's make sure that you are good with the mathematics for machine learning.
The above resources would be sufficient for a beginner an introduction to machine learning and the above resources have to be followed in the same order. Also keep in mind that machine learning provides the basics for deep learning and Computer Vision, so do make sure that you understand all the concepts clearly.
Deep Learning:
Now that you have completed Machine Learning, you are now ready to master the concepts of Deep Learning and apply them to any real-world problems or your projects. Deep Learning involves some heavy lifting with linear algebra and calculus; hence you should not get started with any of the advanced courses which would simply discourage you or you would get stuck during the course. The order of courses that you should follow are as follows
Computer Vision:
You will be introduced to Computer Vision in the Deep Learning Specialization and taken in for a ride in Andrej Karpathy's course, where you will learn deep learning along with computer vision. However, there are separate state of the art resources available for free out there which will make you well versed in purely Computer Vision algorithms and methods. Let's walk you through it.
Reinforcement Learning::
Reinforcement Learning has a pre-requisite of ML and DL, so make sure that you complete those before coming to this. RL is an optional track which has tremendous applications in robotics and control that you could take up if you're interested in working with learning algorithms that can learn on their own, by interacting with the environment and making continuous corrections to their behaviour to obtain the desired output. I will provide the correct order of resources below.
Robot Kinematics and Dynamics:
Robot Kinematics and Dynamics is the beginning towards designing manipulation and understanding the physics of robots, more importance is provided towards manipulators, forward and inverse kinematics, and dynamics. Anybody who wants to enter the field of robotics simply cannot ignore or avoid this topic, as it provides a jumpstart into any other sub domain of robotics that you might want to go into later.
CMU 16 308 Robot Kinematics and Dynamics by Howie Choset along with the supplementary book is the best resource for this topic, in my opinion. I have tried other courses, trust me, this one resource is more than enough for you to break into the topic. In later stages, you can refer to other resources to increase the complexity of the topic.
Mobile Robotics:
One among the subdomains of robotics, and in fact one of the tremendously popular ones both in terms of commercial usage and cutting-edge research is 'Mobile Robotics'. As you might have guessed by the name itself, it involves the study of robots which move or traverse on land. It is a very vast area of study and hence, to have a broad idea and to master the basics of this topic, follow the courses in the same order.
Aerial Robotics:
Congratulations! If you have reached till here, almost 90 percent of you will probably know how to proceed further with studying robotics, and this will be the last set of courses that I recommend to you. As the name suggests, Aerial robotics involves the study of flying, manoeuvring and hovering robots. Starting right from the Kinematic equations all the way till the control algorithms, everything has to be specially designed for these aerial robots. These are the courses which you would have to follow in the right order to get a good outlook on aerial robotics as it's a really interesting domain to work in.
Vijay Kumar Robotics specialization in Coursera and Edx will provide a good introduction to aerial robotics.