1
1
Introduction to Robotics
5. Effectors and Actuators.
2
2
Actuators
• Actuators are mechanisms for getting things (in
particular, robots) to move.
• An actuator is the actual mechanism that enables the
effector (device that affects the environment) to execute
an action.
• It is the device that provides the motive power to the
process.
• Actuators typically include
– electric motors (current) ,
– hydraulic cylinders (fluid pressure), or
– pneumatic cylinders (air pressure).
3
3
DC Motors
• The direct current (DC)
motor is the most common
actuator.
• DC motors convert electrical into
mechanical energy.
4
4
DC Motors
• The direct current (DC)
motor is the most common
actuator.
• DC motors convert electrical into
mechanical energy.
– They consist of permanent magnets and loops of wire inside.
When current is applied, the wire loops generate a magnetic
field, which reacts against the outside field of the static
magnets. The interaction of the fields produces the movement
of the shaft/armature.
– The Lorenz force f = qvxBgenerates a torque on the rotor
proportional to the current (qv  velocity times charge) and
the magnetic field B.
5
5
DC Motors
– When constant voltage is applied, a DC motor draws current in
the amount proportional to the work it is doing. For example, if a
robot is pushing against a wall, it is drawing more current than
when it is moving freely in open space.
– The stall current of the motor: the most current it can draw at
its specified voltage.
– Within a motor's operating current range, the more current is
used, the more torque or rotational force is produced at the
shaft.
• Motors require more battery power (i.e., more current)
than electronics
– e.g., 5 milliamps for the 68HC11 processor vs. 100 milliamps 
1amp for a small DC motor.
6
6
DC motor
7
7
Servo Motors
• It is sometimes necessary to be able to move a motor to
a specific position.
• Motors that can turn to a specific position are called
servo motors and are in fact constructed out of basic
DC motors, by adding:
– a position sensor for the motor shaft.
– an electronic circuit that controls the motor's
operation.
• Since positioning of the shaft is what servo motors are
all about, most have their movement reduced to 180
degrees.
8
8
Electronic Control of Motors.
• DC motors are obviously used for such things as positioning
robot arms etc. But they have one major disadvantage:
input output
process
– when the computer commands the arm to move to a particular
position it requires complicated external circuitry in order to
inform the computer of the fact that the arm is in position, or any
other movement attribute, like speed or acceleration/deceleration.
– just as we might want to move a robot arm through 45 degrees
we could apply voltage to a DC motor for a set period of time and
hope the results were what we wanted. This is an open loop
control system:
9
9
– It does not take account of
* the individual characteristics of the DC motor,
* amortization over time,
* different loads on the arm,
* an regulated DC voltage to the motor etc.
– Far better to have some feedback on what is actually happening.
* If we are to use a DC motor for this purpose we should apply a voltage to it
and then monitor some measuring device that is responding to the arms
movement.
If we can't control our robot arm
using a closed loop system we
need to think about doing it with
an open loop one: This is done
using stepper motors.
Electronic Control of Motors.
10
10
Basic Stepper Motor Concepts
• a stepper motor has more than
two wires leading into it.
• The rotor in this case is a bar
magnet that pivots about its
center.
• You see two loops of wire, each
loop forming its own
electromagnet and each end
having a different polarity.
4 wires
A tutorial on basic electromagnetism and how it applies to stepper motors
can be found at: http://home.mira.net/~tonymerc/steptheo/steptheo.htm
11
11
Basic Stepper Motor Concepts
• If we apply a voltage such that pole piece A is South and B is North
(it must be because of the way they are wound) the rotor magnet will
line up as shown.
• the rotor lined up in this position but that it will stay in this position
as long as there is voltage applied to the coil.
•This holding position will stay as long as there is not unreasonable
force applied against it and the voltage is sufficient to provide a large
enough current through the coil and consequent magnetic attraction.
• If we remove the voltage from the second
loop and apply it to the first loop, pole pieces
A and B will have no magnetic attraction and
pole pieces C and D will have.
• The rotor will turn, so the magnet will take
up a new position and be rotated 90 degrees
clock wise.
12
12
“Stepper Motor Basics”
http://www.ericsson.se/microe/pdf/industri/app/motorbas.pdf or
http://home.mira.net/~tonymerc/steptheo/steptheo.htm
• Variable Reluctance (VR) type consists of a soft iron
multitoothed rotor and a wound stator.
– When the stator windings are energized with
DC current the poles become magnetized.
– Rotation occurs when the rotor teeth are
attracted to the energized stator poles.
• Permanent Magnet motor.
– Permanent magnets added to the motor
structure.
– The rotor is magnetized with alternating north
and south poles situated in a straight line parallel
to the rotor shaft.
– PM motor exhibits improved torque
characteristics.
13
13
The sequence for half stepping works like this:
• If we have a situation such
that the stator has eight
individual sections on it there
is 45 degrees between each
section or pole piece.
• If the rotor has six sections on
it as shown there is 60 degrees
between each section.
14
14
Basic Stepper Motor Concepts
A tutorial on basic electromagnetism and
how it applies to stepper motors.
Ericsson:
http://www.ericsson.se/microe/apn_ind.html
Control of Stepping Motors, a tutorial
Douglas W. Jones
University of Iowa Department of Computer Science
http://www.cs.uiowa.edu/~jones/step/
c·:·::vn: no:: ¬n:n
http://home.mira.net/~tonymerc/steptheo/steptheo.htm#menu
15
15
Effectors
• An effector is any device that affects the
environment.
– actuators are mechanisms for getting robots to move
– an actuator is the actual mechanism (i.e. DC motor) that
enables the effector to execute an action.
• A robot's effector is under the control of the
robot.
• Effectors can range from legs and wheels to arms
and fingers.
• The role of the controller is to get the effectors to
produce the desired effect on the environment,
based on the robot's task.
16
16
Degrees of freedom
• Most simple actuators control a single degree of freedom,
i.e., a single motion (e.g., updown, leftright, inout, etc.).
• Examples:
– a motor shaft controls one rotational degree of freedom.
– a sliding part on a plotter controls one translational degree of
freedom.
• If there is an actuator for every DOF, then all of the DOF
are controllable.
• Usually not all DOF are controllable, which makes robot
control harder.
– A car has 3 DoF: position (x,y) and orientation (theta), but only
2DoF are controllable: driving and steering.
17
17
Locomotion and Manipulation
• When the number of controllable DOF is equal to the total
number of DOF on a robot, it is holonomic.
– If it is smaller then the robot is nonholonomic.
– If it is larger the the robot is redundant.
• Two basic ways of using effectors:
 to move the robot around => locomotion
 to move other object around => manipulation
• These divide robotics into two mostly separate categories:
 mobile robotics
 manipulator robotics
18
18
Locomotion
• Many kinds of effectors and actuators can be used to move
a robot around. The obvious categories are:
– legs (for walking/crawling/climbing/jumping/hopping)
– wheels (for rolling)
– arms (for swinging/crawling/climbing)
– flippers (for swimming)
• legged locomotion is a very difficult robotic problem, especially when
compared to wheeled locomotion.
• Stability:
– static
– dynamic
19
19
A robot has to be statically or dynamically
stabile.
• In order to remain stable, the robot's center of gravity (COG)
must fall under its polygon of support.
• The alternative to static stability is dynamic stability which allows a
robot (or animal) to be stable while moving.
– For example, onelegged hopping robots are dynamically
stable:
* they can hop in place or to various destinations, and not
fall over.
* but they cannot stop and stay standing (this is an inverse
pendulum balancing problem).
• Balance and stability are very difficult problems in control
and robotics, so that is why when you look at most existing
robots, they will have wheels or plenty of legs.
20
20
Locomotion
• In locomotion we can be concerned with:
 getting to a particular location
 following a particular trajectory (path).
• Following an arbitrary given trajectory is harder, and it is impossible for
some robots (depending on their DOF).
• For others, it is possible, but with discontinuous velocity (stop, turn, and
then go again).
• A large area of traditional robotics is concerned with following arbitrary
trajectories. Practical robots may not be so concerned with specific
trajectories as with just getting to the goal location.
• Trajectory planning is a computationally complex process. All possible
trajectories must be found (by using search) and evaluated. Since robots
are not points, their geometry (i.e., turning radius) and steering
mechanism (holonomicity properties) must be taken into account. This is
also called motion planning.
21
21
Manipulation
• A manipulator moves itself typically to get the end effector (e.g., the
hand, the finger, the fingertip) to the desired 3D position and
orientation.
• The challenge is to get there efficiently and safely.
• Because the end effector is attached to the whole arm, we have to worry
about the whole arm;
– the arm must move so that it does not try to violate its own joint
limits and it must not hit itself or the rest of the robot, or any other
obstacles in the environment.
– doing autonomous manipulation is very challenging.
– there is typically no direct and obvious link between what the
effector needs to do in physical space and what the actuator (the
actual mechanism i.e. DC motor that enables the effector to execute an
action) does to move it.
22
22
Serial and Parallel Manipulators
23
23
Serial and Parallel Manipulators
PUMA560
Hexapod
24
24
Links and Joints
Joints:
Links
End Effector
Robot Basis
2 DOF’s
25
25
Joints.
• Joints connect parts of manipulators.
• The most common joint types are:
– revolute link (rotation around a fixed axis)
– prismatic link (linear movement)
• These joints provide the DOF for an effector.
26
26
Kinematics
• the correspondence between
actuator motion and the
resulting effector motion is called
kinematics.
• In order to control a
manipulator, we have to know its
kinematics.
• Forward kinematics involves
locating the position of the wrist
frame (end effector ) of the
manipulator in Cartesian space
as a function of controllable
degrees of freedom.
27
27
Some manufacturing robots
6D robot
4D robot
28
28
Example (2D rotation)
X
A
Y
A
Y
B
X
B
u
x
0
y
0
u u
u u
cos sin
sin cos
0 0 1
0 0 1
y x y
y x x
+ ÷ =
+ =
u
u sin
0
y
+
+
u
u cos
0
y +
u sin
0
x ÷
u
1
x
1
y
29
29
Homogeneous Transformation
Is a combination of translations
and rotations.
• Pure translation
Position vector in frame B can be expressed in the A coordinate frame
by a 3x3 transformation matrix.
• Pure rotation
30
30
Series of Pure Rotation
The order of rotations is absolutely important,
which means it is not commutative.
31
31
Rotation transformations are not commutative
First a rotation of angle around the x axis, then a
rotation of angle around the new z axis:
Assuming the same initial condition reverse the order
of these rotations:
÷
=
÷ 0 sin cos sin sin cos sin cos u u o u o u u
32
32
Euler Angles
In principle, three different independent rotations around frame
axes are necessary in order to describe any orientation of a
body in space.
As an example of an orientational description by means of
three rotation angles, we introduce the EULER angles concept.
33
33
• In this animation, the object is initially aligned
with the laboratory frame, and brought into an
orientation described by the Euler angles (o
PL
,

PL
, ¸
PL
)=(30
o
,60
o
,45
o
) by three consecutive
rotations.
• The rotations are through
I. 30
o
about the zaxis of the Lframe;
II. 60
o
about the yaxis of the Lframe, and
III. 45
o
about the zaxis of the Lframe.
Note that the rotations are in the sequence (o
PL
, 
PL
, ¸
PL
)
about the Lframe axes.
34
34
• In this animation, the Euler angles are varied one at a time,
starting from the initial orientation (o
PL
, 
PL
, ¸
PL
)=(30
o
,60
o
,45
o
).
The animation below shows
what happens when the angle
o
PL
is varied from 0 to 360
o
,
while keeping 
PL
fixed at
60
o
, and keeping ¸
PL
fixed at
45
o
. Note that the object
rotates around its own zaxis.
The animation below
shows what happens when
the angle 
PL
is varied from
0 to 360
o
, while keeping
o
PL
fixed at 30
o
, and
keeping ¸
PL
fixed at 45
o
.
Note that the object rotates
in such a way that the angle
between the two zaxes
varies over the full range 0
to 360
o
.
The animation below
shows what happens when
the angle ¸
PL
is varied from
0 to 360
o
, while keeping
o
PL
fixed at 30
o
, and
keeping 
PL
fixed at 60
o
.
Note that the object rotates
around the zaxis of the
laboratory frame.
35
35
can be found as the , element of
EULER angles can be calculated from the rotation matrix
Euler Angles
36
36
is an eigenvector of with eigenvalue
EULER angles and RollPitchYaw angles do not allow to compute a
continuous interpolation between two frames of different orientation
superposition of rotations in EULER angles, as well as in RPY angles
is not equivalent to the rotation of superimposed angles:
• Instead of changing an orientation towards a destination frame by means of three
consecutive rotations, it is equally possible to achieve the final orientation by means of a
single rotation around an appropriate axis, which in general is inclinated in 3D space with
respect to the base frame.
• Therefore the vector describing the rotation axis must meet the condition:
37
37
Instead of referencing the rotations to the axes of the base frame, alternatively the
axes of the body frame (u , v ,w ) can be chosen for this purpose.
This rotation can be achieved with respect to the body frame by rotation of the body
around the axis of its own body frame with angle first, and then by a subsequent
rotation of angle around its new axis (which has been moved to its new position
during the first rotation).
38
38
In the body axis coordinates, the
corresponding eigenvector:
Normalized:
The corresponding rotation angle can be derived as follows:


.

\

÷ + + = 1
2
1
cos
z
w
y
v
x
u o






.

\

÷
÷
÷
=
x
v
y
u
z
u
x
w
y
w
z
v
I
v
I
v
I
v
v
1
=
39
39
In the body axis coordinates, the corresponding eigenvector:
Normalized:
The corresponding rotation angle can be derived as follows:
where
40
40
For a rigid body transformation (rotational matrix contains
perpendicular unit vectors)
I I I
I I I
I I I
=
33 32 31
23 22 21
13 12 11 11
R
The unit vector in the
direction of the rotation is
I ÷ I
I ÷ I
I ÷ I
=
12 21
31 13
23 32
sin 2
1
u
k
)
2
1
33
I
22
I
11
I
arccos( 0
÷ + +
=
41
41
Assuming a given rotation vector and rotation angle ,
the rotation matrix can be calculated:
42
42
Description of a Point P in a
coordinate System A is:
=
z
y
x
A
p
p
p
P
Description of orientation
 
A system coordinate in B system coordinate
of r unit vecto a of s coordinate the is
ˆ
B system coordinate of r unit vecto a is
ˆ
ˆ ˆ ˆ
B
A
B
B
A
B
A
B
A A
B
X
X
Z Y X R =
A
X
ˆ
B
X
ˆ
A
Y
ˆ
B
Y
ˆ
43
43
Example:
Rotating a frame B relative to frame A about
Z axis by 30 degrees
÷
=
000 . 1 000 . 0 000 . 0
000 . 0 866 . 0 500 . 0
000 . 0 500 . 0 866 . 0
R
A
B
( )
÷
=
1 0 0
0 cos sin
0 sin cos
u u
u u
u
Z
A
B
R
In general:
44
44
{A}
X
B
Y
B
Z
B
B
P
X
A
Y
A
Z
A
A
P
A
P
BORG
P R P
B A
B
A
=
Using the rotation Matrix:
BORG
A B A
B
A
P P R P + =
Adding translation
45
45
Example:
Rotating a frame B relative to frame A about Z axis by
30 degrees and moving it 10 unit in direction of X and 5
unit in the direction of Y.
What will be the coordinates of a point in frame A if in
frame B the point is : [3, 7, 0]
T
?
=
+
=
=
+
÷
=
000 . 0
562 . 12
098 . 9
000 . 0
000 . 5
000 . 10
0.000
7.562
0.902 
000 . 0
000 . 5
000 . 10
000 . 0
000 . 7
000 . 3
000 . 1 000 . 0 000 . 0
000 . 0 866 . 0 500 . 0
000 . 0 500 . 0 866 . 0
P
A
46
46
General Frame Mapping
{A}
X
B
Y
B
Z
B
B
P
X
A
Y
A
Z
A
A
P
A
P
BORG
BORG
A B A
B
A
P P R P + =
Replace by the more appealing
equation:
=
1 1 0 0 0 1
P P R P
B
BORG
A A
B
A
A “1” added here
A row added here
47
47
÷
=
1 0 0 0
000 . 0 000 . 1 000 . 0 000 . 0
000 . 5 000 . 0 866 . 0 500 . 0
000 . 10 000 . 0 500 . 0 866 . 0
T
A
B
If we use the above example we can see that:
48
48
=
÷
=
1
000 . 0
562 . 12
098 . 9
1
000 . 0
000 . 7
000 . 3
1 0 0 0
000 . 0 000 . 1 000 . 0 000 . 0
000 . 5 000 . 0 866 . 0 500 . 0
000 . 10 000 . 0 500 . 0 866 . 0
P
A
The calculation of the point P in coordinate
system A will be:
P T P
B A
B
A
=
In general:
49
49
Compound Transformation
T T T
B
C
A
B
A
C
=
P T P
B A
B
A
=
P T P
C B
C
B
=
P T T P
C B
C
A
B
A
=
50
50
T T
T T T T T
A
U
U
A
C
D
B
C
U
B
A
D
U
A
=
=
÷1
51
51
Example
÷
÷
=
000 . 1 000 . 0 000 . 0 000 . 0
000 . 0 000 . 1 000 . 0 000 . 0
000 . 0 000 . 0 000 . 1 000 . 0
000 . 2 000 . 0 000 . 0 000 . 1
T
A
B
3
52
52
÷
÷ ÷
÷
=
000 . 1 000 . 0 000 . 0 000 . 0
000 . 2 000 . 0 000 . 0 000 . 1
000 . 0 500 . 0 866 . 0 000 . 0
000 . 0 866 . 0 500 . 0 000 . 0
T
B
C
53
53
Example of a homogeneous transformation
The resulting homogeneous
transformation is:
54
54
Homogeneous Coordinates
• Homogeneous coordinates: embed 3D
vectors into 4D by adding a “1”
• More generally, the transformation matrix T
has the form:
=
Factor Scaling Trans. Perspect.
Vector Trans. Matrix Rot.
T
55
55
Link Length and Twist
Axis i
Axis i1
a
i
1
o
i1
56
56
57
57
DenavitHartenberg Convention
At joint i, we select two orthogonal axis:
Once the link frames have been
established, the position and
orientation of frame i with respect
to frame i1 are completely
specified by 4 kinematic
parameters:
1 ÷ i
o
1 ÷ i
a
i
d
I
u
58
58
DenavitHartenberg Parameters
Axis i1
a
i
1
o
i1
Axis i
L
i
n
k
i
d
i
u
i
between Z
i1
to Z
i
distance along Z
i
distance along X
i1
between X
i1
to X
i
59
59
Link Transformation
a
i
1
Axis i1
Axis i
d
i
u
i
o
i1
60
60
DenavitHartenberg Parameters
0 0 3
0 0 2
0 0 0 1
i
1 ÷ i
o
1 ÷ i
a
1
L
2
L
i
d
I
u
1
u
2
u
3
u
61
61
Example: PUMA560
62
62
Direct Kinematics
Where is my hand?
Direct Kinematics:
HERE!
63
63
DK Algorithm
1) Draw sketch
2) Number links. Base=0, Last link = n
3) Identify and number robot joints
4) Draw axis Z
i
for joint i
5) Determine joint length a
i1
between Z
i1
and Z
i
6) Draw axis X
i1
7) Determine joint twist o
i1
measured around X
i1
8) Determine the joint offset d
i
9) Determine joint angle u
i
around Z
i
10+11) Write link transformation and concatenate
64
64
Inverse Kinematics
How do I put my
hand here?
IK: Choose these angles!
65
65
One of many problems:
There may be multiple solutions
Elbow down  Elbow up
66
66
Kinematics
• Often it is required to map from Cartesian space to
joint angle configuration, X÷O ÷O ÷O ÷O.
– This conversion is called inverse kinematics.
• The forward kinematic relationship is nonlinear, since
the mapping can not be expressed in the form :
• The inverse kinematics relationship is computationally intense.
• The problem is even harder if the manipulator (the arm) is redundant.
X J 0
o
1
o
÷
=
Jd0 dX =
A0 X =
• Because of this nonlinearity, inverse kinematics transformation is
difficult to compute.
However in the vicinity of the current state, the first derivative
• J is called the Manipulator Jacobian.
• Most often we need to calculate the joint space velocities
that will generate a desired Cartesian endpoint velocity:
0 X ÷
Actuators
• Actuators are mechanisms for getting things (in particular, robots) to move.
• An actuator is the actual mechanism that enables the effector (device that affects the environment) to execute an action. • It is the device that provides the motive power to the process.
• Actuators typically include
– electric motors (current) , – hydraulic cylinders (fluid pressure), or – pneumatic cylinders (air pressure).
DC Motors
• The direct current (DC) motor is the most common actuator.
• DC motors convert electrical into mechanical energy.
the wire loops generate a magnetic field.
. When current is applied. which reacts against the outside field of the static magnets.DC Motors
• The direct current (DC) motor is the most common actuator. – The Lorenz force f = qvxB generates a torque on the rotor proportional to the current (qv .
– They consist of permanent magnets and loops of wire inside.
• DC motors convert electrical into mechanical energy. The interaction of the fields produces the movement of the shaft/armature.velocity times charge) and the magnetic field B.
5 milliamps for the 68HC11 processor vs. the more current is used.g.
• Motors require more battery power (i.e. – Within a motor's operating current range.. 100 milliamps 1amp for a small DC motor. the more torque or rotational force is produced at the shaft. a DC motor draws current in the amount proportional to the work it is doing.. For example. it is drawing more current than when it is moving freely in open space.
.DC Motors
– When constant voltage is applied. if a robot is pushing against a wall. more current) than electronics
– e. – The stall current of the motor: the most current it can draw at its specified voltage.
DC motor
.
– an electronic circuit that controls the motor's operation.Servo Motors
• It is sometimes necessary to be able to move a motor to a specific position.
. most have their movement reduced to 180 degrees. by adding: – a position sensor for the motor shaft. • Since positioning of the shaft is what servo motors are all about. • Motors that can turn to a specific position are called servo motors and are in fact constructed out of basic DC motors.
Electronic Control of Motors. – just as we might want to move a robot arm through 45 degrees we could apply voltage to a DC motor for a set period of time and hope the results were what we wanted. But they have one major disadvantage:
– when the computer commands the arm to move to a particular position it requires complicated external circuitry in order to inform the computer of the fact that the arm is in position. This is an open loop control system:
input
process
output
.
• DC motors are obviously used for such things as positioning robot arms etc. like speed or acceleration/deceleration. or any other movement attribute.
* If we are to use a DC motor for this purpose we should apply a voltage to it and then monitor some measuring device that is responding to the arms movement.
If we can't control our robot arm using a closed loop system we need to think about doing it with an open loop one: This is done using stepper motors.
– Far better to have some feedback on what is actually happening. * amortization over time.Electronic Control of Motors. * an regulated DC voltage to the motor etc.
– It does not take account of
* the individual characteristics of the DC motor. * different loads on the arm.
.
• The rotor in this case is a bar magnet that pivots about its center. • You see two loops of wire.Basic Stepper Motor Concepts
• a stepper motor has more than two wires leading into it.mira.net/~tonymerc/steptheo/steptheo.htm
. each loop forming its own electromagnet and each end 4 wires having a different polarity.
A tutorial on basic electromagnetism and how it applies to stepper motors can be found at: http://home.
. • The rotor will turn. • If we remove the voltage from the second loop and apply it to the first loop.
• the rotor lined up in this position but that it will stay in this position
as long as there is voltage applied to the coil. pole pieces A and B will have no magnetic attraction and pole pieces C and D will have. •This holding position will stay as long as there is not unreasonable force applied against it and the voltage is sufficient to provide a large enough current through the coil and consequent magnetic attraction.Basic Stepper Motor Concepts
• If we apply a voltage such that pole piece A is South and B is North (it must be because of the way they are wound) the rotor magnet will line up as shown. so the magnet will take up a new position and be rotated 90 degrees clock wise.
– The rotor is magnetized with alternating north and south poles situated in a straight line parallel to the rotor shaft.ericsson. – When the stator windings are energized with DC current the poles become magnetized. • Permanent Magnet motor. – Permanent magnets added to the motor structure.pdf or http://home.mira. – PM motor exhibits improved torque characteristics.htm • Variable Reluctance (VR) type consists of a soft iron multitoothed rotor and a wound stator.“Stepper Motor Basics” http://www.net/~tonymerc/steptheo/steptheo.
. – Rotation occurs when the rotor teeth are attracted to the energized stator poles.se/microe/pdf/industri/app/motorbas.
.The sequence for half stepping works like this: • If we have a situation such that the stator has eight individual sections on it there is 45 degrees between each section or pole piece. • If the rotor has six sections on it as shown there is 60 degrees between each section.
uiowa.ericsson.html
.net/~tonymerc/steptheo/steptheo.cs.se/microe/apn_ind.Basic Stepper Motor Concepts A tutorial on basic electromagnetism and how it applies to stepper motors.mira. Jones University of Iowa Department of Computer Science http://www. http://home. a tutorial Douglas W.htm#menu Control of Stepping Motors.edu/~jones/step/ Ericsson: http://www.
based on the robot's task. DC motor) that enables the effector to execute an action.
– actuators are mechanisms for getting robots to move – an actuator is the actual mechanism (i. • Effectors can range from legs and wheels to arms and fingers.
.e.Effectors
• An effector is any device that affects the environment. • The role of the controller is to get the effectors to produce the desired effect on the environment.
• A robot's effector is under the control of the robot.
but only 2DoF are controllable: driving and steering. updown.
• If there is an actuator for every DOF. leftright. then all of the DOF are controllable. inout. i.. a single motion (e.y) and orientation (theta).g.Degrees of freedom
• Most simple actuators control a single degree of freedom. which makes robot control harder. – a sliding part on a plotter controls one translational degree of freedom. • Usually not all DOF are controllable.). etc.
– A car has 3 DoF: position (x.
..e. • Examples:
– a motor shaft controls one rotational degree of freedom.
Locomotion and Manipulation
• When the number of controllable DOF is equal to the total number of DOF on a robot.
– If it is smaller then the robot is nonholonomic.
• Two basic ways of using effectors:
to move the robot around => locomotion to move other object around => manipulation
• These divide robotics into two mostly separate categories:
mobile robotics manipulator robotics
. it is holonomic. – If it is larger the the robot is redundant.
– static – dynamic
• Stability:
. The obvious categories are:
– legs (for walking/crawling/climbing/jumping/hopping) – wheels (for rolling) – arms (for swinging/crawling/climbing) – flippers (for swimming) • legged locomotion is a very difficult robotic problem. especially when compared to wheeled locomotion.Locomotion
• Many kinds of effectors and actuators can be used to move a robot around.
and not fall over.
• In order to remain stable. they will have wheels or plenty of legs. – For example. onelegged hopping robots are dynamically stable: * they can hop in place or to various destinations. so that is why when you look at most existing robots.A robot has to be statically or dynamically stabile. • The alternative to static stability is dynamic stability which allows a robot (or animal) to be stable while moving. • Balance and stability are very difficult problems in control and robotics. * but they cannot stop and stay standing (this is an inverse pendulum balancing problem).
. the robot's center of gravity (COG) must fall under its polygon of support.
it is possible. and then go again). and it is impossible for some robots (depending on their DOF). their geometry (i. All possible trajectories must be found (by using search) and evaluated. • Trajectory planning is a computationally complex process. but with discontinuous velocity (stop.e. This is also called motion planning. Practical robots may not be so concerned with specific trajectories as with just getting to the goal location. turning radius) and steering mechanism (holonomicity properties) must be taken into account. Since robots are not points. • A large area of traditional robotics is concerned with following arbitrary trajectories.
• Following an arbitrary given trajectory is harder. turn..
. • For others.Locomotion
• In locomotion we can be concerned with: getting to a particular location following a particular trajectory (path).
e. the fingertip) to the desired 3D position and orientation. • Because the end effector is attached to the whole arm.Manipulation
• A manipulator moves itself typically to get the end effector (e.that enables the effector to execute an
. – the arm must move so that it does not try to violate its own joint limits and it must not hit itself or the rest of the robot. – there is typically no direct and obvious link between what the effector needs to do in physical space and what the actuator (the
action) does to move it. the hand.
actual mechanism i. – doing autonomous manipulation is very challenging. the finger. we have to worry about the whole arm.g. or any other obstacles in the environment.. DC motor. • The challenge is to get there efficiently and safely.
Serial and Parallel Manipulators
.
Serial and Parallel Manipulators
PUMA560 Hexapod
.
Links and Joints
Links
Joints: End Effector 2 DOF’s Robot Basis
Joints.
• Joints connect parts of manipulators. • The most common joint types are:
– revolute link (rotation around a fixed axis) – prismatic link (linear movement)
• These joints provide the DOF for an effector.
Kinematics
• the correspondence between actuator motion and the resulting effector motion is called kinematics. • In order to control a manipulator, we have to know its kinematics. • Forward kinematics involves locating the position of the wrist frame (end effector ) of the manipulator in Cartesian space as a function of controllable degrees of freedom.
Some manufacturing robots
4D robot
6D robot
.
Example (2D rotation)
YA
YB
y0
y0 cos
x
XB
1
y
1
y0 sin
x1 y1
x0 cos x0 sin
y0 sin
x0 sin
x0
XA
y0 cos
.
• Pure translation • Pure rotation
Position vector in frame B can be expressed in the A coordinate frame by a 3x3 transformation matrix.Homogeneous Transformation
Is a combination of translations and rotations.
.
which means it is not commutative.Series of Pure Rotation
The order of rotations is absolutely important.
.
Rotation transformations are not commutative
First a rotation of angle around the x axis. then a rotation of angle around the new z axis:
Assuming the same initial condition reverse the order of these rotations:
cos
sin cos
sin sin
cos
sin
0
.
three different independent rotations around frame axes are necessary in order to describe any orientation of a body in space. we introduce the EULER angles concept.
.Euler Angles
In principle. As an example of an orientational description by means of three rotation angles.

PL)
. II. the object is initially aligned with the laboratory frame. PL)=(30 . and 45o about the zaxis of the Lframe.
•
Note that the rotations are in the sequence (about the Lframe axes.
PL.45 ) by three consecutive rotations. o o o PL. III. The rotations are through I.

PL.60 . 60o about the yaxis of the Lframe. and brought into an orientation described by the Euler angles ( PL.•
In this animation. 30o about the zaxis of the Lframe.
while keeping o PL fixed at 30 .
.
The animation below shows what happens when the angle o PL is varied from 0 to 360 .
The animation below shows what happens when the angle PL is varied from 0 to 360o. Note that the object rotates around its own zaxis.60o. and keeping PL fixed at 45o.45o). and keeping PL fixed at 45o. Note that the object rotates in such a way that the angle between the two zaxes varies over the full range 0 to 360o. starting from the initial orientation ( PL. the Euler angles are varied one at a time. and keeping PL fixed at 60o. PL)=(30o.• In this animation. while keeping o PL fixed at 30 . Note that the object rotates around the zaxis of the laboratory frame. while keeping PL fixed at 60o. PL.
The animation below shows what happens when the angle PL is varied from 0 to 360o.
Euler Angles
EULER angles can be calculated from the rotation matrix
can be found as the
.
element of
.
it is equally possible to achieve the final orientation by means of a single rotation around an appropriate axis. which in general is inclinated in 3D space with respect to the base frame.EULER angles and RollPitchYaw angles do not allow to compute a continuous interpolation between two frames of different orientation superposition of rotations in EULER angles. • Therefore the vector describing the rotation axis must meet the condition:
is an eigenvector of
with eigenvalue
. as well as in RPY angles is not equivalent to the rotation of superimposed angles:
• Instead of changing an orientation towards a destination frame by means of three consecutive rotations.
alternatively the axes of the body frame (u .w ) can be chosen for this purpose.Instead of referencing the rotations to the axes of the base frame.
This rotation can be achieved with respect to the body frame by rotation of the body around the axis of its own body frame with angle first. and then by a subsequent rotation of angle around its new axis (which has been moved to its new position during the first rotation).
. v .
the : Normalized:
v v I
v
1 v I
v
I
z y w u x z u v y x
w
The corresponding rotation angle can be derived as follows:
cos
1 u v w 1 z 2 x y
.In the body axis coordinates.
the Normalized:
:
The corresponding rotation angle can be derived as follows:
where
.In the body axis coordinates.
For a rigid body transformation (rotational matrix contains perpendicular unit vectors)
11 21 31 12 22 32 13
R
11
23 33
The unit vector in the direction of the rotation is
1 k 2 sin
32 13 21
23 31 12
arccos( 11
22 2
1 33 )
.
.Assuming a given rotation vector and rotation angle the rotation matrix can be calculated:
.
:
A
P
px py pz
Description of orientation
A A A A
ˆ Y
B
ˆ Y
A
ˆ X
B
B
A
ˆ ˆ ˆ R X Y Z ˆ X is a unit vector of coordinatesystem B ˆ X is the coordinates of a unit vector of
B B B B B
ˆ X
A
coordinatesystem B in coordinatesystem A
.
Example: Rotating a frame B relative to frame A about Z axis by 30 degrees
A B
R
0.000
0 0 1
In general:
A B
RZ
cos sin 0
.866 0.000
sin cos 0
1.500 0.000 0.000 0.500 0.000
0.866 0.
Using the rotation Matrix
A
P
A B
R P
B
ZA
XB
AP
BP
ZB
AP BORG
Adding translation
YA XA {A}
YB
A
P
A B
R P
B
A
PBORG
.
000 7.000 9.000 0.500 0.0. 7.Example: Rotating a frame B relative to frame A about Z axis by 30 degrees and moving it 10 unit in direction of X and 5 unit in the direction of Y.902 7.000
0.000 1.562 0.000 0.000 0.000
10.866 0.000 .000 5.000
.000 10.866 0. What will be the coordinates of a point in frame A if in frame B the point is : [3.000 0.000 0.000 5.500 0.098 12. 0]T?
A
P
0.562 0.000 3.
General Frame Mapping
A
P
A B
R BP
A
PBORG
ZA
XB
AP
BP
ZB
AP BORG
Replace by the more appealing equation:
YA XA {A}
YB
A
P 1
R 0 0 0
A B
A
PBORG 1
B
P 1
A “1” added here
A row added here
.
000 0 0.000 0.000 1
.866 0.If we use the above example we can see that:
A B
T
0.866 0.000 5.000 0.500 0.000 0 1.000 10.500 0.000 0
0.
098 12.000 0.000 0.562 0.866
A
0.000 0 0.000 0
In general:
A
P
A B
T P
B
.000 1 7.000 1
9.500 0.000 3.000 1
P
0.000 1.866 0.000 10.The calculation of the point P in coordinate system A will be:
0.000 0.000 0 5.500 0.
Compound Transformation
A
P
A B
A B
T P
B C C
B
B
P
B C
T P
C
A
P
T T P
A C
T
A B
T T
B C
.
U A U A
A T DT
U B A U
B T CT CT D
T
1
T
.
000
0 .000
T
0 . 000 0 .000 0 .000 2
0 . 000 0 .000 1 . 000 1 .000 0 .000 0 . 000
.000 1 . 000 0 .000 0 .000
A B
0 . 000
3 .Example
1 .
500 0.000 1.000
B C
0.000
T
0.000 2.0.000 0.000
.000 0.866 0.000 1.000 0.000 0.866 0.000 0.500 0.000
0.
Example of a homogeneous transformation
The resulting homogeneous transformation is:
.
Vector Perspect. Scaling Factor
.Homogeneous Coordinates
• Homogeneous coordinates: embed 3D vectors into 4D by adding a “1” • More generally. Trans. the transformation matrix T has the form:
T
Rot. Matrix Trans.
Link Length and Twist
Axis i
Axis i1
a i1
i1
.
.
DenavitHartenberg Convention
At joint i. we select two orthogonal axis:
Once the link frames have been established. the position and orientation of frame i with respect to frame i1 are completely specified by 4 kinematic parameters:
i 1
ai
1
di
I
.
DenavitHartenberg Parameters
Axis i Axis i1
i
between Xi1 to Xi
i Link
distance along Zi
di
a i1
distance along Xi1
i1 between Zi1 to Zi
.
Link Transformation
Axis i Axis i1
i
di
a i1
i1
.
DenavitHartenberg Parameters
i 1 2 3
i 1
ai
0
1
di
0 0 0
I
1 2
3
0 0 0
L1 L2
.
Example: PUMA560
.
Direct Kinematics
Where is my hand?
Direct Kinematics: HERE!
.
Base=0. Last link = n 3) Identify and number robot joints 4) Draw axis Zi for joint i 5) Determine joint length ai1 between Zi1 and Zi 6) Draw axis Xi1 7) Determine joint twist i1 measured around Xi1 8) Determine the joint offset di 9) Determine joint angle i around Zi 10+11) Write link transformation and concatenate
.DK Algorithm
1) Draw sketch 2) Number links.
Inverse Kinematics
How do I put my hand here?
IK: Choose these angles!
.
Elbow up
.One of many problems: There may be multiple solutions
Elbow down .
However in the vicinity of the current state.Kinematics
• Often it is required to map from Cartesian space to joint angle configuration. since the mapping can not be expressed in the form :
X
X
dX
o
A
Jd
• Because of this nonlinearity. the first derivative
• J is called the Manipulator Jacobian. • The problem is even harder if the manipulator (the arm) is redundant.
. inverse kinematics transformation is difficult to compute. • The forward kinematic relationship is nonlinear. – This conversion is called inverse kinematics. X . • Most often we need to calculate the joint space velocities that will generate a desired Cartesian endpoint velocity:
J X
1
o
• The inverse kinematics relationship is computationally intense.