Robot Programming
Robot Programming
Types of Robot Programming
Robot Programming methods
Computer like Robot Programming Languages
Off line Program
Simulation
Example Programs
Robot Programming
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)
Types 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
Robot programming
method
Walk-through method OR Manual (limited-sequence
robots)
Lead-through method (teach-by-showing the desired
motion ‘ Manual and Powered’ – adequate for shop floor
operators)
Computer like robot programming languages (requires
computer background, enhanced sensor capabilities,
improved control, computation capabilities,
communications, compatibility with CIM)
Off-Line programming ( doesn’t interrupt production)
Robot Simulation
Walk-through method
•A person doing the programming has physical contacts with the robot arm, actually
gains control and walks the robot's arm through the desired positions.
•Each movement is recorded into the memory for the playback during production,
including unintended motions.
•The main concern is on achieving the correct positioning sequences. Cycle time and
speed can be changed later, when necessary
•A dead man’s control should be fitted for the safety reason.
•A high precision in generating paths cannot be achieved (Manual operation) - Highly
skilled operator required.
•Optimum trajectory velocity cannot be achieved
•Movements are stored in the sampled time - required large memory.
•Mainly used in spray painting, arc welding, grinding, deburring and polishing
Lead-through method
(teach-pendant programming)
•Teaching the robot via teach pendants
that has toggle switches or contact
buttons for controlling the movement of the robot.
•Allows a trained operator physically to lead the robot through the
desired sequence of events by activating the appropriate pendant
buttons or switches.
•Positiondata and functional information are "taught" to the robot,
and a new program is written into memory
•The speed and termination type of the movement should be
specified
•Particularly useful in pick-place, arc welding applications.
Lead-through Programming : Powered
Each axis is moved under push-button control using a “teach”
pendant to produce a series of desired position of the end point.
Typical command keys:
JOG HOME TEACHMOVE
The corresponding series of joint positions or points are stored for
playback later during actual operation.
Suitable for PTP control only since paths between two consecutive
positions are not predictable.
Lead-through Programming :
Manual
The entire path is “taught” by manually moving
through the motion sequence. The measured positions
of the joints and speeds (how?) are recorded as editable
programs for later playback during actual operation.
For large robot, a special programming device replaces
the actual robot.
Used for Continuous Path programming . A typical
application of this programming method is spray
painting where smooth and free flowing movements are
required.
Computer like Robot Programming
Languages :
Basic Elements
Define Constants and Variables
Motion commands (coordinate systems)
End Effectors Commands
Sensor Commands
Program Control Commands
Communications Commands
Monitor Mode Commands
Robot Programming
Languages
WAVE
• Developed at Standford
• Demonstrated a robot hand-eye coordination in the machine
vision robot
• Trajectory calculations through coordination of joint
movements, end-effector positions and touch sensing
• Algorithm is too complex and not user friendly
AL
• Later developed at Standford
• The language can implement various subroutines, involving
activities between the robot and its surroundings.
Robot Programming
Languages
VAL
• Popular textual robot language developed by Unimation Inc.
for the PUMA series of robots.
• Victor Sheinman developed VAL languages.
• Later VAL II is developed
• It provides arm movement in joint, world and tool
coordinates, gripping and speed control.
AML
• Developed by IBM
• It is possible to interface other programming languages.
Robot Programming
Languages
MCL
• Developed by McDonnel-Douglas at US Air force
• Modification of APT (Automatically programmed
Tooling) languages used for CNC
RAIL
• Developed by Automatix for robotic assembly,
inspection, arc welding and machine vision
• A variety of data types as used in PASCAL can be
used
Robot Programming
Languages
HELP
• Developed by General Electric Company
• It has capability to control two robot arms at the same time
JARS
• Developed by NASA’s JPL.
• The base language is PASCAL
• It can be interfaced with PUMA 6000 robot
RPL
• Developed by SRI international.
• The basic ideas of LISP language have been organized into a
FORTRAN – like syntax
• It can be interfaced with PUMA 500 robot
Classification of Robot Languages
First generation language
• It provides an off-line programming in combination with the programming
through robot pendant teaching.
Example : VAL language
• The capability of a first generation language is limited to the handling of
sensory data (except ON/OFF binary signals) and combination with other
computer
Second generation language
• AML, RAIL, MCL, VAL II languages
• They are structured programming languages performing complex tasks
• Force, torque, slip and other sensor can be incorporated in joints
World modeling and task-oriented object level languages
• A task is defined through a command, say TIGHTEN THE NUT.
• The robot should be capable of performing step by step functions to
accomplish the objective of tightening the nut.
Off-Line programming
The programming for the required sequence
of functions and positions is written on a
remote computer console. Then transfer to the
robot controller (floppy disk or downloading).
The robot programming language is to make it
easy for this purpose (ADA, RAPID, ...).
Robot Simulation
Off-line programming can provide a means of programming without
interruption of actual production
However, it would cause unintended movement and in turn serious
problems – collision, or injuries
Simulation enables to test new or modified programs in virtual
environment or even test a new manufacturing cell before the
construction.
VAL programming
language
Defining and Determining Locations
• HERE : current location
– HERE PART
– HERE P1
• POINT : previously defined location
– POINT PART = P1
• WHERE : the current location can be displayed
• TEACH : records a series of location values
– TEACH P1
VAL programming
language
Editing programs
• EDIT : permits to create or modify (edit) a
user program
– EDIT SRD
.
.
.
E - exit of the editing mode
VAL programming language
Storing and Retrieving Program and Location-data
• LISTF : displays the file directory of the diskette
• STOREP : storing program
• STOREL : storing location
• STORE : storing program and location
• LOADP : loading program
• LOADL : loading location
• LOAD : loading program and location
• COPY : copying the program
• RENAME : renaming the files
• DELETE : deleting the files
• In VAL II language
• FLIST – listing the file names kept on a disk
VAL programming
language
Program Control
• SPEED : specifies the speed for all subsequent robot motions under
program control
• EXECUTE : execute a specified user program for once
• EXECUTE , 5: execute 5 times
• EXECUTE, -1 : execute indefinitely
• ABORT : terminates program execution after completion of the
current step
• In VAL II language
– DRIVE 2, 60, 30 : joint number 2 may be changed by driving it
say 600 at a speed of 30 percent of the monitor speed
– DO : allows a robot to execute a program instruction
DO ALIGN
DO MOVE PART
VAL programming
language
Program instructions
• Robot configuration control
• Motion control
• Hand control
• Location assignment and modification
• Program control, interlock commands and
I/O controls
VAL programming
language
• Robot configuration control
• Any robot configuration change is accomplished during the
execution of the next motion instruction other than a straight line
motion.
• RIGHTY : change the robot configuration to resemble a right
human arm
• LEFTY : change the robot configuration to resemble a left human
arm
• ABOVE : make the elbow of the robot to point up
• BELOW : make the elbow of the robot to point down
VAL programming
language
Motion Control
• MOVE : moves the robot to specified location
• MOVES : moves the robot to straight line path
• DRAW : moves the robot to straight line through specified
distance in X, Y and Z directions
• APPRO : moves the robot to location which is at an offset ( along
tool z-axis) from a specified point
• DEPART : moves the tool along the current tool Z-axis
• APPROS : moves the robot to location which is at an offset ( along
tool z-axis) from a specified point in straight line path
• DEPARTS : moves the tool along the current tool Z-axis in
straight line path
• CIRCLE : moves the robot through circular interpolation via
three specified point locations
VAL programming
language
Hand Control
• OPEN : the opening of the gripper during the next instruction
• CLOSE : the closing of the gripper during the next instruction
• OPENI : the opening of the gripper during the next instruction immediately
• CLOSEI: the closing of the gripper during the next instruction immediately
• MOVEST PART, 30 : the servo-controlled end-effector causes a straight line motion
to a point defined by PART and the gripper opening is changed to 30 mm.
• MOVET PART, 30 : the gripper to move to position. PART with an opening of 30
mm by joint-interpolated motion.
• In VAL II language
– CLOSEI 75 : if servo-controlled gripper is used, then this command causes the
gripper to close immediately to 75 mm.
– GRASP 20, 15 : the gripper to close immediately and checks whether the
opening is less than the amount of 20 mm. If the opening is less than 20 mm, the
program, branches to the statement 15.
VAL programming
language
Location Assignment and Modification
• SET : set the value in the monitor
• HERE : position displayed on the screen
Program Control, Interlock Commands
and Input / Output Control
• SETI : set the value of an integer variable to
the result of an expression.
• TYPEI : displays the name and values of an
integer variable
VAL programming
language
Program Control, Interlock Commands and Input / Output Control
• In VAL II language
– PROMPT : the operator respond by typing the value requested and pressing the
return key.
– PROMPT “Enter the value” , Y1
• GOTO 20 : an unconditional branch to the program step identified by a given level, 20
• GOSUB : transfer the control to the subroutine
• RETURN : Transfer the control from the subroutine
• IF … THEN : transfer control to a program step depending on a relationship
(conditions) being true or false
IF ROW LT 3 THEN
(A number of instruction steps)
ELSE
(A number of instruction steps)
END
VAL programming
language
Program Control, Interlock Commands and Input / Output Control
• PAUSE : terminates the execution of a user program
• PROCEED : To terminate PAUSE command
• SIGNAL : turns the signal ON or OFF at the specified output signals
– SIGNAL 2, -3
– Output signal 2 (positive) is to be turned ON and output signal 3
(negative) is to be turned OFF
• IFSIG and WAIT: test the status of one or more external signals
– WAIT SIG (-1, 2)
– It will prevent the program execution until external input signal
1 is turned OFF (negative) and external input signal 2 is turned
ON (positve)
• RESET : turns OFF all the external signals
Depalletizing
.PROGRAM DEPALLET 1
REMARK PROGRAM TO PICK OBJECTS FROM A PALLET
REMARK CORNER AND CHUTE LOCATIONS ARE TAUGHT
SETI MAXCOL = 4
SETI MAXROW = 3
SETI ROW = 1
SETI COLUMN = 1
SET PICK = CORNER
SHIFT PICK BY 20.00, -20.00, 60.00
OPENI
MOVE PICK
DRAW 0, 0, -25.00
COLSEI
DRAW 0, 0, 25.00
MOVE CHUTE
OPENI
GOSUB PALLET
IF ROW LE MAXROW THEN 10
.END
.PROGRAM PALLET
REMARK SUBROUTINE FOR LOCATIONS
SETI COLOUM = COLUMN +1
IF COUMN GT MAXCOL THEN 20
SHIFT PICK BY 50.00, 0.00, 0.00
GO TO 10
20 SETI ROW = ROW +1
IF ROW GT MAXROW THEN 30
SHIFT PICK BY -150.00, -30.00,0.00
SETI COLUMN =1
30 RETURN
.END
WELDING INSTRUCTIONS
WSET 1 = 13, 54.3, 63
– A welding speed of 13 mm/s, welding voltage of 54.3% and welding current of 63 % for
welding condition 1
WSTART : starts the welding under present welding conditions and weaving conditions (set by WSET
and WVSET)
WEND : inactivates a welding start signal
CRATERFILL : It is used when a crater filler is required at a welding end
WVSET 1 = 10, 7, 2, 0,
1, 3, 0
• 10 : cycle distance
• 7 : amplitude
• 2 : right end stop distance
• 0 : right end stop time
• 1 : center stop distance
• 3 : left end stop distance
• 0 : left end stop time
An Arc Welding Program
.PROGRAM WELD CURVE
1 WSET 1 = 10, 40, 50
2 WSET 2 = 8, 35, 60
3 WSET 3 = 12, 40, 55
4 WVSET 1 = 5, 5
5 WVSET 2 = 10, 7, 2, 15 CIRCLE X7, X8, X9
0, 1, 2, 0
16 MOVES X10
6 MOVE X1
7 MOVE X2 17 WEND 0.5
8 WSTART 1, 1 18 WSTART 3, 2
9 MOVES X3 19 MOVES X11
10 WEND 0.5 20 CRATERFILL 0.8, 3
11 WSTART 2 21 WEND 0.5
12 MOVES X4
22 MOVE X12
13 CIRCLE X4, X5, X6
.END
14 MOVES X7