Junior year I took my first Dynamics and Controls class, and it was hands down my favorite class at Hopkins. I had been interested in robotics for some time at this point, from an electrical standpoint, and also because I just thought robots were really cool and their applications continuously growing. However, I had never taken anything relating to the theory behind robotics. I genuinely enjoyed doing my problem sets every week because I always learned something new. The lab associated with my class had us work on a semester long project to build an inverted pendulum.
The first few weeks we began by modeling the system at hand, all the gears, belts, loads, and motors that we would use, drawing free body diagrams, writing out equations of motion, simplifying them to a one-degree of freedom, second-order differential equation, etc. Now would come the fun part. Using an Arduino as our micro-controller driving the voltage input to the motor, which would then drive the various gears and the belts holding our pendulum in place, we were able to model a closed loop system for our pendulum. We wrote a Matlab code where we could easily change various PID parameters and tested them to see which would produce the desired response of our system. The picture was taken from my snap chat (I was clearly really excited) where I posted a video of the response to a disturbance in the system. The pendulum would remain upright, even if you pushed it. It would tilt and move but then immediately shift back and correct itself to the set point.