CS 3630
Reference Frames
โข Robotics is all about management
of reference frames
โข Perception is about estimation of reference frames
โข Planning is how to move reference frames
โข Control is the implementation of trajectories for reference frames
โข The relation between references
frames is essential to a successful
system
Application to Drones
To characterize the position and orientation of a drone in flight,
โข attach a coordinate frame to the drone (rigid attachment)
โข specify the position and orientation of the frame.
Firstโฆ a quick review
Nearly everything we learned about position and orientation in the
plane can be easily generalized to position and orientation in 3D.
Weโll start with a quick review of the 2D case, then generalize to 3D,
and show the corresponding mathematical formulations.
Specifying Orientation in the Plane
๐ฝ
๐ฝ
๐ฅ0 ๐ฆ0 ๐ฅ1 ๐ฆ1 sin ๐ cos ๐Given two coordinate frames with a common origin, how should we describe the orientation of Frame 1 w.r.t. Frame 0?
โข Specify the directions of ๐ฅ1 and ๐ฆ1 with respect to Frame 0 by projecting onto ๐ฅ0 and ๐ฆ0.
Notation: ๐ฅ10 denotes the x-axis of Frame 1, specified w.r.t Frame 0.
๐ฆ
10=
๐ฆ
๐ฆ
1โ ๐ฅ
0 1โ ๐ฆ
0=
โsin ๐
cos ๐
We obtain ๐ฆ10 in the same way.๐ฅ
10=
๐ฅ
๐ฅ
1โ ๐ฅ
0 1โ ๐ฆ
0=
cos ๐
sin ๐
Rotation Matrices (rotation in the plane)
We combine these two vectors to obtain a rotation matrix: ๐ 10 = cos ๐ sin ๐
โsin ๐ cos ๐
All rotation matrices have certain properties: 1. The two columns are each unit vectors.
2. The two columns are orthogonal, e.g., ๐1 โ ๐2 = 0.
3. det ๐ = +1
โข The first two properties imply that the matrix ๐ is orthogonal.
โข The third property implies that the matrix is special! (After all, there are plenty of orthogonal matrices whose determinant is -1, not at all special.)
The collection of 2 ร 2 rotation matrices is called the Special Orthogonal Group of order 2, or, more commonly ๐บ๐ถ(๐).
This concept generalizes to ๐บ๐ถ ๐ for ๐ ร ๐ rotation matrices.
Rotation Matrices (3D)
All of the properties of SO(2) apply as well to SO(3)! All rotation matrices have certain properties:
1. The two columns are each unit vectors.
2. The two columns are orthogonal, e.g., ๐1 โ ๐2 = 0.
3. det ๐ = +1
โข The first two properties imply that the matrix ๐ is orthogonal.
โข The third property implies that the matrix is special! (After all, there are plenty of orthogonal matrices whose determinant is -1, not at all special.)
The collection of 3 ร 3 rotation matrices is called the Special Orthogonal Group of order 3, or, more commonly ๐บ๐ถ(๐).
Rotation Matrices for 3D rotations
๐
10= ๐ฅ
1โ ๐น
0๐ฆ
1โ ๐น
0๐ง
1โ ๐น
0=
๐ฅ
1โ ๐ฅ
0๐ฆ
1โ ๐ฅ
0๐ง
1โ ๐ฅ
0๐ฅ
1โ ๐ฆ
0๐ฆ
1โ ๐ฆ
0๐ง
1โ ๐ฆ
0๐ฅ
1โ ๐ง
0๐ฆ
1โ ๐ง
0๐ง
1โ ๐ง
0To build a rotation matrix, say ๐ 10: project the axes of Frame 1 onto Frame 0. Each column of ๐ 10 corresponds to the projection of one axis of Frame 1 onto Frame 0.
๐
10= ๐ฅ
1โ ๐น
0๐ฆ
1โ ๐น
0๐ง
1โ ๐น
0=
๐ฅ
1โ ๐ฅ
0๐ฆ
1โ ๐ฅ
0๐ง
1โ ๐ฅ
0๐ฅ
1โ ๐ฆ
0๐ฆ
1โ ๐ฆ
0๐ง
1โ ๐ฆ
0๐ฅ
1โ ๐ง
0๐ฆ
1โ ๐ง
0๐ง
1โ ๐ง
0Rotation Matrices for 3D rotations
Project the x-axis of Frame 1 onto the axes of Frame 0
To build a rotation matrix, say ๐ 10: project the axes of Frame 1 onto Frame 0. Each column of ๐ 10 corresponds to the projection of one axis of Frame 1 onto Frame 0.
Rotation Matrices for 3D rotations
๐
10= ๐ฅ
1โ ๐น
0๐ฆ
1โ ๐น
0๐ง
1โ ๐น
0=
๐ฅ
1โ ๐ฅ
0๐ฆ
1โ ๐ฅ
0๐ง
1โ ๐ฅ
0๐ฅ
1โ ๐ฆ
0๐ฆ
1โ ๐ฆ
0๐ง
1โ ๐ฆ
0๐ฅ
1โ ๐ง
0๐ฆ
1โ ๐ง
0๐ง
1โ ๐ง
0Project the y-axis of Frame 1 onto the axes of Frame 0
To build a rotation matrix, say ๐ 10: project the axes of Frame 1 onto Frame 0. Each column of ๐ 10 corresponds to the projection of one axis of Frame 1 onto Frame 0.
Rotation Matrices for 3D rotations
๐
10= ๐ฅ
1โ ๐น
0๐ฆ
1โ ๐น
0๐ง
1โ ๐น
0=
๐ฅ
1โ ๐ฅ
0๐ฆ
1โ ๐ฅ
0๐ง
1โ ๐ฅ
0๐ฅ
1โ ๐ฆ
0๐ฆ
1โ ๐ฆ
0๐ง
1โ ๐ฆ
0๐ฅ
1โ ๐ง
0๐ฆ
1โ ๐ง
0๐ง
1โ ๐ง
0Project the z-axis of Frame 1 onto the axes of Frame 0
To build a rotation matrix, say ๐ 10: project the axes of Frame 1 onto Frame 0. Each column of ๐ 10 corresponds to the projection of one axis of Frame 1 onto Frame 0.
Rotation Matrices for 3D rotations
๐
10= ๐ฅ
1โ ๐น
0๐ฆ
1โ ๐น
0๐ง
1โ ๐น
0=
๐ฅ
1โ ๐ฅ
0๐ฆ
1โ ๐ฅ
0๐ง
1โ ๐ฅ
0๐ฅ
1โ ๐ฆ
0๐ฆ
1โ ๐ฆ
0๐ง
1โ ๐ฆ
0๐ฅ
1โ ๐ง
0๐ฆ
1โ ๐ง
0๐ง
1โ ๐ง
0Project the x-axis of Frame 1 onto the axes of Frame 0
To build a rotation matrix, say ๐ 10: project the axes of Frame 1 onto Frame 0. Each column of ๐ 10 corresponds to the projection of one axis of Frame 1 onto Frame 0.
Project the x-axis of Frame 1 onto the axes of Frame 0
Project the x-axis of Frame 1 onto the axes of Frame 0
This process is exactly the same as the process for building rotation matrices in SO(2), even though it can be more difficult to visualize in 3D for rotation matrices in SO(3).
The simplest example: rotation about the z axis
๐ฝ
๐ฝ
๐ฅ0 ๐ฆ0 ๐ฅ1 ๐ฆ1 ๐ง0 ๐ง1Recall: for rotation in the plane, we built a rotation matrix as a function of ๐, the angle between ๐ฅ1 and ๐ฅ0 (and also between ๐ฆ1 and ๐ฆ0):
โข ๐ 10 = cos ๐ sin ๐
โsin ๐
cos ๐ FOR ROTATION IN THE PLANE
This is easily extended to the case of rotation in 3D about the z-axis, since all of the interesting action is in the x-y plane (the two z-axes are the same)!
In fact, youโll see that the 2D rotation matrix shows up in the 3D rotation matrix:
โข ๐ 10 = cos ๐sin ๐ โ sin ๐cos ๐ 00
0 0 1
FOR ROTATION IN 3D
Projecting ๐ง1 onto Frame 0 involves three dot products:
๐ง1 โ ๐ฅ0 = 0 ๐ง1 โ ๐ฆ0 = 0 ๐ง1 โ ๐ง0 = 1
A bunch of examples:
๐ฅ0 ๐ฆ0 ๐ง0 ๐ฅ1 ๐ฅ2 ๐ฅ3 ๐ฆ1 ๐ฆ2 ๐ฆ3 ๐ง1 ๐ง2 ๐ง3A rectangular solid: all angles are multiples of ๐/2.
๐ ๐๐ = ๐ฅ๐ โ ๐ฅ๐ ๐ฆ๐ โ ๐ฅ๐ ๐ง๐ โ ๐ฅ๐ ๐ฅ๐ โ ๐ฆ๐ ๐ฆ๐ โ ๐ฆ๐ ๐ง๐ โ ๐ฆ๐ ๐ฅ๐ โ ๐ง๐ ๐ฆ๐ โ ๐ง๐ ๐ง๐ โ ๐ง๐
๐
10=
โ1 0 0
0 0 1
0 1 0
๐
01=
โ1 0 0
0 0 1
0 1 0
A bunch of examples:
๐ฅ0 ๐ฆ0 ๐ง0 ๐ฅ1 ๐ฅ2 ๐ฅ3 ๐ฆ1 ๐ฆ2 ๐ฆ3 ๐ง1 ๐ง2 ๐ง3A rectangular solid: all angles are multiples of ๐/2.
๐ ๐๐ = ๐ฅ๐ โ ๐ฅ๐ ๐ฆ๐ โ ๐ฅ๐ ๐ง๐ โ ๐ฅ๐ ๐ฅ๐ โ ๐ฆ๐ ๐ฆ๐ โ ๐ฆ๐ ๐ง๐ โ ๐ฆ๐ ๐ฅ๐ โ ๐ง๐ ๐ฆ๐ โ ๐ง๐ ๐ง๐ โ ๐ง๐ ๐ 10 = โ1 0 0 0 0 1 0 1 0 ๐ 01 = โ1 0 0 0 0 1 0 1 0 ๐ 10๐ 01= โ1 0 0 0 0 1 0 1 0 โ1 0 0 0 0 1 0 1 0 = 1 0 0 0 1 0 0 0 1
๐
10 โ1=
๐
01= ๐
10 ๐A bunch of examples:
๐ฅ0 ๐ฆ0 ๐ง0 ๐ฅ1 ๐ฅ2 ๐ฅ3 ๐ฆ1 ๐ฆ2 ๐ฆ3 ๐ง1 ๐ง2 ๐ง3A rectangular solid: all angles are multiples of ๐/2.
๐ ๐๐ = ๐ฅ๐ โ ๐ฅ๐ ๐ฆ๐ โ ๐ฅ๐ ๐ง๐ โ ๐ฅ๐ ๐ฅ๐ โ ๐ฆ๐ ๐ฆ๐ โ ๐ฆ๐ ๐ง๐ โ ๐ฆ๐ ๐ฅ๐ โ ๐ง๐ ๐ฆ๐ โ ๐ง๐ ๐ง๐ โ ๐ง๐
๐
20=
1
0
0
0
โ1 0
0
0 โ1
๐
21=
โ1
0
0
0
0
โ1
0
โ1
0
A bunch of examples:
๐ฅ0 ๐ฆ0 ๐ง0 ๐ฅ1 ๐ฅ2 ๐ฅ3 ๐ฆ1 ๐ฆ2 ๐ฆ3 ๐ง1 ๐ง2 ๐ง3A rectangular solid: all angles are multiples of ๐/2.
๐ ๐๐ = ๐ฅ๐ โ ๐ฅ๐ ๐ฆ๐ โ ๐ฅ๐ ๐ง๐ โ ๐ฅ๐ ๐ฅ๐ โ ๐ฆ๐ ๐ฆ๐ โ ๐ฆ๐ ๐ง๐ โ ๐ฆ๐ ๐ฅ๐ โ ๐ง๐ ๐ฆ๐ โ ๐ง๐ ๐ง๐ โ ๐ง๐
๐
30=
0
โ1
0
โ1
0
0
0
0
โ1
Letโs extend this to 3D rotational coordinate
transformations.
Coordinate Transformations (rotation only)
๐ฅ0 ๐ฆ0
๐ฅ1 ๐ฆ1
Suppose a point ๐ is rigidly attached to coordinate Frame 1, with coordinates given by ๐1 = ๐๐๐ฅ
๐ฆ .
๐๐ฅ ๐๐ฆ
๐
We can express the location of the point ๐ in terms of its coordinates ๐ = ๐๐ฅ๐ฅ1 + ๐๐ฆ๐ฆ1
To obtain the coordinates of ๐ w.r.t. Frame 0, we project ๐ onto the ๐ฅ0 and ๐ฆ0 axes:
Coordinate Transformations (rotation only)
๐ฅ0 ๐ฆ0
๐ฅ1 ๐ฆ1
Suppose a point ๐ is rigidly attached to coordinate Frame 1, with coordinates given by ๐1 = ๐๐๐ฅ
๐ฆ .
๐๐ฅ ๐๐ฆ
๐
We can express the location of the point ๐ in terms of its coordinates ๐ = ๐๐ฅ๐ฅ1 + ๐๐ฆ๐ฆ1
To obtain the coordinates of ๐ w.r.t. Frame 0, we project ๐ onto the ๐ฅ0 and ๐ฆ0 axes: ๐0 = ๐ โ ๐ฅ0 ๐ โ ๐ฆ0 = (๐๐ฅ๐ฅ1 + ๐๐ฆ๐ฆ1) โ ๐ฅ0 (๐๐ฅ๐ฅ1 + ๐๐ฆ๐ฆ1) โ ๐ฆ0 = ๐๐ฅ(๐ฅ1โ ๐ฅ0) + ๐๐ฆ(๐ฆ1 โ ๐ฅ0) ๐๐ฅ(๐ฅ1โ ๐ฆ0) + ๐๐ฆ(๐ฆ1 โ ๐ฆ0) = ๐ฅ๐ฅ1 โ ๐ฅ0 ๐ฆ1 โ ๐ฅ0 1 โ ๐ฆ0 ๐ฆ1 โ ๐ฆ0 ๐๐ฅ ๐๐ฆ = ๐๐น๐ ๐๐ท
Coordinate Transformations (rotation only)
๐ฅ0 ๐ฆ0
๐ฅ1 ๐ฆ1
Suppose a point ๐ is rigidly attached to coordinate Frame 1, with coordinates given by 1๐ = ๐๐๐ฅ
๐ฆ .
๐๐ฅ ๐๐ฆ
๐
We can express the location of the point ๐ in terms of its coordinates ๐ = ๐๐ฅ๐ฅ1 + ๐๐ฆ๐ฆ1
To obtain the coordinates of ๐ w.r.t. Frame 0, we project ๐ onto the ๐ฅ0 and ๐ฆ0 axes: ๐0 = ๐ โ ๐ฅ0 ๐ โ ๐ฆ0 = (๐๐ฅ๐ฅ1 + ๐๐ฆ๐ฆ1) โ ๐ฅ0 (๐๐ฅ๐ฅ1 + ๐๐ฆ๐ฆ1) โ ๐ฆ0 = ๐๐ฅ(๐ฅ1โ ๐ฅ0) + ๐๐ฆ(๐ฆ1 โ ๐ฅ0) ๐๐ฅ(๐ฅ1โ ๐ฆ0) + ๐๐ฆ(๐ฆ1 โ ๐ฆ0) = ๐ฅ๐ฅ1 โ ๐ฅ0 ๐ฆ1 โ ๐ฅ0 1 โ ๐ฆ0 ๐ฆ1 โ ๐ฆ0 ๐๐ฅ ๐๐ฆ = ๐๐น๐ ๐๐ท
Coordinate Transformations (rotation only)
๐ฅ0 ๐ฆ0
๐ฅ1 ๐ฆ1
Suppose a point ๐ is rigidly attached to coordinate Frame 1, with coordinates given by 1๐ = ๐๐๐ฅ
๐ฆ .
๐๐ฅ ๐๐ฆ
๐
We can express the location of the point ๐ in terms of its coordinates ๐ = ๐๐ฅ๐ฅ1 + ๐๐ฆ๐ฆ1
To obtain the coordinates of ๐ w.r.t. Frame 0, we project ๐ onto the ๐ฅ0 and ๐ฆ0 axes: ๐0 = ๐ โ ๐ฅ0 ๐ โ ๐ฆ0 = (๐๐ฅ๐ฅ1 + ๐๐ฆ๐ฆ1) โ ๐ฅ0 (๐๐ฅ๐ฅ1 + ๐๐ฆ๐ฆ1) โ ๐ฆ0 = ๐๐ฅ(๐ฅ1โ ๐ฅ0) + ๐๐ฆ(๐ฆ1 โ ๐ฅ0) ๐๐ฅ(๐ฅ1โ ๐ฆ0) + ๐๐ฆ(๐ฆ1 โ ๐ฆ0) = ๐ฅ๐ฅ1 โ ๐ฅ0 ๐ฆ1 โ ๐ฅ0 1 โ ๐ฆ0 ๐ฆ1 โ ๐ฆ0 ๐๐ฅ ๐๐ฆ = ๐๐น๐ ๐๐ท
To obtain the coordinates of ๐ w.r.t. Frame 0, we project ๐ onto the ๐ฅ0 and ๐ฆ0 axes: ๐0 = ๐ โ ๐ฅ0 ๐ โ ๐ฆ0 = (๐๐ฅ๐ฅ1 + ๐๐ฆ๐ฆ1) โ ๐ฅ0 (๐๐ฅ๐ฅ1 + ๐๐ฆ๐ฆ1) โ ๐ฆ0 = ๐๐ฅ(๐ฅ1โ ๐ฅ0) + ๐๐ฆ(๐ฆ1 โ ๐ฅ0) ๐๐ฅ(๐ฅ1โ ๐ฆ0) + ๐๐ฆ(๐ฆ1 โ ๐ฆ0) = ๐ฅ๐ฅ1 โ ๐ฅ0 ๐ฆ1 โ ๐ฅ0 1 โ ๐ฆ0 ๐ฆ1 โ ๐ฆ0 ๐๐ฅ ๐๐ฆ = ๐น๐๐ ๐ท๐
Coordinate Transformations (rotation only)
๐ฅ0 ๐ฆ0
๐ฅ1 ๐ฆ1
Suppose a point ๐ is rigidly attached to coordinate Frame 1, with coordinates given by 1๐ = ๐๐๐ฅ
๐ฆ .
๐๐ฅ ๐๐ฆ
๐
We can express the location of the point ๐ in terms of its coordinates ๐ = ๐๐ฅ๐ฅ1 + ๐๐ฆ๐ฆ1
๐ฅ1 ๐ฆ1
Coordinate Transformations (rotation only)
๐ฅ0 ๐ฆ0
Suppose a point ๐ is rigidly attached to coordinate Frame 1, with coordinates given by ๐1 = ๐๐๐ฅ
๐ฆ .
๐๐ฅ ๐๐ฆ
๐
We can express the location of the point ๐ in terms of its coordinates ๐ = ๐๐ฅ๐ฅ1 + ๐๐ฆ๐ฆ1
To obtain the coordinates of ๐ w.r.t. Frame 0, we project ๐ onto the ๐ฅ0 and ๐ฆ0 axes: ๐0 = ๐ โ ๐ฅ0 ๐ โ ๐ฆ0 = (๐๐ฅ๐ฅ1 + ๐๐ฆ๐ฆ1) โ ๐ฅ0 (๐๐ฅ๐ฅ1 + ๐๐ฆ๐ฆ1) โ ๐ฆ0 = ๐๐ฅ(๐ฅ1โ ๐ฅ0) + ๐๐ฆ(๐ฆ1 โ ๐ฅ0) ๐๐ฅ(๐ฅ1โ ๐ฆ0) + ๐๐ฆ(๐ฆ1 โ ๐ฆ0) = ๐ฅ๐ฅ1 โ ๐ฅ0 ๐ฆ1 โ ๐ฅ0 1 โ ๐ฆ0 ๐ฆ1 โ ๐ฆ0 ๐๐ฅ ๐๐ฆ = ๐น๐๐ ๐ท๐
๐ท
๐
= ๐น
๐
๐
๐ท
๐
The simplest example: rotation about the z axis
๐ฝ
๐ฝ
๐ฅ0 ๐ฆ0 ๐ฅ1 ๐ฆ1 ๐ง0 ๐ง1 As we saw above: ๐ 10 = cos ๐ โ sin ๐ 0 sin ๐ cos ๐ 0 0 0 1The equation for rotational coordinate transformations generalizes immediately to the 3D case!
๐ท๐ = ๐น๐๐ ๐ท๐ = cos ๐ โ sin ๐ 0 sin ๐ cos ๐ 0 0 0 1 ๐๐ฅ ๐๐ฆ 0 ๐๐ฅ ๐๐ฆ ๐
Composition of Rotations
๐ฅ0 ๐ฆ1 ๐ฆ2 ๐ฆ0 ๐ฅ1 ๐ฅ2 ๐ ๐1 = ๐ 21๐2 ๐0 = ๐ 10๐1From our previous results, we know:
๐0 = ๐ 10๐ 21๐2 ๐0 = ๐ 20๐2
๐ 20 = ๐ 10๐ 21
But we also know:
๐ 10
๐ 21
๐ 20
This is the composition law for rotation transformations.
For now, only consider the rotation, not the translation!
This is an โexplodedโ view of three coordinate frames that share the same origin.
๐ง0
๐ง1
A bunch of examples:
๐ฅ0 ๐ฆ0 ๐ง0 ๐ฅ1 ๐ฅ2 ๐ฅ3 ๐ฆ1 ๐ฆ2 ๐ฆ3 ๐ง1 ๐ง2 ๐ง3A rectangular solid: all angles are multiples of ๐/2.
๐ ๐๐ = ๐ฅ๐ โ ๐ฅ๐ ๐ฆ๐ โ ๐ฅ๐ ๐ง๐ โ ๐ฅ๐ ๐ฅ๐ โ ๐ฆ๐ ๐ฆ๐ โ ๐ฆ๐ ๐ง๐ โ ๐ฆ๐ ๐ฅ๐ โ ๐ง๐ ๐ฆ๐ โ ๐ง๐ ๐ง๐ โ ๐ง๐
๐
10=
โ1
0 0
0
0 1
0
1 0
๐
21=
โ1
0
0
0
0
โ1
0
โ1
0
๐
20=
โ1
0 0
0
0 1
0
1 0
โ1
0
0
0
0
โ1
0
โ1
0
=
1
0
0
0
โ1
0
0
0
โ1
This agrees with our earlier result!
A bunch of examples:
๐ฅ0 ๐ฆ0 ๐ง0 ๐ฅ1 ๐ฅ2 ๐ฅ3 ๐ฆ1 ๐ฆ2 ๐ฆ3 ๐ง1 ๐ง2 ๐ง3A rectangular solid: all angles are multiples of ๐/2.
๐ ๐๐ =
๐ฅ๐ โ ๐ฅ๐ ๐ฆ๐ โ ๐ฅ๐ ๐ง๐ โ ๐ฅ๐
๐ฅ๐ โ ๐ฆ๐ ๐ฆ๐ โ ๐ฆ๐ ๐ง๐ โ ๐ฆ๐
๐ฅ๐ โ ๐ง๐ ๐ฆ๐ โ ๐ง๐ ๐ง๐ โ ๐ง๐
In preceding examples, we have computed ๐ 10, ๐ 20, ๐ 30. Can we compute ๐ 32? ๐ 30 = ๐ 20๐ 32 ๐ 20 โ1 ๐ 30 = ๐ 32 ๐ 20 ๐ ๐ 30 = ๐ 32 ๐ 02๐ 30 = ๐ 32 ๐ 32 = 1 0 0 0 โ1 0 0 0 โ1 0 โ1 0 โ1 0 0 0 0 โ1 = 0 1 0 โ1 0 0 0 0 1
Specifying Pose in the Plane
๐ฅ0
Suppose we now translate Frame 1 (no new rotatation). What are the coordinates of ๐ w.r.t. Frame 0?
Since we merely translated ๐ by a fixed vector ๐, simply add the offset to our previous result! ๐๐ฅ
๐
๐=
๐
๐
๐ ๐ ๐ฆ0 ๐ ๐ ๐๐ฆ ๐ฅ1 ๐ฆ1 ๐๐ท
๐
= ๐น
๐
๐
๐ท
๐
+ ๐
๐
Homogeneous Transformations
๐ท
๐1
=
๐น
๐๐๐ท
๐+ ๐
๐1
=
๐น
๐๐๐
๐0
๐1
๐ท
๐1
We can simplify the equation for coordinate transformations by augmenting the vectors and matrices with an extra row:
The set of matrices of the form ๐ ๐
0๐ 1 , where ๐ โ ๐๐(๐) and ๐ โ โ๐ is called the Special Euclidean Group of order ๐, or ๐๐ธ(๐).
in which 0๐ = 0 โฏ 0
This is just our eqn from the previous page
A bunch of examples:
๐ฅ0 ๐ฆ0 ๐ง0 ๐ฅ1 ๐ฅ2 ๐ฅ3 ๐ฆ1 ๐ฆ2 ๐ฆ3 ๐ง1 ๐ง2 ๐ง3A rectangular solid: all angles are multiples of ๐/2.
๐ ๐๐ = ๐ฅ๐ โ ๐ฅ๐ ๐ฆ๐ โ ๐ฅ๐ ๐ง๐ โ ๐ฅ๐ ๐ฅ๐ โ ๐ฆ๐ ๐ฆ๐ โ ๐ฆ๐ ๐ง๐ โ ๐ฆ๐ ๐ฅ๐ โ ๐ง๐ ๐ฆ๐ โ ๐ง๐ ๐ง๐ โ ๐ง๐ 10 5
4 Now letโs look at both the relative
A bunch of examples:
๐ฅ0 ๐ฆ0 ๐ง0 ๐ฅ1 ๐ฅ2 ๐ฅ3 ๐ฆ1 ๐ฆ2 ๐ฆ3 ๐ง1 ๐ง2 ๐ง3A rectangular solid: all angles are multiples of ๐/2.
๐
10=
โ1
0
0
0
0
0
1
0
0
1
0
0
โ5
0
4
1
10 5 4 ๐ 10 = โ1 0 0 0 0 1 0 1 0A bunch of examples:
๐ฅ0 ๐ฆ0 ๐ง0 ๐ฅ1 ๐ฅ2 ๐ฅ3 ๐ฆ1 ๐ฆ2 ๐ฆ3 ๐ง1 ๐ง2 ๐ง3A rectangular solid: all angles are multiples of ๐/2.
๐21 = โ1 0 0 0 0 0 โ1 0 0 โ1 0 0 0 0 10 1 10 5 4 ๐ 21 = โ1 0 0 0 0 โ1 0 โ1 0
Composition of Transformations
๐ฅ0 ๐ฆ1 ๐ฆ2 ๐ฆ0 ๐ฅ1 ๐ฅ2 ๐ ๐1 = ๐21๐2 ๐0 = ๐10๐1From our previous results, we know:
๐0 = ๐10๐21๐2 ๐0 = ๐20๐2
๐20 = ๐10๐21
But we also know:
๐10
๐21
๐20
This is the composition law for homogeneous transformations.
Now, consider the rotation
and the translation!
๐ง0
๐ง1
A bunch of examples:
๐ฅ0 ๐ฆ0 ๐ง0 ๐ฅ1 ๐ฅ2 ๐ฅ3 ๐ฆ1 ๐ฆ2 ๐ฆ3 ๐ง1 ๐ง2 ๐ง3A rectangular solid: all angles are multiples of ๐/2.
๐21 = โ1 0 0 0 0 0 โ1 0 0 โ1 0 0 0 0 10 1 10 5 4 ๐10 = โ1 0 0 0 0 0 1 0 0 1 0 0 โ5 0 4 1 ๐20 = โ1 0 0 0 0 0 1 0 0 1 0 0 โ5 0 4 1 โ1 0 0 0 0 0 โ1 0 0 โ1 0 0 0 0 10 1 = 1 0 0 0 0 โ1 0 0 0 0 โ1 0 โ5 10 4 1
Inverse of a Homogeneous Transformation
What is the relationship between ๐๐๐ and ๐๐๐?
In general, ๐
๐๐= ๐
๐๐ โ1and
0
๐น
๐
๐
1
โ1
=
๐น
๐ปโ๐น
๐ป๐
0
๐1
This is easy to verify:
๐น ๐ 0๐ 1 ๐น๐ป โ๐น๐ป๐ 0๐ 1 = ๐น๐น๐ป โ๐น๐น๐ป๐ + ๐ 0๐ 1 = ๐ฐ๐ร๐ ๐๐ 0๐ 1 = ๐ผ(๐+1)ร(๐+1)