I am studying electronics engineering. I am fond of robots since my childhood. I have small doubt i.e. if I want to get placed in robotics and automation based company ,what should I must study(reference books/softwares etc) perticularly for cracking an interview ? In simple words,as Electronics Engineer what other specific skills (like embedded C programming etc) should I go through?
-
2$\begingroup$ Way too broad a question. There is more than one type of robotics company. Split it between mechanical engineering, electrical engineering, or software engineering for starts. $\endgroup$– Spiked3Jan 29, 2015 at 7:39
-
$\begingroup$ @Spiked3 sir,tell related to electronics engineering $\endgroup$– sagarJan 30, 2015 at 17:01
2 Answers
As a professional robotics engineer (with an Electrical and Computer Eng bachelors, although I focused more on the CE side), this depends entirely on what aspect of a robotic system you'd like to work on. Robots are interdisciplinary systems by definition, and you will always need a team with a broad skill-set to build one. That being said, there are places on that team for people who become experts in a single discipline as well as people who have a working knowledge in all areas of robotics. If you find that you love to work on something specific: such as small embedded systems that are operating with limited CPU power via a microcontroller, then learning C and understanding Assembly (and how to use your knowledge of it to optimize C code) would be ideal. Another example where EE skills are very applicable is in buliding the sensors that generate data to drive autonomous tasks, such as a stereo camera, LIDAR, RADAR, IMU, gyroscope, GPS, proximity sensors, etc. Again, you would be focused on one area of hardware development, and not really building robotic systems. You'd be building a component used in a robotic system.
My passion, and what I often work on, is at a higher systems level. For example, I work on Unmanned Ground Vehicles (UGVs), and these can have multiple motherboards installed with state-of-the-art processors (a platform I currently work on has 2 i7 quad core CPUs). As a result, I'm running Ubuntu and developing in C++. If working on larger systems like UAVs, autonomous cars, etc. interests you, then I would highly recommend C++. For advanced autonomy tasks like building perception systems for 3D reconstruction from a stereo camera and path planners that model vehicle dynamics and do forwards physics simulations, everything I've written has been in C++. The only time I've used C at work (and I never needed to optimize Assembly for my purposes) was when I wrote low-level control code for the drive-by-wire system on a UGV, which was developed on a Raspberry Pi. In fact, most of what I developed here was still in C++, but I was provided with some libraries written in C to interface with a custom daughterboard for the Raspberry Pi (that one of our EE experts designed) which interfaced with the actuators and sensors installed on the vehicle.
Specifically for an interview, I would suggest showing the passion that you have for your work. In my experience, it's very difficult to judge a person's technical capabilities in a single interview, especially for students who are in the process of learning their trade. If you show that you love what you're doing (bonus points if you can show that you code/design PCBs/etc in your spare time), then most employers will latch onto your enthusiasm and come to the conclusion that you have great potential because you are the type of person that will learn quickly. In this respect, you become an investment that the employers are happy to make. If you had years of experience in the work force, that's when I would start to think about what you know, instead of what you can learn and become on the job.
Edit: Forgot to mention, developing your own side projects with ROS and OpenCV would give you some fantastic experience for some more advanced software-related robotics skills. You can of course build your own mechanical platform and integrate whatever sensors/electronics you'd like for a full interdisciplinary experience from which you'd learn a lot. For example, go build a robot from scratch that can follow a yellow object you hold in front of it, like a dog and a bone!
-
1$\begingroup$ +1 Also, I would love mentioning that some people misunderstand about C, C++ etc. After writing some fibonacci program or so, they feel like they 'know' C/C++ although nothing much will be known about compilation, make, libraries etc. I was told the same with TurboC some five-six years ago and I was feeling the same too. Knowing how to use things like Raspberry Pi practically by facing couple of practical issues (like current) etc is how I assess how much I know. May-be this point can be included - many of us feel like we know although 'depth' is dubitable. (yes simple; yet lazy) $\endgroup$ Mar 29, 2017 at 12:03
Consider looking into SCADA systems. Factory automation and industrial controls are often based on SCADA technologies and protocols.