Multibody simulation
The Jacobian matrix (a tool for analysis)
Dimitar Dimitrov
Örebro University
September 30, 2011
Main points covered
system of linear equations
null space of a matrix
kinematic singularity
redundancy
statics
inverse geometric model (numerical solution)
1 / 19
Geometric and kinematic models
So far, we have established a
geometric model
p
= f (q),
orientation
it relates the generalized position coordinates q to the posture of a
frame that could be fixed in any of the rigid bodies of the system.
kinematic model
v
ξ= = J (q)q̇
ω
relates the generalized velocity coordinates q̇ to (v, ω) of a frame that
could be fixed in any of the rigid bodies of the system.
In Greek, “κινειν” (kinein) means to move. Kinematics describes the
motion of objects without considering the cause for the motion (i.e., the
forces).
2 / 19
Even though we still have not formulated the equations of motion for a
robotic manipulator, by inspecting the kinematics model, we are able to
reveal many of the system’s characteristics.
One of the most important quantities (for the purpose of analysis) is the
Jacobian matrix J. It reveals many of the properties of a system and can
be used for
the formulation of the equations of motion
analysis of “special” system configurations
static analysis
motion planning, etc.
In the previous lecture, we discussed how to form the Jacobian matrix.
Here, we will examine some of its important applications in robotics.
3 / 19
Inverse kinematics
We already noticed that
ξ = J (q)q̇
is a linear equation from q̇ to ξ. In many cases, we are interested in
finding what joint velocities q̇ result in given (desired) end-effector
velocities. We call this: inverse kinematics problem. Solving it amounts
to solving a system of linear equations.
Interpretation
The row-size of J gives the number of equations. In our case these
can be interpreted as the number of tasks.
The column-size gives the number of unknowns (variables). In our
case these are the number of DoF of the manipulator.
We will assume that J ∈ Rm×n with m ≤ n, i.e., the number of DoF is
larger or equal to the number of tasks (constraints) to be satisfied.
4 / 19
Case 1: J q̇ = ξ (m = n)
A square system of linear equations can have
unique solution
no solutions
infinitely many solutions
If the columns of a matrix J form a basis for Rn , we say that it is
nonsingular. The following statements are equivalent
the columns (and thus rows) of J form a basis for Rn
det(J ) 6= 0
R(J ) = Rn
N (J ) = {0}
J q̇ = ξ has a unique solution q̇ for all ξ ∈ Rn
J has (left and right) inverse, denoted by J −1
J J −1 = J −1 J = I.
5 / 19
Case 1: (singularity)
When the system has no solutions or infinitely many solutions, we say
that the system is singular.
Question
Why do we put such different cases under the same label “singular”?
Answer
By only analyzing J we can not distinguish the cases with no, or infinitely
many solutions. For that purpose we need the right-hand-side vector b.
Example
1 2 x
= b.
3 6 y
| {z }
A
Clearly det(A) = 0. For b = (3, 2) there is no solution, while for
b = (3, 9), there are infinitely many solutions.
6 / 19
Case 2: J q̇ = ξ (m < n)
A rectangular system of linear equations can have
no solutions (when ξ ∈ / R(J ))
infinitely many solutions
A solution (when it exists) can be generated as follows
solve J q̇ p = ξ (q̇ p is called a particular solution)
solve J q̇ h = 0 (q̇ h is called a homogeneous solution)
the general solution is given by q̇ = q̇ p + q̇ h
Recall that the space of all solutions to J q̇ h = 0 is called the null space
of J . The following equalities are satisfied
J q̇ p = J q̇ p + J q̇ h = J (q̇ p + q̇ h ) = J q̇ = ξ.
Note that if J is square and full rank, only the trivial solution q̇ h = 0
satisfies the homogeneous equation, i.e., N (J ) = {0}.
7 / 19
Case 2 (example)
6
x2
5
2 x with least Euclidean norm
0 x1
{x
−1 :A
x=
y}
x1
−2 1 2 =4
x2
−3 N (A)
−4
−4 −2 0 2 4 6
8 / 19
Kinematic singularity
Inverse kinematics
In many cases, we want to control directly the Cartesian velocities of an
end-link. Hence, we need to compute what are the joint velocities that
produce desired Cartesian velocities ξ.
Question
Can we obtain an arbitrary ξ everywhere in the workspace of the
manipulator?
Answering the above question requires to check whether ξ = J(q)q̇ has
a solution for arbitrary q and ξ. If rank(J ) = m, we are guaranteed to
have a solution
if m = n the solution will be unique
if m < n there will be infinitely many solutions
Hence, we need to check whether there are manipulator configurations
for which rank(A) < m.
9 / 19
Example (2 DoF planar manipulator)
We already know that the Jacobian matrix of a 2 DoF planar manipulator
(with revolute joints) is given by
−l1 sin q1 − l2 sin(q1 + q2 ) −l2 sin(q1 + q2 )
J=
l1 cos q1 + l2 cos(q1 + q2 ) l2 cos(q1 + q2 )
det(J) = l1 l2 sin q2
When q2 = 0, π, J loses rank. This
means that we would not be able to l2
produce an arbitrary velocity ξ.
y0
When q2 6= 0, π, the unique solution q2 = 0
l1
can be obtained using
q1
q̇ = J −1 ξ. x0
10 / 19
Kinematics singularity (summary)
A configuration where the Jacobian matrix looses rank is called a
singular configuration. In such configurations the mobility of the
system is reduced.
In the neighborhood of a singularity, small Cartesian velocities ξ may
cause large joint velocities q̇. For the above example, using
l1 = l2 = 1, q1 = π/4, q2 = 0.001 leads to
−1.4149 −0.7078
J=
1.4135 0.7064
0.7064 0.7078
J −1 = 1000.
−1.4135 −1.4149
Identifying singular configurations is important for the purposes of
motion planning. Once we know regions where the mobility of the
system is decreased, we can avoid them.
11 / 19
Kinematics redundancy
Consider the equation
J q̇ = ξ, J ∈ Rm×n .
In general, we say that a manipulator is redundant if m < n. Or in other
words, the number of DoF of the robot is larger that the number of
constraints (tasks) to be satisfied.
For example
if the tasks are to produce a desired linear and angular velocities (i.e., 6
constraints), a manipulator with n > 6 is considered to be redundant
A word of caution
it is possible that a redundant manipulator is in a singular configuration,
where ξ 6∈ R(J ) (can you give an example of such a case?)
Degree of redundancy
we call the dimension of N (J ) degree of redundancy
12 / 19
The general solution of J q̇ = ξ can be expressed A common choice for q̇ p is
as q̇ = q̇ p + q̇ h , where q̇ p and q̇ h satisfy
q̇ p = J † ξ,
J q̇ p = ξ
J q̇ h = 0 J † is the pseudoinverse of J
Interpretation of J † ξ
J † ξ is the vector with smallest Euclidean norm that satisfies J q̇ = ξ
General solution of J q̇ = ξ (again)
q̇ = J † ξ + N (q)ζ,
where the columns of the matrix N (q) form a basis for N (J (q)), and ζ
is an arbitrary vector (of appropriate dimensions)
Since ζ is defined as an arbitrary vector, it can be utilized to satisfy
additional criteria. For example, maximizing distance from mechanical
joint limits (or obstacles) during the motion.
13 / 19
Example (self-motion of a 4 DoF planar system)
1 2 3
li = 1 3 3 3
0.76 2 2 2
0.90 1 1 1
q1 =
0.69
0 0 0
1.19 −2 −1 0 1 2 −2 −1 0 1 2 −2 −1 0 1 2
1.81 4 5 6
3 3 3
2.06
q9 =
−1.70
2 2 2
1 1 1
−1.16
0 0 0
pe = (−1, 2)
−2 −1 0 1 2 −2 −1 0 1 2 −2 −1 0 1 2
v e = (0, 0) desired 7 8 9
3 3 3
Joint velocities 2 2 2
1 1 1
q̇ = N (q)ζ
0 0 0
ζ = (−1, . . . , −1) −2 −1 0 1 2 −2 −1 0 1 2 −2 −1 0 1 2
14 / 19
Static forces
Consider a manipulator system at rest (q̇ = 0). Let f e ∈ R3 and te ∈ R3
be forces and torques acting at the end-effector (possibly due to contact
with the environment).
The goal of statics is to determine the relation between f e , te and the
forces/torques τ that have to be applied in the manipulator joints (by
motors) so that the manipulator remains stationary (q̇ = 0).
What is torque?
Loosely speaking, torque is a tendency of a force to rotate an object. We
can think of torque as a “turning force”.
Given a force f applied at a point r (both expressed in a common frame
{A}), the torque t about the origin of {A} is given by
t = r × f.
15 / 19
z z
t r f t r f
τ = tT z
y y
{A} {A}
x x
t=r×f τ = tT z = z · (r × f )
torque t (about the origin of {A}) torque τ at a joint with (unit) axis
as a result of a force f acting at of rotation z as a result of a force f
point r acting at point r
16 / 19
Given (for i = 1, . . . , 3)
ki - axis of rotation of Ji
pe
r i - vector from Ji to pe
(f e , te ) - force & torque (f e , te )
acting at the end-effector
r3
all vectors are expressed in the
world frame (not depicted)
r1 r2 J3
Problem
Find the joint torques τ that
would produce (−f e , −te ) at
the end-effector?
the torque at the ith joint as a
J2
result of (f e , te ) is given by
τi = ki · (r i × f e ) + ki · te J1
17 / 19
By using the “triple product rule” a · (b × c) = (a × b) · c, we can
represent τi = ki · (r i × f e ) + ki · te as
T T
fe
τi = (ki × r i ) ki .
te
Note that (ki × ri )T kTi is the ith column of J transposed
J Ti = (ki × ri )T kTi .
Static relation Kinematic relation
fe ve
τ = J (q)T = J (q)q̇
ne ωe
Applying joint torques −τ (computed from the static relation) would
counterbalance the (f e , te ) acting at the end-effector, and the
manipulator would remain stationary (q̇ = 0).
18 / 19
Inverse geometric model (IGM) - numerical solution
Given IGM for Cartesian position
initial configuration q (0)
desired end-effector position pdes f (q (0) )
error tolerance ǫ, α, β, set i → 0
Recursion (do while kck > ǫ) β αc
(i) q3
solve the FGM pe = f (q (i) )
(i)
compute c = pdes − pe
solve f (q (1) )
J (q (i) )q̇ = αc,
y
where α > 0 is a scaling factor q2 pdes
update the joint angles using
q (i+1) = q (i) + β q̇,
where β > 0 is a scaling factor
q1
set i → i + 1 x
19 / 19