So you want to get started in robotics, where do you actually start?
- ROS: Learn about the Robot Operating Systems. This wonderful software provides an architecture to integrate different components of robotic systems into a uniform communication platform. There are excellent tutorials and this is a great place to start.
- Robot Platforms: Learn about the different kinds of robotic systems. These range from flying robots (UAVs) to locomoting robots (ATLAS, Cassie, ...) to arms (ABB, Baxters, ...). Each system has its own set of challenges and interesting nuggets and beginning by specializing is a really good idea. See which platform is most exciting to you, and follow that line. Do know a little about each before diving in though.
- Python: Python is currently the most useful programming language for Robotics and Machine Learning applications. Python has many many benefits, but from a practical perspective it affords three important things: i) rapid prototyping, ii) open-source code-sharing, and iii) most existing libraries are either in Python or have Python bindings. I'd recommend you learn Object Oriented Programming along with Python. If you're using MATLAB, consider making the switch and doing it permanently as soon as possible.
- Basic Controls and Dynamics: A natural language to speak about robotics is dynamical systems. Robots, as dynamical systems, require control to be useful. Taking introductory courses in these topics will really help you understand how to communicate your ideas in a common language and if you're interested, you can pursue a successful research career working in this area.
- Basic Mechatronics: Robots, as instances of cyber-physical systems, are a composition of mechanical parts and electronics. Sensors and actuators are prime examples of mechatronic systems. Understanding even the basics of these systems can go a long way in helping you to design systems, choose components, and diagnose faults. An important part of robotic research is in the design of mechanisms, actuators, and sensors.
To Be Continued.