Professional Documents
Culture Documents
Mo RM3
Mo RM3
Mo RM3
.
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Inverse Kinematics
.
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Algebric Solution
Example 1: 3R Planar Robot
P2x = px − a3 cos ψ
(1)
P2y = py − a3 sin ψ
.
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
3R planar: Inverse kinematics
2 + P 2 = a2 + a2 + 2a a [C C + S S ]
P2x 2y 1 2 1 2 1 12 1 12
2 2
= a1 + a2 + 2a1 a2 C2
2 + P 2 − (a2 + a2 )
P2x 2y 1 2
=⇒ C2 =
2a1 a2
Finally, [ ]
P 2 + P 2 − (a2 + a2 )
θ2 = cos−1
2x 2y 1 2
(4)
2a1 a2
Using (2), we get:
P2x = a1 cos θ1 + a2 (cos θ1 cos θ2 − sin θ1 sin θ2 )
Rearranging, we get:
P2x = (a1 + a2 cos θ2 ) cos θ1 − a2 sin θ2 sin θ1
.
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
3R planar: Inverse kinematics
Assume,
m cos ϕ = a1 + a2 cos θ2
(5)
and m sin ϕ = a2 sin θ2
Squaring and adding we get:
m2 = (a1 + a2 cos θ2 )2 + (a2 sin θ2 )2
Or, m2 = a12 + a22 + 2a1 a2 cos θ2
√
=⇒ m = a12 + a22 + 2a1 a2 cos θ2
From (5) m sin ϕ = a2 sin θ2
( )
−1 a2 sin θ2
=⇒ ϕ = sin
m
Thus m and ϕ are known.
( )
−1 P2x
θ1 = cos −ϕ (6)
m
[ ]
2 + P 2 − (a2 + a2 )
P2x
cos−1
2y 1 2
Already obtained, θ2 =
2a1 a2
From, (4) and (6): θ1 + θ2 + θ3 = ψ
=⇒ θ3 = ψ − (θ1 + θ2 )
.
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Discussion on Inverse Solutions
Problems with solution bearing arccos and arcsin
.
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Defining two argument atan or tan−1
.
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Using Transcendental Solution
Equations of the form: a cos θ + b sin θ = c
.
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Kinematic Decoupling
3R
[0 ]−1 [0 ]T
6 = R3 R= R3 R
.
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
The Wrist Solution
q11 q12 q13
Given the end-effector orientation Q ≡ q21 q22 q23 .
q31 q32 q33
which is the 3 × 3 block matrix of the end-effector homegeneous
transformation matrix T.
.
θ3 = a tan(−q32 , − q31 ).
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Differential Motion
Mathematical Definition of a Jacobian J
Let yi = fi (x1 , x2 , x3 , · · · , xj )
∂f1 ∂f1 ∂f1
δy1 = δx1 + δx2 + · · · · · · + δxj
∂x1 ∂x2 ∂xj
∂f2 ∂f1 ∂f2
δy2 = δx1 + δx2 + · · · · · · + δxj
∂x1 ∂x1 ∂xj
..
.
∂fi ∂fi ∂fi
δyi = δx1 + δx2 + · · · · · · + δxj
∂x1 ∂x2 ∂xj
∂f ∂f1 ∂f2
1
∂x1 ∂x2 · · ·
∂xj δx
δy1 ∂f ∂f2 1
δy1
2 ∂f 2
· · ·
δx
∂xj 2
In matrix form as: . =
∂x1 ∂x2
..
. ..
. .. .. .. .
. . . .
δyi ∂fi ∂fi ∂fi δxj
. ···
∂x1 ∂x2 ∂xj
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
The Robot Jacobian
In case of a 6 DoF robot: p
= f (θ1 , θ2 , · · · , θ6 )
˙
ωx θ 1
ωy θ˙2
Robot ˙
ωz
=⇒ 3
θ
vx = Jacobian
θ˙4
J
vy θ˙5
vz θ˙6
Where, ωx , ωy , ωz represents differential motion of the end-effector
about X , Y , and Z , axes respectively of the base frame.
And vx , vy and vz represents the velocities along the base
coordinate axes.
=⇒ ∆θ = J−1 ∆X
The robot is made to move using small incremental steps and the
angle solution is obtained.
ω0 = 0
ω 1 = θ̇1 e1
ω 2 = θ̇1 e1 + θ̇2 e2
..
.
ω n = θ̇1 e1 + θ̇2 e2 +
· · · + θ̇n en
ȯ1 = 0
ȯ2 = ȯ1 + ω 1 × a1
= θ̇1 e1 × a12
..
.
ȯn = θ̇1 e1 × a1,n +
θ̇2 e1 × a2,n + · · · +
θ̇n−1 en−1 × an−1,n
.
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Computing Jacobian J
Using Equations:
ω n = θ̇1 e1 + θ̇2 e2 + · · · + θ̇n en
ȯn = θ̇1 e1 × a1,n + θ̇2 e1 × a2,n + · · · + θ̇n−1 en−1 × an−1,n
[ ] [ ]
Jω e1 e2 ··· en
J= = (8)
Jv e1 × a1e e2 × a2e · · · en × ane 6×n
Differentiating:
ẋ = −l1 S1 θ̇1 − l2 S12 (θ̇1 + θ̇2 )
ẏ = l1 C1 θ̇1 + l2 C12 (θ̇1 + θ̇2 )
[ ]matrix
In [ form as: ][ ]
ẋ −l1 S1 − l2 S12 −l2 S12 θ̇1
=
ẏ l1 C1 + l2 C12 l2 C12 θ̇2
Diff.
Motion =
of EE
[ ] Diff.
Jacobian Motion of
. Joints
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Jacobian of two link manipulator using (8)
Simplified expression for Jacobian is: Jv = [e1 × a1e e2 × a2e ]
where, e1 = e2 = [0 0 1]T
i j k
e2 × a2e = 0 0 1 = i(−l2 S12 ) − j(−l2 C12 )
l2 C12 l2 S12 0
= −l2 S12 i + l2 C12 j
Similarly, e1 × a1e = (−l1 S1 − l2 S12 )i + (l1 C1 + l2 C12 )j
=⇒ θ̇ = J−1 te
.
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Jacobian Inverse
Twist: [te ]6×1 = J6×n θ̇ n×1
=⇒ θ̇ = J−1 te
JT T
n×6 J6×n θ̇ n×1 = Jn×6 [te ]6×1
=⇒ θ̇ = [JT J]−1 JT te
e1 = [0 0 1], e2 = T1 (1 : 3, 3),
e3 = T2 (1 : 3, 3), e4 = T3 (1 : 3, 3),
e5 = T4 (1 : 3, 3), e6 = T5 (1 : 3, 3).
.
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Extracting kinematic parameters
a1e = pe = [px6 py 6 pz6 ] ≡ T6 (1 : 3, 4),
a2e = pe − p1 ≡ T6 (1 : 3, 4) − T1 (1 : 3, 4),
a3e = pe − p2 ≡ T6 (1 : 3, 4) − T2 (1 : 3, 4),
a4e = pe − p3 ≡ T6 (1 : 3, 4) − T3 (1 : 3, 4),
a5e = pe − p4 ≡ T6 (1 : 3, 4) − T4 (1 : 3, 4),
a6e = pe − p5 ≡ T6 (1 : 3, 4) − T5 (1 : 3, 4).
J(1 : 3, 6) = e6 , J(1 : 3, 5) = e5 ,
J(1 : 3, 4) = e4 , J(1 : 3, 3) = e3 ,
J(1 : 3, 2) = e2 , J(1 : 3, 1) = e1 ,
J(4 : 6, 1) = e1 × a1e , J(4 : 6, 2) = e2 × a2e ,
J(4 : 6, 3) = e3 × a3e , J(4 : 6, 4) = e4 × a4e ,
J(4 : 6, 5) = e5 × a5e , J(4 : 6, 6) = e6 × a6e .
Equivalent MATLAB⃝ R
function for this is cross(e6,a6e);
. Note: The order is reverse in case of J!
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Acceleration Analysis
[
]
ωe
Since twist: te = = Jθ̇
ve
Taking derivative:
ṫe = Jθ̈ + J̇θ̇ (9)
[ ]
T T , ω̇ T and v̇T are angular and linear
where, ṫe = ω̇ T
e v̇e e e
accelerations.
weT δx = τ T δθ
[ ]
T T → vector of moments and forces (wrench).
weT = nTe , fe
τ → Joint torques.
δx → End-effector angular and linear displacements.
δθ → Joint displacement.
=⇒ weT J = τ T
Or, τ = JT we
QQT = QT Q = 1 ≡ I3×3
Ω + ΩT = O
Which allows us to
express time derivative
of Q̇ as a function of Q.
0 −ωz ωy
Ω = ωz 0 −ωx
. −ωy ωx 0
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Example: Calculation of Ω for Qz
For R31 ̸= ±1
θ = − sin−1 (R31 )
−1
Or, = π + sin
( (R31 ) )
R32 R33
ψ = atan2 ,
( cos θ cos θ )
Given rotation matrix R21 R11
ϕ = atan2 ,
cos θ cos θ
R11 R12 R13 For R31 = −1
Q = R21 R22 R23 ϕ = anything; 0
R31 R32 R33 θ = π/2
ψ = ϕ + atan2(R12 , R13 )
For R31 = 1
ϕ = anything; 0
θ = −π/2
ψ = −ϕ + atan2(−R12 , −R13 )
.
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Euler Angle (RPY) rates and Angular velocity
Rϕ,θ,ψ = R
z, ϕ Ry , θ Rx, ψ
C ϕC θ C ϕSθSψ − SϕC ψ C ϕSθC ψ + SϕSψ
= SϕC θ SϕSθSψ + C ϕC ψ SϕSθC ψ − C ϕSψ (≡ Q)
−Sθ C θSψ C θC ψ
Using ṘRT ≡ Ω we get:
ṘRT = Ωz + Rz Ωy RT T T
z + Rz Ry Ωx Ry Rz
0 0 0
x = 0 0 −1 ψ̇
Where, Ωx = Ṙx RT
0 1 0
.
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Euler Angle (RPY) rates and Angular velocity
0 0 1 0 −1 0
Ωy = Ṙy RT
y =
0 0 0 θ̇ and Ωz = Ṙz RT
z = 1 0 0 ϕ̇
−1 0 0 0 0 0
Substituting these we get,
0 −1 + Sθ ψ̇ Sϕ Cθ ψ̇ + Cϕ θ̇
Ω = −(−1 + Sθ ψ̇) 0 −Cϕ Cθ ψ̇ + Sϕ θ̇
−(Sϕ Cθ ψ̇ + Cϕ θ̇) −(−Cϕ Cθ ψ̇ + Sϕ θ̇) 0
0 −ωz ωy
≡ ωz 0 −ωx
−ωy ωx 0
.
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
Euler Angle (RPY) rates and Angular velocity
.
. . . . . . . . . . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..