me 537 - robotics homogeneous transformations purpose: the purpose of this chapter is to introduce...
TRANSCRIPT
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
Homogeneous Transformations
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.
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 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 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.
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 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 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
Cp = vector located in frame C
Tsai uses a pre and post script notation
= transformation of frame C relative to frame B
Cp = vector located in frame C
Note that we may not use the scripting approach, but instead graphically interpret the frame representations.
Script Notation:Pre super and sub-scripts are often used to denote frames of reference
= transformation of frame C relative to frame B
Cp = vector located in frame C
Tsai uses a pre and post script notation
= transformation of frame C relative to frame B
Cp = vector located in frame C
Note that we may not use the scripting approach, but instead graphically interpret the frame representations.
TTBB
CC
TTBB
CC
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
1111dd33dd33dd22dd22dd11dd11
ppzzppzzcczzcczzbbzzbbzzaazzaazz
ppyyppyyccyyccyybbyybbyyaayyaayy
ppxxppxxccxxccxxbbxxbbxxaaxxaaxx
H = H =
Homogeneous TransformationHomogeneous Transformation
H can represent translation, rotation, stretching or shrinking (scaling), and perspective transformations H can represent translation, rotation, stretching or shrinking (scaling), and perspective transformations
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
1111000000000000
ppzzppzzcczzcczzbbzzbbzzaazzaazz
ppyyppyyccyyccyybbyybbyyaayyaayy
ppxxppxxccxxccxxbbxxbbxxaaxxaaxx
H = H =
Interpreting the HT as a frameInterpreting 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, 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 pa b c p
R
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
What do the terms represent?What do the terms represent?a is a vector ( set of direction cosines ax, ay, and az ) 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 is a vector ( set of direction cosines ax, ay, and az ) 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.
aazzaazz
aayyaayy
aaxxaaxx
a = a =
p
Base frameBase frame
FrameFrame
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
Interpreting the HT used to locate a vector in the base frameInterpreting 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 !
Given a fixed vector u, its transformation v is represented by
v = H u
Note that this form doesn’t work for free vectors !
x
y
z
u
v
H
Frame Interpretation
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
uuzzuuzz
uuyyuuyy
uuxxuuxx
u = u =
11
The position vector u having components ux, uy, uz must be expanded to a 4 x 1 vector by adding a 1.
The position vector u having components ux, uy, uz must be expanded to a 4 x 1 vector by adding a 1.
Transforming vectorsTransforming 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.
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 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
uuzzuuzz
uuyyuuyy
uuxxuuxx
11
Interpreting the HTInterpreting the HT
RR pp
110T0T= R u + p= R u + p
The 1 adds in the frame origin, while the R resolves the vector u into the base frame
The 1 adds in the frame origin, while the R resolves the vector u into the base frame
v = v =
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
Pure rotationPure rotation
Special cases:Special cases:
1111000000000000
0000cczzcczzbbzzbbzzaazzaazz
0000ccyyccyybbyybbyyaayyaayy
0000ccxxccxxbbxxbbxxaaxxaaxx
H = H =
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
Special cases:Special cases:
Pure translationPure translation
1111000000000000
ppzzppzz111100000000
ppyyppyy000011110000
ppxxppxx000000001111
H = H =
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
Pure rotation about xPure rotation about x
Rotational formsRotational forms
R(x, ) = R(x, ) =
xx
coscoscoscossinsinsinsin0000
-sin-sin-sin-sincoscoscoscos0000
00 00 00 001111
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
Pure rotation about yPure rotation about y
Rotational formsRotational forms
R(y, ) = R(y, ) =
coscos coscos 00 00-sin-sin-sin-sin 00 00 11 11 00 00
sinsin sinsin 00 00coscoscoscos
Pure rotation about zPure rotation about z
R(z, ) = R(z, ) =
11 11 00 00 00 00
00 00coscoscoscossinsinsinsin 00 00-sin-sin-sin-sincoscoscoscos
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
Example - Rotate u by 90o about +Z and 90o 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 uT = [0 1 0].
Example - Rotate u by 90o about +Z and 90o 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 uT = [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
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 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
R(Y,˚) = R(Y,˚) =
00 00 00 00 -1-1 -1-1
00 00 11 11 00 00
11 11 00 00 00 00
R(Z,˚) = R(Z,˚) =
11 11 00 00 00 00
00 00 00 00 11 11
00 00 -1-1 -1-1 00 00
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
w = w =
0
1
0
100
001
010
001
010
100
0
1
0
100
001
010
001
010
100
1
0
0
1
0
0
Graphical interpretationGraphical interpretation
Z, z', y"Z, z', y"
Y, x', x"Y, x', x"
X,z"X,z"
9090°°9090°°
y'y'
(0,1,0)(0,1,0)
(0,0,1)(0,0,1)
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
w = w =
1
0
0
1
0
0
Change order?Change order?
001
010
100
100
001
010
0
1
0
Not commutative!Not commutative!
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
Order of p and R: first R, then pOrder of p and R: first R, then p
w = H(p) H(R) u = I p0T 1
R 00T 1
u
w = R p0T 1
u = H (R, p ) u
pp
RR
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
Order of p and R: first p, then ROrder of p and R: first p, then R
w = H(R) H(p) u = R 00T 1
I p0T 1
u =R Rp0T 1
u
Note the difference in the final matrix form. Can you explain the difference?Note the difference in the final matrix form. Can you explain the difference?
pp
RR
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
Understanding HT multiplication orderUnderstanding 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.
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 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
Example -Given frame
and transformation
locate frame X = H C and frame Y = C H . Note the differences.
Example -Given frame
and transformation
locate frame X = H C and frame Y = C H . Note the differences.
C =
1 0 0 200 0 -1 100 1 0 00 0 0 1
H = 0 -1 0 101 0 0 00 0 1 00 0 0 1
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
Results : HCResults : HC
X = HC =0 -1 0 101 0 0 00 0 1 00 0 0 1
1 0 0 200 0 -1 100 1 0 00 0 0 1
=0 0 1 01 0 0 200 1 0 00 0 0 1
Z
X
Y
y"
y'
x'
x"
z'
z"
x
z
y
X
20
10
C
10
CCHH
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
Results : CHResults : CH
Y = 1 0 0 200 0 -1 100 1 0 00 0 0 1
0 -1 0 101 0 0 00 0 1 00 0 0 1
= 0 -1 0 300 0 -1 101 0 0 00 0 0 1
Z
Y
X
y
z
10x
y
z
x
Y
C20
10
CC HH
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
Inverse Transformations 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 = RT v
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 = RT v
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
Inverse Transformations 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:
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:
ax ay az -pTa
bx by bz -pTb
cx cy cz -pTc0 0 0 1
RT -RTp0T 1
H-1 =H-1 = =
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
Operational rules for square matrices of full rank :
Operational rules for square matrices of full rank :
(A B C )T = CT BT AT
(A B C )-1 = C-1 B -1 A-1
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
HT summaryHT summary
Homogeneous transformation consists of three components: rotational, orthogonal 3x3 sub-matrix which is comprised
of columns of direction cosines used to orient the axes of one frame relative to another.
column vector in 4th column represents the origin of second
frame relative to first frame, resolved in the first frame.
0's in 4th row except for 1 in 4,4 position.
Homogeneous transformation consists of three components: rotational, orthogonal 3x3 sub-matrix which is comprised
of columns of direction cosines used to orient the axes of one frame relative to another.
column vector in 4th column represents the origin of second
frame relative to first frame, resolved in the first frame.
0's in 4th row except for 1 in 4,4 position.
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
HT summaryHT 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.
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 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
HT summaryHT summary
The homogeneous transformation can be viewed as a position/orientation relationship of one frame relative to another frame called the reference frame.
The homogeneous transformation can be viewed as a position/orientation relationship of one frame relative to another frame called the reference frame.
ME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - RoboticsME 537 - Robotics
HT summaryHT summary
A Bcan 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.
A Bcan 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.