Sie sind auf Seite 1von 20

Prof. S.K.

Saha

Lecture 27 Sept. 24, 2009

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
saha@mech.iitd.ac.in
sahaiitd@gmail.com

http://web.iitd.ac.in/~saha

Computers in Robots 20