Auto PID tuning isn't that hard if you really understand how PID works and mimic what a good human tuner would do manually. The key concept is that you need to be able to separate the effects of the various components (P, I , and D). I posted the theory behind my auto tuning algorithm here...