Multibody Simulation: The Jacobian Matrix (A Tool For Analysis)
Multibody Simulation: The Jacobian Matrix (A Tool For Analysis)
Multibody Simulation: The Jacobian Matrix (A Tool For Analysis)
Dimitar Dimitrov
Örebro University
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.
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.
3 / 19
Inverse kinematics
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)
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)
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
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?
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)
11 / 19
Kinematics redundancy
Consider the equation
J q̇ = ξ, J ∈ Rm×n .
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̇ = ξ
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)
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
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”.
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?
τ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 .
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