1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

How to develop a proper base to pursue an MS in Robotics?

  1. May 2, 2017 #1


    User Avatar

    Hello Guys,
    I'm currently entering my final month of my Bachelors in Mechanical Engineering. I've always wanted to learn more about robotics and Artificial Intelligence ,But never really put the time into it during my bachelors. I'm considering taking a break next year and applying for an MS program in robotics and automation in the September 2018 intake.

    My issue are as follows:

    While i really do want to pursue a career in robotics,I hardly have any of the pre-requisite skills necessary to succeed in that field right now.I have average programming skills.I didn't do too well in my Mechanisms,and haven't really built any robots during the course of my Bachelors. So i would like to learn and catch up on all that this year,So that i would have the necessary fundamentals by the time i join for and MS or maybe an entry level job.

    So I ask my fellow Mechanical Engineers and Robotics Engineers,, What are your suggestions on building a proper foundation in robotics? What books and courses online would you suggest?

    Over the next 6 months, What would you suggest i do to build a strong foundation in this field?

    What are the Mathematical ,Mechanical Engineering and Programming skill sets I would require and How can i work to develop them over the next few months?

    What kind of small projects would you suggest I tackle so that i could stand out as an MS applicant ?
    Last edited by a moderator: May 2, 2017
  2. jcsd
  3. May 2, 2017 #2

    I think your question is quite difficult to answer. I completed my Bachelors in Electro-Mechanical Engineering at the end of last year. This is not a common degree but to put it bluntly, it is a mechanical engineering degree with the added bonus of C programming and a touch of control theory.

    This year I started my Masters in Electrical Engineering, focusing on the design and control for a Biped robot.

    I needed to learn a lot at the start of the year to become familiar with the skills often used in robotics and control. I find robotics in itself is a massive field and you have to identify where you fit in. For me it was the legged robotics lab, working with bio-inspired mechanics. You, on the hand, could go into anything from aerodynamic control and design where you can work with advanced quad-copters (some friends of mine are doing this) to a almost pure AI field where there is very little mechanical design.

    I think your biggest choice is whether you really love design and control or find the mathematics behind AI more interesting.

    For the design and control side I can recommend a few things.

    1. Get familiar with MATLAB, it is widely used throughout the world and has one of the most comprehensive toolboxes. I use it for modeling complex dynamic systems and using it's build in optimization software such as IPOPT to design controllers. There are tons of tutorials for becoming familiar with Matlab but the most relevant I came across in terms of robotics is the University of Michigan's MATLAB control tutorials which you can find here.

    2. MIT also offers tons of free online course which you can use at any time. A very useful course I completed is the Under-actuated robotics course which you can find here. This course is directed at legged robotics but the theory in the first part of the course is very useful no matter what systems you design and control.

    3. Build build build! What makes you learn the fastest is to come up with your own project and work on it. Start easy and build up. Something really fun to start can be something like a balancing robot. Think inverted pendulum where you must control the wheelto keep the body upright. This type of project will test a variety of your skills. You would advance skills in programming a micro controller, using a MEMS device, simulating your system, designing a controller and building the physical platform.

    Hope that helps!
  4. May 4, 2017 #3
    Some suggestions & random thoughts based on too many years doing the electro-mechanical / robotics thing:

    Mechanical Engineering:
    • Dynamic analysis
      • even though MATLAB is de rigeur in this modern era, many will still say a fundamental knowledge / understanding of multi-axis manipulator math is necessary.
      • How to get there:
        • This is covered in many textbooks. I think John Craig's texts are some of the most foundational knowledge. In may day, we manually ground through the matrix math analysis. Now done on computer.
    • power transmission
      • Force, torque, and power to drive an axis. And the commonly available mechanical components used to do it.
      • How to get there:
        • go back to your Dynamics textbook and master the parts about velocity, acceleration, and torque
        • websearch & download a summary sheet called Smart Motion Cheat Sheet in PDF form. Very useful. Your tasks will be converting various forms of rotational power to other forms of rotational & linear motion. Essential to master this.
        • Get catalogs & engineering guides from ballscrew manufacturers and practice sizing exercises. Same for gearmotors, pulley/belt systems. Running these types of calculations will start you on the path to understanding how torque is used to move things, and knowing how much torque you need to move things at necessary speeds.
        • Mechanical transmission components (chains, timing belts, ballscrews, gear reducers, couplings, shafts, gear trains) are all over the net. There is a subculture of hacks out there doing things fun and cheaply, you can start building your toys to experiment & learn.
        • If you can find a Maker Space or other shop facility, this would help a lot for fabrication (but study up on SHOP SAFETY first). Modern Mechanical Engineering curricula has lost significant amounts of hands-on shop skills and familiarity. A lot of this type of knowledge is captured in books on the topic of machine shop practice. Some of my favorites are from Metal Arts Press site.
        • knowledge of bearings, fits & tolerances, and good CAD design are needed. Vendor catalogs are great for bearings info (INA bearings used to have some of the best, most rigorous German-style info). Purchase a copy of Machinery's Handbook (every ME engaged in Machine Design should be given a copy of this along with their diploma, IMHO).
    Electrical Engineering:
    • signals, electrical power transmission, and machine interfacing
      • it will be necessary to know how to make computers communicate with other devices like sensors and actuators. Discrete & analog voltages, time & response issues, and learning how NOT to release the magic smoke that resides inside these electrical devices.
      • How to get there:
        • If completely ignorant about industrial control, I always suggest to my students that they start simply & cheaply. Purchase some relays, switches, and a "smart relay" or micro Programmable Logic Controller. Start learning how to hook things up and make things happen.
        • Next step is connecting things like stepper or servo motor drivers and commanding them to do things you want to do via computer control
    • motors
      • motors are the common method of providing rotational (and sometimes linear) power to a power transmission device, servos and steppers are usually how it's done. Become familiar with these technologies and fluent in the vernacular and analysis.
      • How to get there:
        • plenty of textbooks, handbooks, vendor literature
        • purchase new or used, industrial or hack/toy motors to learn the fundamentals
    • no planned action occurs / information is retrieved until it is commanded to do so, programming of control devices is how this is achieved
    • How to get there:
      • modern tools (MATLAB) remove a lot of the "hard core" programming skills need, but there are many of us that say learning Structured Language Programming will be essential to your success. Probably your goal is to become competent in higher level structured language programming like C/C++/C# (with modern alternatives like Python, etc.). These modern language have wonderfully powerful Integrated Development Environments (IDEs, or programming editor applications) that make the process very fluid.
      • If no previous experience with this, then you teach yourself essential thought processes with something really fundamental like some variant of the BASIC language. That was my starting point back in the early 80's, and I was surprised to discover that it still exists (even though most modern programmers pooh-pooh it as ancient & obsolete). For newbies, it may offer a nice introduction.
      • then start migrating to more modern language. This can be obtained from many sources (books, online, classes).
    Have fun.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted