Starting in this video, we assume that the robot controller commands forces or torques at the joints, not velocities as in the previous videos. Because the controls are forces or torques, the robot's dynamics must be taken into account. We will again begin by assuming a single-joint robot. It is easy to generalize the results to multi-joint robots. Here is a single-joint robot in gravity. The solid circle is the revolute joint, and the distance between the joint and the center of mass of the link is r. The gravitational force pulling down on the robot is m g. The dynamic equation of the robot is the joint torque tau equals M times theta-double-dot, where M is the scalar inertia of the link about the revolute joint, plus m g r cosine of theta, the gravitational torque, plus b theta-dot, where b is a positive viscous friction coefficient. Sometimes I will lump together the gravity and friction terms to get tau equals M theta-double-dot plus h of (theta, theta-dot). Perhaps the most widely used feedback control law is Proportional-Integral-Derivative control, also known as PID control. The controller output tau is K_p times the joint position error plus K_i times the integral of the error plus K_d times the derivative of the error. Evaluating the derivative of the error requires a speed sensor for the joint. This speed sensor is usually simulated by numerically differencing the position readings from a joint encoder. This is a block diagram representation of a PID control system. P control and PI control, as we have already seen, are variants of PID control where one or two of the control gains is set to zero. Another common variant of PID control, particularly in robotics, is PD control, where the integral gain K_i is set to zero. Let's begin by studying PD control for the case where gravity is equal to zero, perhaps because the link is in a horizontal plane. Let's also focus on setpoint control, where the desired joint position is constant. If we equate the joint dynamics and the control torque, and substitute in theta_e-dot equals minus theta-dot and theta_e-double-dot equals minus theta-double-dot, we get this error dynamics. Dividing by M, we get this standard second-order form, where the damping ratio zeta is b plus K_d over 2 times the square root of K_p M and the natural frequency omega_n is the square root of K_p over M. Notice that the virtual damper K_d plays the same role as the viscous friction b. We should choose K_d and K_p to at least make the error dynamics stable. In other words, the roots of the characteristic equation must have a negative real component, which is assured if K_d is greater than negative b and K_p is greater than zero. If these conditions are satisfied, then because the differential equation is homogeneous, the steady-state error is zero. We should also use what we learned about the transient response of second-order systems to place the roots to give a fast settling time and no overshoot. In particular, we could choose K_d and K_p to achieve critical damping, and otherwise choose the gains large enough to get a fast response. The gains shouldn�t be too large, though, as this can result in rapid torque changes, sometimes called chattering, inducing unwanted vibrations. Also, unmodeled dynamics, actuator limits, sensor errors, and the fact that the control law is implemented in discrete time, not continuous time, could actually lead to instability of the robot if the gains are large. In the next video, we'll consider the full PID controller, where the gain K_i is not zero.