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.