Robotics 1
Differential kinematics
Prof. Alessandro De Luca
Robotics 1
Differential kinematics
relationship between motion (velocity) in the joint space and motion (linear and angular velocity) in the task (Cartesian) space instantaneous velocity mappings can be obtained through time derivation of the direct kinematics function or geometrically at the differential level
different treatments arise for rotational quantities establish the link between angular velocity and time derivative of a rotation matrix time derivative of the angles in a minimal representation of orientation
2
Robotics 1
Angular velocity of a rigid body
P2 vP2 - vP1 vP2 r23 P3 P1, P2, P3 rigidity constraint on distances among points: r = constant vPi - vPj orthogonal to rij 1 2 3 2-1=3 vP2 - vP1 = 1 r12 vP3 - vP1 = 1 r13 vP3 - vP2 = 2 r23 1 = 2 = . rij = rij
vP1 P1
r12
vP3 - vP1
r13 vP3
vPj = vPi + rij = vPi + S() rij
angular velocity is associated to the whole body (not to a point) if P1 with vP1 = 0: pure rotation (circular trajectories for all points) = 0: pure translation (all points have the same velocity vP)
Robotics 1 3
Linear and angular velocity of the robot end-effector
. 1 = z01 . 2 = z12 . v3 = z2 d3 . n = zn-1n v
. i = zi-1i alternative definitions of the e-e direct kinematics
r = (p,)
T= R p 000 1
v and are vectors, namely elements of vector spaces: they can be obtained as the sum of contributions of the joint velocities (in any order) on the other hand, (and d/dt) is not an element of a vector space: a minimal representation of a sequence of rotations is not obtained by summing the corresponding minimal representations (angles ) in general, d/dt
4
Robotics 1
Finite and infinitesimal translations
finitex, y, z or infinitesimal dx, dy, dz translations (linear displacements) always commute
z y z z y
=
x z y same final position
Robotics 1
Finite rotations do not commute
example z
initial orientation
z X = 90 y x
mathematical fact: is NOT an exact differential form (the integral of over time depends on the integration path!)
x z Z = 90 x
Z = 90
y X = 90 x
z x y different final orientations
Robotics 1
note: finite rotations still commute when made around the same fixed axis
Infinitesimal rotations commute!
infinitesimal rotations dX, dY, dZ around x,y,z axes
1 0 0 0 0 cos X -sin X sin X cos X RX(dX) = 1 0 0 0 0 1 -dX dX 1 d Y 0 1
RX(X) =
cos Y 0 sin Y RY(Y) = 0 1 0 -sin Y 0 cos Y cos Z -sin Z RZ(Z) = sin Z cos Z 0 0
RY(dY) =
1 0 0 1 -d Y 0
0
0 1
RZ(dZ) = 1 -dz dY dz 1 -dX -dY dX 1
1 -d Z 0 d Z 1 0 0 0 1
neglecting second- and third-order (infinitesimal) terms
7
R(d) = R(dX, dY, dZ) =
in any sequence
Robotics 1
= I + S(d)
Time derivative of a rotation matrix
let R = R(t) be a rotation matrix, given as a function of time since I = R(t)RT(t), taking the time derivative of both sides yields 0 = d[R(t)RT(t)]/dt = dR(t)/dt RT(t) + R(t) dRT(t)/dt = dR(t)/dt RT(t) + [dR(t)/dt RT(t)]T thus dR(t)/dt RT(t) = S(t) is a skew-symmetric matrix let p(t) = R(t)p a vector (with constant norm) rotated over time comparing dp(t)/dt = dR(t)/dt p = S(t)R(t) p = S(t) p(t) dp(t)/dt = (t) p(t) = S((t)) p(t) we get S = S() .
Robotics 1
p . p
R = S() R
S() = R RT
8
Time derivative of an elementary rotation matrix
RX((t)) = 1 0 0 0 0 cos (t) -sin (t) sin (t) cos (t)
0 0 0 0 - sin - cos 0 cos - sin
0 0 . 0 . - 0 = S() . 0 0
9
Example
. . T RX() R X() =
0 = 0 0
1 0 0 0 cos sin 0 - sin cos
Robotics 1
Time derivative of RPY angles and
RRPY (x, y, z) = RZYX (z, y, x)
the three contributions . . . z, y, x to are simply summed as vectors
TRPY (,) c c -s c s c -s 0 x y 0 0
1 z .
.
.
z = .
.
y y
x x .
RZ(z)RY(y) RZ(z)
1st col in
2nd col in
det TRPY (,) = c = 0 for = /2 (singularity of the RPY representation)
same treatment for the other 11 minimal representations...
Robotics 1 10
Robot Jacobian matrices
analytical Jacobian (obtained by time differentiation)
r= p = fr(q) . r= . fr(q) . p q = Jr(q) q . = q
geometric Jacobian (no derivatives)
v = . p = JL(q) JA(q) . . q = J(q) q
Robotics 1
11
Analytical Jacobian of planar 2R arm
y py l1 l2 q1 px . . . . px = - l1 s1 q1 - l2 s12 (q1 + q2) . . . . py = l1 c1 q1 + l2 c12 (q1 + q2) . . . = z = q1 + q2 Jr(q) = x q2 r
direct kinematics px = l1 c1 + l2 c12 py = l1 s1 + l2 s12 = q1 + q2
- l1 s1 - l2 s12 l1 c1 + l2 c12 1
- l2 s12 l2 c12 1
here, all rotations occur around the same fixed axis z (normal to the plane of motion)
given r, this is a 3 x 2 matrix
12
Robotics 1
Analytical Jacobian of polar robot
pz q3 q2 d1 q1 py direct kinematics (here, r = p) px = q3 c2 c1 py = q3 c2 s1 pz = d1 + q3 s2 fr(q)
px
taking the time derivative
-q3c2s1 -q3s2c1 c2c1 . . . v = p = q3c2c1 -q3s2s1 c2s1 q = Jr(q) q 0 q3c2 s2 fr(q)
Robotics 1
13
Geometric Jacobian
always a 6 x n matrix
end-effector v instantaneous E E velocity
JL(q) JA(q)
. q=
JL1(q) JLn(q) J (q) J (q)
A1 An
. q1 . qn
superposition of effects . . vE = JL1(q) q1 ++ JLn(q) qn . . E = JA1(q) q1 ++ JAn(q) qn
contribution to the linear . e-e velocity due to q1
contribution to the angular . e-e velocity due to q1
linear and angular velocity belong to (linear) vector spaces in R3
Robotics 1 14
Contribution of a prismatic joint
Note: joints beyond the i-th one are considered to be frozen, so that the distal part of the robot is a single rigid body
. . JLi(q) qi = zi-1 di
zi-1
E prismatic i-th joint .
qi = di RF0
. JLi(q) qi . JAi(q) qi
zi-1 di 0
Robotics 1
15
Contribution of a revolute joint
. JLi(q) qi zi-1 Oi-1 qi = . . JAi(q) qi = zi-1 i
pi-1,E
revolute i-th joint . JLi(q) qi . JAi(q) qi
RF0
(zi-1 pi-1,E) i zi-1 i
16
Robotics 1
Expression of geometric Jacobian
(
. p0,E E =) vE E = JL(q) . q= JA(q) prismatic i-th joint JLi(q) JAi(q) zi-1 = JL1(q) JLn(q) J (q) J (q)
A1 An
. q1 . qn
revolute i-th joint
this can be also computed as
zi-1 0
0 0 1
zi-1 pi-1,E zi-1
p0,E qi
0R (q )i-2R (q ) 1 1 i-1 i-1
pi-1,E = p0,E(q1,,qn) - p0,i-1(q1,,qi-1)
Robotics 1
all vectors should be expressed in the same reference frame (here, the base frame RF0)
17
Example: planar 2R arm
y2 y1 y0 l1 x0 z0 = z1 = z2 = 0 0 1 l2 x1 E x2
DENAVIT-HARTENBERG table joint
i 0 0
- s1 c1 0 0 - s12 c12 0 0 0 0 1 0 0 0 1 0
di 0 0
l1c1 l1s1 0 1
ai l1 l2 p0,1
i q1 q2
1 2
c1
0A 1
s1 0 0 c12
p1,E = p0,E - p0,1
J=
z0 p0,E z1 p1,E z0 z1
0A 2
l1c1+ l2c12 l1s1+ l2s12 0 1
s12 0 0
p0,E
Robotics 1
18
Geometric Jacobian of planar 2R arm
y2 y1 y0 l1 x0 note: the Jacobian is here a 62 matrix, thus its maximum rank is 2 = l2 x1
- l1s1- l2s12 l1c1+ l2c12 0 0 0 1 - l2s12 l2c12 0 0 0 1
compare rows 1, 2, and 6 with the analytical Jacobian at slide #12!
x2 J=
z0 p0,E z1 p1,E z0 z1
at most 2 components of the linear/angular end-effector velocity can be independently assigned
Robotics 1
19
Transformations of the Jacobian matrix
RFi Oj
0v
On
the one just computed
n
b) it may be E Oj(q)
rnE
RF0
0 Bv E
0J (q) n
. q
vE = vn + rnE = vn + S(rEn) 0
BR 0
RFB
= =
BR 0
I 0
0 I 0
S(0rEn) I
0v
0
BR (q) 0
0 0J (q) n
S(0rEn(q)) I
a) it may be RFB RFi(q)
Robotics 1
BR (q) 0
. B . q = JE(q) q
never singular!
20
Example: Dexter robot
8R robot manipulator with transmissions by pulleys and steel cables (joints 3 to 8)
lightweight: only 15 kg in motion motors located in second link incremental encoders (homing) kinematic redundancy degree: n-m=2 compliant in the interaction with environment
Robotics 1
21
Mid-frame Jacobian of Dexter robot
the geometric Jacobian 0J8(q) is very complex 4 the mid-frame Jacobian J4(q) is relatively simple!
08
y4 z4 6 rows, 8 columns
x4 04
x0
z0 y0
Robotics 1
22
Summary of differential relations
. p v . . p=v =
. + 1 . + 2
.3 =
. . . . a1 1 + a2(1) 2 + a3(1, 2) 3 = T()
(moving) axes of definition for the sequence of rotations i
r=
J(q) =
0 T()
Jr(q)
Jr(q) =
I 0
0 T-1()
J(q)
T() has always a singularity . R
Robotics 1
singularity of the specific minimal representation of orientation
for each column ri of R (unit vector of a frame), . we have
. R = S() R
ri = ri
23
Acceleration relations (and beyond)
Higher-order differential kinematics
differential relationships between motion in the joint space and motion in the task space can be established at the second order, third order, and so on the analytical Jacobian always weights the highest-order derivative velocity . . r = Jr(q) q .
acceleration jerk snap
.. . .. . r = Jr(q) q + Jr(q) q
matrix function N2(q,q)
. ... .. .. . ... r = Jr(q) q + 2 Jr(q) q + Jr(q) q . . r = Jr(q) q +
matrix function N3(q,q,q)
. ..
the same holds true also for the geometric Jacobian
24
Robotics 1
Primer on linear algebra
given a matrix J: m n (m rows, n columns)
rank (J) = max # of rows or columns that are linearly independent
(J) min(m,n) (if equality holds, J has full rank) if m = n and J has full rank, J is non singular and the inverse J-1 exists (J) = dimension of the largest non singular square submatrix of J
range (J) = vector subspace generated by all possible linear also called image of J combinations of the columns of J (J)={v Rm : Rn, v = J }
dim((J)) = (J) dim((J)) = n - (J)
also called null space of J
kernel (J) = vector subspace of all vectors Rn such that J = 0
(J) + (JT) = Rm e (JT) + (J) = Rn
sum of vector subspaces V1 + V2 = vector space where any element v can be written as v = v1 + v2, with v1 V1 , v2 V2
25
all the above quantities/subspaces can be computed using, e.g., Matlab
Robotics 1
Robot Jacobian
decomposition in linear subspaces and duality
space of joint velocities
J
0 0
space of task (Cartesian) velocities
dual spaces
(J)
(JT) + (J) = Rn
(J)
(J) + (JT) = Rm
dual spaces
(JT)
0
space of joint torques
(JT)
0
space of task (Cartesian) forces
JT
(in a given configuration q)
Robotics 1
26
Mobility analysis
(J) = (J(q)), (J) = (J(q)), (JT)= (JT(q)) are locally defined, i.e., they depend on the current configuration q (J(q)) = subspace of all generalized velocities (with linear and/or angular components) that can be instantaneously realized by the robot end-effector when varying the joint velocities in the configuration q if J(q) has max rank (typically = m) in the configuration q, the robot end-effector can be moved in any direction of the task space Rm if (J(q)) < m, there exist directions in Rm along which the robot endeffector cannot instantaneously move
these directions lie in (JT(q)), namely the complement of (J(q)) to the task space Rm, which is of dimension m - (J(q))
when (J(q)) {0} (this is always the case if m<n, i.e., in robots that are redundant for the task), there exist non-zero joint velocities that produce zero end-effector velocity (self motions)
27
Robotics 1
Kinematic singularities
configurations where the Jacobian loses rank loss of instantaneous mobility of the robot end-effector for m=n, they correspond in general to Cartesian poses that lead to a number of inverse kinematic solutions that differs from the generic case in a singular configuration, one cannot find a joint velocity that realizes a desired end-effector velocity in an arbitrary direction of the task space close to a singularity, large joint velocities may be needed to realize some (even small) velocity of the end-effector finding and analyzing in advance all singularities of a robot helps in avoiding them during trajectory planning and motion control
when m = n: find the configurations q such that det J(q) = 0 when m < n: find the configurations q such that all mm minors of J are singular (or, equivalently, such that det [J(q) JT(q)] = 0)
finding all singular configurations of a robot with a large number of joints, or the actual distance from a singularity, is a hard computational task
Robotics 1
28
Singularities of planar 2R arm
py l1 l2 q1 p q2 direct kinematics px = l1 c1 + l2 c12 py = l1 s1 + l2 s12
px x analytical Jacobian . . - l1s1- l2s12 - l2s12 . p= lc+lc l2c12 q = J(q) q 1 1 2 12
det J(q) = l1l2s2
singularities: arm is stretched (q2=0) or folded (q2= ) singular configurations correspond here to Cartesian points on the boundaries of the workspace in general, these singularities separate regions in the joint space with distinct inverse kinematic solutions (e.g., elbow up or down)
29
Robotics 1
Singularities of polar (RRP) arm
pz q3 q2 d1 px q1 det J(q) = q32 c2
direct kinematics px = q3 c2 c1 py = q3 c2 s1 py . p= pz = d1 + q3 s2 analytical Jacobian -q3s1c2 -q3c1s2 c1c2 q3c1c2 -q3s1s2 s1c2 0 q3c2 s2
. . q = J(q) q
singularities: third link is fully retracted (q3=0, double singularity rank J drops to 1) or E-E is along the z axis (q2= /2, simple singularity rank J = 2); if both events happen together, rank J =1 all singular configurations correspond here to Cartesian points internal to the workspace (supposing no limits for the prismatic joint)
30
Robotics 1
Singularities of robots with spherical wrist
n = 6, last three joint axes are revolute and intersect at a point without loss of generality, we can set O6 = W = center of spherical wrist (i.e, choose d6 = 0 in the DH table) J(q) = J11 J21 0 J22
inversion of J is simpler (block triangular structure) since det J(q1,,q5) = det J11 det J22 , there is a decoupling property
det J11(q1,,q3) = 0 provides the arm singularities det J22(q4,q5) = 0 provides the wrist singularities
being J22 = [z3 z4 z5] (in the geometric Jacobian), wrist singularities correspond to situations where z3 z4 z5 are linearly dependent vectors q5 = 0 or q5 = /2 the determinant of J will never depend on q1: why?
31
Robotics 1