Marc De Graef, CMU
Total Page:16
File Type:pdf, Size:1020Kb
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.