You are on page 1of 31

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