The control problem

Based on Sections 8.1 and 8.2 of Robotics: Modelling, Planning and Control.

Link to the practical session on Control

The dynamic equations considering the driving system

The different techniques and schemes for controlling the motion of a manipulator depend on several issues, such as:

  1. The goal: Tracking of a trajectory vs. positioning at a given configuration.

    Tracking usually requires more demanding schemes that may include feed-forward terms.

  2. The morphology of the robot: Cartesian vs. Anthropomorphic.

    More coupled morphologies may require centralized control schemes, or the satisfaction of some assumptions that may allow to work with decentralized control schemes.

  3. The driving system: Electric motors with reduction gears of high ratios vs. direct drives.

    1. The first allow the linearization and decoupling of the system dynamics (although friction and backslash may degrade the performance). A decentralized control scheme can be used.

    2. The second require a centralized control scheme to cope with the coupling and the non-linearities, and as an advantage have no backlash.

We will now derive the dynamics of the manipulator plus the driving system. Then, we will justify when a decentralized scheme can be used.

Consider the following variables:

  • \({\boldsymbol q}\): Joint Values

  • \({\boldsymbol q}_m\): Actuator Values

  • \({\boldsymbol \tau}\): Joint Torques

  • \({\boldsymbol \tau}_m\): Actuator Torques

  • \({k}_r\): Reduction gears (\(n \times n\) matrix)

The relationship is:

\[\begin{split}\begin{array}{l} k_r {\boldsymbol q} = {\boldsymbol q}_m \\ {\boldsymbol \tau}_m = k_r^{-1} {\boldsymbol \tau} \end{array}\end{split}\]

Velocity controlled driving system

Let’s first assume a velocity-controlled driving system:

  1. \({\boldsymbol \tau}_m = k_t {\boldsymbol i}_a\)

    where:

    \({\boldsymbol i}_a\) : armature current
    \(k_t\) : torque gains, a \((n \times n)\) matrix
  2. \({\boldsymbol v}_a = R_a {\boldsymbol i}_a + k_v {\boldsymbol \tau}_m\)

    where:

    \({\boldsymbol v}_a\) : armature voltage
    \(R_a\) : armature resistance, a \((n \times n)\) diagonal matrix
    \(k_v\) : voltage gains, a \((n \times n)\) matrix
  3. \({\boldsymbol v}_a = G_c {\boldsymbol v}_e\)

    where:

    \({\boldsymbol v}_e\) : control voltages
    \(G_c\) : amplifier gains, a \((n \times n)\) matrix

The schema of the manipulator with this velocity-controlled driving system is:

../../_images/vel_control_driving_system.svg

The expression of the applied torque results:

\[{\boldsymbol \tau} = k_r {\boldsymbol \tau}_m = k_r k_t {\boldsymbol i}_a = k_r k_t R_a^{-1} \left[ {\boldsymbol v}_a - k_v \dot{\boldsymbol q}_m \right]\]
\[\boxed{ {\boldsymbol \tau} = k_r k_t R_a^{-1} \left[ G_c {\boldsymbol v}_c - k_v k_r \dot{\boldsymbol q} \right]}\]

Now, let’s substitute \({\boldsymbol \tau}\) in the manipulator dynamics (without considering static friction for simplicity):

\[B({\boldsymbol q}) \ddot{{\boldsymbol q}} + C({\boldsymbol q}, \dot{{\boldsymbol q}}) \dot{{\boldsymbol q}} + F_v \dot{{\boldsymbol q}} + {\boldsymbol g}({\boldsymbol q}) = {\boldsymbol \tau}\]
\[B({\boldsymbol q}) \ddot{{\boldsymbol q}} + C({\boldsymbol q}, \dot{{\boldsymbol q}}) \dot{{\boldsymbol q}} + F_v \dot{{\boldsymbol q}} + {\boldsymbol g}({\boldsymbol q}) = k_r k_t R_a^{-1} \left[ G_c {\boldsymbol v}_c - k_v k_r \dot{\boldsymbol q} \right]\]
\[B({\boldsymbol q}) \ddot{{\boldsymbol q}} + C({\boldsymbol q}, \dot{{\boldsymbol q}}) \dot{{\boldsymbol q}} + \underbrace{(F_v + k_r k_t R_a^{-1} k_v k_r) \dot{{\boldsymbol q}}}_{F} + {\boldsymbol g}({\boldsymbol q}) = \underbrace{k_v k_t R_a^{-1} G_c {\boldsymbol v}_c}_{{\boldsymbol u}}\]
\[\boxed{ B({\boldsymbol q}) \ddot{{\boldsymbol q}} + C({\boldsymbol q}, \dot{{\boldsymbol q}}) \dot{{\boldsymbol q}} + F \dot{{\boldsymbol q}} + {\boldsymbol g}({\boldsymbol q}) = {\boldsymbol u}}\]

with:

\[\begin{split}\begin{cases} F = F_v + k_r k_t R_a^{-1} k_v k_r \\ {\boldsymbol u} = k_r k_t R_a^{-1} G_c {\boldsymbol v}_c \end{cases}\end{split}\]

Current controlled driving system

Now, let’s assume a current controlled driving system (the actuator behaves as a torque-controlled generator):

\[{\boldsymbol i}_a = G_i {\boldsymbol v}_c\]
\[{\boldsymbol \tau} = k_r {\boldsymbol \tau}_m = k_r k_t {\boldsymbol i}_a = k_r k_t G_i {\boldsymbol v}_c\]

Now, the dynamic equation of the manipulator plus the driving system is:

\[\boxed{ B({\boldsymbol q}) \ddot{{\boldsymbol q}} + C({\boldsymbol q}, \dot{{\boldsymbol q}}) \dot{{\boldsymbol q}} + F \dot{{\boldsymbol q}} + {\boldsymbol g}({\boldsymbol q}) = {\boldsymbol u}}\]

with:

\[\begin{split}\begin{cases} F = F_v \\ {\boldsymbol u} = k_r k_t G_i {\boldsymbol v}_c \end{cases}\end{split}\]

So, from now on, the dynamics equation used in the control problem will be:

\[B({\boldsymbol q}) \ddot{{\boldsymbol q}} + C({\boldsymbol q}, \dot{{\boldsymbol q}}) \dot{{\boldsymbol q}} + F \dot{{\boldsymbol q}} + {\boldsymbol g}({\boldsymbol q}) = {\boldsymbol u}\]

Centralized vs. decentralized control

For a velocity-controlled driving system we had:

\[{\boldsymbol \tau} = k_r k_t R_a^{-1} \left[ G_c {\boldsymbol v}_c - k_r k_t \dot{{\boldsymbol q}} \right]\]

Then, if:

  • High reduction ratios are used (\(k_r \uparrow \uparrow\))

  • Efficient servo motors are used (\(R_a \downarrow \downarrow\))

  • Not high speeds and/or accelerations are demanded (\(\tau \downarrow \downarrow\))

this means that the term \(G_c {\boldsymbol v}_c - k_r k_t \dot{{\boldsymbol q}}\) is really small:

\[G_c {\boldsymbol v}_c - k_r k_t \dot{{\boldsymbol q}} \approx 0 \Rightarrow \boxed{{\boldsymbol v}_c = G_c^{-1} k_r k_t \dot{{\boldsymbol q}}}\]

Since \(G_c^{-1} k_r k_t\) is a diagonal matrix, this means that the velocity of joint \(i\) can be controlled by the \(i\) -th control voltage, i.e., a decentralized control scheme can be used. Coupling is not relevant and can be treated as a disturbance.

If the previous assumptions do not hold, e.g. a direct drive is used (\(k_r = I\)) instead of electric motors with reduction gears of high ratios, or demanding trajectories are to be tracked — then a centralized control scheme is required.

In these situations the velocity-controlled driving system is replaced by the current-controlled driving system, which is more robust to the motor parameters (see expression of \(\mathbf \tau\) in both cases).

Control in joint space vs. control in operational space

Joint space control

It assumes a desired trajectory in terms of joint values \({\boldsymbol q}_d\), velocities \(\dot{{\boldsymbol q}}_d\) and accelerations \(\ddot{{\boldsymbol q}}_d\).

Usually, however, specifications are set in operational space. Thus, an IK module is required to transform the operational space references into joint space references.

../../_images/4.1joint_space.svg
  • Simple control scheme

  • IK is in open loop; uncertainties in the structure are not absorbed by the feedback control loop.

  • When required, \(\dot{{\boldsymbol q}}_d\) and \(\ddot{{\boldsymbol q}}_d\) are computed numerically by differentiation of \({\boldsymbol q}_d\).

Operational-space control

It has \({\boldsymbol x}_d\) directly as input to the control scheme.

../../_images/4.1operational_space.svg
  • Usually \({\boldsymbol x}_e\) is not measured, but computed using FK from the measured joint values \({\boldsymbol q}\).

  • Two alternative schemes are possible.

a) Jacobian Inverse Control

../../_images/4.1jacobian_inverse.svg

b) Jacobian Transpose Control

../../_images/4.1jacobian_transpose.svg
  • The computational cost in the control loop is higher than in the joint space control. The required sampling times may degrade the system performance.

  • This approach is left to the applications where the environment constrains the robot motions and position/force control schemes or visual servoing schemes are required to control the task.