In the previous video, we learned that setpoint PD control can eliminate steady-state error for a torque-controlled joint in the absence of gravity. If we add gravity, though, the error dynamics are no longer homogeneous. As a result, even if the error dynamics are stable, at steady state when theta-double-dot and theta-dot are zero, there will be a nonzero steady state error, m g r cosine theta over K_p. For example, imagine the initial resting state of the joint is at minus pi over 2. The desired setpoint is theta_d equals zero. The error response looks like this. The joint stops short of the desired angle. If we plot the torque due to the proportional term and the torque due to the derivative term, the derivative term goes to zero in steady state, while the proportional term provides the torque that holds the arm at its position in gravity. The point is that there must be error for the controller to provide torque in steady-state, and therefore the steady-state error cannot be zero. One solution, as we've seen before, is to add an integral term to the controller, giving us setpoint PID control. To perform a linear analysis, we have to address the nonlinear term that depends on the cosine of the angle. I will replace this term by a constant, tau_disturbance. Replacing by a constant is justified in the upcoming analysis, since I will be considering the steady-state behavior of the controlled robot, when this nonlinear term approaches a constant. Equating the dynamics and the control torque, we get this error dynamics. To get a differential equation, we can differentiate both sides. The result is a homogeneous third-order differential equation with this characteristic equation. By adding an integral term to the controller, we added a state to the dynamics, increasing the order of the differential equation from second order to third order. For stability, the roots must all have a negative real component. As for the PD controller, K_d must be greater than minus b and K_p must be greater than zero. The gain K_i must also be greater than zero, but unlike K_p and K_d, K_i also has an upper bound for stability. Before, for our second-order differential equation, the only dangers in choosing large gains were due to practical considerations, like actuator limits, unmodeled dynamics, and finite servo frequencies. Now, with a third-order PID-controlled system, even our ideal linear model shows that choosing K_i too large could result in instability. Let's see this graphically by plotting the roots in the complex plane. First, let's choose K_i equal to zero, and choose the gains K_p and K_d to give critical damping, two collocated roots on the real axis. We'll keep K_p and K_d constant. Next, let's add a small positive K_i. This creates a third root close to the origin. As we increase the gain K_i, the two collocated roots move away from each other on the real axis, and the root at the origin moves left. When we have increased K_i sufficiently, two roots meet on the real axis, while the third has moved further left. Since the two collocated roots are much slower than the root far to the left, the transient error response of this third-order system is similar to that for a critically damped second-order system. The response is slower than for the original critically damped PD controller, though, because the collocated roots are now further to the right. If we continue to increase K_i the two collocated roots break away from the real axis and move into the right-half plane when K_i reaches its upper bound for stability. The error dynamics would be unstable for the roots shown. We've drawn the root locus for K_i increasing from zero, and it demonstrates the key features of adding integral control: The integral term can improve steady-state response, but it can worsen the transient response. In particular, adding an integral term could cause overshoot and oscillation, and in the worst case, instability. Since stability is paramount in control, often robot controllers avoid the use of an integral term, prioritizing stability over steady-state error reduction. Or, if a nonzero gain K_i is used, it is chosen to be small. In addition, the magnitude of the integrated error may be capped at a maximum value. Let's design our PID controller to place the roots as shown here, which will yield an underdamped error response. Returning to our example setpoint control problem, we recall that our original PD controller results in steady-state error. Adding a positive gain K_i, we see that the PID controller drives the steady-state error to zero. The overshoot shows that the response is somewhat underdamped. Examining the torques due to the proportional, integral, and derivative terms, we see that the proportional and derivative terms both go to zero, while the integral term reaches a nonzero steady state. That is the torque that allows the joint to resist gravity even when the error is zero. In the next video, we will combine PID feedback control with a dynamic model of the arm to derive our gold-standard motion controller, the computed torque controller.