Lecture 7: Kinematics: Velocity Kinematics - the Jacobian · Lecture 7: Kinematics: Velocity...
Transcript of Lecture 7: Kinematics: Velocity Kinematics - the Jacobian · Lecture 7: Kinematics: Velocity...
Lecture 7: Kinematics: Velocity Kinematics - the Jacobian
• Manipulator Jacobian
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 1/??
Lecture 7: Kinematics: Velocity Kinematics - the Jacobian
• Manipulator Jacobian
• Analytical Jacobian
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 1/??
Lecture 7: Kinematics: Velocity Kinematics - the Jacobian
• Manipulator Jacobian
• Analytical Jacobian
• Singularities
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 1/??
Lecture 7: Kinematics: Velocity Kinematics - the Jacobian
• Manipulator Jacobian
• Analytical Jacobian
• Singularities
• Inverse Velocity and Manipulability
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 1/??
Concept of the Manipulator Jacobian
Given an n-link manipulator with joint variables q1, . . . , qn• Let T 0
n(q) is the homogeneous transformation between theend-effector and base frames
T 0n(q) =
[
R0n(q) o0
n(q)
0 1
]
, q =[q1, . . . , qn
]T
so that ∀ p with coordinates pn its coordinates in the baseframe are
p0 = R0n p
n + o0n
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 2/??
Concept of the Manipulator Jacobian
Given an n-link manipulator with joint variables q1, . . . , qn• Let T 0
n(q) is the homogeneous transformation between theend-effector and base frames
T 0n(q) =
[
R0n(q) o0
n(q)
0 1
]
, q =[q1, . . . , qn
]T
so that ∀ p with coordinates pn its coordinates in the baseframe are
p0 = R0n p
n + o0n
• As the robot moves, joint variables become functions of time
t → q(t) =[q1(t), . . . , qn(t)
]T
so that
p0(t) = R0n(q(t)) p
n + o0n(q(t))
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 2/??
Concept of the Manipulator Jacobian
• We have already seen how to compute ddtp0(t) from
p0(t) = R0n(q(t)) p
n + o0n(q(t))
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 3/??
Concept of the Manipulator Jacobian
• We have already seen how to compute ddtp0(t) from
p0(t) = R0n(q(t)) p
n + o0n(q(t))
• It is
ddtp0(t) = d
dt
[R0n(q(t))
]pn+ d
dt
[o0n(q(t))
]
= S(ω00,n(t))R
0n(q(t))p
n + v0n(t) = ω0
0,n(t) × r(t) + v0n(t)
with r(t) = p− on(t)
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 3/??
Concept of the Manipulator Jacobian
• We have already seen how to compute ddtp0(t) from
p0(t) = R0n(q(t)) p
n + o0n(q(t))
• It is
ddtp0(t) = d
dt
[R0n(q(t))
]pn+ d
dt
[o0n(q(t))
]
= S(ω00,n(t))R
0n(q(t))p
n + v0n(t) = ω0
0,n(t) × r(t) + v0n(t)
with r(t) = p− on(t)
• Therefore, to compute velocity of any point in theend-effector frame, it suffices to know
◦ an angular velocity ω00,n(t) of the end-effector frame
◦ a linear velocity v0n(t) of the the end-effector frame origin
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 3/??
Concept of the Manipulator Jacobian
Given• an n-link manipulator with joint variables q1, . . . , qn
• its particular motion q(t) =[q1(t), . . . , qn(t)
]T
What do the functions ω00,n(t) and v0
n(t) depend on?
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 4/??
Concept of the Manipulator Jacobian
Given• an n-link manipulator with joint variables q1, . . . , qn
• its particular motion q(t) =[q1(t), . . . , qn(t)
]T
What do the functions ω00,n(t) and v0
n(t) depend on?
It is suggested to search them as
v0n(t) = Jv(q(t))
ddtq(t) ω0
0,n(t) = Jω(q(t))ddtq(t)
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 4/??
Concept of the Manipulator Jacobian
Given• an n-link manipulator with joint variables q1, . . . , qn
• its particular motion q(t) =[q1(t), . . . , qn(t)
]T
What do the functions ω00,n(t) and v0
n(t) depend on?
It is suggested to search them as
v0n(t) = Jv(q(t))
ddtq(t) ω0
0,n(t) = Jω(q(t))ddtq(t)
The 6 × n-matrix function J(·) defined by
ξ(t) =
v0n(t)
ω00,n(t)
= J(q(t)) ddtq(t) =
Jv(q(t))
Jω(q(t))
ddtq(t)
is the manipulator Jacobian; ξ(t) is a vector of body velocitiesc©Anton Shiriaev. 5EL158: Lecture 7 – p. 4/??
Angular Velocity
Given n-moving frames with the same origins as for fixed one
R0n(t) = R0
1(t)R1
2(t) · · ·Rn−1
n (t) ⇒ ddtR0n(t) = S(ω0
0,n(t))R0n(t)
ω00,n(t) = ω0
0,1(t) + ω01,2(t) + ω0
2,3(t) + · · · + ω0n−1,n(t)
= ω00,1 +R0
1ω1
1,2 +R02ω2
2,3 + · · · +R0n−1
ωn−1
n−1,n
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 5/??
Angular Velocity
Given n-moving frames with the same origins as for fixed one
R0n(t) = R0
1(t)R1
2(t) · · ·Rn−1
n (t) ⇒ ddtR0n(t) = S(ω0
0,n(t))R0n(t)
ω00,n(t) = ω0
0,1(t) + ω01,2(t) + ω0
2,3(t) + · · · + ω0n−1,n(t)
= ω00,1 +R0
1ω1
1,2 +R02ω2
2,3 + · · · +R0n−1
ωn−1
n−1,n
If ith-joint is revolute (ρi = 1), then• axis of rotation coincides with zi;
• angular velocity is ωi−1
i−1,i = qi(t) · ~k
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 5/??
Angular Velocity
Given n-moving frames with the same origins as for fixed one
R0n(t) = R0
1(t)R1
2(t) · · ·Rn−1
n (t) ⇒ ddtR0n(t) = S(ω0
0,n(t))R0n(t)
ω00,n(t) = ω0
0,1(t) + ω01,2(t) + ω0
2,3(t) + · · · + ω0n−1,n(t)
= ω00,1 +R0
1ω1
1,2 +R02ω2
2,3 + · · · +R0n−1
ωn−1
n−1,n
If ith-joint is revolute (ρi = 1), then• axis of rotation coincides with zi;
• angular velocity is ωi−1
i−1,i = qi(t) · ~k
If ith-joint is prismatic (ρi = 0), then angular velocity ωi−1
i−1,i = 0
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 5/??
Angular Velocity
Given n-moving frames with the same origins as for fixed one
R0n(t) = R0
1(t)R1
2(t) · · ·Rn−1
n (t) ⇒ ddtR0n(t) = S(ω0
0,n(t))R0n(t)
ω00,n(t) = ω0
0,1(t) + ω01,2(t) + ω0
2,3(t) + · · · + ω0n−1,n(t)
= ω00,1 +R0
1ω1
1,2 +R02ω2
2,3 + · · · +R0n−1
ωn−1
n−1,n
If ith-joint is revolute (ρi = 1), then• axis of rotation coincides with zi;
• angular velocity is ωi−1
i−1,i = qi(t) · ~k
If ith-joint is prismatic (ρi = 0), then angular velocity ωi−1
i−1,i = 0
Therefore
ω00,n(t) = ω0
0,1 +R01ω1
1,2 +R02ω2
2,3 + · · · +R0n−1
ωn−1
n−1,n
= ρ1q1~k + ρ2R01q2~k + · · · + ρnR
0n−1
qn~k
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 5/??
Angular Velocity
Given n-moving frames with the same origins as for fixed one
R0n(t) = R0
1(t)R1
2(t) · · ·Rn−1
n (t) ⇒ ddtR0n(t) = S(ω0
0,n(t))R0n(t)
ω00,n(t) = ω0
0,1(t) + ω01,2(t) + ω0
2,3(t) + · · · + ω0n−1,n(t)
= ω00,1 +R0
1ω1
1,2 +R02ω2
2,3 + · · · +R0n−1
ωn−1
n−1,n
If ith-joint is revolute (ρi = 1), then• axis of rotation coincides with zi;
• angular velocity is ωi−1
i−1,i = qi(t) · ~k
If ith-joint is prismatic (ρi = 0), then angular velocity ωi−1
i−1,i = 0
Therefore
ω00,n(t) = ρ1q1~k + ρ2R
01q2~k + · · · + ρnR
0n−1
qn~k
=
n∑
i=1
ρiqiz0i−1, z0
i−1= R0
i−1~k
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 5/??
Angular Velocity
Given n-moving frames with the same origins as for fixed one
R0n(t) = R0
1(t)R1
2(t) · · ·Rn−1
n (t) ⇒ ddtR0n(t) = S(ω0
0,n(t))R0n(t)
ω00,n(t) = ω0
0,1(t) + ω01,2(t) + ω0
2,3(t) + · · · + ω0n−1,n(t)
= ω00,1 +R0
1ω1
1,2 +R02ω2
2,3 + · · · +R0n−1
ωn−1
n−1,n
If ith-joint is revolute (ρi = 1), then• axis of rotation coincides with zi;
• angular velocity is ωi−1
i−1,i = qi(t) · ~k
If ith-joint is prismatic (ρi = 0), then angular velocity ωi−1
i−1,i = 0
Therefore
ω00,n(t) =
n∑
i=1
ρiqiz0i−1
=[
ρ1z00, ρ2z
01, . . . , ρnz
0n−1
]
q1...qn
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 5/??
Angular Velocity
Given n-moving frames with the same origins as for fixed one
R0n(t) = R0
1(t)R1
2(t) · · ·Rn−1
n (t) ⇒ ddtR0n(t) = S(ω0
0,n(t))R0n(t)
ω00,n(t) = ω0
0,1(t) + ω01,2(t) + ω0
2,3(t) + · · · + ω0n−1,n(t)
= ω00,1 +R0
1ω1
1,2 +R02ω2
2,3 + · · · +R0n−1
ωn−1
n−1,n
If ith-joint is revolute (ρi = 1), then• axis of rotation coincides with zi;
• angular velocity is ωi−1
i−1,i = qi(t) · ~k
If ith-joint is prismatic (ρi = 0), then angular velocity ωi−1
i−1,i = 0
Therefore
ω00,n(t) =
n∑
i=1
ρiqiz0i−1
=[
ρ1z00, ρ2z
01, . . . , ρnz
0n−1
]
︸ ︷︷ ︸
= Jω
q1...qn
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 5/??
Linear Velocity
The linear velocity v0n(t) of the end-effector is
the time-derivative of o0n(t) and v0
n(t) ≡ 0 if q ≡ 0
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 6/??
Linear Velocity
The linear velocity v0n(t) of the end-effector is
the time-derivative of o0n(t) and v0
n(t) ≡ 0 if q ≡ 0
Therefore there are functions Jv1(q, q), . . . , Jvn(q, q) such that
v0n(t) = d
dto0n(t) = Jv1(·)q1 + Jv2(·)q2 + · · · + Jvn
(·)qn
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 6/??
Linear Velocity
The linear velocity v0n(t) of the end-effector is
the time-derivative of o0n(t) and v0
n(t) ≡ 0 if q ≡ 0
Therefore there are functions Jv1(q, q), . . . , Jvn(q, q) such that
v0n(t) = d
dto0n(t) = Jv1(·)q1 + Jv2(·)q2 + · · · + Jvn
(·)qn
=
[∂
∂q1o0n(t)
]
q1 +
[∂
∂q2o0n(t)
]
q2 + · · · +
[∂
∂qno0n(t)
]
qn
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 6/??
Linear Velocity
A prismatic joint i: translation along the zi−1-axis with velocityddtdi when all other joints kept fixed results in
ddto0n(t) = d
dtdi(t)R
0i−1k = d
dtdi(t) z
0i−1
= Jvidi
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 6/??
Linear Velocity
A revolute joint i: rotation along the zi−1-axis with angularvelocity d
dtθizi−1 when all other joints kept fixed results in
ddto0n(t) = ω × r =
[
θzi−1
]
× [on − oi−1] = Jviθi
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 6/??
Linear Velocity
The linear velocity v0n(t) of the end-effector is
the time-derivative of o0n(t) and v0
n(t) ≡ 0 if q ≡ 0
Therefore there are functions Jv1(q, q), . . . , Jvn(q, q) such that
v0n(t) = d
dto0n(t) = Jv1(·)q1 + Jv2(·)q2 + · · · + Jvn
(·)qn
=
[∂
∂q1o0n(t)
]
q1 +
[∂
∂q2o0n(t)
]
q2 + · · · +
[∂
∂qno0n(t)
]
qn
Jvi=
z0i−1, for prismatic joint
z0i−1
×[
o0n − o0
i−1
]
, for revolute joint
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 6/??
Jacobian for Example 3.1
v0n(t)
ω00,n(t)
=
Jv(q(t))
Jω(q(t))
[
q1
q2
]
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 7/??
Jacobian for Example 3.1
v0n(t)
ω00,n(t)
=
Jv1(q(t)) Jv2(q(t))
Jω1(q(t)) Jω2
(q(t))
[
q1
q2
]
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 7/??
Jacobian for Example 3.1
v0n(t)
ω00,n(t)
=
z0 × (o2 − o0) Jv2(q(t))
Jω1(q(t)) Jω2
(q(t))
[
q1
q2
]
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 7/??
Jacobian for Example 3.1
v0n(t)
ω00,n(t)
=
z0 × (o2 − o0) z1 × (o2 − o1)
Jω1(q(t)) Jω2
(q(t))
[
q1
q2
]
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 7/??
Jacobian for Example 3.1
v0n(t)
ω00,n(t)
=
z0 × (o2 − o0) z1 × (o2 − o1)
z0 Jω2
[
q1
q2
]
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 7/??
Jacobian for Example 3.1
v0n(t)
ω00,n(t)
=
z0 × (o2 − o0) z1 × (o2 − o1)
z0 z1
[
q1
q2
]
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 7/??
Jacobian for Example 3.1
zi =
0
0
1
, o0 =
0
0
0
, o1 =
a1c1
a1s1
0
, o2 =
a1c1 + a2c12
a1s1 + a2s12
0
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 7/??
Lecture 7: Kinematics: Velocity Kinematics - the Jacobian
• Manipulator Jacobian
• Analytical Jacobian
• Singularities
• Inverse Velocity and Manipulability
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 8/??
Analytic Jacobian
Given a robot and a homogeneous transformation
T 0n(q) =
[
R0n(q) o0
n(q)
0 1
]
, q =[q1, . . . , qn
]
there are several ways to represent rotational matrix R0n(q), e.g.
R = R(φ, θ, ψ) = Rz,φRy,θRz,ψ
with (φ, θ, ψ) being the Euler angles (ZYZ-parametrization).
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 9/??
Analytic Jacobian
Given a robot and a homogeneous transformation
T 0n(q) =
[
R0n(q) o0
n(q)
0 1
]
, q =[q1, . . . , qn
]
there are several ways to represent rotational matrix R0n(q), e.g.
R = R(φ, θ, ψ) = Rz,φRy,θRz,ψ
with (φ, θ, ψ) being the Euler angles (ZYZ-parametrization).
If the robot moves q = q(t), then ω00,n(t) is defined by
ddtR0n(q(t)) = S(ω0
0,n(t))R0n(q(t))
Angular velocity is function of α(t) = (φ(t), θ(t), ψ(t)), ddtα(t)
ω00,n(t) = B(α(t)) d
dtα(t)
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 9/??
Analytic Jacobian
The equation[
v0n(t)
α(t)
]
= Ja(q)q
defines the so-called analytic Jacobian
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 10/??
Analytic Jacobian
The equation[
v0n(t)
α(t)
]
= Ja(q)q
defines the so-called analytic Jacobian
Both manipulator and analytic Jacobians are closely related
[
v0n(t)
ω00,n(t)
]
= J(q(t)) q(t) =
[
v0n(t)
B(α(t))α(t)
]
=
[
I 0
0 B(α(t))
] [
v0n(t)
α(t)
]
=
[
I 0
0 B(α(t))
]
Ja(q(t)) q(t)
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 10/??
Lecture 7: Kinematics: Velocity Kinematics - the Jacobian
• Manipulator Jacobian
• Analytical Jacobian
• Singularities
• Inverse Velocity and Manipulability
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 11/??
Singularities
The manipulator Jacobian J(q) a 6 × n-matrix mapping
ξ =
v0n
ω00,n
= J(q) ddtq =
Jv(q)
Jω(q)
ddtq
=[J1(q), J2(q), . . . , Jn(q)
]
q1...qn
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 12/??
Singularities
The manipulator Jacobian J(q) a 6 × n-matrix mapping
ξ =
v0n
ω00,n
= J(q) ddtq =
Jv(q)
Jω(q)
ddtq
=[J1(q), J2(q), . . . , Jn(q)
]
q1...qn
Since ξ ∈ R6 ⇒ rank
[J1(q), J2(q), . . . , Jn(q)
]≤ 6, ∀ q
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 12/??
Singularities
The manipulator Jacobian J(q) a 6 × n-matrix mapping
ξ =
v0n
ω00,n
= J(q) ddtq =
Jv(q)
Jω(q)
ddtq
=[J1(q), J2(q), . . . , Jn(q)
]
q1...qn
Since ξ ∈ R6 ⇒ rank
[J1(q), J2(q), . . . , Jn(q)
]≤ 6, ∀ q
Configurations qs =[qs1, . . . , qsn
]for which
rank[J1(qs), J2(qs), . . . , Jn(qs)
]
< maxq
{rank
[J1(q), J2(q), . . . , Jn(q)
]}
are called singularc©Anton Shiriaev. 5EL158: Lecture 7 – p. 12/??
Singularities
Identifying manipulator singularities are important:
• Singularities represent configurations from which certaindirection may be unattainable;
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 13/??
Singularities
Identifying manipulator singularities are important:
• Singularities represent configurations from which certaindirection may be unattainable;
• At singularity bounded end-effector velocity ξ maycorrespond to unbounded joint velocities q
ξ1 = J1(q1, q2)q1 + J2(q1, q2)q2
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 13/??
Singularities
Identifying manipulator singularities are important:
• Singularities represent configurations from which certaindirection may be unattainable;
• At singularity bounded end-effector velocity ξ maycorrespond to unbounded joint velocities q
ξ1 = J1(q1, q2)q1 + J2(q1, q2)q2
• Singularities often correspond to points on the boundary ofthe manipulator workspace
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 13/??
Singularities of the elbow manipulator
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 14/??
Singularities of the elbow manipulator
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 15/??
Lecture 7: Kinematics: Velocity Kinematics - the Jacobian
• Manipulator Jacobian
• Analytical Jacobian
• Singularities
• Inverse Velocity and Manipulability
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 16/??
Assigning Joint Velocities
The manipulator Jacobian J(q) a 6 × n-matrix mapping
ξ =
v0n
ω00,n
= J(q) ddtq =
[J1(q), J2(q), . . . , Jn(q)
]
q1...qn
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 17/??
Assigning Joint Velocities
The manipulator Jacobian J(q) a 6 × n-matrix mapping
ξ =
v0n
ω00,n
= J(q) ddtq =
[J1(q), J2(q), . . . , Jn(q)
]
q1...qn
When the Jacobian is square, we can invert it
q = J−1(q)ξdes
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 17/??
Assigning Joint Velocities
The manipulator Jacobian J(q) a 6 × n-matrix mapping
ξ =
v0n
ω00,n
= J(q) ddtq =
[J1(q), J2(q), . . . , Jn(q)
]
q1...qn
When the Jacobian is square, we can invert it
q = J−1(q)ξdes
When n > 6 there are many solutions, but them can be found
q = J+(q)ξdes +(I − J+J
)b, ∀ b ∈ R
n
where J+ = JT (JJT )−1
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 17/??
Manipulability
Suppose that we restricted possible joint velocities of n-degreeof freedom robot
∥∥q
∥∥2
=∥∥q1
∥∥2
+ · · · +∥∥qn
∥∥2
≤ 1
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 18/??
Manipulability
Suppose that we restricted possible joint velocities of n-degreeof freedom robot
∥∥q
∥∥2
=∥∥q1
∥∥2
+ · · · +∥∥qn
∥∥2
≤ 1
Then we restricted possible body velocities by
ξTP (qa)ξ = ξT(J(qa)J
T (qa))−1ξ =
(J+(qa)ξ
)T
J+(qa)ξ
=∥∥q
∥∥2
≤ 1
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 18/??
Manipulability
Suppose that we restricted possible joint velocities of n-degreeof freedom robot
∥∥q
∥∥2
=∥∥q1
∥∥2
+ · · · +∥∥qn
∥∥2
≤ 1
Then we restricted possible body velocities by
ξTP (qa)ξ = ξT(J(qa)J
T (qa))−1ξ =
(J+(qa)ξ
)T
J+(qa)ξ
=∥∥q
∥∥2
≤ 1
The set defined by the inequality is called manipulability ellipsoid
It illustrates how easy/difficult to move the end-effector
in certain directions from the configuration qa
c©Anton Shiriaev. 5EL158: Lecture 7 – p. 18/??