Significance of feed forward torque term in motor control loop?

I was wondering how the feed-forward term affects the motor control loop. I have seen Feed forward term used in the drone control loop that controls acceleration along the drones axis. In the case of the drone, Feedforward helps in faster convergence to target acceleration trajectory. In terms of motor control, I am finding it a little difficult to visualize. can someone give inputs?

I was also wondering if this term will give some torque boost.


This is a view of the controller:

In feedback only mode, the joint impedance controller will apply a proportional torque to the error with respect with the joint reference position and velocity. This makes the actuator behave as a spring and damper system. The stiffness and damping are defined by the gains Kp and Kd.

In a perfect world with perfect actuator model, if we know exactly the amount of torque we need to apply to execute a trajectory, and a perfect knowledge of the initial condition we could directly send torque command in open loop.

In real life, this is highly unrealistic, and the actuator state (position and velocity) will quickly diverge.

The Feedforward term allows you to mix the two approaches. This can help in two different way:

  • With similar Kp and Kd gains, adding a good feedforward will improve the tracking of your trajectory.
  • With similar tracking performances, we can decrease the stiffness of the actuator and better interact with environment, for example.

On solo robot, for example, the feedforward term is very useful to compensate for the gravity without having to go with crazy high gain which make the joint controller diverge.

I was also wondering if this term will give some torque boost.

nop, the maximum torque is define by the maximum current the motor driver and motor can handle. It will correspond to the output of the controller: feedback + feedforward.

Hope this helps,


Hi Thomas! Thanks for the reply can you point me to sources where I can learn about gravity compensation for quadrupeds? I am assuming that in gravity compensation, we calculate the counter-torque caused by the mass of the robot and gravity on each motor joint. Then we reverse the sign of these calculated values and feed it as feed-forward correct?

You are correct. Another way of putting it is that if you know the force you want to apply on the contact of each legs, you can translate it to torques. If the force of each contact correspond to 1/4 of the weight of the robot, the joint torque will compensate for the gravity.

To translate contact force to joint torque, you can use the " J^T . f " method. You can learn about this for example in this lecture: Modern Robotics, Chapter 5: Velocity Kinematics and Statics - YouTube

1 Like