Nothing Special   »   [go: up one dir, main page]

Multibody Simulation: The Jacobian Matrix (A Tool For Analysis)

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

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

You might also like