ECE276A: Sensing & Estimation in Robotics Lecture 7: Rotations

ECE276A: Sensing & Estimation in Robotics Lecture 7: Rotations

ECE276A: Sensing & Estimation in Robotics Lecture 7: Rotations Instructor: Nikolay Atanasov: [email protected] Teaching Assistants: Qiaojun Feng: [email protected] Tianyu Wang: [email protected] Ibrahim Akbar: [email protected] You-Yi Jau: [email protected] Harshini Rajachander: [email protected] 1 Rigid Body Motion I Consider a moving object in a fixed world reference frame W I Rigid object: it is sufficient to specify the motion of one point 3 p(t) 2 R and 3 coordinate axes (r1(t), r2(t), r3(t)) attached to that point (body reference frame B) 2 Rigid Body Motion I A rigid body is free to translate (3 degrees of freedom) and rotate (3 degrees of freedom) I The pose g(t) of a moving rigid object at time t is determined by 1. The position p(t)2R3 of the body frame B relative to the world frame W 2. The orientation R(t)2SO(3) of B relative to W I The body of a robot may be composed of multiple connected rigid bodies, each having their own pose. We will assume that the robot is a single rigid body. 3 3 I Rigid body motion is a family of transformations g(t): R ! R that describe how the coordinates of points on the object change in time 3 Special Euclidean Group I Rigid body motion preserves both distances (vector norms) and orientation (vector cross products) 3 3 I Euclidean Group E(3): a set of maps g : R ! R that preserve the norm of any two vectors 3 3 I Special Euclidean Group SE(3): a set of maps g : R ! R that preserve the norm and cross product of any two vectors I The set of rigid body motions forms a group because: I We can combine several motions to generate a new one (closure) I We can execute a motion that leaves the object at the same state (identity element) I We can move rigid objects from one place to another and then reverse the action (inverse element) 3 I The space R of translations/positions is familiar I How do we describe orientation? 4 Special Euclidean Group I A group is a set G with an associated operator (group law of G) that satisfies: I Closure: a b 2 G, 8a; b 2 G I Identity element: 9!e 2 G (unique) such that e a = a e = a I Inverse element: for a 2 G, 9b 2 G such that a b = b a = e I Associativity:(a b) c = a (b c), 8a; b; c; 2 G 3 3 I SE(3) is a group of maps g : R ! R that preserve: 1. Norm: kg(u) − g(v)k = kv − uk; 8u; v 2 R3 2. Cross product: g(u) × g(v) = g(u × v); 8u; v 2 R3 I Corollary: SE(3) elements also preserve: T 1 2 2 T T 3 1. Angle: u v = 4 ku + vk − ku − vk ) u v = g(u) g(v), 8u; v 2 R 2. Volume: 8u; v; w 2 R3, g(u)T (g(v) × g(w)) = uT (v × w) (volume of parallelepiped spanned by u; v; w) 5 Cross product 3 3 I The cross product of two vectors !; β 2 R is also a vector in R : 2 3 !2β3 − !3β2 ! × β := 4!3β1 − !1β35 !1β2 − !2β1 I For fixed !, the cross product can be represented by a linear map 3×3 ! × β =!β ^ for! ^ 2 R 3 3 I The hat map ^· : R ! so(3) transforms an R vector to a skew-symmetric matrix: 2 3 0 −!3 !2 !^ := 4 !3 0 −!15 −!2 !1 0 3 I The vector space R and the space of skew-symmetric 3 × 3 matrices so(3) are isomorphic, i.e., there exists a one-to-one map (the hat map) that preserves their structure. 6 Hat Map Properties 3×3 I Lemma: A matrix M 2 R is skew-symmetric iff M =! ^ for some 3 ! 2 R . 3 I The inverse of the hat map is the vee operator, _ : so(3) ! R , that extracts the components of the vector ! =! ^_ from the matrix! ^. 3 3×3 I For any x; y 2 R , A 2 R , the hat map satisfies: I xy^ = x × y = −y × x = −yx^ 2 T T I x^ = xx − x x I3×3 I x^2k+1 = (−x T x)k x^ 1 T I − 2 tr(^xy^) = x y T b I xA^ + A x^ = ((tr(A)I3×3 − A)x) 1 T T T _ I tr(^xA) = 2 tr(^x(A − A )) = −x (A − A ) I Axc = det(A)A−T xA^ −1 7 3-D Orientation I The orientation of a body frame B is determined by the coordinates of the three orthogonal vectors r1 = g(e1), r2 = g(e2), r3 = g(e3) relative to the world frame W , i.e., by the 3 × 3 matrix: 3×3 R = r1 r2 r3 2 R 3 I Consider a point s 2 R with coordinates sB in fBg and sW in fW g I Pure 2D rotation: sW = [sB ]1r1 + [sB ]2r2 I 3D translation p and rotation R: sW = [sB ]1r1 + [sB ]2r2 + [sB ]3r3 + p = RsB + p 8 Special Orthogonal Lie Group SO(3) T I Since r1; r2; r3 form an orthonormal basis: ri rj = δij I R is an orthogonal matrix RT R = RRT = I I R's inverse is its transpose: R−1 = RT T I det(R) = r1 (r2 × r3) = 1 I R belongs to the special orthogonal group: 3×3 T SO(3) := fR 2 R j R R = I ; det(R) = 1g 9 Special Orthogonal Lie Group SO(n) n×n T I SO(n) := fR 2 R j R R = I ; det(R) = 1g I Closed under multiplication: R1R2 2 SO(n) I Identity: I 2 SO(n) I Inverse: R−1 = RT 2 SO(n) I Associative property: (R1R2)R3 = R1(R2R3) I Manifold structure: n2 parameters with n(n + 1)=2 constraints (due to RT R = I ) and hence n(n − 1)=2 degrees of freedom I Distances are preserved: 2 2 T T T kx − yk2 = kR(x − y)k2 = (x − y) R R(x − y) ) R R = I I No reflections allowed, i.e., a right-handed coordinate system is kept: R(x × y) = (Rx) × (Ry) = RxRyc = det(R)RxR^ T Ry ) det(R) = 1 10 2-D Rotation 2 I A 2-D rotation of point s 2 R through an angle θ can be described by a rotation matrix R(θ) 2 SO(2): cos θ − sin θ s = R(θ)s := s W B sin θ cos θ B I θ > 0: counterclockwise rotation I There is a one-to-one correspondence between 2-D rotation matrices and unit-norm complex numbers: iθ e ([sB ]1 + i[sB ]2) = ([sB ]1 cos θ − [sB ]2 sin θ) + i([sB ]1 sin θ + [sB ]2 cos θ) 11 Principal 3D Rotations I A rotation by an angle φ around the x-axis is represented by: 21 0 0 3 Rx (φ) := 40 cos φ − sin φ5 0 sin φ cos φ I A rotation by an angle θ around the y-axis is represented by: 2 cos θ 0 sin θ3 Ry (θ) := 4 0 1 0 5 − sin θ 0 cos θ I A rotation by an angle around the z-axis is represented by: 2cos − sin 03 Rz ( ) := 4sin cos 05 0 0 1 12 Euler Angle Parameterization I One way to parameterize rotation is to use three angles that specify the rotations around the principal axes I There are 24 different ways to apply these rotations I Extrinsic axes: the rotation axes remain fixed/global/static I Intrinsic axes: the rotation axes move with the rotations I Each of the two groups (intrinsic and extrinsic) can be divided into: I Euler Angles: rotation about one axis, then a second and then the first I Tait-Bryan Angles: rotation about all three axes I The Euler and Tait-Bryan Angles each have 6 possible choices for each of the extrinsic/intrinsic groups leading to 2 ∗ 2 ∗ 6 = 24 possible conventions to specify a rotation sequence with three given angles I For simplicity we will refer to all these 24 conventions as Euler Angles and will explicitly specify: I r (rotating = intrinsic) or s (static = extrinic) I xyz or zyx or zxz, etc. (axes about which to perform the rotation in the specified order) 13 Euler Angle Convention I Spin (θ), nutation (γ), precession ( ) sequence: I A rotation about the original z-axis I A rotation γ about the intermediate x-axis I A rotation θ about the transformed z-axis I Roll (φ), pitch (θ), yaw ( ): I A rotation φ about the original x-axis I A rotation θ about the intermediate y-axis I A rotation about the transformed z-axis I We will call Euler Angles the roll (φ), pitch (θ), yaw ( ) angles specifying an XYZ extrinsic rotation or equivalently a ZYX intrinsic rotation: R = Rz ( )Ry (θ)Rx (φ) 2cos − sin 03 2 cos θ 0 sin θ3 21 0 0 3 = 4sin cos 05 4 0 1 0 5 40 cos φ − sin φ5 0 0 1 − sin θ 0 cos θ 0 sin φ cos φ 14 Gimbal Lock I Angle parameterizations have singularities (not one-to-one), which can result in gimbal lock, e.g., if θ = 90◦, the roll and yaw become associated with the same degree of freedom and cannot be uniquely determined.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    23 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us