[IEEE CSS Video Clip Contest 2015 Submission]
This is a video introduction to controlling self-driving cars, specifically using PID-control. Special emphasis is placed on how the proportional, integral, and derivative gains affect the performance of the vehicle.

Music: - Solar Flares

Video References:

DARPA Urban Challenge MIT footage
Google Earth
Dog Driving Car
Car in Parking Lot

Script & Narration: Luke Johnson
Hardware & Control: Brett Lopez
Visualization: Shih-Yuan Liu
Editing & Overlays: Justin Miller

Lab footage courtesy of:
Aerospace Controls Laboratory @MIT
Jonathan P. How, Director

Thanks MIT Team!


Alexandre Mainardi

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • Nice video Alexandre!

    Nikola, I enjoyed the video you posted as well.
  • i was about to type that this should be added to wiki. it is difficult to understand PID terms without graphics.  but already I see the first comment is the one I was about to add. I think my fundamentals of PID are now quite clear. great work alexander!

  • Thanks for the followup, Mike, but IMHO simulated PID tuning lulls you into a false sense of security.  Real devices have a lot of noise and error sources that simulations don't take into account.

    My frustration is that some of these concepts we deal with are really difficult to wrap your brain around and the online references require such a deep background knowledge.  Or the technical papers gloss over implementation details because they are written by academics.  (And then a miracle occurs.  I think you need to be clearer in step 2).

    Here's an example of "Damn, I wish there was more to this."

    This was the beginning of a really great talk on EKF.  Unfortunately, the audience wouldn't shut the hell up long enough for the speaker to get into the implementation details.

  • Quality video! It wasn't until I showed my boss this video that I realised he had no understanding of how PIDs work

  • Hi Alexandre and Mike,

    Great video!

    PIDs are poorly understood by the vast majority of people, (even those of us who have to deal with them.

    Your video definitely describes the essential elements in the most understandable and straight forward way I have ever seen.

    I will be linking to your video in the Navigation section of my DronesAreFun website.

    Best Regards,


  • The goal of the video was give an introduction to PID control with a practical example that interested students could relate to: driving a car. With a four minute video, you do not have time to explain how to tune the controller-- that is control theory, and there are other great resources where you can read about this. Maybe our next video will be about tuning PID gains. 

    Control Tutorials for MATLAB and Simulink - Introduction: PID Controller Design
  •   It is an good visualization for those who are trying to better visualize how PID gains effect the control of a body.

     As Nikola noted, this really doesn't help in determining a "best" tuning outcome (which may be highly subjective to the application).  Most guides like this fall under a category I would term as fuzzy tuning.  If more/less of this behavior is desirable/undesirable, increase/decrease this parameter.  For most drone applications, critically damped give the best control response (minimum rms error).  For a passenger vehicle, critically damped may result in a ride that occupants find uncomfortably harsh (desired path planning my come into play here).

      Also of note is that when tuning rate parameters, this visualization is less intuitively relevant compared to attitude parameters, which is an almost perfect match for this example.

  • Stuff like this annoys me. They tell you what the problem is (tuning the controller) which is pretty obvious to the non-expert but make no attempt to explain how to go about solving it.  The appropriate phrase is "Left as an exercise to the reader."  I had the same feeling sitting through SIGGraph paper presentations or even courses in the early 1990s where the speaker says, "This is where you use your 4th-order Adaptive Runge-Kutta solver to solve the physics equations," or, "We implemented the Navier-Stokes Equations for fluid dynamics..."  Sure you did.  Show us the source code.  I have the same feeling towards most online references about how Extended Kalman Filters work.  All that fancy math notation tough to translate into C code.
    But on the subject of tuning PID controllers, I found that Google is less of a friend that you'd like.  There are all sorts of references for tuning non-mechanical systems but not very many for mechanical ones and even some of those make certain assumptions that break on a real system.

  • This definitely should go on the Wiki. I can see the correlation between steering angles of the car and the angles of a multirotor. Great explanation.
  • 100KM
    Indeed brilliant explanation!
This reply was deleted.