430 likes | 566 Views
Kinematics ( 運動學) Primer. Jyun-Ming Chen Fall 2009. Contents. General Properties of Transform 2D and 3D Rigid Body Transforms DOF (degree of freedom) Representation Computation Conversion … Transforms for Hierarchical Objects. Explain these concepts via 2D translation
E N D
Kinematics (運動學) Primer Jyun-Ming Chen Fall 2009
Contents • General Properties of Transform • 2D and 3D Rigid Body Transforms • DOF (degree of freedom) • Representation • Computation • Conversion • … • Transforms for Hierarchical Objects
Explain these concepts via 2D translation Verify that the same holds for rotation, 3D, … Kinematic Modeling • Two interpretations of transform • “Global”: • An operator that “displaces” a point (or set of points) to desired location • “Local”: • specify where objects are placed in WCS by moving the local frame
y p x Ex: 2D translation (move point) The transform, as an operator, takes p to p’, thus changing the coordinate of p: Tr(t) p = p’ p’ Tr(t)
y’ y p’ p x’ x Ex: 2D translation (move frame) The transform moves the xy-frame to x’y’-frame and the point is placed with the same local coordinate. To determine the corresponding position of p’ in xy-frame: Tr(t)
Transforms are usually not commutable TaTb p TbTa p (in general) Rigid body transform: the ones preserving the shape Two types: rotation rot(n,q) translation tr(t) Properties of Transform Rotation axis n passes thru origin
Rigid Body Transform • transforming a point/object • rot(n,q) p; tr(t) p • not commutable • rot(n,q) tr(t) p tr(t) rot(n,q) p • two interpretations (local vs. global axes, see next pages)
Hierarchical Objects • For modeling articulated objects • Robots, mechanism, … • Goals: • Draw it • Given the configuration, able to compute the (global) coordinate of every point on body
Configuration Link 1: Box (6,1); bend 45 deg Link 2: Box (8,1); bend 30 deg Goals: Draw it find tip position y x y x Ex: Two-Link Arm (2D)
Tip pos:(0,8) Rot(z,45) Tr(0,6) Rot(z,30) Ex: Two-Link Arm Tip Position: T for link1: Rot(z,45) Tr(0,6) Rot(z,30) T for link2: Rot(z,45)
y” y’” y’ x” x”’ x’ Rot(z”,30) Tip pos:(0’”,8’”) Tr(0,6’) Rot(z,45) Ex: Two-Link Arm Thus, two views are equivalent The latter might be easier to visualize.
Rigid body transform only consists of Tr(x,y) Rot(z,q) Computation: 3x3 matrix is sufficient to realize Tr and Rot 2D Kinematics
Consists of two parts 3D rotation 3D translation The same as 2D 3D rotation is more complicated than 2D rotation (restricted to z-axis) Next, we will discuss the treatment for spatial (3D) rotation 3D Kinematics
DOF (degree of freedom) • … of a system of moving bodies is the number of independent variables required to specify the configuration • … is closely related to kinematic representation • (# of independent variables) = (# of total variables) ̶ (# of equality constraints)
A particle in R2 R3 A rigid body in R2 R3 DOF of … 3 2 6 3 a line in R2 a line in R3 a plane in R3 2 4 (Plucker coordinates) 3
Euler angles Axis-angle 3X3 rotation matrix Unit quaternion Learning Objectives Representation (uniqueness) Perform rotation Composition Interpolation Conversion among representations … 3D Rotation Representations
Roll, pitch, yaw Gimbal lock: reduced DOF due to overlapping axes Euler Angles Ref: http://www.fho-emden.de/~hoffmann/gimbal09082002.pdf
Weird Interpolation … Previous [-26, -90, 127] Next [71, 68, -105]
Axis-Angle Representation • Rot(n,q) • n: rotation axis (global) • q: rotation angle (rad. or deg.) • follow right-handed rule • Rot(n,q)=Rot (-n,-q) • Problem with null rotation: rot(n,0), any n • Perform rotation • Rodrigues formula (next page) • Interpolation/Composition: poor • Rot(n2,q2)Rot(n1,q1) =?= Rot(n3,q3)
a Rodrigues Formula r : unit vector (axis) r This is the “cross-product matrix” rL v = r v v v’ v’=R v References: http://mesh.caltech.edu/ee148/notes/rotations.pdf http://www.cs.berkeley.edu/~ug/slide/pipeline/assignments/as5/rotation.html
z Rotation Matrix (xy plane)
About y axis Rodrigues formula About any axis y,y’ x’ x z z’ Rotation Matrix
Supplemental (rotation matrix & axis-angle) Rot (a, q) Q Q Rot (a, q) Ref: url (local)
Three columns of R: the transformed bases Perform rotation: x’ = Rx y,y’ x’ x z z’ Rotation Matrix
y y x x z z Rotation Matrix (example) z’ x’ z’ y’ x’ y’
Composition: trivial orthogonalization might be required due to FP errors Interpolation: ? Rotation Matrix (cont)
Gram-Schmidt Orthogonalization • If 3x3 rotation matrix no longer orthonormal, metric properties might change! Verify!
Transformation Matrices v = Hu Rotation (about principal axes) Translation Scaling
y y x z t x R z Frame Object coordinates Recall how we did the spotlight beam!
i k j Quaternion • A mathematical entity invented by Hamilton • Definition
Operators Addition Multiplication Conjugate Length Quaternion (cont)
Unit Quaternion • Define unit quaternion as follows to represent rotation • Example • Rot(z,90°) • q and –q represent the same rotation • Null rotation: q = [1,0,0,0] Why “unit”? DOF point of view!
y x z Example x y z Rot (90, 0,0,1) OR Rot (-90,0,0,-1)
Unit Quaternion (cont) • Perform Rotation • Composition • Interpolation • Linear • Spherical linear (slerp, more later)
y,x’ x y’ z,z’ Example p(2,1,1) Rot(z,90°)
y,x’ x y’ z,z’ Example y x,x’ z,y’ z’
Matrix Conversion (cont) Find largest qi2; solve the rest
q r Spherical Linear Interpolation unit sphere in R4 The computed rotation quaternion rotates about a fixed axis at constant speed References: http://www.gamedev.net/reference/articles/article1095.asp http://www.diku.dk/research-groups/image/teaching/Studentprojects/Quaternion/ http://www.sjbrown.co.uk/quaternions.html http://www.theory.org/software/qfa/writeup/node12.html
Spatial Displacement • Any displacement can be decomposed into a rotation followed by a translation • Matrix • Quaternion