You are on page 1of 52

ROBOT KINEMATICS

Purpose:
The purpose of this chapter is to introduce you to robot
kinematics, and the concepts related to both open and closed
kinematics chains. Forward kinematics is distinguished from
inverse kinematics.

ME 537 - Robotics
ME 537 - Robotics

In particular, you will


1. Review the concept of a kinematics chain
2. Distinguish serial from parallel robots structures.
3. Relate a robots degrees-of-freedom (dof) to the joint
structure constraints.
4. Define robot redundancy.
5. Define serial robot types based on primary dof.

6. Introduce D-H coordinates.


7. Examine forward and inverse kinematics for serial robots.
8. Examine forward and inverse kinematics for parallel robots.

ME 537 - Robotics
ME 537 - Robotics

Kinematics chain
Mechanisms can be configured as kinematics chains.
The chain is closed when the ground link begins and
ends the chain; otherwise, it is open.
joint 2
joint 1

link 2

linki
jointi

Fixed link 1

ME 537 - Robotics
ME 537 - Robotics

joint n - 1

link n

Degrees-of-freedom (F) of a mechanism


Assuming binary pair joints (joints supporting 2 links), the
degrees-of-freedom (F) of a mechanism is governed by the
equation
F = l (n - 1)

c
i 1

Define
F = mechanism degrees-of-freedom
n = number of mechanism links
j = number of mechanism joints
ci = number of constraints imposed by joint i
fi = degrees-of-freedom permitted by joint i
l = degrees-of-freedom in space in which mechanism functions

ME 537 - Robotics
ME 537 - Robotics

Grublers criterion
It is also true that

l = ci + f i
which leads to Grubler's Criterion:
j

F = l (n - j - 1) +

f
i 1

Example - 6-axis revolute robot(ABB IRB 4400):


Referencing figure and using previous page equation :
F = 6 (7 - 1) - 6 (5) = 6

"as expected

or by Grublers equation:
F = 6(7 6 1) + 6 (1) = 6 "as expected

ME 537 - Robotics
ME 537 - Robotics

Redundant degreesof-freedom .
A redundant joint is one that is
unnecessary because other joints
provide the needed position
and/or orientation. Can you see
the redundancy among the last 3
joints on the IRB 4400?

ME 537 - Robotics
ME 537 - Robotics

Redundant degrees-of-freedom
Redundant joints can generate passive degrees-offreedom, which must be subtracted from Grubler's
equation to get
j

F = l (n - j - 1) + f i - fp
i 1

A passive dof allows an intermediate link to rotate freely


about an axis defined by the two joints. A passive dof
cannot transfer torque.

ME 537 - Robotics
ME 537 - Robotics

Loop Mobility Criterion


The number of independent
loops (L) is the total number of
loops excluding the external
loop. For multiple loop chains it
is true that j = n + L -1 which
gives Euler's equation:

L=j- n +1
The figure applies this equation
for a 2 loop mechanism.

ME 537 - Robotics
ME 537 - Robotics

j = 8; n = 7
L=8-7+1=2

Loop Mobility Criterion


Combining Eulers equation with Grubler's
Criterion, we get the Loop Mobility Criterion:
fi = F + l L

ME 537 - Robotics
ME 537 - Robotics

Parallel robots
A parallel robot is a closed loop chain, whereas a serial robot
is an open loop chain. A hybrid mechanism is one with both
closed and open chains.
S
The figure shows the Stewart-Gough
platform. Determine the dof. Each S-P-S
P
combination generates a passive degree-ofS
freedom. Thus, apply
j

F = l (n - j - 1) + f i

- fp

i 1

l = 6; n = 14; j1 = 6; j3 = 12; fp = 6

to get

F = 6(14 - 18 -1) + (12 x 3 + 6) - 6 = 6

ME 537 - Robotics
ME 537 - Robotics

Dashed lines represent same


S-P-S joint combination as shown:
S = spherical joint; P = prismatic
joint)

....as expected!

Serial Robot Types


Serial robots can be
classified as revolute,
spherical, cylindrical, or
rectangular (translational,
prismatic, or Cartesian).
These classifications describe
the primary DOF (degreesof-freedom) which
accomplish the global motion
as opposed to the distal
(final) joints that accomplish
the local orientation.

ME 537 - Robotics
ME 537 - Robotics

Open Chain Link Coordinates


According to Denavit-Hartenberg (D-H) notation (Denavit, J. and
Hartenberg, "A Kinematic Notation for Lower-Pair Mechanisms Based on
Matrices," J. of Applied Mechanics, June, 1955, pp. 215-221.), only four
parameters (a, d, q,a) are necessary to define a frame in space (or joint
axis) relative to a reference frame:
z

a = minimum distance between line L (the z


axis of next frame) and z axis (mutually
orthogonal line between line L and z axis)
d

d = distance along z axis from z origin to


minimum distance intersection point
q = angle between x-z plane and plane
containing z axis and minimum distance
line
aangle between z axis and L .

ME 537 - Robotics
ME 537 - Robotics

q
x

d
y

Conventional D-H notation for serial


links/joints

ME 537 - Robotics
ME 537 - Robotics

D-H parameters applied to Puma robot

ME 537 - Robotics
ME 537 - Robotics

D-H parameters applied to Puma robot


Joint

ai

qi

di

ai

Range

90

-90

-150 to 150

432

149.5

-225 to 45

90

90

-45 to 225

432

-90

-110 to 170

90

-100 to 100

55.5

-265 to 265

ME 537 - Robotics
ME 537 - Robotics

D-H parameters and the HT


Given a revolute joint a point located on the ith link can be
located in i - 1 axes by the following transformation set which
consist of four homogeneous transformations (2 rotations
and 2 translations). The set that will accomplish this is
Ai = H(d,zi-1) H(q,z i-1) H(a ,xi) H(a,x i)
xi

Ai =

cq i
sq
i
0

- ca i s q i
cq i ca i

sa i sq i
- s a i cq i

sa i
0

ca i
0

ME 537 - Robotics
ME 537 - Robotics

a i cq i
a i sq i
di

(i = 1, ...n)
Why are the D-H
parameters applied as
shown to generate the
Ai transformation?

Other D-H Notation (used in CODE)


zi

Joint i

xi

z i-1
Joint i-1

zi+1

yi

ai

di
xi

ai
qi

ME 537 - Robotics
ME 537 - Robotics

Link i

Joint i+1

Other D-H Notation (used in CODE)


Four parameters must be specified:
ai = minimum distance between joint i axis (zi) and joint i-1 axis (zi1)
di = distance from minimum distance line (xi-1 axis) to origin of ith
joint frame measured along zi axis.
ai = angle between zi and zi-1 measured about previous joint frame
xi-1 axis.
qi = angle about zi joint axis which rotates xi-1 to xi axis in right hand
sense.
The xi axis is the minimum distance line defined from zi to zi+1; zi is
defined as the joint rotation or translation axis axis and yi by the right
hand rule (zi x xi). The origin of each joint frame is defined by the
minimum distance line intersection on the joint axis.

ME 537 - Robotics
ME 537 - Robotics

Other D-H Notation (used in CODE)


The transformation for this set of D-H parameters is

Ai =

- sq i
0
ai
cqi
sqi ca i cqi ca i - sa i - sa i d i
sq sa cq sa ca ca d
i
i
i
i i
i i

0
0
1
0

What are the major differences between conventional D-H


and CODE D-H?

ME 537 - Robotics
ME 537 - Robotics

Class problem: Derive the set of CODE D-H parameters


for the Puma robot being considered.
Joint

ai

qi

di

ai

Range

-150 to 150

-225 to 45

-45 to 225

-110 to 170

-100 to 100

-265 to 265

ME 537 - Robotics
ME 537 - Robotics

Forward Kinematics for Serial Robots


Given the A transformation matrices of one joint frame relative to
the preceding joint frame using conventional D-H notation, we can
relate any point in the ith link to the global reference frame by the
following transformation. Let vi be a point fixed to the ith link. Its
coordinates ui in the global frame are (n = # dof)
ui = A1 A2....Ai vi

( i = 1, 2, ... n)

Typically we represent the set of transformations above by a single


matrix called the T matrix
Ti = A1 A2....Ai
If i = n, then Tn locates the tool (or gripper) frame. We usually drop
the n subscript and simply use T.

ME 537 - Robotics
ME 537 - Robotics

Forward Kinematics using CODE D-H


The pose of a tool frame at the end of the robot can be
determined by the equation

T = A1A2A3...AnG
where T locates the tool relative to the robot base frame
and G locates the tool relative to the last joint frame.
Question: Why is G required in the CODE D-H notation,
but not in the conventional D-H notation?

ME 537 - Robotics
ME 537 - Robotics

Inverse kinematics for serial robots


Inverse kinematics raises the question:
Given that I know the desired pose of the tool, what
are the joint values required to move the tool to the
desired pose?
Forward kin:

T = A1A2A3...AnG
unknown

Inverse kin:

known

A1A2A3...An= T G-1
unknown

ME 537 - Robotics
ME 537 - Robotics

known

Inverse kinematics for Puma robot


The solution, calculated in two stages, first uses a position
vector from the robot base (place at waist) to the wrist.
This vector allows for the solution of the first three
primary DOF that accomplish the global motion. The
last 3 DOF (secondary DOF) are found using the
calculated values of the first 3 DOF and the orientation
joint frames T4, T5, and T6 .

ME 537 - Robotics
ME 537 - Robotics

Inverse kinematics for Puma robot

z0

y0
x0

sliding
y6
x6
Gripper

ME 537 - Robotics
ME 537 - Robotics

z6

approach

Inverse kinematics for Puma robot


Let the gripper frame be defined by the unit vector triad n,
s, and a , unit vectors directed along the tools x, y, and z
axes respectively. These are specified by the known pose of
the tool frame, i.e., the target frame. The origin of the 4th
joint frame is determined by q and the known offset of the
tool frame, d6.
Zo

q = p - d6a
Xo

Yo

q
p

z4

y4

d6

x4

ME 537 - Robotics
ME 537 - Robotics

s
a

Inverse kinematics for Puma robot


Applying T = A1 A2....A6 and using conventional D-H
notation, we multiply Ai together to get one matrix with 6
unknowns: q1, q2,..., q6. Setting the unknown terms equal to
the terms of the known target frame we generate 12
equations with 6 unknown joint angles. The course notes
have a full description of these equations, but the (1,1) term
looks like:

nx = C1 C23 C4 C5 C6 - S4 S 6 - S23 S 5 C6
-S 1 S 4 C5 C6 + C4 S 6
where C23 = cos(q2 + q3), etc.

ME 537 - Robotics
ME 537 - Robotics

Inverse kinematics for Puma robot


Since the last three joint axes intersect at a common point
(concurrent axes), which is the origin of the 4th joint frame,
we let q4 = q5 = q6 = 0 and also let d6 = 0 to reduce the
invkin (short for inverse kinematics) equations to those of
the 4th joint frame. At this point:

q = p]q

= q = q = d =0
5
6
6
4

ME 537 - Robotics
ME 537 - Robotics

Inverse kinematics for Puma robot


This gives the equations:

qx = C1 (d4 S23 + a2 C2) - d2 S1


qy = S1 (d4 S23 + a2 C2) + d2 C1

qz = d4 C23 - a2 S2
Remember that qx, qy, and qz are known. Is there any way
that we can solve these equations for the primary joint
angles q1, q2 and q3. ?

ME 537 - Robotics
ME 537 - Robotics

Inverse kinematics for Puma robot

Now q1 can be determined from the qx and qy components.


Let l = d4 S23 + a2 C2; thus,
qx = C1l - d2 S1 ;

qy = S1l + d2 C1

It can be shown that


2
2
2

d
l=
x
y
2

What does this form imply?

Solving for q1 we we get the solution: q 1 =

tan -1

l qy - d2 qx

l qx + d2 qy
We actually apply the atan2 function using the numerator
(sine) and denominator (cos) from the solution equation.

ME 537 - Robotics
ME 537 - Robotics

Inverse kinematics for Puma robot


How many solutions exist for q1? Explain. Can you relate
these solutions to the physical configuration of the Puma
robot?
The solution for q3 can be found by squaring the q
components adding to get

cos q3 = sqrt[ 1 - sin2q3]


q3 = tan-1

q 2x q 2y q 2z d 24 a 22 d 22

4d 24 a 22 q 2x q 2y q 2z d 24 a 22 d 22 2

The + soln is for the elbow above hand whereas the - soln is
for the elbow below hand.

ME 537 - Robotics
ME 537 - Robotics

Inverse kinematics for Puma robot


Now, given q3, we can expand and finally arrive at (use
atan2)
q 2 = tan -1

- qz a2 + d4 S 3 - d4 C3 qx2 + qy2 - d22

qz d4 C3 - a2 + d4 S 3

qx2 + qy2 - d22

The - soln corresponds to the left arm configuration, +


soln corresponds to right arm configuration.

ME 537 - Robotics
ME 537 - Robotics

Inverse kinematics for Puma robot


Obviously knowing permits definition of 0T3. To determine q4,
q5, and q6 we assume that an approach direction is known (a
known) and that hand orientation is specified (n, s). For the
PUMA robot we can arrange the joint axes such that

(z 3 x a)
z4 =
|| z 3 x a ||

(z4 axis direction cosines)

z5 = a

(z5 axis direction cosines)

y6 = s

(y6 axis direction cosines)

ME 537 - Robotics
ME 537 - Robotics

Inverse kinematics for Puma robot


Now given the above criteria, we can
solve for q4 from

C4 = y 3 z4

S4 = -x 3 z4

(= y 3 T z4)

y3
z3
y3

(= -x 3 T z4)

Determine x3 and y3 from 1st and 2nd


columns of 0T3 to get (use atan2)

q 4 = tan

-1

C1 ay - S1 ax
C1 C 23 a x + S1 C 23 a y - S23 az

ME 537 - Robotics
ME 537 - Robotics

q4

x3

z4
q4
x4

x3

Inverse kinematics for Puma robot


Refer to the course notes to get similar solutions for q5 and
q 6.
How many total invkin solutions are feasible for the Puma
robot?

How many solutions exist in practical applications?


What limits the number of invkin solutions that can be
applied?

ME 537 - Robotics
ME 537 - Robotics

Geometric solutions for inverse kinematics

q1
q2
q3 (x,y,z,q)
q3 is used to complete the tool orientation

ME 537 - Robotics
ME 537 - Robotics

Kinematics summary: serial robots


Forward & inverse kinematics are important to robotics.
Robot teach-pendant uses direct joint control to place the
robot tool at desired poses in space.
Target for an end-effector requires invkin solutions to
generate the necessary joint values.
D-H parameters provide a simple way of relating joint
frames to each other, although more than one D-H form
proliferate the application methods.
Invkin solutions can be complex depending on the robot
structure . Both analytical and geometric methods can be
applied.

ME 537 - Robotics
ME 537 - Robotics

Forward kinematics - parallel robots


A parallel mechanism is symmetrical if the
number of limbs is equal to the number of
degrees-of-freedom of the moving platform
joint type and joint sequence in each limb
are the same

number and location of the actuated joints are the same.


Otherwise, the mechanism is asymmetrical. We will examine
the kinematics for symmetrical mechanisms.

ME 537 - Robotics
ME 537 - Robotics

Parallel robot definitions


limb = a serial combination links
and joints between ground and
the moving rigid platform
connectivity of a limb (Ck) =
degrees-of-freedom associated
with all joints in a limb

ME 537 - Robotics
ME 537 - Robotics

Connectivity equation
Observation of symmetrical mechanisms will establish that
j

C
k 1

f
i 1

where j is the number of joints in the parallel mechanism and


m is the number of limbs.
What is the connectivity of a limb of the picker robot?

Answer 7!
Note that Grublers Criterion does not readily apply to parallel
robots because of joint redundancies.

ME 537 - Robotics
ME 537 - Robotics

Forward kinematics example


The course notes present the forward
kinematics solution for the Maryland
(or ABB picker) robot. This solution is
also found in Tsais text. It is complex
and will not be discussed here, but you
should review the solution to see how it
is done.
The reason for not examining this
solution is found in the question:

How would you use a teach


pendant to program this robot?

ME 537 - Robotics
ME 537 - Robotics

Program picker robot?


In reality you would probably
not command the joints directly,
but most likely command
translations in the u, v, and w
directions. Thus, you would not
likely drive this robot using
forward kinematics but only
apply inverse kinematics.

ME 537 - Robotics
ME 537 - Robotics

Inverse kinematics for picker robot


Assume that a desired position vector p
given. Find the joint angles to place point
P at p.
In reality, the gripper would not be
located at P, but be attached to the
moving platform. This is determined by
gripper frame G relative to the platform
coordinate axes. A target frame is
specified as T. The frame for point P is
determined from the fourth column of Tp
= TG-1. We designate this vector as p.

ME 537 - Robotics
ME 537 - Robotics

Inverse kinematics for picker robot


Given p we determine the location of point Ci. This is simple
because the moving platform cannot rotate and thus the line
between P and Ci translates only. Thus, given P (as
determined by p) and the distance h, we can determine Ci as
displaced from P by a vector of length h that is parallel to xi.
P
p

parallel to xi

Ci

zero state

xi
O

ME 537 - Robotics
ME 537 - Robotics

Inverse kinematics for picker robot


We can write a loop closure equation:
AiBi + BiCi = OP + PCi OAi
and express this equation in the limb i coordinate frame (xi, yi, zi).

ME 537 - Robotics
ME 537 - Robotics

Inverse kinematics for picker robot


Expressing the previous limb vector loop equation in the limb i
coordinate frame, we get the matrix equations: in terms of the
limb vector c shown by the green vector in the figure:
a cq1i b sq 3i c(q1i q 2i ) c xi

c yi
b cq 3i


a
s
q

b
s
q
s(
q

q
)
c zi
1i
3i
1i
2i

ci

c xi c i s i 0 p x h - r
c - s c 0 p 0
yi 0 i 0 i 1 y 0

p z
c zi

ME 537 - Robotics
ME 537 - Robotics

Inverse kinematics for picker robot


The locus of motion of link BiCi is a
sphere with center at Ci and radius b.
From the previous matrix equation we
can determine a solution for q3i as

P
h

b
Bi'

q3i = cos-1(cyi/b)

Ci

Bi

zi
a

r
Ai

ci

ME 537 - Robotics
ME 537 - Robotics

xi

Inverse kinematics for picker robot


Given q3i we can determine an equation for q2i by summing the
squares of the matrix equation to get
2ab sq3i cq2i + a2 + b2 = cxi2 + cyi2 + czi2
which leads to a solution for q2i as
q2i = cos-1(k)
where k = (cxi2 + cyi2 + czi2 - a2 - b2)/(2ab sq3i). Physically, we can
determine two solutions for q2i ("+" angle and "-" angle similar
to elbow up/down case).

ME 537 - Robotics
ME 537 - Robotics

Inverse kinematics for picker robot


The two solutions for q1i can be determined from the matrix
equation by expanding the double angle formulas, solving for
the sine and cosine of q1i and then using the atan2 function to
get q1i.

a cq1i b sq 3i c(q1i q 2i ) c xi

c yi
b cq 3i
a sq b sq s( q q )
1i
3i
1i
2i

c zi

ME 537 - Robotics
ME 537 - Robotics

Inverse kinematics for picker robot


An alternative solution is to sum the squares of the 1st and 3rd
equations after rearranging them to this form (q3i now known):
a cq1i cxi = b sq3i c(q1i + q21)
a sq1i czi = b sq3i s(q1i + q21)

leading to:
cxi cq1i + czi sq1i = (a2 + cxi2 + czi2 - b2 s2q3i)/(2 a)

This is the familiar form we introduced earlier in the course and


can be arranged to a double angle sine formula to solve for q1i ,
the actuation joint for each limb. This approach does not
require a solution for q2i .

ME 537 - Robotics
ME 537 - Robotics

Inverse kinematics for picker robot


It is possible that the target frame may fall outside the robot's
reach; thus, we must examine the special cases:
Generic solution - circle of link AB intersects the BC
sphere at two points, giving two solutions.
Singular solution - circle tangent to sphere resulting in one
solution.
Singular solution - circle lies on sphere -- physically
unrealistic case!

No solution - circle and sphere do not intersect

ME 537 - Robotics
ME 537 - Robotics

Kinematics summary: parallel robots

Forward kinematics particularly useful.


Parallel robots use invkin to program configurations
Commercial parallel robots are symmetrical.
Grubler's Criterion does not readily apply to this class of
complex mechanisms, because of designed redundancies
and special constraints.

Parallel robots are inherently stiffer with less inertia;


thus, they can move much faster.

ME 537 - Robotics
ME 537 - Robotics

You might also like