Kinematics - Amirkabir University of Technology

Download Report

Transcript Kinematics - Amirkabir University of Technology

Kinematics
Time to Derive Kinematics Model
of the Robotic Arm
Amirkabir University of Technology
Computer Engineering & Information Technology Department
‫سینماتیک مستقیم‬
Where is my hand?
Direct Kinematics:
HERE!
‫سینماتیک بازوی صنعتی‬
Objective:
To drive a method to compute the
position and orientation of the
manipulator’s end-effector relative to the
base of the manipulator as a function of
the joint variables.
Degrees of Freedom
The degrees of freedom of a rigid body is defined as
the number of independent movements it has.
The number of :
• Independent position
variables needed to locate all
parts of the mechanism,
• Different ways in which a
robot arm can move,
• Joints
DOF of a Rigid Body
In a plane
In space
Degrees of Freedom
3D Space = 6 DOF
3 position
3 orientation
In robotics:
DOF = number of independently driven joints
As DOF
positioning accuracy
computational complexity
cost
flexibility
power transmission is
more difficult
Robot Links and Joints
A manipulator may be thought of as a set of
bodies (links) connected in a chain by joints.
In open kinematics chains (i.e. Industrial
Manipulators):
{No of D.O.F. = No of Joints}
Lower Pair
The connection between a pair of bodies
when the relative motion is characterized
by two surfaces sliding over one another
The Six Possible Lower Pair Joints
Higher Pair
A higher pair joint is one which contact
occurs only at isolated points or along a
line segments
Robot Joints
Revolute Joint
1 DOF ( Variable - q)
Spherical Joint
3 DOF ( Variables - q 1, q 2, q 3)
Prismatic Joint
1 DOF (linear) (Variables - d)
Robot Specifications
Number of axes
Major axes, (1-3) =>
position the wrist
Minor axes, (4-6) => orient
the tool
Redundant, (7-n) =>
reaching around obstacles,
avoiding undesirable
configuration
An Example - The PUMA 560
2
1
The PUMA 560 has SIX revolute joints.
A revolute joint has ONE degree of freedom
( 1 DOF) that is defined by its angle.
3
4
There are two more joints on the
end-effector (the gripper)
Note on Joints
Without loss of generality, we will consider
only manipulators which have joints with a
single degree of freedom.
A joint having n degrees of freedom can
be modeled as n joints of one degree of
freedom connected with n-1 links of zero
length.
Link
A link is considered as a rigid body which
defines the relationship between two
neighboring joint axes of a manipulator.z zn+1n
zn
an
qn
q n+1
xn
Link n
Joint n+1
Joint n
x n+1
xn
The Kinematics Function of a Link
The kinematics
function of a link is to
maintain a fixed
relationship between
the two joint axes it
supports.
This relationship can
be described with
two parameters: the
link length a, the link
twist a
Link Length
Is measured along a line which is mutually
perpendicular to both axes.
The mutually perpendicular always exists
and is unique except when both axes are
parallel.
Link twist
Project both axes i-1 and i onto the plane
whose normal is the mutually perpendicular
line, and measure the angle between them
Right-hand sense
Link Length and Twist
Axis i-1
ai-1
Axis i
Joint Parameters
A joint axis is established at the connection of two links.
This joint will have two normals connected to it one
for each of the links.
The relative position of two links is called link offset dn
whish is the distance between the links (the
displacement, along the joint axes between the links).
The joint angle qn between the normals is measured in
a plane normal to the joint axis.
Link and Joint Parameters
Axis i
Axis i-1
qi
ai-1
di
Link and Joint Parameters
4 parameters are associated with each link. You
can align the two axis using these parameters.
Link parameters:
an
an
the length of the link.
the twist angle between the joint axes.
Joint parameters:
qn
the angle between the links.
dn
the distance between the links
Link Connection Description:
For Revolute Joints: a, a, and d.
are all fixed, then “qi” is the.
Joint Variable.
For Prismatic Joints: a, a, and q.
are all fixed, then “di” is the.
Joint Variable.
These four parameters: (Link-Length ai-1), (Link-Twist ai-1(, (Link-Offset di),
(Joint-Angle qi) are known as the Denavit-Hartenberg Link Parameters.
Links Numbering Convention
Base of the arm: Link-0
1st moving link: Link-1
.
.
.
.
.
.
Last moving link Link-n
Link 2
2
Link 1
0
1
Link 0
A 3-DOF Manipulator Arm
3 Link 3
First and Last Links in the Chain
a0= an=0.0
a0= an=0.0
If joint 1 is revolute: d0= 0 and q1 is arbitrary
If joint 1 is prismatic: d0= arbitrary and q1 = 0
Special cases:
If joint axes zi-1 and zi intersect, parameter ai
is zero.
If the common perpendicular to zi-1 and zi
intersects zi-1 at the origin of frame Fi-1, then
di-1 is zero.
If joint axes zi-1 and zi are parallel, angle ai is
zero.
Affixing Frames to Links
In order to describe the location of each link
relative to its neighbors we define a frame
attached to each link.
The Z axis is coincident with the joint axis i.
The origin of frame is located where ai
perpendicular intersects the joint i axis.
The X axis points along ai( from i to i+1).
If ai = 0 (i.E. The axes intersect) then Xi is
perpendicular to axes i and i+1.
The Y axis is formed by right hand rule.
Affixing Frames to Links
First and last links
Base frame (0) is arbitrary


Make life easy
Coincides with frame {1} when joint parameter is 0
Frame {n} (last link)

Revolute joint n:
 Xn = Xn-1 when qn = 0
 Origin {n} such that dn=0

Prismatic joint n:
 Xn such that qn = 0
 Origin {n} at intersection of joint axis n and Xn when dn=0
Affixing Frames to Links
Joint n
Joint n-1
Link n
Joint n+1
Link n-1
zn
zn-1
xn
yn-1
an-1
xn-1
zn+1
dn
yn
an
an
xn+1
yn+1
Affixing Frames to Links
Note: assign link frames so as to cause as many link
parameters as possible to become zero!
The reference vector z of a link-frame is always on a joint
axis.
The parameter di is algebraic and may be negative. It is
constant if joint i is revolute and variable when joint i is
prismatic.
The parameter ai is always constant and positive.
a i is always chosen positive with the smallest possible
magnitude.
The Kinematics Model
The robot can now be kinematically modeled by
using the link transforms ie:
T  T1T2T3 Ti Tn
0
n
Where
0 T is the pose of the end-effector relative to
n
base;
Ti is the link transform for the ith joint;
and
n is the number of links.
The Denavit-Hartenberg (D-H)
Representation
In the robotics literature, the DenavitHartenberg (D-H) representation has been
used, almost universally, to derive the
kinematic description of robotic
manipulators.
The Denavit-Hartenberg (D-H)
Representation
The appeal of the D-H representation lies in
its algorithmic approach.
The method begins with a systematic
approach to assigning and labeling an
orthonormal (x,y,z) coordinate system to
each robot joint. It is then possible to relate
one joint to the next and ultimately to
assemble a complete representation of a
robot's geometry.
Denavit-Hartenberg
Parameters
Axis i
qi
Axis i-1
di
ai-1
The Link Parameters
ai = the distance from zi to zi+1.
measured along xi.
ai = the angle between zi and zi+1.
measured about xi.
di = the distance from xi-1 to xi.
measured along z i.
qi = the angle between xi-1 to xi.
measured about z i
General Transformation Between
Two Bodies
In D-H convention, a general transformation
between two bodies is defined as the product
of four basic transformations:
A translation along the initial z axis by d,
A rotation about the initial z axis by q,
A translation along the new x axis by a, and.
A rotation about the new x axis by a.
A General Transformation in D-H
Convention
D-H transformation for adjacent coordinate
frames:
T
i 1
i
 Tz ,q Tz ,d Tx ,aTx ,a I 44
Denavit-Hartenberg Convention
D1. Establish the base coordinate system. Establish a right-handed
orthonormal coordinate system ( X 0 , Y0 , Z 0 ) at the supporting base
with Z 0 axis lying along the axis of motion of joint 1.
D2. Initialize and loop Steps D3 to D6 for I=1,2,….n-1
D3. Establish joint axis. Align the Zi with the axis of motion (rotary
or sliding) of joint i+1.
 D4. Establish the origin of the ith coordinate system. Locate the
origin of the ith coordinate at the intersection of the Zi & Zi-1 or at
the intersection of common normal between the Zi & Zi-1 axes and
the Zi axis.
 D5. Establish Xi axis. Establish X i  (Zi1  Zi ) / Zi1  Zi
or along
the common normal between the Zi-1 & Zi axes when they are
parallel.
 D6. Establish Yi axis. Assign Yi  (Zi  X i ) / Zi  X i
to complete
the right-handed coordinate system.
Denavit-Hartenberg Convention
D7. Establish the hand coordinate system
D8. Find the link and joint parameters : d,a,a,q
D-H transformation for adjacent coordinate
frames:
i 1
T
i
 Tz ,q Tz ,d Tx ,aTx ,a I 44
Example
Z3
Z1
Z0
Y0
Joint 3
O3
Y1
X3
d2
Joint 1
O0 X0
Joint 2
O1 X1 O2 X2
Y2
a0
a1
Joint i
ai
ai
di
qi
1
0
a0
0
q0
2
-90
a1
0
q1
3
0
0
d2
q2
Example
Ti i 1
Cq i
 Sq
 i
 0

 0
 Ca i Sq i
Sa i Sq i
Ca i Cq i
 Sa i Cq i
Sa i
Ca i
0
0
T03  (T 01)(T 21)(T 23)
ai Cq i 
ai Sq i 
di 

1 
Example
Joint i
ai
ai
di
qi
1
0
a0
0
q0
2
-90
a1
0
q1
3
0
0
d2
q2
cosθ 0

1  sinθ 0
T 0
 0

 0
cosθ1

2  sinθ1
T 1
 0

 0
cosθ 2
sin q
2
T 23 
 0

 0
 sinθ 0
cosθ 0
0
0
0 a0 cos q 0 
0 a0 sin q 0 
1
0 

0
1 
0
 sin q1
0
cos q1
1
0
0
0
 sinθ 2
cos q 2
0
0
a1 cos q1 
a1 sin q1 
0 

1 
0
0 0 
1 d2 

0 1
0
Example (3.3):
Link Frame Assignments
Example (3.3):
 sq1
 cq1
 sq ca cq ca
1
0
1
0
0

T

1
 sq1sa 0 cq1sa 0

0
 0
cq 2  sq 2 0
 sq
cq 2 0
2
1

2T 
 0
0
1

0
0
 0
 cq1  sq1 0
 sa 0  sa 0 d1   sq1 cq1 0

ca 0
ca 0 d1   0
0
1
 
0
1  0
0
0
L1 
cq3  sq3 0 L2 
 sq

0 
c
q
0
0
3
3
2


T

3
 0
0
0
1 0



1
0
0 1
 0
0
a0
0
0
0

1
Example (3.3):
c123  s123 0.0 l1c1  l2 c12 
s

c
0
.
0
l
s

l
s
123
123
1 1
2 12 
B
0

T

T

.
W
3
 0.0 0.0 1.0
0.0 


0
0
0
1


Example:SCARA Robot
Example:SCARA Robot
The location of the sliding axis Z2 is arbitrary, since it is a
free vector. For simplicity, we make it coincident with Z3 .
thus a2 and d2 are arbitrarily set.
The placement of O3 and X3 along Z3 is arbitrary, since
Z2 and Z3 are coincident. Once we choose O3, however,
then the joint displacement d3 is defined.
We have also placed the end link frame in a convenient
manner, with the Z4 axis coincident with the Z3 axis and
the origin O4 displaced down into the gripper by d4.
Example: Puma 560
Example: Puma 560
Joint i
qi
ai
1
q1
0
0
0
2
q2
-90
0
d2
3
q3
0
a2
d3
4
5
q4
q5
90
-90
a3
0
d4
0
6
q6
0
0
0
ai(mm) di(mm)
Forearm of a PUMA
d4
x4
x3
a3
y3
z4
x6
x5
y5
Spherical joint
z6
Example: Puma 560
Different Configuration
Link Coordinate Parameters
PUMA 560 robot arm link coordinate parameters
Joint i
qi
ai
1
q1
-90
2
q2
0
431.8 149.09
3
q3
90
-20.32
0
4
5
q4
q5
-90
90
0
0
433.07
0
6
q6
0
0
56.25
ai(mm) di(mm)
0
0
Example: Puma 560
Example: Puma 560
The Tool Transform
A robot will be frequently picking up objects or tools.
Standard practice is to to add an extra homogeneous
transformation that relates the frame of the object or
tool to a fixed frame in the end-effector.
Kinematic Calibration
How one knows the DH parameters?
Certainly when robots are built, there are design
specifications. Yet due to manufacturing tolerances,
these nominal parameters will not be exact.
The process of kinematic calibration determines
these nominal parameters experimentally.
Kinematic calibration is typically accomplished
with an external metrology system, although
alternatives that do not require a metrology system
exist.
Example Problem:
You are have a three link arm that starts out aligned in the x-axis.
Each link has lengths l1, l2, l3, respectively. You tell the first one to move by 1
, and so on as the diagram suggests. Find the Homogeneous matrix to get the
position of the yellow dot in the X0Y0 frame.
Y3
3
Y2
2
2
X3
3
X2
H = Rz(1 ) * Tx1(l1) * Rz(2 ) * Tx2(l2) * Rz(3 )
Y0
1
1
X0
i.e. Rotating by 1 will put you in the X1Y1 frame.
Translate in the along the X1 axis by l1.
Rotating by 2 will put you in the X2Y2 frame.
and so on until you are in the X3Y3 frame.
The position of the yellow dot relative to the X3Y3 frame is
(l1, 0). Multiplying H by that position vector will give you the
coordinates of the yellow point relative the the X0Y0 frame.
Relative Pose between 2 links
i
i-1
Visual Approach - “A way to visualize
the link parameter a(i-1) is to imagine
an expanding cylinder whose axis is the
Z(i-1) axis - when the cylinder just
touches the joint axis i the radius of the
cylinder is equal to a(i-1).”
(Manipulator Kinematics)
DH convention: Assign Z axes
Use actuation as a guide


Prismatic – joint slides along zi
Revolute – joint rotates around zi
Establish base frame {0}:

Nearly arbitrary
Start at base and assign frames 1,…,N


Pick x-axis and origin
y-axis chosen to form a right hand system
DH convention: Assign Z axes
Use actuation as a guide


Prismatic – joint slides along zi
Revolute – joint rotates around zi
Establish base frame {0}:

Nearly arbitrary
Start at base and assign frames 1,…,N


Pick x-axis and origin
y-axis chosen to form a right hand system
Robot Base
Often base is “given”
or some fixed point on
the work-table is used.
z0 is along joint axis 1
Original:

any point on z0 for
origin
Modified DH:

{0} is defined to be
completely co-incident
with the reference
system {1}, when the
variable joint
parameter, d1 or q1 , is
DH convention: Assign X axes
Start at base and assign frames 1,…,N


Pick x-axis and origin
y-axis chosen to form a right hand system
Consider 3 cases for zi-1 and zi:



Not-coplanar
Parallel
Intersect
DH convention: x axis
• zi-1 and zi are not-coplanar
• Common normal to axes is the “link” axis
• Intersection with zi is origin
zi-1
Xi
Usually, xi
points from
frame i-1 to i
zi
DH convention: x axis
• zi and zi-1 are parallel
• Infinitely many common normals
• Pick one to be the “link” axis
• Choose normal that passes through origin of
frame {i-1} pointing toward zi
• Origin is intersection of xi with zi
Xi
zi-1
zi
DH convention: x axis
If joint axes zi-1 and zi
intersect, xi is normal to
the plane containing the
axes
zi
xi = (zi-1  zi )
zi-1
link i
Xi
DH convention: Origin non-coplanar Z
Origin of frame {i} is placed at intersection of joint
axis and link axis
zi
xi
DH convention: y axis
• Yi is chosen to make a right hand frame
xi points
from frame
i-1 to i
Zi
Yi
xi
DH convention: Origin parallel Z
• zi and zi-1 are parallel
• Origin is intersection of xi with zi
zi-1
zi
xi
DH convention: x axis - parallel Z
• zi and zi-1 are parallel
• Origin is intersection of xi with zi
• Yi is chosen to make a right hand frame
zi-1
zi
yi
xi
DH convention: origin
If joint axes intersect, the
origin of frame {i} is
usually placed at
intersection of the joint
axes
zi
zi-1
link i
xi
DH convention: y axis
Yi is chosen to make a
right hand frame
zi
zi-1
yi
link i
xi
3 Revolute Joints
Y2
Z1
Z0
X2
X0
d2
X1
Y0
Y1
a0
Denavit-Hartenberg Link
Parameter Table
a1
i
a(i-1)
a(i-1)
di
qi
1) To describe the robot with its
variables and parameters.
0
0
0
0
q0
2) To describe some state of the
robot by having a numerical values
for the variables.
1
0
a0
0
q1
2
-90
a1
d2
q2
Notice that the table has two uses:
DH Example: “academic
manipulator”
3 revolute joints
joint 1
R
Shown in home position
Link 2
Link 3
Link 1
joint 2
L1
joint 3
L2
DH Example: “academic
manipulator”
Z is axis of actuation for joint i+1
i
Z0
Z0 and Z1 are not co-planar
Z1 and Z2 are parallel
q1
Z1
q2
Z2
q3
DH Example: “academic
manipulator”
Z and Z are not co-planar:
0
1
x0 is the common normal
Z0
q1
x1
x2
x3
x0
Z1
q2
Z2
q3
Z3
DH Example: “academic
manipulator”
Z and Z are not co-planar:
0
1
x0 is the common normal
Z0
q1
x1
x2
x3
x0
Z1
q2
Z2
q3
Z3
Z1 and Z2 are parallel :
x1 is selected as the common
normal that lies along the
center of the link
DH Example: “academic
manipulator”
Z and Z are not co-planar:
0
1
x0 is the common normal
Z0
q1
x1
x2
x3
x0
Z1
q2
Z2
q3
Z3
Z2 and Z3 are parallel :
x2 is selected as the common
normal that lies along the
center of the link
DH Example: “academic
manipulator”
Shown with joints in non-zero
positions
Z0
q2
q1
x0
x1
x2
q3
z3
x3
Z2
Z1
Observe that frame i moves with
link i
DH Example: “academic
Link lengths given
manipulator”
a = 90 (rotate by 90 around x
R
Z0
o
1
align Z0 and Z1)
L2
L1
x1
a1
o
x2
x3
x0
Z1
Z2
Z3
0
to
DH Example: “academic
manipulator” Build table
Z0 R
q1
a1
L2
L1
x1
x2
x3
x0
Z1
Link
1
2
3
q2
Z2
Var
q1
q2
q3
q3
q
q1
q2
q3
Z3
d
0
0
0
a
90o
0
0
a
R
L1
L2
DH Example: “academic
manipulator”
Link
1
2
3
Var
q1
q2
q3
q
q1
q2
q3
d
0
0
0
a
90o
0
0
a
R
L1
L2
DH Example: “academic
manipulator”
DH Example: “academic
z
x
manipulator”
z
0
3
q2
q1
x0
x1
x2
q3
3
z2
z1
x1 axis expressed
wrt {0}
y1 axis expressed
wrt {0}
z1 axis expressed
wrt {0}
Origin of {1}
w.r.t. {0}
DH Example: “academic
z
x
manipulator”
z
0
3
q2
q1
x0
x1
x2
q3
3
z2
z1
x2 axis expressed
wrt {1}
y2 axis expressed
wrt {1}
z2 axis expressed
wrt {1}
Origin of {2}
w.r.t. {1}
DH Example: “academic
z
x
manipulator”
z
0
3
q2
q1
x0
x1
x2
q3
3
z2
z1
x3 axis expressed
wrt {2}
y3 axis expressed
wrt {2}
z3 axis expressed
wrt {2}
Origin of {3}
w.r.t. {2}
DH Example: “academic
manipulator”
where
DH Example: “academic
manipulator” – alternate endeffector frame
Zi is axis of actuation for joint i+1
Z0
q1
Z1 q2
Z0 and Z1 are not co-planar
Z1 and Z2 are parallel
Z2
q3
Pick this z3
DH Example: “academic
manipulator” – alternate endeffector frame
Z0
y2
q1
a1
x1
x2
x0
Z1
q2
Z2
Z3
q3
Would need
to rotate
about y2
here!
DH Example: “academic
manipulator” – alternate endeffector frame
Z0
x’2
q1
a1
x1
x2
x0
Z1
q2
q3
Z3
Solution: Add
“offset” to rotation
about z2
(q +90o )
DH Example: “academic
manipulator” – alternate endeffector
frame
Z
0
x’2
q1
a1
x1
L2
x3
x2
x0
Z1
q2
Z2
Z3
q3
Now can
rotate about
x’ to align z2
and z3
DH Example: “academic manipulator” –
alternate end-effector frame
Link
1
2
3
e
q
Var
q1
q1
q2
q2
q3 q3 +90o
-
d
0
0
0
a
90o
0
90o
a
R
L1
0
L2
DH Example: “academic manipulator” –
alternate end-effector frame
x3
Z0 R
L1
q1
a1
x’2
x1
Z3
L2
x2
x0
Z1
Link
1
2
3
q2
Z2
q3
q
Var
q1
q1
q2
q2
q3 q3 +90o
d
0
0
0
a
90o
0
90o
a
R
L1
0
DH Example: “academic manipulator” –
alternate end-effector frame
x3
Z0 R
L1
q1
a1
x’2
x1
x2
x0
Z1
q2
Z2
Z3
L2
q3
Z3
DH Example: “academic manipulator” –
alternate end-effector frame
x3
Z0 R
L1
q1
a1
x’2
x1
x2
x0
Z1
q2
Z2
Z3
L2
q3
Z3
DH Example: “academic manipulator” –
alternate end-effector frame
x3
Z0 R
L1
q1
a1
x’2
x1
x2
x0
Z1
q2
Z2
Z3
L2
q3
Z3
Next Course
Inverse Kinematics
Summary: Robot Forward
Kinematics Analysis
1. Identify robot dimensions and understand its geometry.
2. Number Links and Joints.
 Base = Link 0
 1st Joint = Joint 1
3. Identify Joint Axes, type and direction of positive motions.
4. Draw Common Normals (CNs) and find their intersections with joint
axes. Define two points:
 AN = intersection of Axis N with CN to Axis N+1
 BN = intersection of Axis N with CN to Axis N-1
5. Assign Link Frames.
 Origin of Frame N is at AN
 ZN points along Axis N.
 XN points along CN to BN+1.
 YN completes a right handed coordinate system.
Q:What if there is no CN because the axes intersect?
 A:Then choose XN to be normal to ZN and ZN+1.
Q:What if there is no unique CN because ZN and ZN+1 are parallel
 A:Then choose one. Typically, you can simplify subsequent analysis
by choosing a CN which intersects BN.