0% found this document useful (0 votes)
57 views

Spatial Descriptions and Transformations: Sami Haddadin

The document discusses spatial descriptions and transformations in robotics. It introduces coordinate systems to represent positions and orientations of objects. Positions are represented by vectors and orientations are represented by rotation matrices. Transformations between coordinate systems are represented by homogeneous transformation matrices, which encode both rotation and translation. The key operations are combining transformations through multiplication and inverting transformations.

Uploaded by

Vincent lui
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
57 views

Spatial Descriptions and Transformations: Sami Haddadin

The document discusses spatial descriptions and transformations in robotics. It introduces coordinate systems to represent positions and orientations of objects. Positions are represented by vectors and orientations are represented by rotation matrices. Transformations between coordinate systems are represented by homogeneous transformation matrices, which encode both rotation and translation. The key operations are combining transformations through multiplication and inverting transformations.

Uploaded by

Vincent lui
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

Spatial descriptions and

transformations

Sami Haddadin

Robotics and Mechatronics Center


German Aerospace Center (DLR), Germany

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


General remarks

parts and tools will be moved around in space by some sort of


mechanism
this leads naturally to the need of representing positions and
orientations of the parts, tools, and of the mechanism itself
we need to define coordinate systems and develop conventions
for their representation
We adopt the philosophy that somewhere is a universe coordinate
system to which everything we discuss can be referenced.

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Description of a position

coordinate system is established: we can locate any point in


the universe with a 3 × 1 position vector
as we will define many coordinate systems, vectors are tagged
with information identifying which coordinate system they are
defined within
A P: the components have numerical values which indicate
distances along the axes of CS {A}

A
P = [px py pz ]T (1)

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Description of an orientation

attach a coordinate system relative to the reference system


{B} is attached to the body in a known way
description of {B} relative to {A} now suffices to give the
orientation of the body
one way: write the three principal axes of {B} in terms of
{A}: A X̂B , A ŶB , A ẐB
convenient to stack these three unit vectors together as the
columns of a 3 × 3 matrix: the rotation matrix
the rotation matrix describes {B} relative to {A}. Its name is
AR
B

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Description of an orientation

⎡ ⎤
  r11 r12 r13
A
RB = A
X̂B A ŶB A ẐB = ⎣ r21 r22 r23 ⎦ (2)
r31 r32 r33
Full description of a body:
1 vector for position
2 matrix for orientation

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Description of an orientation

Consists of the projected principal vectors of {B} on {A}:

⎡ ⎤
  X̂B · X̂A ŶB · X̂A ẐB · X̂A
A
RB = A
X̂B A ŶB A ẐB = ⎣ X̂B · ŶA ŶB · ŶA ẐB · ŶA ⎦ (3)
X̂B · ẐA ŶB · ẐA ẐB · ẐA

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Description of an orientation

since dot products of two unit vectors yields the cosine of the
angle between them, the components of the rotation matrices
are often referred to as direction cosines
(a · b = |a||b| cos{a, b})
further inspection of (3) shows that the rows of the matrix are
the unit vectors of {A} expressed in {B}
hence, A RB = B RAT
this suggests that the inverse of a rotation matrix is equal to
its transpose. Verify at home!

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Description of a frame

full description: position and orientation


for convenience, the point whose position we will describe is
chosen as the origin of the body-attached frame
frame: position and orientation pair
frame {B} is described by A RB and A PBORG
AP is the vector which locates the origin of frame {B}
BORG

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Mappings

In robotics we often want to express the same quantity in terms of


various reference coordinate systems. We now consider the
mathematics of mapping in order to change descriptions from
frame to frame.
mappings involving translated frames
mappings involving rotated frames
mappings involving general frames

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Translated frames

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Translated frames

A
P = B P + A PBORG (4)

Note that only in the special case of equivalent orientations


may we add vectors which are defined in terms of different
frames.
the quantity itself is not changed, only its description

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Rotated frames

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Rotated frames

Again: rotation matrix can be interpreted as a set of three column


vectors or as a set of three row vectors as follows:
⎡ B T ⎤
  X̂A
A A A A
RB = X̂B ŶB ẐB = ⎣ B ŶAT ⎦ (5)
B Ẑ T
A

How to obtain A P? We note that the components of any vector


are simply the projections of that vector onto the unit direction of
its frame. The projection is calculated with the vector dot product.

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Rotated frames

Thus, we see that the components of A P may be calculated as


Ap = B X̂ · BP
x A
Ap = B Ŷ · B P (6)
y A
Ap = B Ẑ · B P
z A

So, (6) may be written as


A
P = A RB B P (7)

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


General frames

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


General frames

Simultaneous translation and rotation

A
P = A RB B P + A PBORG (8)
This does not represent the concept of mapping. Therefore, we
write

A
P = A TB B P (9)

 AP
 AR AP
 BP

B BORG
= (10)
1 000 1 1
The 4 × 4 matrix A TB is called the homogeneous transformation
matrix.

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Operators
Alternative interpretation: operators
Translation operator: translating a point in space is accomplished
with the same mathematics as mapping the point to a second
frame.

A
P2 = A P1 + A Q (11)
To write this translation operation as a matrix operator, we use the
notation
A
P2 = DQ (q)A P1 (12)
⎡ ⎤
1 0 0 qx
⎢ 0 1 0 qy ⎥
DQ (q) = ⎢
⎣ 0 0
⎥ (13)
1 qz ⎦
0 0 0 1
Rotation and transformation operator are straight forward.
Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik
Operators

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Transformation arithmetic

Now, we look at the multiplication and the inversion of transforms.


These two elementary operations form a functionally complete set
of transform operators.

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Compound transformation

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Compound transformation

We have C P and wish to find C P. Frame {C } is known relative to


{B} and frame {B} is known relative to {A}.
B B
P = TC C P (14)
A A B
P = TB P (15)
A A B C
P = TB TC P (16)

From which we could define


A
TC = A TB B TC (17)

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Compound transformations

In terms of the kown descriptions of {B} and {C }, we can give the


expression for A TC as
 A B
A RB RC A RB B PCORG + A PBORG
TC = . (18)
000 1

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Inverting a transform

Consider frame {B}, which is known with respect to frame


{A}; that is we know the value of A TB . Sometimes we wish
to invert this transform, in order to get {A} relative to {B}.
straight forward: calculate the inverse
but: we do not take full advantage of the structure inherent in
the transform
computationally easier solution can be found

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik


Inverting a transform
To find B TA we must compute B RA and B PAORG from A RB and
AP
BORG .
B
RA = A RBT (19)
Furthermore,
B A
( PBORG ) = B RA A PBORG + B PAORG (20)

Since the left hand side must be zero, we have


B
PAORG = −B RA A PBORG = −A RBT A PBORG (21)

Now, we can write


 AR T

B B −A RBT A PBORG
TA = . (22)
000 1

Haddadin, Robotics: http://www6.in.tum.de/Main/TeachingWs2012Robotik

You might also like