Mce647 4 Hand

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

MCE/EEC 647/747: Robot Dynamics and Control

Lecture 4: Velocity Kinematics

Jacobian and Singularities


Torque/Force Relationship
Inverse Velocity Problem

Reading: SHV Chapter 4

Mechanical Engineering

Hanz Richter, PhD


MCE503 – p.1/16

Angular Velocity as a Vector

wk

A point belonging to a rigid body may


undergo pure rotational motion about a
fixed axis (given by vector k). Then the
trajectory of the point is a circle. If θ̇ is
the rate of rotation, the angular velocity
vector is
w = θ̇k θ

If a point belonging to the same body r


has position vector r, then its linear ve-
locity is given by

v =w×r
v =w×r

MCE503 – p.2/16
Skew Symmetric Matrices

A skew symmetric matrix S is defined by the property

S + ST = 0

For this to occur, the diagonal elements must be zero and we must have
sij = −sji
The set of all 3-by-3 skew symmetric matrices is called so(3). To each
vector a = [ax , ay , az ] ∈ R3 we associate a matrix S(a) ∈ so(3) of the
form  
0 −az ay
 
S(a) =  az 0 −ax 
 
 
−ay ax 0

MCE503 – p.3/16

Properties of Skew Symmetric Matrices

SHV lists 4 properties. The most remarkable ones are 2 and 4:

S(a)p = a × p

X T SX = 0

Note that any matrix A can be decomposed as the sum of a symmetric


component and a skew symmetric component. The last property says
that the skew symmetric part does not influence a quadratic function de-
fined using A.

MCE503 – p.4/16
Derivative of Rotation Matrices

It is recommended that you familiarize yourself with basic matrix


calculus. These results are very useful in many areas of engineering. The
Matrix Reference Manual (Imperial College, London) is a very popular
document:
http://www.ee.ic.ac.uk/hp/staff/dmb/matrix/calculus.html
Following the derivations in SHV we see that
dR
= SR(θ)

where S is a skew symmetric matrix (Eq. 4.13). When θ = θ(t), we regard R as
a function of time. So
dR
= S(w)R(t)
dt
The w vector can be uniquely extracted from S recalling the earlier association

between a skew symmetric matrix and a vector. The w vector is actually the

angular velocity, as shown in p.125.


MCE503 – p.5/16

Addition of Angular Velocities

Suppose we have a series of coordinate frames with a fixed, common origin.


The rotation matrices Rji (t) are functions of time, defining the relative
k
orientation of pairs of frames. Let wi,j denote the angular velocity associated
i
with the time derivative of Rj , with components expressed in the coordinate
frame k.
We wish to find the angular velocity of the end effector frame relative to the
world frame, expressed in world frame coordinates. That is, we need to find
0
w0,n . The derivation gives
0 0 n−1
w0,n = w0,1 + R10 w1,2
1
+ R20 w2,3
2 0
+ ... + Rn−1 wn−1,n

that is,
0 0 0 0 0
w0,n = w0,1 + w1,2 + 0w2,3 + ... + wn−1,n

If you think of wi,j as a vector, all we are doing is transforming the various relative

angular velocities to the world frame and superimposing them.

MCE503 – p.6/16
Linear Velocity Formula

Suppose point p is rigidly attached to frame 1, which moves (translation +


rotation) w.r.t. frame 0, according to the homogeneous transformation

P 0 = H10 (t)P 1

Here P = [pT |1]T . A simple derivation shows that the linear velocity of p w.r.t.
the world frame is
ṗ0 = S(w)R10 p1 + ȯ = w × r + v
which is the well-known formula.

Example: We solve Problem 4.15 in class.

MCE503 – p.7/16

The Jacobian

In general, the Jacobian of a differentiable function f : Rm 7→ Rn is an n-by-m


∂fi
matrix J where the entries are the first partial derivatives: Jij = ∂x j
for i = 1..n,
j = 1..m.
A transformation matrix Tn0 (q) is such a function of several variables (exactly
equal to the number of joints) returning a vector of dimension 4 (3D case).
In our case, if we form a vector with all joint velocities q̇, two Jacobians will be
found so that

vn0 = Jv q̇
wn0 = Jw q̇

An overall Jacobian can be formed as J = [JvT |JwT ]T , of dimensions 6-by-n (n is

the number of links).

MCE503 – p.8/16
Jacobian...

As derived in SHV, the Jw rows of J are given as Jw = [ρ1 z0 ρ2 z1 ... ρn zn−1 ]


where ρi = 1 if joint i is revolute and i = 0 if it is prismatic. zi is the axis of
rotation of joint i expressed in the world frame coordinates.
The i−th column of Jv is given as

∂o0n
Jvi =
∂qi

where o0n is the position vector for the origin of the end effector frame, in world
coordinates.

Note that the velocity ȯ0n is obtained by a linear combination of the columns of

Jv where the scalars are the joint velocities (Eq. 4.49). Therefore Jv can be

obtained by taking one joint at a time (assuming the others are not moving) and

assembling the resulting columns into a matrix.

MCE503 – p.9/16

Summary of Formulas for the Jacobian

Please read Section 4.6 in detail.


The upper half of the Jacobian is given as Jv = [Jv1 , ...Jvn ] where the columns
are given by

i−1 × (on − oi−1 ) for revolute joint i
z
Jvi =
zi−1 for prismatic joint i

The lower half is given also in columns by



i−1 for revolute joint i
z
Jvi =
0 for prismatic joint i

MCE503 – p.10/16
Examples

Note: The coordinates of zi w.r.t. the world frame appear as the first
three elements of the third column of Ti0 , while oi appears as the first
three elements of the fourth column. Therefore we need to find only the
third and fourth columns of T .
 4.5, 4.6 in class
 Prob. 4.16 in class
 Homework 2: 4-17

MCE503 – p.11/16

Singularities

For a given configuration q, we can view the Jacobian as a linear


transformation mapping joint velocities q̇ to end-effector velocities
ζ = [v T |wT ]T . The velocity vector is then a linear combination of the
columns of J:
ζ = J1 q̇1 + J2 q̇2 + ... + Jn q̇n
that is, ζ = J(q)q̇.
For 3D manipulators ζ is a 6-vector. A condition on J(q) so that a q̇
exists that results in any desired ζ is that J(q) be full rank. (Please see
Appendix B if needed).
When J(q) loses rank for a particular value of q, we encounter a
singularity.
When the manipulator is in a singular configuration, not all directions of
motion are possible for the end effector. We consider the effect of sin-
gularities in terms of end effector forces and torques later in the course.
MCE503 – p.12/16
Static Torque/Force Relationship

Suppose the end effector is in static equilibrium and subjected to forces


and moments (for example pressing against a part). These forces and
moments will create torques at revolute joints and forces at prismatic
joints. If we organize the end-effector external forces Fi and moments ni
in a vector F = [Fx Fy Fz nx ny nz ] and the resulting joint torques in a
vector τ , the relationship is given by Eq. 4.105 in SHV:

τ = J T (q)F

It is important to note that this relationship is valid only under static equi-
librium. See Example 4.12.

MCE503 – p.13/16

Linear Algebra Facts: Moore-Penrose Pseudoinverse

Suppose J is an m-by-n matrix with m 6= n. Then the linear system of


equations
Jx = a
may or may not have solutions.
 If m 6= n, solutions exist only if vector a is a linear combination of the
columns of J (a in the range space or column space of J, usually
expressed as a ∈ col J.
 To check: a ∈ col J if and only if rank(J)=rank([J|a])
 If m < n and rank(J)=m, JJ T is an m-by-m invertible matrix. We
use this to define
J + = J T (JJ T )−1
called the right pseudoinverse of J, since JJ + = I.
MCE503 – p.14/16
Pseudoinverse...

As an example, we determine the solvability and find one solution to the


system of equations

x+y−z+w = 3
x − y + 2z − w = 8
2x + y + z + 3w = 9

using the Matlab commands rank and pinv

MCE503 – p.15/16

Inverse Velocity Problem

We wish to determine the vector of joint velocities q̇ which results in a


desired end-effector velocity ζ. The Jacobian relationship ζ = J q̇ can be
inverted to give q̇ = J −1 ζ only if J is square and has no singularities.
When the robot has more than 6 joints, J is be non-square. If rank J=6,
we can use the pseudoinverse to find a solution. Direct substitution
shows that
q̇ = J + ζ + (I − J + J)b
is a solution, with b being an arbitrary vector.
Note that any vector of the form (I − J + J)b is such that

J(I − J + J)b = 0

which shows that it is possible to have a zero end-effector velocity with


non-zero joint velocities!
MCE503 – p.16/16

You might also like