Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
31 views25 pages

2robotics KInematics

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views25 pages

2robotics KInematics

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

KINEMATICS

This is the study of motion without regard to the forces that cause it. It refers to all
geometrical and time-based properties of motion.

Spatial Descriptions
Around a robot objects are normally
defined in terms of a frame (i.e. a set of right-
handed orthogonal coordinate axes)
known as the origin or “world frame”.
Usually, this frame coincides with the base of
one robot within a work-cell.

Right-handed coordinate frame

Every object (and the robot tool)


within the work-cell is assigned a
“conceptual” right-handed frame
whose position and orientation is
known relative to the origin (see
diagram opposite).

Positions are defined relative to the origin by using 3x1 position vectors.

The diagram opposite shows a frame {A}.


The vectors ZA, YA, XA represent the orthogonal
A
axes associated with this frame. The vector P
“points” to a point P whose position relative to {A}
A
is known if the values x, y, z of the vector P are
known. In general then:
p 
P  py 
x
A
 
pz 

To find the orientation of an object we need to consider the frame attached to the object.

16
Imagine that the object is the tip of the robot (i.e. the
tool). From the diagram opposite, a rotation of the
gripper about the ZB axis will not change the position of
the origin of the tool frame {B}. It will, however, cause
the robot fingers to rotate (i.e. the YB and XB axes will
point in different directions than those shown). Hence
an object held in the gripper will also rotate in the same
way.
So, finding the rotation of frame {B} relative to frame
{A}, this will give the orientation of frame {B} relative
to frame {A}.

Having a generic notation between frames is helpful,


and to do we consider e each of the unit vectors of frame {B} (i.e. XB, YB, ZB). If they are
A A A
defined relative to frame {A}, the notation will be given as: X B , YB , Z B .

Remember now that any vector v can be written in the generic form v = xi + yj + zk. So
A A A
applying this to each unit vector X B , YB , Z B , we derive at a 3x3 rotational matrix which
describes frame {B} relative to {A}. In terms of notation we have:
 r11 r12 r13 
A
BR =
A
 A A

X B , YB , Z B  r21 r22 r23 
 r31 r32 r33 
This matrix relationship tells us what rotations we must apply so that, starting from frame
{A}, when all is done the orientation will be that of frame {B} (i.e. how we go from {A} to
{B})

Translations

In the diagram opposite we


define the point P by the vector
B
P . We have also defined the
origin of frame {B} relative to
{A} through the translation
A
vector PBorig .
We now wish to evaluate vector
A
P which defines the position of
point P relative to frame {A}.

Because both frames have the


same orientation, a simple vector
A B
addition will provide the answer: P = A PBorig + P
This addition can occur only in the special case of the same frame orientation.

Note: All we have done is to evaluate a different description of the point P in space. Nothing
else has changed in the system and certainly the point P has not moved.

17
This is a very important and is central to understanding the way translations work.

Rotations

On an orthogonal axes system there are 3 rotations that


can take place: yaw,  ; pitch,  ; and roll, ω. They
occur about the axes as shown in the diagram.

Rotations can be positive or negative. All the rotations


shown in the diagram are positive.

A positive rotation is a clockwise rotation as we look


down the axis in the direction the arrow points.

Another way to remember a positive rotation is the right hand


rule of current and magnetic flux. With the thumb pointing in
the same direction as the current (see figure opposite), the
fingers point in the direction of the magnetic flux (clockwise
direction looking in the direction of the current flow.)

Positive rotations about the Z, Y and X axes result in the respective rotational matrices:
:
𝑐 −𝑠 0 𝑐 0 𝑠 1 0 0
𝑅(𝑧) = [𝑠 𝑐 0] 𝑅(𝑦) = [ 0 1 0 ] 𝑅(𝑥) = [0 𝑐 −𝑠]
0 0 1 −𝑠 0 𝑐 0 𝑠 𝑐

where 𝑐 = 𝑐𝑜𝑠 , 𝑠 = 𝑠𝑖𝑛 𝑎𝑛𝑑 𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑙𝑦 𝑓𝑜𝑟 𝑎𝑛𝑔𝑙𝑒𝑠  𝑎𝑛𝑑 

These 3 rotations are commonly referred to as Yaw, Pitch, and Roll respectively.

Consider the two frames {A- in green} and {B – in


red}. Which are coincident (i.e. have the same
origin) but have different orientations. Consider
also the case where point P is known relative to
B
frame {B} (i.e. we know the vector P ) and also
that the rotation of frame {B} is known relative to
A
{A} (i.e. B R is known). To find the position of P
A
relative to frame {A} (i.e. find P ) we need to
consider the difference in orientation between the
two frames {A} and {B}.

First recall that the components of any vector are merely the projections of that vector onto
B
the unit vectors of its frame. Hence the problem is simply to express the vector P from

18
projections onto frame {B}, into projections onto frame {A}. This can be done using vector
dot product. Hence:

px  XA  P
A B B A
(i.e. the x projection of the P vector onto the {A} frame)
p y  YA  P
A B B A
(i.e. the y projection of the P vector onto the {A} frame)
pz  ZA  P
A B B A
(i.e. the z projection of the P vector onto the {A} frame)

In terms of matrix algebra this can be written in a more compact form as:

 B XA 
P =  B YA  . P
A B
B 
 ZA 

or by using the notation we used earlier for rotational matrices we can rewrite the above
equation as:
A B T B
P = AR . P .......(1)

B T B
where A R is the transposed of the matrix A R .

From linear algebra it is known that the inverse of a matrix with orthonormal columns is
equal to its transposed. Hence:
B T B 1 A
AR = AR = BR .......(2)

Equation (2) merely states that if frame {A} is known relative to frame {B}, then frame {B}
is known relative to frame {A} through a simple rearrangement (transposition) of the
rotational matrix.

Finally, substitution of (2) into (1) gives:


A A
P= B R .B P .......(3)
The last equation merely changes the description of a point expressed in terms of frame
{B} to a description expressed in terms of frame {A}, when the orientation of frame {B}
relative to {A} is known.

Combined Rotation and Translation


The problem shown in the diagram opposite is
B A
that given P we need to evaluate P if we
A A
know B R and PBorig .

Clearly we need to combine the individual


approaches we have seen so far.

19
B
Thus we first express P in terms of the orientation of frame {A} and then we add the
A
translation vector PBorig i.e. the origin of the frame {B} relative to frame {A}. Hence:
A A A
P= B R .B P + PBorig ......(4)

Equation (4) can be written more compactly through the use of Homogeneous transforms.
The latter is a construction which enables the use of simple matrix operations to obtain the
results of equation (4) in one step. It arises out of the fact that equation (4) can be written as:
 A P   AB R A
PBorig   B P 
 1    0 0 0 1   1 
(5)

The following points are worth mentioning regarding this representation:


A B
1. The 3x1 vectors P and P have been augmented by a 1 to become 4x1 vectors.
A A
2. A row of [ 0 0 0 1] is added to change the combined part [ B R , PBorig ] so it changes
from a 3x4 matrix to 4x4 square matrix. This is important since most functions on
matrices, particularly inversions, require square matrices.
3. The addition of the 1 and the 0s in this way has no effect on the values of the evaluated
matrices and vectors.

Due to this result we can now rewrite equation (5) as:

A A B
P = BT . P .......(6)
A B A
where P and P are the new augmented vectors, and BT is the 4x4 matrix above.

Compound Transformations
The diagram opposite indicates a case
where we know the position of P relative
to frame {C} and we require the position
of P relative to frame {A} (i.e. we need to
A
find P .

Working in the same way as before and


using now homogeneous transforms, we
C B
can transform P into P according to:

B B
C
P = CT . P ......(7)

B A
We can also transform P into P according to :

A A
P= B T.B P .......(8)

Combining (7) and (8) we have:

20
A A B
P= B T . CT . C P or

A A
P= C T.C P .......(9)

A
In terms of our notation so far, CT is given by the 4x4 matrix:

A
 A R BR A
B R PCorig 
B A
PBorig 
T =B C 
0 0 0 
C
1

Inverse Transformations
It is often necessary to obtain inverse transformations (i.e. given that a frame {B} is known
relative to frame {A}, we may require a description of frame {A} relative to {B}). In such
cases we need to evaluate inverse transformations. One way of doing this is to compute the
inverse of a 4x4 homogeneous transform. Doing this however does not exploit the properties
of the transforms, and is computationally not simple.
A B B B
Suppose we know B T and we require to find AT . To do so we must compute A R and PAorig
A A
from B R and PBorig .

A B A A
In general we have: P = B R . P + PBorig . This is a general equation for any vector known
with respect to frame {B} and expressed in terms of frame {A}. We can use it to find the
vector of the point P which coincides with the origin of frame {B} relative to frame {B}. In
other words find the origin of frame {B} relative to itself.
B B A B
Hence PBorig = A R PBorig + PAorig

But of course the LHS of the above equation is 0. Hence the equation reduces to:
B A B
PAorig = - A R PBorig ......(10)

B A T
and since A R= BR .......(11),

B A T A
we finally have that: PAorig = - B R . PBorig .......(12)

In accordance with previous results we can now write:

B
 BR B
PAorig 
T = A
A
0 0 0 1 
or, in view of (11) and (12)

B  A
B RT  BA R T  A PBorig 
A T=   .......(13)
0 0 0 1 

21
IMPORTANT POINT ON ROTATIONS
There are several ways to describe rotations. Typically rotations can be considered to occur
relative to stationary or fixed frames, or relative to non-stationary or moving frames.
By stationary frames we mean that all considered rotations take place about the same frame.
By contrast, in a moving frame situation, rotations are considered relative to its immediate
preceding frame in each case. In the case of stationary frames the overall result is obtained
through pre-multiplication of the individual rotational matrices, whilst in the moving frame
case the overall result is obtained through post-multiplication.

Examples of Rotations and Transformations


1. A frame {B} is rotated with respect to frame {A} first about the x-axis (roll) and then
about the y-axis (pitch), through angles  and  respectively. Find the matrix which
A
describes frame {B} relative to frame {A} (i.e. the B R matrix).
Solution
A
B R () = R()R() .........(1)

Note the order of multiplication of the above matrices (it is typical of rotations
about fixed frames, discussed later).

According to the earlier equations we have that:

𝑐 0 𝑠 1 0 0
𝐵𝑅(, , ) 0 ] [0 𝑐 −𝑠]
𝐴
= [ 0 1
−𝑠 0 𝑐 0 𝑠 𝑐
𝑐 𝑠𝑠 𝑠𝑐
=[ 0 𝑐 −𝑠 ]
−𝑠 𝑐𝑠 𝑐𝑐

2. A frame {B} has been rotated relative to frame {A} about the Z axis through an angle
 30 . Given that P = [0, 2, 0]T evaluate P .
0 B A

A
There is clearly no frame translation, hence PBorig = [0, 0, 0]T.

0 0
c = cos 30 = 0.866 and s = sin 30 = 0.5

 c s 0   0.866  0.5 0 


Hence R(Z,)   s c 0    0.5 0.866 0 
 0 0 1   0 0 1 

22
As there are no more rotations to consider it follows that B R = R(Z, ) and we can
A

A A
use this matrix to construct BT and hence evaluate P as follows:

B A A
P = BT . P
A
It should be remembered that since BT is a 4x4 matrix, in the above equation both
A B
P and P will be in the augmented form (i.e. with an additional row of 1s), giving:

 0.866  0.5 0 0  0    1 
 0.5 0.866 0 0  2  1732. 
P  0
A
0 1 0  0  =  0 
 0 0 0 1  1   1 

A
or P = [-1, 1.732, 0]T

3. A frame {B} is rotated relative to a frame {A} about the Z axis by  = 30 and translated
0

A B
by 10 units along XA and 5 units along YA. Find P if P = [3, 7, 0]T.

Clearly,
 c s 0   0.866  0.5 0 
R = R(Z, )   s c 0   0.5 0.866 0 
A T A
PBorig = [10, 5, 0] , and B
 0 0 1   0 0 1 
Hence:
 0.866  0.5 0 10  3  9.098 
 0.5 0.866 0 5  7  12.562 
P 0
A
0 1 0  0  =  0 
 0 0 0 1  1   1 
A
or P = [9.098, 12.562, 0]T

4. A frame {B} is rotated relative to frame{A} about the Z axis by = 30 and translated by
0

B
4 units along XA and 3 units along YA. Find AT .
It is known that:
0 0
c = cos 30 = 0.866, s = sin 30 = 0.5, c= c= 0, s= s= 1.

 0.866  0.5 0 4
 0.5 0.866 0 3
BT  
A
0 0 1 0
 0 0 0 1 
B
To evaluate AT we need to invert the above matrix. Following the rule we learned
on the inversion of homogeneous transforms we need to evaluate the following
result:

 A RT  B R . PBorig 
A T A
T B
B

 0, 0, 0 
A
1

23
 0.866 0.5 0  4.964 
  0.5 0.866 0  0.598 
AT  
B
Hence it can easily be verified that: 0 0 1 0 
 0 0 0 1 

Yaw, Pitch & Roll about Fixed Frames


One method of describing the orientation of frame {B} relative to frame {A} is as follows:
1. First rotate {B} about ZA by an angle )(yaw).
2. Then rotate {B} about YA by an angle  (pitch).
3. Finally rotate about XA by an angle  (roll).

This results in the following rotational matrix:


1 0 0 𝑐 0 𝑠 𝑐 −𝑠 0
𝐵𝑅(, , ) = 𝑅(𝑋,    = [0 𝑐 −𝑠] [ 0 1 0 ] [𝑠 𝑐 0]
𝐴 )𝑅(𝑌, )𝑅(𝑍, )
0 𝑠 𝑐 −𝑠 0 𝑐 0 0 1
𝑐𝑐 −𝑐𝑠 𝑠
=[ 𝑠𝑠  𝑐 + 𝑐𝑠 −𝑠𝑠𝑠 + 𝑐𝑐 −𝑠𝑐] …. (14)
−𝑐𝑐𝑠 + 𝑠𝑠 𝑐𝑠𝑠 + 𝑠𝑐 𝑐𝑐

Note: the order of multiplication. It is pre-multiplication and is typical of rotations occurring


about fixed (non-moving) frames. Also note that equation above is correct only for
rotations performed in the given order (yaw, pitch, roll).

Here is what happens graphically. The


starting position is given opposite. All ZA ZB
rotations are +ve 900 occurring one-at-a-
time about ZA, YA, and XA (i.e. the axes X YA YB
of the reference frame {A}). XB
The dice has its own frame {B} which is
embedded in its centre. Initially the two
frames have the same orientation.

The result after each rotation is shown in each of the figures below:

ZB
YB XB
YB YB

XB ZB XB ZB

After 900 about ZA After 900 about YA After 900 about XA

24
Z-Y-X Euler Angles Moving Frame arrangement.
Another possible description of a frame {B} relative to {A} is as follows:

1. Start with frame {B} in the same orientation as frame {A}


2. First rotate frame {B} about ZB by an angle  (yaw).
3. Then rotate frame {B} about the new 𝑌𝐵′ by an angle  (pitch).
4. Finally rotate frame {B} about the new 𝑋𝐵′′ by an angle  (roll).
A
Because the rotations are about a moving frame, the overall rotational matrix B R ()
is given as:
B R () = R(Z, ) R(Y',) R(X ,)
A ”

𝑐 −𝑠 0 𝑐 0 𝑠 1 0 0
=[𝑠 𝑐 0] [ 0 1 0 ] [ 0 𝑐 −𝑠]
0 0 1 −𝑠 0 𝑐 0 𝑠 𝑐
𝑐𝑐 𝑐𝑠𝑠 − 𝑠𝑐 𝑐𝑠𝑐 + 𝑠𝑠
= [𝑠𝑐 𝑠𝑠𝑠 + 𝑐𝑐 𝑠𝑠𝑐 − 𝑐𝑠] ....... (15)
−𝑠 𝑐𝑠 𝑐𝑐

Note the order of multiplication. It is a post-multiplication and it is the reverse of the


previous case examined.
ZB
Here is what happens graphically. As before, Z A
the starting position is given opposite (same as
before). The rotations are +ve 900 occurring X A Y XB YB
one-at-a-time BUT this time they are about A
′ ′′
ZB , 𝒀𝑩 , and 𝑿𝑩 (i.e. the axes of frame {B}
of the dice as this is being rotated. Frame {A}
is shown as a reference.
The result after each rotation is shown in each of the figures below:

𝒁′𝑩
𝒀′𝑩 𝒀"𝑩
𝒁′′′ 𝒀′′′
𝑩
𝑩
𝑿′𝑩 𝒁"𝑩
𝑿"𝑩 𝑿′′′
𝑩

After 900 about ZB After 900 about 𝒀′𝑩 After 900 about 𝑿′′
𝑩

Note: Even though we started from the same initial position as in the previous case, the
rotations resulted in a completely different output. This is because the order of the rotations
is different. (Mathematically: matrices do not commute i.e. the order they appear is
important)

25
Z-Y-Z Euler Angle - moving frame arrangement
Another possible description of a frame {B} often used to position robots in space is the
following:

1. First rotate {B} about ZB by an angle  (yaw).


2. Then rotate {B} about Y'B by an angle  (pitch).
3. Finally rotate about Z"B by an angle  (roll).

R (, ) = R(Z, )R(Y', )R(Z",)


A
B

c  s 0  c 0 s  c  s 0
  s c 0  0 1 0   s c 0
 0 0 1  s 0 c   0 0 1
ccc  ss  ccs  sc cs 
  scc  cs  scs  cc ss  ....(16)
  sc s  s c 

It is interesting that in this case the X axis is not used at all. Instead the Z axis takes up this
role in the description.

Find the rotation angles from a Rotational matrix


It is often the case that, given the numerical values of a rotational matrix which in the general
symbolic form is:
 r11 r12 r13 
 r22 r23 
B R   r21
A
........ (17)

 r31 r32 r33 
we need to know the angles and  which led to this numerical value of the matrix.
This is often the case when, for example, we know the orientation of an object in space and
we need to know these angles so that we can position our robot to acquire the object.

To find these we need to know two things:


a) the methodology the robot uses to orient its gripper (i.e. Z-Y-X about fixed axes, Z-
Y-X Euler, Z-Y-Z Euler), and
b) the values of the elements in the matrix in equation 17.

Even then there are nine equations and only three unknowns. So here is how it is done:

EXAMPLES

1. In the case of Z-Y-X rotation about fixed axes in equation (14), we can solve for angle
by finding the arctangent of r12 over r11 (also using equation 17). For the angle we
can find the arctangent of r32 over r33, provided cos0.

26
The angle  can be found by first taking the square root of the sum of the squares of
r11 and r12 in order to find cos, and then finding the arc tangent of r13 over the
computed cosine. Thus:
Atan2 (-r12, r11)*
Atan2(-r23, r33)
Atan2(r13, √𝑟112 2
+ 𝑟12 )

The last of the three equations always provide a solution - 90  90 .


0 0

In case =  90 then the solution degenerates and we can only evaluate the sum
0

or the difference of  and . In such cases we normally set select 0 (or some
other known value).
=  90
0
Hence:
0
 = Atan2(r32, r22).

2. The case for Z-Y-X Euler angles is similar but note that the rotations are performed
in different order and that they are also interpreted differently. In this case we do as
above but use equation (15) and the appropriate elements of the matrix which ensues.

3. To conclude the case we will also examine the situation for the Z-Y-Z Euler angle
using equation (16) in conjunction with the generic equation (17).

In this case it can be verified that, if sin0 then,


Atan2(r23, r13)
Atan2(r32, -r31)
Atan2( r31  r32 , r33)
2 2

The last equation always provides a solution in the range of 0  180 .
0 0

Once again, when  = 0 or 180 the solution degenerates and we can only evaluate
0

the sum or the difference of and . In such cases we normally set select 0 (or
some other known value). Hence:
= 0  = 180
0

 0  0
 = Atan2(-r12, r11)  = Atan2(-r11, -r12)

*
Atan2(y/x) evaluates tan -1(y/x), but also uses the signs of x and y to evaluate the quadrant of the resulting
angle. For example Atan2(- 22 , - 22 ) = 135 , but Atan2( 2 2
0 0

2 , 2 )= 45 . This difference would not be


evaluated by the normal atan(y/x) function.

27
ROTATIONS ABOUT ARBITRARY AXES
If a rotation is not performed about a principal axis (X, Y, or Z) but it is instead performed
about a generalised arbitrary axis r (also called the equivalent axis) through an angle  we
need to find the equivalent rotational matrix.
In

engineering we often change the problem to one we already know how to solve.

To perform the rotation, we first align the arbitrary axis r with the principal z-axis, perform
the rotation , and return the arbitrary axis r back to its former position by reversing the
rotations. Hence looking at the diagram it is evident that in order to find the equivalent
rotational matrix needed to:

 Rotate r about the X axis through an angle  so that r is on the XZ-plane.


 Rotate r about the Y axis through an angle  so that r aligns with the Z axis.
 Perform the rotation through the angle .
 Rotate r about the Y axis through an angle  so that r is on the XZ plane.
 Rotate r about the X axis through an angle - to put r back in its initial position.

Overall, also using pre-multiplication since we have fixed axes, it can be shown that:
R( r , ) = R (x, -R(y, )R(z, )R(y, -),R(x, )
A

or,
 rx2 v  c rx ry v  rz s rx rz v  ry s 
 
R( r , ) =  rx ry v  rz s ry2 v  c ry rz v  rx s 
A
........(18)
 rx rz v  ry s ry rz v  rx s rz v  c 
2

A
where v = 1 - cosand r = [rx, ry, rz]T

28
ROBOTS LINKS AND JOINTS
Robot arms are essentially made up of chains of links. In controlling robots we need to
know the positions of the links relative to one another. To do so we need to examine certain
parameters associated with the physical design of robots.

Kinematic Parameters

The position and orientation of two successive links is specified by two joint parameters.
k is the joint angle (or rotation). It is the
rotation needed (about the Zk-1 axis) to
make axis Xk-1 parallel to Xk. (Variable
for a revolute joint).

dk is the joint distance. It is the translation


along the Z k-1 axis needed to make axis
Xk-1 intersect with axis Xk. (Variable for a
prismatic joint).

The position and orientation between two successive joints is specified by two link
parameters.

k (or ak) is the link length. It is the


translation along Xk needed to make Zk-1
intersect Zk.

k is the link twist. It is the rotation


about Xk needed to make Zk-1 parallel to
Zk.
These parameters are always constant
for non-flexible links and are specified
in the design. The link twist is normally
a multiple of /2.

Assign Coordinate Frames to Links


To simplify the problem of assigning frames to links and to provide consistency of solution,
a systematic algorithm ( Denavit- Hartenberg) has been developed to do this.
The algorithm is as follows:

29
1. Number of joints from 1 to n starting with the base and ending with the robot tool (yaw,
pitch, and roll axes in this order).
2. Assign a right-handed frame {F0} to the base of the robot, aligning Z0 with the axis of
joint 1. Set k = 1.

3. Align Zk with the axis of joint k+1.

4. Locate origin of {Fk} at the intersection of Zk and Zk-1 axes. If they do not intersect, use
the intersection of Zk with a common normal between Zk and Zk-1.
Select Xk to be orthogonal to both Zk and Zk-1. If Zk is parallel with Zk-1point Xk away
from Zk-1

5. Select Yk to form a right-handed orthogonal co-ordinate frame {Fk}.

6. Set k = k+1. If k < n go to step 3 Else

7. Set the origin of {Fn} at the tool point. Align Zk with the vector pointing away from the
tool and in the same direction as the fingers. Select Yk and Xk to form a right-handed
orthogonal frame, (infinite number of solutions).
8. Find parameters dk, kk, k for 1 k  n, and tabulate.
9. Evaluate the transformation matrices which link successive frames (i.e. how a frame is
positioned and oriented relative to another).
To find the transformation matrices we use a generic procedure which consists of two
rotations and two translations and involves the parameters of the links and joints that we have
seen so far. The result is a representation known as the Denavit-Hartenberg (D-H) - first
proposed in 1955.

T  R(z k-1 ,  k )Tr ( z k-1 , d k )Tr ( x k ,  k ) R(x k ,  k )


k 1
k

 c k  s k 0 0  1 0 0 0  1 0 0  k  1 0 0 0
 s c k 0 0  0 1 0 0  0 1 0 0   0 c k  s k 0
= k    
 0 0 1 0  0 0 1 d k  0 0 1 0  0 s k c k 0
    
 0 0 0 1  0 0 0 1  0 0 0 1  0 0 0 1
 c k  c k s k s k s k  k c k 
 s c k c k  s k c k  k s k 
= k   (19)
 0 s k c k dk 
 
 0 0 0 1 

where R( ) describes a pure rotation and Tr( ) a pure translation.

The order of multiplication of the matrices is indicative of how we progress from frame {Fk-
1
} to frame {Fk} (i.e the procedure describes frame {Fk} relative to {Fk-1}). The procedure
should be studied in conjunction with the preceding diagrams. The substitution of the
corresponding link and joint parameters produces the final results for successive co-ordinate
frames.

30
What does the D-H representation mean?
This representation contains all the information required for a robot arm to position and orient
itself in order to manipulate objects within its environment. Equation (19) may be written in
the following form:

c k  c k s k s k s k  k c k  n x sx ax px 
 s c k c k  s k c k  k s k  n y sy ay p y  n s a p 
k 1  k
p z   0 0 0 1 
T = = =
 0 s k c k d k  n z
k
sz az
   
 0 0 0 1  0 0 0 1

It is already known that px, py, and pz are the


three components of the position vector along
the principal axes. Relating this to the diagram
shown, px, py, and pz are the components of the
0
6 P vector which represents the position of the

end-effector relative to the base of the robot.


The three vectors, a, s, and n are the three
columns of the rotational matrix and are related
in the following way:

a is the approach vector of the hand. It is


parallel to the fingers and points away from
the wrist. When assigning frames to robots,
this vector always coincides with the z axis
of the end-effector.
s is the sliding vector. It points in the direction of the finger motion as the fingers open and
close. This vector always coincides with the y axis of the end-effector.
n is the normal vector of the hand (i.e. in a parallel finger hand is orthogonal to the fingers).
From vectorial algebra n  s  a (i.e. it is the cross-product of the other two vectors). This
vector always coincides with the x axis of the end-effector.

In simple cases it is possible to evaluate the orientation of a robot-tool relative to its


reference frame simply by examining the vectors n, s, and a of the rotational matrix. For
example a rotational matrix
 nx sx a x   0  1 0
0  a y    0 0 1
6 R =  ny sy
 n z sz a z   1 0 0
corresponds to the opposite diagram.

The rows of the matrix (from top to bottom)


refer to the axes of the reference frame, X, Y, Z in this order
The columns of the matrix from (left to right) refer to the axes of the referenced frame x, y,
z in this order.

31
The matrix shows that:
1. The normal vector (first column) has only one component which is in the opposite
direction of the reference z0 axis (from the diagram the x6 axis points in the opposite
direction as the z0 axis). The x6 axis is the normal vector.

2. The sliding vector (middle column) has only one component which is in the opposite
direction of the reference x0 axis. The y6 is the sliding vector.

3. The approach vector a (third column) has only one component (two of the three elements
are 0) which is in the same direction as the reference y0 axis (from the diagram the z6 axis
points in the same direction as the y0 axis).

32
EXAMPLES

ALPHA II
Consider the ALPHA II robot shown in the diagram. The representation of its frames for all
the joints are also displayed.

From the second diagram we can construct the following table:

KINEMATIC PARAMETERS FOR ALPHA II


Axis  dk k 
1  d1 = 215mm 0 
2  0 2 = 177.8mm 
3  0 3 = 177.8mm 
4  0 0 
5  d5 = 96.5mm 0 

33
We can now evaluate the transforms required to express the end-effector of the robot relative
to its base. To do this, we substitute the above values into equation (19) for each of the axes
of the robot. The result is as shown next:

c1 0 - s 1 0 c 2 - s 2 0  2 c 2 
 s 0 c1 0   s c 2 0  2 s 2 
0
T =  1 , 1
T =  2 ,
1
 0 -1 0 d1 
2
 0 0 1 0 
   
 0 0 0 1  0 0 0 1 

c 3 - s 3 0  3 c 3  c 4 0 s 4 0 c 5 - s 5 0 0


 s c 3 
0  3 s 3  3  s 0 - c 4 
0 4  s c 5 0 0 
2
T =  3 , 4T =  4 , 5T =  5
3
 0 0 1 0   0 1 0 0  0 0 1 d5 
     
 0 0 0 1   0 0 0 1  0 0 0 1

Clearly then 5T  1T.2 T. 3T. 4 T. 5 T is the matrix that describes the position and orientation of
0 0 1 2 3 4

the end-effector (or tool) relative to the base. Such a matrix is also known as the arm matrix.

Note that:
3T  1T.2 T. 3 T is the matrix which describes the position and orientation of the wrist
0 0 1 2

relative to the base of the robot, and that

T  4T. 5 T is the matrix which describes the position and orientation of the end-effector
3 3 4
5
relative to the wrist of the robot.

It is possible then, at any given time t, to evaluate the relative position of the links of the
robot if we know the variables d and .

In the general case distinction is not made between revolute and prismatic joints, and both
variables  and d are represented by the variable q. When the joint happens to be revolute,
q represents , whilst in the case of a prismatic joint q will represent d.

34
RHINO XR3

Using the same procedure as for the previous example, the axes
can be assigned as shown in the diagram below.
This assignment enables the tabulation of the kinematic
parameters in the correct order. This, in turn, helps to find the
matrices needed to establish the relative position of the links.

KINEMATIC PARAMETERS FOR RHINO XR3


Axis k dk k k
1 1 d1 = 260.4mm 0 -/2
2 2 0 2 = 228.6mm 0
3 3 0 3 = 228.6mm 0
4 4 0 4 = 95mm -/2
5 5 d5 = 171.5mm 0 0

giving the corresponding transformation matrices:

35
c1 0 - s1 0  c 2 - s 2 0  2 c 2 
 s 0 c 0  s c 2 0  2s 2 
0
T =  1 1 , 1
T =  2 ,
 0 -1 0 d1   0 0 
1 2
0 1
   
 0 0 0 1  0 0 0 1 

c 3 - s 3 0  3 c 3   c 4 0 - s 4  4 c 4  c 5 - s 5 00


 s c 3 0  3s 3 3  s 0 c 4 
 4 s 4 4  s c 5 0 0
2
3T =
 3 , 4T =  4 , 5T =  5 
 0 0 1 0   0 -1 0 0   0 0 1 d5 
     
 0 0 0 1   0 0 0 1   0 0 0 1

WORKED EXAMPLES USING TRANSFORMS

1) At time, t1, the robot angles ,  and  are receptively 600, 300 and 450. Evaluate the
transform that describes the position of the wrist relative to the base (use the ALPHA II
parameters for your calculations).

Solution
The task requires to know 3T  1T.2 T. 3T. This is obtained as shown:
0 0 1 2

0.5 0 −0.866 0 0.866 −0.5 0 153.98 0.707 −0.707 0 125.72


0 0.866 0 0.5 0 0.5 0.866 0 88.9 0.707 0.707 0 125.72
3𝑇 =[ ][ ][ ]
0 −1 0 215 0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1 0 0 0 1

0.1294 −0.4829 −0.866 100


0.224 −0.8364 0.5 173.19
= [ ]
−0.9659 −0.2588 0 −45.64
0 0 0 1

2) If the above relationship is given, find the value of 2 if 1 = 600 and  = 450.

Solution
Known Required
2T, 2
0 0 2 1
3T, 1T, 3T

T  1T.2 T. 3T
0 0 1 2
It is known that: 3 .....(1)

1 0 1
Rearranging the equation we have: 1T . 3T. 3T  2T
0 2 1
.....(2)
but since 01T  1  10T and 23T  1  32T , (2) becomes:

T  0T. 3T. 2 T
1 1 0 3
2 .....(3)

36
Final substitution of the known values produces the result:

0.866  0.5 0 153.98 c 2 - s 2 0  2 c 2 


 0.5 0.866 0 88.9  s 2 c 2 0  2s 2 
1
T   = .....(4)
 0 0   0 0 
2
0 1 0 1
   
 0 0 0 1   0 0 0 1 

Finally from elements r11 and r21 of the matrix above it can be verified that θ2 = 300

3) The camera -robot arrangement shown in the diagram is set-up so that the camera can see
both the base of the robot and
the workspace (end-
effector and cuboid). A frame
of orthonormal axes have
been attached to the camera
as shown. The matrix T1
describes the robot’s
base as seen by the camera. If
the matrix T2 describes the
cuboid’s co-ordinate
system (attached to the centre
of the cuboid) as seen by the
camera, evaluate:

a) The distance of the cuboid


from the base of the robot.
b) The orientation of the gripper if the y-axis of the tool is to be aligned with the y-axis of
the cuboid whilst the gripper grasps the object from the top.
c) The transform matrix which describes the position and orientation of the gripper relative
to the base of the robot when the robot has just acquired the part.

 1 0 0  10 0 1 0  8
 0 1 0  1 1 0 0 0.5 
The two matrices are: T1   0 0 1 9  and T2   0 0 1 8 
 0 0 0 1   0 0 0 1 
Solution

a) To find the matrix that relates the robot base to the cube, the method for compound
transformations can be used: cub T  camT. cub T
r r cam

T
cam cam r r cam -1
It is known that cub T = T2 and that r T = T1 . Hence cub T. cub T = T1 . T2
cam

 1 0 0  10  0 1 0  8  0  1 0  2
1  0 1 0 1  1 0 0 0.5  1 0 . 
0 15
cubT = T1 . T2   0 9  0 0  1 8   0 0
r
0 1 1 1 
 0 0 0 1   0 0 0 1   0 0 0 1 

37
The distance between the robot base and the cuboid co-ordinate frame is given as:
d = p 2x  p 2y  p 2z  (  2)2  (15
. )  (1)  2.693
2 2

b) From the information known, the


simple representation of the co-ordinate
frames, shown opposite, is deduced:

It is clear now that we need to find the


rotation of the robot gripper relative to
the cuboid. To acquire the cuboid the
robot must align its end-effector so that
the z-axis of the cuboid and the end-
effector’s approach axis are coincident
and antiparallel. Also the sliding vector
of the end-effector is coincident with the
y-axis of the cuboid. Hence for the
robot’s tool we have:

a = [0, 0, -1]T and s = [0, 1 , 0]T.

The third vector n can be found using


the cross product of s and a. Thus:

i j k i j k -1
n = sx sy sz  0 1 0 =  0 
ax ay a z 0 0 -1  0 

Thus the following rotational matrix


 nx sx a x  - 1 0 0 
cub  a y    0 1 0 
tool R =  n y sy
 n z sz a z   0 0 - 1


For a two finger symmetrical gripper a sliding vector which is coincident and antiparallel to the y-axis of
the cuboid may also be chosen. In this case the sliding vector s would be s = [0,-1,0]T.

38
is obtained.

This corresponds to an overall


diagrammatic representation of orientation
as shown opposite.

c) The transform describing the position of


the gripper relative to the cuboid at the time
of grasping is:

- 1 0 0 0
0 1 0 0
cub
T =   hence,
0 0  1 0
tool

 
0 0 0 1

0  1 0  2  - 1 0 0 0  0  1 0  2 
1 0 0 1. 5   0 1 0 0   1 0 0 1 .5 
tool T = cubT. tool T 
r r cub
   
0 0 1 1  0 0  1 0  0 0 1 1 
    
0 0 0 1  0 0 0 1  0 0 0 1 

a result that agrees fully with the diagram shown here.

Another way of looking at the problem is the following:

As stated earlier, when the robot grasps the object, the robot must align its end-effector so
that the z-axis of the cuboid and the end-effector’s approach axis are coincident and
antiparallel. Also the sliding vector of the end-effector must be coincident with the y-axis of
the cuboid.

During grasping, the position of the tool frame must be the same as that of the cuboid frame.

Looking at the diagram, it should be obvious that all the above can be accomplished if:

 The frame of the end-effector (originally assumed to have the same orientation as the
cuboid) is rotated by 1800 about the y-axis of the cuboid.

 The end-effector is moved to the position of the cuboid.

Which, in terms of the transformation matrix at the time of grasping, results in:

39
- 1 0 00
0 1 0 0
cub
toolT =
 
0 0 - 1 0
 
0 0 0 1

which, of course, results in the same overall answer:

0  1 0  2  - 1 0 0  0  1 0  2
0
1 0 0 1.5   0 1 0 0  1 0 0 1.5 
tool T = cubT. tool T 
r r cub
 
0 0 1 1  0 0  1 0  0 0 1 1 
    
0 0 0 1  0 0 0 1  0 0 0 1 

40

You might also like