Introduction to ROBOTICS Velocity Analysis Jacobian University of Bridgeport 1 Kinematic relations 1 2 3 4 5 6 X=FK(θ) Joint Space θ =IK(X) x y z X Task Space Location of the tool can be specified using a joint space or a cartesian space description Velocity relations • Relation between joint velocity and cartesian velocity. • JACOBIAN matrix J(θ) 1 X J ( ) 2 3 4 1 5 J ( ) X 6 Joint Space x y z x y z Task Space Jacobian • Suppose a position and orientation vector of a manipulator is a function of 6 joint variables: (from forward kinematics) X = h(q) q1 x q y 2 q3 z X h ( ) 6 1 q4 q 5 q 6 h1 ( q 1 , q 2 , , q 6 ) h 2 ( q1 , q 2 , , q 6 ) h3 ( q1 , q 2 , , q 6 ) h ( q , q , , q ) 4 1 2 6 h (q , q , , q ) 5 1 2 6 h 6 ( q 1 , q 2 , , q 6 ) 6 1 Jacobian Matrix Forward kinematics X 6 1 h ( q n 1 ) d dh ( q ) dq dh ( q ) X 6 1 h ( q n 1 ) q dt dq dt dq x y z x y z q 1 dh ( q ) q 2 dq 6 n q n n 1 X 6 1 J 6 n q n 1 J dh ( q ) dq Jacobian Matrix x y q 1 z dh ( q ) q 2 x dq 6 n y q n n 1 z dh ( q ) J dq 6 n Jacobian is a function of q, it is not a constant! h1 q 1 h2 q 1 h 6 q 1 h1 q 2 h2 q 2 h6 q 2 h1 q n h2 q n h6 q n 6 n Jacobian Matrix x y z V X x y z Linear velocity x V y z The Jacbian Equation X J 6 n q n 1 Angular velocity x y z q n 1 q 1 q 2 q n n 1 Example • 2-DOF planar robot arm – Given l1, l2 , Find: Jacobian (x , y) 2 x l1 cos 1 l 2 cos( 1 2 ) h1 ( 1 , 2 ) l sin l sin( ) h ( , ) y 1 1 2 1 2 2 1 2 l2 1 x Y J y 2 1 l1 h1 J 1 h2 1 l 2 sin( 1 2 ) l 2 cos( 1 2 ) h1 2 l1 sin 1 l 2 sin( 1 2 ) h2 l1 cos 1 l 2 cos( 1 2 ) 2 Singularities • The inverse of the jacobian matrix cannot be calculated when det [J(θ)] = 0 • Singular points are such values of θ that cause the determinant of the Jacobian to be zero • Find the singularity configuration of the 2-DOF planar robot arm determinant(J)=0 Not full rank 1 x X J y 2 l1 sin 1 l 2 sin( 1 2 ) J l1 cos 1 l 2 cos( 1 2 ) V l 2 sin( 1 2 ) l 2 cos( 1 2 ) l2 Y 2 =0 Det(J)=0 2 0 1 l1 x (x , y) Jacobian Matrix • Pseudoinverse – Let A be an mxn matrix, and let A be the pseudoinverse of A. If A is of full rank, then A can be computed as: A T [ AA T ] 1 1 A A [ A T A ] 1 A T mn m n mn Jacobian Matrix – Example: Find X s.t. 1 1 0 1 2 3 x 0 2 A A [ AA ] T T 1 1 0 2 1 5 1 1 0 1 2 1 1 1 1 9 4 Matlab Command: pinv(A) to calculate A+ 5 1 x A b 13 9 16 4 5 2 Jacobian Matrix • Inverse Jacobian J 11 J 21 X J q J 61 q J 1 X J 12 J 22 J 62 J 16 J 26 J 66 q 1 q 2 q 3 q 4 q 5 q 6 q5 q1 • Singularity – rank(J)<n : Jacobian Matrix is less than full rank – Jacobian is non-invertable – Boundary Singularities: occur when the tool tip is on the surface of the work envelop. – Interior Singularities: occur inside the work envelope when two or more of the axes of the robot form a straight line, i.e., collinear Singularity • At Singularities: – the manipulator end effector cant move in certain directions. – Bounded End-Effector velocities may correspond to unbounded joint velocities. – Bounded joint torques may correspond to unbounded End-Effector forces and torques. Jacobian Matrix • If ax bx A a y , B by a z b z • Then the cross product i j A B ax ay bx by a y bz a z b y a z ( a x bz a z bx ) a b a b bz y x x y k Remember DH parmeter c i s i Ai 0 0 -c i s i s is i c ic i -s i c i s i c i 0 0 a ic i a is i di 1 • The transformation matrix T T 0 A1 A 2 ..... Ai i Jacobian Matrix J J 1 J2 .... Jn Jacobian Matrix 2-DOF planar robot arm Given l1, l2 , Find: Jacobian • Here, n=2, (x , y) 2 l2 1 l1 c i s i Ai 0 0 -c i s i s is i c ic i -s i c i s i c i 0 0 a ic i a is i di 1 Where (θ1 + θ2 ) denoted by θ12 and 0 Z 0 Z1 0 1 0 a1 cos 1 a1 cos 1 a 2 cos( 1 2 ) O 0 0 , O1 a1 sin 1 , O 2 a1 sin 1 a 2 sin( 1 2 ) 0 0 0 19 Jacobian Matrix 2-DOF planar robot arm Given l1, l2 , Find: Jacobian • Here, n=2 z 0 (o2 o0 ) z1 ( o 2 o1 ) J1 , J2 z z 0 1 (x , y) 2 l2 1 l1 Jacobian Matrix z0 (o2 o0 ) J1 z 0 0 a1 cos 1 a 2 cos( 1 2 ) Z 0 ( o 2 o 0 ) 0 a1 sin 1 a 2 sin( 1 2 ) 1 0 i 0 a1 cos 1 a 2 cos( 1 2 ) a1 sin 1 a 2 sin( 1 2 ) a1 cos 1 a 2 cos( 1 2 ) 0 j 0 a1 sin 1 a 2 sin( 1 2 ) k 1 0 Jacobian Matrix z 1 ( o 2 o1 ) J2 z 1 0 a 2 co s( 1 2 ) Z 1 ( o 2 o1 ) 0 a 2 sin ( 1 2 ) 1 0 i 0 a 2 co s( 1 2 ) a 2 sin ( 1 2 ) a 2 co s( 1 2 ) 0 j 0 a 2 sin ( 1 2 ) k 1 0 Jacobian Matrix a1 sin 1 a 2 sin( 1 2 ) a1 cos 1 a 2 cos( 1 2 ) 0 J1 0 0 1 a 2 sin ( 1 2 ) a 2 co s( 1 2 ) 0 J2 0 0 1 The required Jacobian matrix J J J1 J2 Stanford Manipulator The DH parameters are: c i s i Ai 0 0 -c i s i s is i c ic i -s i c i s i c i 0 0 a ic i a is i di 1 Stanford Manipulator T 0 A1 1 2 T0 c1 c 2 s1 c 2 A1 A2 s2 0 c1 c 2 s1 c 2 3 T 0 A1 A2 A3 s2 0 s1 c1 s 2 c1 s1 s 2 0 c2 0 0 s1 c1 s 2 c1 s1 s 2 0 c2 0 0 d 2 s1 d 2 c1 0 1 0 c1 s 2 s1 c1 s 2 z 0 0 z c z s s z 3 s1 s 2 1 1 2 1 2 c 2 1 0 c 2 d 2 s1 d 3 c1 s 2 d 2 s1 0 O d c O d s s d c d 3 c1 s 2 d 2 s1 O 0 O1 0 2 2 1 3 3 1 2 2 1 0 d 3c2 d 3 s1 s 2 d 2 c 1 0 d 3c2 1 Stanford Manipulator T4 = T0 A1 A2 A3 A4 4 T0 A1 A2 A3 A4 A5 5 T0 A1 A2 A3 A4 A5 A6 6 [ c1c2c4-s1s4, -c1s2, -c1c2s4-s1*c4, c1s2d3-sin1d2] [ s1c2c4+c1s4, -s1s2, -s1c2s4+c1c4, s1s2d3+c1*d2] [-s2c4, -c2, s2s4, c2*d3] [ 0, 0, 0, 1] c1 c 2 s 4 s 1 c 4 z 4 s1 c 2 s 4 c 1 c 4 s2 s4 d 3 c1 s 2 d 2 s 1 O 4 d 3 s1 s 2 d 2 c1 d 3c2 Stanford Manipulator T5 = [ (c1c2c4-s1s4)c5-c1s2s5, c1c2s4+s1c4, (c1c2c4-s1s4)s5+c1s2c5, c1s2d3-s1d2] [ (s1c2c4+c1s4)c5-s1s2s5, s1c2s4-c1c4, (s1c2c4+c1s4)s5+s1s2c5, s1s2d3+c1d2] [ -s2c4c5-c2s5, -s2s4, -s2c4s5+c2c5, c2d3] [ 0, 0, 0, 1] c1 c 2 c 4 s 5 s1 s 4 s 5 c1 s 2 c 5 z 5 s1 c 2 c 4 s 5 c1 s 4 s 5 s1 s 2 c 5 s 2 c 4 s5 c 2 c5 c1 c 2 c 4 s 5 s1 s 4 s 5 c1 s 2 c 5 z 5 s1 c 2 c 4 s 5 c1 s 4 s 5 s1 s 2 c 5 s 2 c 4 s5 c 2 c5 Stanford Manipulator T5 = [ (c1c2c4-s1s4)c5-c1s2s5, c1c2s4+s1c4, (c1c2c4-s1s4)s5+c1s2c5, c1s2d3-s1d2] [ (s1c2c4+c1s4)c5-s1s2s5, s1c2s4-c1c4, (s1c2c4+c1s4)s5+s1s2c5, s1s2d3+c1d2] [ -s2c4c5-c2s5, -s2s4, -s2c4s5+c2c5, c2d3] [ 0, 0, 0, 1] c1 c 2 c 4 s 5 s1 s 4 s 5 c1 s 2 c 5 z 5 s1 c 2 c 4 s 5 c1 s 4 s 5 s1 s 2 c 5 s 2 c 4 s5 c 2 c5 d 3 c1 s 2 d 2 s1 O 5 d 3 s1 s 2 d 2 c1 d 3c2 Stanford Manipulator T6 = [ c6c5c1c2c4-c6c5s1s4-c6c1s2s5+s6c1c2s4+s6s1c4, c5c1c2c4+s6c5s1s4+s6c1s2s5+c6c1c2s4+c6s1c4, s5c1c2c4-s5s1s4+c1s2c5, d6s5c1c2c4-d6s5s1s4+d6c1s2c5+c1s2d3-s1d2] [ c6c5s1c2c4+c6c5c1s4-c6s1s2s5+s6s1c2s4-s6c1c4, -s6c5s1c2c4s6c5c1s4+s6s1s2s5+c6s1c2s4-c6c1c4, s5s1c2c4+s5c1s4+s1s2c5, d6s5s1c2c4+d6s5c1s4+d6s1s2c5+s1s2d3+c1d2] [ -c6s2c4c5-c6c2s5-s2s4s6, s6s2c4c5+s6c2s5-s2s4c6, -s2c4s5+c2c5, d6s2c4s5+d6c2c5+c2d3] [ 0, 0, 0, 1] d6s5c1c2c4 d6s5s1s4 d6c1s2c5 c1s2d3 s1d2 O 6 d6s5s1c2c4 d6s5c1s4 d6s1s2c5 s1s2d3 c1d2 d6s2c4s5 d6c2c5 c2d3 Stanford Manipulator z 0 (o6 o0 ) z1 ( o 6 o1 ) J1 , J2 z z 0 1 z2 J3 0 Joints 1,2 are revolute Joint 3 is prismatic z 3 ( o6 o3 ) z 5 (o6 o5 ) z 4 (o6 o4 ) J4 , J5 , J6 z z z 3 5 4 The required Jacobian matrix J J J1 J2J3J4J5J6 Inverse Velocity – The relation between the joint and end-effector velocities: X J (q )q where j (m×n). If J is a square matrix (m=n), the joint velocities: q J 1 (q ) X – If m<n, let pseudoinverse J+ where J J T [ JJ T ] 1 q J (q ) X Acceleration – The relation between the joint and end-effector velocities: X J (q )q – Differentiating this equation yields an expression for the acceleration: X J (q )q [ d J ( q )]q dt – Given X of the end-effector acceleration, the joint acceleration q J (q )q X [ q J 1 ( q )[ X d dt d dt J ( q )] q J ( q )] q ]