Recall our dynamics for a single-joint robot.
I'll lump together the gravity and friction terms into a single term h.
In the last video we learned about PID feedback control.
While it can give good performance, it still requires error to accumulate before it will
command a torque.
If we have a good dynamic model of the robot, there is no need to wait for error to start
commanding a torque.
Our dynamic model is M-tilde and h-tilde, based on estimates of the inertia of the robot,
the gravitational term, and friction.
If the model is perfect, then M-tilde equals M and h-tilde equals h at all times.
With our dynamic model, we can design a feedforward controller.
At each time instant, we apply the torque M-tilde times theta_d-double-dot plus h-tilde
of (theta_d, theta_d-dot).
The desired position, velocity, and acceleration at any time instant comes from the known desired
trajectory at that time instant; there is no feedback from the joint.
Of course feedforward control will not work well on its own, as we never have a perfect
model of the dynamics.
There is no mechanism to recover from errors.
Let's consider a control law that combines the benefits of a good dynamic model and the
stabilization of the PID controller.
Here is one possibility.
The first term of the control law is M-tilde times an acceleration, which is the sum of
the feedforward acceleration at this time instant plus an acceleration generated by
a PID controller.
The M-tilde model turns the feedforward plus feedback acceleration into a joint torque.
The second term of the control law provides the torque h-tilde that is estimated to be
needed to balance friction and gravity at the current state.
Notice that if the error is always zero, this control law reduces to the feedforward controller.
This control law goes by different names, but it's often called computed torque control.
Because of the possibility of instability raised by integral control, the integral term
can be eliminated.
If the model M-tilde and h-tilde is exact, we can remove the tildes in our analysis of
the control law.
Then the commanded acceleration theta-double-dot, which is the sum of feedforward and feedback
terms, is achieved exactly by the commanded torques.
The second derivative of the error is theta_d-double-dot minus theta-double-dot.
Plugging in the commanded acceleration, the error dynamics can be expressed like this.
Taking the derivative, we get this third-order homogeneous differential equation, yielding
zero steady-state error.
This linear error dynamics applies along arbitrary trajectories of the robot, since the use of
the dynamic model effectively linearizes the dynamics.
Let's apply the computed torque controller to track the trajectory shown here.
Our model of the dynamics is not perfect, as you can see from this simulation of the
trajectory when using only feedforward control.
The robot starts out approximately on the trajectory, but over time the actual trajectory
diverges from the desired due to error in the model.
We could instead try a PID controller with no dynamic model.
Finally, we could try computed torque, which provides better tracking than either of the
other two controllers.
We could also look at a standard measure of the control effort exerted by the motor, the
time integral of the torque squared.
At first, the PID control effort is the lowest, before the error builds up to start driving
the torque.
Soon, though, the PID control effort exceeds the control effort of the computed torque
method.
This is typical behavior of the computed torque method: it provides better trajectory tracking
than pure feedback control with lower control effort.
In short, if we have a reasonable model of the robot's dynamics, we should use it in
the controller.
To summarize, the single-joint computed torque control law is given here.
This controller generalizes readily to multi-joint robots.
The difference is that tau, theta_d, and theta_e are vectors, h-tilde is a vector of Coriolis,
gravity, and possibly friction terms, M-tilde is a model of the robot's configuration-dependent
mass matrix, and K_p, K_i, and K_d are diagonal matrices, each consisting of a positive scalar
times the identity matrix.
The linearization of the dynamics provided by the model M-tilde and h-tilde makes each
joint have the same stable linear error dynamics.
This is a block diagram of the computed torque controller.
The measured position and velocity of the robot feed back to the PID controller, to
the calculation of the M-tilde matrix, and to the calculation of the h-tilde vector.
This controller provides good performance when the dynamic model of the robot is reasonably
good.
If the dynamic model is poor, then using it in the controller could actually hurt performance
compared to a model-free feedback controller.
Also, evaluating the mass matrix and h-vector could be computationally intensive for real-time
control.
For this reason, simpler versions of this control law are common.
For example, PD feedback control plus gravity compensation can provide good performance,
and it is much less computationally expensive to evaluate a model of gravitational torques
than it is to compute a full dynamic model.
Finally, we could express the computed torque control law in terms of the task-space dynamics
of the robot, derived in Chapter 8.
The end-effector wrench F_b, expressed in the end-effector frame, equals the end-effector
mass matrix Lambda times the end-effector acceleration V_b-dot plus the wrench eta due
to Coriolis and gravity terms.
Our dynamic model is Lambda-tilde and eta-tilde.
Recalling the joint-space computed torque control law, by analogy we write the task-space
computed torque control with F_b, Lambda-tilde, and eta-tilde replacing tau, M-tilde, and
h-tilde, respectively.
The analog to the feedforward acceleration theta_d-double-dot is the time-derivative
of the desired twist, V_d-dot.
Technically, this feedforward acceleration should be expressed in the current end-effector
frame, but let's ignore that detail.
The analogy to the PI terms replaces theta_e by the twist X_e that takes the current end-effector
frame to the desired end-effector frame in unit time.
Finally, the analogy to theta_e-dot is the twist V_e, which is the desired twist V_d,
expressed in the current end-effector frame, minus the current twist V_b.
This is the resulting control law, and the actual torques applied at the joints are obtained
by pre-multiplying the control wrench F_b by the Jacobian transpose.
Other simpler task-space control laws could be formulated, but they all involve computing
an end-effector wrench and then pre-multiplying by the Jacobian transpose to get the joint
forces and torques tau.
This completes our study of motion control where the controller commands joint forces
or torques.
In the next video we move on to force control.