Robotics Programming

Download as pdf or txt
Download as pdf or txt
You are on page 1of 32
At a glance
Powered by AI
The key takeaways are that robot programming involves defining motions for a robot to perform tasks without human intervention, and different types of programming include joint-level, robot-level and high-level programming.

The different types of robot programming discussed are joint-level programming, robot-level programming, and high-level programming.

Some robot programming methods discussed include walk-through method, lead-through method, and computer-like robot programming languages using offline programming.

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)
Robot programming
A robot must be programmed to do useful works and
perform its tasks a robot is an idiot waiting for you to
make it work by the use of programming.
Robot program is defined as a path of movements of
its manipulator, combined with peripheral equipment
actions to support its work cycle.
The peripheral equipment actions include
Operation of the end-effector.
Making logical decisions.
Communicating with environments.
A robot programmer needs to understand the whole task
and interfaces with its environment before he/she starts a
programming.
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
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 ( doesnt 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 mans 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.
Position data 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 TEACH MOVE
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 NASAs 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 modelling 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
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
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
10 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, 0, 1, 2, 0
6 MOVE X1 15 CIRCLE X7, X8, X9
7 MOVE X2 16 MOVES X10
8 WSTART 1, 1 17 WEND 0.5
9 MOVES X3 18 WSTART 3, 2
10 WEND 0.5 19 MOVES X11
11 WSTART 2 20 CRATERFILL 0.8, 3
12 MOVES X4 21 WEND 0.5
13 CIRCLE X4, X5, X6 22 MOVE X12
14 MOVES X7 .END

You might also like