3.3.2 A 3D Kinematic Chain

Figure 3.12: Types of 3D joints arising from the 2D surface contact between two bodies.
...Degrees of Freedom & 3 Degrees of Freedom

As for a single rigid body, the 3D case is significantly more complicated than the 2D case due to 3D rotations. Also, several more types of joints are possible, as shown in Figure 3.12. Nevertheless, the main ideas from the transformations of 2D kinematic chains extend to the 3D case. The following steps from Section 3.3.1 will be recycled here:

  1. The body frame must be carefully placed for each $ {\cal A}_i$.
  2. Based on joint relationships, several parameters are measured.
  3. The parameters define a homogeneous transformation matrix, $ T_i$.
  4. The location in $ {\cal W}$ of any point in $ {\cal A}_m$ is given by applying the matrix $ T_1 T_2 \cdots T_m$.

Figure 3.13: The rotation axes for a generic link attached by revolute joints.

Figure 3.14: The rotation axes of the generic links are skew lines in $ {\mathbb{R}}^3$.

Consider a kinematic chain of $ m$ links in $ {\cal W}= {\mathbb{R}}^3$, in which each $ {\cal A}_i$ for $ 1
\leq i < m$ is attached to $ {\cal A}_{i+1}$ by a revolute joint. Each link can be a complicated, rigid body as shown in Figure 3.13. For the 2D problem, the coordinate frames were based on the points of attachment. For the 3D problem, it is convenient to use the axis of rotation of each revolute joint (this is equivalent to the point of attachment for the 2D case). The axes of rotation will generally be skew lines in $ {\mathbb{R}}^3$, as shown in Figure 3.14. Let the $ z_i$-axis be the axis of rotation for the revolute joint that holds $ {\cal A}_i$ to $ {\cal A}_{i-1}$. Between each pair of axes in succession, let the $ x_i$-axis join the closest pair of points between the $ z_i$- and $ z_{i+1}$-axes, with the origin on the $ z_i$-axis and the direction pointing towards the nearest point of the $ z_{i+1}$-axis. This axis is uniquely defined if the $ z_i$- and $ z_{i+1}$-axes are not parallel. The recommended body frame for each $ {\cal A}_i$ will be given with respect to the $ z_i$- and $ x_i$-axes, which are shown in Figure 3.14. Assuming a right-handed coordinate system, the $ y_i$-axis points away from us in Figure 3.14. In the transformations that will appear shortly, the coordinate frame given by $ x_i$, $ y_i$, and $ z_i$ will be most convenient for defining the model for $ {\cal A}_i$. It might not always appear convenient because the origin of the frame may even lie outside of $ {\cal A}_i$, but the resulting transformation matrices will be easy to understand.

Figure 3.15: Definitions of the four DH parameters: $ d_i$, $ \theta _i$, $ a_{i-1}$, $ \alpha _{i-1}$. The $ z_i$- and $ x_{i-1}$-axes in (b) and (d), respectively, are pointing outward. Any parameter may be positive, zero, or negative.
...le=figs/dh5.eps,width=2cm} \\
(c) & (d)

In Section 3.3.1, each $ T_i$ was defined in terms of two parameters, $ a_{i-1}$ and $ \theta _i$. For the 3D case, four parameters will be defined: $ d_i$, $ \theta _i$, $ a_{i-1}$, and $ \alpha _{i-1}$. These are referred to as Denavit-Hartenberg (DH) parameters [434]. The definition of each parameter is indicated in Figure 3.15. Figure 3.15a shows the definition of $ d_i$. Note that the $ x_{i-1}$- and $ x_i$-axes contact the $ z_i$-axis at two different places. Let $ d_i$ denote signed distance between these points of contact. If the $ x_i$-axis is above the $ x_{i-1}$-axis along the $ z_i$-axis, then $ d_i$ is positive; otherwise, $ d_i$ is negative. The parameter $ \theta _i$ is the angle between the $ x_i$- and $ x_{i-1}$-axes, which corresponds to the rotation about the $ z_i$-axis that moves the $ x_{i-1}$-axis to coincide with the $ x_i$-axis. The parameter $ a_i$ is the distance between the $ z_i$- and $ z_{i-1}$-axes; recall these are generally skew lines in $ {\mathbb{R}}^3$. The parameter $ \alpha _{i-1}$ is the angle between the $ z_i$- and $ z_{i-1}$-axes.

Steven M LaValle 2012-04-20