L10

advertisement
KINEMATICS
ANALYSIS
OF
ROBOTS
(Part 3)
Kinematics Analysis of Robots III
This lecture continues the discussion on the analysis of the
forward and inverse kinematics of robots.
After this lecture, the student should be able to:
•Solve problems of robot kinematics analysis using transformation
matrices
Example: A 3 DOF RRR Robot
Link and Joint Assignment
Link (1)
Link (2)
Link (3)
Revolute joint <1>
Link (0)
Revolute joint <3>
Revolute joint <2>
Example: A 3 DOF RRR Robot
Frame Assignment
Z1
Y1
X1
Y1
Z1
Example: A 3 DOF RRR Robot
Frame Assignment
Z0, Z1
Y2
Y0, Y 1
Z2
X0 , X1
X2
Z2
Y2
Example: A 3 DOF RRR Robot
Frame Assignment
Z0, Z1
Y2
Y3
Y0, Y 1
Z3
X0 , X1
X2
Z2
X3
Z3
Y3
Example: A 3 DOF RRR Robot
1
Frame Assignment
Z0, Z1
Y2
Y0, Y 1
X0, X1
2
X2
Z2
Y3
3
X3
Z3
Example: A 3 DOF RRR Robot
Tabulation of D-H parameters
A
B
Z0, Z1
Y2
Y3
Y0, Y 1
X0, X1
X2
Z2
X3
Z3
0 = (angle from Z0 to Z1 measured along X0) = 0°
a0 = (distance from Z0 to Z1 measured along X0) = 0
d1 = (distance from X0 to X1 measured along Z1)= 0
1 = variable (angle from X0 to X1 measured along Z1)
1 = 0° (at home position) but 1 can change as the arm moves
Example: A 3 DOF RRR Robot
Tabulation of D-H parameters
A
B
Z0, Z1
Y2
Y3
Y0, Y 1
X0, X1
X2
Z2
X3
Z3
1 = (angle from Z1 to Z2 measured along X1) = 90°
a1 = (distance from Z1 to Z2 measured along X1) = A
d2 = (distance from X1 to X2 measured along Z2) = 0
2 = variable (angle from X1 to X2 measured along Z2)
2 = 0° (at home position) but 2 can change as the arm moves
Example: A 3 DOF RRR Robot
Tabulation of D-H parameters
A
B
Z0, Z1
Y2
Y3
Y0, Y 1
X0, X1
X2
Z2
X3
Z3
2 = (angle from Z2 to Z3 measured along X2) = 0°
a2 = (distance from Z2 to Z3measured along X2) = B
d3 = (distance from X2 to X3 measured along Z3) = 0
3 = variable (angle from X2 to X3 measured along Z3)
3= 0° (at home position) but 3 can change as the arm moves
Summary of D-H parameters
Link i
Twist i
Link
length ai
Link offset
di
Joint angle i
i=0
0
0
…
…
i=1
90°
A
0
1
(1=0° at home
position)
i=2
0
B
0
2
(2=-0° at home
position)
i=3
…
…
0
3
(3=-0° at home
position)
Example: A 3 DOF RRR Robot
Tabulation of Transformation Matrices from the D-H table
cos(  i )

 cos(  ) sin(  )
i 1
i
i 1

T

i
 sin(  i 1 ) sin(  i )

0

 sin(  i )
0
cos(  i 1 ) cos(  i )
 sin(  i 1 )
sin(  i 1 ) cos(  i )
cos(  i 1 )
0
0
 0  0,
 cos(  1 )
 sin(  )
1
0

T

1
 0

 0
a 0  0,
d1  0
 sin(  1 )
0
cos(  1 )
0
0
1
0
0

 d i sin(  i 1 ) 

d i cos(  i 1 ) 

1

a i 1
0
0

0

1
Example: A 3 DOF RRR Robot
Tabulation of Transformation Matrices from the D-H table
cos(  i )

 cos(  ) sin(  )
i 1
i
i 1

T

i
 sin(  i 1 ) sin(  i )

0

 sin(  i )
0
cos(  i 1 ) cos(  i )
 sin(  i 1 )
sin(  i 1 ) cos(  i )
cos(  i 1 )
0
0
 1  90 ,
a1  A ,
 cos(  2 )

0
1

T 
2
 sin(  2 )

0

 sin(  2 )
0
0
1
cos(  2 )
0
0
0


 d i sin(  i 1 ) 

d i cos(  i 1 ) 

1

a i 1
d2  0
A
0

0

1
Example: A 3 DOF RRR Robot
Tabulation of Transformation Matrices from the D-H table
cos(  i )

 cos(  ) sin(  )
i 1
i
i 1

T

i
 sin(  i 1 ) sin(  i )

0

 sin(  i )
0
cos(  i 1 ) cos(  i )
 sin(  i 1 )
sin(  i 1 ) cos(  i )
cos(  i 1 )
0
0
 2  0,
 cos(  3 )
 sin(  )
3
2

T

3
0


0

a2  B,
d3  0
 sin(  3 )
0
cos(  3 )
0
0
1
0
0
B
0

0

1

 d i sin(  i 1 ) 

d i cos(  i 1 ) 

1

a i 1
Example: A 3 DOF RRR Robot
Forward Kinematics
 cos(  1 ) cos(  2 )
 sin(  ) cos(  )
1
2
0
0
1

T

T
T

2
1
2
sin(  2 )


0

0
T 
3

0
T
2

2
 cos(  ) cos(    )

sin(  ) cos(    )
T 
sin(    )


0

 cos(  1 ) sin(  2 )
sin(  1 )
 sin(  1 ) sin(  2 )
 cos(  1 )
cos(  2 )
0
0
0
1
2
3
 cos(  ) sin(    )
sin(  )
1
2
3
 sin(  ) sin(    )
 cos(  )
cos(    )
0
0
0
3
2
3
1
2
1
2
2
3
3
3
1
1
A cos(  1 ) 
A sin(  1 ) 

0


1

( A  B cos(  )) cos(  ) 

( A  B cos(  )) sin(  )

B sin(  )


1

2
1
2
1
2
Example: A 3 DOF RRR Robot
A=3
B=2
Z0, Z1
What is the position
of point “P” at the
home position?
Y2
Y3
Y0, Y 1
X0, X1
X2
Z2
Solution:
1 

 
0
3 p


 
 1  0 
 
1 
C=1


 0 p 0 3 p
   3T  
 1 
 1 
X3
Z3
P
Example: A 3 DOF RRR Robot
 cos(  ) cos(    )


sin(  ) cos(    )
 p
T 
sin(    )
1  

0

1
2
3
 cos(  ) sin(    )
sin(  )
1
2
3
 sin(  ) sin(    )
 cos(  )
cos(    )
0
0
0
3
0
3
2
3
1
2
1
3
2
2
1
3
1
3
( A  B cos(  )) cos(  )   1 
 
( A  B cos(  )) sin(  ) 0
 
B sin(  )
 0 
 
1
 1 
1= 2= 3=0, A=3, and B=2:
1
0
0 
3 
 p 0  p

   3T   
 1 
 1  0

0
0
0
0
1
1
0
0
0
5  1  6 
0  0  0 
    
0  0  0 
   
1  1  1 
2
1
2
1
2
Example: A 3 DOF RRR Robot
Inverse Kinematics
Given the orientation and position of point “P”:
nx

n
 y
nz

0
 cos(  ) cos(    )


p
sin(  ) cos(    )
 

T 
sin(    )
1  

0

ax
oy
ay
oz
az
0
0
px 

py
 
pz 

1 
 T  T  T 
0
1
1
2
2
3
1
2
3
 cos(  ) sin(    )
sin(  )
1
2
3
 sin(  ) sin(    )
 cos(  )
cos(    )
0
0
0
3
0
ox
3
2
3
1
2
1
2
2
3
3
3
1
1
0
3
T
( A  B cos(  )) cos(  )   1 
 
( A  B cos(  )) sin(  ) 0
 
B sin(  )
 0 
 
1
 1 
2
1
2
1
2
Example: A 3 DOF RRR Robot
Inverse Kinematics
Equate elements (1,3) and (2,3):
a x  sin(  1 )

 1  tan
a y   cos(  1 ) 
Provided that
1
 ax

a
y





(a x  a y )  1
2
2
Equate elements (1,4) and (2,4):
p x  ( A  B cos(  2 )) cos(  1 )  cos(  2 ) 

px
1
 A

B  cos(  1 )

py

1
p y  ( A  B cos(  2 )) sin(  1 )  sin(  2 )  
 A
B  cos(  1 )

Example: A 3 DOF RRR Robot
Inverse Kinematics
If cos(1)0, then use px to find cos(2). Afterwards, find
sin(  2 )   1  cos ( 2 )
2
 2  tan
1
 sin(  2 ) 


 cos(  2 ) 
Otherwise use py to find sin(2) and then solve using
cos(  2 )   1  sin ( 2 )
2
 2  tan
1
 sin(  2 ) 


 cos(  2 ) 
Example: A 3 DOF RRR Robot
Inverse Kinematics
Equate elements (3,1) and (3,2):
n z  sin(  2   3 ) 
 ( 2   3 )  tan
o z  cos(  2   3 ) 
1
 nz 


 oz 
 3   2   3    2
Now find 1, 2, and 3 given the orientation and position of point “P”:
nx
n
 y
nz

0
ox
ax
oy
ay
oz
az
0
0
px   0
py   0
  
p z   1
 
1   0
1
0
0
1
0
0
0
0
5 
0 

 1

1 
Example: A 3 DOF RRR Robot
Inverse Kinematics
ax  0 
 1  tan
a y   1
1
 ax

a
y


0


Now cos(1)=10. We use px to find cos(2):
p x  5,
A  3,
B  2

px
1
cos(  2 )  
 A  1
B  cos(  1 )

sin(  2 )   1  cos ( 2 )  0
2
 2  tan
1
 sin(  2 ) 

0
 cos(  2 ) 
Example: A 3 DOF RRR Robot
Inverse Kinematics
n z   1
 ( 2   3 )  tan
oz  0 
1
 nz 


   90
 oz 
 3   2   3    2   90  0   90

nx
n
 y
nz

0
 0
 0
 
 1

 0
ox
ax
oy
ay
oz
az
0
0
1
0
0
1
0
0
0
0
px 
py 

pz 

1 
5 
0 

 1

1 

Z0
A=3
B=2
Y0
Y3
X0
C=1
Z3
P
X3
Forward & Inverse Kinematics Issues
Given a set of joint variables, the forward kinematics will always
produce an unique solution giving the robot global position and
orientation.
On the other hand, there may be no solution to the inverse
kinematics problem. The reasons include:
•The given global position of the arm may be beyond the robot
work space
•The given global orientation of the gripper may not be possible
given that the gripper frame must be a right hand frame
For the inverse kinematics problem, there may also exist multiple
solutions, i.e. the solution may not be unique.
Forward & Inverse Kinematics Issues
Example of multiple solutions given the same gripper global
position and orientation:
First solution
Second solution
Some solutions may not be feasible due to obstacles in the workspace
Summary
This lecture continues the the discussion on the analysis of the
forward and inverse kinematics of robots.
The following were covered:
•Problems of robot kinematics analysis using transformation
matrices
Download