four different ways to represent rotation
play

Four different ways to represent rotation my head is spinning... - PowerPoint PPT Presentation

Four different ways to represent rotation my head is spinning... The space of rotations { } ( ) = = = + 3 3 T SO 3 R R | RR I , det( R ) 1 Special orthogonal group(3): = det( R ) 1 Why


  1. Four different ways to represent rotation my head is spinning...

  2. The space of rotations { } ( ) × = ∈ = = + 3 3 T SO 3 R R | RR I , det( R ) 1 Special orthogonal group(3): = ± det( R ) 1 Why ? − = − Rp Rp p p Rotations preserve distance: 1 2 1 2 ( ) ( ) ( ) × = × Rp Rp R p p Rotations preserve orientation: 1 2 1 2

  3. The space of rotations { } ( ) × = ∈ = = + 3 3 T SO 3 R R | RR I , det( R ) 1 Special orthogonal group(3): Why it’s a group: ( ) ( ) ∈ ∈ • R , R SO 3 R R SO 3 Closed under multiplication: if then 1 2 1 2 ( ) ∃ ∈ = • Has an identity: I SO 3 s.t. IR R 1 1 • Has a unique inverse… • Is associative… Why orthogonal: • vectors in matrix are orthogonal = ± = + det( R ) 1 det( R ) 1 Why it’s special: , NOT Right hand coordinate system

  4. Possible rotation representations You need at least three numbers to represent an arbitrary rotation in SO(3) (Euler theorem). Some three-number representations: • ZYZ Euler angles • ZYX Euler angles (roll, pitch, yaw) • Axis angle One four-number representation: • quaternions

  5. ZYZ Euler Angles φ     = θ r   zyz   ψ   φ − φ   cos sin 0   To get from A to B: φ = φ φ R ( ) sin cos 0   z   φ 0 0 1 1. Rotate about z axis   θ θ   cos 0 sin θ 2. Then rotate about y axis   θ = R ( ) 0 1 0   ψ y 3. Then rotate about z axis   − θ θ sin 0 cos   ψ − ψ   cos sin 0   ψ = ψ ψ R ( ) sin cos 0   z   0 0 1  

  6. ZYZ Euler Angles ( φ ( θ ( ψ R ) R ) R ) Remember that encode the desired rotation in the pre- z y z rotation reference frame: − ( φ = pre rotation R ) R − z post rotation Therefore, the sequence of rotations is concatentated as follows: ( ) φ θ ψ = φ θ ψ R , , R ( ) R ( ) R ( ) zyz z y z φ − φ θ θ ψ − ψ       cos sin 0 cos 0 sin cos sin 0       ( ) φ θ ψ = φ φ ψ ψ R , , sin cos 0 0 1 0 sin cos 0       zyz       − θ θ 0 0 1 sin 0 cos 0 0 1         − − − c c c s s c c s s c c s   φ θ ψ φ ψ φ θ ψ φ ψ φ θ ( ) φ θ ψ = + − +   R zyz , , s c c c s s c s c c s s φ θ ψ φ ψ φ θ ψ φ ψ φ θ   − s c s s c   θ ψ θ ψ θ

  7. ZYX Euler Angles (roll, pitch, yaw) φ − φ   cos sin 0   To get from A to B: φ = φ φ R ( ) sin cos 0   z   φ 1. Rotate about z axis 0 0 1   θ θ   θ cos 0 sin 2. Then rotate about y axis   θ = R ( ) 0 1 0   ψ y 3. Then rotate about x axis   − θ θ sin 0 cos     1 0 0   ψ = ψ − ψ R ( ) 0 cos sin   x   ψ ψ 0 sin cos   ( ) φ θ ψ = φ θ ψ R , , R ( ) R ( ) R ( ) zyx z y x φ − φ θ θ       cos sin 0 cos 0 sin 1 0 0       ( ) φ θ ψ = φ φ ψ − ψ R , , sin cos 0 0 1 0 0 cos sin       zyz       − θ θ ψ ψ 0 0 1 sin 0 cos 0 sin cos      

  8. ZYX Euler Angles (roll, pitch, yaw) In Euler angles, the each rotation is imagined to be represented in the post-rotation coordinate frame of the last rotation In Fixed angles, all rotations are imagined to be represented in the original (fixed) coordinate frame. ZYX Euler angles can be thought of as: 1. ZYX Euler 2. XYZ Fixed ( ) φ θ ψ = φ θ ψ R , , R ( ) R ( ) R ( ) zyx z y x

  9. Problems w/ Euler Angles If two axes are aligned, then there is a “don’t care” manifold of Euler angles that represent the same orientation • The system loses one DOF      0 90     =  =    r 90 r 89   1 2      0 90       −  90   − =     r r 1 1 , but the actual distance is 1 2   −  90  

  10. Problem w/ Euler Angles: gimbal lock 1. When a small change in orientation is associated with a large change in rotation representation 2. Happens in “singular configurations” of the rotational representation (similar to singular configurations of a manipulator) 3. This is a problem w/ any Euler angle representation

  11. Problem w/ Euler Angles: gimbal lock

  12. Problem w/ Euler Angles: gimbal lock

  13. Axis-angle representation ( ) R ∈ SO 3 Theorem: (Euler). Any orientation, , is equivalent to a rotation ω ∈ θ ∈ π 3 about a fixed axis, , through an angle R [ 0 , 2 ) (also called exponential coordinates )   k   x θ Angle: = k k Axis:   y   k   z Converting to a rotation matrix: ( ) ( ) ( ) ( ( ) ) ( ) θ 2 = = + θ + − θ S k R e I S k sin S k 1 cos θ k [ ] = that equation in the book... Rodrigues’ formula

  14. Axis-angle representation Converting to axis angle: −   trace ( R ) 1 − θ = = cos 1   k Magnitude of rotation:  2  −   r r   32 23 1 ˆ = − Axis of rotation: k r r   13 31 θ 2 sin   − r r   21 12   r r r   11 12 13 Where: = R r r r   12 22 23   r r r   13 23 33 = + + trace ( R ) r r r and: 11 22 33

  15. Axis-angle representation Axis angle is can be encoded by just three numbers instead of four:  k ˆ ≠ θ = k 0 = k  k If then and k If the three-number version of axis angle is used, then R = I 0 R For most orientations, , is unique. k  180 For rotations of , there are two equivalent representations: =  = k 180 R R If then − k k

  16. Axis-angle problems Still suffers from the “edge” and distance preserving problems of Euler angles:   0     0   0 − = r r 0       1 2 =   r 0   = r 0    358   1 2      179 −    179    2 , but the actual distance is Distance metric changes as you get further from origin.

  17. Projection distortions

  18. Example: differencing rotations   0   π    2  Calculate the difference between = = k  π  k 0   these two rotations: 2 2 1     0 0       π 2   − = − k k This is NOT the right answer:  π  2 1 2   0   π According to that, this is the − = =  k k 127 . 27 1 2 magnitude of the difference: 2

  19. Example: differencing rotations Convert to rotation matrices to solve this problem:   0   π    2  = = k  π  k 0   = T 1 B B R R R 2 2 1   2 1 2   0 0         1 0 0 1 0 0     ( ) ( ) ( ) = = − = − b R R 0 cos sin 0 0 1 π  π π    2 2 2 1 x  ( ) ( )    0 sin cos 0 1 0 π π     2 2 ( ) ( )     cos 0 sin 0 0 1 π π 2 2     ( ) = = = b R R 0 1 0 0 1 0 π     2 2 y  ( ) ( )    − − sin 0 cos 1 0 0 π π     2 2       1 0 0 0 0 1 0 0 1       T = = = − 1 B B R R R 0 0 1 0 1 0 1 0 0       2 1 2       − − − 0 1 0 1 0 0 0 1 0       − −     r r 1 −   1 2 π  32 23      1 1 −   −  trace ( R ) 1 1 ˆ = − = k r r 1 θ = − = − = π     = 1 1 cos   cos   k 3 1 2   13 31 θ 3 2 sin  2   2  3     3   − − r r 1 −     1   21 12

  20. Quaternions So far, rotation matrices seem to be the most reliable method of manipulating rotations. But there are problems: • Over a long series of computations, numerical errors can cause these 3x3 matrices to no longer be orthogonal (you need to “orthogonalize” them from time to time). • Although you can accurately calculate rotation differences, you can’t interpolate over a difference.’ • Suppose you wanted to smoothly rotate from one orientation to another – how would you do it? Answer: quaternions…

Recommend


More recommend