270 likes | 590 Views
Forward Kinematics and Jacobians. Kris Hauser CS B659: Principles of Intelligent Robot Motion Spring 2013. q 2. q 1. Articulated Robot. Robot: usually a rigid articulated structure Geometric CAD models, relative to reference frames
E N D
Forward Kinematics and Jacobians Kris Hauser CS B659: Principles of Intelligent Robot Motion Spring2013
q2 q1 Articulated Robot • Robot: usually a rigid articulated structure • Geometric CAD models, relative to reference frames • A configuration specifies the placement of those frames (forward kinematics)
Forward Kinematics • Given: • A kinematic reference frame of the robot • Joint angles q1,…,qn • Find rigid frames T1,…,Tn relative to T0 • A frame T=(R,t) consists of a rotation R and a translation t so that T·x = R·x + t • Make notation easy: use homogeneous coordinates • Transformation composition goes from right to left:T1·T2 indicates the transformation T2 first, then T1
T2ref T3ref T1ref T4ref Kinematic Model of Articulated Robots: Reference Frame L2 T0 L3 L1 L0
T1(q1) q1 Rotating the first joint T1(q1) =T1ref·R(q1) T0 T1ref L0
Where is the second joint? T2(q1) ? T2ref T0 q1
Where is the second joint? T2ref T0 q1 T2parent(q1) = T1(q1) ·(T1ref)-1·T2ref
After rotating joint 2 q2 T2R T0 q1 T2(q1,q2) = T1(q1)·(T1ref)-1·T2ref·R(q2)
After rotating joint 2 q2 T2R T0 q1 Denote T2->1ref= (T1ref)-1·T2ref(frame relative to parent) T2(q1,q2) = T1(q1) ·T2->1ref·R(q2)
T2(q1,q2) T3(q1,..,q3) T1(q1) T4(q1,…,q4) General Formula Denote (ref frame relative to parent) L2 T0 L3 L1 L0
Generalization to tree structures • Topological sort: p[k] = parent of link k • Denote (frame i relative to parent) • Let A(i) be the list of ancestors of i (sorted from root to i)
To 3D… • Much the same, except joint axis must be defined (relative to parent) • Angle-axis parameterization
Generalizations • Prismatic joints • Ball joints • Prismatic joints • Spirals • Free-floating bases From LaValle, Planning Algorithms
The Jacobian Matrix • The Jacobian of a function x = f(q), with and is the m x n matrix of partial derivatives • Typically written J(q) • (Note the dependence on q) f1/q1 … f1/qn … … fm/q1 … fm/qn
Single Joint Robot Example (x,y) L q
Single Joint Robot Example (x,y) L q
Single Joint Robot Example (x,y) L q
Significance • If x is an end effector, multiplying J(q) with a joint velocity vector gives the end effector velocity (x,y) L q
Computing Jacobians in general • How do we compute it? • Consider derivative w.r.t. qj
T2(q1,q2) T3(q1,..,q3) T1(q1) T4(q1,…,q4) Derivative… xk L2 T0 L3 L1
T2(q1,q2) T3(q1,..,q3) T1(q1) T4(q1,…,q4) Consequences… • Column j of position JacobianJx(q) is the speed at which x would change if joint j rotated alone • Perpendicular and equal in magnitude to vector from x to joint axis • Larger when x is farther from the joint axis xk L2 T0 L3 L1
T2(q1,q2) T3(q1,..,q3) T1(q1) T4(q1,…,q4) Orientation Jacobian • Consider end effector orientation θ(q) in plane • All entries of Jθ(q) corresponding to revolute joints are 1! • In 3D, column j is identical to the axis of rotation of joint j (in world space) at configuration q xk L2 T0 L3 L1
Total Jacobian • Total Jacobian J(q) is the matrix formed by stacking Jx(q), Jθ(q) • 3 rows in 2D, 6 rows in 3D
Next class: Inverse Kinematics • Readings on schedule: • Wang and Chen (1991) • Duindam et al (2008)