Title: Introduction to Robotics Lecture II
1Introduction to RoboticsLecture II
- Alfred Bruckstein
- Yaniv Altshuler
2Denavit-Hartenberg
- Specialized description of articulated figures
- Each joint has only one degree of freedom
- rotate around its z-axis
- translate along its z-axis
3Denavit-Hartenberg
- One degree of freedom very compact notation
- Only four parameters to describe a relation
between two links - link length
- link twist
- link offset
- link rotation
4Denavit-Hartenberg
- Link length ai
- The perpendicular distance between the axes of
jointi and jointi1
5Denavit-Hartenberg
- Link twist ai
- The angle between the axes of jointi and jointi1
- Angle around xi-axis
6Denavit-Hartenberg
- Link offset di
- The distance between the origins of the
coordinate frames attached to jointi and jointi1 - Measured along the axis of jointi
7Denavit-Hartenberg
- Link rotation (joint angle) fi
- The angle between the link lenghts ai-1 and ai
- Angle around zi-axis
8Denavit-Hartenberg
- How to compute the parameters to describe an
articulated figure
- Compute the link vector ai and the link length
- Attach coordinate frames to the joint axes
- Compute the link twist ai
9Denavit-Hartenberg
- Compute the link offset di
- Compute the joint angle fi
- Compute the transformation (i-1)Ti which
transforms entities from linki to linki-1
10Denavit-Hartenberg
- Compute the link vector ai and the link length
- Attach coordinate frames to the joint axes
- Compute the link twist ai
- Compute the link offset di
- Compute the joint angle fi
- Compute the transformation (i-1)Ti which
transforms entities from linki to linki-1
11Denavit-Hartenberg
The link length ai is the shortest distance
between the joint axes jointi and jointi1.
Let the joint axes be given by the expression
Where pi is a point on axis of jointi and ui is
one of its direction vectors (analogous for
jointi1).
12Denavit-Hartenberg
13Denavit-Hartenberg
- There are three methods to compute the link
vector ai and the link length
14Denavit-Hartenberg
Method 1 The Pseudo-naive approach
The shortest distance ai is the length of the
vector connecting the two axes, and perpendicular
to both of them.
Which can be expressed
15Denavit-Hartenberg
Lets find the points oi and oai where this
distance exists.
16Denavit-Hartenberg
17Denavit-Hartenberg
Multiplying respectively by ui and ui1, we
obtain the two following equations
18Denavit-Hartenberg
Solution
19Denavit-Hartenberg
Finally, using and
we obtain
20Denavit-Hartenberg
Method 2 The Geometric approach
The vector ui x ui1 gives the perpendicular
vector to both axes. Lets find out where it is
located on the joint axes.
We can go some distance s from point pi along the
axisi, and then go some distance k along ui x
ui1. Finally go some distance t along the
axisi1 to arrive at point pi1.
21Denavit-Hartenberg
We obtain the equation
There are three unknowns.
22Denavit-Hartenberg
Lets first eliminate the unknown k from the
equation
by multiplying by ui
23Denavit-Hartenberg
Lets first eliminate the unknown k from the
equation
by multiplying by ui1
24Denavit-Hartenberg
Now we shall eliminate the s and t from the
equation
by multiplying by ui x ui1
25Denavit-Hartenberg
We have obtained a system of three equations in
the unknowns s, t, k
26Denavit-Hartenberg
From
,
it can be seen that the shortest distance between
jointi and jointi1 is given by the vector
Where
27Denavit-Hartenberg
From
and
, we can compute s and t
28Denavit-Hartenberg
Finally, using and
we obtain
29Denavit-Hartenberg
Method 3 The Analytic approach
The distance between two arbitrary points located
on the joint axes jointi and jointi1 is
30Denavit-Hartenberg
The link length of linki, ai, is the minimum
distance between the joint axes
31Denavit-Hartenberg
A necessary condition is
32Denavit-Hartenberg
Which is equivalent to their numerators being
equal to 0
33Denavit-Hartenberg
Rewriting this system yields
34Denavit-Hartenberg
Whose solution are
35Denavit-Hartenberg
Finally, using and
we obtain
36Denavit-Hartenberg
oi and oai are the closest points on the axes of
jointi and jointi1. We deduce that the link
vector ai and the link length ai
37Denavit-Hartenberg
The link vector ai
38Denavit-Hartenberg
Calculating the scalar products and,
both equal to 0, proves that the vector ai is
perpendicular to both axes of jointi and jointi1
39Denavit-Hartenberg
- Three methods
- How do we actually compute ai and ai2 ?
40Denavit-Hartenberg
The link vector ai is perpendicular to both of
the axes of jointi and jointi1. The unit vector
is parallel to the link vector ai.
41Denavit-Hartenberg
Given two points pi and pi1 on the axes of
jointi and jointi1, the link length can be
computed as
And the link vector
42Denavit-Hartenberg
- Special cases
- The joint axes intersect
- The shortest distance ai is equal to zero
- The link vector is the null vector
43Denavit-Hartenberg
- The joint axes are parallel
- There is no unique shortest distance
oi can be chosen arbitrarily, so we should chose
values that offset the most of Denavit-Hartenberg
parameters
44Denavit-Hartenberg
- The first joint
- There is no link preceding it
- We use a base link link0
- Its link frame should coincide with the link
frame of link1 - Most of the Denavit-Hartenberg parameters will be
equal to zero
45Denavit-Hartenberg
- The last joint
- There is no link succeding it
- We use arbitrary values so that most of
Denavit-Hartenberg parameters are equal to zero
46Denavit-Hartenberg
- Compute the link vector ai and the link lenght
- Attach coordinate frames to the joint axes
- Compute the link twist ai
- Compute the link offset di
- Compute the joint angle fi
- Compute the transformation (i-1)Ti which
transforms entities from linki to linki-1
47Denavit-Hartenberg
- Identify the joint axes
- Identify the common perpendiculars of successive
joint axes - Attach coordinate frames to each joint axes
48Denavit-Hartenberg
Identifying the joint axes
49Denavit-Hartenberg
Identifying the common perpendiculars
50Denavit-Hartenberg
Attaching the frames
51Denavit-Hartenberg
- Compute the link vector ai and the link lenght
- Attach coordinate frames to the joint axes
- Compute the link twist ai
- Compute the link offset di
- Compute the joint angle fi
- Compute the transformation (i-1)Ti which
transforms entities from linki to linki-1
52Denavit-Hartenberg
Remember
53Denavit-Hartenberg
Lets define the function
54Denavit-Hartenberg
We then have
55Denavit-Hartenberg
- Compute the link vector ai and the link lenght
- Attach coordinate frames to the joint axes
- Compute the link twist ai
- Compute the link offset di
- Compute the joint angle fi
- Compute the transformation (i-1)Ti which
transforms entities from linki to linki-1
56Denavit-Hartenberg
57Denavit-Hartenberg
- Compute the link vector ai and the link lenght
- Attach coordinate frames to the joint axes
- Compute the link twist ai
- Compute the link offset di
- Compute the joint angle fi
- Compute the transformation (i-1)Ti which
transforms entities from linki to linki-1
58Denavit-Hartenberg
59Denavit-Hartenberg
- Compute the link vector ai and the link lenght
- Attach coordinate frames to the joint axes
- Compute the link twist ai
- Compute the link offset di
- Compute the joint angle fi
- Compute the transformation (i-1)Ti which
transforms entities from linki to linki-1
60Denavit-Hartenberg
This transformation is done in several steps
- Rotate the link twist angle ai-1 around the axis
xi - Translate the link length ai-1 along the axis xi
- Translate the link offset di along the axis zi
- Rotate the joint angle fi around the axis zi
61Denavit-Hartenberg
62Denavit-Hartenberg
63Denavit-Hartenberg
64Denavit-Hartenberg
65Denavit-Hartenberg
Multiplying the matrices
66Denavit-Hartenberg
By specifying the transformation
for all joints we can specify a
transformation form linkN to the base link0
Lets denote the joint
parameters of jointi.
We obtain
67End effector
- End effector - the last coordinate system of
figure - Located in joint N.
- But usually, we want to specify it in base
coordinates.
68End effector
- A transformation from the link N to the base
69End effector
- We can also express it as
- three rotations (around each of the coordinate
axes) - followed by a translation
- How can we establish a relation with the other
expression ?
70End effector
- Location
- The origin of a coordinate frame relative to some
base coordinate frame is specified by the
translation
71End effector
- Orientation
- Any 3D orientation relative to some base
coordinate frame can be specified by - three rotations, one around each of the
coordinate axes.
72End effector
- Orientation
- These rotations are named roll, pitch, yaw
- We do them in this order around x, y, z.
73End effector
- Orientation
- The yaw transformation can be expressed
74End effector
- Orientation
- The pitch transformation can be expressed
75End effector
- Orientation
- The roll transformation can be expressed
76End effector
- Orientation
- The roll, pitch and yaw transformation is then
expressed
77End effector
- Finally, the transformation from a coordinate
frame to the base frame is expressed
78End effector
- Remember that can be
expressed as a 4x4 matrix with elements mij -
functions of joint parameters ?1,...,?N. - Lets omit them for readability
79End effector
- As the two transformations
and do the same thing
80End effector
- We obtain directly the translation vector
81End effector
- We can obtain the yaw angle
Because
arctan is p-periodic. Lets use our function
arctan2 to get the right angle.
82End effector
- Knowing the yaw angle, we can obtain the pitch
angle
Because
Again, lets use our function arctan2
83End effector
- We can obtain the roll angle
Because
Again, lets use our function arctan2
84End effector
- Lets define the state vector
85End effector
The state vector is composed of elements of this
matrix. Its also a function of joint parameters