The document discusses representing position and orientation of robotic systems using coordinate frames and homogeneous transformations. It introduces coordinate frames and describes how to represent position as a point and orientation as a set of axes. Rotations between frames can be represented by rotation matrices, and transformations between frames are described using homogeneous coordinates. Euler angles provide a method to represent orientation using three angles but require careful consideration of axis sequences due to non-commutativity of rotations.
1. CL-7004 – Robotics and Control
- Robotics Position and
Orientation
Dr.B.Arunadevi
Associate Professor /ECE
Dr.N.G.P Institute of Technology
Coimbatore
2. Objectives of the Lecture
• Learn to represent position and orientation
• Be able to transform between coordinate
systems.
• Use frames and homogeneous coordinates
• Describe Euler angles
3. A robot may not injure a human being, or, through inaction, allow a
human being to come to harm.
A robot must obey the orders given it by human beings except where
such orders would conflict with the First Law.
A robot must protect its own existence as long as such protection
Three Laws of Robotics
4. Description of a Position
• point = position vector
YA
XA
ZA
}A{
A
P
=
z
y
x
A
p
p
p
P
a c o o r d i na t e s y s t e m
5. Description of an Orientation
• In the example, a
description of {B} with
respect to {A} suffices to
give orientation
• Orientation = System of
Coordinates
• Directions of {B}: XB, YB
and ZB
• In {A} coord. system: A
XB,
A
YB and A
ZB
x0
x1
z0
y0
z1
y1
θ
}A{
}B{
Often a point is not enough:
need orientation
6. From {A} to {B{
}A{
XB
aX
aY
aZ( ) BAX XX ⋅=αcos
( ) BAY XY ⋅=αcos
( ) BAZ XZ ⋅=αcos
We conclude:
⋅
⋅
⋅
=
BA
BA
BA
B
A
XZ
XY
XX
X
7. Rotation Matrix
• Stack three unit vectors to form Rotation Matrix
• describes {B} with respect to {A}
• Each vector in can be written as dot product
of pair of unit vectors: cosine matrixcosine matrix
• Rows of : unit vectors of {A} with respect to
{B}
• What is ? What is det( )?
• Position + orientation = Frame
RA
B
[ ]B
A
B
A
B
AA
B ZYXR ˆˆˆ=
RA
B
RA
B
1−
RA
B RA
B
8. Description of a Frame
• Frame: set of four
vectors giving position +
orientation
• Description of a frame:
position + rotation matrix
• Ex.:
x0
x1
z0
y0
z1
y1
θ
}A{
}B{
{ }BORG
AA
B PRB ,}{ =
• position: frame with
identity as rotation
• orientation: frame with
zero position
9. Mapping: from frame 2 frame
• If {A} has same orientation as {B}, then {B}
differs from {A} in a translation: A
PBORG
A
P = B
P + A
PBORG
• Mapping: change of description from one frame to
another. The vector A
PBORGdefines the mapping.
XA
ZA
YA
{A}
ZB
YB
{B}
XB
A
P
A
PBORG
B
P
Translated Frames
11. Rotated Frame (cont.)
• The previous expression can be written as
• The rotation mapping changes the
description of a point from one coordinate
system to another
• The point does not change! only its
description
PRP BA
B
A
=
14. Homogeneous Coords
• Homogeneous coordinates: embed 3D
vectors into 4D by adding a “1”
• More generally, the transformation matrix T
has the form:
=
FactorScalingTrans.Perspect.
VectorTrans.MatrixRot.
T
16. Translation Operator
• Translation Operator:
• Only one coordinate frame, point moves
• Equivalent to mapping point to a 2nd frame
• Point Forward = Frame Backwards
• How does TRANS look in homogeneous
coordinates?
18. Rotation Operator
• Rotational Operator
The rotation matrix can be seen as rotational
operator
• Takes A
P1 and rotates it to A
P2=R A
P1
• A
P2=ROT(K, q)(A
P2)
• Write ROT for a rotation around K
19. Operators (Cont.)
• Transformation Operators
* A transformation mapping can be viewed as
a transformation operator: map a point to
any other in the same frame
* Transform that rotates by R and translates
by Q is the same a transforming the frame
by R & Q
20. Compound Transformation
If {C} is known relative to {B}, and {B} is
known relative to {A}. We want to
transform P from {C} to {A}:
Write down the compound in homog. coords
TTT
PTP
PTP
PTP
B
C
A
B
A
C
BA
B
A
CA
C
A
CB
C
B
=
=
=⇒
=
definehereFrom
21. More on Rotations
• We saw that a rotation can be represented
by a rotation matrix
• Matrix has 9 variables and 6+ constraints
(which?)
• Rotations are far from intuitive: they do not
commute!
• Rotation matrix can be parameterized in
different manners:
—Roll, pitch and yaw angles
—Euler Angles
—Others
22. Euler’s Theorem
• Euler’s Theorem: Any two independent
orthonormal coordinate frames can be related by a
sequence of rotations (not more than three) about
coordinate axes, where no two successive
rotations may be about the same axis.
• Not to be confused with Euler angles, Euler
integration, Newton-Euler dynamics, inviscid
Euler equations, Euler characteristic…
• Leonard Euler (1707-1783)
24. Euler Angles
• This means that we can represent an orientation with 3
numbers
• A sequence of rotations around principle axes is called an
Euler Angle Sequence
• Assuming we limit ourselves to 3 rotations without
successive rotations about the same axis, we could use any
of the following 12 sequences:
XYZ XZY XYX XZX
YXZ YZX YXY YZY
ZXY ZYX ZXZ ZYZ
26. Euler Angles to Matrix
Conversion
• To build a matrix from a set of Euler angles, we
just multiply a sequence of rotation matrices
together:
−+
+−
−
=
yxzxzyxzxzyx
yxzxzyxzxzyx
yzyzy
cccssscsscsc
csccssssccss
ssccc
−⋅
−
⋅
−
=⋅⋅
100
0
0
0
010
0
0
0
001
zz
zz
yy
yy
xx
xxzyx cs
sc
cs
sc
cs
scRRR
27. Euler Angle Order
• As matrix multiplication is not commutative, the
order of operations is important
• Rotations are assumed to be relative to fixed world
axes, rather than local to the object
• One can think of them as being local to the object
if the sequence order is reversed
• This gives us 12 redundant ways to store an
orientation using Euler angles
34. Vehicle Orientation
• Generally, for vehicles, it is most convenient to
rotate in roll (z), pitch (x), and then yaw (y)
• In situations where there
is a definite ground plane,
Euler angles can actually
be an intuitive
representation x
y
z
front of vehicle
35. Euler Angles - Summary
• Euler angles are used in a lot of applications, but
they tend to require some rather arbitrary
decisions
• They also do not interpolate in a consistent way
(but this isn’t always bad)
• There is no simple way to concatenate rotations
• Conversion to/from a matrix requires several
trigonometry operations
• They are compact (requiring only 3 numbers)