F B Computers For Robots: Sept. 24, 2009
F B Computers For Robots: Sept. 24, 2009
F B Computers For Robots: Sept. 24, 2009
Saha
Computers for Robots
f b
Prof S.K.
Prof. S K Saha
Dept. of Mech. Eng.
IIT Delhi
Announcements
• Outlines of Lecture 26 are available at
http://web.iitd.ac.in/~saha/ethiopia/27lec.pdf
• Following students will come in front of camera
to ask/answer questions (EST 10:10)
1. Demeke Abuseid; 2. Mesay Alemu
3. Nestanet Desalegn; 4. Samson Zerihun
5. Shishay Amare; 6. Tesfaye Abreha
7. Tesfaye Demelash; 8. Tesfaye Molalegn
Computers in Robots 1
Prof. S.K. Saha
Review of Lecture 26 (Sep. 17, 2009)
• Different
Different orientation representations were
orientation representations were
introduced
• Representation using single‐
Representation using single‐axis rotation
• Example was solved
Outline
• Introduction
• Computer speed
C t d
– Software speed‐up
– Hardware considerations
• Hardware requirements
• Control considerations
Control considerations
• Robot Programming
• Summary
Computers in Robots 2
Prof. S.K. Saha
Introduction
• Kinematics, dynamics and control requires
complex computations including
p p g
trigonometric functions, etc.
• Many of these calculations need to be done in
real‐time, i.e., they must be completed within
small time period (say, 15 milliseconds).
• Computation speed should be less than the
ability of a robot’s speed.
Computational Speed
• Ways to reduce time for complex calculations
• Software speed‐up
– Techniques to increase speed of computations in a
conventional computer
– These techniques take advantage of the unique
properties of many calculations
• Using integer arithmetic
– Numbers will be represented as integers and avoid
the use of floating point ("real") representations.
Computers in Robots 3
Prof. S.K. Saha
Integer Representation
• It can done using scaling
– A mixed number, e.g., 22.75, is represented by an
integer 2275 multiplied or scaled by a constant
1/100
– If the scaling is constant, considerable speed
advantage can be gained over‐floating point.
– Integer arithmetic is typically 5 to 10 times as fast
as floating point one.
– Loss of accuracy is inherent
Trigonometric Functions
• In commercial computing systems,
ti
trigonometric functions are evaluated by
t i f ti l t db
several techniques including rational functions
or Chebychev polynomials.
• The arithmetic is done in floating point,
resulting in high accuracy and low speed.
g g y p
• In robotic applications, however, the most
appropriate mechanism for computing
trigonometric functions is by table lookup.
Computers in Robots 4
Prof. S.K. Saha
Look‐up Table
• For example, values of sinθ are simply stored
i t bl f θ = 0 . . . 89 degrees.
in a table for θ 0 89 d
• The table of 90 words provides instantly the
value of the sine of an angle to a 1o precision.
• In fact, the 90 words require less memory
than that required by a program to compute
than that required by a program to compute
the function explicitly.
• If higher accuracy than the nearest degree is
required, two options exist. The first is linear
interpolation between the table entries. Since
Interpolation
• If higher accuracy is required, two options
exist.
it
– First is linear interpolation between the table
entries.
– Another interpolation technique makes the use of
trigonometric identity for the sine of two summed
angles, i.e.,
sin (α + β) = sin α cos β + cos α sin β
Computers in Robots 5
Prof. S.K. Saha
Alternative Interpolation
• The angle is the segmented into two parts, an
i t β
integer, α, and a fraction, β.
d f ti
• Exact evaluation requires four table lookups,
two multiplications and one addition.
• An approximate evaluation can be obtained
even faster
even faster.
– For this, the angle is scaled so that the fractional
part is very small. If β be the fractional part, then
cos β = 1, and sin β = β
Example 12.1
• Find sin (0.8034)
– Assume that the values of sine function are
tabulated in 0.01 rad increments, i.e., the values
of sin (0.80) and sin (0.81), etc. are known.
– One can write
0.8034 rad = 0.8 rad + 0.0034 rad
• sin (0.8034) = sin (0.80) cos (0.0034) + cos
(0.80) sin (0.0034)
Computers in Robots 6
Prof. S.K. Saha
Calculations
• For the very small angle of 0.0034 rad, cos
(0 0034) 1 d i (0 0034) 0 0034
(0.0034) = 1 and sin (0.0034) = 0.0034.
sin (0.8034) = sin (0.80) + 0.0034 cos (0.80)
• sin (0.80) and cos (0.80) are available from
the tabulated results.
• This interpolation technique requires two
This interpolation technique requires two
table lookups, one multiplication, and one
addition only.
Matrix Operations
• In robot control, explicit matrix inversion is
generally not required,.
ll t i d
• A set of linear algebraic equations are solved
• In case an explicit inversion must be computed
it is done numerically by solving a series of
linear algebraic equations whose right hand
linear algebraic equations whose right hand
sides are the columns of an identity matrix,
whereas the corresponding unknowns are the
columns of the desired inverse.
Computers in Robots 7
Prof. S.K. Saha
Explicit Inversions
• If X is the inverse of n × n matrix, J, i.e., X=J‐1
• Solve n linear algebraic equations n‐times
based on the fact that JX = 1
• The algebraic equations, for i = 1, …, n, are
Jxi = ei , where X ≡ [x1,…, xn] and 1 ≡ [e1,…, en]
• Also, xi ≡ [xi1, …, xin ]T , and ei ≡ [eij]T, for j = 1, …,
n; eij = 1 when i=j and eij = 0 when i≠j.
Accuracy vs. Speed
• In numerical analysis literature high accuracy
and stability or robustness are important,
d t bilit b t i t t
whereas in robotics, speed is of the essence,
whereas accuracy, although important, is not
as difficult to maintain. Thus, in many
instances simple, fast methods are substituted
over complexity and high precision.
Computers in Robots 8
Prof. S.K. Saha
Hardware Considerations
• Distributed computing, i.e., the use of several
computers interacting in real time to provide
t i t ti i l ti t id
the required computational speed and power,
finds an immediate application in robotics.
• Examples of distributed activities:
– Reading encoders for position information
Reading encoders for position information
– Computation of joints servo error signals
Hardware Requirements
• Unimate PUMA architecture exemplifies the
concept of distribution by joints.
t f di t ib ti b j i t
• A separate processor is attached to the input
and output transducers of each joint. This
processor maintains current information for
that joint.
j
• Central processor reads the joint processors,
computes kinematic transformations, and
provides set points to the joint processors.
Computers in Robots 9
Prof. S.K. Saha
Distribution by Function
• Alternative architectural philosophy of
computation distribution by function.
t ti di t ib ti b f ti
• Each processor maintains the position and
velocity of its joint, as well as the various
trigonometric functions of those parameters.
• These quantities are stored in a multiported
These quantities are stored in a multiported
memory and hence are immediately available
to the other processors.
Extension
• This scheme distributes the computational
b d
burden uniformly, at the expense of a complex
if l t th f l
hardware and more complex software.
• An immediate improvement of this
architecture is to disassociate the servo
calculations from the kinematics.
• The PUMA architecture with the single central
processor replaced by an array of processors
and common memory.
Computers in Robots 10
Prof. S.K. Saha
Control Considerations
• The control system to supervise the following
activities:
– capability of moving objects in working env. Æ
manipulation ability
– capability to obtain info. on the state of the
system and working env. Æ sensory ability
– capability to exploit info. to modify behavior in a
preprogrammed way Æ intelligent behavior
– capability to store, elaborate and provide data on
system activity, i.e., data processing ability.
Hierarchical Structure
• Effective implementation is done using
functional architecture i e supervision of
functional architecture, i.e., supervision of
several activities arranged hierarchically.
• Hierarchical is understood by the command
structure of military, where generals pass
orders to officers, who pass orders to
sergeants, who pass orders to the troops.
• Flow down from the top, and reporting is
intended to flow up from the bottom.
Computers in Robots 11
Prof. S.K. Saha
Robot Programming
• Greatest advantage in ind. applications of
robots is their flexibility, ability to rearrange
b t i th i fl ibilit bilit t
for new production, and large movement.
• Major obstacle in using manipulators as a
general‐purpose assembly machines is the
lack of suitable and efficient communication
between the user and the robotic system so
that the user can direct the manipulator to
accomplish a given task.
Programming
• Utilisation of the robot’s flexibility
presupposes effective programming.
ff ti i
• The computer system that controls the
manipulator must be programmed to teach
the robot the particular motion sequence and
other actions that must be performed in order
p
to accomplish its task.
• There are several ways that industrial robots
are programmed, namely, on‐line or off‐line.
Computers in Robots 12
Prof. S.K. Saha
On‐line Programming
• It takes place at the site of production itself
and involves the workcell.
di l th k ll
• The robot is programmed with a teach box.
• Advantages:
– Easily accessible
– In concordance with the actual position of
In concordance with the actual position of
equipment and pieces
– Simplicity in programming so that even an
operator with virtually no qualification can do it.
Disadvantages of On‐line Prog.
• Slow movement of the robot while
programming i
• Program logic and calculations are hard to
program
• Difficult to incorporate sensor data
• Suspension of production while programming
Suspension of production while programming
• Cost equivalent to production value
• Poorly documented.
Computers in Robots 13
Prof. S.K. Saha
Lead through Programming
• Also known as teach and playback or guiding.
– Leading the robot in slow motion using manual
control through the entire assembly task and
recording the joint angles of the robot at
appropriate locations;
– Editing and playing back the taught motion; and
– If the taught motion is correct, then the robot is
run at an appropriate speed in repetitive mode.
Walk through Programming
• In contrast to the lead through programming,
th
the user specifies the intermediate points with
ifi th i t di t i t ith
a teach pendant, which is connected to a
robot controller to direct and program the
robot. The teach pendant has layout, weight,
buttons and command sequences completely
different between manufacturers. This
interaction is generally difficult for
professional.
Computers in Robots 14
Prof. S.K. Saha
Off‐line Programming
• It takes place on a computer and models of
th
the workcell
k ll with the robot, workpieces
ith th b t k i and
d
surroundings.
• The robot programs can in most cases be
created by the reuse of existing CAD data so
that the programming will be quick and
p g g q
effective.
Advantages of Off‐line Prog.
• It does not occupy production equipment, and
i thi
in this manner production can continue
d ti ti
• Effective prog. with logics and calculations
with state‐of‐the‐art debugging facilities
• Locations are built according to models and
this can mean that progrrammers will have to
this can mean that progrrammers will have to
fine tune programs on‐line or utilise sensors
• Effective programming of locations
Computers in Robots 15
Prof. S.K. Saha
• Verifications of program through simulation
and visualisation
• Well documented through simulation model
with appropriate programs
• Reuse of existing CAD data
• Cost independent of production. Production
can continue while programming
• Process support tools for instance selection of
welding parameters.
Disadvantages of Off‐line Prog.
• Need of expert users
• Demands investing in an off‐line programming
system.
Computers in Robots 16
Prof. S.K. Saha
Features of Programming
Environment
• Real‐time operating system,
• World modeling, and Motion control,
• Input/Output
• Sensory data reading,
• Interaction with physical system,
• Error detection capability,
• Recovery of correct operational functions, and
• Specific language structure.
Robot‐Oriented Programming
• An assembly task is explicitly described as a
sequence of robot motions.
f b t ti
• The robot is guided and controlled by the
program throughout the entire task with each
statement of the program roughly
corresponding to one action of the robot.
p g
Computers in Robots 17
Prof. S.K. Saha
Example 12.2 AL Definitions for
Base Frames
base ← FRAME (nilrot, VECTOR (20, 0,
15)*i h )
15)*inches);
beam ← FRAME (ROT(A, 90*deg), VECTOR (20,
15, 0)*inches);
feeder ← FRAME (nilrot, VECTOR (25, 20,
0) inches);
0)*inches);
Task‐level Programming
• It describes the assembly task as a sequence
of positional goals of the objects rather than
f iti l l f th bj t th th
the motion of the robot needed to achieve
these goals, and hence no explicit robot
motion is specified.
• Task‐level language make use of this fact and
g g
simplify the programming task.
Computers in Robots 18
Prof. S.K. Saha
Programming by Simulation
• Among the newest technologies available
t d f
today for programming are those which use a
i th hi h
virtual simulation.
• Using a simulation, robots can be
programmed off‐line.
• Robot actions and assembly parts can be
Robot actions and assembly parts can be
visualised in a 3‐dimensional virtual
environment months before prototypes are
even produced.
Summary
• Different aspects computer usuage in
robotics were highlighted
b h hl h d
• Software requirement
• Hardware requirement
• Robot programming
Computers in Robots 19
Prof. S.K. Saha
Thank You
[email protected]
[email protected]
http://web.iitd.ac.in/~saha
Computers in Robots 20