Nothing Special   »   [go: up one dir, main page]

Unit-9

Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

Robot Programming

UNIT 9 ROBOT PROGRAMMING


Structure
9.1 Introduction
Objectives

9.2 On-line Programming


9.2.1 Lead through Programming
9.2.2 Walk through Programming

9.3 Off-line Programming


9.3.1 Robot-oriented Programming
9.3.2 Task-level Programming

9.4 Programming by Simulation


9.5 Summary
9.6 Key Words
9.7 Answers to SAQs

9.1 INTRODUCTION
The greatest advantage in industrial applications of robots is their flexibility, their ability
to rearrange for new production and their large movement range. Utilisation of the
robot’s flexibility presupposes effective programming. The computer system that controls
the manipulator must be programmed to teach the robot about the particular motion
sequence and other actions that must be performed in order to accomplish its task. There
are several ways that industrial robots are programmed, namely, on-line or off-line.
Objectives
After studying this unit, you should be able to know
• how to differentiate on-line and off-line programming,
• methods of programming, and
• advantages and disadvantages of the programming methods.

9.2 ON-LINE PROGRAMMING


On-line programming takes place at the site of production itself and involves the
workcell. The robot is programmed with a teach box. On-line programming has the
following advantages and disadvantages compared to off-line programming:
Advantages
• Easily accessible
• 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
• Slow movement of the robot while programming
• Program logic and calculations are hard to program
• Difficult to incorporate sensor data
• Suspension of production while programming
• Cost equivalent to production value 39
Trajectory Planning • Poorly documented.
and Control of Robots
In on-line programming, users move the robot itself to each waypoint using some type of
control device in the actual workspace. On-line programming is, by far, more commonly
used in practice. In on-line programming, an actual part is placed in the workspace
exactly as it would be during production, and programming is based on teaching a robot
the trajectories it has to follow. Teaching is done by leading the robot arm through a
sequence of motions and recording these motions, so that later they can be replayed
automatically. The arm during teaching can be propelled either manually (i.e. the
operator uses his muscles to shift the arm from one position to the other) or by its drives
(i.e. the operator used the joysticks, the keyboard of the teach pendant, or a scaled down
replica of the manipulator to command the drives to appropriate positions). Regardless of
the way of propelling the arm during teaching, there are two ways of recording the
trajectory of the arm motion. In the PTP (Point to Point) method, the arm is transferred to
each characteristic point of the trajectory, stopped there, and by pressing a special button
on the control panel, this position is memorised by the control system. During playback,
the robot arm goes through these points using some form of interpolation between them.
In the CP (Continuous Path) method, as the arm is transferred, the positions are being
recorded automatically at constant intervals of time. As the points are very near to each
other no special interpolation routines are necessary. Moreover, the motions can be
played back with different speeds by changing the time base (the interval of time allowed
for reaching the next point). Even though on-line systems generate procedural
programming code, users can create waypoints without editing this code and, as a result,
is typically viewed as less intimidating and more intuitive than off-line programming.
Note, however, that if reprogramming cannot be completed during normal downtime,
such as weekends, then the company will incur cost in the form of lost production.
Therefore, the set of tasks viable for on-line programming is constrained by
programming time. Although users generally view on-line programming as less
intimidating, they still spend an inordinate amount of time simply moving the robot
between waypoints instead of transferring any real knowledge. Furthermore, due to the
difficult robot-positioning process, users tend to discard their previous work and create
waypoints from scratch every time. This is very wasteful since robot programs tend to
contain repeated subtasks, and product designs contain many similarities to previous
designs.
9.2.1 Lead through Programming
One method in on-line programming is called lead through programming. This requires
that the manipulator be driven through the various motions needed to perform a given
task, recording the motions into the robot’s computer memory. Position and path-based
applications such as arc welding and machine loading typically employ walk-through or
lead-through teaching. In lead-through teaching, the user performs the required motions
manually while holding some device (the manipulator itself, or a replica) to record the
path.
9.2.2 Walk through Programming
In contrast to the lead through programming, the user specifies the intermediate points
with 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 professionals.
Knowledge about how to weld, paint or manipulate industrial robots are also very
important to automate a task. Beyond the robot common knowledge, the programmer
need to know the automatised process bringing real profits on product quality, equipment
durability, and decrease manufacture time.
SAQ 1
(a) What are the advantages and disadvantages of on-line programming?
(b) What are the types of on-line programming?

40
Robot Programming
9.3 OFF-LINE PROGRAMMING
Off-line programming takes place on a computer and models of the workcell with the
robot, workpieces and 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 effective. The
advantages and disadvantages of off-line programming are as follows :
Advantages
• It does not occupy production equipment, and in this manner production can
continue during the programming process
• Effective programming of program logics and calculations with
state-of-the-art debugging facilities
• Locations are built according to models and this can mean that programmers
will have to fine tune programs on-line or utilise sensors
• Effective programming of locations
• 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
• Need of expert users
• Demands investing in an off-line programming system.
Advanced off-line programming tools contain facilities for debugging and these assist
effective programming. The programming tools support utilisation of supporting tools for
the programming process, for instance, optimisation of the welding process. In off-line
programming, users move a simulated version of the robot to each waypoint using a
CAD model of the workspace. Off-line programming packages allow users to design a
robot program in simulation without bringing down production and can optimise
according to almost any imaginable criterion. Typical optimisations involve production
speed, material usage, and power consumption. Off-line packages generally require that
programs be written in a sophisticated procedural-programming language. The transfer of
the off-line program to the robot controller requires translating the programming
language to a form that the robot can understand. Not surprisingly, arcane problems can
occur during this translation, especially with process-specific instructions, controller
models, and inverse kinematics. To achieve the high accuracy required in many
applications, the physical workspace must be well calibrated with the simulated
environment. Otherwise, on-line fine-tuning will be needed, which detracts from the
largest benefit of off-line programming, i.e. the lack of production downtime. The system
also allows the programming to be done away from the robot workcell, for example, in
an office or even before the actual robot is delivered. The robot remains in production
and all the performance tests can be made in the office.
Off-line programming is based on external means of expressing the task that the robot
system has to accomplish. The task is expressed in a robot programming language
(RPL). This can be either a specially defined language for robots or a universal computer
programming language (CPL). The advantage of using RPLs is associated with making
the robot more productive, the ease of utilisation of sensor data, and creation of program
documentation. To make a robot more productive, the phase in which it is required for
programming has to be as short as possible. In other words, robot programming has to be
made independent of the robot. The program is developed off-line, and only later loaded
to the control system for execution. The problem with this approach is that although
currently manufactured robots feature high repeatability, they exhibit low accuracy. This
necessitates the calibration of the program created off-line.
41
Trajectory Planning Every programming language operates on specific abstract concepts. An instruction of a
and Control of Robots language is composed of one or more keywords and zero to more arguments. These
arguments express abstract concepts. Computer languages operate on variables of
different types. The values of these variables describe the state of certain abstract notions.
The instructions, and therefore, the languages, are classified according to the abstract
notions they refer to. The main instructions RPLs are the ones causing the motion of the
factors, i.e. motion instructions. The abstract notions that these instructions refer to are :
the manipulator joints, the end-effector or the objects of the workspace. Each of the
enumerated notions creates a certain virtual environment, in which the instructions of
several robot programming languages operate. The virtual environment is a model of a
robot system as perceived by the programmer through the programming language he or
she uses. In other words, those elements which had been considered important were
selected from the real environment to constitute the virtual environment. Only some
elements of the real environment (including the robot) are the basis for creating abstract
notions that compose the virtual environment. The virtual environment is a simplified
model of the real environment.
Off-line programming languages are very much like a computer programming language.
However, in addition to many of the capabilities of a computer programming language
(i.e. data processing, computations, communicating with other computer devices, and
decision making), the robot language also includes statements specifically designed for
robot control. These capabilities include (a) motion control; and (b) input/output.
Motion-control commands are used to direct the robot to move its manipulator to some
defined position in space. For example, the statement “move P1” might be used to direct
the robot to a point in space called P1. Input/output commands are employed to control
the receipt of signals from sensors and other devices in the work cell and to initiate
control signals to other pieces of equipment in the cell. For instance, the statement
“signal 3, on” might be used to turn on a motor in the cell, where the motor is connected
to output line 3 in the robot’s controller.
Current approaches to programming can be classified into two major categories :
robot-oriented programming and object-oriented, or task-level programming. In
robot-oriented programming, an assembly task is explicitly described as a sequence of
robot motions. 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.
On the other hand, task-level programming describes the assembly task as a sequence of
positional goals of the objects rather than the motion of the robot needed to achieve these
goals, and hence no explicit robot motion is specified. These approaches are discussed in
the following two sections.
9.3.1 Robot-Oriented Programming
Robot-oriented languages are structured programming languages which incorporate
high-level statements and have the characteristic of an interpreted language, in order to
obtain an interactive environment allowing the programmer to check the execution of
each source program statement before proceeding to the next one. Common features of
such languages are :
• text editor,
• complex data representation structures,
• extensive use of predefined state variable,
• execution of matrix algebra operations,
• extensive use of symbolic representations for coordinate frames,
• possibility to specify the coordinated motion of more frames rigidly attached
to objects by means of single frame,
• inclusion of subroutines with data and parameter exchange,
• use of logic conditioning and queuing by means of flags,
• capability of parallel computing, and

42
• functions of programmable logic controller (PLC). Robot Programming

The most common approach taken in designing robot-level language is to extend an


existing high-level language to meet the requirements of robot programming. To a certain
extent, this approach is ad hoc and there are no guidelines on how to implement the
extension. One can easily recognize several key characteristics that are common to all
robot-oriented languages by examining the steps involved in developing a robot program.
Consider the task of inserting a bolt into a hole, as shown in Figure 9.1. This requires
moving the robot to the feeder, picking up the bolt, moving it to the bracket and inserting
the bolt into one of the holes. Typically, the steps taken to develop the program are :
(a) The workspace is set up and the parts are fixed by the use of fixtures and
feeders.
(b) The configuration (orientation and position) of the parts (feeder, bracket,
etc.) and their features (bracket-bore, bolt-grasp, etc.) are defined using the
data structures provided by the language.
(c) The assembly task is partitioned into a sequence of actions such as moving
the robot, grasping objects, and performing an insertion.
(d) Sensory commands are added to detect abnormal situations (such as inability
to locate the bolt while grasping) and monitor the progress of the assembly
task.
(e) The program is debugged and refined by repeating steps (b) to (d).
The important characteristics are position specification, step (b), motion specification,
step (c), and sensing, step (d), which can be programmed using the robot languages AL,
AML, and others. Note that AL was developed by Stanford University, whereas AML
has developed by IBM.
Z

Y
X

Figure 9.1 : A Simple Robotic Insertion Task

9.3.2 Task-Level Programming


A completely different approach in robot programming is by task-level programming.
The natural way to describe an assembly task is in terms of the objects being manipulated
rather than by the robot motions. Task-level language make use of this fact and simplify
the programming task. A task-level programming system allows the user to describe the
task in a high-level language (task specification). A task planner will then consult a
database (world models) and transform the task specification into a robot-level program
(robot program synthesis) that will accomplish the task. Based on this description, one
can conceptually divide task planning into three phases: world modeling, task
specification, and program synthesis. It should be noted that these three phases are not
completely independent, in fact, they are computationally related. Figure 9.2 shows one
possible architecture for the task planner. The task specification is decomposed into a
sequence of subtasks by the task decomposer and information such as initial state, final
state, grasping position, operand, specifications, and attachment relations are extracted.
The subtasks are then pass through the subtask planner which generates the required
robot program. 43
Trajectory Planning Task
and Control of Robots

Task Decomposer

Knowledge Subtask Planner Model

Robot

Figure 9.2 : Task Planner

The concept of task planning is quite similar to the idea of automatic program generation
in artificial intelligence. The user supplies the input-output requirements of a desired
program, and the program generator then generates a program that will produce the
desired input-output behavior.

9.4 PROGRAMMING BY SIMULATION


Among the newest technologies available today for programming are those which use a
virtual simulation. Simulations with the use of virtual models of the working
environment and the robots themselves can offer advantages to both the company and
programmer. By using a simulation, robots can be programmed off-line which does not
create any down-time for an assembly line that may greatly depend on these robots.
Robot actions and assembly parts can be visualised in a 3-dimensional virtual
environment months before prototypes are even produced. Figure 9.3 illustrates one such
environment. Programmers are also not required to have much technical expertise in
writing codes. While the move toward virtual simulations for programming robot is a
step forward in user interface design, many of the designs have a long way to go.

Figure 9.3 : Simulation Environment (Courtesy : Howards and Erlemeier)

SAQ 2
(a) What are the types of off-line programming?

44
(b) What is programming by simulation? Robot Programming

9.5 SUMMARY
In this unit, on-line and off-line robot programming methodology are presented.
Advantages and disadvantages of both the programming are mentioned.

9.6 KEY WORDS


On-line Programming : Teaching a robot by an operator, followed by
recording and replaying the programme.
Off-line Programming : Performing a robot programming using a
programming language.

9.7 ANSWERS TO SAQs


SAQ 1
(a) Refer the Section 9.2.
(b) Refer the Section 9.2.
SAQ 2
(a) Refer the Sections 9.3.1 and 9.3.2.
(b) Refer the Section 9.4.

45
Trajectory Planning
and Control of Robots FURTHER READING
Critchlow, A. J., (1985), Introduction to Robotics, MacMillan Publishing Company, New
York.
Howards, B., and Erlemeier, T. (2007), Interface Design for Offline Robot Programming
with the Use of Virtual Simulation, www.public.iastate.edu/~terlemei/FinalPaper.pdf.

46
Robot Programming
TRAJECTORY PLANNING AND
CONTROL OF ROBOTS
This block describes about Trajectory Planning and Control of Robots. It consists of
three units.
Unit 7 gives details of Trajectory Planning. Trajectory planning is required to generate a
function according to which a robot will move. Trajectory may be of two types, i.e.
point-to-point or continuous path. In this unit, both types of trajectory planning are
explained.
Unit 8 deals with the Control Systems. In this unit, linear and non-linear systems have
been given in detail. It also explains the principles of stability and instability.
In the last unit, i.e. Unit 9 different types of Robot Programming are given. On-line,
off-line and programming by simulation have been described in detail.

47

You might also like