0% found this document useful (0 votes)
5 views41 pages

Robotics Module 5- Robot Programming, AI, Robot Appllications

The document discusses robot programming, defining it as the design of work patterns for robots to operate autonomously. It outlines various programming methods, including manual, lead-through, computer-terminal, and offline programming, each with its advantages and disadvantages. Additionally, it covers interpolation techniques for robot movement, such as joint, straight-line, and circular interpolation, along with the evolution of robot programming languages from first to second generation.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
5 views41 pages

Robotics Module 5- Robot Programming, AI, Robot Appllications

The document discusses robot programming, defining it as the design of work patterns for robots to operate autonomously. It outlines various programming methods, including manual, lead-through, computer-terminal, and offline programming, each with its advantages and disadvantages. Additionally, it covers interpolation techniques for robot movement, such as joint, straight-line, and circular interpolation, along with the evolution of robot programming languages from first to second generation.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 41
RONOTICS (BE MECHANICAL) ‘To operate robot, it becomes necessary to give instructions by ‘certain ways. The robot programming is simply the design of a ‘work pattern so that the robot may perform work without human help. Definition: “A robot program can be defined os 0 path of movements of is ‘manipulator, combined with peripherat equipment octions 0 support its work cycle’ ‘The peripheral equipment action inctudes operation of the ‘end effector, making logical decisions and communicating ‘with other equipments in the robot work cell, For some applications, the program needs to cover actions of ‘the robot that must be co-ordinated with the processes of various interdependent machines. Therefore, all robot Programs are a combination of specific programming ‘commands. The program is 2 set of commands, arranged which control movement, position, hand-controtied Instructions, read instructions, ete. “The first basic task is the preparation of the layout of the system and the sequence of moves in drive unit, then program can be written using text editors. A program writing Includes = (2) Otfinition of a problem to be solved. (b) Preparation of flowchart for the overall analysis of the solution, (€)_ Selecting best techniques of the solution. (6) Programming language coding for the problem sokition. {e) Validation of the solution. th_Some other techniques for the verification of the solution. 13 PROGRAMMING METHODS Various programming commands are entered in the robots controller memary. in order to program the operation These ‘are the following ways to enter the commands: 2. Manual mode ot programming 2. Lead through mode © Powered Lead through or Teach Pendant Lead through programming. GD Manual Lead through or Walic through made of Programming 3. Computer-terminal mode or textual robot language. 4. Offline programming mode. 13.1 Manual Mode of Programming + ft is used for robots with point-to-point open loop- ccontrotie, basically with limited-sequence pick and place robots. os MACHINE VISION SYSTEM AND ROBOT PROGRAMMING. # A.sequencing device is used to regulate the sequence in which the motion occur, The sequencing device Getermines the order in which each joint is actuated to form the complete mation cycle. * In this method, a manual type of machine set up like setting up and adjusting the necessary end-stops, switches, cams and wiring the sequence is involved rather than actual computer programming. Therefore, itis categorized as first-generation programming approach. Advantages: ‘+ is usually simple and does not require a skilled operator. + Capital investment and maintenance costs are low. + Robots with this type of mode are capable of operating at high speeds. ‘Robots have good positioning accuracy and repeatability. Disadvantages: + They have limited Nexibily. # They have only 2 or 3 Daf. + Unavailabilty of controlling the intermediate points along the path. + For each axis only two positions can be programmed with this mode. 7.132 Lead Through Mod ‘+ Iris the first real robot program method used in most of the industries. They had initiated in 1960"s. Requirements: The lead through methods require the programmer to move the manipulator through the speciied motion path and that path be stored in the memory by the robot controller. * Motion of a robot manipulator through the desired path accomplishes recording the path into controller memory. Lead through programming is subdivided into = (a) PoweredLead Through or TeachPendantLeadThrough- + is the most common method used for robot programming, +h makes use of teach pendant for controlling the various joint motors. Teach Pendant is a small hand held device, sometimes called as contro! bor, that contains toggle switches, dials, and buttons to regulate the physical movernent and. programming Gapabilties of robot Teach Pendant is simple to handle and learn and suitable to program many tasks in industry. N doesn't need stlled operator. The program cannat be entered into the penctant while the robot is off-line. © scanned with OKEN Scanner RONOTICS (BE MECHANICAL) on MACHINE VISION SYSTEM AND ROBOT PROGRAMMING © It resuts in movement of robot arm and wrist through 2 series of points in working space wherein each point is recorded there into the memory for further playback during the work gycle, and during Playback testing, the robot moves through the Sequence of positions under its own power. ‘© This method is limited to point-to-point motion of the manipulator, which include transfer of parts from fone point to other point, machine leading and unloading through a parvcular sequence and spot welding operation when welding gun moves from fone point to other point. {b) Manual Lead Through or Walk-Through Programming: Its suitable for playback robots continuous path, Also it futfis the irregular motion patterns, roughly locating the tool center point for some rebers. “Applications of walk-through programming. Trincludes: Spray painting * Arcwelding © Grinding = Deburring and polishing Requirements: © requires the operator to physically grasp the end effector and manually move it through the motion sequence, = Italso requires the recording of the path into memory, The motions are recorded as a series of cotely spaced point and during actual playback the actual rabot arm Goes through the same sequence of points. ‘© tthe robot arm is heavy and unable to move on itselt, a actual robot is replaced by a special device. This device has similar joint configuration to the robot ft i equipped with a control switch that is activated by the operator. © Irrequires a highly skilled operator to perform the precise mation tastsif the robot cannot be programmed off-line. 7.13.3, Computer Terminal Mode or Textual Robot Language = They are sometimes referred as “teach by showing methods’ thas started in 1970's. = is similar to computer programming. where programmer uses a program with high-level language and enters it on a CRT monitor. + provides greater flexibility and high efficiency. While writing and debugging the actual program, the robot does not have to be taken out of the operation. ‘Thus, [twill not atfect productivity. Control function in robot is carried out by digital computers. Disadvantage: © Weequires a skilled operator, 7A2A_ Off-Line Programming © Itis the process by which robot programs are developed without requiring the use of robot Le. it permits th Program to be prepared off-fine and download to the robot controller for executing it Be indiudes ~ generating point co-ordinate data, (@) function data and (6) mation cycte logic. Advantages: + Off-line programming provides the ability to create or modity a program for robot without disturbing the robot activities, ‘+ Optimization of layout and cycle time of the operation an be made possible in advance. ‘+ iris not required to redesign each operation every time it is used previously prepared procedures and routines can be incorporated in the program, + Sensors can be used for detecting external environment, where necessary action can be taken in response. I would increase the programming complexity and the robot would be considered to be in adaptive operation made, + Routine CAD and CAM information can be made to incorporate included into the control functions. + In order to have movements actually programmed, programs can be run in acivance without having the risk of camage. + By wilting previously developed routines, robots can be used to manufacture individual parts. + Change in éesign can be incorporated quickly indicating fhexbilty of off-line programming mode. Requirements for Off-Line Programming : + Fundamental knowledge of the process or the task to be programmed. + is necessary to generate geometric description of components and their relationships within the work place. +t requires knowedge regarding robot geometrical description, kinematics and dynamics. * It alo needs computer based system for programming the robots using the above dates. * Program produced are to be verified at specific stage. + It needs ta have appropriate interfacing in order to allow communication of control data © scanned with OKEN Scanner RONOTICS (BE MECHANICAL) © Broadly interpolation is a process used to estimate and intermediate value of any one variable (.e. dependent variable), which is a function of second variable (Le Independent) variable, when values of the dependent variable corresponding to several discrete values of the Independent variable are known, ‘© Mlustration: Consider programming a two-ass sewo controlled Canesian robot with eight number of addressable points for each axis. Therefore, in all there are ‘otal of sixty four number of addressable points hut we could use in any program that might be weiter. Fig, 73 shows work volume, 4 an 1] q 4 3] | ' SS Fig. 7.3: 0 0 addressable points in robot work space ‘A program for this robot to start to with (11) and traverse the perimeter of the rectangle could be given as in Table 7. Table 7.4 5 + th we were to remove Step 3 in this program, the senwo- controlled robot would execute Step 4 by tracing a path along the diagonal fine from point (8 1) to (1. 8) This process is called interpolation. “There are various schemes ol interpolation which can be specified for the rabot to get fram one point to another. ‘These are as under © Joint-interpoiation G)_Straight-tne interpolation (Gi) Greular interpolation (M) Manual lead through programming (regular smooth motians) on MACHINE VISION SYSTEM AND ROBOT PROGRAMMING 7.14.1 Joint-Interpolation © Most of the commercially available robot controllers use jpintinterpolation procedure as a default (ie, the controller will follow a joint-interpalated motion between the tao points unless the programmer provides some omer type of interpolation, © Controller gives the distance to be moved by each Joint to get trom the first point defined in the program to the ert + Aer the cistance has specified, it selects the joint that requires the longest time And also determining the overall time it will take to complete the move at 2 given speed. © Using this known move time, and the amount of the movement required for the other axes, the controller subdivides the total move into smaller increments so that al joints start and stop their mations at the same time, + Mlustration: Consider the move from point (1,1) to point (7,4) in me gnd of Fig. 7-4 and Fig. 7.5. c an an ‘ 4 ‘ ric, h 2 | 7] - . et eee Fig. 74: Robot workspece Fig. 7.5: Robot taking Interpolated path * Linear joint 2 must move six increments and joint 2 must move three increments. * In order to determine the jointsinterpolated path, the controller would determine a set of intermedi addressable points along the path between 2, 1 and 7, 4, which would be followed by the robot. Table 7.2 gives the process. Table 72 ‘sup_|_ tore Remarks 1 | 1.1 | User tetined starting point 2 | 2.2 | timmy generated interoiaton point 3 | 3.2 | rtematy generated interpointon port 4 | 4.3 | iemaly generated interointon point S| 5.3. | temaly generated interoiaton pont 6 | 6.4. | ttemaly generated interpolaton pont 1 _|_7.4 | User geen ent point + Here, the controller aternatvely moves both axes or just one axis. For each move requiring actuation of both axes, © scanned with OKEN Scanner RONOTICS (BE MECHANICAL) the two axes start and stop together. Such an actuation (uses the robot to take a path as shown in Fig. 73. © The controller gives the equivalent path as specified in rogram and then generates the intemal points as dose to that fine as possible ‘©The resulting path is an approximation rather than a straight ine. ‘= In present case 64-addressable points are present which ive rough approximation. But as number ot addressable points increases, grid becomes more dense and the approximation would be berter. 2 Straight-Line Interpolation ‘= An interpolation procedure resulting in straight-line approximation is termed as straight-line interpolation, For a Cartesian robot, which has only knear axes, joint Interpolation is same as that of straight-line interpolation. But for other robots with rotational and linear joints, straight ine interpolanon produces a path tnat is ctterent from joint interpolation. Thus in straight-line interpolation, the robot controller Gives the straight line path between the fo points and evelops the sequence of addressable points along he path for the robot to pass through. 7.14.3 Cireular Interpolation nee GA ge ber Fig. 7.6: Creular interpolation In this type of interpolation, the movements that are made by the robot actually consist of short-straight-line segments, therefore, circular interpolation provides a linear approaimation of the circle. First of all requires the programmer to define a circle in the robot's workspace. Specifying three points that fe along the circle isa convenient way ta represent it The controller then constructs an approximation of the Circle by selecting a series of addressable points that fe Closest to the defined cirde. + UW the grid of addressable point is much more dense, the Tinear interpolation looks like a real circle. = Finally, the craular interpolation can be readily programmed using a textual programming language than with lead through techniques. on MACHINE VISION SYSTEM AND ROBOT PROGRAMMING 7.144 Manual Lead Through Programming or irregular Smooth Motions + In this method, when the programmer takes the manipulator wrist to teach spray painting or arc welding, the movements typically consist of Combinations of Smooth Motion Segments. + These segmental moves are sometimes ~ 2 Approximately straight lines. > Curve, and 2 Back and forth motions. Therefore, these movements are called 35 Irregular Smocth Motions, and an interpolation process therein Called 25 irregular smooth mation interpolation. ‘+ Further, the motion path is divided into a sequence of Closely spaced points that are recorded into the contraler mernory in ofcer to approximate the liregular smooth pattern being taught by the programmer. + These positions constitute the nearest addressable points To the path followed during programming, In this approach, the interpolated path may consist of large umber of indivigual points that the robot must playback uel program execution, ‘There are vanous capabilties and structures of the textual robot languages. These are identified according to the generations 2s follows. ere tsgat | {Seana 1 | ae wm" | os, (encores ed Seeone — cumgece H Corersten Sentra TE SE | fos ag ed a a cme | lojaremn, en = woah hand] Task oes | | | SetProcremnng| S| (Soe Fig. 72: Generation of Robot Programming Languages First Generation Languages: = Muses combination of: 2 Command statements and 2 Teach pendant procedures basically for robot building. © scanned with OKEN Scanner RONOTICS (BE MECHANICAL) © Initially, they were developed in order to implement motion control with a textual programming language, therefore, sometimes they are called as “Motion-Level Languages’. atures of First Generation Language: © It has ability to define manipulator motions using the statements to define the sequence of the motions and the {each pendant to define the point locations ‘© trhas capability of straight-line interpolation. ‘© Minctudes ability of branching © Malso has ability to define elementary sensor commands involving binary signals. © They can be used ta define the motion sequence of the manipulator (ce. move command). © They have inpuvoutput capabilities (e.g wait, signal commands) ‘© They can be used to write subroutines (branch). = Example of frst generation language is VAL. Limitations: = Inability to specify complex anthmetic computations for use during program execution. © Inability to make use of complex sensors and sensor gata, It has a limited capability to communicate with other computers. = These Languages are not that much exible to extend them for future enhancement. (0) Second Generation Lingusget: Ir involves more inteligence as compared to the first Generation languages. * Ican handle more complex tasts. = They possess structured control constructs used in computer programming languages, therefore sometimes they are referred as the ‘Structured Programming Languages’. = Examples of this category indude Languages like AML, RAIL, MCL and VAL-IL = Programming using these languages is much similar to that of computer programming. Features and Capabilities: * They make use of Teach Pendant to define bocations in the workspace. = Motion Controk it has ability to define maniputator motions. = Advanced Sensor Capabilities: I includes the capacity to deal with more than simple binary signals, and the capability to control devices by means off the sensory data, eat) MACENE VISION SYSTEM AND ROBOT PROGRAMMING. © Limited Intelligence: It is the ability to make use of the information about the work environment, in order to improve or mocify the system's behaviour. + Communteation and Data Processing: These languages have capability to interact with the computers and its data-bases for keeping records, report generation and control of activities in the workcell, © Extensibility: 2 This means that the language can be extended or ‘enhanced by the user to handle the requirements of future applications, future sensing devices and future robots. 3 Ir also means that the language can be expanded by developing commands, subroutines, and macro statements, Gil) Future Generation Languages: * Itinvolves a concept of “World-Modeling™ which means Model-Based Languages and Task-Object Languages. * While programming, based on world-modeling, the robat possesses inowledge of the theee-dimensional world and is capable of developing its own procedure to perform a particular task + There are two basic aspects of a programming language based on wortd.madeling L.A. three-dimensional model of the work environment around the robot system is stored in its control memory. ‘The model includes = 3 Robot manipulator itselt The work table. Foatres. Tools, Pars etc. Generation of model might be possible either by providing the robot with the capacity to see the work environment or by inputing 30 geometric data into the control memory. 2 The Capacity for Automatic Self-Programming. + The robot intelligence required in word mod indudes the ability to solve problems and make decisions relying on other than preprogrammed instructions. Use of anificial intelligence is first approach to this problem and another approach is research on hierarchical control systems for robotics. + With future generation languages, it is possible to accomplish robot programming completely off-line without the need for a teach pendant to physically show each point in the program to the robot. yryy © scanned with OKEN Scanner ROOTICS (BE MECHANICAL) Following section shows some of the major programming languages. ‘+ Assembly Robot Language (ARL): It was ceveloped to execute complicated tasks in assembly and inspection of high level controts ‘= Hitachl Assembly Robot Language (HARI): A Commercial version developed for point to point assembly and handling tasks. tis based on ARL-basics. ¢ Arm Languages (AU): This language is curently under continual development, originally developed at Stanford University for programming robets. This lnguage mace use of WAVE language © Vic Arm Language (VAL): It is considered to be an Interactive version of AL. Its hardware have been used t0 all Unimate robots. Now VAL+II is being tested. is aso called as Victor's Assembly Language. © A Manufacturing Language (AML): It is developed and represented by IBM. Example, RS+1 which is a cartesian hydraulic robot is developed by IBM. 7535 electric robot Is developed by Sankyo of Japan. + Intuitive Robot Language (RJ: This language was developed for high precision assembly robots by Microbo, a Swiss Company. ¢ Language Demanipulation (LM): It makes use of basic concepts of AL, and is used on a microcomputer. It was developed by IMAG Robotics Laboratory at Gemable University. © MCL (Manufacturing Control Language Ri an extended version of APT, aiming to program Nexble units Le of a set of machines controlled by one or more robots. ‘© Programming Langusge for Are Welding (PLAW): For inteligent welding which uses sensors for control this language is suited to this application. © Robat Language (ROL; It was developed in onder to design a complete commercial system for computerised control applicable to any robot. = Sigma Language (SIGLA): For industria robot. this language is most suitable. t was developed by Olivetti for the Cartesian Sigma Robots. = Robot Programming Language (RP1): It was developed by the Stanford Research Institute. It includes capabilities for interpreting video signals. It also enables robot to visually identify the parts + Draper Industrial Assembly Language (DIAL: It was developed at Charles Stark Drapur Laboratory. It uses elecronic force feedback to duplicate human serse of touch in assembling various parts MACENE VISION SYSTEM AND ROBOT PROGRAMMING & Robotle Autsmatrly Incorparation Language (RAIL It was developed by Automatrix Inc. in 1982, ‘+ Roboter Exapt (ROBEX): It was developed by Achen of Germany. ‘© Structured Robot Language (SRL): It was developed at ESPRIT; Germany in 1985. + Vietual Machine Language (VML): It was developed by CNR, Ray +The features of first generation languages and second generation languages are discussed under this, (a) The language must be designed to operate with a robot System. () It must be able to suppor the robot programming, control of the robot manipulator and interlacing with peripherals in the work cell, (It should also suppont data communications with ether computer system in the industry. Robot language structure can be explained with reference to the following points: ©) Operating systems and Robot language elements and functions 7.17.1 Operating Systems ‘© With the tevtual languages, the programmer can ute CRT monitor, an alphanumeric keyboard, and a teach pendant. ‘+ Programs can be stoned either on magnetic tape or disk, Requirement of language is that there should be same mechanism which will permit the user to = 2 Determine whether to write a new program. 2 Edit an existing program. 2 Execute a program or 2 Perform some other function. This ype of mechanism or system is called as an “Operating System’. * The purpose of the operating system is to facitate the operation of the computer by the user and to maximize the performance and efficiency of the system and the peripheral devices +A robot language operating system has three basic modes of operation. (2) Monitor mode (©) Run mode and tc). Feit mode. © scanned with OKEN Scanner ain MACHINE VISION SYSTEM AND ROBOT PROGRAMMING ig. 7.4: Robot system with its companents, co-ordinated by Means of the Language (2) Monitor Mode: Itis used to accomplish overall supervisory control of the system, therefore it is referred as “Supervisory Mode’. Herein user can define locations in space using the teach pendant he can set speed control for the robot, store programs, transfer programs from storage back into control memory or move back and forth between the other modes of operation as eit orrun, tb) Run Mode: It is used for executing a robot program Le. in this, mode robot is performing the sequence of Instructions in the program, For correctness of program, the user can employ debugging procedures into the language Some modem robot languages permit the user to C7085 back into the monitor or edit mode while the program is being executed, so that another program can be written. () Edit Mode: It provides an instruction set which allows the user to write new programs oF to edit existing programs. The operation of the editing mode ciffers from one language system to: another. The kind af editing operations that can be performed include - 2 the writing of new fines of instructions: in sequence. 2 deleting or making changes to existing instructions, and > inserting new fines in a program. +The robot language program is processed by the ‘operating system using — Interpreter or () Acompiler @) Interpreter; + kis a program in the operating system that executes ach instruction of the source program, where source program is the users robot language program. #4 VAL is robot language processed by an interpreter, @) Compiler: ‘+ his a program in the operating system that passes through the entire source program and pretranslates all of the instructions into machine level code that can be read and executed by the robot controller, 4g, MCL is robot language processed by a compiler. Compiled programs result in faster execution times. 7.17.2 Robot Language Elements and Function: Following are the robot language elements and functions: (a) Constants and variables. (©) Aggregates and location variables. (C)_ WATT, DELAY, SIGNAL commands. (©) Branching (e), Motion commands. (N)_End-etfector and sensor commands (g) Computations and operations, (>) Program sequence control (© Subroutines. © Communications and data processing, {k) Monitor mode commands. (@) Constants and Vartables @ Constante: © A constant is a value which does not change during the execution of program. Constant can be integers (Le. white numbers) real numbers, containing decimal point, or strings that are enclosed in quotes. + The range of values for numerical constants depends upon the computer system, en which the language is implemented. Abit capacity of the CPU gives a limit on the range of values that the computer can handle. + Integer and real numbers can be positive ar negative as indicated by a"+' or ~’ sign. + Astring is a sequence of 8-bit alphanumeric character (or symbols, generally having marker as e.g. ‘machine’ © The exact syntax might vary from one language to other. © scanned with OKEN Scanner RONOTICS (BE MECHANICAL) () Variables: © A.variable in computer programming is 2 symbol or symbolic name that can change in value during the execution of the program. © Varlable can be integers (Le whole numbers] real numbers, containing cecimal point, or strings that are enclosed in quotes. The range of values for variables depends on the computer system: on which the language is implemented. © Variable symbols and names. are created from the alphanumeric character set Le letters a through z and digits 9 through 2 © For establishing vaniable means, there are cenain rules in the various robot languages. 2 The variable name must begin with an aiphabenc fetter. 2 The variable name must not be identical to the language vocabulary word. 2 For first generation languages. the specification of integer variables might be used. 2 For second generanion languages, variables can bbe specified for integers, real numbers or strings. fb) Aggregates and Location Varlables © An aggregate is an ordered set of constants and variables © AML permits the specification of an aggregate by enclosing it with the bracketing symbols eg. , and by ‘separating the elements in the aggregate by commas. 9, () [e 15722, 220087, 12212, 24082, 12570) This example is an aggregate consisting of five real numbers The aggregate can contain elements that are all of different type. Any combination of integers, real pumbers, and strings can be contained in the same aggregate. 6 [=oow, Take] ‘This example consists of two strings. Therefore, it is not ahways necessary that the aggregate contain elements of same type. An aggregate can also be used to specify joint co- ordinate values of a robot's joints Above example (2) could be used to define a five axis robots joint co-ordinate values for a point in space, which is 2s follows. DEFINE Pl = POINT = 5772, 220057, 12732. isan aun MACHINE VISION SYSTEM AND ROBOT PROGRAMMING Above statement can be illustrated as: General. interpretation of the aggregate in above statement is that - ©The first three values (15.722, 220.057, 12.212) define the position of the robot wrist or the tool attached to the wrist in word space (x - y~ 2) co-ordinates). «The remaining two values (24.092, 125.170) define the rotations of the wrist joints in degrees relative to some ‘neutral reference frame (©) WAIT, DELAY and SIGNAL Commands «All industrial rebots can be instructed te send signals or wait for signals during program execution. © These signals are called as interlocks. An interlock in robotic workcell design is a method of preventing the work cycle sequence from continuing unless a certain Condition or set of conditions are satistied, Ths, it Is a feature of work cell control which plays an important role in regulating the sequence in which the various elements of the cycle are carried out. Purpose of Providing Interlocks: * To make sure that a raw workpart was at the pickup location on the conveyor before the robot tried to grasp the object, + To determine when the machining cycle was completed before the robot attempts to load the partinto the fiture, and + To incicate that the part has been successtully loaded so thar the automatic machining cycle ean begin. nvertocks can be Subdivided Into Twa Categorles: Output intertocks: ‘An output interlock involves the use of a signal sent from the ‘workstation controller to ona of the machines or other devices in the workcell, Mcomesponds to the SIGNAL command. (Input Intertoctas: An input interlocks are usually used to determine conditions that the work part has been property loaded and the robot ‘arpper has been removed to a safe distance. Thus, an input interock makes use of a signal sent from one of the ‘components in the cell to the workstation contralier. It corresponds to the WAIT command. It is used to indicate that a certain condibon or set of conditions have been met and that the programmed work eycle sequence can continue, An input intetock can be used in a machine loading application to signal the workstation controller that the part has been property loaded into the fiture on the machine tool table. © scanned with OKEN Scanner ROQOTICS (BE MECHANICAL) Mustration: Consider 2 robot for unloading a press Br & important to Inhibit the robot from having its gripper enter the press before the press is open, an even more obvious, it is Important that the robot remove its hand from the press before the press closes. In order to have this co-ordination ‘wo commands that can be used during program. @) SIGNAL: Tr instructs the robet controller to cutput a signal through line P, where P is one of the several output lines available to the controler, G) WAIT Q: It indicates that the robot should wait at ies current location Until it receives asignal on fine Q. where Qis one cf several Input lines available to the robot controller (QM) DELAY Y SEC: The robot would be programmed to wait for a specified ‘amount of time to ensure that the operation had taken place, ‘thus, causing the robot 16 delay Before proceeding to the net sep, Therefore, abave command indicates that the robot ‘should wait ¥ seconds before proceeding to the next step in ‘the program. £9, consider a tworaris robot is to be used to perform the unloading of the press, The layout is as shown in Fig. 79. on = Fig. 7.4: Workspace for Robot for Prest Unloading Operation = The platen of the press where parts are to be picked-up is at the location (8 8). The robot must drop the parts in a tote bin positioned at a8) One of the colurnns of the press és in the way of an easy straight ine move from (8, 8) to (1. 8). Thus the robot must move its arm around the near side of the column in order to avoid collision with it It can be accomplished by the use of points (8, 1) and (13. * Now point (8, 1) wil be the position to wait for the press to open before entering the press to remove the part and the robot will be started from point (2, 2} a point in space known to be safe in the application. aun MACHINE VISION SYSTEM AND ROBOT PROGRAMMING. Thus, we can use controller ports 2 to 10 as output ie. SIGNAL lines and port 11 through 20 as input lines Le, war, + Generally, output Kine 4 will be used to actuate (ie SIGNAL) the press, and output lines S and 6 wall be used to dose and open the gripper respectively. Input line 11 wil be used to receive the signal from the press indicating that it has opened (ie. WAM. Table 7.3 gives the program to complete the press unloading task Tobe 73 Move or o 1 ‘Sut ata postion 1 " Move walt poston 2 Warr tt ‘Wino pro i open 3 25 Mow tp up pont 4 SWS Sigal grepera cose 5 mm Mow toate polion é Siould | Sigaiprss to actuate 7 uw [Weve around press oka 8 18 Morale pan 2 SGWLE Sinai popero en 0 ut Mow toate poten © Use of DELAY command is ilustrated in Table 7.4 which is modification of above Table 7.3, It uses time as the means for assuming that the gripper is either opened or closed. Table 74 step | _ tove or Signal o 44 1 aa 2 2 4 5 6 7 SIGALA ‘Signal pros thet hadi deat 8 18 ‘Move around press cok 3 48 Momo bi pan % SIGUALG ‘Sgrut hand la open un | peavisec Wait or groper to open 2 44 ‘Move t home poston (@) Branching In a industrial robot, controller provides a method of viding a program into one or more branches, called as branching, © scanned with OKEN Scanner ROROTICS (BE MECHANICAL) ” Branching atlows the robot program to be subdivided into Convenient segments that can be executed during the program. A.branch can be a subroutine that is called one or more times during the program. ‘The subroutine can be executed either by branching to it ata particular place in the program oF by testing an input signal line to branch to it Most controller: alow the user to specify whether the signal should interrupt the program branch currently being executed or wait untl the current branch completes. The intemupt capability is used for error branches, Depending on the event and the design of the eer branch, the robot will either take some corrective action oF simply terminate the robot mation and signal for human assistance, Branch capability has its frequent use when the robot has been programmed ta perform more than one task In this ase, separate branches are used for each individual task. Use of branching reduces lines of code (ie. programming Hines). Also there is significant efficiency in robot Programming when branches are used There is substantial reduction in the programming etfon using branching capability, Motion Commands Motion commands are used for controling the movernent of ‘the manipulator arm. For this purpose, textual language is used. Motion commands an be illustrated with reference to = © MOVE and Related statements. Gi) SPEED control Gi) Definition of point in the workspace. (0) Paths and frames. «I indicates that end of the arm (end effector} to move from its present position to the point (previously defined}, named Py. The point is defined in terms of the robot's joint Positions, and oP; defines the position and orientation of the end-effector. «The MOVE statement causes the arm to move with a jointinterpolated mation. «WALI Language provides for a straight line move with the statement. MOVES P, Here suffix s indicates straight-line interpolation The controller evaluates a straight line wajectory from the current a3) MACHINE VISION SYSTEM AND ROBOT PROGRAMMING Postion to the point Py and causes the robot arm to follow that trajectory. Vis Points: In some cases, the trajectory must be controlled so that the enc-eHector passes through come intermediate points as it moves from the present position to the next posit n defined in the statement. This intermediate position is called as Via Point. The case where there is an obstacle and clearances to be considered along the motion path, there is a need af via- Point. ¢g. while removal of a part from a production machine, the arm trajectory would have to be planned 0 that no interference occurs with the machine, The move statement for this case will be 26 Follow: MOVE P; Via P, This command tell the robot to move its arm to point P; but pass through via point P, making to move. Sometimes, a move sequence involves a approach to 2 point and departure from the point. This kind of situation i found in applications like material handling system, in which it is necessary for gripper 10 be moved to some intermediate position above the par before proceeding to it for the pick up. eg. ‘According to VAL IL suppose the robot's task is to pick up a part from a container. ‘Assuming tnat initially gripper is open. Following sequence can be employed. "APPRO P,, 50 MOVES P SIGNAL (16 dose gripper DEPART 50 APPRO: Command causes the end-effector to be moved to the zone of the point Py, but atfset from the point along the tool axis in the negative irection (above the part) by a distance of 50 mm. MOVES P, and SIGNAL: For this location the end effector és moved straight to the point P, and closes its gripper around the part. DEPART: Statement causes the robot ta move away from the pick up point along the tool z-axis toa distance equal to 50 mm. VAL Il provides straight-line interpolation rather than jPint-interpolation. These commands are APROS and DEPARTS, respectively, Incremental Moves: In the incremental move, the direction and distance of the move must be defined. This is done by specifying the particular point or points in be moved and the distance of © scanned with OKEN Scanner ROROTICS (BE MECHANICAL) a8 MACHINE VISION SYSTEM AND ROBOT PROGRAMMING. ‘that move. Move distance for linear joints are defined in | where, first three values are x-y-2 co-ordinates in world space inches oF millimeters, while rotational joint moves are | and the rest of values are wrist rotation angles. specified in degrees of rotation. ‘© Also, the points in space can be specified by designating AML illustrates possibilties of incremental moves the point and its co-ordinate values by typing them into D MOVE (1, 10) centrol memory directly without using the teach pendant. D MOVE («3.4.5 >, < 40-50 80>) Following statement shows the specification of points In D MOVE is the command for an incremental move or “Detta’ | *P2CP move. In paranthesis the joint and the distances of the incremental move are specified. (i Paths and Frames: ‘The First Statement: Maves joint 1 (which is assumed to be «Path in the workspace can be defined by connecting linear by 10 in. various points together, ‘The Second Statement: Commands an incremental move of e9 ‘aves 3, 4 and 6 by 40*, ~60" and 80" respectively. |AL + Language Provides move statement. It is designed for [DEFINE PATH 1 = PATH (Pi, Ps, Ps Pal multiple arm control, the move statement can be used to ‘The path PATH 1 shows the points Py, P;, Py and P, Identity which arm is to be moved. connected in series, defined relative to the robot's 9. MOVE ARM 1 TOP, world-space. ‘The robot is instructed to move its arm umber 1 from the ‘The path begins at Py and end of the path is the last Current position to point Py point that is specified in the series (SPEED Control: ‘The way in which the robot moves between the ‘+ The SPEED control command is used to define the velocity with which the robot's arm is moved. © When the SPEED command is given in the monitor mode, it shows some absolite measure of velocity available for the robot SPEED 80 IPS. Inindicates that the speed of the end efector during Program execution shall be 80 invsec. unless it is changed to some other value during the program. = Ifa units are given, then the speed command Indicates some value relative to the robot designers concept of normal speed. SPEED BO points in the path is determined by the moti statement MOVE PATH 1 ft incicates that the robot arm would move through the sequence of positions defined in PATH 1 using a joints interpolated motion between the points. ‘Another statement MOVES PATH 1 It indicates that straight lin interpolation must be used to move between the points in the path. A frame is a Canesian co-ordinate system that may have other points or paths defined relative to it. The following statement defines the concept of frame in Indicates that the robot should operate at 75% af normal robot programming. ‘speed during program execution. [DEFINE FRAME 1 = FRAME (P,, P>.P, il) Definition of Point In the Workspace: © Motion control programs have used points in the workspace. The location of these points must be defined for the program. The point location is usually defined with the help of taach pendant The penctant The variable name given to the frame is FRAME 1. '* hts position in space is defined using the three points Px, Pz and Py Point Py becomes the origin of the frame, P, is a point along x-axis, and Py is a point in is used to drive the robot arm to the desired position the ay plane and orientation. AS the separation between points is increased, the A following command accuracy is also improved in the calculations. HEREP) +The three points uniquely define the Cartesian co- indicates that HERE statement is used in VAL language. The ordinate system of the new frame. Position and orientation of each joint are stored in control +The zeaxis is perpendicular to the xy-plane, with its memory as an aggregate as, positive direction pointing to form a right-hand co- < 15.722, 220057, 12.212, 24.052, 125.170 > ordinate system. © scanned with OKEN Scanner RONOTICS (BE MECHANICAL) © For number of frames, a routing path, called ROUTE, Can be defined relative to one of the frames as below. DEFINE ROUTE : FRAME 1 = PATH (i, My My MM] the series of points M; through Ms defines the outing pattem at the first position on the part identified by FRAME 1. Instead of the five points being defined relative to the world space co-ordinate system, they are defined relative to new co-ordinate syste FRAME 1. When the robot is commanded to follow the path the statement must Include the definition of the reference frame, be MOVES ROUTE: FRAME 1] For executing the sequence of routing operations MOVES ROUTE: FRAME 2 MOVES ROUTE: FRAME 3 (For S number of frames) MOVES ROUTE: FRAME S Each of the points in ROUTE fs wansformed into the new frame, and the straight line segment path is executed. Af) End-etfector and Sensor Commands End-EHfector Commands: © In order to control end-effector operation, most elementary commands are used as, OPEN and CLOSE VALI - differentiates between differences in the timing of the ‘tipper action. ‘Above two Commands OPEN and CLOSE cause the action to ‘occur during execution of the next motion. Also, OPENI and CLOSET ‘cause the action to occur immediately, without waiting for the ext motion to begin. Ir results in a small time delay. These are {for non-served gripper. © Thecommand CLOSE 50 MM or CLOSE 1.965 1N When applied to a gripper that has servo control over the Width af the finger opening would place the gripper to an opening of SQ mr (1.965 in). + For some grippers having tactile or force sensors built into fingers. These permit the robot to sense the presence of the object and to apply a measured force to the object during grasping ft aan MACHINE VISION SYSTEM AND ROBOT PROGRAMMING. 9, force measurement for a gripper can be controlled to apply a certain force against the part being grasped. ie Close 4018 fe indicates that apply a 4 Mb gripping force against the pat. + With proper instrumentation, AL language statement CENTER provides a fairy high level of control for tactile sensors. It causes the gripper to slowly close until contact is made with the object by one of the fingers, The CENTER statement allows the robot to center its arm around the object rather than causing the object to be moved by the gripper closure. This is useful in getting the position of an ‘object whose location is only approximately known by the robot, * For endveffectors to be powered tools, rather than gripper, the robot must be able to position the tool and Operate i AL language gives a command which might be used to control the powered tool ie ‘OPERATE TOOL (SPEED = 110 RPM) OPERATE TOOL (TORQUE « 6 IN LB) OPERATE TOOL (TIME = 22 SEC) Above statements apply to the operation of a powered Fotational tool First two statements indicate that either the tool can be ‘Operated at 110 r/min or it can be operated with a torque Of 6 ind. The powered tool would be operated at 110 I¢min until the screw began to tighten, at which point the Torque statement would take precedence. The third statement indicates that after 10 sec. the operation will terminate. ‘Sensor Commands: The SIGNAL command can be used bath for tuning on or off an output signal. The statements ‘SIGNAL 4, ON It indicates that the signal from ‘output port 4 to be tuned on at ‘one point in the program and tumed off at another point in the program. (Signal in this case is binary). ‘An analog output could also be controlled with the SIGNAL command. SIGNAL 106, 5.5 1 provides an output of 55 units within the allowable range of ‘the output signal. SIGNAL 4, OFF © scanned with OKEN Scanner RONOTICS (BE MECHANICAL) aun ‘The WAIT command can also be used both for on or off | « conditions. Here the robot provides power to some extemal device. The WAIT is used to verify that the device has been tumed on belore permitting the program to continue. Further, the robot tums off the device and the device signals back that it has been tumed off before the Program continues. The statements are as below. Commands: Comments SIGNAL 4.0N | Rotet ums.on ti deve. WAIT12, ON | Device gnats back fat ts on. SIGNALA, OFF | Robot ums of he dro. WATT12,0FF | Device signa back fut tis of ‘The WAIT command can be wied for analog signals as well as binary digital signals as similar to SIGNAL command. ‘The variable can be defined as follows: DEFINE MOTOR 2 = OUTPUT 4 DEFINE SENSR 2 = INPORT 12 which would permit the preceding input output statements to be written in following way. ‘SIGNAL MOTOR 1, ON . WAIT SENSR 2, ON SIGNAL MOTOR 1, OFF WAIT SENSR 2, OFF is also possible to define an anatog signal ether input | (oF output, as a variable which is used curing program execution. The statement DEFINE VOLT 1 = OUTPUT 104 It specifies that the variable VOLT 2 will be used with output port 104 SIGNAL VOLT 1 Ris used when at some point in the program, the variable could be computed to be a particular value and! that value could be sent to the designed device in the cell by above statement. ‘The value of VOLT 1 would be signaled to the extemal device through output port 104. Similarly, WAIT command can be used for an analog input signal DEFINE VOLT 2 = INPORT 212. Here, specification off the variable name and associated input port is done by above statement. MACHINE VISION SYSTEM AND ROBOT PROGRAMMING Use of a variable can be made in a WAIT statement as, war votr 2 It indicates that the program execution should wait for the value of the signal on input port 112 to have a value that is greater than or equal ta VOLT 2. The programmer ‘must keep in mind what the normal signal level is likely to be since this may influence the logic of the progr ‘THE REACT Command: Iris used to continuously monitor an incoming signal and to respond to a change in the signal, A particular use of this kind of command is when some error or safety hazard has occurred in the workcell and the condition is detected by one of the sensors, Asstatement REACTIS, SAFETY Indicates that the input fine 15, is to be continuously monitored, and when a change in its signal value occurs, branch to a subroutine called SAFETY, The use of REACT statements in textual languages is to complete the current motion command before interrupting, In some cases, an intermediate reaction is required. The statement for this i, REACT 1, SAFETY This causes immediate suspension of the regular program esecution, $0 that a transfer to SAFETY is done at once. Analog input-output signals can be used with REACT commands. The analog signal level at which the reaction occurs must be specified in the statement. REACT 115, 5.5, SAFETY (PRIORITY 2) Ie indicates that the transfer to subroutines SAFETY must occur if and when the input signal on port 215 becomes greater than or equal to 55 V. ‘When variable names are used, the statement is, DEFINE VAR 12 = INPORT 12 REACT VAR 12. SAFETY (PRIORITY 2) The REACT command facilitates the design of an “interupt system in the robot program. The purpose of an interrupt system is to transfer control from one part of the program to another in response to conditions that take prority, over regular program execution. (9) Computation and Operations @ Mathematical Operators: Symbol ° dion - swittncon ' Svison E © scanned with OKEN Scanner RONOTICS (BE MECHANICAL) ( Trignometric, Logarithmic, Exponential and Similar Functions: SIN(A) | Sie ofan ange A | ACOT(A) [Arc cctangert of an Za COS(A) | Sie otene angle | LOG OQ | Manze artes of x TANO) | Tangent of an angle | EXP 00) | Exconental incon A COT (A) | Cotngert ot an] ABS 6 | Abeckte ate ox ange A ASIN(A) [Arceinecten za | 485.09 | Largest integer tess anor eauat ACOs (A) | wecoune tana] wre [mx 'ATAN (A) | Are tangent of an] soRTON | Square ofroct x “A {ll Relational Operators: Operators Remarks fo fal ne ok ogi to or Greater han ce Greater Pan o og 12 ur Less an le Less han or egiatto v) Logleal operators: Logeal AND operas th) Program Sequence Control © Avariety of instructions are available in the textual robot languages to control the logical flow of the program. Before using subroutines, the following statements are available in the second generation tanguages Go1015 IRindicates an unconditional branch to statement 12 The GOTO staternent can be used with a logical expression as under 319 MACHINE VISION SYSTEM AND ROBOT PROGRAMMING: IF (logical expression) GOTO 15 1k indicates that ifthe logical expression Is true, then the Program branches to statement 15. Otherwis continues to the next statement in the program. @) Subroutines ‘The statements BRANCH FETCH END BRANCH It indicates the start and the end of a branch or subroutine and to name the subroutine (FETCH). In order to call the branch during program execution, FETCH is used. Here, branches will be referred by move appropriate name SUBROUTINE, ‘A subroutine with a single angument is shown as ‘SUBROUTINE PLACE (M) END SUBROUTINE The argument M is used during subroutine. The subroutine ‘would be called using a statement that would identity the ‘value of the argument. 3 CALL PLACE (4) ‘Another statement used with subroutines is RETURN ‘which resus in termination of the subroutine and retums control of the program back to the statement following the ‘call statement for the subroutine. ‘The effect of RETURN is similar to END BRANCH statement in the subroutine. [7.18 ROBOT PROGRAMMING EXERCISES 2) Example Showing Use of Subroutine: ‘A program for palletizing operation is to be written. To review, ‘the robot must pick up parts from an incoming chute and deposit them onto a pallet. The pallet has four rows that ‘50 mm apart and six columns that are 40 mm apart. The plane cof the pallet is assumed to be parallel to the xy plane. The rows of the pallet are parallel to the x-axis and the columns of ‘the pallet are parallel to the y-axis. Fig. 7.10 shows the ‘arrangement of the pallet. The objects are ta be picked up are about 25 mm tall, © scanned with OKEN Scanner ROBOTICS (RE MECHANICAL) am MACENE VISION SYSTEM AND ROBOT PROGRAMMING Use the following constants and variables in the program. Program: © Variables: PROGRAM PALLETIZE Row “The rom number (an integer valve). DEFRE PIOKUP = JOINTS (1,2.3.4.5) oe Reerroeae es Bepe chor co oroMlrs x An X-co-erdinate value ; = y AY ecorordinate valve ae © Location Constant: wart PICKUP ‘The pickup point on the chute. CALL PALLET (MAX ODL = 6, MUXROW = 4, XSPACE = 40, CORNER ‘The comer starting on the pate. — | YSPACE = 50) * Location Variables: ‘rapid warez ROP “The dropott point. : coros - BO PROG a <= SUBROUTINE PALLET (MAKCOL, MAXROW, SPACE, YSPACE) ROWED 10. Y=ROW*YSPACE 2 coun #0 sem praee | 20 Xx COLNE" XSPACE 2 DROP = CORNER » ABPRO PICKUP, 50 woves PoKuP So" close! —__, DEPARTS comme ‘APPRO DROP, 50 Fig. 7.10: Configuration of Patet waves DROP © Some Additional Parameters: PENI MAXCOL = The number of cohumas on the paet DEPARTSO MAXROW = The number of rows on the pallet Seee cole VSPACE = The spicing in te V-crecton gle | FOOUNNIT¥AHOO. GovO7D spacing between oe IF ROWLT MAXROW GOTO 10 XSPACE = The spacing in me Xerecton ie | pacing between columns) eas i “ = Stlerart needed tb Buca a atroine Hat mihl be used ia Subroutine PALLET mneregery sp stator, ‘The subroutine uses the above parameters as arguments that . must be identified when the subroutine is called. . SIGNAL 1 (Le. output fine 1) is uted to initiate the delivery of tau an empty palet into the loading pasion. ree oe WATT 11 (Le. input fine 21) is used in conjunction with a senor device to ensure thut the pallet delivery hat been 5 SUBROUTINE SAFETY accomplished. SIGNAL 2 (Le. output line 2} is used to initiate the removal of sTon2 tthe filed pallet from the loading position. SIGNAL 1, ON ear ee aes me S0UL 2 OFF serneved. END SUBROUTINE © scanned with OKEN Scanner ROBOTICS (BE MECHANICAL) The REACT command indicates that the controller must ‘measure the value of the signal on input line 114 and transfer to SUBROUTINE SAFETY if the SIGNAL ever exceeds a value of 50. SIGNAL 1, ON - might bé used to tum on an alarm SIGNAL 2, OFF - could be used to tum off a piece of ‘machinery that works with the robot in the cell (2) Example af a VAL Program: |] ‘More to a boston, which $0 me ‘above the location PART (ufich is bbcaticn tobe dated). More slong a staigtine to PART. (Close ie groper jews bo orp he Shel mreciatly ‘APPRO PART, 50 zy MACVENE VION SYSTEM AND ROBOT PROGRAMMING DEPARTS 150 Wineaw 150 mm ftom PART Sony eset ne pen ‘Approach along a sraxtdine fo a feeaton 200 mm stow the keaton, BOX fetich bb be etined sherwards) Mare i BOX. Open he hand, and drop the, Othe Wingraw 75 mm tom BOX. ‘APPROZ BOX, 200 ‘} are examples of Jolnt-Interpolated motions. 7 2 4 f tre eampies of stigh-tine motions, stept 3} ace hand-control instructions (3) Program to Pick Objects from a Pallet: In a pallet, objects protrude at 40 mm from the face of the pallet, and are located in a number of rows and columns. The pallet has 3 rows that are 30 mm apart and 4 columns that are '50-mmn apart The plane of pallet is paratiel to xy:plane. ‘The rows are parallel to X-axis. and the columns are parallel to Yeanis. The abjects are to be picked up one after another from the pallet and placed in a location chute. REMARK PROGRAM TO PICK OBJECTS FROM A PALLET. REMARK CORNER AND CHUTE LOCATIONS ARE ‘TAUGHT SETI MAXCOL 2 4 SETI MAXROW # 3 SETIROW=1 SETICOLUMNE! ‘SET PICK = CORNER SHIFT PICK BY 20,00, -20,00, 60,00 OPENT 10 MOVE PICK DRAW 0, 0,-25.00 Qoser DRAW 0, 0, 25,00 MOVE CHUTE OPENT GO SUB PALLET IF ROW LE MAXROW THEN 10 END PROGRAM PALLET. REMARK SUBROUTINE FOR LOCATIONS © scanned with OKEN Scanner RONOTICS (BE MECHANICAL) am MACHINE VISION SYSTEM AND ROBOT PROGRAMMING SETI COLUMN = COLUMN +1 TF COLUMN GT MAXCOL THEN 20 SHIFT PICK BY 50,00, 0.00, 0,00 40 To 10 20SETIROW= ROW +1 9 |moves Ps IF ROW GT MAX ROW THEN 30 = lsewes ichaa swag wal SHIFT PICK BY -150.00, ~30.00, 0.00 a | wetart2 ogat SET ECOLUMN #1 12 [wove on eles 13 | ORCLE Pe, P5,P5 END se | woves F? (4) Program for Weldment: 5 loners ‘A welding is to be done, The trajectory for weld 3 || os |uoves pr0 continuous path are welding. fa* ees Paths Welding Pattern Along | ‘38 | WSTART3,2 PPD woh rangi wane, 89 | uoves Put =P) win srage wait 20 | cRATERFRL OBS. Li? =P) eth croudas mterpolstcn ‘21 | WENDOS a= Pi wih sraght weld 2 |wovertz Pi=Pa=P) wrod we Exo Pe- Prd meth strat weld and wn ea Se + RAL is ahigh = level robot programming language ‘The weld torch starts its movernent from home position Py and depans to location P,> Craterfiling is done at the end of ‘raperaidal weaving. Write a VAL program for suitable arc welding, ama |WSET 1 10,40, 50 WSET2* 8, 35,60 weeny weeds an 10 om | WSET 3» 12,40, 55 wing volaje 40% ant Wevser 195.5 weeny met of ON os WvSET 2 = 10,7,2.0.1.2 0 wovert waver? Geveloped by Automatix Inc in 1981 for controling their Cybervision, Autovision, and Robovision systems. ‘+ RAIL Language includes three data types like Paths, Points, and Relerence Frames for robot locations, It has several special-purpose commands for interfacing a robat with other equipments Apart from these functions, this robet language also provides many programming features, RAIL will be a best language for controlling two major tasks such as the manipulation and vision system. It Is a high = level robot language based on Pascal, and it will implement a Motorola-68000 central processor, teach pendant, and terminal. This language was designed by ‘Automatix for arc welding and inspection purposes. The following is the features of the RAIL robot programming language: Features of RAIL Programming Language: The convo! structures in the RAIL and Pascal languages are very similar. The program can be included with several functions like IF, THEN, ELSE, WHILE, DO, WAMT, ete for Performing a number of execution processes. RAIL language has inbuilt function for robot. wel ‘© has approaching and departing commands for moving a mbot. © scanned with OKEN Scanner RONOTICS (BE MECHANICAL) ek iindudes commands for editing, storing, isplaying, and loading programs. © Integers, character strings, points, reference frames, real toe Caen one beeen eon See eae @ Tt has an inbuilt function. libcary with sine, square root, cosine, interval timing, arcetangent, absolute value, and ce ene © This language allows to enter user-selected variable names for referencing /O channels, weld paths, etc © Mt allows a robot to interface with some external Gevices like par detector switches, fonures, grippers, welding Positioners, and conveyors. © Overall, RAIL programming language can be used for controlling two key robot functions such as vision system and manipulation. RAIL comes with three cifferent kinds of systems, namely: 1. Hitachi Process Robot - Are Welding a ee ee VALI Robot Programming rE A opeieicandes related to locations that specify either position in the cartesian ‘space or frames that are attached to the objects. informaton So re muhiprocessor architecture (USI-11) under which VAL ID is Implemented should be developed in the laboratory. There are two frames used: (1) the world frame, and the (2) tool fame. The World frame is fored at the end of link-1 of the robot. For he el eee ene robot hand, the Z axis goes up, the ¥ axis goes forward, and some rere The Too! frame is located at the robot hand with its Z ans Be Soe ee Fight of the hand, and its ¥ axis’ g Gown from the hand. A Point’ or a ‘Position’ is a cartesian reference (X YZ) in the work space. A ‘Location’ is a point plus an onentation. For ‘example, when executing a mation instruction the robot scone ie soos a set point and the tool frame is oriented to the specified reli aoe Bee any mnaaiaane seAen eran ee eee se oenoraces pearopeatey rmcchirt caiealser re am MACHINE VISION SYSTEM AND ROBOT PROGRAMMING Joint angles. The advantage is that we obtain. maximum Precision and there is no ambiguity regarding the robot ‘configuration. The drawbacks are that these are robot dependent, ie cannot be used for other robot structures and they cannot be modified. Transformations: 1s 2 robot independent representation of Position and orientation for the tool. The location consists of OK ¥, 20, AT) in which (& ¥, 2) are the coordinate of the Tool frame origin and angles (OAT) are three Euler angles defining the orientation of the Tool frame. The Toal frame is located at the robot hand with its Z axis along the hand, its X axis going to the night of the hand, and its ¥ axis going down from the hand. Based on the above, angle O is a ROTY for the tool frame, angle A is a ROTX and angle T is a ROTZ. A location is then defined as a point (X ¥ 2) that is relative to the base coordinate of the robot and three angles, For ‘example, to shitt a location in the X direction, only the X ‘component in the translation needs to be adjusted. For example, one may define a location of a part relative to a conveyer belt located relative to the robot. Change in the Coordinate of intermediate sub-objects can be made without changing the ather top ranked frames, These relative transformations are called Compound Transformations. The advantage is that it can be used with other robot. It can be ‘modified by shitting a position or an angle. One important feature is that a transformation can be a combination of relative transformation. This can be used to define a location relate ta anather, The drawbacks is that no information about robot configuration (obstacles) the user should include instruction to specify configurations. They have less precision than precision points. Location Variables Syrmbols can be used to reference a location. Two types of ‘variables (scalar and arrays) are allowed: Variable names, these are assigned by the user to reference precision points and transformation. Variable names should stat with a letter (Upper case or Lower cate). Eamples of location variables: Vahd : P, Feeder, pallet to. part 3 Invalid: 3p, part=x, hand (reserved) Precision points must be preceded by (8): (8 pick) is a precision point Note : Once location variables are defined, they can be referenced by any program in the system memory. ‘Array variables: These are location variables that can be of aay Type: Part {i} where f= 0.65535 and Part) is part(0} Using part in an Integer expression is valid. Defining Variables Under VAL | Operating System tusing the teach pendant and recording a series of locations + using HERE command to assign a name to current robot location. © scanned with OKEN Scanner CHAPTER 8 ARTIFICIAL INTELLIGENCE, IoT AND SIMULATION INTELLIGENCE In the most recent decades, the study of Artifical Inteligence has flourished, ‘Areas of particular imponance indude the following: © Machine learning 4 Multiagent systems © Anificiat ite © Computer vision © Planning Playing games (chess in panicular) Artifical inteligence is the study of systems that act in a way that to any observer would appear to be intelligent © Arpiicial Intelligence techniques are used to solve relatively simple problems or complex problems that are Intemal to more complex systems. = Another definition of Anifical Intelligence is, Artificial Inteligence involves using methods based cn the Inteligent behavior of humans and cther animals 10 sove Complex problems. + The possibility of creating a robot with emotions and real Consciousness is one that is often explored in the realms Of stience fiction but is rarely considered to be a goal of Antifcial Inteligence Definitions of Al: = Concemed with the dimension, thought process and Feasoning measure success in terms of human performance. © “The wicting new effort to make computer think — machines with mind, in the full and literal sense” = By Haugetand, 1985 Gi) “The automation of activities that we associate with human thinking. activities such 3s decision-making, problem solving, leaming. — By Betiman, 1978 According to definitions () and (i) systems think like human. = Concemed with the dimension thought process and reasoning measure success in terms of rationality. Gi) “The study of mental faculties through the use of computational models” = By Chamiak and McDermott. 1985 (6) “The study of the computation that makes it possible 10 peretive, reason and act”, ~ By Winston, 1992, According to definitions (i) and Gu) systems think rationally. © Concemed with the dimension behaviour, measure sucess in terms of human performance. (0) “The art of creating mics that perform functions that require intelligence when performed by peopl = By Kurzweil, 1990, (i) "The study of how to make computers do things at which, at the moment, people are better". — By Rich and Knight, 1991. According to definitions (v) and (v9 system act ike humans, © Concemed with the dimension, behiviour measure success in teems of rationality, (wil "A Feld of study that seeks to explain and ennulate ievetigent. behaviour in terms of computational process” = By Schalkott, 1990 (wil)"The branch of computer science that is concerned with the automation of intelligent behaviour’. = By Luger and Stubblefield, 1993 According 10 definitions ¢vi) and (vil) system act rationally, People may have the confusion between approaches centered, ‘A human centered approach must be an empirical science, iewotving hypothesis and experimental conformation, ‘A rationalist approach involves a combination of mathematics and engineering 8.1.1 History of Artificial Intelligence * 1m 1956, the term Artificial Intelligence was first used by John McCarthy at a conference in Dartmouth College, in Hanover, New Hampshire. + 19.1957, Newell and Simon invented the idea of the GPS, whose purpose was, as the name suggests, solving almost any logical problem. The program used a methodology known as means ends analysis, which is based on the idea of determining what needs ta be done and then working out a way to do it. This works well enough for simple problems, but Al researchers soon realized that this kind of method could net be applied in such a general way - an © scanned with OKEN Scanner ROBOTICS (RE MECHANICAL) the GPS could solve some fainy specific problems for which it was ideally suited, but its name was really a misnomer. At this time there was a great deal of optimism about Anificlal Inteligence, Predictions that with hindsight appear rash were widespread. Many commentators were Predicting that it would be only a few years before Computers could be designed that would be at least 35 intelligent as real human beings and able to perform such {asks a5 beating the world champion at chess, translating from Russian into English, and navigating a car through a busy street. Some success has been made in the past 50 years with these problems and other similar ones, but ‘MO ane has yet designed a computer that anyone would describe reasonably as being intelligent. © In 2958, McCanhy invented the LISP programming language, which is still widely used today in Artifical Intelligence research. 11.2 Artificial Intelligence Problems In AI much of the early work focused on the formal tasks, such as: (0) Game Playing: Samuel wrote ‘a checkers playing Program that not only played games with opponents but also used its experience at thase games to improve its latter performance’ (b) Theorem Proving: The logic Theorist was able to prove ‘Several theorems from the first chapter whitehead and Russell's *Principa Mathematica’ * People who are able to design a system for game playing and theorem proving, are intelligent. But initially, it was thought that this process required very litde knowledge and could therefore be programmed easily + Ata later stage, this assumption tumed out to be fake, since no computer is fast enough to overcome the combinatorial explosion generated by most problems. The Al problems are divided into a number of tasks: 1, Mundane Taste (2) Perception: Requires 2 large amount of werid knowledge. it becomes a difficult problem. + Vislon = Speech {b) Natural Language: The ability to use language to communicate a wide variety of ideas, is the most important thing that separates human from the other animals. The problem is extremely difficult, + Understanding + Generation = Translation an ANTWIGAL INTELLIGENCE. lo? AND SIMULATION (2) Common Sense Reasoning: I is a sort of problem solving, that we do everyday when we decide how to get to work in the moming. {@) Robot Controt 2 Formal Task: (2) Gamer, + Chess © Backgammon © Checkers GO (b) Mathematics: + Geometry © Logie * Integral cateulus * Proving properties of programs 2 Expert Tasks: Requires only specialized expertite without any assistance. © Engineering: @ Design @ Fautt finding (> Manufacturing planning Scientific analysis Medical diagnosis + Financial analysis, Before embarking on the study of specific Al problems and solution techniques, it is important to discuss the following {four questions: 2. What are the underlying assumptions about inteligence? 2 What kinds of techniques will be useful for solving Al problems? 3. At what level of details are we trying to model human imetigence? 4. How will we know when we have succeeded in building an intetigent program? .3 Foundation of Artificial Int ‘There are various discipines that contribute ideas, viewpoints {and techniques to AL as follows: Philosophy: Deats with © Rules used to draw valid condusions. © Theory of how mental mind arises from a physical brain. = The source of knowledge. = How does knowledge lead to action? 2 Mathematics: Deals with © Formal rules to draw valid conclusion. © What canbe computed? © How do we reason with uncertain information? © scanned with OKEN Scanner RONOTICS (BE MECHANICAL) 4 7. Deals with how language relates to .2 ARTIFICIAL INTELLIGENCE TECHNIQUES Economies: Deals with + How to make decisions to maximize payott? © How should we do this when others may not go along? © How should we do this when the payott may be far in future? Neuroscience: Deals with how brain processes information. Prychology: How humans and animals think and act Computer Engineering: Deals with how we can Build an efficient computer. Control Theory and Cybemeties: Deals with how anifacts can operate under their own contrat Ungulsties: ‘Artificial Intelligence problems span a very broad Spectrum, They appear to have very lite in common except that they are hard There are some techniques that are appropnate for the solution for a variety of Al problems. Al research resuits that inteligence requires knowledge. Knowledge posseries some leds deticable properties, including: (a) Itis voluminous (0) tis hard to characterize accurately. (0) Ins constantly changing. (@) It differs from data by being organized in a way that Corresponds to the ways it willbe used. Al technique is a method mat expiots knowledge that Should be represented in such a way that (2) The knowledge captures generalization. In other words, it is not necessary to represent separately each individual situation. Instead, situations that share important properties are grouped together. If knowledge does not have this property then inordinate amounts of memory and updating will be required. So, we usually call something without this property “data” rather than knowledge. (©) Itcan be understood by people who must provide it, For many programs, bulk of data can be acquired automatically. eg taking readings from a variety of instruments. In many Al domains. most of the knowledge a program has must be utimatey provided by the people in terms that they Understand ARTINCIAL INTELLIGENCE, 1oT AND SIMULATION. (©) ht Gan be easly modified to correct errors and to reflect changes in the world and in our world view. (6) it can be used in many situations even If it is not totally accurate or complete. (e) can be used to help overcome its own sheer bulk by helping 10 narrow the range of possiblities that must be usually considered. ‘Atthough AL techniques must be designed in keeping these ‘constrains imposed by Al problems, there is some degree of independence bermeen Al problems and problem solving techniques. It is possible to solve Al problem without using Al techniques, but those solutions are not likely to be very good. tis possible to apply Al techniques to the solution of non-Al problems. This is a good thing 10 do for problems that possess many of the same characteristics as the Al problems. &2.1 Genetic Algorithms Introduction: While mother nature has acted a real world laboratory for chuming out existence proots, man has constantly looked up at her 10 provide innovative methodologies and paradigms that can aid in solving complex problems. From systems that are modelled on biological neuronal networks to those that mimic genetic evolutions, the reteniess Quest for gaining insights into the techniques af controlling, regulating and adapting delicate systems has continued over time, Genetic Algorithm forms one such technique copied from nature that relies largely on the manner in which we have evolved over a period of time, Genetic Algorithms (GAs * Genetic Aigontnms are based on the theory of natural selecting and working on generating a set of random solutions and making them compete in an arena wh only the firtest survive. Each solution in the set equivalent to chromosome. (The sperm from the father and the egg from the mother supply the Chromosomes that make up the child). A set of such solutions (chromosomes) forms a Population, The algorithm then ses thee basie genetic operators viz (a) Reproduction () Crossover (©) Mutation + Together with a fitness function to evolve a new Population or the next generation starting from a random set of solutions, the algorithm uses these operators and the fitness function to guide its search for the optimal solution. i is thus based on 3 guided random search mechanism. The fitness function gauges how good the © scanned with OKEN Scanner ROROTICS (BE MECHANICAL) solution in question is and provides a2 measure to its adaptability on survivability. The genetic operators copy the mechanisms based on the principles of human evolution. © Here three examples that highlight how optimization and leaming can be achieved using GAs (Genetic Algorithms) are discussed below. Problem 1 : Optimization: Job-Shop Scheduling ‘©The job-shop scheduling problem comprises series of zones that are capable of manufacturing products. The objective i to find out the type of schedule that Optimizes the entire chain This could be done for instance by manufacturing the night pumber of produ, reducing the quantity or cost of production or icte time atc, ‘© Here the basic aim is to understand the working of GA. So we just simplify the problem and redefine to suit our needs. © Assume there are three manufacturing units m,, m; and my each of which is capable of manufactunng a diferent Product. A manufacturing schedule could be a set of numbers for example, 20, 35, 15 wherein each number Indicates the quantity of the concemed product manufactured by m,, mand my respectively. This Schedule could yield a certain profit (say 40) computed by Some equation. In GA terminology the function used 10 Compute the profit is called the fitness function. The set (20, 35, 15) forms the chromosome while Ks members form the genes. All else are the values thut these genes can assume. = Further the problem can be simplified by maintaining larity by discarding the amount of products generated by 2 unit. The simplification in terms of binary numbers yields chromosomes of the type (1. 0, 1) indicating that 1m, and m, are manufacturing while m, is non-productive in this schedule. We alsa, simplify the fitness function By assuming that the profit of a schedule is measured by the binary number formed by the individual genes (0s and 1s) in the chromasome. Thus, the schedule (1, 0, 2) would have a fitness of (10%): or Our problem now boils down to finding the best schedule to maximize the value of the number formed by the genes comprising the chromosome. The problem appears trivial since the best solution (1, 2) can be found in the first glance but our ebjective here isto see how the GA arrives at this. an ARTINCIAL INTELLIGENCE. 1oT AND SIMULATION. Using GA to Solve Job-Shop Problem The following steps make up the GA: 1. Represent a solution as a chromosome and find a suitable fess function, Here chromosome solutions are ((1, 0, 1} (1, 0 ete) and also identifying a fitness function {(chromesome) = (concat (Gene 1, Gene 2, Gene 3)hy which joins the three genes (bits) that comprise the chromosome and retums its decimal equivalent to help us evaluate the chromosome, 2 Choose a population of solution and initialize it - Consider here population size 4 (in practice this number is much lsgen. Let the initial population be [(0, 0, 38 (0,4 01, fh, 4,0) om This forms the initial randomly evolved starting generation, 3. We now apply the genetic operator one-by-one, This involves the following steps: (a) Determine the fitness off each solution (chromosome) as also the toul finess of the population Zi, Following table gives these values, Fliness and Expected Count of » Generation Solution fe Loeat No. (ene, | SP0EN | Een Seton) Gane, | "100 a 1 01) 1 74 788 2 | @19 2 128 54 3 0.19 6 4206 m4 4 0 5 Bn 1429 z 4 100 0 = = Cae 1143 The last column gives the actual number of solutions of that type that could occur in the population and is called the expected count of the solution f,. (B) Reproduction: To evolve the next generation, we select 2 Set of N chromosomes whase average distribution is equal to the expected count distribution. Simple solution to do this is given below: The significance of the expected count lies in the fact that if we generated 1000 sets of each chromosome {4000 in at) then about 286 would be of type (0, 0, 2}, and 571 of type (0, 1,0} and s0 on. If we now choose 4 chromosomes from the pool of 4000, then it is unlikely that the ones that have low fitness are all selected. Likewise in a population of 1000, we could imagine that if we choose a random number from 0-999 and obtained a number between 0-70, it means we are selecting the chramasome {0, 0, 3} © scanned with OKEN Scanner RONOTICS (BE MECHANICAL) as, singe its percentage probability is about 71. Similarly, if the number falls in the range of 72-213 (143 units) it would mean selection of (0, 1, 0} and for ranges 214-642 and 643-999 (429 and 357 units apart since % probabilities are 4286 and 35.71 respectively) it would mean selection of {2 0} and (1. 0 3) respectively. Mode of Selection ‘The new set of four chromosomes form what is called the mating pool It is on these that we apply the genesic operators. 8 % $ 2 Cai Fig 2 Rous whet Roulette wheel depicts 2 typical Roulette wheel wherein the sections ae parioned based on the Feness values 20, 10,5, 15 of some four chromosomes. roceonee Crossover ig the process af swapping portions of the two ioc eearcoren: tact at money ccc i ge oundates called crating sites or chiasma In the present ase ach of the chromosomes has three genes, which means Ins length is 3. Thus, the chromosomes can have two crossing ses shown below bythe numbered arto (ene 1, Gene 2, 2eene 3} We now take two solutions randomly out of the mating pool sic ee de shah reer sell ncn ft he ‘over need not occur in every generation. Generally, a cross ‘Over probability or rate P. that remains constant throughout is seseerihe dheere ration heaipieadtoe nigra bee place to describe how it is affected. If it does not occur then theta taactes schitions form two ofthe ends ef hese eraration provided they are not subjected to mutation described later Imagine we select two chromosomes {1. 0, 1) and (1, 1. 0} randamiy for crossover. We then randomly choose either of two possible crossing sites - 1 or 2 Mf the crossing site rion 2 te idee ied tl eel voraccorat wend be formed as shown. one ARTINCIAL INTELLIGENCE, 1oT AND SIMULATION. i ate 11,0, 0) and (1,3, 1} 10) Let us assume that the two of the ather solutions (2, 2, O} and (0. 1.0) are crossed over (once again based on Pe) this time at position 1 to obtain the solutions (0, 1, O} and {2, 2, 0), Note that this does not generate new solutions, such things can happen in Gas. Munation: ‘As in nature, mutation occurs very infrequently, Accordingly the mutation probability or rate Pm is fixed at a very low value and chances are that it takes place once in thousands. of \generations. Mutation is realized by flipping the value of a Fandomly selected gene in 3 chromosome. Mutation in the Present case, it Pm permits, can be effected by randomly selecting one of the three bits representing the genes and fipping its state. For instance the chromosome (0, 1, 0} could mutate to any of [1 1. 0) oF (0, ©, 0} or (0, 1, 2) patterns fandom, Since, we hive not transgressed through many generations vee assume mutation will not occur at the moment. Thus the resuttant next generation population along with the necessary ‘AS can be seen we have hit upon the maximum value of fitness for the chromosome (1.1, 1). The procedure has thus relied the solution (1, 2, 1} indicating that when all units tumed ON, the resulting profit is the highest, 82.2 Evolving Neural Networks with GA Neural networks suffer from some basic drawbacks. Here you see these problems and its solution with GA (a) Network Topology Selection: How do we know that a articular network configuration is the best? Most of the time the network configuration jon is decided based on thumb rule ‘ex heuristic pertaining to the problem. In GA, the search of solution begins with some known Solution. In this case, a set of network topologies which are encoded in a dvomesome. © scanned with OKEN Scanner jn 2 verve same wleerrite z[eewaes 7 alee e eres fout__fovd__fomt_ Rownt__Roed crnne]er orenr” 7 wore] enon Fig. 8.2: A typical artifical newal network snd a possible method of representing fs weights 18 3 chromosome ‘Above Fig. 82 shows the manner in which various neurons in ‘the layer are connected, A ‘I’ indicates a connection while Indicates otherwise, Note that use of such a chromosome dots limit the seareh to a finite number ef neurons. One may Increase the number of layers. which will make the chromose to contain longer sequence more the information contained ‘within the chromosome, the more the computatonal time Fequired to complete the search. Here the chromosome is in place, we need to find a fitness function to evaluate them. A good fitness function should take into account network compactness, accuracy and tearing rate. Considering all of ‘them also contributes to computation cost. ‘A simple and etfective fitness function can be formulated ‘using the reciprocal of the sum of squares of the errors Reported after training the network for a predetermined umber of epochs. ‘With the population size crossover and mutation probabilities and the number of epochs fined a prior, the GA can now run by training individual networks using small random number ‘and training pattems After the fired number of epochs, the fitness of each network is found and evaluated. {b) Finding Optimal Set of Weight ‘One of the serious limitations of the most commonly used back propagation algorithm is that it cannot guarantee an ‘optimal convergence. In quite a few cases. the algorithm manages to provide weights that lead ta only a sub-optimal Solution. Further there is no method to recover from some focal optima. Using GA to find the set of optimal weight can help solve this problem to great extend. ‘The chromosome here is an ordered chain of weights It is shown in Fig. B3. Fig, 8.3: A typical artificial neural network and Its corresponding chromosome representation (The darkened lines indicate the gene boundaries) Here too the reciprocal of the sum of the squares of the error repomted after training the network for a predetermined number of epochs could depict the fitness of a set of weights. Crossover can be effected by swapping the gene mutation. It can be effected by randomly adding/subtracting a small value between 0 and 1 from the weight that comprises a randomly selected gene, 82.3 ANT Algorithm Take the example of one of nature's creations-Ants. Ants can trigger our search for new algorithms. Ants are capable of finngabng comples terrains in search of food, They also find ‘their way back to the nest. Over a period of time a colony of ants are able to find the best or shortest path between the food source and the nest. So how do they achieve this? As they navigate they keep laying pheromones which tend to modify their environment and serve as a means for Communication amongst them in the colony. Pheromones are chemicals that are volatile and give way over a period of time. All ants choose to move over track of high pheromone Concentration. In the beginning each ants goes in search of food and as they move, the pheromone is laid along the part. ‘When an ant finds the food source it starts its return journey along the same path and adds to the phenomenon Concentration along it. Since, the colour comprises a large number of ants, a parallel search ensures. Chances are that ‘several of them discover the food source through different paths. Naturally, the ant that found the closest path would over a period of time shuttle up and down more number af times than its counterparts This increases the pheromone ‘concentration of the shortest path and for other ants too to choose it Over a period of time, only shortest path exists while other paths fade away. © scanned with OKEN Scanner

You might also like