Transforming Kinematic Chains of Bodies

The transformations become more complicated for a chain of attached rigid bodies. For convenience, each rigid body is referred to as a link. Let A1, A2, . . . , Am denote a set of m links. For each i such that 1 ≤ i < m, link Ai is “attached” to link Ai+1

in a way that allows i+1 some constrained motion with respect to i. The motion constraint must be explicitly given, and will be discussed shortly. As an example, imagine a trailer that is attached to the back of a car by a hitch that allows the trailer to rotate with respect to the car. In general, a set of attached bodies will be referred to as a linkage. This section considers bodies that are attached in a single chain. This leads to a particular linkage called a kinematic chain.

A A

      1. A 2D Kinematic Chain

Before considering a kinematic chain, suppose 1 and 2 are unattached rigid bodies, each of which is capable of translating and rotating in = R2. Since each body has three degrees of freedom, there is a combined total of six degrees

W

A A

of freedom; the independent parameters are x1, y1, θ1, x2, y2, and θ2.

Attaching bodies When bodies are attached in a kinematic chain, degrees of freedom are removed. Figure 3.9 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. For a revolute joint, one link is capable only of rotation with respect to the other. For a prismatic joint is shown, one link slides along the other. Each type of joint removes two degrees of freedom from the pair of bodies. For example, consider a

Revolute Prismatic

Figure 3.9: Two types of 2D joints: a revolute joint allows one link to rotate with respect to the other, and a prismatic joint allows one link to translate with respect to the other.

revolute joint that connects A1 to A2. Assume that the point (0, 0) in the body frame of A2 is permanently fixed to a point (xa, ya) in the body frame of A1. This implies that the translation of A2 is completely determined once xa and ya are given. Note that xa and ya depend on x1, y1, and θ1. This implies that A1 and A2 have a total of four degrees of freedom when attached. The independent

parameters are x1, y1, θ1, and θ2. The task in the remainder of this section is to determine exactly how the models of 1, 2, . . ., m are transformed when they are attached in a chain, and to give the expressions in terms of the independent parameters.

A A A

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,

i. Recall that for a single rigid body, the origin of the body 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 body frame. Since rotation occurs about a revolute joint, a natural choice for the origin is the joint between

A

Ai and Ai−1 for each i > 1. For convenience that will soon become evident, the

  1. axis for the body frame of Ai is defined as the line through the two joints that

lie in i, as shown in Figure 3.10. For the last link, m, the xm-axis can be placed arbitrarily, assuming that the origin is placed at the joint that connects m to m−1. The body frame for the first link, 1, can be placed using the same

A A

A A A

considerations as for a single rigid body.

Homogeneous transformation matrices for 2D chains We are now pre- pared to determine the location of each link. The location in W of a point in

(x, y) 1 is determined by applying the 2D homogeneous transformation matrix (3.35),

∈ A

cos θ1 − sin θ1 xt

y

T1 =

sin θ1 cos θ1 t . (3.51)

0 0 1

0 0 1

Figure 3.10: The body frame of each Ai, for 1 < i < m, is based on the joints that connect Ai to Ai−1 and Ai+1.

As shown in Figure 3.10, let ai−1 be the distance between the joints in Ai−1. The orientation difference between Ai and Ai−1 is denoted by the angle θi. Let Ti represent a 3 × 3 homogeneous transformation matrix (3.35), specialized for link Ai for 1 < i ≤ m,

cos θi − sin θi ai−1

0

Ti = sin θi cos θi . (3.52)

0 0 1

This generates the following sequence of transformations:

    1. Rotate counterclockwise by θi.
    2. Translate by ai−1 along the x-axis.

The transformation Ti expresses the difference between the body frame of Ai and the body frame of Ai−1. The application of Ti moves Ai from its body frame to the body frame of Ai−1. The application of Ti−1Ti moves both Ai and Ai−1 to the body frame of Ai−2. By following this procedure, the location in W of any point (x, y) ∈ Am is determined by multiplying the transformation matrices to obtain

x

y

T1T2 · · · Tm

1

. (3.53)

Example 3.3 (A 2D Chain of Three Links) To gain an intuitive understand- ing of these transformations, consider determining the configuration for link A3,

as shown in Figure 3.11. Figure 3.11a shows a three-link chain in which 1 is at

A

its initial configuration and the other links are each offset by π/4 from the pre- vious link. Figure 3.11b shows the frame in which the model for A3 is initially

defined. The application of T3 causes a rotation of θ3 and a translation by a2.

As shown in Figure 3.11c, this places A3 in its appropriate configuration. Note that A2 can be placed in its initial configuration, and it will be attached cor- rectly to A3. The application of T2 to the previous result places both A3 and A2

in their proper configurations, and A1 can be placed in its initial configuration. .

For revolute joints, the ai parameters are constants, and the θi parameters are variables. The transformed mth link is represented as m(xt, yt, θ1, . . . , θm). In

A

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 Am(θ1, . . . , θm). For

prismatic joints, the ai parameters are variables, instead of the θi parameters. It is straightforward to include both types of joints in the same kinematic chain.

      1. A 3D Kinematic Chain

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 Ai.
  2. Based on joint relationships, several parameters are measured.
  3. The parameters define a homogeneous transformation matrix, Ti.
  4. The location in W of any point in Am is given by applying the matrix

T1T2 · · · Tm.

Consider a kinematic chain of m links in W = R3, in which each Ai for 1 ≤ i < m is attached to 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 R3, as shown in Figure 3.14. Let the zi-axis be the axis of rotation for the revolute

A

joint that holds Ai to Ai−1. Between each pair of axes in succession, let the xi-axis

join the closest pair of points between the zi- and zi+1-axes, with the origin on the zi-axis and the direction pointing towards the nearest point of the zi+1-axis. This axis is uniquely defined if the zi- and zi+1-axes are not parallel. The recommended

body frame for each Ai will be given with respect to the zi- and xi-axes, which

are shown in Figure 3.14. Assuming a right-handed coordinate system, the yi- axis points away from us in Figure 3.14. In the transformations that will appear

shortly, the coordinate frame given by xi, yi, and zi will be most convenient for defining the model for Ai. It might not always appear convenient because the

origin of the frame may even lie outside of i, but the resulting transformation matrices will be easy to understand.

A

In Section 3.3.1, each Ti was defined in terms of two parameters, ai−1 and θi. For the 3D case, four parameters will be defined: di, θi, ai−1, and αi−1. These

    1. A three-link chain (b) A3 in its body frame

_y_2 _y_1

A3

A2

A1

_x_1

(c) T3 puts A3 in A2’s body frame (d) T2T3 puts A3 in A1’s body frame

Figure 3.11: Applying the transformation T2T3 to the model of A3. If T1 is the identity matrix, then this yields the location in W of points in A3.

Revolute Prismatic Screw
1 Degree of Freedom 1 Degree of Freedom 1 Degree of Freedom
Cylindrical Spherical Planar
2 Degrees of Freedom 3 Degrees of Freedom 3 Degrees of Freedom

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

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 di. Note that the xi−1- and xi-axes contact the zi-axis at two different places. Let di denote signed distance between these points of contact. If the xi-axis is above the xi−1-axis along the zi-axis, then di is positive; otherwise, di is negative. The parameter θi is the angle between the xi- and xi−1-axes, which corresponds to the rotation about the zi-axis that moves the xi−1-axis to coincide with the xi-axis.

The parameter ai is the distance between the zi- and zi−1-axes; recall these are generally skew lines in R3. The parameter αi−1 is the angle between the zi- and zi−1-axes.

Two screws The homogeneous transformation matrix Ti will be constructed by combining two simpler transformations. The transformation

cos θi − sin θi 0 0 

Ri = 

sin θi

cos θi 0 0

(3.54)

0 0 1 di

0 0 0 1

causes a rotation of θi about the zi-axis, and a translation of di along the zi- axis. Notice that the rotation by θi and translation by di commute because both

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

operations occur with respect to the same axis, zi. The combined operation of a translation and rotation with respect to the same axis is referred to as a screw (as in the motion of a screw through a nut). The effect of Ri can thus be considered as a screw about the zi-axis. The second transformation is

1 0 0 ai−1



Qi−1

= 0 cos αi−1 − sin αi−1 0

0 sin αi−1 cos αi−1 0

0 0 0 1



, (3.55)

which can be considered as a screw about the xi−1-axis. A rotation of αi−1 about the xi−1-axis and a translation of ai−1 are performed.

The homogeneous transformation matrix The transformation Ti, for each

i such that 1 < i ≤ m, is

 cos θi − sin θi 0 ai−1 

− − − − − −

=

Ti = Q

i−1Ri

sin θi cos αi 1 cos θi cos αi 1 sin αi 1 sin αi 1di

sin θi sin αi−1 cos θi sin αi−1 cos αi−1 cos αi−1di

0 0 0 1

 .

0 0 0 1

(3.56)

This can be considered as the 3D counterpart to the 2D transformation matrix, (3.52). The following four operations are performed in succession:

  1. Translate by di along the zi-axis.
  2. Rotate counterclockwise by θi about the zi-axis.
  3. Translate by ai−1 along the xi−1-axis.
  4. Rotate counterclockwise by αi−1 about the xi−1-axis.

z

Figure 3.14: The rotation axes of the generic links are skew lines in R3.

As in the 2D case, the first matrix, T1, is special. To represent any position and orientation of 1, it could be defined as a general rigid-body homogeneous transformation matrix, (3.50). If the first body is only capable of rotation via a revolute joint, then a simple convention is usually followed. Let the a0, α0 param- eters of T1 be assigned as a0 = α0 = 0 (there is no z0-axis). This implies that Q0 from (3.55) is the identity matrix, which makes T1 = R1.

A

The transformation Ti for i > 1 gives the relationship between the body frame of Ai and the body frame of Ai−1. The position of a point (x, y, z) on Am is given

by

x

yT T · · · T   . (3.57)

1

1 2 m z

For each revolute joint, θi is treated as the only variable in Ti. Prismatic joints can be modeled by allowing ai to vary. More complicated joints can be modeled as a sequence of degenerate joints. For example, a spherical joint can be considered as a sequence of three zero-length revolute joints; the joints perform a roll, a pitch, and a yaw. Another option for more complicated joints is to abandon the DH representation and directly develop the homogeneous transformation matrix. This might be needed to preserve topological properties that become important in Chapter 4.

Example 3.4 (Puma 560) This example demonstrates the 3D chain kinematics on a classic robot manipulator, the PUMA 560, shown in Figure 3.16. The cur- rent parameterization here is based on [37, 555]. The procedure is to determine

zi

xi

di

xi−1

zi

(a) (b)

zi−1

(c) (d)

Figure 3.15: Definitions of the four DH parameters: di, θi, ai−1, αi−1. The zi- and xi−1-axes in (b) and (d), respectively, are pointing outward. Any parameter may be positive, zero, or negative.

appropriate body frames to represent each of the links. The first three links allow the hand (called an end-effector) to make large movements in , and the last three enable the hand to achieve a desired orientation. There are six degrees of freedom, each of which arises from a revolute joint. The body frames are shown in Figure 3.16, and the corresponding DH parameters are given in Figure 3.17. Each transformation matrix Ti is a function of θi; hence, it is written Tii). The other parameters are fixed for this example. Only θ1, θ2, . . ., θ6 are allowed to vary.

W

The parameters from Figure 3.17 may be substituted into the homogeneous transformation matrices to obtain

cos θ1 − sin θ1 0 0

T1(θ1) = 

sin θ1

cos θ1

0 0

 , (3.58)

0 0 1 0

0 0 0 1

 cos θ2 − sin θ2 0 0 

0 0 1 d2
sin θ2 − cos θ 2 0
0 0 0 1

T2(θ2) =



−

0  , (3.59)

_d_2 _z_2

z_1, z_0

_d_3

_x_2

y_1, y_0 _y_2

z_4, z_6

_y_5

z_5, y4, y6 _x_4, x5, x_6

d

x_1, x_0 _a_2

4

_a_3 _z_3

_y_3 _x_3

Figure 3.16: The Puma 560 is shown along with the DH parameters and body frames for each link in the chain. This figure is borrowed from [555] by courtesy of the authors.

cos θ3 − sin θ3 0 a2

T3(θ3) = 

sin θ3

cos θ3

0 0

 , (3.60)

0 0 1 d3

0 0 0 1

T (θ ) =

cos θ4 − sin θ4 0 a3

0 0 −1 −d4



, (3.61)

4 4 sin θ4 cos θ4 0 0

0 0 0 1



cos θ5 − sin θ5 0 0

 

T (θ ) = 0 0 1 0 , (3.62)

5 5

− − 

sin θ5 cos θ5 0 0

0 0 0 1

and

T (θ ) =

cos θ6 − sin θ6 0 0

0 0 −1 0

 

. (3.63)

6 6 sin θ6 cos θ6 0 0

0 0 0 1

0 0 0 1

Matrix αi−1 ai−1 θi di
T1(θ1) 0 0 θ1 0
T2(θ2) −π/2 0 θ2 d2
T3(θ3) 0 a2 θ3 d3
T4(θ4) π/2 a3 θ4 d4
T5(θ5) −π/2 0 θ5 0
T6(θ6) π/2 0 θ6 0

Figure 3.17: The DH parameters are shown for substitution into each homogeneous transformation matrix (3.56). Note that a3 and d3 are negative in this example (they are signed displacements, not distances).

Figure 3.18: A hydrocarbon (octane) molecule with 8 carbon atoms and 18 hy- drogen atoms (courtesy of the New York University MathMol Library).

A point (x, y, z) in the body frame of the last link A6 appears in W as

x

 

T (θ )T (θ )T (θ )T (θ )T (θ )T (θ ) y . (3.64)

1 1 2 2 3 3 4 4 5 5 6 6 z

 1

Example 3.5 (Transforming Octane) Figure 3.18 shows a ball-and-stick model of an octane molecule. Each “ball” is an atom, and each “stick” represents a bond between a pair of atoms. There is a linear chain of eight carbon atoms, and a bond exists between each consecutive pair of carbons in the chain. There are also numerous hydrogen atoms, but we will ignore them. Each bond between a pair of carbons is capable of twisting, as shown in Figure 3.19. Studying the configu- rations (called conformations) of molecules is an important part of computational

Figure 3.19: Consider transforming the spine of octane by ignoring the hydrogen atoms and allowing the bonds between carbons to rotate. This can be easily constructed with balls and sticks (e.g., Tinkertoys). If the first link is held fixed, then there are six degrees of freedom. The rotation of the last link is ignored.

biology. It is assumed that there are seven degrees of freedom, each of which arises from twisting a bond. The techniques from this section can be applied to represent these transformations.

Note that the bonds correspond exactly to the axes of rotation. This suggests that the zi axes should be chosen to coincide with the bonds. Since consecutive bonds meet at atoms, there is no distance between them. From Figure 3.15c, observe that this makes ai = 0 for all i. From Figure 3.15a, it can be seen that each di corresponds to a bond length, the distance between consecutive carbon atoms. See Figure 3.20. This leaves two angular parameters, θi and αi. Since the only possible motion of the links is via rotation of the zi-axes, the angle between two consecutive axes, as shown in Figure 3.15d, must remain constant. In chemistry, this is referred to as the bond angle and is represented in the DH parameterization as αi. The remaining θi parameters are the variables that represent the degrees of freedom. However, looking at Figure 3.15b, observe that the example is degenerate because each xi-axis has no frame of reference because each ai = 0. This does not, however, cause any problems. For visualization purposes, it may be helpful to replace xi−1 and xi by zi−1 and zi+1, respectively. This way it is easy to see that as

the bond for the zi-axis is twisted, the observed angle changes accordingly. Each bond is interpreted as a link, Ai. The origin of each Ai must be chosen to coincide

with the intersection point of the zi- and zi+1-axes. Thus, most of the points in

i will lie in the zi direction; see Figure 3.20.

A −

The next task is to write down the matrices. Attach a world frame to the first bond, with the second atom at the origin and the bond aligned with the z-axis, in the negative direction; see Figure 3.20. To define T1, recall that T1 = R1 from (3.54) because Q0 is dropped. The parameter d1 represents the distance between the intersection points of the x0- and x1-axes along the z1 axis. Since there is no x0-axis, there is freedom to choose d1; hence, let d1 = 0 to obtain

cos θ1 − sin θ1 0 0

T1(θ1) = R1(θ1) = 

sin θ1

cos θ1

0 0

 . (3.65)

0 0 1 0

0 0 0 1

Figure 3.20: Each bond may be interpreted as a “link” of length di that is aligned with the zi-axis. Note that most of Ai appears in the −zi direction.

The application of T1 to points in 1 causes them to rotate around the z1-axis, which appears correct.

A

The matrices for the remaining six bonds are

 cos θi − sin θi 0 0 

T (θ ) =

sin θi cos αi−1 cos θi cos αi−1 − sin αi−1 − sin αi−1di

, (3.66)



i i

sin θi sin αi−1 cos θi sin αi−1 cos αi−1 cos αi−1di

0 0 0 1



for i ∈ {2, . . . , 7}. The position of any point, (x, y, z) ∈ A7, is given by

x

 

T (θ )T (θ )T (θ )T (θ )T (θ )T (θ )T (θ ) y . (3.67)

1 1 2 2 3 3 4 4 5 5 6 6 7 7 z

 1

results matching ""

    No results matching ""