Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ROBOT PROGRAMING
METHODS OF ROBOT PROGRAMMING
Robot programming is accomplished in several ways. Consistent with current
industrial practice we divide the programming methods into two basic types:
1. Leadthrough methods
2. Textual robot languages
⇒ The leadthrough methods require the programmer to move the
manipulator through the desired motion path and that the path
he committed to memory by the robot controller.
⇒ The lead through methods is sometimes referred to as “teach-by-
showing” methods. Chronologically, the leadthrough methods
represent the first real robot programming methods used in
industry.
⇒ Robot programming with textual languages is accomplished
somewhat like computer programming.
⇒ The programmer types in the program on a CRT (cathode ray
tube) monitor using a high-level English-like language.
⇒ The procedure is usually augmented by using leadthrough
techniques to teach the basic features and capabilities of these
programming methods.
LEADTHROUGH PROGRAMMINC METHODS
In lead through programming, the robot is moved through the desired
path in order to record the path into the controller memory. There are ways of
accomplishing leadthrough programming:
1. Powered leadthrough
2. Manual lead through
ASSEMBLE TYPEWRITER
⇒ The robot would have to obey this command by developing its own
step-by step plan for selecting the separate components and
assembling them in the proper order to make the typewriter.
⇒ The level of intelligence implied by this example is many years
away, and some might argue that robots will never be intelligent
enough to deal with such a high-level command.
⇒ What is more likely than the above macro command is that the
task of assembling the typewriter would he divided into smaller
subtasks that can be more readily managed by the robot.
⇒ Nevertheless, it is clear that the kind of intelligence required in
world modeling is of a different type and higher level than the
preprogrammed intelligence represented by the error recovery
example described above under second generation languages.
⇒ The robot intelligence needed in world modeling includes the
ability to solve problems and make decisions relying on other than
preprogrammed instructions.
⇒ One general approach to this problem involves the use of artificial
intelligence, and in the following chapter we discuss this topic and
its potential applications in robotics.
⇒ Another approach is one that has been adopted in research on
hierarchical control systems for robotics and other programmable
automation at the National Bureau of Standards.
⇒ In principle, it should he possible with future generation
languages to accomplish robot programming completely off-line
without requiring the need for a teach pendant to physically show
each point in the program to the robot
There are problems to be solved before future generation languages using
off-line programming become a reality. Certainly one of these problems deals
with the accuracy of the world model contained in the robot’s memory model is
not the same as the real world. I will always be some positional error between
the actual physical objects in the work environment and the computer model
used by the robot. For intricate tasks (e.g., assembly operations), the positional
errors may mean the difference between success and failure in performing the
task.
A second problem with off—line programming is concerned with the
technology of artificial intelligence, hierarchical control, and similar approaches
that would permit the robot to accept a high—level objective—oriented
command (e.g.. ASSEMBL.E TYPEWRITER) and translate that instruction into a
series of actions required to accomplish it. World modeling for robot
programming is an area of significant interest in a number of research and
development laboratories, both in academia and industry.
ROBOT LANGUAGE STRUCTURE
The second generation languages represent the current state of the art in
textual languages. In this and the following sections of this chapter we describe
the features that characterize the second generation languages in use today for
robotics. Some of these features, of course, are applicable to first generation
languages as well, hut our discussion will include the more advanced
capabilities that usually go beyond the first generation.
Operating Systems
In using the textual languages, the programmer has available a CRT
monitor, an alphanumeric keyboard, and a teach pendant. There should also he
some means of storing the programs, either on magnetic tape or disk.
⇒ Using the language requires that there be some
mechanism that permits the user to determine
whether to write a new program, edit an existing
program, execute (run) a program, or perform some
other function.
⇒ This mechanism is called an operating system, a
term used in computer science to describe the
software that supports the internal operation of the
computer system.
⇒ The purpose of the operating system is to facilitate
the operation of the computer by the user and to
maximize the performance and efficiency of the
system and associated, peripheral devices.
⇒ The definition and purpose of the operating system
for a robot language are similar.
A robot language operating system contains the following three basic modes of
operation:
1. Monitor mode
2. Run mode
3. Edit mode
⇒ The monitor mode is used to accomplish overall supervisory
control of the system.
⇒ It is sometimes referred to as the supervisory mode. In this
mode, the user can define locations in space using the
teach pendant, set the speed control for the robot, store
programs, transfer programs from storage back into control
memory, or move back and forth between the other modes
of operation such as edit or run.
ARTIFICIAL INTELLIGENCE
⇒ Modern robot control concepts, as well as vision and tactile
sensing have their roots in artificial intelligence (Al) research.
⇒ In our discussion of future generation languages for
programming robots in the previous chapter, we talked about
world modeling and the need for a robot to receive an objective
oriented command, such as ASSEMBLE TYPEWRITER, and
translate it into a set of specific actions.
⇒ The capacity to accomplish this translation will require a high
level of intelligence by the robot. It is appropriate that we explore
the subject of artificial intelligence and its opportunities in
industrial robotics.
INTRODUCTION
⇒ Artificial intelligence efforts aim at developing systems that
appear to be intelligently.
⇒ Often this is described as developing machines that “think”.
Typically this work is carried out as a branch of computer
science, although also contains elements of psychology,
linguistics, and mathematics.
⇒ Artificial intelligence is the part of computer science
concerned with the characteristics that associate with
intelligence in human behavior understanding language,
learning, solving problems, and so on. Because of the
difficulty in defining intelligence. Al research is often best
described by discussing its goals, as we do in the next
section.
GOALS OF AI RESEARCH
While the general objective of AL work is the development of machines
which exhibit intelligent behavior, this statement is in itself too broad and
ambiguous to be meaningful. The following paragraphs will describe some of the
areas of Al which are presently being pursued as distinct areas of research.
1. Problem solving.
Examples of problem-solving systems are the chess- playing programs.
Given a set of rules and strategies these systems are capable of playing chess
on a proficient level. Problem solving does not necessarily restrict itself to
games. Consider, in the future, telling your household robot to fetch the paper.
On the way to solving the problem of retrieving the paper the robot must
identify and solve a number of smaller problems, hopefully in the most efficient
sequence. First the robot must identify a possible path to reach the paper, then
it must deal with obstacles along that path, such as opening the door. Finally it
must deal with grasping the paper and returning it. Almost all tasks with which
we are confronted daily involve problem solving. Design of a system requires the
breaking down of the problem into successively smaller problems until the
solutions begin to become evident. At this point we must “show” robots all of
the motions required to perform an assembly task. A robot endowed with a form
of “problem solver” may be able to develop the assembly strategy itself. We will
discuss this example in greater detail in a later section. The techniques of
problem solving are the same whether developing a robotic assembly strategy
solver or some other problem solver.
2. Natural language.
In spite of the proliferation of computers into department stores, many
people are still uneasy or uncomfortable dealing with computers. This is due in
part to the need to talk to a computer in its language rather than the user’s
“natural” language. The problems facing natural language researchers are
numerous. The computer must not only he able to understand the meanings of
words, but how those meanings may differ in context with other words. The
system must also be able to understand the syntax of the language so that the
relationships of the words are understood. Imagine the possible meanings for
“Time flew out the window” if taken purely from a grammatical standpoint.
3. Expert systems.
This area of research is concerned with developing systems that appear
to behave as human experts in specific fields. Through a dialog with a human
operator an expert system can recommend tests to be performed and ask
appropriate questions until it arrives at a conclusion. At present, expert
systems are being used to configure computer systems, design circuits, and
perform medical diagnosis. Some of the issues involved with the design of
expert systems include the problems of dealing with vast amounts of data,
explaining the system’s “reasoning” on the way to reaching a conclusion,
representing the data collected from the human experts, and improving the
“knowledge base” with experience.
4. Learning.
One of the attributes of intelligence is the ability to learn from
experience. If machines were capable of learning then the task of endowing
them with knowledge, as in the case of expert systems, would be greatly
simplified. Some systems have been developed which have shown the I ability to
learn from experience, hut to this date limited progress has been made. I
5. Vision.
Most of the basic concepts employed in commercial vision systems are
the result of AI research. One of the more interesting goals of Al vision research
is to permit the systems to perform scene analysis. That is present the vision
system with a scene and allow the system to identify object* within the scene.
Some of the other areas of AI research include automatic programming
hardware development, and deductive reasoning
AI TECHNIQUES
AI is concerned with the use of data or knowledge. Therefore techniques
are developed for two basic tasks: data representation and data manipulate In
this section we will look at some of the approaches for representing I and using
that data in some specific manner. We will not discuss act4 programs for doing
this, only the general techniques which might be employed by AI programs.
1. Objects.
More specifically facts about objects, such as “robotics drinks heavily” or
“birds have wings.”
2. Events.
Not only the event itself, such as “The robotics student broke arm,” but
perhaps the time or cause-effect relation of the event. Robotics student broke
his arm yesterday and the nasty instructor made pay for it.”
3. Performance.
If the AI system is one which is designed to control a robot then it must
have data on the performance of the arm that is, its kinematics, dynamics,
what bits to manipulate in the hardware, and so on.
4. Metaknowledge.
This is the knowledge about our knowledge. This includes our knowledge
of the origin of the information, its relative importance, its reliability, and so on.
For example, one would give little weight to the following information “The study
of robotics is painless” if that information came from a history student.
At this point let us look at some of the various techniques for representing
knowledge.
1. Logic.
Formal logic was developed by mathematicians and philosophers to
provide a method for making inferences from facts. Formal logic allows facts to
be represented in a specific syntax, and, by applying defined rules of inference
to these facts, allows conclusions to he drawn. We are probably familiar with
the following type of example:
Given the two statements
a. All roboticist play games.
b. Jack is a roboticist.
c. Jack plays games.
2. Procedural representations.
In the previous discussion we examined a method for storing facts. It is
also necessary to store information on how to facts. In a logic-based system as
above, every rule of inference must be applied to prove a new point. If it were
possible to encode the information long with a way to use that information, it is
possible that a more efficient item could he developed. For instance, if we
wished to find out whether not Jack plays games, the database of the computer
could contain the following facts:
Jack is a roboticist.
All roboticist play games.
If need-prove plays (x)
Show is-roboticist (x)
Which states that if we need to prove some fact about x, we can do so by
showing that x is a roboticist? With this information the system would be able
to avoid any other information about Jack and jump instantly to the correct
solution. This technique of storing information as a procedure is commonly
used in computer programs in if then statements. It offers the advantage
directing the system to find the solution more directly. On the other hand, it
takes away from the generality of the system and makes changes difficult.
3. Semantic networks.
Semantic networks are representations of information which consist of
nodes and arcs. Nodes typically represent objects concepts, or situations and
the arcs represent the relationships between nodes the nodes and links are
labeled with simple language descriptions. Figure illustrates the following
information as a semantic network:
1. Jack is a student.
2. Jack is a roboticist.
3. Roboticist plays games.
4. Roboticist may be students.
5. Students may be roboticist.
Many inferences may be drawn about Jack, students, and roboticist by
investigating the network.
Networks are used extensively in Al research as a means of knowledge
representation. Unfortunately they also have their drawbacks. They may be
3. Hill climbing.
Hill-climbing techniques provide a variation on depth- first searches.
Rather than moving in an arbitrary decision at each branch point, the hill-
climbing algorithm attempts to make the best choice among the possible
branches from the present node. This choice is based upon some selection
technique. For example, in the traveling salesman problem, the next node
chosen may be based on the total distance up to the next possible node. The
risk here is that we are only looking at the next node, that is, at local
information. While we may he making the best local choices, we may he missing
a far better overall solution that had one had arc.
4. Best-first search.
This is a variation on hill climbing. In this case, rather than choosing the
best next branch from a node, the system selects the best next node regardless
of its position in the system. This generally provides the
5. Branch and bound.
This is similar to the best-first search. The system evaluates all of the
partial paths to the first level arid expands the most promising path to the next
level(s). As the path ceases to he the optimum (it becomes too long) the system
expands the new most promising path. In this way it is always investigating the
optimum path to the deepest level necessary. In order to ensure that the
optimum path is found all partial paths must be extended until they become
longer than the solution path, or until a shorter solution is found.
6. Constraints.
In some cases it is not necessary to consider all of the possible options in
developing the tree. Very often in the real world, con straints are placed upon
information by its context. We know, for instance, that mice and cats are not
likely to live in the same cage. Applying these constraints as we are traveling
through the tree may lead to a significant reduction in the possible number of
nodes to he explored. There are many other search techniques beyond those
explained here but they are beyond the scope of this text. At this point it is
worthwhile to review what has been covered so far.
Knowledge can be represented in a number of ways. Not only is the data
important, hut also the relation of data to other information and the rules for
manipulating data are important. Problems may also be represented in a
number of ways. Problems may he solved by forward or backward reasoning. By
representing solutions as trees, optimal solutions may be found using search
techniques.
AI AND ROBOTICS
While the material covered in this chapter so far may appear to be far
removed from the factory floor it is useful for providing insight into the
operation of robotic systems in the future and in the function of sensory
systems such as vision.
One of the problems involved with vision systems is the representation of data
within the system. Rather than store pictures of the parts within the vision
systems memory, certain features about the objects are stored, such as
perimeter, area, number of holes, and so on. As systems become more complex
and begin to be able to deal in crowded three-dimensional environments it will
require greater intelligence on the part of the vision system. Techniques have
been developed which allow vision systems to recognize specific types of objects
(such as blocks) even when jumbled together. These systems rely heavily on
search minimization methods to increase their processing speed.
Another promising area is research into task level programming. Rather
than program the robot to make each required motion, it will be possible to
make statements such as “Pick up the big red block.” A program called SI-
IRDLU, developed in 1971, allowed an operator to converse with a robot which
lived in a world of blocks and pyramids. SHRDLU was able to respond and to
plan out tasks. For example, if the red block was under a green block, SHRDLU
would move the green block and set it down before getting the red block.
Factories are in fact, limited environments. This constrains the number of
problems which must be solved to make robot intelligence practical.