Rotations, rotations, and more rotations … Marc De Graef, CMU
AN OVERVIEW OF ROTATION REPRESENTATIONS AND THE RELATIONS BETWEEN THEM
AFOSR MURI FA9550-12-1-0458 CMU, 7/8/15 1 Outline 2D rotations
3D rotations
7 rotation representations
Conventions (places where you can go wrong…)
Motivation
2 Outline 2D rotations
3D rotations
7 rotation representations
Conventions (places where you can go wrong…)
Motivation
PREPRINT: “Tutorial: Consistent Representations of and Conversions between 3D Rotations,” D. Rowenhorst, A.D. Rollett, G.S. Rohrer, M. Groeber, M. Jackson, P.J. Konijnenberg, M. De Graef, MSMSE, under review (2015).
2 2D Rotations
3 2D Rotations
y
x
3 2D Rotations y0 y ✓
x0
x
3 2D Rotations y0 y ✓
x0
x
ex0 cos ✓ sin ✓ ex p = ei0 = Rijej e0 sin ✓ cos ✓ ey ! ✓ y ◆ ✓ ◆✓ ◆
3 2D Rotations y0 y ✓ p x R = e0 e 0 ij i · j
x
ex0 cos ✓ sin ✓ ex p = ei0 = Rijej e0 sin ✓ cos ✓ ey ! ✓ y ◆ ✓ ◆✓ ◆
3 2D Rotations y0 y ✓ p x R = e0 e 0 ij i · j
x
ex0 cos ✓ sin ✓ ex p = ei0 = Rijej e0 sin ✓ cos ✓ ey ! ✓ y ◆ ✓ ◆✓ ◆ Rotating the reference frame while keeping the object constant is known as a passive rotation.
3 2D Rotations y0 y Assumptions: Cartesian reference frame, right-handed; positive ✓ rotation is counter-clockwise p x R = e0 e 0 ij i · j
x
ex0 cos ✓ sin ✓ ex p = ei0 = Rijej e0 sin ✓ cos ✓ ey ! ✓ y ◆ ✓ ◆✓ ◆ Rotating the reference frame while keeping the object constant is known as a passive rotation.
3 2D Rotations
4 2D Rotations y0 y ✓
x0
x
4 2D Rotations y0 y ✓
x0
x
4 2D Rotations y0 y ✓ r = ri0ei0 = rjej
x0
x
4 2D Rotations y0 y ✓ r = ri0ei0 = rjej p = ri0Rijej x0 p T =(R )jiri0ej x
4 2D Rotations y0 y ✓ r = ri0ei0 = rjej p = ri0Rijej x0 p T =(R )jiri0ej x p T r =(R ) r0 ! j ji i
4 2D Rotations y0 y ✓ r = ri0ei0 = rjej p = ri0Rijej x0 p T =(R )jiri0ej x p T r =(R ) r0 ! j ji i p r0 = R r ! i ij j
4 2D Rotations y0 y ✓ r = ri0ei0 = rjej p = ri0Rijej x0 p T =(R )jiri0ej x p T r =(R ) r0 ! j ji i p r0 = R r ! i ij j
The passive matrix converts the old coordinates into the new coordinates by left-multiplication.
4 2D Rotations
5 2D Rotations y
⇢ sin ↵ (a, b) ⇢ ↵ x ↵ cos ⇢
5 2D Rotations y (a0,b0) ⇢ sin(↵ + ✓) ✓ ⇢ sin ↵ (a, b) ⇢ ↵
) x ✓ ↵ + cos ↵ ⇢ cos( ⇢
5 2D Rotations y (a0,b0) ⇢ sin(↵ + ✓) ✓ ⇢ sin ↵ (a, b) ⇢ ↵
) x ✓ ↵ + cos ↵ (a, b)=⇢(cos ↵, sin ↵) ⇢ cos( ⇢
5 2D Rotations y (a0,b0) ⇢ sin(↵ + ✓) ✓ ⇢ sin ↵ (a, b) ⇢ ↵
) x ✓ ↵ + cos ↵ (a, b)=⇢(cos ↵, sin ↵) ⇢ cos( ⇢ # (a0,b0)=⇢(cos(↵ + ✓), sin(↵ + ✓))
5 2D Rotations y (a0,b0) ⇢ sin(↵ + ✓) ✓ ⇢ sin ↵ (a, b) ⇢ ↵
) x ✓ ↵ + cos ↵ (a, b)=⇢(cos ↵, sin ↵) ⇢ cos( ⇢ # (a0,b0)=⇢(cos(↵ + ✓), sin(↵ + ✓))
Rotating the object while keeping the reference frame constant is known as an active rotation. 5 2D Rotations
6 2D Rotations
(a0,b0)=⇢(cos(↵ + ✓), sin(↵ + ✓)) = ⇢(cos ↵ cos ✓ sin ↵ sin ✓, cos ↵ sin ✓ +sin↵ cos ✓) =(a cos ✓ b sin ✓,asin ✓ + b cos ✓) a0 cos ✓ sin ✓ a = ! b0 sin ✓ cos ✓ b ✓ ◆ ✓ ◆✓ ◆
6 2D Rotations
(a0,b0)=⇢(cos(↵ + ✓), sin(↵ + ✓)) = ⇢(cos ↵ cos ✓ sin ↵ sin ✓, cos ↵ sin ✓ +sin↵ cos ✓) =(a cos ✓ b sin ✓,asin ✓ + b cos ✓) a0 cos ✓ sin ✓ a = ! b0 sin ✓ cos ✓ b ✓ ◆ ✓ ◆✓ ◆
a p r0 = R (✓)r = R ( ✓)r
6 2D Rotations
(a0,b0)=⇢(cos(↵ + ✓), sin(↵ + ✓)) = ⇢(cos ↵ cos ✓ sin ↵ sin ✓, cos ↵ sin ✓ +sin↵ cos ✓) =(a cos ✓ b sin ✓,asin ✓ + b cos ✓) a0 cos ✓ sin ✓ a = ! b0 sin ✓ cos ✓ b ✓ ◆ ✓ ◆✓ ◆
a p r0 = R (✓)r = R ( ✓)r
cos ✓ sin ✓ Ra =(Rp)T = sin ✓ cos ✓ ✓ ◆
6 2D Rotations: Summary
7 2D Rotations: Summary
cos ✓ sin ✓ Ra(✓)= sin ✓ cos ✓ ✓ ◆
7 2D Rotations: Summary
cos ✓ sin ✓ Ra(✓)= sin ✓ cos ✓ ✓ ◆ cos ✓ sin ✓ Rp(✓)= =(Ra(✓))T sin ✓ cos ✓ ✓ ◆
7 2D Rotations: Summary
cos ✓ sin ✓ Ra(✓)= sin ✓ cos ✓ ✓ ◆ cos ✓ sin ✓ Rp(✓)= =(Ra(✓))T sin ✓ cos ✓ ✓ ◆
a Active: r0 = R (✓)r
7 2D Rotations: Summary
cos ✓ sin ✓ Ra(✓)= sin ✓ cos ✓ ✓ ◆ cos ✓ sin ✓ Rp(✓)= =(Ra(✓))T sin ✓ cos ✓ ✓ ◆
a Active: r0 = R (✓)r
p a Passive: r0 = R (✓)r = R ( ✓)r p ei0 = Rij(✓)ej
7 Example
(2,3) (2,3)
-45° 45°
45°
8 Example
ACTIVE
(2,3) (2,3)
-45° 45°
45°
8 Example
ACTIVE PASSIVE
(2,3) (2,3)
-45° 45°
45°
8 Complex Numbers POLAR REPRESENTATION
GRAPHICAL REPRESENTATION
9 Complex Numbers POLAR REPRESENTATION z = ⇢ei✓ = ⇢(cos ✓ +isin✓)
1 b a = ⇢ cos ✓; b = ⇢ sin ✓; ⇢ = z ; ✓ = tan | | a GRAPHICAL REPRESENTATION
9 Complex Numbers POLAR REPRESENTATION z = ⇢ei✓ = ⇢(cos ✓ +isin✓)
1 b a = ⇢ cos ✓; b = ⇢ sin ✓; ⇢ = z ; ✓ = tan | | a GRAPHICAL REPRESENTATION iy b ⇢
✓ a x
9 Complex Numbers POLAR REPRESENTATION z = ⇢ei✓ = ⇢(cos ✓ +isin✓)
1 b a = ⇢ cos ✓; b = ⇢ sin ✓; ⇢ = z ; ✓ = tan | | a GRAPHICAL REPRESENTATION CONNECTION TO ROTATIONS i✓ iy e z b ⇢
✓ a x
9 Complex Numbers POLAR REPRESENTATION z = ⇢ei✓ = ⇢(cos ✓ +isin✓)
1 b a = ⇢ cos ✓; b = ⇢ sin ✓; ⇢ = z ; ✓ = tan | | a GRAPHICAL REPRESENTATION CONNECTION TO ROTATIONS i✓ iy e z b 1 ⇡ z = (1 + i); ✓ = ⇢ p2 4 2 ✓ 1 ei✓z = (1 + i) =i p2 a x ✓ ◆
9 Complex Numbers POLAR REPRESENTATION z = ⇢ei✓ = ⇢(cos ✓ +isin✓)
1 b a = ⇢ cos ✓; b = ⇢ sin ✓; ⇢ = z ; ✓ = tan | | a GRAPHICAL REPRESENTATION CONNECTION TO ROTATIONS i✓ iy e z b 1 ⇡ z = (1 + i); ✓ = ⇢ p2 4 2 ✓ 1 ei✓z = (1 + i) =i p2 a x ✓ ◆
9 Complex Numbers POLAR REPRESENTATION z = ⇢ei✓ = ⇢(cos ✓ +isin✓)
1 b a = ⇢ cos ✓; b = ⇢ sin ✓; ⇢ = z ; ✓ = tan | | a GRAPHICAL REPRESENTATION CONNECTION TO ROTATIONS i✓ iy e z b 1 ⇡ z = (1 + i); ✓ = ⇢ p2 4 2 ✓ 1 ei✓z = (1 + i) =i p2 a x ✓ ◆ 2D ROTATION = MULTIPLICATION BY A UNIT COMPLEX NUMBER 9 3D Rotations
10 3D Rotations
In 3D, we need a rotation axis, and an angle ω (we ignore the case of a rotation axis that does not go through the origin)
For the axis, we can specify a set of three direction cosines, and this requires the choice of a reference frame and a handedness.
10 3D Rotations
In 3D, we need a rotation axis, and an angle ω (we ignore the case of a rotation axis that does not go through the origin)
For the axis, we can specify a set of three direction cosines, and this requires the choice of a reference frame and a handedness.
ez
β3 n
β2 β1 ey
ex
10 3D Rotations
In 3D, we need a rotation axis, and an angle ω (we ignore the case of a rotation axis that does not go through the origin)
For the axis, we can specify a set of three direction cosines, and this requires the choice of a reference frame and a handedness.
ez nˆ = (cos 1, cos 2, cos 3) β3 n cos2 + cos2 + cos2 =1 β2 1 2 3 β1 ey
ex
10 3D Rotations
In 3D, we need a rotation axis, and an angle ω (we ignore the case of a rotation axis that does not go through the origin)
For the axis, we can specify a set of three direction cosines, and this requires the choice of a reference frame and a handedness.
ez nˆ = (cos 1, cos 2, cos 3) β3 n cos2 + cos2 + cos2 =1 β2 1 2 3 β1 ey
ex
Representation 1: Axis-angle pair: (nˆ, !)
10 Core rotation conventions
11 Core rotation conventions
Convention 1: When dealing with 3D rotations, all cartesian reference frames will be right-handed.
11 Core rotation conventions
Convention 1: When dealing with 3D rotations, all cartesian reference frames will be right-handed. Convention 2: A rotation angle ! is taken to be positive for a counterclockwise rotation when viewing from the end point of the axis unit vector nˆ towards the origin.
11 Core rotation conventions
Convention 1: When dealing with 3D rotations, all cartesian reference frames will be right-handed. Convention 2: A rotation angle ! is taken to be positive for a counterclockwise rotation when viewing from the end point of the axis unit vector nˆ towards the origin.
Convention 3: Rotations will be interpreted in the passive sense.
11 Core rotation conventions
Convention 1: When dealing with 3D rotations, all cartesian reference frames will be right-handed. Convention 2: A rotation angle ! is taken to be positive for a counterclockwise rotation when viewing from the end point of the axis unit vector nˆ towards the origin.
Convention 3: Rotations will be interpreted in the passive sense.
Convention 4: In !@n, the angle ! lies in the interval [0, ⇡].
11 Core rotation conventions
Convention 1: When dealing with 3D rotations, all cartesian reference frames will be right-handed. Convention 2: A rotation angle ! is taken to be positive for a counterclockwise rotation when viewing from the end point of the axis unit vector nˆ towards the origin.
Convention 3: Rotations will be interpreted in the passive sense.
Convention 4: In !@n, the angle ! lies in the interval [0, ⇡].
Convention 5: Euler angle triplets ✓ =('1, , '2) use the Bunge convention, with angular ranges ' [0, 2⇡], [0, ⇡], and ' [0, 2⇡]. 1 2 2 2 2
11 Euler angle representation Euler has shown that any 3D rotation can be decomposed into a sequence of, at the most, three separate rotations around mutually perpendicular rotation axes, which are usually chosen to be the cartesian coordinate axes.
One can pick three different axes, (xyz) in any order, so that produces a total of 6 possible angle triplets, commonly known as Tait-Bryan angles (heading-elevation-bank; yaw-pitch-roll; …)
Or, one picks axes with the first and third around the same name axis, e.g. (zxz) or (yxy); the resulting angle triplets are known as Euler angles.
Euler angles, like latitude and longitude on the sphere, suffer from a degeneracy at certain points, which is an undesirable and sometimes problematic property.
12 Euler angle representation
13 Euler angle representation
Bunge convention (zxz):('1, , '2)
13 Euler angle representation
Bunge convention (zxz):('1, , '2) z
y x
13 Euler angle representation
Bunge convention (zxz):('1, , '2) zz’
y’
y x '1 x’
13 Euler angle representation
Bunge convention (zxz):('1, , '2) zz’ y’’
z’’