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.