Robotics Programming

32
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, P e , with respect to the base-frame)

Transcript of Robotics Programming

Page 1: Robotics 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)

Page 2: Robotics 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.

Page 3: Robotics 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

Page 4: Robotics 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

Page 5: Robotics Programming

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

Page 6: Robotics Programming

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.

Page 7: Robotics Programming

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.

Page 8: Robotics Programming

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.

Page 9: Robotics Programming

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

Page 10: Robotics Programming

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.

Page 11: Robotics Programming

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.

Page 12: Robotics Programming

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

Page 13: Robotics Programming

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

Page 14: Robotics Programming

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.

Page 15: Robotics Programming

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

Page 16: Robotics 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.

Page 17: Robotics Programming

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

Page 18: Robotics Programming

Editing programs– EDIT : permits to create or modify (edit) a

user program• EDIT SRD

.

.

.

E - exit of the editing mode

VAL programming language

Page 19: Robotics Programming

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

Page 20: Robotics Programming

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

Page 21: Robotics Programming

VAL programming language

Program instructions– Robot configuration control– Motion control– Hand control– Location assignment and modification– Program control, interlock commands and

I/O controls

Page 22: Robotics Programming

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

Page 23: Robotics Programming

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

Page 24: Robotics Programming

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.

Page 25: Robotics Programming

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

Page 26: Robotics Programming

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 falseIF ROW LT 3 THEN

(A number of instruction steps)

ELSE

(A number of instruction steps)

END

Page 27: Robotics Programming

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

Page 28: Robotics Programming

Depalletizing

Page 29: Robotics Programming

.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

10MOVE PICK

DRAW 0, 0, -25.00

COLSEI

DRAW 0, 0, 25.00

MOVE CHUTE

OPENI

GOSUB PALLET

IF ROW LE MAXROW THEN 10

.END

Page 30: Robotics Programming

.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

Page 31: Robotics Programming

WELDING INSTRUCTIONS

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

• 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

Page 32: Robotics Programming

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

7 MOVE X2

8 WSTART 1, 1

9 MOVES X3

10 WEND 0.5

11 WSTART 2

12 MOVES X4

13 CIRCLE X4, X5, X6

14 MOVES X7

15 CIRCLE X7, X8, X9

16 MOVES X10

17 WEND 0.5

18 WSTART 3, 2

19 MOVES X11

20 CRATERFILL 0.8, 3

21 WEND 0.5

22 MOVE X12

.END