- Systems thinking
A project manager once observed that many robotics-related people end up as project managers or systems engineers. This makes a lot of sense, because robots are very complex systems. A robotics specialist must be a good mechanic, electronics engineer, electrician, programmer, and even have a background in psychology and cognitive activities.
A good robotics engineer is able to understand and theorize how all these different systems work together in a coherent way. If a mechanical engineer can quite reasonably say, “that’s not my job, we need a programmer or an electrician here”, then a robotics engineer should be well versed in all these disciplines.
- Programmer’s Mindset
Programming is a pretty important skill for a robotics engineer. It doesn’t matter if you’re a low-level control systems engineer (using only MATLAB to design controllers) or a computer scientist designing high-level cognitive systems. Robotic engineers can be involved in programming at any level of abstraction. The main difference between conventional programming and robot programming is that the robotics engineer interacts with the hardware, electronics, and clutter of the real world.
More than 1,500 programming languages are in use today. Although you obviously won’t need to learn them all, a good robotics engineer has the mindset of a programmer. And they will be comfortable learning any new language, should it suddenly become necessary. And here we move seamlessly to the next skill.
- Self-learning ability.
It is impossible to know everything about robotics, there is always something unknown that will have to be learned when the need arises to do the next project. Even after a higher education in robotics and several years as a graduate student, many only begin to truly understand the basics of robotics.
The drive to continually learn something new is an important ability throughout your career. Therefore, using learning methods that are effective for you personally and reading well will help you gain new knowledge quickly and easily when the need arises.
- Math
There are not many foundational skills in robotics. One of those foundational skills is math. You will probably have a hard time succeeding in robotics without a proper knowledge of at least algebra, calculus, and geometry. This is because at a basic level, robotics relies on the ability to understand and operate on abstract concepts, often represented as functions or equations. Geometry is especially important for understanding topics such as kinematics and technical drawings (which you will probably have to do a lot of during your career, including those done on a napkin).
- Physics and Applied Mathematics
There are some people (pure mathematicians, for example) who tend to operate on mathematical concepts without reference to the real world. Robot makers are not this type of person. Knowledge of physics and applied mathematics is important in robotics because the real world is never as precise as mathematics. Being able to decide when a calculation result is good enough to actually work is a key skill for a robotics engineer. Which brings us smoothly to the next point.
- Analysis and solution selection
Being a good robotics engineer means constantly making engineering decisions. What should we choose to program, ROS or another system? How many fingers should the designed robot have? What sensors should you choose to use? Robotics uses many solutions and among them there is almost no single correct one.
With the vast knowledge base used in robotics, you could find a better solution to certain problems than experts from more narrow disciplines. Analysis and decision making are necessary to get the most out of your solution. Analytical thinking skills will allow you to analyze a problem from different perspectives, while critical thinking skills will help you use logic and reasoning to balance the strengths and weaknesses of each solution.