0% found this document useful (0 votes)
351 views87 pages

Robotics Part3

The document discusses robot programming and various methods used. It covers defining workspaces, joint-level programming vs robot-level programming vs high-level programming. It also summarizes different robot programming languages, offline programming, simulation, and common programming methods like walk-through, lead-through, and computer-based languages. Specific examples are provided for VAL programming language commands.

Uploaded by

Dheeraj Raj
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
351 views87 pages

Robotics Part3

The document discusses robot programming and various methods used. It covers defining workspaces, joint-level programming vs robot-level programming vs high-level programming. It also summarizes different robot programming languages, offline programming, simulation, and common programming methods like walk-through, lead-through, and computer-based languages. Specific examples are provided for VAL programming language commands.

Uploaded by

Dheeraj Raj
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 87

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 endeffector, Pe, with respect to the base-frame)

Work space
Work space: the spatial region within which the end of the robots wrist can be manipulated, with no hand or tool attached.

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
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.

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 (teachpendant 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.

Leadthrough 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.

Leadthrough 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

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

Language-Based Programming:An MCL Example


LABEL PICK: // Define an entry point SPEED 125 // Set speed to medium (within 0 to 250 range) PMOVE MAIN[1] // Move the joints to point 1 in array MAIN TMOVE TP [4] // Move the joints through point 4 in array TP PMOVE 5 // Move to point 5 WAITI 1,1 // Wait for input signal 1 to be ON (or 1) GRASP // Close gripper DELAY 500 // Wait 5 seconds for gripper to close TMOVE TP[3] // Move through point 3 in array TP PMOVE 2 // Move to point 2 WAITI 1,0 // Wait for input signal 1 to be OFF (or 0) RELEASE // Open gripper WRITEO 3,0 // Switch output 3 OFF BRANCH PICK // Repeat the sequence starting at label PICK

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, ...).

Off-Line programming
Use of production equipment during programming - productivity not affected Creating the program is safer since the programmer is not in the cell Communication with higher level of manufacturing system (ex. CAD/CAM) is possible Provide greater flexibility and high efficiency Safety is the main concern for off-line programming Most robot accidents do occur during programming, program touchup or refinement, setup, or adjustment During these operations, the operator may temporarily be within the robot's working envelope where unintended operations could result in injuries Requires highly skilled operator computer programming + robot language programming

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.

Robot Simulation
During the simulation the followings to be checked. 1. Kinematic reach robot needs to reach all of items. 2. Work-cell layout. 3. Collision checking. 4. Motion timing. 5. Off-line programming to create robot programs. 6. Logic, wiring and cable connection. 7. Special application features weld width for welding, paint thickness for paint spraying, etc....

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 Locationdata
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 valus 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 REACT VAR 2, SUB TRAY The reactions are invoked if external binary signal identified as a negative variable, VAR 2.

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14

WELD CURVE WSET 1 = 10, 40, 50 WSET 2 = 8, 35, 60 WSET 3 = 12, 40, 55 WVSET 1 = 5, 5 WVSET 2 = 10, 7, 2, 0, 1, 2, 0 15 MOVE X1 16 MOVE X2 17 WSTART 1, 1 18 MOVES X3 19 WEND 0.5 20 WSTART 2 21 MOVES X4 22 CIRCLE X4, X5, X6 .END MOVES X7

CIRCLE X7, X8, X9 MOVES X10 WEND 0.5 WSTART 3, 2 MOVES X11 CRATERFILL 0.8, 3 WEND 0.5 MOVE X12

THE 6 AXES OF A ROBOT

THE 6 AXES OF A ROBOT

Different parts of a robot

THE MAJOR AND MINOR AXES OF A ROBOT


The first three axes of a robot are known as the major axes because they help in positioning the wrist at a required point on the workpiece. The last three axes of a robot are called as the minor axes because they allow the wrist to reorient in any required direction without changing its position.

DESCRIPTION OF A CONTROLLER
A controller is the brain behind the functioning of a robot . The picture below shows the latest IRC5 controller of ABB .

A SINGLE CABINET CONTROLLER

A DOUBLE CABINET CONTROLLER

MAJOR COMPONENTS OF AN IRC5 CONTROLLER


A main computer does all the primary computing job. Axis computers perform all the calculations of individual joints. Drive units control the torque , acceleration and speed of the joints. The SMPS (Switch Mode Power Supply) supplies 24 VDC to main computer, axis computers, I/O Boards etc. The capacitor improves the power factor. Contactors cut off supply from motors as and when required. Transformer steps down 440 VAC to 230 VAC. Rectifier converts AC to DC. I/O Boards are used for user signals.

USE OF RESOLVERS AND SMB


Every joint of a robot has a resolver , the resolver measures the position and velocity of a joint and sends the data to the SMB (Serial Measurement Board) located at the base of the manipulator. There is a separate battery for backing the SMB data in case of a power failure. The SMB is connected to the controller via a resolver cable.

THE MAN_MACHINE INTERFACE


The FLEXPENDANT is the man_machine interface for an IRC5 controller , it is also known as GTPU (Graphical Teach Pendant Unit).

BUTTONS ON A FLEXPENDANT

MAIN MENU ON FLEXPENDANT

THE END_EFFECTOR
The tool that is attached to the Tool Mounting Flange of the robot is known as the end_effector , it may be cutting tool, drill bit, gripper (vacuum, pneumatic or servo), welding gun, hemming tool, glue gun etc.

PNEUMATIC GRIPPER

A WELDING TORCH

A SPOT WELDING

A VACUUM GRIPPER

ROBOT SELECTION
The characteristics of robots generally considered in a selection process include:

Size of class Degrees of freedom Velocity Drive type Control mode Lift capacity

Repeatability Right-left traverse Up-down traverse In-out traverse Yaw Pitch Roll Weight of the robot

ROBOT SELECTION
1. Size of class: The size of the robot is given by the maximum dimension (x) of the robot work envelope. Micro (x < 1 m) Small (1 m < x < 2 m) Medium (2 < x < 5 m) Large (x > 5 m) 2. Degrees of freedom. The cost of the robot increases with the number of degrees of freedom. Six degrees of freedom is suitable for most works.

2004

50

ROBOT SELECTION
3. Velocity: Velocity consideration is effected by the robots arm structure.
Rectangular Cylindrical Spherical Articulated

4. Drive type:
Hydraulic Electric Pneumatic
2004 51

ROBOT SELECTION
5. Control mode:
Point-to-point control(PTP) Continuous path control(CP) Controlled path control 6. Lift capacity:

0-5 kg 5-20 kg 20-40 kg and so forth

2004

52

ROBOT SPECIFICATION
ABB robots are specified using a designation IRB say for example, IRB140, IRB1400, IRB2400, IRB1600, IRB6600, IRB340 etc.

Some important specifications to look for in a Robot are: 1.Payload 2.Reach 3.Supplementary load. 4.Speed

TECHNICAL DATA FOR IRB 140

TECHNICAL DATA FOR IRB140

OPERATING MODES OF A ROBOT


A robot can be operated in three different modes: Manual mode. Manual 100% mode. Automatic mode.

OPERATING MODES
MANUAL
Robot can be jogged at less than 250 mm/s Enabling device needs to be pre_ _ssed Programmed speed is not followed.

MANUAL 100%
Robot can be jogged at less than 250 mm/s Enabling device and Hold to Run button needs to be pressed Programmed speed is followed.

AUTOMATIC
Robot cannot be jogged No need of enabl_ ing device or hold to run button Programmed speed is followed.

COORDINATE SYSTEMS

A coordinate system consists of an origin O and three mutually perpendicular axes X, Y, and Z. It is used to specify the position of a point in space The various types of coordinate systems used in a Robot are: THE BASE COORDINATE SYSTEM. THE WORLD COORDINATE SYSTEM. THE TOOL COORDINATE SYSTEM. THE WORK OBJECT COORDINATE SYSTEM.

COORDINATE SYSTEMS

TOOL COORDINATE SYSTEM

JOGGING
Jogging means manually moving a robot using the joystick on the flexpendant. Jogging cannot be done in auto mode. Jogging is used while teaching a robot points in space.

JOGGING
From ABB main menu select jogging.

JOGGING WINDOW

MODES OF JOGGING
Jogging can be done in three modes: Axes mode Linear mode Reorient mode

AXIS MODE
We can jog axes 1-3 or axes 4-6 at one go. The position format shows the angular position of each joint in degrees or radians.

LINEAR MODE
In linear mode the TCP moves in a straight line. The TCP can move parallel to either the x-axis or the y-axis or the z-axis of the selected coordinate system of the robot which can be the base,world,tool or workobject coordinate system. The position format shows the position of the TCP w.r.t the coordinate system selected in mm and orientation of tool in Quaternions or Euler Angles. During linear jogging orientation of tool remains same.

REORIENTATION MODE
In reorientation mode the TCP of the selected tool remains at a fixed positon in space. However the orientation of the tool about that fixed point changes.

INCREMENTAL MODE

QUICKSET MENU
The quickset menu can be used for easy selection of jogging modes and setting the speed.

TOOL DEFINITION

TCP DEFINITION

WORK OBJECT DEFINITION

BASIC ROBOT PROGRAMMING


The programming language used by ABB robots is the RAPID programming language. Programs can be accessed by going to the program editor window. To start writing a new program click on Tasks and Programs then on File and then on New. Type in your new program name using the soft keyboard and you are ready to start.

SOFT KEYBOARD

INSTRUCTION SET
To add a new instruction click on Add Instruction. The common instructions available can be classified under the following categories: Motion instructions. Program flow instructions. Assignment. Communication instructions.

INSTRUCTION SET

MOTION INSTRUCTIONS
MoveJ *,v500,z50,tool0; MoveL *,v1000,z20,tool1; MoveC *,*,v250,z40,gripper; MoveAbsJ *,v500,z40,torch;

MoveJ
MoveJ *,v500,z80,gripper; * Represents the Robtarget where the TCP of the selected tool is to be moved. V500 means that the TCP moves at a speed of 500 mm/s Z80 is the zone error i.e. 80 mm, if instead of z80 we select fine the zone error is zero. Gripper is the selected tool. TCP doesnot follow a straight line between initial position of robot and the robtarget.

MoveL
MoveL *,v500,z20,torch; Rest is same as MoveJ only difference being that the TCP of the selected tool moves in a straight line from the initial position of the robot to the robtarget.

MoveC
MoveC *,*,v1000,z100,cutter; The TCP of the selected tool moves in a circular arc joining the initial TCP position to the two robtargets respectively.

MoveAbsJ
MoveAbsJ *; Here the * represents a joint-target that is the angular positions of the 6 joints.

Robot Program Development

Robot Program Development Process


Analyze and decompose the task into a series of operations on the objects involved, and specify their order. Identify and specify all the situations needed to program all the movements and actions of the robot. Identify any types of repeated actions or operations and specify them as subroutines with parameters. Design and develop the complete robot program and its documentation. Test and debug the program using a simulator of the robot and its work space. Test the program on the real robot.

I/O BOARDS
The following picture shows an i/o board.

UPDATE REV. COUNTERS

CONNECTING A LAPTOP TO CONTROLLER

You might also like