ROBOT PROGRAMMING
POINTS TO BE DISCUSS
Robot Programming: Lead through method,
Robot program as a path in space,
Methods of defining positions in space,
Motion interpolation, branching;
Textual robot programming ;
Languages-VAL II.
ROBOT PROGRAMME :-
A robot programmed can be defined as a path
of movement of its manipulator ,combined with
peripheral equipment action to support its work
cycle .
PROGRAMMING METHODS :-
There are five different methods of entering the
commands
1. Manual,
2. Teach pendant,
3. Walk –Through,
4. Computer control,
5. Off-line,
1) MANUAL
This type of programming is typical of the first
generation approach .
Manual programming is used for robots with point to
point open loop controllers .This method is associated
with limited sequence pick & place robots.
The sequence in which the motion occurs is regulated
by a sequencing device like cams, limit switches .
This device determines the order in which each joint is
actuated to form the complete the motion cycle .
Manual programming is usually simple & doesn’t
require skilled operators
Capital investment & maintenance is required low .
Robots having generally 2 or 3 degrees of freedom are
programmed by this method
2) TEACH PENDANT
Teach pendant programming involves the use of a
teach pendant (hand held control box) that toggle
switches or contact buttons for controlling the
movements of manipulator joints .
By using the toggle switches or contact buttons
the programmer power drive the robot arm to the
designed positions in sequence and records
motions into memory
This method of programming is commonly used for
playback robots with point to point control
Its simple & does not require skilled operator ,
Complex motions & applications requires close
tolerance may require a lengthy programming
time .
3) WALK THROUGH
Walk through programming is used for playback
robot with continuous path control ,irregular
motion patterns and for roughly locating the tool
center point for same robots .
This programming method requires the operator
to physically grasp the end effector and
manually move it through the motion sequence
recording the path into the memory
If the robot arm is itself is difficult to move , due
to its Wight a special device often replaces the
actual robot for the teach procedure.
The motions are recorded as a series of closely
spaced points during the playback testing the
actually robot arm goes through the same
sequence
4) OFF LINE PROGRAMMING
This method permit the robot program to be
prepared at a remote computer terminal &
downloaded to robot controller for execution.
The advantages of off line programming is that
simulation techniques and new programs may be
used to refine and modify operations without
taking up valuable time.
Advantages :-
Preparing the robot program without using the robot so
that robot can be used for different work.
Layout & cycle time can be optimized in advance.
Sensors can be used to detect the external stimuli and
actions can be taken.
PROGRAMMING METHODS
CLASSIFICATION
Programming methods can be also be classified as
following two basic types :-
Leadthrough Methods
Textual robot languages
The Leadthrough method requires the
programmer to move the manipulator through
desired motion path and that the path be
recorded into memory by robot controller .
Textual languages is accomplished somewhat like
computer programming
Program is type in high level languages
LEADTHROUGH METHODS
There are two ways to carry out the programming
Powered Leadthrough
Manual Leadthrough
Powered Leadthrough method make use of a
teach pendant to control the various joint motions
, and to power drive the robot arm and wrist
through a series of point in space .
Powered leadthrough is most commonly used
method today.
Manual Leadthrough method is also called as
“Walkthrough” method .
In which the programmer physically grasp the
endeffector & moves to desired path .
Robot Programming
Lead Through Method
ROBOT PROGRAMMING
Programming is the identification and
specification of a series of basic actions
which, when executed in the specified order,
achieve some specific task or realize some
specific process.
Robot Programming is the defining of
desired motions so that the robot may
perform them without human intervention.
SOME DEFINITIONS
DOF: The degrees of freedom [degrees of
mobility] of the robot will be numbered as q1,
q2, q3 etc.
Usuallyindustrial robot arms have between 4
and 6 degrees of freedom, one at each joint.
End-effector: The end of the robot arm,
where the gripper or other tool that the
robots uses is located, we will define as the
end-point (Pe) of the robot.
If, for example, the robot has a two finger
gripper, to pick things up with, we usually
define Pe to be a point between the two fingers,
so that when this point is geometrically inside
some object to be picked up, all the robot has
to do is to close the fingers of its gripper to
grasp the object. It can then move away with
the object between its fingers.
Pe
Pose: both the position of Pe in space, and its
orientation
Itis not sufficient for Pe just to be defined as a
point, we also need to attach or (conceptually) fix a
coordinate system to it, so that we can define both
the position of Pe in space, and its orientation
(together they define the object pose).
e
P
Pe
Base Frame: The position and
orientation of Pe must be defined with
respect to some global frame of
reference, some global coordinate
system. For this we usually use a
frame of reference fixed to the base of
the robot, which should not move.
NOTE: The position and orientation of P e
in the work space of the robot are
determined by the values of the joint
positions of the arm—q1, q2, q3,etc.
Configuration: Any particular position
and orientation of Pe in space, and so
any particular set of joint values, is
called a configuration of the robot
arm.
ROBOT PROGRAMMING REVISITED
Robot Programming is the defining of
desired motions so that the robot may
perform them without human intervention.
identifying and specifying the robot
configurations (i.e. the pose of the end-effector,
Pe, with respect to the base-frame)
TYPE OF ROBOT PROGRAMMING
Joint level programming
basic actions are positions (and possibly
movements) of the individual joints of the robot
arm: joint angles in the case of rotational joints
and linear positions in the case of linear or
prismatic joints.
Robot-level programming
the basic actions are positions and orientations
(and perhaps trajectories) of Pe and the frame of
reference attached to it.
High-level programming
Object-level programming
Task-level programming
OBJECT LEVEL PROGRAMMING
basic actions are operations to be performed
on the parts, or relationships that must be
established between parts
pick-up part-A by side-A1 and side-A3
move part-A to location-2
pick-up part-B by side-B1 and side-B3
put part-B on-top-off part-A
with side-A5 in-plane-with side-B6 and
with side-A1 in-plane-with side-B1 and
with side-A2 in-plane-with side-B2
TASK LEVEL PROGRAMMING
basic actions specified by the program are
complete tasks or subtasks
paint-the car-body red
assemble the gear-box
ROBOT PROGRAMMING METHODS
Offline:
write a program using a text-based robot
programming language
does not need access to the robot until its final
testing and implementation
On-line:
Use the robot to generate the program
Teaching/guiding the robot through a sequence of
motions that can them be executed repeatedly
Combination Programming:
Often programming is a combination of on-line and
off-line
on-line to teach locations in space
off-line to define the task or “sequence of operations"
ON-LINE PROGRAMMING
Requires access to the robot
Programs exist only in the memory of robot
control system – often difficult to transfer,
document, maintain, modify
LEADTHROUGH PROGRAMMING
Two types:
1. Powered leadthrough
Common for point-to-point robots
Uses teach pendant to move joints to desired position
and record that position into memory
2. Manual leadthrough
Convenient for continuous path control robots
Human programmer physical moves manipulator
through motion cycle and records cycle into memory
TEACH PENDANT FOR POWERED
LEADTHROUGH PROGRAMMING
LEADTHROUGH PROGRAMMING
ADVANTAGES
Advantages:
Can readily be learned by shop personnel
A logical way to teach a robot
Does not required knowledge of computer programming
Disadvantages:
Downtime - Regular production must be interrupted to
program the robot
Limited programming logic capability
Not readily compatible with modern computer-based
technologies
ON-LINE PROGRAMMING
Advantage:
Easy
No special programming skills or training
Disadvantages:
not practical for large or heavy robots
High accuracy and straight-line movements are
difficult to achieve, as are any other kind of
geometrically defined trajectory, such as circular
arcs, etc.
difficult to edit out unwanted operator moves
difficult to incorporate external sensor data
Synchronization with other machines or equipment
in the work cell is difficult
A large amount of memory is required
GENERATIONS OF ROBOT
PROGRAMMING LANGUAGES
1. First Generation Language:
This type of language provides an off-line
programming in combination with the
programming through the robot teach pendant.
Its capability is limited in handling of sensory
data and communication with other
components. The programming instructions can
be used to define the motion sequence of the
manipulator (MOVE), they have input/output
capabilities (WAIT, SIGNAL) and they can be
used to write subroutines (BRANCH).
Example: VAL (Versatile Algorithmic Language)
2. Second Generation Language:
These are structured programming languages
performing complete tasks.
They can generate complex motions; can handle
both analog and digital signals besides the binary
signals.
These languages have the added advantage of
better interfacing facilities with other computers.
Data processing, file management and keeping all
the records of events happening in the work cell
can be done more efficiently.
Example: AML (A Manufacturing Language), RAIL
(Robotic Automatix Incorporated Language), RCL,
VALII etc.
3. Word Modeling and task-oriented object
level language:
A more advanced future language is word
modeling. Here, a task is defined through a
command (Say “TIGHTEN THE NUT”). In such a
case intelligence is required and the robot should
be capable of making decision.
Future generation robot languages involve
technology of artificial intelligence and
hierarchical control system
ROBOTIC PROGRAMMING LANGUAGES
AL: The AL (Assembly Language) was developed
at the robotic research centre of Stanford
University. Its characteristics are:
High level language with features of ALGOL and
PASCAL.
It is compiled into low-level language and
interpreted on a real time control machine.
It could be used to control multiple arms in tasks
requiring arm coordination.
It supports for word modeling
AML: A Manufacturing Language (AML) was
developed by IBM. It is the control language for
the IBM RS-1 robot. RS-1 robot is a Cartesian
manipulator with 6 degrees of freedom. Its first
three joints are prismatic and the last three joints
are rotary. Its characteristics are:
Provides an environment where different user
interface can be built.
Supports features of LISP like and APL-like
constructs.
Supports data aggregation
Supports joint space trajectory planning subject
to position and velocity constraints.
Provides absolute and relative motions
Provides sensor monitoring
RAIL:. Robotic Automatix Incorporated Language
(RAIL) was developed by Automatix for the use of
robots and vision system
It is an interpreter loosely based on PASCAL.
Several constructs have been incorporated into
RAIL to support inspection and arc-welding
systems, which are a major product of Automatix.
Peripherals include a terminal and a teach box.
RAIL is being supplied with three different
systems:
1. i. Vision only, no arm
2. ii. A custom designed Cartesian arm for assembly
tasks
3. iii. A Hitachi process robot for arc welding
VAL:
It is a robot programming language and control
system originally designed for use with Unimation
robots.
Its stated purpose is to provide the ability to
define robot tasks easily.
The intended user of VAL will typically be the
manufacturing engineer responsible for
implementing the robot in a desired application.
It has the structure of BASIC, with many new
command words added for robot programming. It
also has its own operating system, called VAL
monitor, which contains the user interface, editor
and file manager.
It has been released for use with all PUMA robots
and with the Unimate 2000 and 4000 series
TEXTUAL ROBOT
LANGUAGES
INTRODUCTION
The textual language is used to define the
logic and sequence of the program.
Offline programming method.
First textual robot language was WAVE,
developed in 1973.
Development of subsequent languages like
AL, VAL, AUTOPASS, AML, MCL, APT etc
started in 1974.
GENERATIONS OF ROBOT
PROGRAMMING LANGUAGES
First Generation Languages(VAL)
Use a combination of command statements
& teach pedant procedures
Features
Ability to define manipulator motions
Straight line interpolation
Branching
Elementary sensor commands
Second generation languages(VAl2, AML, RAIL)
Structured programming languages
Features
Motion control
Advanced sensor capabilities
Limited intelligence
Communication & data processing
Future generation languages
World modeling
3D model of its work environment
Capacity for automatic self programming
ROBOT LANGUAGE ELEMENTS &
FUNCTIONS
Constants, variables & other data objects
Motion commands
End effector & sensor commands
Computations & operations
Program control & subroutines
Communications & data processing
Monitor mode commands
CONSTANTS, VARIABLES & OTHER
DATA OBJECTS
Other data objects
Aggregates
an ordered set of constants or variables.
(23, 45.66, 56.64, 49)
Location variables
DEFINE A1 = POINT(X, Y, Z, R1, R2)
MOTION COMMANDS
MOVE Command
MOVE A1 -> move to point A1
MOVES A1 -> move Straight to point A1
MOVE A1 VIA A2
SPEED COMMAND
SPEED 60 IPS
SPEED 70
Definition of a point in workspace
DEFINE A1 = POINT()
Paths & Frames
DEFINE PATH1 = PATH(A1, A2, A3)
MOVE PATH1
DEFINE FRAME1 = FRAME(A1, A2, A3)
END EFFECTOR & SENSOR
COMMANDS
End effector operation
OPEN & CLOSE
CLOSE 40 MM
CLOSE 3.0 LB
CENTER
Sensor operation
SIGNAL 3, ON
SIGNAL 3, OFF
COMPUTATIONS & OPERATIONS
Mathematical operators
Relational operators
Logical operators
Functions
PROGRAM CONTROL & SUBROUTINES
Program sequence control
GOTO 15
IF … THEN … ELSE … END
SUBROUTINES
SUBROUTINE PLACE(N)
END SUBROUTINE
CALL PLACE(N)
COMMUNICATION & DATA
PROCESSING
READ
WRITE
SEND DATA1(CRT)
RECEIVE SUBROUTINE 6 (COMPUTER1)
MONITOR MODE COMMANDS
EDIT -> editing a program
EXIT -> exits a program & returns to monitor
mode
STORE -> saves the program on storage
device
READ -> reads a program file
LIST -> displays program files
PRINT -> prints a program
DELETE -> deletes a program file
DIRECTORY -> displays list of program files
STOP -> stops robot motion
EXECUTE -> executes a program
GENERATIONS OF ROBOT
PROGRAMMING LANGUAGES
1. First Generation Language:
This type of language provides an off-line
programming in combination with the
programming through the robot teach pendant.
Its capability is limited in handling of sensory
data and communication with other
components. The programming instructions can
be used to define the motion sequence of the
manipulator (MOVE), they have input/output
capabilities (WAIT, SIGNAL) and they can be
used to write subroutines (BRANCH).
Example: VAL (Versatile Algorithmic Language)
2. Second Generation Language:
These are structured programming languages
performing complete tasks.
They can generate complex motions; can handle
both analog and digital signals besides the binary
signals.
These languages have the added advantage of
better interfacing facilities with other computers.
Data processing, file management and keeping all
the records of events happening in the work cell
can be done more efficiently.
Example: AML (A Manufacturing Language), RAIL
(Robotic Automatix Incorporated Language), RCL,
VALII etc.
3. Word Modeling and task-oriented object
level language:
A more advanced future language is word
modeling. Here, a task is defined through a
command (Say “TIGHTEN THE NUT”). In such a
case intelligence is required and the robot should
be capable of making decision.
Future generation robot languages involve
technology of artificial intelligence and
hierarchical control system
ROBOTIC PROGRAMMING LANGUAGES
AL: The AL (Assembly Language) was developed
at the robotic research centre of Stanford
University. Its characteristics are:
High level language with features of ALGOL and
PASCAL.
It is compiled into low-level language and
interpreted on a real time control machine.
It could be used to control multiple arms in tasks
requiring arm coordination.
It supports for word modeling
AML: A Manufacturing Language (AML) was
developed by IBM. It is the control language for
the IBM RS-1 robot. RS-1 robot is a Cartesian
manipulator with 6 degrees of freedom. Its first
three joints are prismatic and the last three joints
are rotary. Its characteristics are:
Provides an environment where different user
interface can be built.
Supports features of LISP like and APL-like
constructs.
Supports data aggregation
Supports joint space trajectory planning subject
to position and velocity constraints.
Provides absolute and relative motions
Provides sensor monitoring
RAIL:. Robotic Automatix Incorporated Language
(RAIL) was developed by Automatix for the use of
robots and vision system
It is an interpreter loosely based on PASCAL.
Several constructs have been incorporated into
RAIL to support inspection and arc-welding
systems, which are a major product of Automatix.
Peripherals include a terminal and a teach box.
RAIL is being supplied with three different
systems:
1. i. Vision only, no arm
2. ii. A custom designed Cartesian arm for assembly
tasks
3. iii. A Hitachi process robot for arc welding
VAL:
It is a robot programming language and control
system originally designed for use with Unimation
robots.
Its stated purpose is to provide the ability to
define robot tasks easily.
The intended user of VAL will typically be the
manufacturing engineer responsible for
implementing the robot in a desired application.
It has the structure of BASIC, with many new
command words added for robot programming. It
also has its own operating system, called VAL
monitor, which contains the user interface, editor
and file manager.
It has been released for use with all PUMA robots
and with the Unimate 2000 and 4000 series