9.4. Kinematic chains#

9.4.1. Series of homogeneous transforms#

Now that we understand how powerful homogeneous transforms are, we will take it one step further, and chain multiple transforms.

In this example, we will calculate the position of the wrist in global coordinates, according to Fig. 9.6, based on this known information:

  • the length of the upper arm is 38 cm;

  • the shoulder is located 15 cm forward and 70 cm upward to the global origin;

  • the upper arm is inclined at 30 degrees of the vertical.

  • the length of the forearm is 34 cm;

  • the elbow is flexed 20 degrees.

Solution:

The way to solve this problem is to see it as a chain of parent-child relations between coordinate systems (CS). Let’s consider the previous example in the form of a parent-child chain.

\[ \text{global CS} \rightarrow \text{upper arm CS} \rightarrow \text{elbow} \]
  • The position of the elbow was a child of the upper arm frame;

  • The upper arm frame was a child of the global frame;

We solved \(^\text{global}p_\text{elbow}\) by expressing:

  1. the position of the elbow in its parent frame: \(^\text{upper arm}p_\text{elbow}\);

  2. the upper arm frame in its parent frame: \(^\text{global}_\text{upper arm}T\).

and by using this equation.

\[ ^\text{global}p_\text{elbow} ~~~= ~~~^\text{global}_\text{upper arm}T ~~~^\text{upper arm}p_\text{elbow} \]

This new problem is similar, with the difference that we now have an additional chain:

\[ \text{global CS} \rightarrow \text{upper arm CS} \rightarrow \text{forearm CS} \rightarrow \text{wrist} \]
  • The position of the wrist is a child of the forearm frame:

  • The forearm frame is a child of the upper arm frame;

  • The upper arm frame is a child of the global frame;

We solve \(^\text{global}p_\text{wrist}\) by expressing:

  1. the position of the wrist in its parent frame: \(^\text{forearm}p_\text{wrist}\);

  2. the forearm frame in its parent frame: \(^\text{upper arm}_\text{frame}T\);

  3. the upper arm frame in its parent frame: \(^\text{global}_\text{upper arm}T\).

This leads to this equation:

\[ ^\text{global}p_\text{wrist} ~~~= ~~~^\text{global}_\text{upper arm}T ~~~^\text{upper arm}_\text{forearm}T ~~~^\text{forearm}p_\text{wrist} \]

Tip

Take a look at how using this notation, the upper and lower indices cancel out to give the final transformation.