Feed-forward compensation

Based on Section 8.4 of Robotics: Modelling, Planning and Control.

The previous approach treats non-linearities and couplings as disturbances. These disturbances are known, however, and can be compensated.

Two approaches can be used, that are useful for tracking problems:

  1. Decentralized feed-forward compensation

  2. Computed torque feed-forward control

Decentralized feed-forward compensation

Position feedback control loop with decentralized feedforward compensation.

../../_images/4.3.1decentralized_FF_comp.svg

This schema greatly improves the performance of the tracking when high values of speed and acceleration are required.

We can check that the tracking is effectively achieved (\(\theta_m = \theta_{md}\)):

\[\theta_m = W(s) \left[ k_{TP} \,\theta_{md} + \frac{s}{K_P (1 + s T_p) k_m}s \theta_{md} + \frac{sT_m}{K_P(1+sT_p)k_m}s^2 \theta_md \right]\]
\[= W(s) k_{TP} \left[ 1 + \frac{s^2 (1 + s T_m)}{k_m\, K_P \,k_{TP} (1 + s T_p)} \right] \theta_{md}\]
\[= W(s) k_{TP} \left[ 1 + \frac{s^2 (1 + s T_m)}{k_m K_P k_{TP} (1 + s T_p)} \right] \theta_{md}\]
\[= \frac{1 / k_{TP}}{1 + \frac{s^2 (1 + s T_m)}{k_m K_P k_{TP} (1 + s T_p)}} \cdot k_{TP} \left[\frac{1 + s^2 (1 + s T_m)}{k_m K_P k_{TP} (1 + s T_p)}\right] \theta_{md}\]
\[= \theta_{md}\]

If position feedback is substituted by position/velocity/acceleration feedback, then the feedforward compensation requires less knowledge of the model (i.e., \(T_m\) and \(k_m\) values).

../../_images/4.3.2decentralized_FF_pos_vel.svg

Computed torque feed-forward control

The idea is to add an extra term to the feedforward compensation that is able to compensate the disturbance itself, rather than its effects, by taking advantage of the dynamic model of the manipulator.

As detailed in the previous chapter, we had that:

\[k_r^{-1} \boldsymbol B k_r^{-1} \ddot{\boldsymbol{q}}_m + F_m \dot{\boldsymbol{q}}_m = \boldsymbol{\tau}_m - \boldsymbol{d}\]

with

\[\boldsymbol{d} = k_r^{-1} \Delta B(\boldsymbol{q}) k_r^{-1} \ddot{\boldsymbol{q}}_m + k_r^{-1} C(\boldsymbol{q}, \dot{\boldsymbol{q}}) k_r^{-1} \dot{\boldsymbol{q}}_m + k_r^{-1} \boldsymbol{g}(\boldsymbol{q})\]
\[B(\boldsymbol{q}) = \boldsymbol{B} + \Delta B(\boldsymbol{q})\]
\[F_m = k_r^{-1} F_v k_r^{-1}\]

where \(\boldsymbol{d}\) contains all the coupling terms, and that is a disturbance that can be anticipated by a feedforward term \(R_a k_t^{-1} \boldsymbol{d}_d\), with:

\[\boldsymbol{d}_d = k_r^{-1} \Delta B(\boldsymbol{q}_{d}) k_r^{-1} \ddot{\boldsymbol{q}}_{md} + k_r^{-1} C(\boldsymbol{q}_{d}, \dot{\boldsymbol{q}}_{d}) k_r^{-1} \dot{\boldsymbol{q}}_{md} + k_r^{-1} \boldsymbol{g}(\boldsymbol{q}_d)\]
../../_images/4.3.3torque_FF.svg

This centralized FF action:

  1. Compensates the non-linear coupling due to the inertial, coriolis and centrifugal and gravitational terms that depend on the structure and that vary during the manipulator motion.

  2. Is computationally costly: This cost can be reduced if only the gravitational part \(k_r^{-1} \boldsymbol{g}(\boldsymbol{q})\) and the diagonal terms of the inertial part \(k_r^{-1} \Delta B(\boldsymbol{q}) k_r^{-1}\) are computed.

  3. Tends to compensate the disturbance (\(\boldsymbol{d}\)) and allows the control system to operate in a better condition. This is an inverse model strategy.