Thanks Mark W. Spong et al for their great work of Robot Modeling and Control.
Thanks Zexiang Li et al for their great work of A Mathematical Introduction to Robotic Manipulation.
Thanks John J. Craig for his great work of Introduction to Robotics - Mechanics and Control - 3rd Edition.
We assume that all the frames mentioned below are right-handed.
End-effector Velocity and Manipulator Jacobian
Let
gst:Q→SE(3)
be the forward kinematics map for a manipulator. If the joints move along a path
θ(t)∈Q
, then the end-effector traverses a path
gst(θ(t))∈SE(3)
. The instantaneous spatial velocity of the endeffector is given by the twist:
Vˆsst=g˙st(θ)g−1st(θ)
By the
chain rule,
Vˆsst=∑t=1n(∂gst∂θiθ˙i)g−1st(θ)=∑t=1n(∂gst∂θig−1st(θ))θ˙i
It can be seen that the end-effector velocity is linearly related to the velocity of the
individual joints. In twist coordinates, the equation above can be written as
Vsst=Jsst(θ)θ˙
where
Jsst(θ)=[(∂gst∂θ1g−1st)∨⋯(∂gst∂θng−1st)∨]
We call the matrix
Jsst(θ)∈R6×n
the
spatial manipulator Jacobian. By utilizing the product of exponential formula, we can obtain a more explicit and elegant formula for
Jsst
. Let
ξ^i∈se(3)
be unit twists,
∂gst∂θig−1st=eξ^1θ1⋯eξ^i−1θi−1(ξ^i)eξ^iθi⋯eξ^nθngst(0)g−1st=eξ^1θ1⋯eξ^i−1θi−1(ξ^i)e−ξ^i−1θi−1⋯e−ξ^1θ1
and converting to twist coordinates,
(∂gst∂θig−1st)∨=Ad(eξ^1θ1⋯eξ^i−1θi−1)ξi
The spatial manipulator Jacobian becomes:
Jsst(θ)=[ξ1,ξ′2,…,ξ′n]ξ′i=Ad(eξ^1θ1⋯eξ^i−1θi−1)ξi
Jsst(θ):Rn→R6
is a configuration-dependent matrix which maps joint velocities to end-effector velocities. Obviously, the contribution of the
i
-th joint velocity to the end-effector velocity is independent of the configuration of later joints in the chain. Thus, the
i
-th column of the spatial Jacobian is the
i
-th
joint twist, transformed to the
current manipulator configuration.
It is also possible to define a body manipulator Jacobian,
Jbst
, which is defined by the relationship
Vbst=Jbst(θ)θ˙
And
Jbst(θ)=[ξ†1,⋯,ξ†n−1,ξ†n]ξ†i=Ad−1(eξ^iθi⋯eξ^nθngst(0))ξi
The columns of
Jbst
correspond to the
joint twists written with respect to the
tool frame at the current configuration. Note that
gst(0)
appears explicitly; choosing
S
such that
gst(0)=I
simplifies the calculation of
Jbst
.
Jsst(θ)=Adgst(θ)Jbst(θ)
The spatial and body manipulator Jacobians can be used to compute the
instantaneous velocity of a point attached to the end-effector.
Let
qb
represent a point attached to the end-effector, written in body (tool) coordinates.
vbq=Vˆbstqb=(Jbst(θ)θ˙)∧qb
vsq=Vˆsstqs=(Jsst(θ)θ˙)∧qs
The relationship between joint velocity and end-effector velocity can be used to move a robot manipulator from one end-effector configuration to another without calculating the inverse kinematics for the manipulator.
Ex 1: SCARA robot
By inspection,
q′1=⎡⎣⎢000⎤⎦⎥,q′1=⎡⎣⎢−l1s1l1c10⎤⎦⎥,q′1=⎡⎣⎢−l1s1−l2s12l1c1+l2c120⎤⎦⎥
are points on the axes. Calculating the associated twists yields
Jsst=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢000001l1c1l1s10001l1c1+l2c12l1s1+l2s120001001000⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥
The next section shows an alternative expression of Manipulator Jacobian.
Geometric Jacobian
Consider a n-link manipulator whose joint variables are
q1,⋯,qn
. Let
T0n=(R0n(q)0o0n(q)1)
denote the transformation from the end-effector frame to the base frame, where
q=(q1,…,qn)T
is the vector of joint variables. As the robot moves about, both the joint variables
qi
and the end-effector position
on0
and orientation
Rn0
will be functions of time.
The objective of this section is to relate the linear and angular velocity of the end-effector to the vector of joint velocities
q˙(t)
.
Define
S(ω0n)=R˙0n(R0n)T,v0n=o˙0n
We would like to formulate the following equations:
v0n=Jvq˙ω0n=Jωq˙
where
Jv
and
Jω
are
3×n
matrices. In a compact form:
ξ=Jq˙,ξ=(v0nω0n),J=(JvJω)
J
is called the
Jacobian matrix that is a
6×n
matrix.
n
is the number of links.
Angular Velocity
We can determine the angular velocity of the end-effector relative to the base by expressing the angular velocity contributed by each joint in the orientation of the base frame and then summing these.
If joint
i
is a rotational joint whose axis is
zi−1
,
qi=θi
. Let
ωi−1i
stand for the angular velocity of joint
i
and link
i
w.r.t. frame
oi−1xi−1yi−1zi−1
, i.e.
ωi−1i=q˙izi−1i−1=q˙ik
where
k=(0,0,1)T
.
The angular velocity of the end-effector w.r.t. the base
ω0n
can be calculate by:
ω0n=ρ1q˙1k+ρ2q˙2R01k+⋯+ρnq˙nR0n−1k=∑i=1nρiq˙iz0i−1
When joint
i
is a rotational joint,
ρi=1
, or
ρi=0
. Then
Jω=(ρ1z0⋯ρnzn−1)
All the
zi
is based on frame
o0x0y0z0
.
Linear Velocity
By the chain rule:
o˙0n=∑i=1n∂o0n∂qiq˙i
.
It is straightforward to see that the
i
column of
Jv
is
Jvi=∂o0n∂qi
Let us discuss two different types of joints separately.
Translational Joints
o˙0n=d˙iR0i−1⎛⎝⎜001⎞⎠⎟=d˙iz0i−1Jvi=zi−1
Rotational Joints
ω=θ˙izi−1r=on−oi−1Jvi=zi−1×(on−oi−1)
Jacobian Matrix
Jv=(Jv1⋯Jvn)Jvi={zi−1×(on−oi−1),zi−1, for rotational joint i for translational joint iJω=(Jω1⋯Jωn)Jωi={zi−1,0 for rotational joint i for translational joint i
To calculate the Jacobian matrix, what we need is no more than the 3rd and 4th column of
T
.
Ex: Consider the two-link planar manipulator
Since both joints are revolute the Jacobian matrix, which in this case is
6×2
, is of the form
J(q)=[z0×(o2−o0)z0z1×(o2−o1)z1]
The various quantities above are easily seen to be
o0=⎡⎣⎢000⎤⎦⎥,o1=⎡⎣⎢a1c1a1s10⎤⎦⎥,o2=⎡⎣⎢a1c1+a2c12a1s1+a2s120⎤⎦⎥
z0=z1=⎡⎣⎢001⎤⎦⎥
Performing the required calculations then yields
J=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢−a1s1−a2s12a1c1+a2c120001−a2s12a2c120001⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥
Changing a Jacobian’s Frame of Reference
Given a Jacobian written in frame
B
, that is
[vBωB]=JB(Θ)Θ˙
we might be interested in giving an expression for the Jacobian in another frame,
A
. Note:
[vAωA]=[RAB00RAB][vBωB]
Hence
JA(Θ)=[RAB00RAB]JB(Θ)
Analytical Jacobian
Analytical Jacobian,
Ja(q)
, is the minimal representation of the end-effector.
Let
X=(d(q)α(q))
stand for the configuration of the end-effector.
d(q)
is the vector from the origin of the base frame to that of the end-effector.
α=[ϕ,θ,ψ]T
is the
Eular-Angular vector whose three partitions are called
nutation,
spin and
precession.
We would like to find an equation of the following form:
X˙(d˙α˙)=Ja(q)q˙
If
R=Rz,ϕRy,θRz,ψ
is an Eular Angular Transformation, it can proved that
R˙=S(ω)R
where the
ω
, which defines the angular velocity, can be referred as:
ω=⎛⎝⎜cψsθsψsθcθ−sψcψ0001⎞⎠⎟⎛⎝⎜⎜ϕ˙θ˙ψ˙⎞⎠⎟⎟=B(α)α˙
Then
J(q)q˙=(vω)=(d˙B(α)α˙)=(I00B(α))(d˙α˙)=(I00B(α))Ja(q)q˙
i.e.
Ja(q)=(I00B−1(α))J(q)
once
detB(α)≠0
.
Singularities
A
6×n
Jacobian
J(q)
defines a mapping from joint velocity
q˙
to end-effector velocity
ξ
, which also means that all the end-effector velocities can be represented by the linear combination of columns of Jacobian:
ξ=J1q˙1+J2q˙2+⋯+Jnq˙n
For
ξ∈R6
, there must be 6 linear independent column vectors (
rankJ=6
) so that the end-effector is able to perform any velocities.
It is straightforward to see that
rankJ≤min(6,n)
for any
J∈R6×n
. The rank of a Jacobian matrix depends on the configuration
q
. If the rank is less than its maximum value, the corresponding configuration is called singularity or singular configuration.
It is important to identify the singularities, since:
- Singularities represent configurations from which certain directions of motion may be unattainable.
- At singularities, bounded end-effector velocities may correspond to unbounded joint velocities.
- At singularities, bounded end-effector forces and torques may correspond to unbounded joint torques.
- Singularities usually (but not always) correspond to points on the boundary of the manipulator workspace, that is, to points of maximum reach of the manipulator.
- Singularities correspond to points in the manipulator workspace that may be unreachable under small perturbations of the link parameters, such as length, offset, etc.
- Near singularities there will not exist a unique solution to the inverse kinematics problem. In such cases there may be no solution or there may be infinitely many solutions.
All manipulators have singularities at the boundary of their workspace, and most have lots of singularities inside their workspace. We can class singularities into two categories:
- Workspace-boundary singularities occur when the manipulator is fully stretched out or folded back on itself in such a way that the end-effector is at or very near the boundary of the workspace.
- Workspace-inside singularities occur away from the boundary of workspace, and are usually generated from two or more collinear joint axes.
There are 3 common singularities for six degree of freedom manipulators:
- Two collinear revolute joints: This type of singularity is common in spherical wrist assemblies that are composed of three mutually orthogonal revolute joints whose axes intersect at a point. In this configuration, rotation about the axis normal to the plane defined by the first and second joints is not possible.
- Three parallel coplanar revolute joint axes: The Jacobian for a six degree of freedom manipulator is singular if there exist three revolute joints which satisfy the following conditions:(see also the figure below)
- The axes are parallel:
ωi=±ωj
for
i,j=1,2,3
.
- The axes are coplanar : there exists a plane with unit normal
n
such that
nTωi=0
and
nT(qi−qj)=0,i,j=1,2,3
.
- Four intersecting revolute joint axes: The Jacobian for a six degree of freedom manipulator is singular if there exist four revolute joint axes that intersect at a point
q
:
ωi×(qi−1)=0,i=1,…,4
.
It is also possible for a manipulator to exhibit different types of singularities at a single configuration. In this case, depending on the number and type of the singularities, the manipulator may lose the ability to move in several different directions at once.
Decoupling of Singularities
We can decouple the determination of singular configurations, for those manipulators with spherical wrists, into two simpler problems. The first is to determine so-called arm singularities, that is, singularities resulting from motion of the arm, which consists of the first three or more links, while the second is to determine the wrist singularities resulting from motion of the spherical wrist.
Suppose that
n=6
, that is, the manipulator consists of a
3
-DOF arm with a
3
-DOF spherical wrist. In this case the Jacobian is a
6×6
matrix and a configuration q is singular if and only if
detJ(q)=0
If we now partition the Jacobian
J
into
3×3
blocks as
J=[JPJO]=[J11J21J12J22]
then, since the final three joints are always revolute
JO=[z3×(o6−o3)z3z4×(o6−o4)z4z5×(o6−o5)z5]
If we choose the coordinate frames so that
o3=o4=o5=o6=o
(spherical wrist), then
J12=0
. Furthermore,
detJ=detJ11detJ22
J11
has
i
-th column
zi−1×(o−oi−1)
if joint
i
is revolute, and
zi−1
if joint
i
is prismatic, while
J22=[z3,z4,z5]
. Note that this form of the Jacobian does not necessarily give the correct relation between the velocity of the end-effector and the joint velocities.