You are on page 1of 55

Robot manipulator and control

Động lực học và


điều khiển robot
TS. Ngô Quang Hiếu
Bộ môn Kỹ Thuật Cơ Khí
Khoa Công Nghệ - Đại học Cần Thơ
Động học vận tốc

Robot manipulator and control Ngo Quang Hieu


Động học vận tốc

 Now we know 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 numerous aspects of
manipulators:
 Singular configurations
 Dynamics
 Joint/end-effector forces and torques

Robot manipulator and control Ngo Quang Hieu


Vận tốc góc: trục quay bất kỳ
 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:
  q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

 When a rigid body translates, all points attached


to the body have the same velocity

Robot manipulator and control Ngo Quang Hieu


Vận tốc góc: trục quay bất kỳ

 Skew-symmetric matrices
T
 Definition: a matrix S is skew symmetric if: S + 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 independent entries in a skew symmetric matrix
 0  s3 s2 
S   s3 0  s1 
 
 s2 s1 0 
 Now we can use S as an operator for a vector a = [ax ay az]T
 0  az ay 
 
S a    a z 0  ax 
 a y ax 0 

Robot manipulator and control Ngo Quang Hieu
Vận tốc góc: trục quay bất kỳ

 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

Robot manipulator and control Ngo Quang Hieu


Vận tốc góc: trục quay bất kỳ

 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
3
S a  p  a  p, a, p  R
– 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 

Robot manipulator and control Ngo Quang Hieu


Vận tốc góc: trục quay bất kỳ

 Properties of skew-symmetric matrices


3
3. For R  SO 3, a  R
T
RS a R  S  Ra 
– This can be shown for and R as follows:
3
R a  b   Ra  Rb, a,b  R , R  SO 3
– This can be shown by direct calculation. Finally:
T  T
RS a R b  R a  R b 

  Ra   RRT b 
  Ra   b
 S  Ra b

4. For any S  son , x  R n

xT Sx  0
Robot manipulator and control Ngo Quang Hieu
Vận tốc góc: trục quay bất kỳ
 Derivative of a rotation matrix
 let R be an arbitrary rotation matrix which is a function of a single
variable q
• R(q)R(q)T=I
• Differentiating both sides (w/ respect to q) gives:

d  T  d T
R
 dq  R q  + R q  dq R   0
 d  T
• Now define the matrix S as: S  R
 dq  R q 

T
• Then ST is: S T    d  T   d T
R  R q    R q  R 

  dq    dq 
d  T d
• Therefore S + ST = 0 and SR q    R  R q  R q   R
 dq  dq
Robot manipulator and control Ngo Quang Hieu
Vận tốc góc: trục quay bất kỳ

 Example: let R=Rx,q, then using the previous results we have:

0 0 0  1 0 0 
d 
S R  R q T  0  sin q  cosq  0 cos q sin q 
 dq    
0 cosq  sin q  0  sin q cos q 
0 0 0
 0 0  1  S iˆ 
 
0 1 0 

Robot manipulator and control Ngo Quang Hieu


Vận tốc góc: trục quay bất kỳ

 Now consider that we have an angular velocity about an arbitrary axis


 Further, let R = R(t)
 Now the time derivative of R is:
R t   S  t R t 

 Where (t) is the angular velocity of the rotating frame

Robot manipulator and control Ngo Quang Hieu


Vận tốc góc: trục quay bất kỳ

 Now consider that we have an angular velocity about an arbitrary


axis
 Further, let R = R(t)
 Now the time derivative of R is:
R t   S  t R t 

 Where w(t) is the angular velocity of the rotating frame


0 0 1
 To show this, consider a point p fixed to a moving frame o1: p  R1 p

d 0 d 0 1 0 1
dt
p 
dt
 
R1 p  R1 p + R10 p 1

 R 0 p1  S  t R 0 p1
1 1
  t   R10 p1   t   p 0

Robot manipulator and control Ngo Quang Hieu


Vận tốc góc
 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: 0
R2 t   R10 t R12 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 20  R10 R12 + R10 R 12
 By our previous convention:
 
R 20  S 00,2 R20
 Where w0,20 is the angular velocity corresponding to a rotation of
R20 in the inertial frame

   
R10 R12  S 00,1 R10 R12  S 00,1 R20
Robot manipulator and control Ngo Quang Hieu
Vận tốc góc
 Now the first term can be derived as follows:
   
R 10R21  S 00,1 R10R21  S 00,1 R20
 Where w0,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)

R10R 21  R10S 11,2 R21  from our definition of R
 R S 
0
1
1
1,2 R  R R
0 T
1
0
1
1
2
since RT 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 00,1 R20 + S R1011,2 R20
 S   + S R  R
0
0,1
0
1
1
1,2
0
2

Robot manipulator and control Ngo Quang Hieu


Vận tốc góc
 Further: S 00,2 R20  S 00,1  + S R1011,2 R20
 And since S a + b   S a  + S b 
00,2  00,1 + R1011,2
 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  R10R21    Rnn 1
 Now we want to find the rotation of the nth frame in the inertial
frame: R n0  S 00,n Rn0
 We can define the angular velocity of the tool frame in the inertial
frame:
00,n  00,1 + R1011,2 + R2022,3 + R3033,4 + ... + Rn01nn11,n
 00,1 + 10,2 + 20,3 + 30,4 + ... + n01,n

Robot manipulator and control Ngo Quang Hieu


Vận tốc dài
 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  R p1 + Rp 1 + o
we assume that p is fixed w/
 S  Rp1 + o
respect to the rigid body
   Rp1 + v
 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

Robot manipulator and control Ngo Quang Hieu


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:

oRn0 q  on0 q 
T 
n 
 0 1 

 We can call the angular velocity of the tool frame 0,n0 and:
 
S 00,n  R n0 Rn0  
T

 Call the linear velocity of the end-effector:


v n0  o n0

Robot manipulator and control Ngo Quang Hieu


Jacobian
 Therefore, we want to come up with the following mappings:
v n0  Jv q
n0  J q
 Thus Jv and Jω are 3xn matrices
 we can combine these into the following: x  Jq
 where:
 v n0 
x   0
 n 
J 
J   v
J  

 J is called the Jacobian


 6xn where n is the number of joints

Robot manipulator and control Ngo Quang Hieu


Xác định 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11,i  q i zii11  q i 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:
00,n  00,1 + R1011,2 + R2022,3 + R3033,4 + ... + Rn01nn11,n
 1q1kˆ +  2q 2R10 kˆ +  3q 3 R20 kˆ +  4 q 4 R30 kˆ + ... +  n q n Rn01kˆ
n
   i q i zi01
i 1

 Where the term ri determines if joint i is revolute (ri =1) or


prismatic (ri =0)

Robot manipulator and control Ngo Quang Hieu


Xác định J

 Now J can simply be written as follows:



J  1z00  2 z10     n zn01 

 There are n columns, each is 3x1, thus J is 3xn

Robot manipulator and control Ngo Quang Hieu


Xác định Jv

 Linear velocity of the end effector:


n 0
o
o  
0
n
n
q i
i 1 qi

 Therefore we can simply write the ith column of Jv as:


on0
Jv i 
q i
 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

Robot manipulator and control Ngo Quang Hieu


Xác định 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

 Therefore, we can write the ith column of the Jacobian:


Jv i  zi01

Robot manipulator and control Ngo Quang Hieu


Xác định Jv
 End-effector velocity due to revolute joints
 Assume all joints are fixed other than the revolute joint qi
 The motion of the end-effector is given by:
o n0  i01,i  r  qi zi01  r
 Where the term r is the distance from the
tool frame on to the frame oi-1
o n0  qi zi01  on  oi 1 

 Thus we can write the ith column of Jv:


Jv  zi01  on  oi 1 
i

Robot manipulator and control Ngo Quang Hieu


Xác định Jv

 The ith column of Jv is given by:


z  on  oi 1  for i revolute
Jv i   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

Robot manipulator and control Ngo Quang Hieu


Ví dụ 5.1: Robot hai khâu phẳng
 Calculate J for the following manipulator:
 Two joint angles, thus J is 6x2
z00  o2  o0  z10  o2  o1 
J q    0 0 
 z0 z1 

 Where:

0  a1c1  a1c1 + a2c12  0


o0  0 , o1  a1s1 , o2  a1s1 + a2s12  z00  z10  0
0   0   0   1

 a1s1  a2s12  a2s12 


 ac +a c a2c12 
 1 1 2 12

 0 0 
J q    
 0 0 
 0 0 
 
 1 1 

Robot manipulator and control Ngo Quang Hieu


Ví dụ 5.2: Vật tốc của điểm bất kỳ
 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    0 0 
 z0 z1 0 

 This is identical to placing the tool frame at any point of the


manipulator

Robot manipulator and control Ngo Quang Hieu


Ví dụ 5.3: Robot tọa độ cầu

 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
 z i 1 
 Where o is the common origin of the o3, o4, and o5 frames

Robot manipulator and control Ngo Quang Hieu


Ví dụ 5.3: Robot tọa độ cầu
• From the forward kinematics of the Stanford manipulator, we
calculated the homogeneous transformations for each joint:

c1 0  s1 0 c 2 0 s2 0 1 0 0 0
s 0 c1 0 s 0  c 2 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  s 4 0 c 5 0 s 5 0 c 6  s6 0 0
s 0 c4 0 s 0  c 5 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

Robot manipulator and control Ngo Quang Hieu


Ví dụ 5.3: Robot tọa độ cầu
• 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   c1c 2s 4  s1c 4  c1c 2c 4 s5  s1s 4s5 + c1s2 c5 
z0  0, z1   c1 , z2  s1s2 , z3  s1s2 , z4   s1c 2s4 + c1c 4 , z5  s1c 2c 4 s5 + c1s 4s5 + s1s2 c5 
 1  0   c 2   c 2   s2s 4    s2c 4 s5 + c 2c 5 

Robot manipulator and control Ngo Quang Hieu


Ví dụ 5.3: Robot tọa độ cầu
• And the oi terms are given as:
0  0 c1s2d 3  s1d 2  c1s2d 3  s1d 2 + d 6 c1c 2c 4s5 + c1c5 s2  s1s 4s5 
o0  0, o1   0 , o3  s1s2d 3 + c1d 2 , o6  s1s2d 3  c1d 2 + d 6 c1s 4s5 + c 2c 4s1s5 + c 5s1s 2 
     
0 d 2   c 2d 3   c 2d 3 + d 6 c 2c 5  c 4 s2s5  

• Finally, the Jacobian can be assembled as follows:

 d y   c1d z  c1s2   s1s 2 d z  o3,z  + c 2 d y  o3,y  


d   s d   s s   c s d  o  + c d  o 
 x   1 z   1 2   1 1 z 3,z 2 x 3,x 

 0    s1d y  c1d x   c2    c1c 2s 4  s1c 4 


J1   , J
 2  , J
 3   , J
 4  
 0    s1   0   s 2 s 4 
 0   c1   0   0 
       
 1   0   0   0 

Robot manipulator and control Ngo Quang Hieu


Ví dụ 5.3: Robot tọa độ cầu

• Finally, the Jacobian can be assembled as follows:


  s1c2s4 + c1c 4 d z  o3,z   s2s4 d y  o3,y  

  c1c2s4 + s1c4 d z  o3,z  + s2s4 d x  o3,x  
 c1c 2s4  s1c 4 d y  o3,y  + s1c 2s 4  c1c 4 d x  o3,x 
J5   
  c 1c 2 c 4  s1c 4 
 s2s 4 
 
 0 
 s1c 2c 4 s5 + c1s 4s5 + s1s2c 5 d y  o3,y  + s2c 4 s5  c 2c 5 d y  o3,y  
  c c c s  s s s + c s c d  o  + s c s  c c d  o 
 1 2 4 5 1 4 5 1 2 5 z 3,z 2 4 5 2 5 x 3, x 

 c1c 2c 4s5  s1s 4 s5 + c1s2c5 


J6   
 s c c s
1 2 4 5 + c s s
1 4 5 + s s
1 2 c 
  s2c 4 s5 + c 2c 5 
 
 0 

Robot manipulator and control Ngo Quang Hieu


Ví dụ 5.3: Robot SCARA
• 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:
z00  z10  kˆ, z20  z30  kˆ
– From the homogeneous transformation matrices we can determine
the origins of the coordinate frames

Robot manipulator and control Ngo Quang Hieu


Ví dụ 5.3: Robot SCARA

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

0  a1c1  a1c1 + a2c12 


o0  0, o1  a1s1 , o4  a1s1 + a2s12 
0  0   d 3  d 4 

• Finally, we can assemble the Jacobian:

  a1s1  a2s12  a2s12 0 0


 ac +a c
 1 1 2 12 a2c12 0 0 
 0 0 1 0 
J  
 0 0 0 0
 0 0 0 0
 
 1 1 0  1

Robot manipulator and control Ngo Quang Hieu


Singularities
 We can now derive the Jacobian as a mapping given by the following:
x  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 x, 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

Robot manipulator and control Ngo Quang Hieu


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

Robot manipulator and control Ngo Quang Hieu


Singularities
 How do we determine singularities?
 Simple: construct the Jacobian and observe when it will lose rank
 EX: two link manipulator
 Previously, we found J to be:

 a1s1  a2s12  a2s12 


 ac +a c
 1 1 2 12 a2c12 
 0 0 
J q    
 0 0 
 0 0 
 
 1 1 

 This loses rank if we can find some a such that:


J1  J 2 for   R

Robot manipulator and control Ngo Quang Hieu


Singularities
 This is equivalent to the following:
a1s1 + a2s12   a2s12 
a1c1 + a2c12   a2c12 

 Thus if s12 = s1, we can always find an  that will reduce the rank
of J
 Thus q2 = 0, p are two singularities

a1 + a2 a2  a1
 
a2 a2

Robot manipulator and control Ngo Quang Hieu


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

Robot manipulator and control Ngo Quang Hieu


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 iff
det(J(q)) = 0
 For the case of a kinematically decoupled manipulator, we can break
up the Jacobian as follows:
 Where Jp and Jo are represent the position and orientation portions of
the Jacobian J  J p J o 

 Jo is given by the following:

 z  o6  o3  z4  o6  o4  z5  o6  o5 


Jo   3 
 z3 z4 z5 

Robot manipulator and control Ngo Quang Hieu


Decoupling of singularities

 Now, one further assumption: o3 = o4 = o5 = o6 = o


 This allows us to note the form of Jo:
0 0 0
Jo  
 z3 z4 z5 

 And we can split the total manipulator Jacobian as follows:


J 0 
J   11 
J 21 J 22 
 Thus we can say:
det J   det J11  det J 22 

Robot manipulator and control Ngo Quang Hieu


Wrist singularities

• To determine the wrist singularities, we observe the determinant of J22


J 22  z3 z4 z5 
• Thus the J22 has rank 3 when the three axes are linearly independent
– This is always true, except when two of the axes are collinear
– i.e. q5 = 0, p are the singularities for a spherical wrist

Robot manipulator and control Ngo Quang Hieu


Arm singularities

• To determine the arm singularities, we observe the determinant of J11


– First, if the ith joint is revolute, the ith column is J11 is given as follows:
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 

• We will now give examples for the common configurations we have


been using: elbow, spherical, and SCARA manipulators

Robot manipulator and control Ngo Quang Hieu


Ex: Elbow manipulator

• To determine the arm singularities, we observe the determinant of J11


– First, J11 is given as follows:
J11  z0  oc  o0  z1  oc  o1  z2  oc  o2 
 a2s1c2  a3 s1c23  a2s2c1  a3s23 c1  a3c1s23 
  a2c1c2 + a3 c1c 23  a2s1s2  a3s1s23  a3 s1s23 
 0 a2c 2 + a3 c23 a3 c23 

– The determinant of J11 is:


det J11   a2a3 s3 a2c2 + a3c 23 

Robot manipulator and control Ngo Quang Hieu


Ex: Elbow manipulator

• The determinant of J11 is:


det J11   a2a3 s3 a2c2 + a3c 23 
– Thus the arm is singular when s3 = 0, i.e. q3 = 0, p
– This corresponds to the elbow being fully extended or fully retracted:

Robot manipulator and control Ngo Quang Hieu


Ex: Elbow manipulator

• The determinant of J11 is:


det J11   a2a3 s3 a2c2 + a3c 23 
– Thus the arm is also singular when a2c2 + a3c23 = 0
– This corresponds to the wrist center intersecting the z0 axis:

– But this is not possible if there is a shoulder offset:

Robot manipulator and control Ngo Quang Hieu


Ex: spherical manipulator

• Since there is no ‘elbow’, the only singularity is when the wrist center
intersects the base axis

Robot manipulator and control Ngo Quang Hieu


Ex: SCARA manipulator

• First, we observe the construction of the Jacobian:


 a1s1  a2s12  a1s12 0
J11   a1c1 + a2c12 a1c12 0 
 0 0  1

• The determinant is:


2 2
det J11   a1 c1s12  a1 s1c12
2
 a1 c1s12  s1c12 
2
 a1 c1 s1c2 + c1s2   s1 c1c 2  s1s2 
2
 a1 s2

• Thus, the SCARA is singular


for s2 = 0, i.e. q2 = 0, p

Robot manipulator and control Ngo Quang Hieu


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 nx ny nz T
• 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

Robot manipulator and control Ngo Quang Hieu


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  a2s12  a2s12 


 ac +a c a2c12 
 1 1 2 12

 0 0 
J q    
 0 0 
 0 0 
 
 1 1 

Robot manipulator and control Ngo Quang Hieu


Force/torque relationships

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


manipulator, what are the resulting joint torques?
– Thus the joint torques are:
Fx 
F 
 y
 a s  a s ac +a c 0 0 0 1  Fz 
   1 1 2 12 1 1 2 12  
  a2s12 a2c12 0 0 0 1 n x 
n y 
 
 nz 
Fx  a1s1  a2s12  + Fy a1c1 + a2c12 
 
 F x  a 2 s12  + Fy a 2 c12  

Robot manipulator and control Ngo Quang Hieu


Inverse velocity

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


end effector velocities:
x  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 1x
• 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 x is in the
range space of J

Robot manipulator and control Ngo Quang Hieu


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:
I  JJ T JJ T 
1

  
 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 +x

Robot manipulator and control Ngo Quang Hieu


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 three 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
  0 
 2 
  0
 
  0 
  m 0
– And the singular values i are the square roots of the eigenvalues of JJT:

 i  i

Robot manipulator and control Ngo Quang Hieu


Inverse velocity

• Now J+ is given by:


J +  V +U T
– Where + is:
T
 11 0
 1 
 2 0
  0
 
  0
 0
1
 m

Robot manipulator and control Ngo Quang Hieu


Robot manipulator and control

You might also like