0% found this document useful (0 votes)
21 views26 pages

Engn4627 Part05

Uploaded by

medhivya.ra
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views26 pages

Engn4627 Part05

Uploaded by

medhivya.ra
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

Velocity Kinematics and Static Force Analysis

Up to this point we have considered only static positioning problems for a robotic manipulator. We now
start to introduce the idea of motion into our analysis.

As a first step we consider the problem of deriving the velocity of the end effector for some arbitrary
manipulator

To do this we will need a thorough understanding kinematic velocity analysis, and the tools involved:
frames, moving frames, time derivatives of vectors, linear and angular velocities and their different rep-
resentations.

What will turn out to be important is the relationship between the velocity in Cartesian space of the end
effector and the velocity of the robot configuration in joint space.

The Jacobian, a matrix of derivatives, will be introduced as the key representation of this relationship

It will turn out that we can also achieve a static force/torque analysis of the manipulator using the
Jacobian, and we will also explore this idea.

Structure of this Section

Thus the structure of the following lecture notes is:

• velocity of a single point


• velocity of a rigid body
• velocity analysis of a robotic manipulator
• the Jacobian
• Singularities
• Static Force Analysis

Velocity of a Point in Space

Consider the a vector Q expressed in frame {B}, ie B Q, that represents the position of a particle in space.

B
Then the velocity of of that particle, VQ , can be determined by taking the time derivative:

1
B
B dB Q(t + δt) −B Q(t)
VQ = Q = lim
dt δt→0 δt

Then clearly,

• The velocity of Q must be measured relative to some frame of reference - in this case frame {B}
B
• If the point is stationary in frame {B} then the derivative of Q in frame B is zero. This is the
velocity of the point relative to {B}.
• If there exists some other frame {A}, then note that we can express the velocity of the point Q
relative to {B} in terms of frame {A}.

Notation

There are three important pieces of information to remember in the calculation of a linear velocity:

1. What is the point of which the velocity is measured.


2. Relative to what frame of reference is the velocity measured.
3. In what frame of reference is velocity expressed.

The notation in Craig attempts to code these three pieces of information

A B d
V Q = A BQ

dt

Here, the linear velocity of the point Q is considered. The velocity is measured relative to the frame of
reference B and is expressed in the frame of reference A.

A B dB
VQ =A

BR Q
dt
where the right-hand-side may be explicitly calculated
 T
dB d B
 d B
 d B

Q= QX , QY , QZ
dt dt dt dt

The notation A B

V Q is cumbersome and unwieldy. In most situations one of the superscripts is dropped.

Unfortunately, the superscript that is most natural to drop is the inner superscript, referring to which
frame of reference the velocity is measured relative to.

2
Thus, one writes A V Q where the fact that the velocity VQ is measured relative to frame {B}

A dB
VQ =A
BR Q
dt
is understood from context.

Be careful of this notation as it is liable to cause considerable confusion.

Almost always, the velocity considered is the inertial velocity of the point considered. Thus, almost
always you should read
A d0
VQ =A 0R Q
dt
where {0} is the inertial frame.

Velocities of a frame of reference (of a rigid body)

Now let us determine the motion (velocity) of a rigid body. The first step is to attach a frame to the
body.

B
Consider a point P on a rigid body whose position is given by P , where B is the rigid-body-attached
frame.

Assume we have an inertial frame A. Then

A dA
VP = P
dt
d
= (A PBorg + A B
BR P )
dt
d d
= A PBorg + A RB P
dt dt B
dB d
= A VBorg + A
BR P + (A R)B P
dt dt B
= A VBorg + A B A A B
B R VP + ( Ω B × B R P )

where:

A
• VBorg is the velocity of origin of B with respect to A.
A B
• B R VP is the velocity of P wrt. B expressed in A.
A
• ΩB × A B
B R P is the velocity of P wrt. A due to the rotational velocity of B wrt. A.

Angular velocity.

3
We have introduced A ΩB , but what is it?

A
ΩB is the angular velocity of a frame {B} with respect to a frame of reference {A}. It can be represented
by a triple of numbers:

A
ΩB = [Ω1 , Ω2 , Ω3 ]T

Its direction represents the instantaneous axis of rotation of frame {B} with respect to a frame {A},
while its magnitude represents the speed of this rotation.

A
ΩB is obviously related to the derivative of the rotation matrix B
A R, and we shall explore this relationship
later.

A
An additional point is that, like any other vector, we can express ΩB wrt. some other frame, say U ,
giving the cumbersome notation by Craig of

U A
( ΩB )

where U is some absolute inertial frame, which leads to Craig introducing the notation

ωB = U Ω B

when the identity of this absolute reference frame is clear.

We have also introduced the cross product in the final term of the equation on the previous slide for
A
V P , and we shall explore why we do this later.

Special Cases

First, lets check the special cases of rigid body motion:

A
• When B is purely translating with respect to A, ΩB × A B A
B R P = 0 since ΩB = 0. Hence

A
V P = A VBorg + A B
B R VP

4
A
• When B is purely rotating with respect to A, then VBorg = 0, and

A
VP =A B A A B
B R VP + ( Ω B × B R P )

A B
• When P is fixed with respect to B (usually the case if P is point on rigid body), then B R VP = 0,
and

A
V P = A VBorg + (A ΩB × A B
BR P )

Summary

We can summarise the results so far as:

• The velocity of a point P is calculated as the time derivative of the position of P .


B
• This derivative must be taken with respect to some frame, say frame B, giving VP
A B
• The velocity vector can be express in terms of another frame, say A, so that we can have ( VP ).
• When a point P is expressed in some frame B, and we wish to calculate its velocity (ie. take the
derivative) with respect to some other frame A, then we get

A
V P = A VBorg + A B A A B
B R VP + ( Ω B × B R P )

• This equation shows that A V P derives from three things

– the linear velocity of P wrt. the origin of B


– the linear velocity of the origin of B wrt. the origin of A
– the rotational velocity of B wrt. A

• the rotational velocity of B wrt. A is given by the angular velocity Ω, which represents both an
axis and magnitude of rotation.

In the following slides we will focus in on the A ΩB × A B


B R P term. We have introduced this term, but
not really explained where it has come from. But first and example.

Example 5.1:

Skew symmetric matrices and the derivative of R

Rotation matrices are elements of the group of orthogonal matrices


SO(3) = {R ∈ <3×3 RT R = I3 , det(R) = 1}

For the case where a frame, say B, is rotating with respect to another, say A, we are interested in a
continuous dynamic change in a rotation matrix.

5
A continuous dynamic change in a rotation matrix is linked to the sequence of skew symmetric matrices.
Why?

RT R = I

d T
R R = 0 = ṘT R + RT Ṙ
dt

Thus,
 T
RT Ṙ = − RT Ṙ =S

is a skew symmetric matrix (a skew symmetric matrix is one where elements a ij = −aji and aii = 0).

Let RT Ṙ = S(t) be a time-varying skew symmetric matrix. Then

Ṙ = RS(t)

This equation is termed the attitude kinematics. It relates a rotation R to its derivative through S.

Intuitively, S must “contain” the information on how R is changing over time.

S as the Angular Velocity Matrix

S is a skew symmetric matrix, and can be written in the form

 
0 −ω3 ω2
S =  ω3 0 −ω1 
−ω2 ω1 0

where we call S the angular velocity matrix.

A
It can be shown (see Craig - Sect. 5.4) by direct differentiation of some rotation matrix B R, that S can
be written in the form

 
0 −kz θ̇ ky θ̇
S =  kz θ̇ 0 −kx θ̇ 
−ky θ̇ kx θ̇ 0

6
where K = [kx , ky , kz ]T is the unit vector passing though the origin of {A} and {B} with a line of action
defining the axis of rotation and where θ̇ gives the magnitude of the rotational velocity.

So S does define the rotational velocity of frame {B} wrt. {A}.

The Angular Velocity Vector Ω

We are interested in deriving the expression A ΩB × A B A


B R P . Recall this was the component of V due to
the rotation of frame {B} wrt. {A}.

If we take the derivative of

A dA
VP = P
dt
d
= (A PBorg + A B
BR P )
dt
d d
= A PBorg + A RB P
dt dt B
dB d
= A VBorg + A
BR P + (A R)B P
dt dt B
d A A −1A
= A VBorg + A B
B R VP + ( R) R P
dt B B
= A VBorg + A B
B R VP + S P
A

= A VBorg + A B A A
B R VP + ( Ω B × P )

= A VBorg + A B A A B
B R VP + ( Ω B × B R P )

Where did Ω come from?

Where did the cross product come from?

A well known property of a skew symmetric matrix is that, if

 
0 −ω3 ω2
S =  ω3 0 −ω1 
−ω2 ω1 0

and

Ω = [ω1 , ω2 , ω3 ]T

7
then, for some vector A P ,

SAP = Ω × AP

where we have seen previously that Ω, say A ΩB , is the angular velocity vector which has a direction
representing the instantaneous axis of rotation of frame {B} with respect to a frame {A}, and a magnitude
representing the speed of this rotation.

Wedge Product

Any skew symmetric matrix Ω (in <3×3 ) may be written


 
0 −ω3 ω2
Ω =  ω3 0 −ω1 
−ω2 ω1 0

Thus, Ω is parameterised by three components


 
ω1
ω =  ω2 
ω3

Notation
Ω = ω∧

Note that    
ω2 v 3 − v 2 ω3 0 −ω3 ω2
ω × v =  ω2 v 1 − ω 1 v 3  =  ω3 0 −ω1  v = ω ∧ v
ω1 v 2 − ω 2 v 1 −ω2 ω1 0

The skew parameterisation ω ∧ is equivalent to the matrix representation of the linear op-
erator associated with the vector cross product.

So you may see A VP written alternatively as:

A
V P = A VBorg + A B A A B
B R VP + ( Ω B ∧ B R P )

Attitude Kinematics Revisited.

8
Recall the attitude kinematics
dA
R=A
B RS(t)
dt B
obtained by differentiating RT R = I3 .

Note that one could also differentiate RRT = I3 to obtain a relation


dA
R = S̄(t)A
BR
dt B

This leads to a relationship


A A T
B RS(t)B R = S̄(t)

• S relates the angular velocity of frame {B} with respect to frame {A} written with respect to frame
{B}.
• Conversely, S̄ relates the angular velocity of frame {B} with respect tot frame {A} written with
respect to frame {A}.

Alternative representations to “Angle-axis” approach: Euler angles

The attitude kinematics may also be expressed in terms of the other representations.

Consider the Z-Y-X Euler angles


A
BR := Rφ Rθ Rψ

The angular velocity of {B} with respect to {A}, expressed in frame {A} is the sum of the components
due to the rotation of each individual Euler angle
A
ΩB = φ̇e3 + θ̇Rφ e2 + ψ̇Rφ Rθ e1 .

• The first term is associated with the rotation φ taken around the ZA ∈ A axis, where ZA is just
the e3 co-ordinate vector.
• The θ rotation occurs around Rφ e2 the rotated version of Y1 . The Y axis of the rotated frame after
the yaw rotation has been applied.
• Finally the roll ψ occurs around the axis Rφ Rθ e1 , the image of XA under the first two rotations

Computing these rotations yields


     
0 −sφ cθ cφ
A
ΩB = φ̇  0  + θ̇  cφ  + ψ̇  cθ sφ 
1 0 sθ
    
0 −sφ cθ cφ φ̇ φ̇
=  0 cφ cθ sφ   θ̇  = W (φ, θ, ψ)  θ̇ 
1 0 −sθ ψ̇ ψ̇

9
From the above we have  
φ̇
 θ̇  = W −1 (φ, θ, ψ)A ΩB .
ψ̇

This equation is termed the attitude kinematics for the Z-Y-X Euler angles. It denotes the rate
of change of the Euler angles given a known angular velocity.

B
The inverse of W is given by
 
0 sψ cψ
B −1 1 
W := 0 c θ cψ −cθ sψ  .
cos(θ)
cθ sθ sψ sθ cψ

Note that
det(W ) = − cos(θ)
π
and thus the Euler angle attitude kinematics are not valid where θ = 2. This singularity is related to
the non-uniqueness of the Euler angle representation.

In the frame {B} the angular velocity is given by


   
φ̇ φ̇
B
ω=B
A RW (φ, θ, ψ)
 θ̇  = B W (φ, θ, ψ)  θ̇ 
ψ̇ ψ̇

where  
−sθ 0 1
B
W (φ, θ, ψ) =  cθ sψ cψ 0 
cθ cψ −sψ 0

Velocity analysis of a manipulator

Now apply the velocity kinematic tools seen thus far to the specific case of a robotics manipulator.

In computing the velocity kinematics of manipulator the aim is to express the velocity of the end effector
with respect to the station or base frame, which is a non-moving, or inertial frame.

The joint velocities θ̇i or d˙i will provide information about the velocity of the frame i with respect to
frame i − 1.

In general, the velocity, d/dt0 P comprises a component due to the inertial velocity of the base frame {A}
(if it is non-zero), a component due to the velocity of {B} relative to {A} (rotational and linear) and the
velocity of B P .

10
In each case the actual velocity vector V of some point on the end effector is a vector that can be expressed
in any of the frames of reference
0
A
VP =A B
BR V P , V P = 0A RA B
BR V P

Note : in order to extend a kinematic model to a dynamic model, velocities must be measured relative
to some inertial frame of reference.

Although the velocity is the inertial velocity - it is often written in the local frame of reference.

Motion of Robot links

Consider the motion of link i relative to link i − 1.

Remember that linear velocity is associated with a point and angular velocity with a body (frame); hence
the linear velocity of a link means the linear velocity of the origin of the link frame and the angular
velocity of a link means the angular velocity of the link frame.

What is the relationship between i Vi ,i ωi and i+1


Vi+1 ,i+1 ωi+1 ?

Lets look at the relative linear and angular velocities that occur between the manipulator’s links.

11
Relative Linear Velocity between Links

Consider the motion of link i relative to link i − 1.

The linear velocity of i is


d i−1 d
i−1
Vi = Pi = i−1 T (di , θi )i Pi
dt dt i

  
c θi −sθi 0 ai−1 0
d  i cαi−1
s θ cθi cαi−1 −sαi−1 −sαi−1 di   0 
=  
dt  sθi sαi−1 cθi sαi−1 cαi−1 cαi−1 di   0 
0 0 0 1 1

    
ai−1 1 0 0 0 0
d  sαi−1 di  = d˙i 
  0 cαi−1 −sαi−1 0   0 
=  
dt  cαi−1 di   0 sαi−1 cαi−1 0  1 
1 0 0 0 1 1

= d˙i Zi

i−1
where i Pi is the position of the origin of frame i in frame i, and i T (di , θi ) is the link i − 1 to i
homogeneous transformation.

i−1
In retrospect this is no surprise since the point P i is fixed for revolute joints and can only move in the
joint axis direction Zi for prismatic joints.

Relative Angular Velocity between Links

Using the geometric insights of above, the angular velocity of link i relative to link i − 1 is given by
i−1
ωi = θ̇i i−1 Z i

So, to summarise, for the two types of joint, either


i−1
Vi = d˙i i−1 Z i , or i−1
ωi = θ̇i i−1 Z i .

The above expressions both relate the kinematic velocity of link i relative to link i − 1. In practice, one
wishes to understand the inertial velocity of link i measured relative to the station frame.

Thus, the velocity of {i} should be calculated relative to {0}.

Inertial linear velocity of link i

12
The inertial velocity of link i measured relative to an inertial frame can be derived from the relative link
velocity (i−1 Vi , i−1 ωi ) and the inertial velocity 0 V i−1 of link i − 1.


Note that velocity components, either linear or angular, sum as long as they are expressed in the same
frame of reference.

A geometric argument gives


i−1 0 i−1
ωi−1 × i−1 P i + i−1 0
Vi−1 + d˙i i−1 Z i
  
Vi =

• The term (i−1 ω i × i−1 P i ) is due to the point i−1 P i rotating around the origin of the frame {i − 1}
with its angular velocity. Note that i−1 ωi−1 is the angular velocity of frame {i − 1} and need not
lie in direction i−1 Z i−1 since it is derived from all the previous rotation movements of the robotic
manipulator.
• The term i−1 0 Vi−1 is the linear velocity of frame {i − 1}.


• The term d˙i i−1 Z i is the linear velocity of frame {i} expressed in frame {i − 1}.
• One of either the first or third terms in this equation will be zero depending on whether the joint
in question is prismatic or revolute.

p 0
To save notation we will write p vq =

Vq to denote the inertial velocity of link q expressed in frame
p. Thus,
i−1 i−1
ω i−1 × i−1 P i + i−1 v i−1 + d˙i i−1 Z i

vi =

Inertial angular velocity of link i

Let
p 0
ωq = p

ωq
denote the inertial angular velocity of link q expressed in frame {p}.

A geometric argument gives


i−1
ω i = i−1 ωi−1 + θ̇i i−1 Z i

This is a direct consequence of summation of angular velocities in frame i − 1.

Iterative solution for velocity of link i

We have seen that the inertial velocities of a link i can be expressed in terms of the inertial velocities of
link i − 1 and the relative velocities of link i wrt. link i − 1.

We are interested in determining the inertial velocity of the end effector, expressed in some frame, usually
the frame attached to the base of the robot (which is usually inertial).

13
This suggests an iterative scheme where we iteratively propagate link velocities, starting from the robot
base, moving one link at a time until we reach the end effector link.

The velocity of link i relative to the inertial base frame {0} can be calculated iteratively as follows:

1. Set 0 ω0 = 0 and 0 v 0 = 0. Thus, the initial reference frame is stationary. Set i = 0.


2. Increment i by one. (The index i takes the values i = 1, . . . , n). Compute the link i velocity in
frame {i − 1} according to the iterative equations,
i−1
ωi = i−1 ω i−1 + θ̇i i−1 Z i
i−1
v i = i−1 v i−1 + (i−1 ωi−1 × i−1 P i ) + d˙i i−1 Z i .

3. If i = n then set
0
ω n = 0n−1 Rn−1 ωn , 0
v n = 0n−1 Rn−1 v n .

Otherwise, transform the computed link velocity from frame {i − 1} to frame {i}
i
ωi = ii−1 R i−1 ωi
i
v i = ii−1 R i−1 v i

and return to step 2).

Example 5.2:

Jacobians

In general a Jacobian is simply a matrix representation of a multi-dimensional derivative.

Let f1 , f2 , . . . fm each be a some differentiable functions mapping <1 → <m

y1 = f1 (x1 , x2 , . . . , xn )
y2 = f2 (x1 , x2 , . . . , xn )
..
.
ym = fm (x1 , x2 , . . . , xn )

Then we can write all the derivatives, ie. of each yi with respect to each xj , as a matrix

 ∂f1 (x) ∂f1 (x)



∂x1 ··· ∂xn

Jf (x) =  .. .. 
. .

 
∂fm (x) ∂fn (x)
∂x1 ··· ∂xn

14
where x = x1 , x2 , . . . , xn , and where Jf (x) is called the Jacobian.

Velocity Jacobian of a Manipulator

Up to this point we have determined methods to derive the linear v and angular ω velocity of the robot
end effector.

We have found that we derive expressions for v and w that include the joint angles/extensions q 1 , q2 , .., qn
and joint rates q˙1 , q˙2 , .., q˙n .

It turns out that we can write down these expressions in a general way as

v = Jp (q1 , . . . qn )q̇
and
ω = Jo (q1 , . . . qn )q̇

where, for a 6-dof manipulator (n = 6):

• v is the (3x1) vector of linear velocities in the x,y and z directions.


• w is the (3x1) vector of angular velocities around the x,y and z directions.
• q̇ = [q˙1 , q˙2 , .., q˙6 ]T , the vector of joint velocities.
• Jp is a jacobian; a (3x6) matrix governing the contribution of joint velocities q̇ to the end effector
linear velocity.
• Jo is also a jacobian; a (3x6) matrix governing the contribution of joint velocities q̇ to the end
effector angular velocity.

The usual approach is to stack these Jacobians on top of one another to form the equation for the
Cartesian velocity V as:

 
v
V= = J(q1 , . . . qn )q̇
ω

where we denote

 
Jp
J=
Jo

15
as the velocity Jacobian

The key point to remember is that the velocity Jacobian is the link between the Cartesian velocity of the
wrist frame and time rate of change of the joint variables (joint velocities).

The force Jacobian is linked to the velocity Jacobian by the principal of conservation of energy.

Things to remember about the Jacobian:

It is a linear mapping, ie. J is a linear function of q1 , . . . , qn

J will change at each new set of q1 , . . . , qn . From a practical point of view this means we need to
recompute (not rederive!) the Jacobian at each new robot configuration.

Computing the Velocity Jacobian of a manipulator

Let the Jacobian J be partitioned into (3x1) column vectors, ie.

 
J p1 . . . J pi . . . J pn
J=
Jo 1 . . . J o i . . . J o n

and we state again that


q̇ = [q˙1 , . . . , q˙i , . . . , q˙n ]T
is the joint velocity vector.

Then the term q˙i Jpi represents the contribution of single joint i to the end-effector linear velocity, while
the term q˙i Joi represents the contribution of single joint i to the end-effector angular velocity.

Then using this fact, we can write down each Jpi and Joi depending on whether joint i is prismatic or
revolute.

More specifically, if joint i is prismatic

0
   
J pi Zi
=
Jo i 0

or if joint i is revolute then

16
0
Zi × ( 0 p − 0 p i )
   
J pi
= 0
Jo i Zi

0
Zi is the unit vector along the joint axis of joint i expressed in the inertial frame.

0
p is the position of the point we are interested in determining the velocity for (the end effector) and 0 pi
is the position of the origin of the ith frame.

Note that given we have the forward kinematic transformations of a manipulator, ie. 0 T1 , 0 T2 , . . . 0 TN ,
we can read off the values for 0 p1 ,0 p2 , . . .0 p as the first three elements of the fourth columns of these
matrices respectively.

The above determination of the Jacobian was on the basis of geometric intuition.

It is also interesting to note that one can derive the Jacobian directly by differentiating the forward
kinematic equations with respect to the joint variables - but we will not do it here :-)

Frames of Reference and the Velocity Jacobians

The velocity Jacobian J(q) must be identified with a frame of reference in which the Cartesian velocity
V finally expressed.

Up to this point we have assumed that the Jacobian is identified with the base frame {0}, ie 0 J(q).

It is possible that we may want to convert the Jacobian to be relevant to another frame, so that our end
effector Cartesian velocity calculations are output with respect to another frame (say the station frame).

First note that a frame transformation on a (6x1) Cartesian velocity vector may be achieved according
to

A A B
    
v BR 0 v
A = A B
ω 0 BR ω

so that

A A
   
v BR 0 B
A = A J(q)q̇
ω 0 BR

17
and so

A
 
A
J(q) = BR 0 B
J(q)
A
0 BR

Example 5.3:

The Jacobian and trajectory tracking

Consider a smooth trajectory a of a robot expressed in Cartesian coordinates of the end effector

a : t 7→ 0n T (t).

The velocity of the end effector is


d0
T (t) = 0n V(t)
dt n

From the velocity Jacobian one has


0
 
0 v n (t)
n V(t) = 0
ωn (t)
= J(q)q̇

Thus, to track the desired trajectory it is sufficient to assign a speed controller to joints to achieve
 0 
ω (t)
q̇ = J −1 (q) 0 n
v n (t)

Hence, in robotics, we are most often interested in the inverse of the Jacobian.

Inverting the velocity Jacobian.

In a typical industrial manipulator there are exactly the same number of active joint variables as degrees
of freedom.

For a full 6DOF manipulator moving in SE(3) then there are 6 active joint variables q = (q 1 , . . . , q6 ).

As a consequence
J(q) ∈ <6×6
is a square matrix and

18
0
 
−1 ω n (t)
q̇ = J (q) 0
v n (t)

= J −1 (q)0 V n (t)

is defined as long as J(q) is invertible.

Dealing with under-actuated manipulators.

If there are insufficient joints actuated, say p < 6 joints, to achieve full 6DOF movement the situation
becomes somewhat more serious.

In this case
J(q) ∈ <p×6
is rank p.

To solve the tracking problem one requires that 0 V n (t) lies in the range space of J(q) in order that
J(q)q̇ = 0 V n (t)
has a solution q̇.

The range space of J(q) = span{colJ(q)} is the subspace of accessible velocities for the manipulator. It
is associated with tangent direction to the manipulator subspace for an under-actuated manipulator.

If the velocity profile desired is derived from differentiating a smooth curve in the forward kinematics
(one that satisfies the manipulator subspace constraints) then the velocity constraint is automatically
satisfied.

Singularities

Even in the case where there are 6 joints for 6DOF robotic manipulator there can be problems in solving
q̇ = J −1 (q)0 V n (t)

This equation cannot be solved if J(q) becomes singular. That is, if the range space of J(q) degenerates
in at least one direction. Denote the degenerate direction of J(q) at a singular point by v, then
T
v J(q)q̇ = 0 = v T 0 V n (t)
for all q̇. Thus, 0 V n (t) must be orthogonal to v. Such points are called singularities of the mechanism.

Singularities are a fundamental part of an actuator mechanism.

19
1. They represent configurations at which the mobility of the mechanism is reduced, ie. it is not
possible to impose an arbitrary motion on the end effector.
2. In the neighbourhood of a singularity, small velocities in the operational space may cause large
velocities in the joint space.

Types of Singularities

1. Workspace boundary singularities: It is clear that the end link of a manipulator cannot be
moved beyond the boundary of its workspace. All boundary points must be singular points of the
manipulator. The singular direction v is the normal to the workspace boundary.
2. Workspace interior singularities: Singularities are also possible within the workspace. They
are usually due to the alignment of two or more joint axes eg. when joint axis 5 on Puma is zero.

Example 5.4:

Locating the singularities of a manipulator

To locate all the singularities of a manipulator

1. Use your physical insight of the manipulator geometry and workspace to identify workspace bound-
ary singularities and interior point singularities.
2. Compute the determinant of the velocity Jacobian and find q such that

det (J(q)) = 0

This equation leads to complicated non-linear equations in q that often cannot be solved in closed-
form. This approach can be used for simple manipulators but is most often used as confirmation
of singularity rather than a means to find singular points.

Trajectory tracking in the vicinity of singularities

Consider a 6DOF manipulator moving within its workspace in SE(3). Let 0 V n (t) be a bounded velocity
profile of a trajectory that passes close to a singularity but does not pass through the singularity.

Thus,
0
V n (t) < B0
for some bound B0 > 0 and
det (J(q)) > 
for  > 0. Note that  may be small.

20
The joint velocities for trajectory tracking are well defined at all points on the trajectory.

q̇ = J −1 (q)0 V n (t)

Due to the inverse in the Jacobian the best general bound on the joint velocities that is possible is
B0
|q̇| ≤


The potentially large values of q̇ generated by the trajectory tracking algorithm may easily violate the
joint motor capabilities. This is a natural consequence of operating close the structural limitations of a
robotic manipulator and one must be careful.

Static Force/Torque Analysis of Manipulators.

Imagine a non-moving manipulator holding a load in its end effector, or pushing against a wall, etc.

We can conduct a “statics” force/torque analysis - ie lock all the joints and calculate the force and torque
that each link must exert on the next for the structure to remain in its locked position.

This statics analysis can be done iteratively according to:

21
Let

fi = force exerted on link i by link i − 1

ni = torque exerted on link i by link i − 1

The static contact force balance equation (ignoring gravitational effects) for link i is
i
f i − i f i+1 = 0.

The static torque balance equation must be computed around a point. The point chosen is the origin of
frame i. Thus, there is a component due to the transmitted torque plus a component due to the linear
force i f i+1 applied at i P i+1
i
ni − i ni+1 − i P i+1 × i f i+1 = 0.


This leads to a coupled pair of iterative equations relating forces and moments applied to link {i + 1} to
forces and moments applied to link {i}.

Iterative algorithms for static contact forces.

Define the generalised force vector as F = (F, N ), where F is the linear force and N is the rotational
torque applied by the origin contact point PT0 of the tool frame.

The generalised force applied at each active joint variable due to a force F = (F, N ) applied at link i can
be calculated iteratively:

1. Set n f n = F and n nn = N . Thus, the initial reference frame is taken as the end effector frame (or
tool frame). This force F = (F, N ) must be specified in frame {n}.
2. Decrement i by one. (The index i takes the values i = n − 1, . . . , 0). Compute the link i force in
frame {i} according to the iterative equations,

i
f i = i f i+1 = ii+1 R i+1

f i+1

i
ni = i ni+1 + i
P i+1 × i f i+1 = ii+1 R i+1 i
P i+1 × i f i+1
  
ni+1 +

3. If the joint is revolute, set


T
τ i = i ni i
Z i = hi e3 , i ni i.

Else the joint is prismatic. Set


T
τi = i f i i
Z i = hi e3 , i f i i.

4. If i > 0 return to step 2). Otherwise end.

Example 5.5:

22
The Force Jacobian

The force Jacobian of a manipulator is defined to be the algebraic mapping between generalised joint
forces (torques or linear forces for revolute or prismatic joint respectively) and the Euclidean forces
applied at the end effector of the robot.

Let F = (F, N ) be the linear force (F ) and rotational torque N applied by the origin contact point P T0 of
the tool frame. Let τ = (τ1 , . . . , τn ) denote the generalised forces at each active joint variable (q1 , . . . , qn ).

τ = JF

Of course F must be expressed with respect to a frame of reference and J must be expressed in the same
frame of reference.

1. The force Jacobian can be computed via an iterative method similar to that used to compute the
velocity Jacobian.
2. The velocity Jacobian of manipulator is also closely linked to the force Jacobian (we explore this
further below).

The static force Jacobian concerns only the components of force and torque due to contact of the manip-
ulator with the external world. Gravitational effects are ignored in the following discussion and must be
pre-computed and compensated for in any control algorithm based on these ideas.

Principal of virtual work and duality of force and velocity.

The principal of virtual work ensures that the ‘infinitesimal’ work done by the end effector in the tool
frame is equal to the total ‘infinitesimal’ work done by the sum of all the active joint variables.

The principal of virtual work yields

hF, δXi = hτ, δqi

where δX denotes an infinitesimal change in the Euclidean position of the end effector of the manipulator
and δq denotes an infinitesimal change in the active joint variables.

Dividing through by δt and limiting one has


δX δq
= nV n, = q̇
δt δt

Thus, the work balance equation from above may be written


0 T0
F V n = τ T q̇

23
where both the force exerted by the end effector and its Euclidean velocity must be expressed in the same
frame of reference. The base frame of reference, {0}, is chosen for the convenience of the subsequent
derivation.

Note: The joint coordinates have only the one representation as a vector of variables. No frame of
reference need be specified.

Velocity Jacobian and the force Jacobian.

Within the workspace of the robot manipulator one has


0
V n = J(q)q̇

from the definition of the velocity Jacobian.

Substituting into the work balance equation one has


0 T
F J(q)q̇ = τ T q̇

and since this is true for all q̇ then


J T (q)0 F = τ

Thus, the force Jacobian


τ = JF
is given by J = J T (q)
τ = J T (q)F.

This is an algebraic expression of the principal of duality of forces and velocities.

Note: The entire discussion undertaken above concerns only contact forces. Forces due to conservative
gravitational effects can be explicitly incorporated into the iterative expression or modelled as a change
in potential energy in the work balance equation.

Instantaneous transformation of velocities between frames of reference

We have been dealing with the Cartesian velocity V of a rigid body, and we noted it is specified in some
particular frame.

If we are interested in expressing V in some other frame, we need a 6x6 transformation to achieve this
mapping.

Consider a rigid-body with two different body-fixed frames {A} and {B} attached. The velocity of frame
{B} relative to frame {A} is zero since the two frames are physically attached to the same rigid body.

24
The velocity of each frame of reference relative to a base frame {0} may be non-zero. Let
X
vY = X 0 V Y , X ωY = X 0 ω Y
 

for X, Y equal to either A or B

Recalling the velocity propagation equations from earlier one has


B A ∧
 B   B  A

vB A R −A R P Borg vA
B = B A
ωB 0 AR
ωA

A ∧
where recall that P Borg will be a skew symmetric matrix - the matrix operator corresponding to the
cross product.

One writes
B
VB = B A
AT v VA

Clearly B
A T v is a function of
B
AT hence this result is only valid if there is no relative motion between
frames A and B.

Alternatively, this result can be viewed as the instantaneous velocity transformation B A T v between two
frames of reference if there is relative motion between them (ie. it is valid for a particular BAT .

Transformation of static forces between frames of reference

Using the principal of virtual work once more one has

hA F , A V A i = h B F , B V B i

since we assume that the two frames {A} and {B} are rigidly fixed together.

B
Thus, using the instantaneous velocity transformation AT v, one obtains

A TA TB TB
F VA = BF VB = BF A
AT v VA

25
It follows that
 A
  ∧ T  B

B
FA AR −B A
A R P B0 FB
A = B B
NA 0 AR NB

 
B T
R 0  B
FB

=  A T
T B T B

A ∧ NB
− P B0 BAR AR

A B
  
BR 0 FB
= A ∧ A A B
P B0 B R BR NB

=A B
BT f FB

A
where BT f is the force-moment transformation.

Summary

Initially looked at velocity kinematics of general rigid bodies with the purpose of applying the tools in
this area to robotic manipulators eg. the 3 components of the velocity of a point in a moving frame.

Looked at deriving the velocity of the end effector of a robotic manipulator as a function of joint rates.
Presented an iterative algorithm to do this velocity calculation - starting at the base and moving up to
the end effector

Introduced the velocity Jacobian as the “mapping” between the Cartesian end effector velocity and joint
velocities. Presented an algorithm to derive a velocity Jacobian.

Introduced the idea of a “static” force-torque analysis of a manipulator - in order to determine joint
torques to be applied by the motors. Introduced an algorithm for determining the force/torques on each
link - starting at the end effector and finishing at the base

Introduced the force Jacobian and investigated its relationship with the velocity Jacobian.

26

You might also like