0% found this document useful (0 votes)
27 views22 pages

Xlec 04

This document discusses velocity kinematics for robotic manipulators. It begins by describing angular velocity about a fixed axis and how to calculate the velocity of points on a rigid body undergoing this motion. It then introduces angular velocity about arbitrary axes using skew-symmetric matrices. Properties of these matrices are discussed. The document defines the Jacobian, which relates joint velocities to end-effector linear and angular velocities. It explores aspects of manipulators like singular configurations using the Jacobian.

Uploaded by

tuan vu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views22 pages

Xlec 04

This document discusses velocity kinematics for robotic manipulators. It begins by describing angular velocity about a fixed axis and how to calculate the velocity of points on a rigid body undergoing this motion. It then introduces angular velocity about arbitrary axes using skew-symmetric matrices. Properties of these matrices are discussed. The document defines the Jacobian, which relates joint velocities to end-effector linear and angular velocities. It explores aspects of manipulators like singular configurations using the Jacobian.

Uploaded by

tuan vu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

Ch.

4: Velocity Kinematics

Velocity Kinematics

• We have known how to relate the end-effector position and


orientation to the joint variables
• Now we want to relate end-effector linear and angular velocities with
the joint velocities
• First we will discuss angular velocities about a fixed axis
• Second we discuss angular velocities about arbitrary (moving) axes
• We will then introduce the Jacobian
– Instantaneous transformation between a vector in Rn
representing joint velocities to a vector in R6 representing the
linear and angular velocities of the end-effector
• Finally, we use the Jacobian to discuss aspects of manipulators:
– Singular configurations
– Dynamics
– Joint/end-effector forces and torques
2
1. Angular velocity: fixed axis

• When a rigid body rotates about a fixed axis, every point moves in a
circle
– Let k represent the fixed axis of rotation, then the angular
velocity is:
ω = θk
– The velocity of any point on a
rigid body due to this angular
velocity is:
v =ω×r
– Where r is the vector from the
axis of rotation to the point r
• When a rigid body translates, all
points attached to the body have
the same velocity
3

2. Angular velocity: arbitrary axis

• Skew-symmetric matrices
– Definition: a matrix S is skew symmetric if: S T + S = 0
– i.e. S T = − S
– Let the elements of S be denoted sij, then by definition:
sij = − s ji for i ≠ j
sij = 0 for i = j
– Thus there are only three ⎡ 0 − s3 s2 ⎤
independent entries in a S = ⎢ s3 0 − s1 ⎥
⎢ ⎥
skew symmetric matrix: ⎢⎣ − s2 s1 0 ⎥⎦
– Now we can use S as an operator for a vector a = [ax ay az]T
⎡ 0 −az ay ⎤
⎢ ⎥
S ( a ) = ⎢ az 0 −ax ⎥
⎢−a y ax 0 ⎥⎦
⎣ 4
2. Angular velocity: arbitrary axis

• Example:
– Let i, j, k be defined as follows:
⎡1 ⎤ ⎡0 ⎤ ⎡0⎤
i = ⎢ 0 ⎥ , j = ⎢1 ⎥ , k = ⎢ 0 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢⎣ 0 ⎥⎦ ⎢⎣ 0 ⎥⎦ ⎢⎣1 ⎥⎦

– Then we can define the skew symmetric matrices S(i), S(j), S(k):

⎡0 0 0 ⎤ ⎡ 0 0 1⎤ ⎡ 0 −1 0 ⎤
S ( i ) = 0 0 −1 , S ( j ) = 0 0 0 , S ( k ) = ⎢ 1 0 0 ⎥ ,
⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢⎣ 0 1 0 ⎥⎦ ⎢⎣ −1 0 0 ⎥⎦ ⎢⎣ 0 0 0 ⎥⎦

2. Angular velocity: arbitrary axis

• Properties of skew-symmetric matrices:


1. The operator S is linear
S ( α a + β b ) = α S ( a ) + β S ( b ) , ∀a , b ∈ R 3 , α , β ∈ R
2. The operator S is known as the cross product operator
S ( a ) p = a × p, ∀a,p ∈ R 3
– This can be seen by the definition of the cross product:
⎡ a1 ⎤ ⎡ b1 ⎤ ⎡ a2b3 − a3b2 ⎤
a = ⎢ a2 ⎥ , b = ⎢b2 ⎥ ⇒ a × b = ⎢ a3b1 − a1b3 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢⎣ a3 ⎥⎦ ⎢⎣ b3 ⎥⎦ ⎢⎣ a1b2 − a2b1 ⎥⎦
⎡ 0 − a3 a2 ⎤ ⎡ b1 ⎤ ⎡ a2b3 − a3b2 ⎤
S ( a ) b = ⎢ a3 0 − a1 ⎥ ⎢b2 ⎥ = ⎢ a3b1 − a1b3 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢⎣ − a2 a1 0 ⎥⎦ ⎢⎣ b3 ⎥⎦ ⎢⎣ a1b2 − a2b1 ⎥⎦
6
2. Angular velocity: arbitrary axis

• Properties of skew-symmetric matrices:


3. For R ∈ SO ( 3) , a ∈ R 3
RS ( a ) RT = S ( Ra )
– This can be shown for and R as follows:
R ( a × b ) = Ra × Rb, ∀a,b ∈ R 3 , R ∈ SO ( 3)
– This can be shown by direct calculation. Finally:
(
RS ( a ) RT b = R a × RT b )
(
= ( Ra ) × RRT b )
= ( Ra ) × b
= S ( Ra ) b
4. For any S ∈ so ( n ) , x ∈ R n
xT Sx = 0
7

2. Angular velocity: arbitrary axis

• Derivative of a rotation matrix:


– Let R be an arbitrary rotation matrix which is a function of a single
variable θ
• R(θ)R(θ)T = I
• Differentiating both sides (w/ respect to θ) gives:
⎡ d ⎤ ⎡ d T⎤
⎢⎣ dθ R ⎥⎦ R (θ ) + R (θ ) ⎢⎣ dθ R ⎥⎦ = 0
T

⎡ d ⎤
R ⎥ R (θ )
T
• Now define the matrix S as: S = ⎢
⎣ dθ ⎦
• Then ST is:
T
⎛⎡ d ⎤ T ⎞ ⎡ d T⎤
S =⎜⎢
T
R ⎥ R (θ ) ⎟ = R (θ ) ⎢ R ⎥
⎝ ⎣ dθ ⎦ ⎠ ⎣ dθ ⎦
• Therefore S + ST = 0 and:
dR
= SR (θ )

8
2. Angular velocity: arbitrary axis

• Derivative of a rotation matrix:


– Example 1: Let R = Rx,θ, then using the previous results we have:
⎡0 0 0 ⎤
dR ⎢
= 0 − sin θ − cos θ ⎥
dθ ⎢ ⎥
⎢⎣ 0 cos θ − sin θ ⎥⎦
⎡0 0 0 ⎤ ⎡1 0 0 ⎤ ⎡0 0 0 ⎤
S (i ) R (θ ) = ⎢ 0 0 −1⎥ ⎢ 0 cos θ − sin θ ⎥ = ⎢ 0 − sin θ − cos θ ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎣⎢ 0 1 0 ⎦⎥ ⎢⎣ 0 sin θ cos θ ⎦⎥ ⎣⎢ 0 cos θ − sin θ ⎦⎥

– Example 2: Let Rk,θ be a rotation about the axis k:


dRk ,θ
= S (k ) Rk ,θ

2. Angular velocity: arbitrary axis

• Consider that we have an angular velocity about an arbitrary axis


• Further, let R = R(t). The time derivative of R is:
R ( t ) = S (ω ( t ) ) R ( t )
– Where ω(t) is the angular velocity of the rotating frame.
Consider a point p fixed to a moving frame o1: p = R1 p
0 0 1

d 0 d 0 1
dt
p =
dt
( )
R1 p = R10 p1 + R10 p 1 = R10 p1

= S (ω ( t ) ) R10 p1 = ω ( t ) × R10 p1 = ω ( t ) × p 0

10
4. Addition of angular velocities

• For most manipulators we will want to find the angular velocity of one
frame due to the rotations of multiple frames
– We assume that there are no translational components: all
coordinate frames have coincident origins
– Consider three frames: o0, o1, o2:
R20 ( t ) = R10 ( t ) R21 ( t )
– To illustrate how the rotation of multiple frames is determined by
the rotations of the individual frames, take the derivative of this
rotation matrix:
R 0 = R 0 R1 + R 0 R 1
2 1 2 1 2
=SR 20 ( ) ω0,2
0
R20
– By our previous convention:
R10 R21 = S ω0,1
0
( )
R10 R21 = S ω0,1
0
R20 ( )
– Where ω0,2 is the angular velocity corresponding to a rotation of
0

R20 in the inertial frame


11

4. Addition of angular velocities

• Now the first term can be derived as follows:


( )
R10 R21 = S ω0,1
0
R10 R21 = S ω0,1
0
R20 ( )
– Where ω0,10 is the angular velocity corresponding to a rotation
of R10 in the inertial frame
• The second term is derived using the properties of so(n)
1 2 1 (
R 0 R 1 = R 0 S ω1 R1 1,2 ) 2 from our definition of R

= R S (ω
0
1
1
1,2 )( R )
0 T
1 R10 R21 since R T R = I

= S (R ω
0 1
1 1,2 )R R 0 1
1 2 because RS (a )R T = S (Ra )
= S (R ω
0 1
1 1,2 )R 0
2

• Thus combining these results:


R 20 = S ω0,1
0
( ) (
R20 + S R10ω1,2
1
R20 )
= ⎡ S (ω ) + S ( R ω ) ⎤ R
0 0 1 0
⎣ 0,1 ⎦ 1 1,2 2
12
4. Addition of angular velocities

• ( ) 0
( ) (
Further: S ω0,2 R2 = ⎡⎣ S ω0,1 + S R1 ω1,2 ⎤⎦ R2
0 0 0 1
)
0

• And since S ( a + b ) = S ( a ) + S ( b )
ω0,20
= ω0,1
0
+ R10ω1,2
1

• Therefore angular velocities can be added once they are projected


into the same coordinate frame.
• This can be extended to calculate the angular velocity for an n-link
manipulator:
– Suppose we have an n-link manipulator whose coordinate frames
are related as follows: Rn0 = R10 R21 ⋅⋅⋅ Rnn−1
– Now we want to find the rotation of the nth frame in the inertial
frame:
( )
R n0 = S ω0,0 n Rn0
– We can define the angular velocity of the tool frame in the inertial
frame: ω 0 = ω 0 + R 0ω1 + R 0ω 2 + R 0ω 3 + ... + R 0 ω n−1
0,n 0,1 1 1,2 2 2,3 3 3,4 n −1 n −1,n

= ω0,1
0
+ ω1,2
0
+ ω2,3
0
+ ω3,4
0
+ ... + ωn0−1,n
13

5. Linear velocities

• The linear velocity of any point on a rigid body is the sum of the
linear velocity of the rigid body and the velocity of the particle due to
rotation of the rigid body
– First, the position of a point p attached to a rigid body is:
p 0 = Rp1 + o
– Where o is the origin of the o1 frame expressed in the inertial
frame
– To find the velocity, take the derivative as follows:
p 0 = Rp 1 + Rp 1 + o
= S (ω ) Rp1 + o we assume that p is fixed w/
= ω × Rp1 + v respect to the rigid body

– Where v is the velocity of the rigid body in the inertial frame


– If the point p is moving relative to the rigid body, then we also
need to take this in consideration

14
6. The Jacobian

• Now we are ready to describe the relationship between the joint


velocities and the end-effector velocities.
• Assume that we have an n-link manipulator with joint variables
q1, q2, …, qn
– Our homogeneous transformation matrix that defines the
position and orientation of the end-effector in the inertial frame:
⎡ Rn0 ( q ) on0 ( q ) ⎤
Tno =⎢ ⎥
⎣ 0 1 ⎦
– We can call the angular velocity of the tool frame ω0,n0 and:

( ) ( )
T
S ω0,0 n = R n0 Rn0
– Call the linear velocity of the end-effector:
vn0 = on0

15

6. The Jacobian

• Therefore, we want to come up with the following mappings:


vn0 = J v q
ωn0 = Jω q

– Thus Jv and Jω are 3xn matrices


• We can combine these into the following: ξ = Jq
– where: ⎡ vn0 ⎤
ξ = ⎢ 0⎥
⎣⎢ωn ⎦⎥
⎡J ⎤
J =⎢ v⎥
⎣ Jω ⎦
• J is called the Jacobian
– 6xn where n is the number of joints
16
Deriving Jω

• Remember that each joint i rotates around the axis zi-1


• Thus we can represent the angular velocity of each frame with
respect to the previous frame
– If the ith joint is revolute, this is: ωii−−1,1 i = qi zii−−11 = qi kˆ
– If the ith joint is prismatic, the angular velocity of frame i relative
to frame i-1 is zero
– Thus, based upon our rules of forming the equivalent angular
velocity of the tool frame with respect to the base frame:
ω0,0 n = ω0,1
0
+ R10ω1,2
1
+ R20ω2,3
2
+ R30ω3,4
3
+ ... + Rn0−1ωnn−−1,1 n
= ρ1q1kˆ + ρ 2 q2 R10 kˆ + ρ3q3 R20 kˆ + ρ 4 q4 R30 kˆ + ... + ρ n qn Rn0−1kˆ
– revolute (ρi =1)
n
= ∑ ρi qi zi0−1
i =1 – prismatic (ρi =0)

Jω = ⎡⎣ ρ1 z00 ρ 2 z10 ⋅⋅⋅ ρ n zn0−1 ⎤⎦


17

Deriving Jv

• Linear velocity of the end effector:


n
∂o0
on0 = ∑ n qi
i =1 ∂qi
• Therefore we can simply write the ith column of Jv as:
∂o0
J vi = n
∂qi
• However, the linear velocity of the end effector can be due to the
motion of revolute and/or prismatic joints
• Thus the end-effector velocity is a linear combination of the velocity
due to the motion of each joint
– w/o L.O.G. we can assume all joint velocities are zero other than
the ith joint
– This allows us to examine the end-effector velocity due to the
motion of either a revolute or prismatic joint
18
Deriving Jv

• End-effector velocity due to prismatic joints


– Assume all joints are fixed other than the prismatic joint di
– The motion of the end-effector is pure translation along zi-1
⎡0 ⎤
on0 = di Ri0−1 ⎢ 0 ⎥ = di zi0−1
⎢ ⎥
⎢⎣1 ⎥⎦

– Therefore, we can write the ith


column of the Jacobian:
J vi = zi0−1

19

Deriving Jv

• End-effector velocity due to revolute joints


– Assume all joints are fixed other than the revolute joint θi
– The motion of the end-effector is given by:
o 0 = ω 0 × r = θ z 0 × r
n i −1,i i i −1

– Where the term r is the distance from


the tool frame on to the frame oi-1
on0 = θi zi0−1 × ( on − oi −1 )
– Thus we can write the ith r
column of Jv:
J vi = zi0−1 × ( on − oi −1 )

20
The complete Jacobian

• The ith column of Jv is given by:


⎧ z × ( on − oi −1 ) for i revolute
J vi = ⎨ i −1
⎩ zi −1 for i prismatic

• The ith column of Jω is given by:


⎧z for i revolute
Jωi = ⎨ i −1
⎩ 0 for i prismatic

21

7. Example: two-link planar manipulator

• Calculate J for the following manipulator:


– Two joint angles, thus J is 6x2
⎡ z00 × ( o2 − o0 ) z10 × ( o2 − o1 ) ⎤
J (q) = ⎢ ⎥
⎢⎣ z00 z10 ⎥⎦
– Where:
⎡ − a1s1 − a2 s12 − a2 s12 ⎤
⎢ a1c1 + a2 c12 a2 c12 ⎥
⎢ 0 ⎥
J (q) = ⎢
0

⎢ 0 0 ⎥
⎢ 0 0 ⎥
⎢⎣ 1 1 ⎥⎦
⎡0 ⎤ ⎡ a1c1 ⎤ ⎡ a1c1 + a2c12 ⎤ ⎡0 ⎤
o0 = 0 , o1 = a1s1 , o2 = ⎢ a1s1 + a2 s12 ⎥
⎢ ⎥ ⎢ ⎥ z00 = z10 = ⎢0 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢1 ⎥
⎣0 ⎦ ⎣ 0 ⎦ ⎣ 0 ⎦ ⎣ ⎦
22
7. Example: velocity of an arbitrary point

• We can also use the Jacobian to calculate the velocity of any


arbitrary point on the manipulator
⎡ z00 × ( oc − o0 ) z10 × ( oc − o1 ) 0 ⎤
J (q) = ⎢ ⎥
⎣⎢ z00 z10 0 ⎥⎦
– This is identical to
placing the tool frame
at any point of the
manipulator

23

7. Example: Stanford manipulator

• The configuration of the Stanford


manipulator allows us to make
the following simplifications:

⎡ z × ( o6 − oi −1 ) ⎤
J i = ⎢ i −1 ⎥ , i = 1, 2
⎣ zi −1 ⎦
⎡z ⎤
J3 = ⎢ 2 ⎥
⎣0⎦
⎡ z × ( o6 − o ) ⎤
J i = ⎢ i −1 ⎥ , i = 4,5,6
⎣ zi −1 ⎦

• Where o is the common origin


of the o3, o4, and o5 frames

24
7. Example: Stanford manipulator

• From the forward kinematics of the Stanford manipulator, we


calculated the homogeneous transformations for each joint:

⎡ c1 0 − s1 0⎤ ⎡ c2 0 s2 0⎤ ⎡1 0 0 0⎤
⎢ s 0 c1 0⎥ ⎢s 0 −c2 0⎥ ⎢0 1 0 0⎥
A1 = ⎢ 1 ⎥ , A2 = ⎢ 2 ⎥ , A3 = ⎢
0 −1 0 0 0 1 0 d2 0 0 1 d3 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣0 0 0 1⎦ ⎣0 0 0 1⎦ ⎣0 0 0 1⎦

⎡ c4 0 − s4 0⎤ ⎡c5 0 s5 0⎤ ⎡ c6 − s6 0 0⎤
⎢s 0 c4 0 ⎥ ⎢ s5 0 −c5 0 ⎥ ⎢ s6 c6 0 0⎥
A4 = ⎢ 4 = =
0⎥ 5 ⎢ 0 0⎥ 6 ⎢ 0 1 d6 ⎥
, A , A
0 −1 0 −1 0 0
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣0 0 0 1⎦ ⎣0 0 0 1⎦ ⎣0 0 0 1⎦

25

7. Example: Stanford manipulator

26
7. Example: Stanford manipulator

• To complete the derivation of the Jacobian, we need the following


quantities: z0, z1, … , z5, o0, o1, o3, o6
– o3 is o and o0 = [0 0 0]T
• We determine these quantities by noting the construction of the T
matrices
– oj is the first three elements of the last column of Tj0
– zj is Rj0k, or equivalently, the first three elements of the third
column of Tj0
• Thus we can calculate the Jacobian by first determining the Tj0
– Thus the zi terms are given as follows:
⎡0⎤ ⎡ − s1 ⎤ ⎡c1s2 ⎤ ⎡c1s2 ⎤ ⎡ −c1c2 s4 − s1c4 ⎤ ⎡c1c2c4 s5 − s1s4 s5 + c1s2c5 ⎤
z0 = 0 , z1 = c1 , z2 = s1s2 , z3 = s1s2 , z4 = − s1c2 s4 + c1c4 , z5 = ⎢ s1c2c4 s5 + c1s4 s5 + s1s2c5 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢1 ⎥ ⎢ 0 ⎥ ⎢c ⎥ ⎢c ⎥ ⎢ ⎥ ⎢ − s2c4 s5 + c2c5 ⎥
⎣ ⎦ ⎣ ⎦ ⎣ 2 ⎦ ⎣ 2 ⎦ ⎣ s2 s 4 ⎦ ⎣ ⎦

27

7. Example: Stanford manipulator

• And the oi terms are given as:


⎡0⎤ ⎡0⎤ ⎡ c1s2 d3 − s1d 2 ⎤
o0 = ⎢ 0 ⎥ , o1 = ⎢ 0 ⎥ , o3 = ⎢ s1s2 d3 + c1d 2 ⎥ ,
⎢0⎥ ⎢d ⎥ ⎢ ⎥
⎣ ⎦ ⎣ 2⎦ ⎣ c2 d3 ⎦
⎡ c1s2 d3 − s1d 2 + d 6 ( c1c2 c4 s5 + c1c5 s2 − s1s4 s5 ) ⎤ ⎡ d x ⎤
o6 = ⎢ s1s2 d3 − c1d 2 + d 6 ( c1s4 s5 + c2 c4 s1s5 + c5 s1s2 ) ⎥ = ⎢ d y ⎥
⎢ ⎥ ⎢ ⎥
⎢⎣ c2 d3 + d 6 ( c2 c5 − c4 s2 s5 ) ⎥⎦ ⎢⎣ d z ⎥⎦

• Finally, the Jacobian can be assembled as follows:


⎡ −d y ⎤ ⎡ c1d z ⎤ ⎡c1s2 ⎤

(
⎡ s1s2 ( d z − o3, z ) + c2 d y − o3, y ⎤ )⎥
⎢d ⎥ ⎢ ⎥
⎢ x

s1d z
⎢−s d − c d ⎥
⎢ s1s2 ⎥
⎢c ⎥ ⎢ − c s
1 1 ( d z − o3, z ) + c2 ( d x − o )
3, x ⎥
J1 = ⎢ 0 ⎥ , J 2 = ⎢ 1 y 1 x ⎥ , J3 = ⎢ 2 ⎥ , J 4 = ⎢ −c1c2 s4 − s1c4 ⎥
⎢ 0 ⎥ ⎢ − s1 ⎥ ⎢ 0 ⎥ ⎢ ⎥
⎢ s2 s4 ⎥
⎢ 0 ⎥ ⎢ c1 ⎥ ⎢ 0 ⎥
⎢ 1 ⎥ ⎢ ⎥ ⎢⎣ 0 ⎥⎦ ⎢ 0 ⎥
⎣ ⎦ ⎣ 0 ⎦ ⎢⎣ 0 ⎥⎦
28
7. Example: Stanford manipulator

• Finally, the Jacobian can be assembled as follows:




(
( − s1c2 s4 + c1c4 ) ( d z − o3, z ) − s2 s4 d y − o3, y ) ⎤

⎢ ( 1 2 4 1 4 ) ( z 3, z ) 2 4 ( x 3, x )
− c c s + s c d − o + s s d − o ⎥
⎢ ⎥
( )
J 5 = ⎢( −c1c2 s4 − s1c4 ) d y − o3, y + ( s1c2 s4 − c1c4 ) ( d x − o3, x ) ⎥
⎢ −c1c2 c4 − s1c4 ⎥
⎢ s2 s4 ⎥
⎢ ⎥
⎣ 0 ⎦
( )
⎡ ( s1c2 c4 s5 + c1s4 s5 + s1s2c5 ) d y − o3, y + ( s2 c4 s5 − c2c5 ) d y − o3, y ⎤

( ) ⎥
⎢ − ( c1c2 c4 s5 − s1s4 s5 + c1s2 c5 ) ( d z − o3, z ) + ( s2c4 s5 − c2 c5 ) ( d x − o3, x ) ⎥
⎢ c1c2c4 s5 − s1s4 s5 + c1s2 c5 ⎥
J6 = ⎢ ⎥
⎢ s1c2 c4 s5 + c1s4 s5 + s1s2c ⎥
⎢ − s c
2 4 5s + c c
2 5 ⎥
⎢⎣ 0 ⎥⎦
29

7. Example: SCARA manipulator

• Jacobian will be a 6x4 matrix


⎡ z00 × ( o4 − o0 ) z10 × ( o4 − o1 ) z20 z30 × ( o4 − o3 ) ⎤
J =⎢ ⎥
⎢⎣ z00 z10 0 z30 ⎥⎦
⎡ z00 × ( o4 − o0 ) z10 × ( o4 − o1 ) z20 0⎤
=⎢ ⎥
⎢⎣ z00 z10 0 z30 ⎥⎦

• Thus we will need to determine the following quantities: z0, z1, … ,


z3, o0, o1, o2, o4
– Since all the joint axes are parallel, we can see the following:
z 0 = z 0 = kˆ, z 0 = z 0 = − kˆ
0 1 2 3

– From the homogeneous transformation matrices we can


determine the origins of the coordinate frames

30
7. Example: SCARA manipulator

• Thus o0, o1, o2, o4 are given by:

⎡0 ⎤ ⎡ a1c1 ⎤ ⎡ a1c1 + a2 c12 ⎤


o0 = ⎢ 0 ⎥ , o1 = a1s1 , o4 = ⎢ a1s1 + a2 s12 ⎥
⎢ ⎥
⎢0 ⎥ ⎢ 0 ⎥ ⎢ d −d ⎥
⎣ ⎦ ⎣ ⎦ ⎣ 3 4 ⎦

• Finally, we can assemble the Jacobian:


⎡ − a1s1 − a2 s12 − a2 s12 0 0⎤
⎢ a1c1 + a2 c12 a2 c12 0 0⎥
⎢ 0 0 −1 0 ⎥
J =⎢ ⎥
⎢ 0 0 0 0⎥
⎢ 0 0 0 0⎥
⎢⎣ 1 1 0 −1⎥⎦

31

8. Force/torque relationships

• Similar to the relationship between the joint velocities and the end
effector velocities, we are interested in expressing the relationship
between the joint torques and the forces and moments at the end
effector
– Important for dynamics, force control, etc
• Let the vector of forces and moments at the end effector be
represented as:
T
F = ⎡⎣ Fx Fy Fz nx ny nz ⎤⎦
• Then we can express the joint torques, τ, as:
τ = J T (q) F
• We will derive this using the principal of virtual work when we
discuss the dynamics of manipulators

32
8. Force/torque relationships

• Example: for a force F applied to the end of a planar two-link


manipulator, what are the resulting joint torques?
– First, remember that the Jacobian is:
⎡ − a1s1 − a2 s12 − a2 s12 ⎤
⎢ a1c1 + a2 c12 a2 c12 ⎥
⎢ 0 ⎥
J (q) = ⎢
0

⎢ 0 0 ⎥
⎢ 0 0 ⎥
⎢⎣ 1 1 ⎥⎦

– The joint torques are:


⎡ − a1s1 − a2 s12 a1c1 + a2c12 0 0 0 1⎤ ⎡ F ⎤
τ =⎢
⎣ − a2 s12 a2c12 0 0 0 1⎥⎦ ⎢⎣ n ⎥⎦
⎡ Fx ( − a1s1 − a2 s12 ) + Fy ( a1c1 + a2c12 ) ⎤
=⎢ ⎥
⎣ Fx ( − a2 s12 ) + Fy ( a2c12 ) ⎦
33

9. Singularities

• We can now derive the Jacobian as a mapping given by the


following:
ξ = J ( q ) q
• This means that the columns of J form a basis for the space of
possible end effector velocities
• Thus, for the end effector to be able to achieve any arbitrary body
velocity ξ, J must have rank 6
• We know that J is 6xn and that:
for A ∈ R m×n , rank ( A ) ≤ min ( m, n )
• Thus, rank ( J ) ≤ min ( 6, n )
• For example, for the two link planar manipulator, rank ( J ) ≤ 2
• For example, for the Stanford manipulator, rank ( J ) ≤ 6
• Note that the columns the Jacobian of a kinematically redundant
manipulator are never linearly independent

34
9. Singularities

• But the rank of the Jacobian is not necessarily constant… it will of


course depend upon the configuration
• Definition: we say that any configuration in which the rank of J is
less than its maximum is a singular configuration
– i.e. any configuration that causes J to lose rank is a singular
configuration
• Characteristics of singularities:
– At a singularity, motion in some directions will not be possible
– At and near singularities, bounded end effector velocities
would require unbounded joint velocities
– At and near singularities, bounded joint torques may produce
unbounded end-effector forces and torques
– Singularities often occur along the workspace boundary (i.e.
when the arm is fully extended)
35

9. Singularities

• How do we determine singularities?


– Simple: construct the Jacobian, observe when it will lose rank
• Example: Two-link manipulator
– Previously, we found J to be:
⎡ − a1s1 − a2 s12 − a2 s12 ⎤
⎢ a1c1 + a2 c12 a2 c12 ⎥
⎢ 0 ⎥
J (q) = ⎢
0

⎢ 0 0 ⎥
⎢ 0 0 ⎥
⎢⎣ 1 1 ⎥⎦

– This loses rank if we can find some α such that:


J1 = α J 2 for α ∈ R
36
9. Singularities

• This is equivalent to the following:


a1s1 + a2 s12 = α ( a2 s12 )
a1c1 + a2 c12 = α ( a2c12 )

• Thus if s12 = s1, we can always find


an α that will reduce the rank of J
• Thus θ2 = 0,π are two singularities

a1 + a2 a2 − a1
α= α=
a2 a2

37

Determining Singular Configurations

• In general, all we need to do is observe how the rank of the


Jacobian changes as the configuration changes
• But it is not always as easy as the last example to observe how
the rank changes
• There are some shortcuts for common manipulators: decoupling
singularities
– Analogous to kinematic decoupling
– Assume that we have a 6DOF manipulator and that we can
break the Jacobian into a block form
– Then we can separate singularities into arm singularities and
wrist singularities

38
Decoupling of Singularities

• Assume that we have a 6DOF manipulator that has a 3-axis arm


and a spherical wrist
– The Jacobian is 6x6 and the maximum rank J can have is 6
– We can say that the manipulator is in a singular configuration iff
det(J(q)) = 0
• For the case of a kinematically decoupled manipulator, we can
break up the Jacobian as follows:
J = ⎡⎣ J p J o ⎤⎦

– Where Jp and Jo are represent the position and orientation


portions of the Jacobian
– Jo is given by the following:
⎡ z × ( o6 − o3 ) z4 × ( o6 − o4 ) z5 × ( o6 − o5 ) ⎤
Jo = ⎢ 3 ⎥
⎣ z3 z4 z5 ⎦

39

10. Inverse velocity

• We have developed the Jacobian as a mapping from joint velocities


to end effector velocities:
ξ = Jq
• Now we want the inverse: what are the joint velocities for a
specified end effector velocity?
• Simple case: if the Jacobian is square and nonsingular,
q = J −1ξ
• In all other cases, we need another method
• For systems that do not have exactly 6DOF, we cannot directly
invert the Jacobian
• Thus there is only a solution to finding the joint velocities if ξ is in the
range space of J

40
10. Inverse velocity

• Take the case of a manipulator with more than 6 joints


– i.e. n > 6
• We can solve for the joint velocities using the right pseudo inverse
• For J ∈ R m×n with m < n ⇒ rank ( J ) ≤ m
• If the manipulator is nonsingular, rank(J) = m and (JJT)-1 exists
– Thus we can write:
( )( JJ )
I = JJ T T −1

= J ⎡⎢ J ( JJ )
T T −1 ⎤
⎥⎦

= JJ +
– Where J+ is the right pseudo inverse of J
– Thus the solution for the joint velocities (with minimum norm) is:
q = J +ξ
41

10. Inverse velocity

• How do we construct J+ ? Using SVD:


– Generalization of methods that we would use for square matrices
– We can write any m x n matrix J as a composition of 3 matrices:
J = U ΣV T
– Where the matrix U is m x m and contains the eigenvectors of JJT
as its columns and Σ is a matrix that contains the singular values:
⎡σ 1 0⎤
⎢ σ2 0⎥
Σ= ⎢ ⋅ 0⎥
⎢ ⎥
⎢ ⋅ 0⎥
⎣⎢ σm 0 ⎦⎥

– Singular values σi are the square roots of the eigenvalues of JJT:


σ i = λi
42
10. Inverse velocity

• Now J+ is given by:


J + = V Σ +U T
– Where Σ+ is:
T
⎡σ 1−1 0⎤
⎢ ⎥
⎢ σ 2 −1 0⎥
Σ=⎢ ⋅ 0⎥
⎢ ⋅ 0⎥
⎢ ⎥
⎣ σ m −1 0⎦

43

You might also like