Professional Documents
Culture Documents
Of Control Engineering
Velocity Kinematics
• Now we know how to relate the end-effector position and orientation
to the joint variables
• Let’s 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 numerous aspects of
manipulators:
– Singular configurations
– Dynamics
– Joint/end-effector forces and torques
ω = θ&k
– The velocity of any point on a rigid body
due to this angular velocity is:
v =ω×r
r : vector from the axis
of rotation to the point
dθ
θ=
&
dt
• When a rigid body rotates about a
fixed axis, every point moves in a
circle
KON 318E : Introduction to Robotics 3
İTÜ-EEF Dept. Of Control Engineering
– Thus there are only three independent entries in a skew symmetric matrix
0 − s3 s2
S = s3 0 − s1
− s2 s1 0
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
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
a1 b1 a2 b3 − a3 b2
a = a2 , b = b2 ⇒ a × b = a3 b1 − a1b3
a3 b3 a1b2 − a2 b1
0 − a3 a2 b1 a2 b3 − a3 b2
S (a )b = a3 0 − a1 b2 = a3 b1 − a1b3
− a2 a1 0 b3 a1b2 − a2 b1
RS (a )R T = S (Ra )
x T Sx = 0
d d T
R
dθ R (θ )T
+ R (θ ) dθ R = 0
• Now define the matrix S as:
d
S = R R (θ )
T
dθ
T
d T d
• Then ST is: S = R R (θ ) = R (θ ) R T
T
dθ dθ
• Therefore S + ST = 0 and
d
SR (θ ) = R R (θ ) R (θ ) =
T d
R
dθ dθ
0 0 0 1 0 0
d
S= R R (θ ) = 0 − sin θ − cos θ 0 cos θ sin θ
T
dθ
0 cos θ − sin θ 0 − sin θ cos θ
0 0 0
= 0 0 − 1 = S (i )
0 1 0
R& (t ) = S (ω (t ))R (t )
d 0 d 0 1
dt
p =
dt
(
R1 p ) p 0 = R10 p1
= S (ω (t ))R10 p1
= ω (t ) × R10 p1
= ω (t ) × p 0
R2 = R1 R2 + R1 R2
& 0 & 0 1 0 &1
(B) ( ) ( )
R& 10R21 = S ω00,1 R10R21 = S ω00,1 R20
( ) ( )
R& 10R21 = S ω00,1 R10R21 = S ω00,1 R20
– Where ω0,10 is the angular velocity corresponding to a rotation of R10 in the
inertial frame
(C) (
R10R& 21 = R10S ω11,2 R21 ) from our definition
= R S (ω
0 1
)(R ) R R
0 T 0 1
1 1,2 1 1 2
RT R = I
= S (R ω0
1
1
1,2 )R R
0
1
1
2
= S (R ω0
1
1
1,2 )R
0
2 because RS (a )R T = S (Ra )
• Thus combining these results: ( A= B+C )
( ) ( ) ( )
S ω00, 2 R20 = S ω00,1 R20 + S R10ω11, 2 R20
= [S (ω ) + S (R ω )]R
0
0 ,1
0
1
1
1, 2
0
2
( )
R& n0 = S ω00,n Rn0
– We can define the angular velocity of the tool frame in the inertial frame:
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:
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 is:
Rn0 (q ) on0 (q )
T =
n
o
0 1
– We can call the angular velocity of the tool frame ω0,n0 and:
( ) ( )
S ω00,n = R& n0 Rn0
T
v n0 = o& n0
The Jacobian
• Therefore, we want to come up with the following mappings:
v n0 = Jv q&
ξ = J q&
ωn0 = Jω q&
– Thus Jv and Jω are 3xn matrices
• we can combine these into the following:
– where:
vn0 Jv
ξ = 0 ; J =
ω n Jω
• J is called the Jacobian
– 6xn where n is the number of joints
Deriving Jω:
If the ith joint is revolute :
• ith Joint variable : qi → θi
• The axis of rotation of joint i : zi-1
• Angular velocity of link i relative to frame oi-1 : ωii-1
ω i −1
= q& zi −1
= q&i k , k = [0 0 1]
T
i −1,i i i −1
Deriving Jω:
• Thus, forming the equivalent angular velocity of the tool frame with
respect to the base frame:
ω00,n = ω00,1 + R10ω11, 2 + R20ω22,3 + R30ω33, 4 + ... + Rn0−1ωnn−−11,n
= ρ1q&1kˆ + ρ 2 q& 2 R10 kˆ + ρ 3 q&3 R20 kˆ + ρ 4 q& 4 R30 kˆ + ... + ρ n q& n Rn0−1kˆ
n
= ∑ ρ i q&i zi0−1
i =1
Where the term ρi determines if joint i is revolute (ρi =1) or prismatic (ρi =0)
vn0 = J v q&
[
J ω = ρ1 z00 M ρ 2 z10 M L M ρ n z n0−1 ] 0
ω = J q&
n ω
– There are n columns, each is 3x1, thus Jω is 3xn
Deriving Jv
• Linear velocity of the end effector:
n
∂o 0
o& n0 = ∑ n q& i
i =1 ∂q i
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
o& n0 = d& i Ri0−1 0 = d& i zi0−1
1
Jv i = z 0
i −1
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:
Jv i = zi0−1 × (on − oi −1 )
KON 318E : Introduction to Robotics 23
İTÜ-EEF Dept. Of Control Engineering
n1 s1 a1 p1 oi
n s2 a2 p2
Ti 0 = 2
n3 s3 a3 p3 zi
0 0 0 1
KON 318E : Introduction to Robotics 25
İTÜ-EEF Dept. Of Control Engineering
0 0
J (q ) =
0 0
0 0
1 1
KON 318E : Introduction to Robotics 26
İTÜ-EEF Dept. Of Control Engineering
zi −1 × (o6 − oi −1 )
Ji = , i = 1,2
zi −1
z2
J3 =
0
zi −1 × (o6 − o )
Ji = , i = 4,5,6
zi −1
• Where o is the common origin of the o3,
o4, and o5 frames
c1 0 − s1 0 c 2 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
c 4 0 − s4 0 c5 0 s5 0 c6 − s6 0 0
s 0 c4 0 s 0 − c5 0 s c6 0 0
A4 = 4 , A5 = 5 , A6 = 6
0 −1 0 0 0 −1 0 0 0 0 1 d6
0 0 0 1 0 0 0 1 0 0 0 1
0 − s1 c1s2 c1s2
z0 = 0, z1 = c1 , z 2 = s1s2 , z3 = s1s2 ,
1 0 c2 c2
• 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:
0 0 −1 0
J=
0 0 0 0
0 0 0 0
1 1 0 − 1
Singularities
Singularities
Singularities
0 0
J (q ) =
0 0
0 0
1 1
J1 = αJ 2 for α ∈ R
Singularities
a1 + a2 a2 − a1
α= α=
a2 a2
Decoupling of Singularities
• Assume that we have a 6DOF manipulator that has a 3-axis arm and a
spherical wrist
– thus the Jacobian is 6x6 and the maximum rank J can have is 6
– Now we can say that the manipulator is in a singular configuration if
det(J(q)) = 0
– Where Jp and Jo are represent the position and orientation portions of the
Jacobian
– Jo is given by the following:
Decoupling of Singularities
Wrist Singularities
Arm singularities
J11,i = [zi −1 × (o − oi −1 )]
– First, if the ith joint is prismatic, the ith column is J11 is given as follows:
J11,i = [zi −1 ]
• Since there is no ‘elbow’, the only singularity is when the wrist center
intersects the base axis
= a1 (c1s12 − s1c12 )
2
= a1 s2
2
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: F = [Fx Fy Fz n x ny nz ]
T
Force/torque relationships
0 0
J (q ) =
0 0
0 0
1 1
Force/torque relationships
Inverse velocity
q& = J −1ξ
ξ q=J ξ
& −1 q&
q& = [q&1 q& 2 L q& n ]
T
• Once is optained, then :
t
q (t ) = ∫ q& (η )dη + q (0)
0
• In numerical implementation :
q (t k +1 ) = q (t k ) + J −1 (q (t k ))ξ (t k )∆t
• However this not completely equavalent to : q& = J ξ
−1
• To solve Drift problem define an operational space error and its time
derivation:
e = ξd − ξ ; e& = ξ&d − ξ&
e& + K e = 0
• K : positive definite diagonal matrix
x&d
+ + q& q
xd
+
-
Inverse velocity
[ ( )
= J J T JJ 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 +ξ
Inverse velocity
σ i = λi
Inverse velocity