Lecture 7: Kinematics: Velocity Kinematics - the Jacobian Manipulator Jacobian c Anton Shiriaev. 5EL158: Lecture 7 p. 1/??
Lecture 7: Kinematics: Velocity Kinematics - the Jacobian Manipulator Jacobian Analytical Jacobian c Anton Shiriaev. 5EL158: Lecture 7 p. 1/??
Lecture 7: Kinematics: Velocity Kinematics - the Jacobian Manipulator Jacobian Analytical Jacobian Singularities c Anton Shiriaev. 5EL158: Lecture 7 p. 1/??
Lecture 7: Kinematics: Velocity Kinematics - the Jacobian Manipulator Jacobian Analytical Jacobian Singularities Inverse Velocity and Manipulability c Anton Shiriaev. 5EL158: Lecture 7 p. 1/??
Concept of the Manipulator Jacobian Given an n-link manipulator with joint variables q 1,..., q n Let Tn 0 (q) is the homogeneous transformation between the end-effector and base frames [ ] Tn 0 (q) = Rn 0(q) o0 n (q), q = [ ] T q 1,..., q n 0 1 so that p with coordinates p n its coordinates in the base frame are p 0 = R 0 n pn + o 0 n c Anton Shiriaev. 5EL158: Lecture 7 p. 2/??
Concept of the Manipulator Jacobian Given an n-link manipulator with joint variables q 1,..., q n Let Tn 0 (q) is the homogeneous transformation between the end-effector and base frames [ ] Tn 0 (q) = Rn 0(q) o0 n (q), q = [ ] T q 1,..., q n 0 1 so that p with coordinates p n its coordinates in the base frame are p 0 = R 0 n pn + o 0 n As the robot moves, joint variables become functions of time t q(t) = [ q 1 (t),..., q n (t) ] T so that p 0 (t) = R 0 n (q(t)) pn + o 0 n (q(t)) c Anton Shiriaev. 5EL158: Lecture 7 p. 2/??
Concept of the Manipulator Jacobian We have already seen how to compute d dt p0 (t) from p 0 (t) = R 0 n (q(t)) pn + o 0 n (q(t)) c Anton Shiriaev. 5EL158: Lecture 7 p. 3/??
Concept of the Manipulator Jacobian We have already seen how to compute d dt p0 (t) from It is p 0 (t) = R 0 n (q(t)) pn + o 0 n (q(t)) d dt p0 (t) = d dt [ R 0 n (q(t)) ] p n + d dt [ o 0 n (q(t)) ] = S(ω 0 0,n (t))r0 n (q(t))pn + v 0 n (t) = ω0 0,n (t) r(t) + v0 n (t) with r(t) = p o n (t) c Anton Shiriaev. 5EL158: Lecture 7 p. 3/??
Concept of the Manipulator Jacobian We have already seen how to compute d dt p0 (t) from It is p 0 (t) = R 0 n (q(t)) pn + o 0 n (q(t)) d dt p0 (t) = d dt [ R 0 n (q(t)) ] p n + d dt [ o 0 n (q(t)) ] = S(ω 0 0,n (t))r0 n (q(t))pn + v 0 n (t) = ω0 0,n (t) r(t) + v0 n (t) with r(t) = p o n (t) Therefore, to compute velocity of any point in the end-effector frame, it suffices to know an angular velocity ω0,n 0 (t) of the end-effector frame a linear velocity vn 0 (t) of the the end-effector frame origin c Anton Shiriaev. 5EL158: Lecture 7 p. 3/??
Concept of the Manipulator Jacobian Given an n-link manipulator with joint variables q 1,..., q n its particular motion q(t) = [ q 1 (t),..., q n (t) ] T What do the functions ω0,n 0 (t) and v0 n (t) depend on? c Anton Shiriaev. 5EL158: Lecture 7 p. 4/??
Concept of the Manipulator Jacobian Given an n-link manipulator with joint variables q 1,..., q n its particular motion q(t) = [ q 1 (t),..., q n (t) ] T What do the functions ω0,n 0 (t) and v0 n (t) depend on? It is suggested to search them as v 0 n (t) = J v(q(t)) d dt q(t) ω0 0,n (t) = J ω(q(t)) d dt q(t) c Anton Shiriaev. 5EL158: Lecture 7 p. 4/??
Concept of the Manipulator Jacobian Given an n-link manipulator with joint variables q 1,..., q n its particular motion q(t) = [ q 1 (t),..., q n (t) ] T What do the functions ω0,n 0 (t) and v0 n (t) depend on? It is suggested to search them as v 0 n (t) = J v(q(t)) d dt q(t) ω0 0,n (t) = J ω(q(t)) d dt q(t) The 6 n-matrix function J( ) defined by ξ(t) = v0 n (t) ω0,n 0 (t) = J(q(t)) d dt q(t) = J v(q(t)) J ω (q(t)) d dt q(t) is the manipulator Jacobian; ξ(t) is a vector of body velocities c Anton Shiriaev. 5EL158: Lecture 7 p. 4/??
Angular Velocity Given n-moving frames with the same origins as for fixed one R 0 n (t) = R0 1 (t)r1 2 (t) Rn 1 n (t) d dt R0 n (t) = S(ω0 0,n (t))r0 n (t) ω 0 0,n (t) = ω0 0,1 (t) + ω0 1,2 (t) + ω0 2,3 (t) + + ω0 n 1,n (t) = ω 0 0,1 + R0 1 ω1 1,2 + R0 2 ω2 2,3 + + R0 n 1 ωn 1 n 1,n c Anton Shiriaev. 5EL158: Lecture 7 p. 5/??
Angular Velocity Given n-moving frames with the same origins as for fixed one R 0 n (t) = R0 1 (t)r1 2 (t) Rn 1 n (t) d dt R0 n (t) = S(ω0 0,n (t))r0 n (t) ω 0 0,n (t) = ω0 0,1 (t) + ω0 1,2 (t) + ω0 2,3 (t) + + ω0 n 1,n (t) = ω 0 0,1 + R0 1 ω1 1,2 + R0 2 ω2 2,3 + + R0 n 1 ωn 1 n 1,n If i th -joint is revolute (ρ i = 1), then axis of rotation coincides with z i ; angular velocity is ω i 1 i 1,i = q i(t) k c Anton Shiriaev. 5EL158: Lecture 7 p. 5/??
Angular Velocity Given n-moving frames with the same origins as for fixed one R 0 n (t) = R0 1 (t)r1 2 (t) Rn 1 n (t) d dt R0 n (t) = S(ω0 0,n (t))r0 n (t) ω 0 0,n (t) = ω0 0,1 (t) + ω0 1,2 (t) + ω0 2,3 (t) + + ω0 n 1,n (t) = ω 0 0,1 + R0 1 ω1 1,2 + R0 2 ω2 2,3 + + R0 n 1 ωn 1 n 1,n If i th -joint is revolute (ρ i = 1), then axis of rotation coincides with z i ; angular velocity is ω i 1 i 1,i = q i(t) k If i th -joint is prismatic (ρ i = 0), then angular velocity ω i 1 i 1,i = 0 c Anton Shiriaev. 5EL158: Lecture 7 p. 5/??
Angular Velocity Given n-moving frames with the same origins as for fixed one R 0 n (t) = R0 1 (t)r1 2 (t) Rn 1 n (t) d dt R0 n (t) = S(ω0 0,n (t))r0 n (t) ω 0 0,n (t) = ω0 0,1 (t) + ω0 1,2 (t) + ω0 2,3 (t) + + ω0 n 1,n (t) = ω 0 0,1 + R0 1 ω1 1,2 + R0 2 ω2 2,3 + + R0 n 1 ωn 1 n 1,n If i th -joint is revolute (ρ i = 1), then axis of rotation coincides with z i ; angular velocity is ω i 1 i 1,i = q i(t) k If i th -joint is prismatic (ρ i = 0), then angular velocity ω i 1 i 1,i = 0 Therefore ω 0 0,n (t) = ω0 0,1 + R0 1 ω1 1,2 + R0 2 ω2 2,3 + + R0 n 1 ωn 1 n 1,n = ρ 1 q 1 k + ρ 2 R 0 1 q 2 k + + ρ n R 0 n 1 q n k c Anton Shiriaev. 5EL158: Lecture 7 p. 5/??
Angular Velocity Given n-moving frames with the same origins as for fixed one R 0 n (t) = R0 1 (t)r1 2 (t) Rn 1 n (t) d dt R0 n (t) = S(ω0 0,n (t))r0 n (t) ω 0 0,n (t) = ω0 0,1 (t) + ω0 1,2 (t) + ω0 2,3 (t) + + ω0 n 1,n (t) = ω 0 0,1 + R0 1 ω1 1,2 + R0 2 ω2 2,3 + + R0 n 1 ωn 1 n 1,n If i th -joint is revolute (ρ i = 1), then axis of rotation coincides with z i ; angular velocity is ω i 1 i 1,i = q i(t) k If i th -joint is prismatic (ρ i = 0), then angular velocity ω i 1 i 1,i = 0 Therefore ω0,n 0 (t) = ρ 1 q 1 k + ρ2 R1 0 q 2 k + + ρ n Rn 1 0 q n k n = ρ i q i zi 1 0, z0 i 1 = R0 i 1k i=1 c Anton Shiriaev. 5EL158: Lecture 7 p. 5/??
Angular Velocity Given n-moving frames with the same origins as for fixed one R 0 n (t) = R0 1 (t)r1 2 (t) Rn 1 n (t) d dt R0 n (t) = S(ω0 0,n (t))r0 n (t) ω 0 0,n (t) = ω0 0,1 (t) + ω0 1,2 (t) + ω0 2,3 (t) + + ω0 n 1,n (t) = ω 0 0,1 + R0 1 ω1 1,2 + R0 2 ω2 2,3 + + R0 n 1 ωn 1 n 1,n If i th -joint is revolute (ρ i = 1), then axis of rotation coincides with z i ; angular velocity is ω i 1 i 1,i = q i(t) k If i th -joint is prismatic (ρ i = 0), then angular velocity ω i 1 i 1,i = 0 Therefore ω 0 0,n (t) = n ρ i q i z 0 i 1 = [ρ 1 z 0 0, ρ 2z 0 1,..., ρ nz 0 n 1 ] q 1. i=1 q n c Anton Shiriaev. 5EL158: Lecture 7 p. 5/??
Angular Velocity Given n-moving frames with the same origins as for fixed one R 0 n (t) = R0 1 (t)r1 2 (t) Rn 1 n (t) d dt R0 n (t) = S(ω0 0,n (t))r0 n (t) ω 0 0,n (t) = ω0 0,1 (t) + ω0 1,2 (t) + ω0 2,3 (t) + + ω0 n 1,n (t) = ω 0 0,1 + R0 1 ω1 1,2 + R0 2 ω2 2,3 + + R0 n 1 ωn 1 n 1,n If i th -joint is revolute (ρ i = 1), then axis of rotation coincides with z i ; angular velocity is ω i 1 i 1,i = q i(t) k If i th -joint is prismatic (ρ i = 0), then angular velocity ω i 1 i 1,i = 0 Therefore ω 0 0,n (t) = n i=1 ] ρ i q i zi 1 [ρ 0 = 1 z0 0, ρ 2z1 0,..., ρ nzn 1 0 }{{} = J ω q 1. q n c Anton Shiriaev. 5EL158: Lecture 7 p. 5/??
Linear Velocity The linear velocity vn 0 (t) of the end-effector is the time-derivative of o 0 n (t) and v0 n (t) 0 if q 0 c Anton Shiriaev. 5EL158: Lecture 7 p. 6/??
Linear Velocity The linear velocity vn 0 (t) of the end-effector is the time-derivative of o 0 n (t) and v0 n (t) 0 if q 0 Therefore there are functions J v1 (q, q),..., J vn (q, q) such that v 0 n (t) = d dt o0 n (t) = J v 1 ( ) q 1 + J v2 ( ) q 2 + + J vn ( ) q n c Anton Shiriaev. 5EL158: Lecture 7 p. 6/??
Linear Velocity The linear velocity vn 0 (t) of the end-effector is the time-derivative of o 0 n (t) and v0 n (t) 0 if q 0 Therefore there are functions J v1 (q, q),..., J vn (q, q) such that v 0 n (t) = = d dt o0 n (t) = J v 1 ( ) q 1 + J v2 ( ) q 2 + + J vn ( ) q n [ ] o 0 n q (t) 1 q 1 + [ ] o 0 n q (t) 2 q 2 + + [ ] o 0 n q (t) n q n c Anton Shiriaev. 5EL158: Lecture 7 p. 6/??
Linear Velocity A prismatic joint i: translation along the z i 1 -axis with velocity d dt d i when all other joints kept fixed results in d dt o0 n (t) = d dt d i(t)ri 1 0 k = d dt d i(t) zi 1 0 = J v i d i c Anton Shiriaev. 5EL158: Lecture 7 p. 6/??
Linear Velocity A revolute joint i: rotation along the z i 1 -axis with angular velocity d dt θ iz i 1 when all other joints kept fixed results in d dt o0 n (t) = ω r = [ θzi 1 ] [o n o i 1 ] = J vi θi c Anton Shiriaev. 5EL158: Lecture 7 p. 6/??
Linear Velocity The linear velocity vn 0 (t) of the end-effector is the time-derivative of o 0 n (t) and v0 n (t) 0 if q 0 Therefore there are functions J v1 (q, q),..., J vn (q, q) such that v 0 n (t) = = d dt o0 n (t) = J v 1 ( ) q 1 + J v2 ( ) q 2 + + J vn ( ) q n [ ] o 0 n q (t) 1 q 1 + [ ] o 0 n q (t) 2 q 2 + + [ ] o 0 n q (t) n q n J vi = z 0 i 1, z 0 i 1 [o 0 n o0 i 1 ] for prismatic joint, for revolute joint c Anton Shiriaev. 5EL158: Lecture 7 p. 6/??
Jacobian for Example 3.1 v0 n (t) ω 0 0,n (t) = J v(q(t)) J ω (q(t)) [ q 1 q 2 ] c Anton Shiriaev. 5EL158: Lecture 7 p. 7/??
Jacobian for Example 3.1 v0 n (t) ω 0 0,n (t) = J v 1 (q(t)) J v2 (q(t)) J ω1 (q(t)) J ω2 (q(t)) [ q 1 q 2 ] c Anton Shiriaev. 5EL158: Lecture 7 p. 7/??
Jacobian for Example 3.1 v0 n (t) ω 0 0,n (t) = z 0 (o 2 o 0 ) J v2 (q(t)) J ω1 (q(t)) J ω2 (q(t)) [ q 1 q 2 ] c Anton Shiriaev. 5EL158: Lecture 7 p. 7/??
Jacobian for Example 3.1 v0 n (t) ω 0 0,n (t) = z 0 (o 2 o 0 ) z 1 (o 2 o 1 ) J ω1 (q(t)) J ω2 (q(t)) [ q 1 q 2 ] c Anton Shiriaev. 5EL158: Lecture 7 p. 7/??
Jacobian for Example 3.1 v0 n (t) ω 0 0,n (t) = z 0 (o 2 o 0 ) z 1 (o 2 o 1 ) z 0 J ω2 [ q 1 q 2 ] c Anton Shiriaev. 5EL158: Lecture 7 p. 7/??
Jacobian for Example 3.1 v0 n (t) ω 0 0,n (t) = z 0 (o 2 o 0 ) z 1 (o 2 o 1 ) z 0 z 1 [ q 1 q 2 ] c Anton Shiriaev. 5EL158: Lecture 7 p. 7/??
Jacobian for Example 3.1 z i = 0 0 1, o 0 = 0 0 0, o 1 = a 1 c 1 a 1 s 1 0, o 2 = a 1 c 1 + a 2 c 12 a 1 s 1 + a 2 s 12 0 c Anton Shiriaev. 5EL158: Lecture 7 p. 7/??
Lecture 7: Kinematics: Velocity Kinematics - the Jacobian Manipulator Jacobian Analytical Jacobian Singularities Inverse Velocity and Manipulability c Anton Shiriaev. 5EL158: Lecture 7 p. 8/??
Analytic Jacobian Given a robot and a homogeneous transformation [ ] Tn 0 (q) = Rn 0(q) o0 n (q), q = [ ] q 1,..., q n 0 1 there are several ways to represent rotational matrix Rn 0 (q), e.g. R = R(φ, θ, ψ) = R z,φ R y,θ R z,ψ with (φ, θ, ψ) being the Euler angles (ZYZ-parametrization). c Anton Shiriaev. 5EL158: Lecture 7 p. 9/??
Analytic Jacobian Given a robot and a homogeneous transformation [ ] Tn 0 (q) = Rn 0(q) o0 n (q), q = [ ] q 1,..., q n 0 1 there are several ways to represent rotational matrix Rn 0 (q), e.g. R = R(φ, θ, ψ) = R z,φ R y,θ R z,ψ with (φ, θ, ψ) being the Euler angles (ZYZ-parametrization). If the robot moves q = q(t), then ω0,n 0 (t) is defined by d dt R0 n (q(t)) = S(ω0 0,n (t))r0 n (q(t)) Angular velocity is function of α(t) = (φ(t), θ(t), ψ(t)), d dt α(t) ω 0 0,n (t) = B(α(t)) d dt α(t) c Anton Shiriaev. 5EL158: Lecture 7 p. 9/??
Analytic Jacobian The equation [ v 0 n (t) α(t) ] = J a (q) q defines the so-called analytic Jacobian c Anton Shiriaev. 5EL158: Lecture 7 p. 10/??
Analytic Jacobian The equation [ v 0 n (t) α(t) ] = J a (q) q defines the so-called analytic Jacobian Both manipulator and analytic Jacobians are closely related [ ] [ ] vn 0(t) vn 0 ω0,n 0 (t) = J(q(t)) q(t) = (t) B(α(t)) α(t) [ ] [ ] I 0 vn 0 = (t) 0 B(α(t)) α(t) [ ] I 0 = J a (q(t)) q(t) 0 B(α(t)) c Anton Shiriaev. 5EL158: Lecture 7 p. 10/??
Lecture 7: Kinematics: Velocity Kinematics - the Jacobian Manipulator Jacobian Analytical Jacobian Singularities Inverse Velocity and Manipulability c Anton Shiriaev. 5EL158: Lecture 7 p. 11/??
Singularities The manipulator Jacobian J(q) a 6 n-matrix mapping ξ = v0 n = J(q) d ω0,n 0 dt q = J v(q) d dt q J ω (q) = [ J 1 (q), J 2 (q),..., J n (q) ] q 1. q n c Anton Shiriaev. 5EL158: Lecture 7 p. 12/??
Singularities The manipulator Jacobian J(q) a 6 n-matrix mapping ξ = v0 n = J(q) d ω0,n 0 dt q = J v(q) d dt q J ω (q) = [ J 1 (q), J 2 (q),..., J n (q) ] q 1. q n Since ξ R 6 rank [ J 1 (q), J 2 (q),..., J n (q) ] 6, q c Anton Shiriaev. 5EL158: Lecture 7 p. 12/??
Singularities The manipulator Jacobian J(q) a 6 n-matrix mapping ξ = v0 n = J(q) d ω0,n 0 dt q = J v(q) d dt q J ω (q) = [ J 1 (q), J 2 (q),..., J n (q) ] q 1. q n Since ξ R 6 rank [ J 1 (q), J 2 (q),..., J n (q) ] 6, q Configurations q s = [ q s 1,..., qs n] for which rank [ J 1 (q s ), J 2 (q s ),..., J n (q s ) ] are called singular < max q { rank [ J1 (q), J 2 (q),..., J n (q) ]} c Anton Shiriaev. 5EL158: Lecture 7 p. 12/??
Singularities Identifying manipulator singularities are important: Singularities represent configurations from which certain direction may be unattainable; c Anton Shiriaev. 5EL158: Lecture 7 p. 13/??
Singularities Identifying manipulator singularities are important: Singularities represent configurations from which certain direction may be unattainable; At singularity bounded end-effector velocity ξ may correspond to unbounded joint velocities q ξ 1 = J 1 (q 1, q 2 ) q 1 + J 2 (q 1, q 2 ) q 2 c Anton Shiriaev. 5EL158: Lecture 7 p. 13/??
Singularities Identifying manipulator singularities are important: Singularities represent configurations from which certain direction may be unattainable; At singularity bounded end-effector velocity ξ may correspond to unbounded joint velocities q ξ 1 = J 1 (q 1, q 2 ) q 1 + J 2 (q 1, q 2 ) q 2 Singularities often correspond to points on the boundary of the manipulator workspace c Anton Shiriaev. 5EL158: Lecture 7 p. 13/??
Singularities of the elbow manipulator c Anton Shiriaev. 5EL158: Lecture 7 p. 14/??
Singularities of the elbow manipulator c Anton Shiriaev. 5EL158: Lecture 7 p. 15/??
Lecture 7: Kinematics: Velocity Kinematics - the Jacobian Manipulator Jacobian Analytical Jacobian Singularities Inverse Velocity and Manipulability c Anton Shiriaev. 5EL158: Lecture 7 p. 16/??
Assigning Joint Velocities The manipulator Jacobian J(q) a 6 n-matrix mapping ξ = v0 n ω 0 0,n = J(q) d dt q = [ J 1 (q), J 2 (q),..., J n (q) ] q 1. q n c Anton Shiriaev. 5EL158: Lecture 7 p. 17/??
Assigning Joint Velocities The manipulator Jacobian J(q) a 6 n-matrix mapping ξ = v0 n ω 0 0,n = J(q) d dt q = [ J 1 (q), J 2 (q),..., J n (q) ] When the Jacobian is square, we can invert it q 1. q n q = J 1 (q)ξ des c Anton Shiriaev. 5EL158: Lecture 7 p. 17/??
Assigning Joint Velocities The manipulator Jacobian J(q) a 6 n-matrix mapping ξ = v0 n ω 0 0,n = J(q) d dt q = [ J 1 (q), J 2 (q),..., J n (q) ] When the Jacobian is square, we can invert it q 1. q n q = J 1 (q)ξ des When n > 6 there are many solutions, but them can be found q = J + (q)ξ des + ( I J + J ) b, b R n where J + = J T (JJ T ) 1 c Anton Shiriaev. 5EL158: Lecture 7 p. 17/??
Manipulability Suppose that we restricted possible joint velocities of n-degree of freedom robot q 2 = q1 2 + + qn 2 1 c Anton Shiriaev. 5EL158: Lecture 7 p. 18/??
Manipulability Suppose that we restricted possible joint velocities of n-degree of freedom robot q 2 = q1 2 + + qn 2 1 Then we restricted possible body velocities by ξ T P(q a )ξ = ξ T ( J(q a )J T (q a ) ) 1 ξ = ( J + (q a )ξ ) T J + (q a )ξ = q 2 1 c Anton Shiriaev. 5EL158: Lecture 7 p. 18/??
Manipulability Suppose that we restricted possible joint velocities of n-degree of freedom robot q 2 = q1 2 + + qn 2 1 Then we restricted possible body velocities by ξ T P(q a )ξ = ξ T ( J(q a )J T (q a ) ) 1 ξ = ( J + (q a )ξ ) T J + (q a )ξ = q 2 1 The set defined by the inequality is called manipulability ellipsoid It illustrates how easy/difficult to move the end-effector in certain directions from the configuration q a c Anton Shiriaev. 5EL158: Lecture 7 p. 18/??