1/45
Introduction Robotics
dr Dragan Kosti WTB Dynamics and Control September - October 2009
Introduction Robotics, lecture 4 of 7
2/45
Outline
Recapitulation Velocity kinematics Manipulator Jacobian Kinematic singularities Inverse velocity kinematics
Introduction Robotics, lecture 4 of 7
3/45
Recapitulation
Introduction Robotics, lecture 4 of 7
4/45
The general IK problem (1/2)
Given a homogenous transformation matrix HSE(3)
find (multiple) solution(s) q1,,qn to equation
Here, H represents the desired position and orientation of the tip coordinate frame onxnynzn relative to coordinate frame o0x0y0z0 of the base; T0n is product of homogenous transformation matrices relating successive coordinate frames:
Introduction Robotics, lecture 4 of 7
5/45
The general IK problem (2/2)
Since the bottom rows of both T0n and H are equal to [0 0 0 1], equation
gives rise to 4 trivial equations and 12 equations in n unknowns q1,,qn:
Here, Tij and Hij are nontrivial elements of T0n and H.
Introduction Robotics, lecture 4 of 7
6/45
Kinematic decoupling (1/3)
General IK problem is difficult BUT for manipulators having 6 joints with the last 3 joint axes intersecting at one point, it is possible to decouple the general IK problem into two simpler problems: inverse position kinematics and inverse orientation kinematics. IK problem: for given R and o solve 9 rotational and 3 positional equations:
Introduction Robotics, lecture 4 of 7
7/45
Kinematic decoupling (2/3)
Spherical wrist as paradigm.
Let oc be the intersection of the last 3 joint axes; as z3, z4, and z5 intersect at oc, the origins o4 and o5 will always be at oc; the motion of joints 4, 5 and 6 will not change the position of oc; only motions of joints 1, 2 and 3 can influence position of oc.
Introduction Robotics, lecture 4 of 7
8/45
Kinematic decoupling (3/3)
q1, q2, q3
Introduction Robotics, lecture 4 of 7
q4, q5, q6
9/45
Velocity Kinematics
Introduction Robotics, lecture 4 of 7
10/45
Scope
Mathematically, forward kinematics defines a function between the space of joint positions and the space of Cartesian positions and orientations of a robot tip; the velocity kinematics are then determined by the Jacobian of this function. Jacobian is encountered in many aspects of robotic manipulation: in the planning and execution of robot trajectories, in the derivation of the dynamic equations of motion, etc.
Introduction Robotics, lecture 4 of 7
11/45
Angular velocity: the fixed axis case
When a rigid body moves in a pure rotation about a fixed axis, every point of the body moves in a circle; the centers of all these circles lie on the axis of rotation. Let be the angle swept out by the perpendicular from a point to the axis of rotation; if k is a unit vector in the direction of the axis of rotation, then the angular velocity is given by
Given the angular velocity , the linear velocity of any point is where r is a vector from the origin (laying on the axis of rotation) to the point.
Introduction Robotics, lecture 4 of 7
12/45
Skew symmetric matrices
An n n matrix S is skew symmetric if and only if
The set of all such matrices is denoted by so(n). From this definition, we see that the diagonal elements of S are zero, i.e. sii = 0; also, we see that S so(3) contains only 3 independent entries and has the form
Introduction Robotics, lecture 4 of 7
13/45
Properties of skew symmetric matrices
For a vector a=[ax, ay, az]T we define
Introduction Robotics, lecture 4 of 7
14/45
The derivative of a rotation matrix
If R() SO(3), then R()RT () = I. Differentiating both sides w.r.t. yields
Multiplying both sides on the right by R and using the fact that ST = -S, we get d R( ) R T ( ) R( ) SR( ) = 0. d Since R()RT () = I , we obtain:
Introduction Robotics, lecture 4 of 7
15/45
Derivative of Rx, as an example
Hence: Similarly we can get
Introduction Robotics, lecture 4 of 7
16/45
Derivative of Rl,
Let Rl, be a rotation matrix about the axis defined by unit vector l. Then
Introduction Robotics, lecture 4 of 7
17/45
Angular velocity: general case
Consider angular velocity about an arbitrary, possibly moving, axis. Suppose that R(t) SO(3) is a time-dependent rotation matrix. Then
where (t) is the angular velocity of the rotating frame with respect to the fixed frame at time t.
Introduction Robotics, lecture 4 of 7
18/45
Proof that is the angular velocity vector
If p is a point rigidly attached to a moving frame, then
Differentiating, we obtain
Introduction Robotics, lecture 4 of 7
19/45
Addition of angular velocities (1/3)
Let o0x0y0z0, o1x1y1z1, and o2x2y2z2 be three frames such that - o0x0y0z0 is fixed, - all three share a common origin, - R01(t) and R12(t) represent time-varying relative orientations of frames o1x1y1z1 and o2x2y2z2. Also let ki,j denotes the angular velocity vector corresponding to the derivative of Rij, expressed relative to the frame okxkykzk.
Introduction Robotics, lecture 4 of 7
20/45
Addition of angular velocities (2/3)
Introduction Robotics, lecture 4 of 7
21/45
Addition of angular velocities (3/3)
For an arbitrary number of coordinate systems:
Introduction Robotics, lecture 4 of 7
22/45
Linear velocity of a point attached to a moving frame (1/2)
Suppose that p is rigidly attached to the frame o1x1y1z1 and that o1x1y1z1 is rotating relative to the frame o0x0y0z0. Then, we have
Introduction Robotics, lecture 4 of 7
23/45
Linear velocity of a point attached to a moving frame (2/2)
Suppose that the motion of o1x1y1z1 relative to o0x0y0z0 is given by a homogeneous transformation matrix
Dropping the argument t, subscripts and superscripts, we get
where r = Rp1 (vector from o1 to p expressed in the orientation of o0x0y0z0) and is the velocity at which the origin o1 is moving.
Introduction Robotics, lecture 4 of 7
24/45
Manipulator Jacobian
Introduction Robotics, lecture 4 of 7
25/45
Derivation of the Jacobian
Consider an n-link manipulator with joint variables q1, q2, , qn. Let q = [q1, q2, , qn]T. Let the transformation from the end-effector to the base frame be:
Let the angular velocity of the end-effector 0n be
Karl Gustav
Linear velocity of the end-effector is We seek expressions
Introduction Robotics, lecture 4 of 7
Jacob Jacobi (1804-1851)
26/45
The manipulator Jacobian
The manipulator Jacobian:
Karl Gustav Jacob Jacobi (1804-1851)
Introduction Robotics, lecture 4 of 7
27/45
Angular velocity
If the ith joint is revolute: the axis of rotation is given by zi1; let i1i1,i represent the angular velocity of the link i w.r.t. the frame oi1xi1yi1zi1. Then, we have
If the ith joint is prismatic: the motion of frame i relative to frame i-1 is a translation and
Introduction Robotics, lecture 4 of 7
28/45
Overall angular velocity
By using already derived formula
we get
0 1 & 0 & & 0 n 1 0,n = 1q1 z0 + 2 q2 R10 z1 + K + n qn Rn 1 z n 1 =
& 0 & & 0 = 1q1 z0 + 2 q2 z10 + K + n qn z n 1 ,
where
Introduction Robotics, lecture 4 of 7
29/45
Angular velocity Jacobian
The complete Jacobian:
Jacobian for angular velocities:
Introduction Robotics, lecture 4 of 7
30/45
Linear velocity Jacobian
The linear velocity of the end effector is just By the chain rule for differentiation
we find Jacobian for linear velocities
Introduction Robotics, lecture 4 of 7
31/45
Case 1: prismatic joints
Introduction Robotics, lecture 4 of 7
32/45
Case 2: revolute joints
The linear velocity of the end-effector is of form
where
Hence we get
Introduction Robotics, lecture 4 of 7
33/45
Combining the linear and angular velocity Jacobians
The Jacobian is given by
where
and
Introduction Robotics, lecture 4 of 7
34/45
Computation of the Jacobian
We need to compute
The former is equal to the first three elements of the 3rd column of matrix T0i, whereas the latter is equal to the first three elements of the 4th column of the same matrix. Conclusion: it is straightforward to compute the Jacobian once the forward kinematics is worked out.
Introduction Robotics, lecture 4 of 7
35/45
Kinematic singularities
Introduction Robotics, lecture 4 of 7
36/45
Kinematic singularities
The 6n manipulator Jacobian J(q) defines mapping
& = J (q )q
All possible end-effector velocities are linear combinations of the columns Ji of the Jacobian
& & & = J1q1 + J 2 q2 + K + J n qn
The rank of a matrix is the number of linearly independent columns (or rows) in the matrix; for JR6n: R
rank J min(6, n)
The rank of Jacobian depends on the configuration q; at singular configurations, rankJ(q) is less than its maximum value.
Introduction Robotics, lecture 4 of 7
37/45
Properties of kinematic singularities
At singular configurations:
certain directions of end-effector motion may be unattainable, bounded end-effector velocities may correspond to unbounded joint velocities, bounded joint torques may correspond to unbounded end-effector forces and torques.
Singularities correspond to points:
on the boundary of the manipulator workspace, within the manipulator workspace that may be unreachable under small perturbations of the link parameters (e.g. length, offset, etc.).
Introduction Robotics, lecture 4 of 7
38/45
Examples of kinematic singularities (1/2)
Introduction Robotics, lecture 4 of 7
39/45
Examples of kinematic singularities (2/2)
Introduction Robotics, lecture 4 of 7
40/45
Inverse velocity kinematics
Introduction Robotics, lecture 4 of 7
41/45
Inverse velocity problem
The Jacobian kinematic relationship:
The inverse velocity problem is to find joint velocities that produce the desired end-effector velocity. When Jacobian is square (manipulator has 6 joints) and nonsingular, one gets: If the number of joints is not exactly 6, J cannot be inverted; then the inverse velocity problem has a solution (obtained using e.g. Gaussian elimination) if and only if
Introduction Robotics, lecture 4 of 7
42/45
Pseudoinverse of Jacobian
When number of joints n is above 6, the manipulator is kinematically redundant; then, the inverse velocity problem can be solved using the pseudoinverse of J. Suppose that rank J = m and m<n. Then, the right pseudoinverse of J is given by Note that It holds where b Rn is an arbitrary vector. R
Introduction Robotics, lecture 4 of 7
43/45
Computation of pseudoinverse
Take the singular value decomposition of J as
where URmm and VRnn are both orthogonal matrices and R R Rmn is given by R
m
Introduction Robotics, lecture 4 of 7
44/45
Formula for pseudoinverse
The right pseudoinverse of J is
where T
m
Introduction Robotics, lecture 4 of 7
45/45
Measures of kinematic manipulability
Indicate how close is manipulator to a singular configuration. In terms of singular values i of the manipulator Jacobian J, kinematic manipulability is defined by:
= 1 2 L m
In terms of eigenvalues i of J or determinant of J, is given by:
= det JJ = 1 2 L m
Condition number of J is another manipulability measure: max i cond J = ; i = 1,L, m.
Introduction Robotics, lecture 4 of 7
min i