ME 537 - Robotics ME 537 - Robotics

albanianboneyardAI and Robotics

Nov 2, 2013 (3 years and 9 months ago)

108 views

ME 537
-

Robotics

ME 537
-

Robotics

Homogeneous
Transformations


Purpose
:

The purpose of this chapter is to introduce you to the
Homogeneous Transformation. This simple 4 x 4
transformation is used in the geometry engines of CAD systems
and in the kinematics model in robot controllers. It is very
useful for examining rigid
-
body position and orientation (pose)
of a sequence of robotic links and joint frames.


ME 537
-

Robotics

ME 537
-

Robotics

In

particular,

you

will


1.
Examine the structure of the HT (homogeneous transform).

2.
See how orientation and position are represented within
one matrix.

3.
Apply the HT to pose (position and orient) a frame (xyz set
of axes) relative to another reference frame.

4.
Examine the HT for simple rotations about an axis.

5.
See the effect of multiplying a series of HT’s.

6.
Interpret the order of a product of HT’s relative to base and
body
-
fixed frames.

7.
See how the HT is used in robotics.

ME 537
-

Robotics

ME 537
-

Robotics

Script

Notation
:

Pre

super

and

sub
-
scripts

are

often

used

to

denote

frames

of

reference



=

transformation

of

frame

C

relative

to

frame

B


C
p

=

vector

located

in

frame

C

Tsai

uses

a

pre

and

post

script

notation



=

transformation

of

frame

C

relative

to

frame

B


C
p

=

vector

located

in

frame

C

Note

that

we

may

not

use

the

scripting

approach,

but

instead

graphically

interpret

the

frame

representations
.

T

B

C

T

B

C

ME 537
-

Robotics

ME 537
-

Robotics

1

d
3

d
2

d
1

p
z

c
z

b
z

a
z

p
y

c
y

b
y

a
y

p
x

c
x

b
x

a
x

H

=


Homogeneous Transformation

H

can represent translation, rotation, stretching or
shrinking (scaling), and perspective transformations


ME 537
-

Robotics

ME 537
-

Robotics

1

0

0

0

p
z

c
z

b
z

a
z

p
y

c
y

b
y

a
y

p
x

c
x

b
x

a
x

H

=


Interpreting the HT as a frame

a
,
b
, and
c

form an orientation sub
-
matrix denoted
by
R (3 x 3)
, while
p (3 x 1)

is the frame’s origin
offset.


a b c
p

R

ME 537
-

Robotics

ME 537
-

Robotics

What do the terms represent?

a

is a vector ( set of direction cosines a
x
,
a
y
, and a
z
) that orients the frame’s x axis
relative to the base X, Y, and Z axes,
respectively. Similar interpretations are
made for the frame’s y and z axes
through the direction cosine sets
represented by vectors
b

and
c
.

p

is a vector of 3 components
representing the frame’s origin relative
to the reference axes.

a
z

a
y

a
x

a
=


p

Base frame

Frame

ME 537
-

Robotics

ME 537
-

Robotics

Interpreting the HT used to locate
a vector in the base frame

Given a fixed vector
u
, its transformation
v

is represented by


v

=
H u

Note that this form doesn’t
work for free vectors !

Frame Interpretation


ME 537
-

Robotics

ME 537
-

Robotics

u
z

u
y

u
x

u
=


1

The position vector u
having components
u
x
, u
y
, u
z

must be
expanded to a 4 x 1
vector by adding a 1.

Transforming vectors

Note: To transform an orientation vector, only use the
orientation sub
-
matrix R, and drop the 1 from the vector so that
you are multiplying a (3 x 3) matrix times a (3 x 1) vector.

ME 537
-

Robotics

ME 537
-

Robotics

u
z

u
y

u
x

1

Interpreting the HT

R

p

1

0
T

= R u + p

The 1 adds in the frame
origin, while the R resolves
the vector u into the base
frame

v =

ME 537
-

Robotics

ME 537
-

Robotics

Pure rotation

Special cases:

1

0

0

0

0

c
z

b
z

a
z

0

c
y

b
y

a
y

0

c
x

b
x

a
x

H

=


ME 537
-

Robotics

ME 537
-

Robotics

Special cases:

Pure translation

1

0

0

0

p
z

1

0

0

p
y

0

1

0

p
x

0

0

1

H

=


ME 537
-

Robotics

ME 537
-

Robotics

Pure rotation

about x

Rotational forms

R(x,
q


=


x

cos
q

sin
q

0

-
sin
q

cos
q

0


0


0

1

q

q

ME 537
-

Robotics

ME 537
-

Robotics

Pure rotation

about y

Rotational forms

R(y,
q


=



cos
q


0

-
sin
q


0


1


0


sin
q


0

cos
q

Pure rotation

about z

R(z,
q


=



1


0


0


0

cos
q

sin
q


0

-
sin
q

cos
q

ME 537
-

Robotics

ME 537
-

Robotics

Example
-

Rotate u by 90
o

about +Z and 90
o

about +Y,
where XYZ are the fixed base reference axes. What are the
final coordinates of the vector u after these two rotations in the
base XYZ axes? If the rotation order changed, will the final
coordinates be the same? Let u
T

= [0 1 0].


Soln
:



v = R (Z,90˚) u

"rotate u to v"



w = R (Y,90˚) v

"rotate v to w"

Thus,



w = R (Y,90˚) R (Z,90˚) u


ME 537
-

Robotics

ME 537
-

Robotics

R(Y,
90
˚
)

=



0


0


-
1


0


1


0


1


0


0

R(Z,
90
˚
)

=



1


0


0


0


0


1


0


-
1


0

ME 537
-

Robotics

ME 537
-

Robotics

w
=


Graphical interpretation

Z, z', y"



Y, x', x"



X,z"



90

°

90

°

y'



(0,1,0)

(0,0,1)

ME 537
-

Robotics

ME 537
-

Robotics

w
=


Change order?



0

0

1

0

1

0

1

0

0



1

0

0

0

0

1

0

1

0

0

1

0

Not commutative!

ME 537
-

Robotics

ME 537
-

Robotics

Order of p and R: first R, then p

p

R

ME 537
-

Robotics

ME 537
-

Robotics

Order of p and R: first p, then R

Note the difference in the final matrix form.

Can you explain the difference?

p

R

ME 537
-

Robotics

ME 537
-

Robotics

Understanding HT multiplication order

If we postmultiply a transformation (A B)
representing a frame (relative to base axes) by a
second transformation (relative to the frame of the
first transformation), we make the transformation
with respect to the frame axes of the first
transformation. Premultiplying the frame
transformation by the second transformation (B A)
causes the transformation to be made with respect to
the base reference frame.


ME 537
-

Robotics

ME 537
-

Robotics

Example
-
Given frame




and transformation




locate frame X = H C and frame Y = C H

. Note the differences.

ME 537
-

Robotics

ME 537
-

Robotics

Results : HC

C

H

ME 537
-

Robotics

ME 537
-

Robotics

Results : CH

C

H

ME 537
-

Robotics

ME 537
-

Robotics

Inverse Transformations


Given
u
and the rotational transformation
R
, the
coordinates of
u

after being rotated by
R
are defined
by
v

=
Ru
. The inverse question is given
v,

what
u
when rotated by
R

will give
v
?




Answer:



u = R
-
1

v = R
T

v

ME 537
-

Robotics

ME 537
-

Robotics

Inverse Transformations


Similarly for any displacement matrix
H
(
R, p
), we
can pose a similar question to get
u

=
H
-
1

v.

What is
the inverse of a displacement transformation? Without
proof:


H
-
1

=

=

ME 537
-

Robotics

ME 537
-

Robotics

Operational rules for square

matrices of full rank

:

ME 537
-

Robotics

ME 537
-

Robotics

HT summary

Homogeneous

transformation

consists

of

three

components
:






rotational,

orthogonal

3
x
3

sub
-
matrix

which

is

comprised


of

columns

of

direction

cosines

used

to

orient

the

axes

of

one

frame

relative

to

another
.





column

vector

in

4
th

column

represents

the

origin

of

second

frame

relative

to

first

frame,

resolved

in

the

first

frame
.




0
's

in

4
th

row

except

for

1

in

4
,
4

position
.

ME 537
-

Robotics

ME 537
-

Robotics

HT summary

The homogeneous transformation
effectively merges a frame orientation
matrix and frame translation vector into
one matrix. The order of the operation
should be viewed as rotation first, then
translation.

ME 537
-

Robotics

ME 537
-

Robotics

HT summary

The homogeneous transformation can be viewed
as a position/orientation relationship of one
frame relative to another frame called the
reference frame.


ME 537
-

Robotics

ME 537
-

Robotics

HT summary

A B

can be interpreted as frame
A
described
relative to the first or base frame while frame
B
is described relative to frame
A
(usual way). We
can also interpret
B


in the base frame
transformed by
A
in the base frame. Both
interpretations give same result.