You are on page 1of 10

Copyright © IFAC Artificial Intelligence,

Leningrad, USSR 1983

AUTOMATIC ROBOT PROGRAMMING

J. C. Latombe
imag, BP No 68, 38402 Saint-Martin d'Heres Cedex, Fral/ce

Abstract. Industrial roboffirequire more and more advanced programming tools.


After "teaching by showing" techniques, manipulator-level programming lan-
guages for describing tasks by sequences of robot operations have emerged,
and they to-day become widespread in industry. However, writting manipulator-
level programs is not easy. This difficulty arises the need for higher level
languages, called task-level languages, for describing assembly tasks as se-
quences of goal spatial relationships between objects. Translating such a
description into a manipulator-level program requires to solve three main
problems: grasp planning, path planning, and fine notion planning. This pa-
per surveys recent progress toward solving these problems. Task-level lan-
guages may deeply transform the way we will program robots in the future,
and they contribute to better CAD/CAN integration.

Keywords. Robot programming, automatic programming, robot languages, automa-


tic mechanical assembly.

1. INTRODUCTION

The task domain of a robot is implicitly de- face uncertainties of the environment ; coor-
termined by a number of primitive mechanical dinating several robots is impossible.
and sensory capabilities. During the last ten
years, these capabilities have improved im- Thesedrawbacks have led to the development of
pressively to become applicable to a wide ran- symbolic languages for programming robots,
ge of complex tasks, the most important one for instance AL [Finkel 74], VAL [Unimation
being mechanical assembly. Consequently there 80], Ul [Latombe 81] and AHL [Taylor 82].
has been an increasing need for appropriate Most of them are extensions of more traditio-
programming systems for specifying how the nal languages such as BASIC and PASCAL. They
primitive capabilities of a robot are to be include both the main facilities of these
applied to a given task. languages and new constructs appropriate to
robotics, for instance: world modelling, mo-
The definition of a programming system is al- tion specification and sensory interaction.
ways a difficult problem. On one hand, we would Because they are oriented towards the des-
like it being easy to use so that it can be cription of robot operations, they are called
accessible by the least sophisticated users. "manipulator-level" languages. They are more
On the other hand, we would like it being ex- and more widespread in industry.
pressive enough so that the users can describe
the most complex tasks. However manipulator-level programs are diffi-
cult to write. The user must think in terms
The earliest method for programming industrial of the three-dimensional world for defining
robots is the "teaching by showing" method. all the motions to make and for preventing
Using aninteractive device the programmer te- possible collisions. He also has to face va-
leoperates the manipulator for performing a rious sources of uncertainty requiring the
sample execution of the task. The motions of monitoring of sensory conditions. These pro-
the joints are recorded so that they can auto- blems have resulted into development ,of pro-
matically be played back later. This method, gramming environments including interactive
which is the most widespread to-day, is attrac- debugging of programs [Finkel 76], combina-
tive because it requires almost no specialized tion of manipulator-level symbolic facilities
knowledge from the user. But it presents se- with teaching by showing techniques [Gini 78],
vere drawbacks that restrict its application extended teaching by showing implemented as
to simple tasks : repetition of the same se- manipulator-level routines [Miribel 82], im-
quence of motions with minor changes at each plementation of special-purpose interface in
iteration (e.g. : palettizing) is fastidious the manipulator-level languages themselves
to "program" recorded "programs" are diffi- [Taylor'82], connection with CAD data bases
cult to edit ; sensory data cannot be used to [rlazer 83], and graphic simulation [Soroka 80]

273
274 J.C. Latombe

[Sata 81]. Unfortunately most of these program- Until recently most of the works relevant to
ming aids bring actual impro vement only when the find-path have focused on algor ithms for
the robot world has been engineered so that it computing co llision among solids [Boyse 79]
is known with little uncertainty. [Ahuja 80] [Powell 82]. Various techniques
have been devised : 2D projections, decompo-
A more genera l approach to solving the diffi- sition of volumes into cells, parallepipedic
culties of manipulator-level programming con- and spherical approximation~ ... However they
sists of developping "task-level " languages. do not direct ly solve the problem of finding
The description of a task in such a language a path and they must be embedded into an "hy-
is object- oriented instead of being robot- pothesize-and-test" method [Lewis 74]. Such a
oriented ; it consists of both a sequence of method consists of iterating the following
goal spatial relationships between the ob- three steps [Lozano -Perez 83a] : first, hypo-
jects and geometric models of the objects. thesize a candidate path ; second check the
The goal of the interpreter of a task-level path for possible collisions ; third, if a
language is to automatically translate this possible collision is found , modify the path.
description into a manipulator-level program. This combinat i on of an hypothesize-and-test
The motivation is to make use of existing method with techniques for computing colli-
CAD/CAM data for automating robot programming. sions works fairly well in rather uncluttered
Advantages one may expect from task-level pro- environments where crude heuristics can be
gramming include better CAD/CAM integration, used to generate candidate paths. Neverthe-
more reliable robot programs, and ~ asier ro- less, they lack generality and they may fail
bot programming. Task-level languages provide when obstacles are more densely distributed.
high expressiveness without requiring program-
ming expertise. A more recent and promising approach for sol-
ving the find-path problem consists of expli-
Some years ago two task-level systems, AUTO- citly representing the set of those robot
PASS [Lieberman 77] and LAJ1A [Lozano-Perez configurations which are collision-free. Fin-
76], were defined, but they hardly were im- ding a path consists of finding a connected
plemented The initial report on the AL lan- sequence of robot configurations in this set,
guage [Finkel 74] also included a task-le ve l starting from the initial configuration and
subset of instructions which was never imple- terminating at the goa l one.
mented. Although they make use of explicit
description of spatial relationships between A relatively common method based on this ap-
objects, languages like RAPT [Popplestone 78] proach is called the configuration space me-
and LM-GEO [Mazer 83] are basically manipula- thod. It has been first reported in [Udupa 77]
tor-level languages. In fact translating and much developped in [Lozano -Perez 81] and
task-level programs into manipulator-level [Brooks 83a]. Basically it consists of shrin-
ones turns out to be a very difficult problem king the moving object -let call it A- to a
involving geometric and strategic ramifica- point while expanding the obstacles -let ~all
tions. During the last few years the trend them Bi (i=1,2, ... )- inversely to the shape
has been to solve more delimitated subpro- of A. This principle can easily be explained
b le ms , typically path-finding, grasp ing and in a two-dimensional world with a fixed orien-
part mating [Latombe 82] [Lozano-Perez 82]. tation of A. Then the position of some re-
ference point P (a vector with two components)
This paper surveys this trend. The new methods of A is sufficient to specify the position
that are emerging from it are likely to deep- of A. Each obstacle Bi restrains point P to
ly transform the way of programming robots be outside some region B'i (see Figure 1).
in the near future. B'i can easily be computed if both A and the
Bis are convexpolygons . Then finding a path
2. PATH FINDING for A is equivalent to finding a path for P
among the B'is. This new problem can be sol-
The find-path problem can be stated as fol- ved by partitionning the free space (i.e. the
lows : given an object with an initial posi- space outside the B 'is ) into convexpo lygons.
tion, a goal position , and a set of obstac l es A path is defined as a sequence of adjacent
located in space, the problem is to find a polygons (i.e. polygons with a common edge)
cont.inuous path for the object from the ini- of the free space, the first polygon of the
tial position to the goal position, which sequence containing the reference point P
avoids collisions with obstacles. at the initial position of A, and the last po-
l ygon conta ining the reference point at the
The find -path problem is a centra l one both goal position afA .Finding such a sequence of
in pick-and-place tasks and in assembly tasks adjacent polygons can be done using tradi-
for plann ing transfer movements of objects tional searching methods [Ni:Eson 80].
from the feed ers to the assembly station.
It is also a subproblem of grasping and part The configuration space method can easily be
mating . However grasping includes the addi- extended to non-convex objects and obstacles.
tional difficulty of choosing the grasp po- Then both A and the Bis are approximated by
sition of the jaws on the objects (see Sec- possibly overlapping convex polygons. When
tion 3) ; part mating motions are executed dealing with lIDcluttered worlds, rough appro-
in highly cluttered environments, and the ximations of both A and the Bis can be used
issue of dealing with geometric uncertainty in order to reduce further computations. The
becomes the crucial one (see Section 4). extension of the method to three-dimensional
Automatic Robot Programming 275

object~ and obstacles in also straightforward,


althougn computational complexity increases.
However, extension to rotating objects is mo-

--
re complicate. Then, in the bidimensional
space the position of the moving object A is
determined by a three-component vector (x,y, 8 ). freeway

- -- -
A technique for dealing with a rotating object
consists of partitionning the interval of pos-
sible values of 8 into sub-intervals called
slices. For each slice, grown obstacles B'i
are computed using the area swept by A around
the reference point P over the range of 8 va-
lues corresponding to the slice [Lozano-Perez
81]. A search graph of adjacent polygons is
constructed for each slice. The two graphs
Fiqure 2 : Representing free space
corresponding to two successive slices can be
by generalized cones
connected by linking nodes corresponding to
overlapping polygons of the two free spaces. 3. GRASPING
The resulting connected graph is to be sear-
ched for a path. The optimal size of the slices Let now consider the problem of finding out
d~'nds on the distribution of obstacles in how to grasp an object with a robot hand. It
the world. Dense distribution requires small includes the find-path problem as a subpro-
sl,.,ti:es, ·while, sparse distribution makes lar- blem, but the goal position of the hand on
ge slices acceptable. the object, that is the grasping position, is
now to be determined. This requires conside-
ring reachability constraints applied by both
the object to be grasped and the task envi-
ronment (for instance, a pin to be inserted
into a hole should not be grasped lengthwise).
In addition, the object should be stable in
the hand in order to make both transfer and
/ part-mating motions possible.
/ B2

~
Note that the problem we are considering is
B'3 somewhat different from bin picking
(Boissonat 81], because we must know the
A grasping position on the object in order to
perform further operations. There are some
B3 tasks where both the problem of picking an
Figure 1 : Expandinq obstacles object out of a bin and that of grasping the
object at a known position happen simulta-
neously. Nevertheless we think that a good
Another method based on the same approach has approach consists of solving them sequential-
been proposed in [Brooks 82a]. In the two- ly.
dimensional world, this method makes use of
pairs of edges of the obstacles to compute the Several works have tackled the problem of
spines of generalized cones, called freeways, automatically generating manipulator-level
and representing the free space (see Figure programs for grasping objects [Lozano-Perez
2). The possible motions of the moving object 76] [Wingham 77] [Binford 79] [Lozano-Perez
are along the constructed freeways ; at each 81] [Laugier 81] [Laugier 83]. Most of them
point of the spine of a freeway only a sub- are based on the same general approach made
set of orientations is allowed. Motion seg- of two steps
ments consist of translations, with possible
re-orientation, along segments of spines. A - First, determine a set of candidate grasp
complex path is built by transferring from positions on the object by conSidering lo-
one spine to another where they intersect. At cal morphological properties of the object.
such points the moving object must have an For instance, [Lozano-Perez 76] considers
orientation legal for both freeways. The me- a small number of grasping position classes
thod has been extended [Brooks 83] to find defined on simple volumes like rectangular
collision-free path for a manipulator with parallepipeds and cylinders; [Wingham 77]
5 or 6 revolute joints. Free space is re- searchs for parallel faces on a polyhedron.
presented as freeways for the hand and as - Second, prune the set of candidate grasp
freeways for the upper arm. Such a method positions by analyzing reachability cons-
works fast in relatively uncluttered worlds. traints both at the initial (i.e. before
the motion to be executed next) and the fi-
nal positions of the object.
In most methods, stability of the object in
the gripper is considered through heuristics
- for instance, the center of mass of the
object should be located on the axis
276 J.C. Latombe

between the jaws [Binford 79] -which are used 2. Choose a direction of approach D in the
by the program for ordering the candidate gripping plane.
grasp positions [Laugier 81]. The gripper is supposed to move along D be-
fore grasping the object. Heuristics consi-
An instance of this approach is the method dering the projected obstacles are used to
presented in [Laugier 81] and completed in select D. In the rest of the algorithm, we
[Laugier 83], which is applicable to grippers will suppose that D is perpendicular to
having two parallel jaws. During the first the table (Figure 5).
step, the method regards every pair of fea-
3. Grow the gripping zone GZo inversely to
tures (faces, edges, and vertices) of the ob-
the shape of the jaws (let call GZ1 the
ject as a possible class of grasping positions
new gripping zone).
and computes a collection of simple local pro-
This step is illustrated by Figure 5.a.
perties for each pair. These properties are
The algorithm for growing GZo is simular
used for constructing a small subset of can-
to that used in the configuration space
didate classes of grasping positions ; for
method of Section 2. The reference point
instance, any pair containing a concave edge,
is J1 (or J2).
or made of non-parallel planar faces, or made
of faces which are not "in front of" each 4. Repeat for the jaws and the palm:
other, etc, is rejected. During the second
4.1 Grow the projected obstacles to the jaws
step, the method orders the candidate classes
(resp. the palm) inversely to their shapes.
dccording to heuristics drawn from the sta-
This is illustrated by Figure S.b (for the
bility condition; for each one it analyzes
jaws only).
reachability constraints using a variant of
the configuration space method sketched in 4.2 Restrict the grown gripping zone GZ1 by
Section 2. We describe how this is done below. substracting the grown obstacles (let
call GZ2-resp.GZ3- the gripping zone after
A cartesian coordinate frame OXYZ is attached substracting the grown obstacles to the
to the gripper as shown in Figure 3. A class jaws -resp. to the palm).
of grasping positions is represented by a Figure S.c shows GZ2.
plane P, called the gripping plane, and by a
5. If GZ3 is not empty, then return success
region GZo in that plane, called the gripping
otherwise either modify D and return to
zone :
step 3, or return failure.
- The gripping plane P, with which OXZ should
This algorithm has been implemented and expe-
coinciqe, constraints the orientation of
rimented on several objects although steps 2
the gripper. It is easily computed from the
and 5 rely strongly on heuristics.
pair of features defining the class of gras-
ping positions ; for instance, in the typi-
4. PART MATING
call case where these two features are pa-
rallel planar faces (Figure 3), P is paral-
Several sources of uncertainty prevent tight-
lel to them and equally distant from each tolerance operations like mating two objects
one. In some particular cases the grisping from being accomplished directly like pick-
plane degenerates into a line or a point. and-place operations :
- The gripping zone GZo constrains the posi- - there are bounds to the accuracy of a ro-
tion of the gripper. It is the range of bot manipulator,
positions of the origin 0 of the frame OXYZ,
which maintain a contact between points J1 - feeders, whether they are machanical or
and J2 of the jaws and the two features of vision-based, deliver objects with some
the object (see Figure 3). It is computed position uncertainty,
from the "mutual visibility" of the fea- - copies of the same object are identical
tures ; for instance when the features are only within specified tolerances.
parallel planar faces, GZo is the inter-
section of the projections of both features If there was no uncertainly, a program for
on P. mating two objects would merely consist of
a sequence of goal-oriented motions (possi-
Given these definitions, the algorithm for blya single one). Each of them would
analyzing reaehability to a candidate class achieve a desired geometric relation bet-
of grasping positions is the following : ween the objects. However, because of un-
certainty, each motion may not achieve the
1. Project obstacles located in the space motion it was intended for, so that it be-
that may be swept by the jaws and the comes necessary to check sensory data (ty-
palm of the gripper, at both the initial pically force and position data) for deter-
and final positions of the object, onto P. mining whether the expected relation has
Continuing on the example of Figure 3, Fi- been attained, or not. Unwanted relations
gure 4 shows GZo and the projected obs- require corrective motions.
tacles due to both the object itself and
the table on which the object rests. For Therefore, a program for mating two objects
simplification of our presentation, we may be regarded as the implementation of a
will suppose that these are the only ob- strategy to reduce uncertainty until the
stacles to the gripper. goal relation between the two objects is
achieved. Such a program typically includes
Automa tic Robot Program ming 277

L w

directi on
of approac h
1 o
z

x
jaw

__~~_(~~~}!ce
point

- a -

grippin g zone

grippin g
plane

Figure 3 A class of graspin g positio ns


transfo rmed obstac les
obstac le
OBSTl
- b -
GZO

resulti ng
___ ~GZl
grippin g
GZ2
L __ ,
I
I
I
I
I
____ __ J

obstac le
- c -

Figure 5 Analys ing reacha bility to a class


Figure 4 Obstac les projec ted on the
of graspin g positio ns
grippin g plane
278 J.C. Latombe

- goal-oriented motions to achieve wanted re- the input rules are used to build plans in
lations, the form of sequences of situations and mo-
tions. Given a task, a first plan, called the
- corrective motions to improve position accu-
ground plan, is built ; for instance, if the
racy from unwanted relations,
task is to insert a pin into a hole, the
- information-gathering motions to reduce posi- ground plan may merely contain a single mo-
tion uncertainty, tion : starting from the situation where the
pin and the hole are aligned (with some un-
- conditional statements, which implicitly in-
certainty) translate the pin along its axis
terpret sensory data in terms of spatial re-
until its extremity hits the bottom of the
lations requiring different courses of ac-
hole. After each motion of the plan is exe-
tions,
cuted by the robot, the system checks posi-
- loops to repeat goal-oriented motions that tion and force sensory data for determining
were previously unsuccessful, whether the planned situation has been achie-
ved. If this is the case, then the next mo-
- variables representing uncertainty, and as-
tion of the plan is executed. Otherwise, ru-
signments to update them after both correc-
les are invoked for proposing a corrective
tive and information-gathering motions.
plan starting from the current situation and
having the expected (but not achieved) si-
A first approach to synthesizing part-mating
tuation as its goal situation ; for instance,
programs has been presented in both [Taylor
if the pin hi~the chamfer instead of hitting
76) and ~ozano-Perez 76). It consists of fil-
the bottom of the hole, then the corrective
ling in given procedure skeletons. A skeleton
plan may consist of first moving the pin
contains most of the ingredients for perfor-
along the force vector perpendicular to the
ming a task, but many parameters remain to be
pin's axis, and then moving the pin along
defined. [Taylor 76) developped a numerical
its axis. The corrective plan is inserted
method for propagating errors and tolerances
into the ground plan, and execution is resu-
through relations among object features in a
med by the robot. Due to geometric uncertain-
world-model data base. Computed error estima-
ty, several executions of the same task usu-
tes were used for deciding how to complete
ally produce different execution traces.
the concerned strategy skeleton; for instance,
Traces are represented by linear graphs ;
in the task of inserting a pin into a chamfred
the nodes are the executed motions and the
hole, the error estimate on the distance bet-
arcs are the encountered situations.
ween the pin and the hole axes could be used
for deciding whether to include a piece of
The assembly of the part-mating program
code for searching the hole, or not. Later,
happens during the second phase of the me-
[Brooks 82b) improved the method for propaga-
thod, called the "induction phase" ; it pro-
ting errors by introducing symbolic computation
ceeds through iterative transformations of
techniques. The new method can be applied not
execution traces by merging nodes and arcs
only in the forward direction for estimating
labelled by "equivalent" motions and situa-
errors after a planned operation, but also
tions. The result is a graph including bran-
in the backward direction for computing the
ching points and cycles, which represent the
ranges of initial values of some parameters
flowchart of the part-mating program. Basi-
which enable a program to succeed [Lozano-
cally the two following transformation rules
Perez 76) developped methods for computing the
are applied
expected length of guarded motions and their
force termination conditions taking uncer-
- Rule 1 :
tainty into account.

This approach suffers from some drawbacks.


First, many errors are difficult to estimate
and error propagation techniques based on the
"worst-case uncertainty" hypothesis may gene-
~
rn'
s s
rn'
s
. . ·ID

rate unrealistic over-estimates because error - RULE 2 :


compensation phenomena are not taken into ac-
count. Second, the techniques developped so m'~'
---m'
far for propagating errors are only applicable s s
to linear programs ; their extension to itera- s
tive programs would require solving fix point
m
computation problems.
Figures 6 through 10 illustrate the process
These drawbacks have motivated investigating og generating the flowchard of a part-mating
a second approach to synthesizing part-mating program from execution traces. The task is
programs based on inductive learning from ex- that of inserting a pin into a chamfered
periments [Dufay 83b] [Dufay 83c]. The method hole. Both the nodes and the arcs are la-
consists of assembling input partial local belled by suggestive names for simplifica-
strategies described as rules into a complete tion ; identical names denote "equivalent"
manipulator-level program by processing the motions and situations. Figure 6 contains
execution traces of several attempts to car- two execution traces. The graph of Figure 7
ry out the task. The execution traces are is derived from that of Figure 6 by applying
generated during the "training phase". Then rule 1 twice. Figure 8 shows the graph after
applying rule 2 twice. Note that a loop has
Automatic Robot Programming 279

been inducrd. Figure 9 shows the previous


graph co~ined with a third execution trace.
Figure 10 deriv2s from Figure 9 by appling
both rule 1 and rule 2 once. A second loop ove along axis
has been induced. The process of transforming contact 1
a flowchart such as the graph of Figure 10
into a program is straightforward [Dufay 83c]. ove along force
contact 2
An implementation of the above method has been
used for synthesizing various part-mating pro- ove along force
grams, including packing a block into a cor-
ner, inserting a part with two pins into a
part with a hole and a groove, and inserting against ove alona axis
a card into a slot. However, a drawback of the
method is that the rules are specific to tasks
and must be provided by the user in addition
to the description of the task. Iloreover, the
processing of ambiguous sensory data [Dufay FIGURE 6 (see text)
83a] is still to be improved .
.,.
A t~d approach derived from the configuration
axis
space/method (see Section 2) has been proposed
receot1y [Lozano-Perez 83b]. Using this ap-
proach, the pin-into-hole task is first trans-
force
formed from the original formulation shown by
Figure 11.a into the problem of moving point ontacl: 2
p to the goal surface G shown by Figure 11.b
ove along force
(the pin has been shrinked to point p and the along axis
hole has been expanded accordingly). Then the aligned
"pre-image" of G for a direction Ni is com-
move along axis
puted ; i t is the range of all those positions
of p such that a single motion along vi would
make preach G (see Figure 12). If no pre-
image of G contains the current position p,
then the same pre-image computation is recur- FIGU~ 7 (see text)
sively applied using each of the existing
pre-images as a possible goal. Therefore, the
basic idea is to chain backward from the goal
towards the current position of p, characteri-
zing at each step the pre-image of the current axis
goal. This idea has been extended for taking
into account the effects of both uncertainty
-by introducing the notion of "strong" pre- move along force contact 2
image (range of positions for which all no-
tions within the range of velocity direction axis
uncertainty will reach the goal)- and fric-
tion. The notion of strong pre-image permits
the method to generate sequences of motions
resulting into unambiguous situations between
the objects. However, this approach to part-
mating program synthesis remains a theoretical
one yet to be implemented (the computation of FIGURE C (see text)
the pre-image of a goal is still a problem).
It suffers of some of the drawbacks of the
first approach introduced above ; but we
believe that it could fruitfully be combined
with the second one in order to produce the axis
plans needed by the training phase automa-
tically.
ontact 2

axis

FIGURE 9 (see text)

AI-J*
280 J.C. Latombe

languages considerably extend the range of


9 functions primitives which are accessible
from the programming system. But coding a
move along manipulator-level program may not be easy
it is time-consuming and requires relatively
sophisticated users.
move
along Since the mid seventies and mostly during
force the last five years, several resea~ch works
have focused on developping task-level pro-
FIGURE 10 (see text)
gramming systems, which provide high expres-

u • p
siveness without requiring programming exper-
tise. After the early ambitious attempts il-
lustrated by AUTOPASS and LA;~, the trend
has been to solve more delimited subproblems

uw
path finding, grasping and part mating. This
paper has surveyed this trend. Important pro-
gress has been made since today there exist
methods for solving the three subproblems.
Therefore it is likely that complete task-
level prototype programming systems will
a b exist soon in some laboratories.

FIGURE 11 transforming the pin-into-hole However we do not think that such systems
task will enter industry in the short term. In-
deed, most of the existing methods still
L2 have too many limitations for being reliably
applicable to large range of industrial tasks.
An efficient algorithm for computing colli-
1\' N sion-free path for general robots remains
to be developped. All the methods for com-

ttT
FIGURE 12 preimage of G for different vi
puting grasping positions of an object are
limited to parallel-jaws gripper ; in addi-
tion, none of them adequately handles ob-
ject stability. Finally a complete method
for part-mating program synthesis is still
to be defined and implemented, although im-
portant ingredients already exist.

Nevertheless, we believe that progress about


5. CONCLUSION
task-level systems will more rapidly enter
industry in the form of aids to programming.
During the last ten years, robots have consi-
For instance, one may envision an interactive
derably evolved under both socio-economic
programming system including separate modu-
pressure and rapid progress of basic techno-
les for proposing robot paths, grasping po-
logy. They have become truly programmable ma-
sitions, and part-mating strategies to the
chines which are applicable to a large va-
user. Partial automatic robot programming
riety of tasks without major change. However
should also be possible soon in some limited
programming a computer-controlled sensor-
well-defined task domains. In addition, works
based robot is some that different from the
on task-level systems should result in a
mere programming of a computer. Indeed, robot
better and structured methodology for pro-
programs run in a world which is incompletely
ducing manipulator-level programs.
known and imperfectly modelled. In computer
programming we know the input, and we are in-
Because of its importance for both integra-
terested by the output ; in contrast, in ro-
bot programming, we know the output we would ting CAD/CAll and augmenting robot program-
ming productivity, the amount of research
like to'get (the assembly), but we only have
about automatic robot programming is very
a partial knowledge of the input.
likely to augment considerably in the near
future, both in university and industrial
It is more and more obvious that the cost of
laboratories.
programming robots becomes an important eco-
nomic issue in robot-based manufacturing.
REFERENCES
This issue has motivated the development of
programming tools, such as the general-pur-
[Ahuja 80 1
pose manipulator-level robot programming
N. AHUJA, R.T. CHIEN, N. B~ID\'lELL : "Inter-
languages. The availability of such languages
ference detection and collision avoidance
at a commercial level is one of the most si-
among three dimensional objects", _1st Ameri-
gnificant aspects of the current evolution
can Association for Artificial Intelligence
of industrial robots towards more sophisti-
Conference, Stanford, August 1980.
cated computerization. Compared to the tra-
ditional "teaching by showing" method, these [Binford 79 1
T.O. BIllFORD : "Computer Integrated assembly
Automatic Robot Programming 281

J
systems", Artificial Intelligence Laboratory, Industrial Robots, October 1981.
Stanford, 1979.
[Latombe 82a]
[Boissonnat 8 1] J.C. LATOMBE : "Equipe Intelligence Artifi-
J .D. BOISSONN!'.T, F. GERMAn, : "A new approach cielle et Robotique : etat d 'a vancement des
to the problem of acquiring randomly oriented recherches au 1er Octobre 1981" (in French) ,
workpieces out of a bin", International Joint !>.P. N° 291, IMG, Grenoble, February 1982.
Conference on Artificial Intelligence, Vancou-
[Latombe 82b]
ver, August 1981.
J.C. LAT01lBE : "Survey of advanced general -
[Brooks 82a] purpose software for r obot manipulators",
R.A. BROOKS : "Solving the find-path problem p.". N° 330 , HlAG, Grenoble, November 1982 .
by good representation of free space", l!:!£..
[Laugier 81]
American Association for Artificial Intelli-
C. LAUGIER : "A program for automatic gras -
gence Conference, Carnegie-Mellon, August 1982.
ping of objects with a robot arm", illh.
[Brooks 82b] International SympoSium on Industrial Robots,
R.A. BROOKS : "Symbolic error analysis and October 1931.
robot planning", International Journal of Ro-
[Laugier 83]
bot~cs Research.L 4, December 1982.
C. LAUGIER, J. PERTIN : "Automatic grasping
~OOkS 83a] a case study in accessibility analysis ", 1..!1;
R.~ BROOKS, J. LOZANO-PEREZ : "A subdivision ternational f1eeting on Advanced Software in
algorithm in Configuration Space for findpath ~obotics, Liege, Ilay 1983.
with r otation", International Joint Conference
[Lewis 74]
on Artificial Intelligence, Karlsruhe, August
R.A. LEWIS : "Autonomous manipulation on a
1983.
robot : summary of manipulator software func-
[Brooks 83b] tions", Jet Propulsion Laboratory, California
R.A. BROOKS : "Planning co llision-free mo- Institute of. Technology, -:;'fl 33-679, f~arch 1974.
tions for pick and place operations", 1st
[Lieberman 77]
International Symposium on Robotics Research,
L.1. LIEBEJU-IA..'l, M.A. WESLEY : "AUTOPASS : an
Bretton Woods, August 1983.
automatic programming system for computer
[Boyse 79] controlled mechanical assembly", IEtl Journal
J .H. BOYSE : "Interference detection among so- of Research and Development, July 1977.
lids and surfaces", Communications of ACM,
[Lozano-Perez 76]
January 1979.
T. LOZANO-PEREZ : "The design of a mechanical
[Dufay 83a] assembly system", Art ificia l Intelli0ence
B. DUFAY, C. LAUGIER : "Geometrical reasoning Laboratory, AI Tt:( 397 , f11-:;', 1976.
in automatic grasping and contact analysis",
[Lozano-Perez 81]
in T. M. ELLIS and O. 1. SE~1ENKOV (Eds) , ,~.
T. LOZAlfO-PEREZ : "Automatic planning of ma -
ces in CAD/CAtl", North-Holland, 1983.
nipulator transfer movements ", IEEE Trans.
[Dufay 83b] Systems, flan, Cybernatics SMC-1 1, 10, 1981.
B. DUFAY : "Apprentissage par induction en
[Lozano_perez 82]
robotique. Applications a la synthese de pro-
T. LOZANO-PEREZ : "Robot programming ", A.I.
grammes de montage" (in French), these de 3e
f1emo N° 698, Artificial Intelligence L~ ­
cycle, ~, Grenoble, June 1983 .
tory, f1IT, Decenber 1982.
[Dufay 83c]
[Lozano-Perez 83a]
B. DUFAY, J.C. LATOf1BE : "An approach to auto-
T. LOZANO-P EREZ : "Task-planning" , in M.
matic robot programming based on inductive
BRADY et al. (Eds) , "Robot f~otion", fUT
learning", 1st International Symposium on Ro-
Press, 1983.
botics Res ea rch, Bretton Woods, August 1983.
[Lozano-Perez 83b]
[Finkel 74]
T. LOZANO-PE~Z, f1.T. MASON, R.H. TAYLOR :
R.A. FINKEL et al. : "AL, a programming sys-
"Automatic synthesis of fine-motion strategies
tem for automation", Memo AIM 243, Artificial
for robots", 1st International Symposium on
Intelligence Laboratory, Stanford, November
Robotics Research, Bretton Woods, August 1983.
1974.
[Finkel 76] [flazer 83 ]
E. MAZER : "Geometric programming of assembly
R.A. FINKEL : "Constructing and debugging mani-
robots (LM-GEO)", International .t'eeting on
pulator programs", Memo Anl 243, Artificial
Advanced Software in Robotics, Liege, May
Intelligence Laboratory, Stanford, ilovember
1983.
1974.
[Miribel 82]
[Gini 78]
J.F. flI!UB EL , L. MAZER : "The LM Reference
G. GriH, M. GINI : "Obj ect description wi th
f1anual" , U1AG Report, Grenoble, !lovember
a manipulator", the Industrial Robot, f·larch
1982.
1978.
[Popplestone 78 ]
[Latombe 81]
R.J. POPPLESTONE, A.P. AMBLER, I . BELLOS :
J .C. LATOMBE, E. f1AZER : "LH : a high-level
"RAPT: a language for describing assemblies",
programming language for controlling assembly
the Industrial Robot, September 1973.
robots", 11th Internationa l SYr:1posium on
282 J.C. Latombe

[Powell 82]
E.G. POWELL : "An efficient collision warning
algorithm for robot arms", 2nd American Asso-
ciation for Artificial Intelligence Conferen-
~, Carnegie-Mellon, August 1982.

[Sata 81]
T. SATA, F. KIMURA, A. AMANO : "Robot simula-
tion system as a task prograrruning tool", .!l!lJ
International Symposium on Industrial Robots,
Tokyo, October 1981.
[Soroka 80]
B.J. SOROKA : "Debugging robot programs with
a simulator ", CAD CAM - 8 Conference, Ana-
heim, California, November 1980.
[Taylor 76]
R.H. TAYLOR : "Synthesis of manipulator control
programs from task-level specifications", ~
AIM 228, Artificial Intelligence Laboratory,
Stanford, July 1976.
[Taylor 82]
R.H. TAYLOR, P.D. SUMMERS, J.M. MEYER : "AML
a manufacturing language", The International
Journal of Robotics Research, Vol . .1., N° 3,
1982.
[Unimation 80]
Unimation Inc. : "User's guide to VAL : a
robot prograrruning and control system", Uni-
mation Inc. Danbury, Connecticut, Version 12,
June 1980.
[Udupa 77]
S.M. UDUPA : "Collision detection and avoidan-
ce in computer controlled manipulators", .l!:!=.
ternational Joint Conference on Artificial
Intelligence, Cambridge, August 1977.
[Wingham 77]
M. WINGHAH : "Planning how to grasp objects
in a cluttered environment", M.Phil. Thesis,
University of Edinburgh, 1977.

You might also like