title_body: What does Feed Forward do and how does it work? PID tuning involves P, I and D gains to help the quad follow RC commands. 
  
  Whenever there is an error, P would "push" the quad to reduce the error. So how does Feed Forward come to play?
upvoted_answer: The way the PID controller works is whenever the actual rate of rotation of the quadcopter does not equal the setpoint, or desired rate of rotation (which you set by moving the sticks), it sends a signal to the motors to compensate and bring the rate closer to the setpoint.
  
  This signal is a sum of four terms: The P, I, D and FF. Since it's a sum, you can think of them as each pushing the quad in a certain direction independently, some terms adding up and others counteracting each other.
  
  The P term is the difference between the setpoint and actual rate, multiplied by the P gain. So the amount of force applied by the P term is directly proportional to that difference. You can think of it as a spring that tries to move the quad back whenever it's bumped out of position. The further it's moved (bigger difference between setpoint and actual rate) and the stiffer the spring (bigger P gain), the stronger it will pull.
  
  The reason why the FF term is needed is because the signal that the PID controller outputs influences the acceleration, not the speed directly. This means that the quad will not get up to speed immediately, but take some time depending on how hard it pushes itself. So when you want to sharply begin a maneuver you want the quad to apply a lot of force in that direction to get going and then sustain the rotation with a smaller force. 
  
  The PID controller, however, is meant for stabilizing. It does not distinguish between you bumping the stick and the quad being bumped out of position by an obstacle or gust of wind. So when you move the stick it "stabilizes" itself at the new speed as if you didn't move the stick at all and it was bumped by something instead. You can think of moving the stick as moving the other end of the spring that the quad is attached to. The spring doesn't care which end was moved, just that its length changed.
  This means that the PID controller won't apply as much force to start the rotation as it potentially could, which means it is somewhat slow to speed up when you move the stick, and, more importantly, slower to slow down when you move the stick back to center (and can even overshoot).
  
  You can make the reaction faster by increasing the P gain, but to a point, as higher P gains lead to oscillations, when the quad's movements lead to big P terms which in turn cause bigger movements and so on.
  
  So instead the FF term was added. The FF term does not consider the current rotation rate at all, so it does not contribute to the PID loop's stabilizing action and is thus unable to cause oscillations. The only thing that it looks at is the sticks. The force applied by the FF term is proportional to the rate at which you move your stick (multiplied by the FF gain). 
  So when you, for example, initiate a roll and bump the stick to the right, the FF term will detect the fast stick movement and give a burst of force to get the quad going. Then, when you finish the roll and return your stick back to center, the FF term will detect the opposite fast stick movement and apply a corresponding force, helping the PID controller stop the quad's rotation faster and avoid overshooting.