next up previous
Next: A Kinematic Chain in Up: Transformations of Kinematic Chains Previous: Transformations of Kinematic Chains

A Kinematic Chain in ${\mathbb R}^2$

  Before considering a chain, suppose ${\cal A}_1$ and ${\cal A}_2$ are two rigid bodies, each of which is capable of translating and rotating in ${\cal W}=
{\mathbb R}^2$. Since each body has three degrees of freedom, there is a combined total of six degrees of freedom, in which the independent parameters are x1, y1, $\theta_1$, x2, y2, and $\theta_2$. When bodies are attached in a kinematic chain, degrees of freedom are removed.

Figure 2.7 shows two different ways in which a pair of 2D links can be attached. The place at which the links are attached is called a joint. In Figure 2.7.a, a revolute joint is shown, in which one link is capable only of rotation with respect to the other. In Figure 2.7.b, a prismatic joint is shown, in which one link translates along the other. Each type of joint removes two degrees of freedom from the pair of bodies. For example, consider a revolute joint that connects ${\cal A}_1$ to ${\cal A}_2$. Assume that the point (0,0) in the model for ${\cal A}_2$ is permanently fixed to a point (xa,ya) on ${\cal A}_1$. This implies that the translation of ${\cal A}_2$ will be completely determined once xa and ya are given. Note that xa and ya are functions of x1, y1, and $\theta_1$. This implies that ${\cal A}_1$and ${\cal A}_2$ have a total of four degrees of freedom when attached. The independent parameters are x1, x2, $\theta_1$, and $\theta_2$.The task in the remainder of this section is to determine exactly how the models of ${\cal A}_1$, ${\cal A}_2$, $\ldots$, ${\cal A}_m$ are transformed, and give the expressions in terms of these independent parameters.


 
Figure 2.7:   Two types of 2D joints: a) a revolute joint allows one link to rotate with respect to the other, b) a prismatic joint allows one link to translate with respect to the other.
\begin{figure}
\begin{center}
\begin{tabular}
{cc}

\resizebox {5cm}{3cm}
{\begi...
 ...t}${\cal A}_2$}}}\end{picture}} \\ a. & b. \end{tabular}\end{center}\end{figure}

Consider the case of a kinematic chain in which each pair of links is attached by a revolute joint. The first task is to specify the geometric model for each link, ${\cal A}_i$. Recall that for a single rigid body, the origin of the coordinate frame determines the axis of rotation. When defining the model for a link in a kinematic chain, excessive complications can be avoided by carefully placing the coordinate frame. Since rotation occurs about a revolute joint, a natural choice for the origin is the joint between ${\cal A}_i$ and ${\cal A}_{i-1}$ for each i > 1. For convenience that will soon become evident, the X-axis is defined as the line through both joints that lie in ${\cal A}_i$, as shown in Figure 2.7. For the last link, ${\cal A}_m$, the X-axis can be placed arbitrarily, assuming that the origin is placed at the joint that connects ${\cal A}_m$ to ${\cal A}_{m-1}$. The coordinate frame for the first link, ${\cal A}_1$, can be placed using the same considerations as for a single rigid body.


 
Figure 2.8:   The coordinate frame that is used to define the geometric model for each ${\cal A}_i$, for 1 < i < m, is based on the joints that connect ${\cal A}_i$ to ${\cal A}_{i-1}$ and ${\cal A}_{i+1}$.
\begin{figure}
\centerline{
\psfig {file=figs/linki.idr,width=3.5truein}
}\end{figure}

We are now prepared to determine the location of each link. The position and orientation of link ${\cal A}_1$ is determined by applying the 2D homogeneous transform matrix (2.10),

\begin{displaymath}
T_1 = \pmatrix{
\cos\theta_1 & -\sin\theta_1 & x_0 \cr
\sin\theta_1 & \cos\theta_1 & y_0 \cr
0 & 0 & 1 \cr }.\end{displaymath}

As shown in Figure 2.8, let ai-1 be the distance between the joints in ${\cal A}_{i-1}$. The orientation difference between ${\cal A}_i$ and ${\cal A}_{i-1}$ is denoted by the angle $\theta_i$. Let Ti represent a $3 \times 3$ homogeneous transform matrix (2.10), specialized for link ${\cal A}_i$ for $1 < i \leq m$,in which  
 \begin{displaymath}
T_i = \pmatrix{
\cos\theta_i & -\sin\theta_i & a_{i-1} \cr
\sin\theta_i & \cos\theta_i & 0 \cr
0 & 0 & 1 \cr },\end{displaymath} (12)
which generates the following sequence of transformations:

1.
Rotate counterclockwise by $\theta_i$
2.
Translate by ai-1 along the X-axis
The transformation Ti expresses the difference between the coordinate frame in which ${\cal A}_i$ was defined, and the frame in which ${\cal A}_{i-1}$ was defined. The application of Ti moves ${\cal A}_i$ from its initial frame to the frame in which ${\cal A}_{i-1}$ is defined. The application of Ti-1 Ti moves both ${\cal A}_i$ and ${\cal A}_{i-1}$ to the frame in which ${\cal A}_{i-2}$. By following this procedure, the location of any point (x,y) on ${\cal A}_m$ is determined by multiplying the transformation matrices to obtain
\begin{displaymath}
T_1 T_2 \cdots T_m \pmatrix{x \cr y \cr 1 \cr} .\end{displaymath} (13)

To gain an intuitive understanding of these transformations, consider determining the configuration for link ${\cal A}_3$, as shown in Figure 2.9. Figure 2.9.a shows a three-link chain, in which ${\cal A}_1$ is at its initial configuration, and the other links are each offset by $\frac{\pi}{2}$ from the previous link. Figure 2.9.b shows the frame in which the model for ${\cal A}_3$ is initially defined. The application of T3 causes a rotation of $\theta_3$ and a translation by a2. As shown in Figure 2.9.c, this places ${\cal A}_3$ in its appropriate configuration. Note that ${\cal A}_2$ can be placed in its initial configuration, and it will be attached correctly to ${\cal A}_3$. The application of T2 to the previous result places both ${\cal A}_3$ and ${\cal A}_2$ in their proper configurations, and ${\cal A}_1$ can be placed in its initial configuration.


 
Figure 2.9:  Applying the transformation T2 T3 to the model of ${\cal A}_3$. In this case, T1 is the identity matrix.
\begin{figure}
\begin{center}
\begin{tabular}
{ccc}

\resizebox {5cm}{5cm}
{\beg...
 ...$\space in ${\cal A}_1$'s initial frame \\ \end{tabular}\end{center}\end{figure}

For revolute joints, the parameters ai are treated as constants, and the $\theta_i$ are variables. The transformed mth link is represented as ${\cal A}_m(x_0,y_0,\theta_1,\ldots,\theta_m)$. In some cases, the first link might have a fixed location in the world. In this case, the revolute joints account for all degrees of freedom, yielding ${\cal A}_m(\theta_1,\ldots,\theta_m)$. For prismatic joints, the ai are treated as variables, as opposed to the $\theta_i$. Of course, it is possible to include both types of joints in a single kinematic chain.


next up previous
Next: A Kinematic Chain in Up: Transformations of Kinematic Chains Previous: Transformations of Kinematic Chains
Steven M. LaValle
8/29/2001