Robotics Programming

Click here to load reader

  • date post

  • Category


  • view

  • download


Embed Size (px)

Transcript of 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 endeffector, Pe, with respect to the baseframe)

Robot programmingA 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 methodA 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.

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


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.


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